閆瑞杰 李海香
山西電力職業(yè)技術(shù)學(xué)院 山西 太原 030021
許多科研課題在實(shí)驗(yàn)過(guò)程中都需要實(shí)時(shí)地記錄不同測(cè)量?jī)x器測(cè)量的物理量,然后對(duì)數(shù)據(jù)進(jìn)行分析研究。例如在火電廠(chǎng)溫排放水水力熱力特性的研究中就需要采集多個(gè)點(diǎn)的流速、水位和溫度值,流速、水位和溫度又屬不同的物理量須用不同的儀器進(jìn)行測(cè)量,而水力熱力特性需同時(shí)分析這三個(gè)測(cè)量數(shù)據(jù)。如何將多個(gè)物理量的測(cè)量數(shù)據(jù)采集到計(jì)算機(jī),是一個(gè)十分重要的前提。專(zhuān)用的工業(yè)采集板卡價(jià)格昂貴且應(yīng)用軟件的靈活性較差,往往不能滿(mǎn)足科研實(shí)驗(yàn)的特殊要求。并行輸入串行采集是一種低成本、高效率的處理方法,據(jù)此原理設(shè)計(jì)了控制電路單元、采集電路單元、通訊電路單元,開(kāi)發(fā)硬件驅(qū)動(dòng)程序,以此為基礎(chǔ)設(shè)計(jì)的串行模擬量采集板卡,具有編址功能,可與計(jì)算機(jī)配合完成對(duì)多個(gè)儀表測(cè)量數(shù)據(jù)的采集與存儲(chǔ)。該采集板卡已經(jīng)應(yīng)用到可門(mén)電廠(chǎng)、三門(mén)電廠(chǎng)溫排放特性研究等科研課題中。
控制電路單元是可編址串行模擬量采集板卡的控制中心,選用Atmel公司生產(chǎn)的8位嵌入式低功耗單片機(jī)ATmega 32作為控制器。ATmega 32有著豐富的硬件資源,32K字節(jié)的系統(tǒng)內(nèi)可編程 Flash,512字節(jié)EEPROM,1K SRAM,32個(gè)通用I/O,三個(gè)定時(shí)器/計(jì)數(shù)器,一個(gè)串行USART,一個(gè)SPI串行接口,支持JTAG片內(nèi)調(diào)試與編程等,軟件支持匯編語(yǔ)言和C語(yǔ)言,編程方便靈活、程序可移植性強(qiáng),可以滿(mǎn)足多種應(yīng)用[1]。
控制電路單元完成前端采集電路單元的配置及數(shù)據(jù)采集,控制電路單元如圖1所示。利用其SPI接口控制A/D轉(zhuǎn)換并讀取轉(zhuǎn)換結(jié)果,將轉(zhuǎn)換結(jié)果暫存于片內(nèi)SRAM,再通過(guò)USART接口經(jīng)由通訊電路單元與計(jì)算機(jī)進(jìn)行數(shù)據(jù)交互。單片機(jī)ATmega 32的供電電壓VCC為+3.3V,晶振Y1選用12M,諧振電容C9、C10選用20pF,單片機(jī)時(shí)鐘頻率設(shè)置寄存器配置為12MHz。PB5為串行外設(shè)接口SPI的主機(jī)輸出端,PB6為主機(jī)輸入端,PB7為SPI時(shí)鐘,PB3、PD4、PD5用作普通的數(shù)字接口。AVCC為模擬電源,經(jīng)LC網(wǎng)絡(luò)接至數(shù)字電源VCC。
圖1 控制電路單元
采集電路單元分兩部分,一部分是模擬量輸入端處理電路,一部分是A/D轉(zhuǎn)換電路,采集電路單元如圖2所示。模擬量輸入端處理電路可同時(shí)接受4~20mA直流電流和1~5V直流電壓兩路標(biāo)準(zhǔn)信號(hào),其中4~20mA電流信號(hào)經(jīng)由250歐、50歐精密電阻串聯(lián)網(wǎng)絡(luò)轉(zhuǎn)換為1~5V標(biāo)準(zhǔn)電壓輸出信號(hào)輸入至A/D轉(zhuǎn)換電路;1~5V直流電壓輸入信號(hào)直接輸入至A/D轉(zhuǎn)換電路。
圖2 采集電路單元
為實(shí)現(xiàn)高精度A/D轉(zhuǎn)換,從眾多的A/D轉(zhuǎn)換芯片精心挑選了AD公司的16位轉(zhuǎn)換芯片AD7705。AD7705接受兩路模擬輸入信號(hào),分別是AN1+、AN1-和AN2+、AN2-,兩路輸入信號(hào)并行輸入,串行分時(shí)進(jìn)行轉(zhuǎn)換。時(shí)鐘頻率設(shè)計(jì)為2.4576MHz,晶振Y2兩端需各接一20pF電容到地以保證獲得精準(zhǔn)的時(shí)鐘頻率。AD7705獲得精準(zhǔn)A/D轉(zhuǎn)換結(jié)果須向其提供基準(zhǔn)電壓,選用AD公司生產(chǎn)的精密基準(zhǔn)電壓源芯片REF192提供2.5V基準(zhǔn)電壓,REF192其輸出引腳6到地之間須并接0.1u和10u的電容以保證其輸出電壓平坦。
AD7705與單片機(jī)Atmega 32連接方式如下:片選端CS—PD4、復(fù)位端RESET—PD5、邏輯輸出端DRRY—PB3、串行數(shù)據(jù)輸入端DIN—PB5、串行數(shù)據(jù)輸出端DOUT—PB6、串行時(shí)鐘SCLK—PB7。
通訊電路單元用于實(shí)現(xiàn)模擬量采集板卡與計(jì)算機(jī)之間的數(shù)據(jù)交互。計(jì)算機(jī)的RS232串口電平與TTL電平不兼容,因此,不能直接與計(jì)算機(jī)連接,須進(jìn)行邏輯電平轉(zhuǎn)換,將TTL電平轉(zhuǎn)換為RS232電平,通訊電路單元如圖3所示。轉(zhuǎn)換芯片使用MAX232E,其中,穩(wěn)壓管D11、D12用于保護(hù)計(jì)算機(jī)串口,TXD接ATmega 32的異步串口發(fā)送端PD1,RXD接AT-mega 32的異步串口接收端PD0,RS-T接計(jì)算機(jī)的RS232發(fā)送端3,RS-R接計(jì)算機(jī)的RS232接收端2,RS232的GND與采集板卡共地。ATmega 32通過(guò)異步串口與計(jì)算機(jī)進(jìn)行通訊,將采集的模擬量傳送至計(jì)算機(jī)。
圖3 通訊電路單元
軟件設(shè)計(jì)包括兩部分:一部分是采集板卡的底層驅(qū)動(dòng)軟件,完成AD7705設(shè)置、轉(zhuǎn)換結(jié)果讀取、暫存SRAM、與計(jì)算機(jī)通訊等。采集板卡的底層驅(qū)動(dòng)軟件分為采集板卡編址模塊、串行異步通訊模塊、AD7705驅(qū)動(dòng)模塊、定時(shí)器中斷應(yīng)用模塊。另一部分是計(jì)算機(jī)應(yīng)用軟件,結(jié)合具體的測(cè)量?jī)x器,完成對(duì)采集板卡的編址、數(shù)據(jù)讀取與存儲(chǔ)等功能,軟件流程如圖4所示。
圖4 軟件流程
采集板卡編址模塊與計(jì)算機(jī)應(yīng)用軟件結(jié)合,設(shè)置采集板卡地址。采集板卡啟動(dòng)后將初始地址設(shè)為00H,使用時(shí)如需修改地址,則由計(jì)算機(jī)應(yīng)用軟件發(fā)送編址命令,板卡接收到編址命令后設(shè)置為相應(yīng)地址,將地址符固化于EEPROM起始字節(jié)中,此功能主要是用于實(shí)現(xiàn)多塊采集板卡通過(guò)數(shù)據(jù)總線(xiàn)與計(jì)算機(jī)進(jìn)行數(shù)據(jù)傳輸,若采用RS485總線(xiàn)進(jìn)行遠(yuǎn)距離數(shù)據(jù)傳輸時(shí),須配接一對(duì)RS232-RS485轉(zhuǎn)換器。
串行異步通訊模塊配置ATmega 32的各項(xiàng)通訊參數(shù),通過(guò)USART接口與計(jì)算機(jī)進(jìn)行通訊。初始設(shè)置波特率為9600bps,根據(jù)應(yīng)用可由計(jì)算機(jī)應(yīng)用軟件在線(xiàn)修改波特率以實(shí)現(xiàn)不同的數(shù)據(jù)傳輸速率,接收器、發(fā)送器與接收中斷使能,設(shè)置幀格式為 8個(gè)數(shù)據(jù)位,1個(gè)停止位,在接收中斷函數(shù)中讀取計(jì)算機(jī)發(fā)送來(lái)的命令。
AD7705驅(qū)動(dòng)模塊分別通過(guò)讀寫(xiě)操作完成對(duì)AD7705的配置。定時(shí)器中斷模塊利用定時(shí)器1按一定的周期定時(shí)地讀取AD7705的轉(zhuǎn)換結(jié)果。讀取數(shù)據(jù)之前必須確定數(shù)據(jù)寄存器的狀態(tài),在定時(shí)器中斷函數(shù)中查詢(xún)AD7705的DRDY引腳狀態(tài),如果為低電平,表示轉(zhuǎn)換完成則讀取轉(zhuǎn)換結(jié)果,否則繼續(xù)等待直到轉(zhuǎn)換完成,如此循環(huán),不斷讀出所需的數(shù)據(jù)量。
計(jì)算機(jī)應(yīng)用軟件用VC編寫(xiě),完成與模擬量采集板卡之間的數(shù)據(jù)通信,具有地址設(shè)定、參數(shù)設(shè)置、測(cè)量數(shù)據(jù)自動(dòng)保存和繪制實(shí)時(shí)曲線(xiàn)等功能[2]。當(dāng)計(jì)算機(jī)連接多塊模擬量采集板卡時(shí)需分別對(duì)每塊板卡進(jìn)行編址以進(jìn)行區(qū)分,地址不能重復(fù),參數(shù)設(shè)置用于對(duì)采集的物理量根據(jù)量程進(jìn)行線(xiàn)性計(jì)算,如對(duì)于量程0~100℃、4~20mA溫度測(cè)量?jī)x表,4mA代表溫度為0℃,20mA代表溫度為100℃。數(shù)據(jù)自動(dòng)保存功能將采集數(shù)據(jù)以txt文件形式存儲(chǔ)于計(jì)算機(jī)以供日后進(jìn)行數(shù)據(jù)分析,txt文件以當(dāng)前日期時(shí)間為文件名命名規(guī)則,首行分別代表日期、時(shí)間、數(shù)量、板卡地址,其他行代表不同時(shí)間測(cè)量數(shù)據(jù)。
實(shí)際應(yīng)用結(jié)果表明硬件合理,運(yùn)行穩(wěn)定、采樣精度高,應(yīng)用方便。編址功能為總線(xiàn)應(yīng)用提供了基礎(chǔ),利用總線(xiàn)可以同時(shí)掛接多塊模擬量采集卡實(shí)現(xiàn)多個(gè)儀表不同參數(shù)的采集。可編址串行模擬量采集板卡已經(jīng)成功應(yīng)用到城市污水處理工藝優(yōu)化研究課題中,完成了對(duì)水位、流量、溫度等多個(gè)測(cè)量參數(shù)的采集與保存,為課題日后數(shù)據(jù)分析提供了基礎(chǔ)。
[1]Atmel Corporation.ATmega32 Datasheet[EB/OL].http://www.atmel.com.2011,(1):1-305.
[2]閆瑞杰,李海香,郝瑞霞.基于ATmega 16的AD7705多通道模擬量采集系統(tǒng)的設(shè)計(jì)[J].化工自動(dòng)化及儀表,2011,38(4):466-469.
[3]Analog Devices Corporate.AD7705 Datasheet[EB/OL].http://www.analog.com.2010,(6):1-30.