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