《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ARM Cortex-M3的數(shù)據(jù)采集系統(tǒng)的研究與實(shí)現(xiàn)
基于ARM Cortex-M3的數(shù)據(jù)采集系統(tǒng)的研究與實(shí)現(xiàn)
2016年微型機(jī)與應(yīng)用第10期
于鵬
(中國(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 CortexM3的數(shù)據(jù)采集系統(tǒng),。首先對(duì)系統(tǒng)選型及開發(fā)平臺(tái)進(jìn)行了簡(jiǎn)要介紹,進(jìn)而在此基礎(chǔ)上詳細(xì)闡述了硬件電路和軟件程序的設(shè)計(jì),,最后說明綜合調(diào)試的方法和遇到的關(guān)鍵問題及其解決辦法,。
Abstract:
Key words :

  于鵬

  (中國(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 CortexM3的數(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 CortexM3內(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],。

001.jpg

  另外主控模塊還設(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及其外圍部分電路 

002.jpg

  而鋰電池的充電控制用電流源芯片MAX1640實(shí)現(xiàn),,如圖4所示?! ?/p>

003.jpg

  其次是穩(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通過LT10863.3 V進(jìn)一步穩(wěn)到+3.3 V,,用于主控芯片等部分芯片的供電,。圖5給出了部分線性穩(wěn)壓電路。

  

004.jpg

  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所示,。 

005.jpg

  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公司的XBeePRO 射頻模塊實(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所示,。

006.jpg

  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所示。

007.jpg

  這里需要注意的是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 CortexM3嵌入式內(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)

 ?。?] 劉滿倉(cāng),,雷衛(wèi)寧,王春成.基于ARM的高精度數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),,2012,,35(8):1214.

  [2] 王建輝,,李正民,,劉偉偉.基于ARM CortexM3的智能數(shù)據(jù)采集終端的設(shè)計(jì)[J].計(jì)算機(jī)與現(xiàn)代化,2011(9):6164.

 ?。?] 紀(jì)宗南.高分辨率的數(shù)據(jù)采集系統(tǒng)[J].電子元器件應(yīng)用,,2002,4(12):1518.

 ?。?] 劉亮,,王擊,楊澤.基于ARM CortexM3和Internet的實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),,2011,,24(11):1819.

  [5] 嚴(yán)正國(guó),,黎偉,,馬龍,等.一種分布式無線同步數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,,2014,,40(10):4952,,56.

  [6] 張奕,,余海龍,,譚劍美.四通道高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012,,35(9):1012.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。