新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > EMC2的硬件抽象層原理與實現

        EMC2的硬件抽象層原理與實現

        作者: 時間:2009-12-28 來源:網絡 收藏


        1 概 述
        系統具有專用性強、外圍設備多樣的特性,這決定了其應用的環境差異性較大。系統軟件模塊與之間的接口是實時系統的主要特征,是系統設計過程中的必需環節,也是影響系統應用前景的關鍵問題之一。層(Hardware Abstraction Layer,HAL)的引入可有效解決這一問題。HAL是將硬件平臺與應用軟件隔離開來的軟件層次,通過硬件技術硬件相關和硬件無關兩部分程序代碼的隔離,為應用軟件提供一個沒有硬件特性的接口。硬件層的引入不僅是系統體系結構設計方法的改進,更直接關系到整個系統的開發模式以及嵌入式操作系統的可移植性。硬件抽象層的引入大大推動了嵌入式系統開發的規范化進程。
        EMC是一個開放源代碼的用于機床或機器人等運動控制系統的計算機控制軟件。它能同時驅動9軸電機。其運動控制特性包括:刀具半徑和長度補償、軸同步運動、自適應進給速度、恒速度控制等。在原有EMC軟件的基礎上加入了許多新的特性和功能,其中包括了HAL和軟件PLC模塊ClassicLadder。ClassicLadder是一個基于LGPL協議的梯形圖解釋器。它隨著一起發布,可以與的HAL一起工作。本文中的控制系統利用EMC2的HAL為軟PLC中的應用程序提供底層硬件操作支持,提高了應用程序的平臺無關性與可移植性。

        本文引用地址:http://www.104case.com/article/152181.htm


        2 硬件架構
        控制器是鋰電池卷繞恒張力控制器,采用符合PC/104總線規范的單板計算機(以下簡稱PC104)與基于FPGA的專用主機板相結合的方法構建系統硬件。PC104中運行實時Linux,ClassicLadder及HAL作為實時模塊加載到Linux系統中。
        系統硬件框圖如圖1所示。其中ADS8361為12位模/數轉換器,用于采集張力值等模擬量;AD5624為數/模轉換器,用于控制直流電機轉速及氣壓閥壓力值;FPGA控制所有外圍芯片,并產生電機脈沖方向信號,同時對電機編碼器信號進行計數;CPLD控制I/O輸入/輸出點,并與FPGA交換信息。利用EMC2中HAL的,可編寫組件將硬件系統所有設備抽象成引腳和函數的形式,供軟PLC在需要時加載。

        3 EMC2中HAL的基本概念
        EMC2的HAL提供了一種簡便方法,將一些已有軟硬件模塊進行加載和組合形成一個復雜的系統,從而使EMC2更容易配置,以使用各種硬件設備。硬件資源在HAL中被封裝成特定組件,隨時被控制系統載入使用。EMC2中的HAL有以下基本概念:
        Component,組件。是定義好輸入、輸出及行為的軟件模塊,可以在需要時安裝及連接。
        Parameter,參數。許多硬件組件有可調整參數需要進行訪問。HAL有輸入及輸出兩種類型的參數。
        Pin,引腳。硬件組件用于互聯的連接端子。所有Pin都有名稱,并在連接時使用。HAL的Pin是只存在于計算機內的軟件實體。
        Physical_Pin,物理引腳。許多I/O設備有真正的物理引腳或終端連接到外部硬件,這些被稱為物理引腳。
        Signal,信號。現實中硬件組件使用導線互連。在HAL中導線相當于“信號”。HAL的信號將HAL的引腳連接在一起,可以隨意斷開或重新連接。
        Type,類型。引腳和信號都有類型屬性,即信號只能連接到相同類型的引腳。目前,HAL有4種類型:BIT、FLOAT、U32、S32。
        Function,函數。每個函數是一個執行具體行為的代碼塊,執行讀取輸入、計算輸出等操作。系統設計者可以使用“線程”對一系列函數加以調度,以使其按照特定的順序及時間間隔運行。
        Thread,線程。作為一個實時任務的組成部分,線程是一個以特定時間間隔運行的函數序列。函數可以添加到線程并在每次線程運行時調用。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 滁州市| 呼伦贝尔市| 康马县| 屏东县| 浏阳市| 门头沟区| 冕宁县| 永和县| 威海市| 无锡市| 启东市| 当阳市| 威信县| 左云县| 阿拉善盟| 周口市| 新兴县| 阳谷县| 四会市| 舞阳县| 连云港市| 攀枝花市| 永善县| 璧山县| 定南县| 厦门市| 泾源县| 安化县| 平陆县| 从化市| 石嘴山市| 奉节县| 尉犁县| 石城县| 泸州市| 富平县| 阿鲁科尔沁旗| 荣成市| 抚远县| 隆德县| 和平区|