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