高压脉冲治疗仪中大数据量通讯的设计与实现
2018-07-31郭蒙召张建勋辛运帏
郭蒙召 ,陈 穗 ,张建勋 ,辛运帏
(1.南开大学 计算机与控制工程学院,天津 300350;2.天津市智能机器人技术重点实验室,天津 300350)
现代电力电子技术和医学工程的发展为肿瘤治疗提供了新方法。天津市智能机器人技术重点实验室自主研发的高压脉冲电穿孔治疗仪,将具备一定条件的高压电脉冲对生物组织放电,使组织细胞膜产生纳米级的不可逆电穿孔,细胞组织自行凋亡,从而实现对肿瘤的消融[1-2]。
1 高压脉冲电穿孔治疗仪
1.1 设计需求
不可逆电穿孔治疗仪采用3000 V高电压,以多脉冲形式通过电极向生物组织放电,单个放电脉冲宽度为 50~100 μs, 每个脉冲的上升时间≯1 μs,1个治疗过程需要90个以上的放电脉冲,持续时间约为20 s;放电电流也是脉冲形式,数值高达20~30 A,对周围环境产生很强的电磁干扰。为安全起见,在放电过程中控制系统需要对放电电压、电流进行实时监测,以发现故障要及时停止工作。
高压脉冲电穿孔治疗仪的控制系统以PC为上位机,DSP为下位机。系统工作时,上位机通过异步串行通讯对下位机进行指令传输、参数设置,对放电电压、电流进行实时采集和显示[3-4]。考虑到高电压、大电流的工作环境会对数据通信产生很强的电磁干扰,势必影响通信设备的正常运行,导致采集数据错误、下位机(DSP)停机、上位机异常,甚至出现设备损坏等情况,因此在硬件电路设计中要采取必要的抗干扰措施。
此外,在治疗过程中要对所有放电脉冲的瞬时电压、电流进行安全监测和数据采集,并实时传输到上位机显示和存储,这需要在短时间内进行大数据量的可靠传输[5]。为此,在硬件设计中添加了多级光电隔离器件,将输入及输出侧电路进行有效的电气隔离,以光信号形式传输信号,有较好的抗干扰效果,且输出侧电路能在一定程度上避免强电压的引入和冲击。在通讯协议设计上,针对强干扰可能产生的数据错误,增加了数据的纠错功能,进一步优化了数据结构,提高数据的传输效率[6]。
1.2 总体结构
高压脉冲电穿孔治疗仪的结构如图1所示,系统主要由高电压模块、能量储存模块、系统控制模块和陡脉冲发生模块组成。这4个组成部分的核心分别为高压电源、电容组、DSP、CPLD 和 IGBT。
系统的工作流程如下:辅助电源上电后,系统控制模块输出继电器组1的闭合信号,且通过D/A模块设置逐级增加高压模块的输出电压值。放电前要设置输出脉冲参数即脉宽、频率、脉冲个数,然后系统控制模块输出继电器组2和继电器组3的闭合信号。节能的同时减少了高电压发生模块对后面脉冲释放过程中的干扰。在放电过程中,通过A/D变换芯片对放电过程中的电压、电流数值进行实时采样。
当继电器组1闭合,电容组开始充电。高电压产生模块以预先设置的电压值为电容组模块充电,系统控制模块实时监测充电过程。当能量储存模块充电完成后,系统控制模块发出继电器组1的打开信号,以及继电器2和继电器组3的闭合信号,随后系统控制模块向IGBT驱动电路输入控制号,治疗仪开始释放脉冲。
图1 脉冲治疗仪结构Fig.1 Pulse treatment instrument structure
图2 控制器总体结构Fig.2 Overall structure of controller
1.3 控制系统硬件设计及特点
如图2所示,控制器采用DSP+CPLD的主控架构。在控制系统硬件设计过程中,考虑到高压模块输出的高压在3000 V以上;在电压电流检测和高压电源控制电路中,为了避免高压脉冲信号对DSP的干扰,文中在DSP外部单独使用A/D和D/A芯片进行模数转换。控制器和底层电路之间使用光电隔离器件,能有效地阻隔高压部分产生的噪声,提高系统的抗干扰能力[7]。在其架构中主控制器采用TI公司的DSP芯片TMS320F28335和Altera公司的CPLD芯片EPM3256ATC144。
1.4 SCI模块
SCI是标准的串行异步通信接口,与RS232接口连接,RS232具有较好的抗干扰能力。F28335处理器共提供有3个SCI接口,为降低串口通讯时CPU资源的占用,串口支持16级接收和发送FIFO;为保证数据的完整性,SCI模块对接收到的数据进行间断、极性、超限和帧错误的检查;为减少软件的负担,SCI采用硬件对通信数据进行极性和数据格式检查。
在该治疗仪系统中,数模转换器采集系统数据并将转换得到的数字量上传给系统控制模块;上位机通过SCI协议与系统控制模块进行通信;文中ADC采样时间是16个ADC CLK(25 MHz)周期数,即 0.65 μs;脉冲宽度为 80 μs;脉冲个数为 12 个;且要对主电路中的电压值和电流值实时采集并上传到上位机,数据量大,需要在短时间内将大量的数据上传给上位机[8]。所实现的串行通信系统在大数据量通讯时工作稳定,数据传输更加准确和可靠。
1.5 光电隔离模块
主电路工作在高压大电流环境下,为了防止高频噪声通过检测电路传入系统控制模块,文中使用2级光电隔离。模数转化器的输出结果通过光电隔离接入系统控制模块,系统控制模块的信号经过一级光电隔离传输到串口端,如图3所示。光电耦合电路具有良好的电绝缘能力,抗干扰能力和共模抑制能力,能防止输入端噪声干扰影响输出端电路的正常工作。电路中的与非门实现电平的逻辑转化,提高电路的驱动能力。
图3 光电隔离电路Fig.3 Optocoupler isolation circuit
2 软件设计
2.1 软件设计流程
系统工作过程中,上位机通过串口向DSP发送一系列相应的参数和控制模块的指令;下位机在充放电过程中,通过A/D模块对系统的电压电流进行实时监控,并利用串口把实时监测数据上传到上位机;DSP通过消息机制触发事件,实现上位机对下位机的控制。软件设计流程如图4所示。
2.2 电流电压检测
文中采用AD公司的12位双通道高速低功耗模拟数字电压转换器AD7366,对放电过程中的电流和电压进行检测,其转化速度可达到1 MS/s。将高压采样信号输入AD7366实现模数转换,通过电阻电压间接检测电流。AD7366采用高速串行接口输出转化数据,使用F28335自带的SPI模块实现与AD7366通信,SPI的传输速度高达1 Mb/s,可以在短时间内将检测到的数据通过SCI模块上传到上位机[9]。
2.3 数据包通信格式
使用串口实现通信,通信设备之间应按照双方约定好的串行通信协议(包括数据格式、通信的速率与通信的奇偶校验位等)。一个良好的数据包传输机制有利于数据传输的稳定性以及正确性。所定义的数据包的格式为
标识头+命令码+数据长度+数据+校验码
其中:标识头为2字节,内容为2个固定常数,依次为0X55,0XAA;命令码、数据长度、数据、校验码均为1字节;校验码为数据校验和形式,为前面所有数据的长度[10]。
图4 软件设计流程Fig.4 Software design flow chart
3 串口通信的实现
Windows环境下开发通信程序主要有2种方法:①利用ActiveX MSComm控件;②利用windows API函数。由于ActiveX MSComm控件封装了串口通信的全部API函数,使用ActiveX MSComm控件来实现通信效率更高,可以节省大量了解复杂的API函数的时间。
3.1 加载MSComm控件
在VS2010默认的情况下是不包含MSComm控件的,因此要自行添加该控件到VS2010中。在基于对话框的程序中使用MSComm控件,通常需进行如下设置:
1)给对话框添加MSComm控件成员变量及引用控件类头文件;
2)为对话框添加OnComm事件。
3.2 控件编程
3.2.1 初始化及打开串口
计算机串行通信端口(RS-232)为标准配置,在Windows环境下串口是系统资源的一部分[6]。应用程序使用串口进行通信时,必须在使用之前向操作系统提出资源申请要求,即打开串口;通信完成后必须释放资源,即关闭串口。
打开串口是在初始化完成之后。初始化主要是对串口的各个参数进行设置,包括端口、波特率、数据位数、奇偶校验、停止位数等。
3.2.2 串口事件处理
串口事件处理函数中主要是对接收的数据进行相应数据处理的工作。事件处理部分流程如图5所示。
ActiveX MSComm控件提供了2种处理通信事件的方式:事件驱动方式和查询方式。事件驱动通信是处理串口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知。利用MSComm控件的OnComm事件捕获并且来处理这些通信事件。而查询方式实质上仍旧是事件驱动,在程序关键功能之后,可以通过检查CommEvent属性值来查询事件和错误。
图5 事件处理流程Fig.5 Event processing flow chart
3.3 数据波形显示
利用TeeChart8.ocx控件实现串口数据波形显示,通过类导向给控件添加生成类CScroll,并对TeeChart进行添加曲线、标题命名、初值点设置等操作。
串口以字节为单位,所采用的AD芯片为12位;文中选择以2个字节为一个单位,对接收的数据进行必要的处理。处理过程如下:判断接收到的数据是否为正确的数据包格式;处理提取到的数据,以2个字节为单位并屏蔽数据高4位;在事件处理函数中已根据需求对数据进行了处理;在控件类的消息处理函数中把接收到的数据进行十进制转换,使得在数据波形图上显示的数据格式为十进制。
4 DSP对串口数据的处理
上位机发送指令到下位机,下位机接收到指令后对数据包进行解析;对接收到的数据进行判断,以进入到相应的程序段执行对应的指令。每条指令都对应DSP程序中的某个程序段,该程序段是根据实际的硬件电路编程实现指令的功能,如充电命令、充电结束命令等。
5 试验分析
图6 电压、电流检测波形Fig.6 Voltage and current detection waveform
在完成治疗仪电路系统的搭建以后,进行一系列以电阻为负载的放电试验,放电过程中采集到的电压和电流波形如图6所示。由图可见,放电电压约为2800 V,放电电流约为28 A,符合充放电设置的参数。电容组的输出电流和电容组的输入电流基本一致,说明系统可靠工作,没有漏电现象。
6 结语
文中介绍了串行通信在自主研发的高压脉冲电穿孔治疗仪中的设计,具体介绍了高压脉冲电穿孔仪的结构和工作流程,说明了控制器系统的硬件设计及特点,根据具体的要求介绍了底层软件的实现;详细说明了利用MFC实现串口通信的步骤。经过实验平台电穿孔治疗仪的验证,所实现的串口通信更加稳定,各功能指令均能得到有效正确的执行,更适合高压脉冲电穿孔仪的调试以及应用。