郭蒙召 ,陳 穗 ,張建勛 ,辛運幃
(1.南開大學(xué) 計算機與控制工程學(xué)院,天津 300350;2.天津市智能機器人技術(shù)重點實驗室,天津 300350)
現(xiàn)代電力電子技術(shù)和醫(yī)學(xué)工程的發(fā)展為腫瘤治療提供了新方法。天津市智能機器人技術(shù)重點實驗室自主研發(fā)的高壓脈沖電穿孔治療儀,將具備一定條件的高壓電脈沖對生物組織放電,使組織細(xì)胞膜產(chǎn)生納米級的不可逆電穿孔,細(xì)胞組織自行凋亡,從而實現(xiàn)對腫瘤的消融[1-2]。
不可逆電穿孔治療儀采用3000 V高電壓,以多脈沖形式通過電極向生物組織放電,單個放電脈沖寬度為 50~100 μs, 每個脈沖的上升時間≯1 μs,1個治療過程需要90個以上的放電脈沖,持續(xù)時間約為20 s;放電電流也是脈沖形式,數(shù)值高達(dá)20~30 A,對周圍環(huán)境產(chǎn)生很強的電磁干擾。為安全起見,在放電過程中控制系統(tǒng)需要對放電電壓、電流進(jìn)行實時監(jiān)測,以發(fā)現(xiàn)故障要及時停止工作。
高壓脈沖電穿孔治療儀的控制系統(tǒng)以PC為上位機,DSP為下位機。系統(tǒng)工作時,上位機通過異步串行通訊對下位機進(jìn)行指令傳輸、參數(shù)設(shè)置,對放電電壓、電流進(jìn)行實時采集和顯示[3-4]。考慮到高電壓、大電流的工作環(huán)境會對數(shù)據(jù)通信產(chǎn)生很強的電磁干擾,勢必影響通信設(shè)備的正常運行,導(dǎo)致采集數(shù)據(jù)錯誤、下位機(DSP)停機、上位機異常,甚至出現(xiàn)設(shè)備損壞等情況,因此在硬件電路設(shè)計中要采取必要的抗干擾措施。
此外,在治療過程中要對所有放電脈沖的瞬時電壓、電流進(jìn)行安全監(jiān)測和數(shù)據(jù)采集,并實時傳輸?shù)缴衔粰C顯示和存儲,這需要在短時間內(nèi)進(jìn)行大數(shù)據(jù)量的可靠傳輸[5]。為此,在硬件設(shè)計中添加了多級光電隔離器件,將輸入及輸出側(cè)電路進(jìn)行有效的電氣隔離,以光信號形式傳輸信號,有較好的抗干擾效果,且輸出側(cè)電路能在一定程度上避免強電壓的引入和沖擊。在通訊協(xié)議設(shè)計上,針對強干擾可能產(chǎn)生的數(shù)據(jù)錯誤,增加了數(shù)據(jù)的糾錯功能,進(jìn)一步優(yōu)化了數(shù)據(jù)結(jié)構(gòu),提高數(shù)據(jù)的傳輸效率[6]。
高壓脈沖電穿孔治療儀的結(jié)構(gòu)如圖1所示,系統(tǒng)主要由高電壓模塊、能量儲存模塊、系統(tǒng)控制模塊和陡脈沖發(fā)生模塊組成。這4個組成部分的核心分別為高壓電源、電容組、DSP、CPLD 和 IGBT。
系統(tǒng)的工作流程如下:輔助電源上電后,系統(tǒng)控制模塊輸出繼電器組1的閉合信號,且通過D/A模塊設(shè)置逐級增加高壓模塊的輸出電壓值。放電前要設(shè)置輸出脈沖參數(shù)即脈寬、頻率、脈沖個數(shù),然后系統(tǒng)控制模塊輸出繼電器組2和繼電器組3的閉合信號。節(jié)能的同時減少了高電壓發(fā)生模塊對后面脈沖釋放過程中的干擾。在放電過程中,通過A/D變換芯片對放電過程中的電壓、電流數(shù)值進(jìn)行實時采樣。
當(dāng)繼電器組1閉合,電容組開始充電。高電壓產(chǎn)生模塊以預(yù)先設(shè)置的電壓值為電容組模塊充電,系統(tǒng)控制模塊實時監(jiān)測充電過程。當(dāng)能量儲存模塊充電完成后,系統(tǒng)控制模塊發(fā)出繼電器組1的打開信號,以及繼電器2和繼電器組3的閉合信號,隨后系統(tǒng)控制模塊向IGBT驅(qū)動電路輸入控制號,治療儀開始釋放脈沖。

圖1 脈沖治療儀結(jié)構(gòu)Fig.1 Pulse treatment instrument structure

圖2 控制器總體結(jié)構(gòu)Fig.2 Overall structure of controller
如圖2所示,控制器采用DSP+CPLD的主控架構(gòu)。在控制系統(tǒng)硬件設(shè)計過程中,考慮到高壓模塊輸出的高壓在3000 V以上;在電壓電流檢測和高壓電源控制電路中,為了避免高壓脈沖信號對DSP的干擾,文中在DSP外部單獨使用A/D和D/A芯片進(jìn)行模數(shù)轉(zhuǎn)換。控制器和底層電路之間使用光電隔離器件,能有效地阻隔高壓部分產(chǎn)生的噪聲,提高系統(tǒng)的抗干擾能力[7]。在其架構(gòu)中主控制器采用TI公司的DSP芯片TMS320F28335和Altera公司的CPLD芯片EPM3256ATC144。
SCI是標(biāo)準(zhǔn)的串行異步通信接口,與RS232接口連接,RS232具有較好的抗干擾能力。F28335處理器共提供有3個SCI接口,為降低串口通訊時CPU資源的占用,串口支持16級接收和發(fā)送FIFO;為保證數(shù)據(jù)的完整性,SCI模塊對接收到的數(shù)據(jù)進(jìn)行間斷、極性、超限和幀錯誤的檢查;為減少軟件的負(fù)擔(dān),SCI采用硬件對通信數(shù)據(jù)進(jìn)行極性和數(shù)據(jù)格式檢查。
在該治療儀系統(tǒng)中,數(shù)模轉(zhuǎn)換器采集系統(tǒng)數(shù)據(jù)并將轉(zhuǎn)換得到的數(shù)字量上傳給系統(tǒng)控制模塊;上位機通過SCI協(xié)議與系統(tǒng)控制模塊進(jìn)行通信;文中ADC采樣時間是16個ADC CLK(25 MHz)周期數(shù),即 0.65 μs;脈沖寬度為 80 μs;脈沖個數(shù)為 12 個;且要對主電路中的電壓值和電流值實時采集并上傳到上位機,數(shù)據(jù)量大,需要在短時間內(nèi)將大量的數(shù)據(jù)上傳給上位機[8]。所實現(xiàn)的串行通信系統(tǒng)在大數(shù)據(jù)量通訊時工作穩(wěn)定,數(shù)據(jù)傳輸更加準(zhǔn)確和可靠。
主電路工作在高壓大電流環(huán)境下,為了防止高頻噪聲通過檢測電路傳入系統(tǒng)控制模塊,文中使用2級光電隔離。模數(shù)轉(zhuǎn)化器的輸出結(jié)果通過光電隔離接入系統(tǒng)控制模塊,系統(tǒng)控制模塊的信號經(jīng)過一級光電隔離傳輸?shù)酱诙耍鐖D3所示。光電耦合電路具有良好的電絕緣能力,抗干擾能力和共模抑制能力,能防止輸入端噪聲干擾影響輸出端電路的正常工作。電路中的與非門實現(xiàn)電平的邏輯轉(zhuǎn)化,提高電路的驅(qū)動能力。

圖3 光電隔離電路Fig.3 Optocoupler isolation circuit
系統(tǒng)工作過程中,上位機通過串口向DSP發(fā)送一系列相應(yīng)的參數(shù)和控制模塊的指令;下位機在充放電過程中,通過A/D模塊對系統(tǒng)的電壓電流進(jìn)行實時監(jiān)控,并利用串口把實時監(jiān)測數(shù)據(jù)上傳到上位機;DSP通過消息機制觸發(fā)事件,實現(xiàn)上位機對下位機的控制。軟件設(shè)計流程如圖4所示。
文中采用AD公司的12位雙通道高速低功耗模擬數(shù)字電壓轉(zhuǎn)換器AD7366,對放電過程中的電流和電壓進(jìn)行檢測,其轉(zhuǎn)化速度可達(dá)到1 MS/s。將高壓采樣信號輸入AD7366實現(xiàn)模數(shù)轉(zhuǎn)換,通過電阻電壓間接檢測電流。AD7366采用高速串行接口輸出轉(zhuǎn)化數(shù)據(jù),使用F28335自帶的SPI模塊實現(xiàn)與AD7366通信,SPI的傳輸速度高達(dá)1 Mb/s,可以在短時間內(nèi)將檢測到的數(shù)據(jù)通過SCI模塊上傳到上位機[9]。
使用串口實現(xiàn)通信,通信設(shè)備之間應(yīng)按照雙方約定好的串行通信協(xié)議(包括數(shù)據(jù)格式、通信的速率與通信的奇偶校驗位等)。一個良好的數(shù)據(jù)包傳輸機制有利于數(shù)據(jù)傳輸?shù)姆€(wěn)定性以及正確性。所定義的數(shù)據(jù)包的格式為
標(biāo)識頭+命令碼+數(shù)據(jù)長度+數(shù)據(jù)+校驗碼
其中:標(biāo)識頭為2字節(jié),內(nèi)容為2個固定常數(shù),依次為0X55,0XAA;命令碼、數(shù)據(jù)長度、數(shù)據(jù)、校驗碼均為1字節(jié);校驗碼為數(shù)據(jù)校驗和形式,為前面所有數(shù)據(jù)的長度[10]。

圖4 軟件設(shè)計流程Fig.4 Software design flow chart
Windows環(huán)境下開發(fā)通信程序主要有2種方法:①利用ActiveX MSComm控件;②利用windows API函數(shù)。由于ActiveX MSComm控件封裝了串口通信的全部API函數(shù),使用ActiveX MSComm控件來實現(xiàn)通信效率更高,可以節(jié)省大量了解復(fù)雜的API函數(shù)的時間。
在VS2010默認(rèn)的情況下是不包含MSComm控件的,因此要自行添加該控件到VS2010中。在基于對話框的程序中使用MSComm控件,通常需進(jìn)行如下設(shè)置:
1)給對話框添加MSComm控件成員變量及引用控件類頭文件;
2)為對話框添加OnComm事件。
3.2.1 初始化及打開串口
計算機串行通信端口(RS-232)為標(biāo)準(zhǔn)配置,在Windows環(huán)境下串口是系統(tǒng)資源的一部分[6]。應(yīng)用程序使用串口進(jìn)行通信時,必須在使用之前向操作系統(tǒng)提出資源申請要求,即打開串口;通信完成后必須釋放資源,即關(guān)閉串口。
打開串口是在初始化完成之后。初始化主要是對串口的各個參數(shù)進(jìn)行設(shè)置,包括端口、波特率、數(shù)據(jù)位數(shù)、奇偶校驗、停止位數(shù)等。
3.2.2 串口事件處理
串口事件處理函數(shù)中主要是對接收的數(shù)據(jù)進(jìn)行相應(yīng)數(shù)據(jù)處理的工作。事件處理部分流程如圖5所示。
ActiveX MSComm控件提供了2種處理通信事件的方式:事件驅(qū)動方式和查詢方式。事件驅(qū)動通信是處理串口交互作用的一種非常有效的方法。在許多情況下,在事件發(fā)生時需要得到通知。利用MSComm控件的OnComm事件捕獲并且來處理這些通信事件。而查詢方式實質(zhì)上仍舊是事件驅(qū)動,在程序關(guān)鍵功能之后,可以通過檢查CommEvent屬性值來查詢事件和錯誤。

圖5 事件處理流程Fig.5 Event processing flow chart
利用TeeChart8.ocx控件實現(xiàn)串口數(shù)據(jù)波形顯示,通過類導(dǎo)向給控件添加生成類CScroll,并對TeeChart進(jìn)行添加曲線、標(biāo)題命名、初值點設(shè)置等操作。
串口以字節(jié)為單位,所采用的AD芯片為12位;文中選擇以2個字節(jié)為一個單位,對接收的數(shù)據(jù)進(jìn)行必要的處理。處理過程如下:判斷接收到的數(shù)據(jù)是否為正確的數(shù)據(jù)包格式;處理提取到的數(shù)據(jù),以2個字節(jié)為單位并屏蔽數(shù)據(jù)高4位;在事件處理函數(shù)中已根據(jù)需求對數(shù)據(jù)進(jìn)行了處理;在控件類的消息處理函數(shù)中把接收到的數(shù)據(jù)進(jìn)行十進(jìn)制轉(zhuǎn)換,使得在數(shù)據(jù)波形圖上顯示的數(shù)據(jù)格式為十進(jìn)制。
上位機發(fā)送指令到下位機,下位機接收到指令后對數(shù)據(jù)包進(jìn)行解析;對接收到的數(shù)據(jù)進(jìn)行判斷,以進(jìn)入到相應(yīng)的程序段執(zhí)行對應(yīng)的指令。每條指令都對應(yīng)DSP程序中的某個程序段,該程序段是根據(jù)實際的硬件電路編程實現(xiàn)指令的功能,如充電命令、充電結(jié)束命令等。

圖6 電壓、電流檢測波形Fig.6 Voltage and current detection waveform
在完成治療儀電路系統(tǒng)的搭建以后,進(jìn)行一系列以電阻為負(fù)載的放電試驗,放電過程中采集到的電壓和電流波形如圖6所示。由圖可見,放電電壓約為2800 V,放電電流約為28 A,符合充放電設(shè)置的參數(shù)。電容組的輸出電流和電容組的輸入電流基本一致,說明系統(tǒng)可靠工作,沒有漏電現(xiàn)象。
文中介紹了串行通信在自主研發(fā)的高壓脈沖電穿孔治療儀中的設(shè)計,具體介紹了高壓脈沖電穿孔儀的結(jié)構(gòu)和工作流程,說明了控制器系統(tǒng)的硬件設(shè)計及特點,根據(jù)具體的要求介紹了底層軟件的實現(xiàn);詳細(xì)說明了利用MFC實現(xiàn)串口通信的步驟。經(jīng)過實驗平臺電穿孔治療儀的驗證,所實現(xiàn)的串口通信更加穩(wěn)定,各功能指令均能得到有效正確的執(zhí)行,更適合高壓脈沖電穿孔儀的調(diào)試以及應(yīng)用。