<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

EMC2的硬件抽象層原理與實(shí)現

作者: 時(shí)間:2009-12-28 來(lái)源:網(wǎng)絡(luò ) 收藏


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

本文引用地址:http://dyxdggzs.com/article/152181.htm


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

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

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

上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>