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