EMC2的硬件抽象層原理與實現(xiàn)
1 概 述
嵌入式系統(tǒng)具有專用性強、外圍設備多樣的特性,這決定了其應用的硬件環(huán)境差異性較大。系統(tǒng)軟件模塊與硬件之間的接口是嵌入式實時系統(tǒng)的主要特征,是系統(tǒng)設計過程中的必需環(huán)節(jié),也是影響嵌入式系統(tǒng)應用前景的關(guān)鍵問題之一。硬件抽象層(Hardware Abstraction Layer,HAL)的引入可有效解決這一問題。HAL是將硬件平臺與應用軟件隔離開來的軟件層次,通過硬件抽象技術(shù)實現(xiàn)硬件相關(guān)和硬件無關(guān)兩部分程序代碼的隔離,為應用軟件提供一個沒有硬件特性的接口。硬件抽象層的引入不僅是系統(tǒng)體系結(jié)構(gòu)設計方法的改進,更直接關(guān)系到整個系統(tǒng)的開發(fā)模式以及嵌入式操作系統(tǒng)的可移植性。硬件抽象層的引入大大推動了嵌入式系統(tǒng)開發(fā)的規(guī)范化進程。
EMC是一個開放源代碼的用于機床或機器人等運動控制系統(tǒng)的計算機控制軟件。它能同時驅(qū)動9軸電機。其運動控制特性包括:刀具半徑和長度補償、軸同步運動、自適應進給速度、恒速度控制等。EMC2在原有EMC軟件的基礎(chǔ)上加入了許多新的特性和功能,其中包括了HAL和軟件PLC模塊ClassicLadder。ClassicLadder是一個基于LGPL協(xié)議的梯形圖解釋器。它隨著EMC2一起發(fā)布,可以與EMC2的HAL一起工作。本文中的控制系統(tǒng)利用EMC2的HAL為軟PLC中的應用程序提供底層硬件操作支持,提高了應用程序的平臺無關(guān)性與可移植性。
2 硬件架構(gòu)
控制器是鋰電池卷繞恒張力控制器,采用符合PC/104總線規(guī)范的單板計算機(以下簡稱PC104)與基于FPGA的專用主機板相結(jié)合的方法構(gòu)建系統(tǒng)硬件。PC104中運行實時Linux,ClassicLadder及HAL作為實時模塊加載到Linux系統(tǒng)中。
系統(tǒng)硬件框圖如圖1所示。其中ADS8361為12位模/數(shù)轉(zhuǎn)換器,用于采集張力值等模擬量;AD5624為數(shù)/模轉(zhuǎn)換器,用于控制直流電機轉(zhuǎn)速及氣壓閥壓力值;FPGA控制所有外圍芯片,并產(chǎn)生電機脈沖方向信號,同時對電機編碼器信號進行計數(shù);CPLD控制I/O輸入/輸出點,并與FPGA交換信息。利用EMC2中HAL的實現(xiàn)原理,可編寫組件將硬件系統(tǒng)所有設備抽象成引腳和函數(shù)的形式,供軟PLC在需要時加載。
3 EMC2中HAL的基本概念
EMC2的HAL提供了一種簡便方法,將一些已有軟硬件模塊進行加載和組合形成一個復雜的系統(tǒng),從而使EMC2更容易配置,以使用各種硬件設備。硬件資源在HAL中被封裝成特定組件,隨時被控制系統(tǒng)載入使用。EMC2中的HAL有以下基本概念:
Component,組件。是定義好輸入、輸出及行為的軟件模塊,可以在需要時安裝及連接。
Parameter,參數(shù)。許多硬件組件有可調(diào)整參數(shù)需要進行訪問。HAL有輸入及輸出兩種類型的參數(shù)。
Pin,引腳。硬件組件用于互聯(lián)的連接端子。所有Pin都有名稱,并在連接時使用。HAL的Pin是只存在于計算機內(nèi)的軟件實體。
Physical_Pin,物理引腳。許多I/O設備有真正的物理引腳或終端連接到外部硬件,這些被稱為物理引腳。
Signal,信號?,F(xiàn)實中硬件組件使用導線互連。在HAL中導線相當于“信號”。HAL的信號將HAL的引腳連接在一起,可以隨意斷開或重新連接。
Type,類型。引腳和信號都有類型屬性,即信號只能連接到相同類型的引腳。目前,HAL有4種類型:BIT、FLOAT、U32、S32。
Function,函數(shù)。每個函數(shù)是一個執(zhí)行具體行為的代碼塊,執(zhí)行讀取輸入、計算輸出等操作。系統(tǒng)設計者可以使用“線程”對一系列函數(shù)加以調(diào)度,以使其按照特定的順序及時間間隔運行。
Thread,線程。作為一個實時任務的組成部分,線程是一個以特定時間間隔運行的函數(shù)序列。函數(shù)可以添加到線程并在每次線程運行時調(diào)用。
評論