基于eCos在基于ARM7硬件平臺上的應(yīng)用
?。?) 組件定義語言CDL
CDL是eCos組件框架中的一個關(guān)鍵部分,eCos所有模塊的程序包中都包含一個CDL腳本對該包進行描述并提供配置選項。以本系統(tǒng)中的串口驅(qū)動程序包為例,在該包對應(yīng)的CDL中定義了一個名為CYGPKG_IO_SERIAL_ARM_AT91的cdl_package。在這個cdl_package中詳細列出了該包的一些屬性,如該包必須在工程已經(jīng)包含了硬件抽象層包CYGPKG_HAL_ARM_AT91和上層串口I/O包CYGPKG_IO_SERIAL的情況下才會被使能。另外,串口的一些常用特性,如波特率、設(shè)備名、緩沖區(qū)大小等配置選項也是必不可少的。在一些復雜的CDL中還會包含對該包中的源程序進行編譯時的一些編譯選項。在進行配置的時候,該包還會產(chǎn)生一個包含了各個可配置參數(shù)數(shù)值的頭文件。當其他包使用由CYGPKG_IO_SERIAL_ARM_AT91包提供的可配置參數(shù)時,這個新產(chǎn)生的頭文件就會被相關(guān)的源文件通過#include語法包含。
?。?) 組件倉庫ecos.db
ecos.db是一個包含了所有可用程序包和配置模版的文本文件。在該文件中,需要注冊所有的CDL包。在注冊時以package關(guān)鍵字提供相應(yīng)包的名稱、CDL腳本文件的文件路徑以及對該包的一個簡單描述。在ecos.db中還會以target關(guān)鍵字生成配置模版,從而提供目標平臺的一些基本組成結(jié)構(gòu),使目標平臺包括所需要的已經(jīng)注冊了的CDL配置包。
?。?) 圖形配置工具configtool
configtool是利用MFC編寫的Windows程序,是eCos可配置性的執(zhí)行者,也可以理解成是CDL腳本的解釋器。一方面它讀取ecos.db文件中的目標平臺和已注冊的配置包信息,根據(jù)配置包的路徑找到相應(yīng)的CDL腳本,然后根據(jù)腳本中給出的屬性向程序員提供圖形化的配置信息;另一方面,它還可以接受用戶的輸入,包括單選按鈕、復選框、下拉列表、文本輸入等。當用戶保存一個配置時,configtool會根據(jù)CDL語言的提示生成相應(yīng)的頭文件,也會將指定的頭文件從配置包中復制到配置文件所在的工作目錄。無論是生成的頭文件還是拷貝的頭文件,都會在編譯時被源程序所引用。對于內(nèi)核源程序,configtool又可以理解成編譯器。當用戶的配置選項被保存并且對工程進行編譯時,configtool會在后臺調(diào)用真正的編譯器GCC,根據(jù)配置包CDL中的編譯選項控制GCC對所有需要的內(nèi)核源文件進行編譯并生成庫文件和對應(yīng)的鏈接腳本。當然configtool只是對eCos內(nèi)核進行編譯,用戶的應(yīng)用程序只需在編譯時和由configtool編譯生成的庫文件進行鏈接就可以得到最終的可執(zhí)行映像文件。
2 系統(tǒng)硬件框架
本系統(tǒng)是一個以ARM7為核心構(gòu)成的測控系統(tǒng),通過對傳感器的脈沖信號進行處理而得到待測物料的流量,并通過控制給料器的給料速度達到流量控制的目的。對于一個有實用價值的測控系統(tǒng),必須具有人機交互、閉環(huán)控制、數(shù)據(jù)通信和存儲等功能。本課題所研制的流量測控系統(tǒng)的硬件框圖如圖3所示。
圖3 流量測控系統(tǒng)硬件框圖
圖3中,處理器為ARM7內(nèi)核的工業(yè)級芯片AT91M55800,其強大的功能保證了系統(tǒng)的實時性和穩(wěn)定性的要求。2 MB的Flash SST39VF160用來保存程序代碼、測量所需的一些參數(shù)以及測量結(jié)果的簡單統(tǒng)計信息。在工業(yè)生產(chǎn)中,經(jīng)常需要對一次測量中的數(shù)據(jù)進行歷史再現(xiàn),以便對一些事故或故障進行排查。本系統(tǒng)通過采用1 MB的大容量RAM來實現(xiàn)這一功能:除了用來作為程序運行時的內(nèi)存外,RAM還用來實時保存每一時刻的測量數(shù)據(jù)。USB總線的通信口用來和現(xiàn)場計算機進行通信,以實現(xiàn)一些更加完善的處理,如數(shù)據(jù)打印、結(jié)果分析、實時數(shù)據(jù)的硬盤保存等。分辨率為320×240的LCD用來作為系統(tǒng)的顯示終端配合4×5的鍵盤來完成系統(tǒng)的人機交互操作。對變頻器的控制和對溫度信號的采集通過485總線完成。6路脈沖信號是本系統(tǒng)測量功能的核心,通過對這6路脈沖進行處理可以得到流量相關(guān)的所有信息。4~20 mA電流信號用來控制給料系統(tǒng),以實現(xiàn)閉環(huán)控制。由于在工業(yè)環(huán)境中使用,對于一些長線連接必須采取隔離措施。本系統(tǒng)對測量脈沖、485通信信號和4~20 mA電流信號都采取了光電隔離措施。
評論