高 瞻
(四川大學計算機學院,四川成都 610064)
數據采集系統作為一種典型的嵌入式系統,已得到廣泛的應用.早期的數據采集系統基于 ISA、PCI總線,系統龐大而且難以擴展.單片機的出現使數據采集系統得到了發展,基于單片機的數據采集系統在一段時間內被廣泛應用,但單片機處理數據能力比較低.隨著數據采集的要求不斷提高,基于DSP、FPG A等高端微處理器的數據采集系統開始發展,同時,基于PC的高速數據采集系統也日趨成熟.但隨著ARM時代來臨,數據采集系統也必將被以ARM為核心的新一代數據采集系統所取代.
本文設計的系統主要實現以下功能:①前端數據采集;②數據高速緩存以及對數據壓縮傳輸到上位機監控程序;③下位機顯示模塊.系統工作的整個流程是:數據采集模塊將外部傳感器數據采集到之后直接送到緩存(SDRAM),經數據壓縮后,通過網絡傳送到上位機監控程序.同時,也將基本數據參數顯示在下位機液晶顯示模塊上.這樣在沒有上位機的情況下也能實時觀察到數據.系統工作原理框架圖如圖1所示.
根據系統功能的要求,本系統的硬件包括前端的數據采集、ARM核心板、語音通道、數據傳輸以及液晶顯示模塊.硬件結構如圖2所示.
圖1 系統工作原理示意圖
圖2 硬件結構示意圖
傳感器模擬信號經過調理電路之后,進入數據采集模塊轉換成相應的數字信號.數據采集模塊的核心A/D采用的是AD公司的低功耗、高性能、高性價比的單通道12位的逐次逼近串行數模轉換器AD7466[1].該款芯片具有8通道、能夠大量傳輸數據的功能.ARM9將數據采集卡采集到的數據通過網絡傳輸到上位機監測控制終端和液晶顯示模塊.
本系統采用的ARM9是目前應用最廣的ARM9處理器——三星 S3C2440[2],該芯片是完全圍繞ARM920TARM Thumb處理器構建的系統,1.2 V內核,1.8 V/2.5 V/3.3 V儲存器,3.3 V擴展I/O,16 K B指令Cache(I-Cache)/16 K B數據Cache(D-Cache).操作頻率:Fclk 400 MHz,Hclk 136 MHz,Pclk 68 MHz.支持IIS音頻編解碼器接口,10/100 M自適應網卡,20針JTAG調試口并集成了LCD專用控制器.此外,它還具有豐富應用外設及標準的接口,具有低功耗、低成本、高性能等特點.
2.3.1 數據傳輸.
本系統的數據傳輸采用的是10/100 M自適應網絡傳輸,網絡控制芯片選取DAVICOM公司的DM9161,該芯片是一款針對10/100 Mbps低功耗網絡傳輸芯片.在媒體方面,它直接提供一個UTP5 (Unshielded Twisted Pair Category 5)編碼的100 Mbps高速以太網,而在10 Mbps以太網方面則是UTP5 UTP3編碼.通過獨立媒體接口MII(Media Independent Interface),DM9161就可以連接到MAC(Medium Access Control)層,從而確保高速的數據接入.
2.3.2 液晶顯示.
系統液晶模塊選的是點陣液晶——飛宇達公司的FY D12864-0402B[2],它是一款內置ST7920控制器的128×32點陣圖形液晶顯示器,通過對ST7920控制器的編程應用,可以實現字符和圖形的顯示.
在軟件的設計方面,本系統軟件架構采用了TCP/IP協議分層的思想[4]:整個軟件系統首先由VIVI引導起來,然后依次加載Linux內核與根文件系統;下位機應用作為守護進程在Linux啟動時自動加載,上位機的監視程序在下位機啟動之后自動獲取數據信息;驅動層的軟件被直接編譯到內核模塊中.系統軟件架構如圖3所示.
嵌入式Linux系統由引導程序bootloader、裁減過的Linux內核和根文件系統組成.由于篇幅原因,本文只介紹Linux內核的裁減和下載.
3.1.1 Linux內核裁減.
圖3 系統軟件層次圖
Linux內核裁減步驟包括:①解壓linux源碼包, tar-zxvf kernel-2.6.13.tar.gz-C/;②進入工作目錄,cd kernel-2.6.13;③導出編譯器PATH,export PATH=/ usr/local/arm/2.95.3/bin:PATH;④清除中間文件, make clean;⑤配置內核,make menuconfig,菜單配置界面;⑥進入配置界面;⑦生成依賴文件,make⑧生成鏡像文件arm-linux-zImage.
完成上述步驟后,編譯不報錯就可以在/arch/ arm/boot/目錄下找到zImage文件.
3.1.2 Linux內核下載.
利用tftp工具將編譯好的內核Image文件下載到目標板,目標板配置如下:
系統的應用程序分為下位機程序和上位機程序.下位機程序運行在以ARM為核心的硬件平臺上,上位機程序運行在的PC機上,接口程序采用的是LabWindows/CVI8.0開發軟件[4].該監測程序主要包括主程序、顯示子程序、通訊子程序和中斷子程序等,其程序流程圖如圖4所示.
利用ARM9的低功耗,高性能等特點,我們設計了體積小、功耗低的嵌入式數據采集和傳送系統.經過調試和應用表明,該系統具有良好的用戶界面,能在沒有外接電源的復雜環境中采集數據,并具有良好的軟硬件可裁剪性和擴展性.
圖4 系統程序流程示意圖
[1]AD Corporation.AD7466/AD7467/AD7468 datasheet[G].AD Corporation,2008.
[2]Samsung Corporation.S3C2440A datasheet[G].Samsung Corporation,2002:30-45.
[3]FY D Corporation.FY D12864-0402B LCD datasheet[G].FY D Corporation,2002:90-103.
[4]蔣志發.基于ARM9的信號采集系統軟件設計與實現[J].成都大學學報(自然科學版),2009,28(2):46-49.
[5]游 磊.基于AT91RM9200的點陣圖形液晶模塊接口設計[J].成都大學學報(自然科學版),2007,26(4):323-325.