新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于eCos在基于ARM7硬件平臺上的應用

        基于eCos在基于ARM7硬件平臺上的應用

        作者: 時間:2010-07-27 來源:網絡 收藏

         ?。?) 組件定義語言CDL

          CDL是組件框架中的一個關鍵部分,所有模塊的程序包中都包含一個CDL腳本對該包進行描述并提供配置選項。以本系統中的串口驅動程序包為例,在該包對應的CDL中定義了一個名為CYGPKG_IO_SERIAL_ARM_AT91的cdl_package。在這個cdl_package中詳細列出了該包的一些屬性,如該包必須在工程已經包含了抽象層包CYGPKG_HAL_ARM_AT91和上層串口I/O包CYGPKG_IO_SERIAL的情況下才會被使能。另外,串口的一些常用特性,如波特率、設備名、緩沖區大小等配置選項也是必不可少的。在一些復雜的CDL中還會包含對該包中的源程序進行編譯時的一些編譯選項。在進行配置的時候,該包還會產生一個包含了各個可配置參數數值的頭文件。當其他包使用由CYGPKG_IO_SERIAL_ARM_AT91包提供的可配置參數時,這個新產生的頭文件就會被相關的源文件通過#include語法包含。

         ?。?) 組件倉庫ecos.db

          ecos.db是一個包含了所有可用程序包和配置模版的文本文件。在該文件中,需要注冊所有的CDL包。在注冊時以package關鍵字提供相應包的名稱、CDL腳本文件的文件路徑以及對該包的一個簡單描述。在ecos.db中還會以target關鍵字生成配置模版,從而提供目標的一些基本組成結構,使目標包括所需要的已經注冊了的CDL配置包。

         ?。?) 圖形配置工具configtool

          configtool是利用MFC編寫的Windows程序,是可配置性的執行者,也可以理解成是CDL腳本的解釋器。一方面它讀取ecos.db文件中的目標和已注冊的配置包信息,根據配置包的路徑找到相應的CDL腳本,然后根據腳本中給出的屬性向程序員提供圖形化的配置信息;另一方面,它還可以接受用戶的輸入,包括單選按鈕、復選框、下拉列表、文本輸入等。當用戶保存一個配置時,configtool會根據CDL語言的提示生成相應的頭文件,也會將指定的頭文件從配置包中復制到配置文件所在的工作目錄。無論是生成的頭文件還是拷貝的頭文件,都會在編譯時被源程序所引用。對于內核源程序,configtool又可以理解成編譯器。當用戶的配置選項被保存并且對工程進行編譯時,configtool會在后臺調用真正的編譯器GCC,根據配置包CDL中的編譯選項控制GCC對所有需要的內核源文件進行編譯并生成庫文件和對應的鏈接腳本。當然configtool只是對eCos內核進行編譯,用戶的程序只需在編譯時和由configtool編譯生成的庫文件進行鏈接就可以得到最終的可執行映像文件。

          2 系統框架

          本系統是一個以為核心構成的測控系統,通過對傳感器的脈沖信號進行處理而得到待測物料的流量,并通過控制給料器的給料速度達到流量控制的目的。對于一個有實用價值的測控系統,必須具有人機交互、閉環控制、數據通信和存儲等功能。本課題所研制的流量測控系統的框圖如圖3所示。

          圖3 流量測控系統硬件框圖

          圖3中,處理器為內核的工業級芯片AT91M55800,其強大的功能保證了系統的實時性和穩定性的要求。2 MB的Flash SST39VF160用來保存程序代碼、測量所需的一些參數以及測量結果的簡單統計信息。在工業生產中,經常需要對一次測量中的數據進行歷史再現,以便對一些事故或故障進行排查。本系統通過采用1 MB的大容量RAM來實現這一功能:除了用來作為程序運行時的內存外,RAM還用來實時保存每一時刻的測量數據。USB總線的通信口用來和現場計算機進行通信,以實現一些更加完善的處理,如數據打印、結果分析、實時數據的硬盤保存等。分辨率為320×240的LCD用來作為系統的顯示終端配合4×5的鍵盤來完成系統的人機交互操作。對變頻器的控制和對溫度信號的采集通過485總線完成。6路脈沖信號是本系統測量功能的核心,通過對這6路脈沖進行處理可以得到流量相關的所有信息。4~20 mA電流信號用來控制給料系統,以實現閉環控制。由于在工業環境中使用,對于一些長線連接必須采取隔離措施。本系統對測量脈沖、485通信信號和4~20 mA電流信號都采取了光電隔離措施。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 平顶山市| 杭州市| 云龙县| 兰考县| 广昌县| 北安市| 澎湖县| 佛学| 资中县| 黔南| 霞浦县| 当阳市| 汉阴县| 蒲城县| 三都| 达拉特旗| 闽侯县| 长乐市| 涪陵区| 南江县| 兴文县| 永川市| 临桂县| 浦城县| 汉沽区| 琼中| 福贡县| 田东县| 汪清县| 定结县| 梁山县| 江源县| 会泽县| 虞城县| 巴里| 宁津县| 井研县| 曲沃县| 原阳县| 台江县| 伊吾县|