六通道數(shù)據(jù)采集及處理系統(tǒng)的研制
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引言
單片計(jì)算機(jī)應(yīng)用系統(tǒng)在生物醫(yī)學(xué)微信號的采集及處理方面具有廣闊的應(yīng)用前景。本文介紹我們根據(jù)實(shí)際需要研發(fā)的一款六通道數(shù)據(jù)采集及處理的單片計(jì)算機(jī)應(yīng)用系統(tǒng),共生產(chǎn)樣機(jī)兩臺,都投入了實(shí)際應(yīng)用。該系統(tǒng)分別對六個(gè)來自傳感器的微弱電信號進(jìn)行放大,經(jīng)A/D轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號,在PC機(jī)的控制下,用單片計(jì)算機(jī)對這些數(shù)據(jù)進(jìn)行初步的處理,然后把這些數(shù)據(jù)傳送給PC機(jī)。通過選擇不同的傳感器,系統(tǒng)可用于各種生物醫(yī)學(xué)微信號的采集及處理,具有一定的通用性。
2 系統(tǒng)硬件電路的設(shè)計(jì)
圖1 系統(tǒng)組成方框圖
如圖1所示,系統(tǒng)由傳感器、微信號放大、A/D轉(zhuǎn)換、單片計(jì)算機(jī)接口、串行通信等部分組成。來自傳感器的微弱電信號經(jīng)信號放大電路放大后送入A/D轉(zhuǎn)換器,此電信號經(jīng)A/D轉(zhuǎn)換器轉(zhuǎn)換成數(shù)字信號后送入單片計(jì)算機(jī)進(jìn)行初步的數(shù)字處理,并經(jīng)串行通信接口傳送給PC機(jī)。同時(shí),PC機(jī)的指令也可通過串行通信接口傳送給單片計(jì)算機(jī)。
現(xiàn)將系統(tǒng)各部分分別介紹如下:
2.1 微信號放大電路
微信號放大電路采用美國Burr-Brown公司生產(chǎn)的精密數(shù)據(jù)放大器INA118。該運(yùn)放具有精度高、溫漂低的特點(diǎn),其內(nèi)部結(jié)構(gòu)如圖2所示[1]。
INA118有八只腳,第1、8腳間外接一放大倍數(shù)控制電阻Rg,3、2腳分別為正、反向輸入端,7、4腳為+5V、-5V電源輸入端,6腳為輸出端,5腳為參考電壓端,一般與地相接。
圖2 INA118內(nèi)部結(jié)構(gòu)圖
A1、A2、Ra、Rb和Rg組成第一級放大電路,根據(jù)運(yùn)算放大器的“虛短”特性,有VA=VIN-,VB=VIN+。所以流過Rg的電流為
A3、Rc、Rd、Re和Rf組成第二級放大電路,此級為一差分放大電路,由于Rc=Rd,Re=Rf,故其電壓放大倍數(shù)為[2]
由上式看出,要改變INA118的放大倍數(shù),只要改變Rg的大小即可。在實(shí)際電路中,Rg采用一只1KΩ的精密電位器構(gòu)成放大倍數(shù)可調(diào)的放大電路,如圖3所示。
由于系統(tǒng)要對來自六個(gè)傳感器的信號分別進(jìn)行放大,所以使用了六片INA118(U1~U6)組成六通道信號放大電路。六片INA118的反向輸入端 VIN-分別通過J1接線口的第1~6腳接六個(gè)傳感器的信號輸出端;正向輸入端則并接在一起,通過J1口的第8~10腳接到六個(gè)傳感器的另一端,同時(shí)通過一個(gè)1KΩ的電阻接地,以降低共模輸入分量,提高放大器的放大精度。
電位器W1~W6是電壓放大倍數(shù)調(diào)節(jié)電位器,可根據(jù)需要分別對U1~U6的放大倍數(shù)進(jìn)行調(diào)節(jié)。本系統(tǒng)中分別把六個(gè)通道的放大倍數(shù)都預(yù)設(shè)為–200倍。 U1~U6的輸出端Vo1~Vo6分別接到A/D轉(zhuǎn)換器U7的AIN0~AIN5六個(gè)輸入端,以便把放大后的電壓信號轉(zhuǎn)換成數(shù)字信號。
2.2 A/D轉(zhuǎn)換電路
模數(shù)轉(zhuǎn)換電路采用德州儀器公司開發(fā)的串行A/D轉(zhuǎn)換器TLC2543,它是一種11通道、12位、高精度(最大±1/4096的線性誤差)、快速(在工作溫度范圍內(nèi)轉(zhuǎn)換時(shí)間為10μs)的模數(shù)轉(zhuǎn)換器[3],其內(nèi)部結(jié)構(gòu)如圖4所示。
TLC2543內(nèi)部由通道選擇器、輸入地址寄存器、采樣保持電路、12位的模數(shù)轉(zhuǎn)換器、輸出寄存器、并→串轉(zhuǎn)換器以及控制邏輯電路等7個(gè)部分組成。通道選擇器根據(jù)輸入地址寄存器中存放的地址選擇輸入通道,并將輸入通道中的信號送到采樣保持電路中,然后在12位數(shù)模轉(zhuǎn)換器中將采樣的模擬量轉(zhuǎn)換成數(shù)字量,存放到輸出寄存器中,這些數(shù)據(jù)經(jīng)過并行→串行轉(zhuǎn)換器轉(zhuǎn)換成串行數(shù)據(jù),由DOUT端輸出到微處理器中。
圖4 TLC2543內(nèi)部結(jié)構(gòu)方框圖
模數(shù)轉(zhuǎn)換電路如圖5所示。TLC2543的模擬信號輸入端AIN0~AIN5分別接六路來自INA118的電壓信號Vo1~Vo6,各路信號的選擇通過編程設(shè)定;AIN6~AIN10以及負(fù)參考電壓端REF-都接地。 為片選信號輸入端,片選信號來自單片計(jì)算機(jī)AT892051的P1.7腳(該信號由軟件編程產(chǎn)生),當(dāng) 為低電平時(shí),允許TLC2543輸入輸出數(shù)據(jù),當(dāng) 為高電平時(shí)禁止其輸入輸出數(shù)據(jù);DOUT為轉(zhuǎn)換數(shù)據(jù)輸出端,轉(zhuǎn)換結(jié)果輸出到單片計(jì)算機(jī)AT892051的P1.6端,輸出方式可由高位到低位逐位輸出,也可由低位到高位逐位輸出,具體方式由編程確定;DIN為串行數(shù)據(jù)輸入端,來自單片機(jī)P1.5腳的命令字(含通道選擇、輸出數(shù)據(jù)長度、輸出順序、極性選擇等信息)由此端輸入,輸入方式為先高位后低位。SCLK為輸入輸出同步時(shí)鐘端,該時(shí)鐘信號來自AT892051的P1.4腳(信號通過軟件編程產(chǎn)生);當(dāng)數(shù)據(jù)傳送開始后,每個(gè)SCLK信號的上升沿,由單片機(jī)向TLC2543輸入一位命令字(前8個(gè)上升沿),同時(shí)由TLC2543向單片機(jī)輸出一位轉(zhuǎn)換結(jié)果(前 8、12或16個(gè)上升沿)。TLC2543的正參考電壓端REF+接+3.0V標(biāo)準(zhǔn)電壓。
標(biāo)準(zhǔn)電壓+3.0V由電源集成電路TL431產(chǎn)生。由于TL431的第1、2腳間的電壓差為標(biāo)準(zhǔn)電壓2.5V,而第1腳的工作電流可以忽略,所以TL431的第3腳輸出的標(biāo)準(zhǔn)電壓為:
本系統(tǒng)中,轉(zhuǎn)換結(jié)果采用12位輸出的方式:當(dāng)TLC2543輸入端的模擬電壓(對地電壓)等于(或略低于)0V時(shí),TLC2543輸出結(jié)果為000H,當(dāng)模擬電壓等于(或略大于)3V時(shí),輸出結(jié)果為FFFH(為了不損壞TLC2543,應(yīng)恰當(dāng)選擇傳感器的接法并調(diào)節(jié)放大電路的放大倍數(shù),使TLC2543的輸入電壓在-0.3V~+3.3V的范圍內(nèi))。
圖5 模數(shù)轉(zhuǎn)換電路
2.3 單片計(jì)算機(jī)接口電路
單片計(jì)算機(jī)選用ATMEL公司生產(chǎn)的AT89C2051。它是一種低功耗、高性能的8位CMOS微控制芯片,與MCS-51指令系統(tǒng)兼容,且片內(nèi)自帶的2KB快閃可讀寫程序存儲器已可滿足本系統(tǒng)的需要,不需要擴(kuò)展外部程序存儲器。
圖6 接口電路
接口電路如圖6所示。其中,C0與R4構(gòu)成上電自動(dòng)復(fù)位電路;K、R5和R4構(gòu)成手動(dòng)復(fù)位電路,X、C1、C2構(gòu)成單片機(jī)的振蕩電路。為了產(chǎn)生精確的串行通信波特率,晶振X的振蕩頻率選為11.0592MHz(它可使波特率發(fā)生器T1的初值為整數(shù),從而消除初值誤差)。
AT89C2051的P3.0腳為串行數(shù)據(jù)接收端,接收來自MAX232的R1OUT端的串行數(shù)據(jù);P3.1腳為串行數(shù)據(jù)輸出端,單片機(jī)發(fā)向PC機(jī)的串行數(shù)據(jù)由此傳輸?shù)組AX232的T1IN端;P1.4腳輸出同步時(shí)鐘信號,此信號輸入到TLC2543的SCLK端;P1.5腳與TLC2543的DIN端相連,單片機(jī)由此端向TLC2543輸入命令字;P1.6腳是A/D轉(zhuǎn)換結(jié)果輸入端,接收來自TLC2543的DOUT端的轉(zhuǎn)換結(jié)果;P1.7腳輸出 TLC2543的片選信號,與TLC2543的 端相接。
2.4 串行通信電路
串行通信電路如圖7所示。MAX232是雙向電平轉(zhuǎn)換芯片,完成TTL電平(0~5V)與EIA電平(-10V~+10V)之間的轉(zhuǎn)換:發(fā)送數(shù)據(jù)時(shí),TTL電平信號自單片機(jī)的TXD端傳到MAX232的T1IN端,經(jīng)MAX232轉(zhuǎn)換成EIA電平信號后,由T1OUT端送出,通過RS-232C插座的TXD端到達(dá)PC機(jī);接收數(shù)據(jù)時(shí),來自PC機(jī)的EIA電平信號通過RS-232C插座的RXD端輸入到MAX232的R1IN端,經(jīng)MAX232轉(zhuǎn)換成TTL電平信號后,由R1OUT端送到單片機(jī)的RXD端。
圖7 串行通信電路
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)主程序框圖如圖8所示。
系統(tǒng)主程序設(shè)計(jì)為一個(gè)循環(huán)程序,在一個(gè)循環(huán)中完成以下工作:①向A/D轉(zhuǎn)換器發(fā)送命令字,讀取A/D轉(zhuǎn)換器的轉(zhuǎn)換結(jié)果,并根據(jù)來自PC機(jī)的指令,將讀取的轉(zhuǎn)換結(jié)果進(jìn)行初步處理;②將數(shù)據(jù)發(fā)送給PC機(jī);③接收來自PC機(jī)的命令,并對命令做出反應(yīng)。
本系統(tǒng)中,TLC2543輸出結(jié)果設(shè)置成12位無符號整型數(shù),輸出順序?yàn)楦呶辉谇?。為了使采樣結(jié)果更準(zhǔn)確,采取如下采樣方式:在每一個(gè)主程序循環(huán)中,由單片計(jì)算機(jī)依次讀取AIN0~AIN5六個(gè)通道的采樣數(shù)據(jù),并將各通道的數(shù)據(jù)依次存放到單片機(jī)的RAM中,六個(gè)通道讀完一次之后,再依次讀取 AIN0~AIN5六個(gè)通道的采樣數(shù)據(jù),并將新讀取的各通道的數(shù)據(jù)分別加入到前面讀取的結(jié)果中,這樣連續(xù)讀取8次,得到各通道8次采樣結(jié)果之和,然后將這些結(jié)果分別除以8,得到各通道8次采樣結(jié)果的平均值,并把它們作為各通道的采樣結(jié)果傳送給PC機(jī)。由于A/D轉(zhuǎn)換器輸出的結(jié)果并不直接表示電壓的大小(000H表示0V,F(xiàn)FFH表示3.0V),單片機(jī)可根據(jù)來自PC機(jī)的命令,將這些結(jié)果轉(zhuǎn)換成電壓值(如將FFFH轉(zhuǎn)換成003H),結(jié)果的轉(zhuǎn)換通過調(diào)用子程序完成。
圖8 系統(tǒng)主程序框圖
系統(tǒng)主程序每循環(huán)一次,單片機(jī)向PC機(jī)發(fā)送一組數(shù)據(jù),這一組數(shù)據(jù)包含三個(gè)部分:①三個(gè)同步字節(jié)#55H、#0AAH、#01H(供PC機(jī)識別發(fā)送內(nèi)容用);②AIN0~AIN5六個(gè)通道的采樣結(jié)果;③采樣結(jié)果的累加和(供PC機(jī)校驗(yàn)發(fā)送數(shù)據(jù)的正確性用)。數(shù)據(jù)的發(fā)送通過調(diào)用發(fā)送子程序?qū)崿F(xiàn)。循環(huán)程序中有一個(gè)延時(shí)程序, PC機(jī)通過傳送延時(shí)參數(shù)控制單片機(jī)完成一次循環(huán)所需的時(shí)間,從而控制單片機(jī)向PC機(jī)發(fā)送數(shù)據(jù)的頻率。來自PC機(jī)的命令通過中斷方式讀入,每當(dāng)PC機(jī)有信號傳入,就引起單片機(jī)的串行口中斷,單片機(jī)在中斷服務(wù)程序中讀入命令,并執(zhí)行收到的命令。
單片機(jī)串行口的工作方式設(shè)置成方式1,串行通信的波特率設(shè)計(jì)為4800。設(shè)波特率發(fā)生器T1的初值為x,則[4]
即 x=250(十)=#0FAH(十六)
所以 TL1=#0FAH,TH1=#0FAH.
PC機(jī)的數(shù)據(jù)接收程序采用Visual C++ 6.0編寫[5],并用安裝程序制作軟件InstallShield Professional制作成一個(gè)名為“高澤利—串口通信”的可安裝應(yīng)用軟件,其運(yùn)行界面如圖9所示。
圖9 “高澤利—串口通信”應(yīng)用程序窗口
“高澤利—串口通信”完成的主要功能是:①通信參數(shù)的設(shè)置——鼠標(biāo)單擊“設(shè)置參數(shù)”按鈕,彈出一個(gè)參數(shù)設(shè)置對話框,在該對話框內(nèi)完成所使用的PC機(jī)的串口號、異步通信數(shù)據(jù)的楨格式、向單片機(jī)自動(dòng)發(fā)送數(shù)據(jù)的時(shí)間間隔等參數(shù)的設(shè)置;②PC機(jī)向單片機(jī)發(fā)送控制指令——可將待發(fā)送的指令用手動(dòng)或自動(dòng)兩種方式發(fā)送給單片機(jī)(待發(fā)送的內(nèi)容通過鍵盤輸入到“發(fā)送內(nèi)容”編輯框中即可被發(fā)送出去);③接收來自單片機(jī)的數(shù)據(jù)——通過鼠標(biāo)單擊“開始接收/停止接收”按鈕在接收與停止之間轉(zhuǎn)換,接收到的數(shù)據(jù)顯示在“接收回顯”編輯框中;④接收回顯數(shù)據(jù)的清除——鼠標(biāo)單擊“清除”按鈕可清除接收回顯編輯框中的數(shù)據(jù),以使新接收的數(shù)據(jù)顯示在編輯框中直接可見的位置。
4 應(yīng)用
制作的兩臺樣機(jī)在臨床醫(yī)學(xué)本科學(xué)生的“神經(jīng)干動(dòng)作電位”實(shí)驗(yàn)中用于測量神經(jīng)干的動(dòng)作電位。實(shí)驗(yàn)顯示,該系統(tǒng)性能穩(wěn)定,具有很高的測量精度,在醫(yī)學(xué)信號的檢測處理中取得了初步的成功。
參考文獻(xiàn):
[1] http://www.burr-brown.com.
[2] 王成華,王友仁,胡志忠編著.電子線路基礎(chǔ)教程[M].北京:科學(xué)出版社,2000.133-134.
[3] 李群芳,黃建編著.單片微型計(jì)算機(jī)與接口技術(shù)[M].北京:電子工業(yè)出版社,2001.168-172.
[4] 楊恢先,黃輝先等編著.單片機(jī)原理及應(yīng)用[M].長沙:國防科技大學(xué)出版社,2003.136-137.
[5] 求是科技,譚思亮,鄒超群等編著.Viual C++ 串口通信工程開發(fā)實(shí)例導(dǎo)航[M].北京:人民郵電出版社,2003.73-130.