面向超声刀能量发生器的嵌入式DSP控制系统设计

2023-12-01 03:44赵浩男陈小红孙福佳林晓佳黄永国
软件导刊 2023年11期
关键词:波特率寄存器运算

赵浩男,陈小红,孙福佳,林晓佳,黄永国

(1.上海理工大学 材料与化学学院;2.上海理工大学 机械工程学院;3.上海理工大学 健康科学与工程学院,上海 200093)

0 引言

超声刀又称为超声切割止血手术刀,作为一种新型外科能量器械在医学领域已得到广泛应用[1-2]。在超声刀设备运行时,能量发生器通过产生正弦交流信号驱动超声刀头振动对人体组织进行切割与止血[3]。目前,国产超声刀设备的运行稳定性和切割效果与国外相比还存在一定差距。超声刀能量发生器的控制系统具有人机交互、功率调节和智能控制功能,直接决定着超声刀设备的响应速度和运行稳定性。

以数字信号处理器(Digital Signal Processor,DSP)作为控制系统的主控芯片,可充分利用其控制稳定性强、运算速度快的优点,相比于采用冯·诺依曼架构的微控制器(Microcontroller Unit,MCU),采用哈佛架构的DSP 芯片工作效率更高,能够满足超声刀设备对控制系统实时性和稳定性的要求[4]。文献[5]以DSP 为主控芯片设计一种变频式超声波电源,实现了快速、高精度的频率跟踪和功率控制,但未使用并行运算加速器;文献[6]以C8051F020 为主控芯片,设计了应用于超声手术刀的超声波电源,并对其工作性能进行了测试,但受限于主控芯片,其控制效率和实时响应速度仍有一定提升空间;文献[7]以异构式FPGA芯片为主控芯片设计了超声电源振幅控制系统,但其仅提供了控制设备启动和停止的按键,未加入功能更加全面的人机交互系统。本文设计的超声刀能量发生器控制系统采用恒定输出电流的功率控制策略,调用控制率加速器(Control Law Accelerator,CLA)进行算法加速运算,并设计了人机交互系统,其具有控制效率高、工作稳定性强、操作界面友好,并能够实时显示系统参数等优点。

1 框架设计

超声刀在切割人体组织过程中,刀头与组织的接触面积、刀头夹持的松紧程度、切割组织的状态都会不断变化,反映在电气属性上即为负载的变化。研究表明,在输出电流恒定的条件下,超声刀的切割和止血效果最好[6-7]。常见的功率控制模式有恒定功率模式、恒定电压模式和恒定电流模式等。在恒定功率模式和恒定电压模式下,负载的变化会导致输出电流发生相应变化,不能保证超声刀振幅稳定,工作效果不佳。因此,本控制系统设计了恒定输出电流的功率控制策略,要求控制系统能够根据反馈信息实时调控驱动信号,确保输出电流的稳定。为了便于医护人员使用超声刀切割不同人体组织时能够快速切换能量发生器的工作档位,并便捷地查看设备参数和工作状态,本文设计了人机交互系统。

控制系统采用的DSP 主控芯片为德州仪器的TMS320F28377D,这是一款双核微控制器,系统时钟频率为200 MHz,每个CPU 分别配备一个独立编程的CLA。CLA 专用于浮点数运算且与CPU 并行运行,协同使用CPU和CLA 可以显著提高控制系统的工作效率[8-9]。目前,国产DSP 芯片不断涌现,如北京中科昊芯的HXS320F28335、湖南毂梁微电子的LSC335、湖南进芯电子的AVP32F335等芯片,虽相较于TMS320F28377D 在系统时钟频率和运算加速技术上仍存在一定不足,但随着产品的迭代升级,未来有望实现进口芯片的国产化替代。

如图1 所示,能量发生器在硬件设计上包括驱动电路、供电电路、放大电路和反馈电路。在驱动电路中使用直接数字频率合成(Direct Digital Frequency Synthesis,DDS)技术产生频率可调的正弦驱动信号[10-11],并将信号输送至放大电路。供电电路采用同步BUCK 拓扑,在DSP主控芯片输出的高频PWM 波控制下对输入的48 V 直流电进行DC-DC 降压变换,为放大电路提供电压可调的直流供电[12]。放大电路采用甲乙类变压器耦合推挽功率放大拓扑结构,直流供电从两路并联输入到耦合变压器原边的两个绕组,经过场效应管后接地形成功率主回路。驱动电路产生的正弦激励信号输送到放大电路的场效应管栅极,控制放大电路工作在线性放大状态,将正弦激励信号放大到变压器副边进行输出[13]。控制系统通过反馈电路对放大电路的电压电流信号进行采样,结合实时采样信息完成针对输出信号的闭环运行,并通过主控芯片的串行通信外设模块和屏幕建立人机交互系统。

Fig.1 Block diagram of control system图1 控制系统框图

根据恒电流控制策略,共设置5 个档位,每个档位设置额定的输出电流值。图2 展示了系统的功率控制流程。在超声刀运行工作中,对实际输出电流进行采样,每次采样后调用CLA 任务进行采样结果的转化和运算并启动PID 控制算法,根据输出电流设定值与实际输出值的误差调控驱动信号的幅值大小,达到控制输出电流稳定的目标。

Fig.2 Control flow of constant current mode图2 恒电流模式控制流程

2 关键模块

2.1 供电电路控制模块

供电电路是系统的重要组成部分,决定着能量发生器输出能量的稳定性。如图3 所示,在同步BUCK 电路中,两路占空比可调的互补PWM 波分别控制Q1和Q2两个场效应管,为避免两路场效应管同时导通造成过大的冲击电流烧毁器件,两路互补的PWM 波必须设置死区时间[14-15]。DSP 主控芯片的增强脉宽调制器(Enhanced Pulse Width Modulator,ePWM)模块可以同时产生多通道的PWM 波,每个通道包含A 和B 两路输出,使用两路PWM 波即可完成对同步BUCK 电路的控制。

Fig.3 Basic topology of synchronous BUCK circuit图3 同步BUCK电路基本拓扑

ePWM 模块由8 个子模块组成,生成所需的PWM 波要对时基、计数器比较、动作限定、死区发生器4 个子模块进行配置。首先配置时基子模块的寄存器,用于控制PWM波的输出频率、相位偏移量以及时钟频率等参数。时基子模块中的计数器共有3 种工作模式,分别为递增计数、递减计数和增减计数。为产生互补的PWM 波,应将计数器设置为增减计数模式,此时PWM 波的输出频率计算方法如式(1)所示。

其中,TBPRD 为时基周期寄存器的值,其最小有效值为1。FTBCLK默认为DSP 芯片系统时钟频率的二分频,可通过时基控制寄存器进行配置调整。

BUCK 电路工作在连续导通模式下时,其开关频率越高,电路中所需的电感值则越小,电感器件的尺寸即可以越小,开关噪声频率与超声刀工作频率之间的差值就会越大,滤波也会更加容易。但是随着开关频率的提高,电路的开关损耗也会增大,从而导致转换效率降低。结合硬件电路的实际需求,设置BUCK 电路的开关频率为250 kHz。由式(1)可知,保持FTBCLK为默认频率,将TBPRD 的值设置为200时,PWM 波的输出频率即为250 kHz。

互补带死区的PWM 波生成过程如图4 所示。首先对计数器比较和动作限定两个子模块进行配置,选择产生两路完全相同的PWM 波,设置初始占空比为25%,然后在死区子模块对其中一路PWM 波的上升沿进行延时,对另一路的下降沿延时后进行翻转,即可得到两路互补且有死区延时的PWM 波输出。

Fig.4 Schematic diagram of complementary band dead-time PWM wave generation图4 互补带死区PWM波生成示意图

2.2 驱动信号控制模块

目前主流超声刀的工作频率是55.5±5 kHz,超声刀杆的磨损、切割组织的差异和工作温度的变化都会造成换能器产生频率漂移现象,当能量发生器输出的电信号频率与换能器的机械谐振频率保持一致时,超声刀即可正常、稳定工作。驱动信号是频率可调且带有一定直流偏置电压的正弦信号,其中交流分量由现场可编程门阵列FPGA 芯片通过DDS技术产生。

超声刀电路的驱动信号直接输送到放大电路场效应管的栅极,场效应管是放大电路的核心器件,其工作状态直接关系到能量转化效率和系统功率损耗。场效应管的导通电压有一定阈值,超过该阈值时才会导通,该阈值电压会受器件本身温度的影响而发生变化。驱动信号的直流偏置电压主要用于承载正弦激励信号,使叠加而成的驱动信号在场效应管阈值电压上下浮动,让放大电路工作在甲乙类放大状态。为避免出现交越失真,在每个输出信号周期内,两路场效应管的导通时间都要大于半个周期。为降低功耗,场效应管的关断时间又要尽可能长,因此需要将驱动信号的直流偏置电压设定为一个合适的值。同时,控制系统也要根据反馈信息实时调整驱动信号的幅值以达到恒电流输出的目标。在驱动电路中,采用两个数模转换器(Digital-to-Analog Converter,DAC)芯片控制驱动信号,其中一个DAC 负责为驱动信号提供直流偏置电压,另一个负责调节驱动信号幅值。DSP 主控芯片与DAC 芯片之间的通信采用内部集成电路(Inter-Integrated Circuit,IIC)总线协议。

IIC 总线是嵌入式系统常用的总线标准,具有总线数量少、调控简单、可扩展性强的优点。IIC 通信中区分为主机和从机,在数据交互过程中仅使用两条总线,一条为串行时钟线(Serial Clock Line,SCL),为通信过程提供时钟约束;另一条为双向的串行数据线(Serial Data Line,SDA),在主机和从机设备间传输数据。通常有两种方式建立IIC 总线通信,一种是配置DSP 主控芯片的IIC 模块,其优点是通信速度快、时钟频率灵活可调;另一种是使用芯片的通用输入输出(General Purpose Input/Output,GPIO)接口模拟SCL 和SDA,优点是灵活度高、可移植性强。如图5 所示,本设计为保证系统的响应速度,通过DSP 主控芯片的IIC模块直接控制两个地址均为7位的DAC 芯片。

Fig.5 Schematic diagram of IIC communication connection of drive signal control module图5 驱动信号控制模块IIC通信连接示意图

在驱动信号控制模块程序中,首先使能相应GPIO 的端口复用功能,使IO 口工作在IIC 模式下,之后配置IIC 模块的寄存器,将IIC 模式寄存器中的模块重置位设置为1,使能IIC 模块功能。因DAC 芯片的地址为7 位,故需要将从机扩展地址使能位设置为0,从机的具体地址要写入IIC从机地址寄存器中。当IIC 模块同时控制多个从机设备时,在发送指令前应根据控制对象的具体地址更改从机地址寄存器内的数据。

2.3 反馈信号采样模块

控制系统的反馈信号包括电压采样信号和电流采样信号。在满足采样定理的基础上,如果不能保证采样频率为信号频率的整数倍,就会出现样本的多取或截断,一般称这种采样为非整周期采样。在超声刀电路中,由于换能器的频率漂移现象,会不可避免地引入非整周期采样误差,因此在计算采样数据时需要运用采样算法来减小误差。

在反馈电路中,控制系统使用最高支持20 MHz 时钟频率的模数转换器(Analog-to-Digital Converter,ADC)芯片对电压和电流信号进行采样,通过主控芯片的串行外设接口(Serial Peripheral Interface,SPI)模块控制ADC 芯片工作。

SPI 是一种串行全双工通信方式,支持长度为1~16 位的串行数据流,优点是通信速度快、扩展性较强,常用于控制器之间或控制器与外设的通信。使用SPI通信的设备分为主机和从机,一个主机可控制多个从机设备。标准模式下SPI 通信过程共用到4 条总线,其中串行时钟总线和两条主从间的通信总线可由多个从机设备共用,而主从设备间的片选信号线必须独立。DSP 主控芯片可以通过使用GPIO 模拟SPI接口的方法完成与ADC 芯片的通信,但通信速率较慢,无法完成高速的信号传输。因此,本设计中直接使用主控芯片的SPI 模块。为保证数据传输的稳定性,实际传输中的时钟速率不应高于芯片支持的最高时钟速率。

在配置SPI 模块时,要在SPI 配置控制寄存器中设置传输数据的字符长度、时钟极性和高速模式。如式(2)所示,SPI 通信的波特率由主控芯片的低速外设时钟(Low-Speed Peripheral Clock,LSPCLK)和16 位的波特率寄存器SPIBRR 共同控制,其中LSPCLK 的默认频率为50 MHz,支持自定义调整。SPIBRR 寄存器的高9 位保留,低7 位有效,最小有效值为3。可知在LSPCLK 的频率确定后,SPI模块的波特率共有27-3种选择。

在SPI 通信协议中,每个时钟周期传输一位数据。因此,SPI时钟频率FSPICLK在数值上与波特率相同。若不调整LSPCLK,FSPICLK最大为12.5 MHz,低于所使用ADC 芯片20 MHz 的时钟频率。为达到最大传输速率,可启用SPI 高速传输模式,配置系统的低速外设时钟分频寄存器,将LSPCLK 的频率调整为100 MHz,最后在SPIBRR 寄存器中写入4,即可将FSPICLK设置为20 MHz。

2.4 人机交互模块

为实现便捷的控制和参数显示,本设计采用中显SDWa070C03 串口触摸屏作为人机交互设备。该屏幕的分辨率为800*480 像素,最高支持串口波特率为115 200 bps。串口屏幕采用变量驱动的方式运行,其存储空间可分为寄存器、变量存储器和Flash 存储器3 部分,屏幕上显示的所有数字、字符和图标都可被定义为变量。使用VGUS 用户图形界面设计工具(Viewtech Graphical User Software)为变量分配存储地址,并配置显示格式。将定义的变量分为两类,一类是超声刀主板的控制变量,如挡位、音量等,此类变量数据由屏幕发送到主控芯片;另一类是需要实时更新的显示变量,如电压信号、电流信号、功率等,此类变量数据由主控芯片发送到屏幕。图6 展示了人机交互系统中的部分用户界面。

Fig.6 Design of user interface图6 用户界面设计

在使用VGUS 软件开发屏幕功能的过程中,变量的地址分配极为重要。既要避免变量之间的干扰,又要分配合理以提高识别效率。在对串口屏进行操作后,屏幕会按照特定格式发送一串由5 个数据块组成的数据帧。数据帧结构如表1所示。

Table 1 Data frame structure表1 数据帧结构

在超声刀硬件电路上,串口屏的通信接口与DSP 芯片具有串行通信接口(Serial Communication Interface,SCI)复用功能的GPIO 相连接,建立控制系统与串口屏的双向通信。SCI 是一种双线式异步串行端口,能够实现全双工通信,多用于计算机、控制芯片、串口屏之间的通信,可与其他MCU 中的通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)相互兼容。在SCI 总线协议中,对传输过程的波特率要求较为严格。串口屏一般不支持波特率自适应功能,在开发时必须设置固定的波特率,而主控芯片通过GPIO 模拟固定波特率的SCI 端口有一定难度,因此本设计直接使用主控芯片的SCI模块。

在SCI模块配置中,需要使能接收中断,在中断程序中及时处理接收缓存器中的数据,防止出现数据覆盖问题而丢失数据,导致通信不能正常进行。SCI 通信控制寄存器控制着数据的传输格式,如数据位长度、停止位以及奇偶校验等,是必须配置的寄存器。DSP 芯片的SCI 模块中配备了高位波特率寄存器和低位波特率寄存器,每个寄存器的低8 位有效,对两者分别进行配置后组成16 位的控制值,该控制值用BRR 表示。如式(3)所示,SCI 的通信波特率由LSPCLK 和BRR 共同决定。

BRR 的最小有效值为1,当LSPCLK 的时钟频率调整为100 MHz 后,波特率共有216-1 种组合。在该时钟频率下,常用波特率的BRR 配置值及对应误差如表2所示。

Table 2 BRR configuration value and corresponding error of common baud rate表2 常用波特率BRR配置值及对应误差

在人机交互系统程序运行时,主控芯片通过SCI 模块的接收中断函数处理接收到的屏幕控制指令。在中断函数中,首先对数据帧头进行识别,识别通过后根据数据中的变量地址进入相应的待执行函数语句,然后读取数据字节执行相应的程序命令。在DSP 主控芯片完成对反馈信号的采样和运算后,在程序中将运算结果以数据帧的格式编码,通过SCI模块发送至屏幕上显示。

2.5 控制率加速器

CLA 不同于一般的外设模块,而是相当于一个独立的专用于浮点数运算的CPU。CLA 的运行程序要使用单独的源文件编写,在配置时,首先要通过链接器命令文件为其分配内存,以储存运行在CLA 上的程序、变量数据以及CPU 与CLA 交互的数据。相比于CPU,CLA 可以直接读写的内存范围较小,因此CLA 中运行的程序不能直接调用其他源文件中的函数和变量。为了保证CPU 与CLA 的协调运行,可使用pragma 关键字在特定的内存地址中创建空间,定义用于两者之间数据交互的变量。

CLA 的配置必须在主函数中进行,配置完成后可通过外设或软件触发CLA 的任务函数,在完成任务后CLA 会向CPU 发送一个中断请求,CPU 可提前使能CLA 的中断功能,在中断服务函数中及时处理相关运算结果。在使用C语言编写CLA 代码时,不支持全局变量和静态局部变量的初始化。初始化CLA 中的全局变量有两种方法,一是在主函数中定义可供CLA 访问读取的全局变量并初始化,之后在CLA 程序中使用extern 关键字进行声明;二是通过CLA的任务函数进行初始化。在CLA 程序中最多支持编写8个任务函数,可通过其中一个任务函数对定义的全局变量统一进行初始化,以提高后续任务的工作效率。

在一般的MCU 控制系统中,信号采样、数据运算和调控工作都由CPU 独自完成,这种控制方式会在较长时间内占用CPU 的工作进程,影响系统响应速度。CLA 引入了并行处理功能和浮点运算指令集,在数据计算和控制算法运算上更加高效。因此,本设计通过CPU 与CLA 协同运行的方式完成对输出信号的闭环控制。如图7 所示,CPU 通过控制ADC 芯片对电压和电流信号进行采样,将采样数据以变量形式存储在CPU 和CLA 可共同读取的内存地址中,之后调用CLA 任务函数进行采样数据的量程转换和数学运算,将运算结果和控制目标值引入PID 控制算法。任务完成后,CLA 向CPU 发送中断请求,由CPU 进行后续调控操作。

Fig.7 Process comparison between CPU control only and CLA collaborative control enabled图7 仅CPU控制与启用CLA协同控制的进程对比

3 实验与调试

使用阻抗分析仪PV5205 对市场上的换能器设备进行测量,在串联谐振频率点附近,换能器的等效阻抗都在80 Ω 以内。使用刀头进行夹持操作时,其等效阻抗会显著增大。因此,对能量发生器控制系统进行实验测试时,选择输出负载范围为50~200 Ω。图8 是使用Tektronix MSO34示波器测量的负载为80 Ω 时的驱动信号与输出信号波形,其中通道C1 为驱动信号,其峰—峰值为2.88 V,可计算出该信号的直流偏置电压为5.84 V;通道C2 为输出信号,其电压有效值为17.4 V,峰—峰值为51.2 V,此时放大电路的信号增益约为12.5 dB。

Fig.8 Sinusoidal drive signal and output signal with DC bias图8 带直流偏置的正弦驱动信号与输出信号

使用DSP 芯片的ePWM 模块测试数据运算与PID 控制代码在CPU 和CLA 中的执行速度,在运算程序执行前将PWM 波输出设为高电平,在运算结束后立刻将PWM 波拉低。PWM 波的高低电平转换时间最多仅为25 ns,故可将高电平持续时间视为代码实际运行时间。图9 是利用示波器对代码运算速度的测试结果。通道C1和通道C2分别是使用CPU 进行32 个样本数据的均方根值运算与运行PID 控制算法的运行时间测试结果,通道C3 和通道C4 是调用CLA 进行同样运算的运行时间测试结果。可以看出,在进行数据运算时,CLA 的计算时间相比于CPU 缩短了29.0%;在运行PID 控制算法时,CLA 的运算时间也缩短了26.8%。因此,协同使用CPU 和CLA 的控制策略不但可以减少CPU 的任务进程,而且能够显著提高控制效率,加快系统响应速度。

Fig.9 Comparison of data operation and PID control time between CPU and CLA图9 CPU与CLA分别进行数据运算和PID控制的时间对比

在不同负载下对系统的恒电流控制效果进行测试,设定输出电流值为218 mA,驱动信号与输出信号波形如图10 所示。其中,通道C1 为驱动信号,通道C2 为输出信号。因信号存在一定的噪声,由示波器测量的峰—峰值会有一定误差。

Fig.10 Waveform of driving signal and output signal in constant current mode图10 恒电流模式下的驱动信号与输出信号波形

将图10 中的具体数据整理在表3 中,并对不同负载下的输出电流有效值进行计算。可以看出,在恒电流模式下,对于50~200 Ω 范围内的负载,能量发生器的输出电流误差在1%以内。

Table 3 Parameters related to driving signal and output signal in constant current mode表3 恒电流模式下驱动信号与输出信号相关参数

超声刀能量发生器控制系统实验平台如图11所示。

4 结论

本文设计了一种面向超声手术刀的嵌入式DSP 控制系统,并对其中的关键技术进行了较为详细的介绍。控制系统以TMS320F28377D 为主控芯片,通过主控芯片的外设模块控制超声刀电路,产生了驱动超声手术刀工作的正弦交流信号,并在CLA 中运行采样算法和PID 控制算法。闭环控制超声刀系统工作在恒电流模式下,系统稳定性强、响应速度快。以串口触摸屏作为人机交互设备,实现了通过屏幕控制超声刀系统工作,并使电压、电流、功率等参数在屏幕上实时显示。超声刀作为一种新型外科能量器械,相比于传统外科手术器械具有很大优势,未来在外科手术中的应用将会更加广泛。因此,本文设计的超声刀控制系统具有很强的实用性与较高的参考价值。

猜你喜欢
波特率寄存器运算
重视运算与推理,解决数列求和题
有趣的运算
Lite寄存器模型的设计与实现
基于FPGA的异步串行通信波特率容错设计
分簇结构向量寄存器分配策略研究*
C*Core芯片SCI串口波特率容限优化
高速数模转换器AD9779/AD9788的应用
一种可重构线性反馈移位寄存器设计
计算机多设备接口波特率不匹配的研究