于鵬
(中國(guó)科學(xué)院長(zhǎng)春光學(xué)精密機(jī)械與物理研究所 空間機(jī)器人系統(tǒng)創(chuàng)新研究室,吉林 長(zhǎng)春 130033)
摘要:隨著計(jì)算機(jī)和互聯(lián)網(wǎng)等信息行業(yè)的快速發(fā)展,數(shù)據(jù)采集系統(tǒng)越來越得到人們的重視和應(yīng)用。以某研究院數(shù)據(jù)采集系統(tǒng)的研究室橫向項(xiàng)目為基礎(chǔ),闡述了數(shù)據(jù)采集系統(tǒng)的軟硬件設(shè)計(jì),并實(shí)現(xiàn)了一套基于ARM CortexM3的數(shù)據(jù)采集系統(tǒng)。首先對(duì)系統(tǒng)選型及開發(fā)平臺(tái)進(jìn)行了簡(jiǎn)要介紹,進(jìn)而在此基礎(chǔ)上詳細(xì)闡述了硬件電路和軟件程序的設(shè)計(jì),最后說明綜合調(diào)試的方法和遇到的關(guān)鍵問題及其解決辦法。
關(guān)鍵詞:數(shù)據(jù)采集;ARM Cortex-M3;無線傳輸;高精度
0引言
信息行業(yè)發(fā)展的速度讓人吃驚,在此影響下一些相對(duì)傳統(tǒng)的行業(yè)也發(fā)生了巨大的變化。隨著計(jì)算機(jī)的廣泛應(yīng)用和互聯(lián)網(wǎng)行業(yè)的快速發(fā)展,數(shù)據(jù)采集的重要性也越來越明顯,它是計(jì)算機(jī)與外部物理世界的連接橋梁,已被廣泛應(yīng)用于各個(gè)領(lǐng)域,國(guó)內(nèi)外各種數(shù)據(jù)采集系統(tǒng)相繼問世,數(shù)據(jù)采集進(jìn)入了一個(gè)全新的時(shí)代[1]。
本文將結(jié)合橫向項(xiàng)目,針對(duì)建筑行業(yè)設(shè)計(jì)并實(shí)現(xiàn)一套數(shù)據(jù)采集系統(tǒng),來幫助獲得應(yīng)變、震動(dòng)等專業(yè)數(shù)據(jù),以便進(jìn)行分析仿真。系統(tǒng)將基于嵌入式技術(shù),針對(duì)不同信號(hào)的采集設(shè)計(jì)動(dòng)態(tài)和靜態(tài)兩種節(jié)點(diǎn),靈活設(shè)計(jì)傳輸方式,既可以采用以太網(wǎng),又可以采用無線網(wǎng),而且還要將各種傳輸方式都接入上位機(jī)所在局域網(wǎng),使系統(tǒng)更好地適應(yīng)具體的工作環(huán)境。
1系統(tǒng)硬件電路設(shè)計(jì)
1.1主控模塊
主控模塊是整個(gè)硬件系統(tǒng)的核心,整個(gè)系統(tǒng)的運(yùn)行都是由這里控制,所以主控芯片的性能直接影響系統(tǒng)的各項(xiàng)指標(biāo)。
本系統(tǒng)的主控芯片選用TI公司的LM3S9B96,它采用ARM CortexM3內(nèi)核,主流外設(shè)一應(yīng)俱全,而且集成了以太網(wǎng)控制器。主控芯片及其外圍部分電路見圖1,芯片外接16 MHz的晶振作為其頻率源,經(jīng)鎖相環(huán)倍頻后可達(dá)到200 MHz,以太網(wǎng)控制器單獨(dú)外接一個(gè)25 MHz的晶振,用復(fù)位芯片MAX811為芯片提供穩(wěn)定的復(fù)位電平,將芯片的JTAG口引出用于程序的下載和仿真跟蹤調(diào)試,LDO腳接一個(gè)線性穩(wěn)壓芯片F(xiàn)AN2558以保證內(nèi)核工作穩(wěn)定,LED1則是一個(gè)雙色LED,用于系統(tǒng)工作時(shí)的狀態(tài)指示[2]。
另外主控模塊還設(shè)計(jì)有串口電平轉(zhuǎn)換電路,方便系統(tǒng)和計(jì)算機(jī)直連輔助調(diào)試,電路如圖2所示。
1.2電源模塊
電源模塊為整個(gè)系統(tǒng)提供電源保障,它的穩(wěn)定直接關(guān)系到系統(tǒng)各模塊的穩(wěn)定工作,而且各電路模塊所需電壓不盡相同,所以電源模塊的設(shè)計(jì)相對(duì)比較復(fù)雜。
首先是電源輸入選擇電路,系統(tǒng)有外接DC 12 V和7.4 V鋰電池兩種供電方式,當(dāng)外接直流電源時(shí)自動(dòng)切換到鋰電池充電狀態(tài),切換電路如圖3所示,供電方式的切換通過繼電器實(shí)現(xiàn)。圖1主控芯片LM3S9B96及其外圍部分電路
而鋰電池的充電控制用電流源芯片MAX1640實(shí)現(xiàn),如圖4所示?! ?/p>
其次是穩(wěn)壓電路,輸入電源經(jīng)過線性穩(wěn)壓得到數(shù)字+5 V,再經(jīng)升壓模塊升至±15 V,而后經(jīng)過LM317和LM337構(gòu)成的組合電路隔離穩(wěn)壓后得到模擬±15 V,用于電壓預(yù)處理電路和電壓型傳感器供電;數(shù)字+5 V通過LT10863.3 V進(jìn)一步穩(wěn)到+3.3 V,用于主控芯片等部分芯片的供電。圖5給出了部分線性穩(wěn)壓電路。
1.3采樣模塊
采樣模塊是系統(tǒng)的重要組成部分,其任務(wù)就是對(duì)ICP傳感器、應(yīng)變傳感器等進(jìn)行采樣,并將數(shù)據(jù)傳送至上位機(jī)進(jìn)行處理,所以采樣模塊是實(shí)現(xiàn)任務(wù)的第一步,即將微小的傳感器信號(hào)放大濾波后送入AD芯片轉(zhuǎn)換成數(shù)字量[3]。
作為采樣模塊的核心,動(dòng)態(tài)節(jié)點(diǎn)和靜態(tài)節(jié)點(diǎn)所選用的AD芯片不同。動(dòng)態(tài)節(jié)點(diǎn)選用AD7716對(duì)處理后的信號(hào)進(jìn)行采樣,靜態(tài)節(jié)點(diǎn)選用AD7734,兩款芯片均外接一個(gè)6 MHz晶振為其提供采樣時(shí)鐘,與主控芯片通過SPI進(jìn)行通信,兩且AD7716還外接了一個(gè)LED作為采樣指示燈,其電路如圖6所示?!?/p>
1.4通信模塊
通信模塊是系統(tǒng)的重要組成部分,系統(tǒng)的任務(wù)就是對(duì)ICP傳感器、應(yīng)變傳感器等進(jìn)行采樣,并將數(shù)據(jù)傳送至上位機(jī)進(jìn)行處理,所以采樣是實(shí)現(xiàn)系統(tǒng)任務(wù)的第一步,通信是實(shí)現(xiàn)系統(tǒng)任務(wù)的第二步,要將AD芯片轉(zhuǎn)換的采樣數(shù)據(jù)傳送至上位機(jī)。有線傳輸方式用以太網(wǎng),主控芯片已經(jīng)集成,只需配置外圍電路即可[4]。無線傳輸方式有兩種,動(dòng)態(tài)節(jié)點(diǎn)采用WiFi無線網(wǎng),用以色列ConnectOne公司的Nano WiReach WiFi聯(lián)網(wǎng)控制器實(shí)現(xiàn),通過串口與主控芯片相連;靜態(tài)節(jié)點(diǎn)采用ZigBee無線網(wǎng),用美國(guó)Digi公司的XBeePRO 射頻模塊實(shí)現(xiàn),同樣通過串口與主控芯片相連。
2系統(tǒng)軟件程序設(shè)計(jì)
2.1主控程序
主程序負(fù)責(zé)系統(tǒng)的宏觀控制,調(diào)用各功能函數(shù)共同實(shí)現(xiàn)系統(tǒng)功能。系統(tǒng)的主程序僅有2個(gè)函數(shù),初始化函數(shù)init()和主函數(shù)main()。初始化函數(shù)init()負(fù)責(zé)系統(tǒng)的初始化;主函數(shù)main()是整個(gè)程序的入口函數(shù),對(duì)其他文件和函數(shù)依功能需求進(jìn)行組織和調(diào)用,主程序流程圖如圖7所示。
2.2采樣程序
系統(tǒng)的采樣方式設(shè)計(jì)有三種,即動(dòng)作采樣、定時(shí)采樣和觸發(fā)采樣。動(dòng)作采樣是上位機(jī)發(fā)送采樣命令后,系統(tǒng)開始采樣相應(yīng)長(zhǎng)度數(shù)據(jù);定時(shí)采樣是在某一設(shè)定時(shí)刻開始采樣相應(yīng)長(zhǎng)度數(shù)據(jù);觸發(fā)采樣是一直監(jiān)視某個(gè)采樣值,一旦其大于規(guī)定值時(shí)開始采樣相應(yīng)長(zhǎng)度數(shù)據(jù),并且開始時(shí)刻前一段時(shí)間內(nèi)的采樣值也要保留,以便分析觸發(fā)時(shí)刻前后的變化。雖然有三種采樣方式,但分析后可知,只需編寫兩個(gè)函數(shù)便可實(shí)現(xiàn)三種采樣方式,即一個(gè)只負(fù)責(zé)采樣一定長(zhǎng)度數(shù)據(jù)的普通采樣函數(shù)和一個(gè)監(jiān)視采樣值并進(jìn)行一定緩存的觸發(fā)采樣函數(shù),這兩個(gè)函數(shù)進(jìn)行適時(shí)調(diào)用和組合,即可實(shí)現(xiàn)這三種采樣方式。
動(dòng)態(tài)節(jié)點(diǎn)的AD7716的采樣采用中斷方式,其數(shù)據(jù)準(zhǔn)備好后會(huì)觸發(fā)外部中斷,在中斷服務(wù)程序中對(duì)其進(jìn)行采樣并將數(shù)據(jù)緩存。對(duì)AD7716進(jìn)行初始化后其便開始采樣,就會(huì)觸發(fā)中斷,所以在系統(tǒng)不進(jìn)行采樣時(shí)將外部中斷口禁能,在進(jìn)入普通采樣函數(shù)時(shí)將其使能。靜態(tài)節(jié)點(diǎn)的采樣程序和動(dòng)態(tài)節(jié)點(diǎn)相比,只因AD芯片不同而存在一些差異。
2.3通信程序
通信程序主要實(shí)現(xiàn)數(shù)據(jù)發(fā)送功能,發(fā)送函數(shù)可以發(fā)送采樣數(shù)據(jù)、參數(shù)或狀態(tài)結(jié)構(gòu)體,并且可以根據(jù)網(wǎng)絡(luò)設(shè)置參數(shù)自動(dòng)選擇發(fā)送方式,其程序流程圖如圖8所示。
這里需要注意的是WiFi模塊需用串口通過AT指令進(jìn)行控制。ZigBee模塊同樣通過串口與主控芯片進(jìn)行通信,采用透明傳輸模式,上電后自動(dòng)進(jìn)入此模式,所以只要事先將模塊配置好,對(duì)于主控芯片而言就相當(dāng)于一個(gè)無線串口,收發(fā)數(shù)據(jù)直接操作所用串口即可[5]。
3系統(tǒng)調(diào)試
系統(tǒng)調(diào)試中經(jīng)常用到虛擬串口,它是RealView MDK的調(diào)試器提供的一個(gè)比較方便的功能[6],將MDK自帶例程中的Retarget.c添加到系統(tǒng)工程中,然后重寫fputc()函數(shù),程序如下:
int fputc(int ch, FILE *f)
{
if(DEMCR & TRCENA)
{
while(ITM_Port32(0) == 0);
ITM_Port8(0) = ch;
}
return(ch);
}
這樣,在程序中調(diào)用打印函數(shù)printf(),就可以在Debug(printf) Viewer調(diào)試窗口輸出打印信息。
一臺(tái)上位機(jī)同時(shí)控制多個(gè)節(jié)點(diǎn)。動(dòng)態(tài)節(jié)點(diǎn)可以同時(shí)采集最多四路ICP傳感器或應(yīng)變傳感器,具有22位高精度,無線數(shù)據(jù)傳輸通過WiFi無線網(wǎng),速度較快可達(dá)400 kb/s,直接通過局域網(wǎng)連接上位機(jī),適合大量高速數(shù)據(jù)的近距采集;靜態(tài)節(jié)點(diǎn)可分時(shí)采集八路應(yīng)變傳感器,具有24位高精度,無線傳輸通過ZigBee無線網(wǎng),距離較遠(yuǎn)可達(dá)1 km,適合小量低速數(shù)據(jù)的遠(yuǎn)距采集。
通過聯(lián)合上位機(jī)調(diào)試,單節(jié)點(diǎn)可穩(wěn)定工作,完成系統(tǒng)任務(wù),實(shí)現(xiàn)了系統(tǒng)功能。但由于時(shí)間及水平有限,多節(jié)點(diǎn)同時(shí)連接上位機(jī)工作時(shí)不穩(wěn)定,有數(shù)據(jù)丟失現(xiàn)象;另外采用以太網(wǎng)傳輸方式時(shí),如果節(jié)點(diǎn)通過DHCP方式獲得IP地址,不能建立TCP連接;功能方面也還不夠人性化,不夠完善。這些問題都有待進(jìn)一步研究。
4結(jié)論
本文設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)基于ARM CortexM3嵌入式內(nèi)核,實(shí)現(xiàn)了對(duì)多路ICP或應(yīng)變傳感器同時(shí)進(jìn)行大量高速近距采集和小量低速遠(yuǎn)距采集,并且具有高精度。靈活設(shè)計(jì)以太網(wǎng)、WiFi和ZigBee無線網(wǎng)多種傳輸方式,使系統(tǒng)能更好地適應(yīng)工作環(huán)境。
參考文獻(xiàn)
[1] 劉滿倉(cāng),雷衛(wèi)寧,王春成.基于ARM的高精度數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012,35(8):1214.
?。?] 王建輝,李正民,劉偉偉.基于ARM CortexM3的智能數(shù)據(jù)采集終端的設(shè)計(jì)[J].計(jì)算機(jī)與現(xiàn)代化,2011(9):6164.
?。?] 紀(jì)宗南.高分辨率的數(shù)據(jù)采集系統(tǒng)[J].電子元器件應(yīng)用,2002,4(12):1518.
?。?] 劉亮,王擊,楊澤.基于ARM CortexM3和Internet的實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),2011,24(11):1819.
?。?] 嚴(yán)正國(guó),黎偉,馬龍,等.一種分布式無線同步數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2014,40(10):4952,56.
?。?] 張奕,余海龍,譚劍美.四通道高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012,35(9):1012.