本站小編為你精心準備了控制板卡接口軟件設計研究參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
摘要:在嵌入式計算機系統中,一般包含上位機與下位機控制板卡;這種系統一般是一種型號的控制板卡對應一款上位機軟件,優點是功能簡潔明了,缺點是用戶需要針對不同板卡安裝不同的軟件,對用戶要求較高或增加額外的軟件成本。本文提出一種通用的統一抽象板卡概念,通過抽象API,可以支持多種型號的控制板卡,實現軟件使用一致性,方便應用軟件工程師的編程。
關鍵詞:嵌入式;計算機系統;多型號;統一抽象板卡;API
一般控制板卡的上位機軟件最初總是對應初始版本的硬件板卡,當板卡成系列、多型號發展時,原先各自的獨立上位機軟件不便于管理與使用,就需要設計統一的程序,以便管理多種型號的設備,如在文獻[1]中設計了一種同時支持PCI與USB板卡的控制軟件。本文也是工作需要,根據需求設計了一種通用的統一抽象板卡API,以支持多型號的控制板卡。
1軟件需求
隨著公司業務的發展,研發的板卡需要定制化、多樣化與系列化,因此迫切需要設計一種接口來隱藏這種硬件多樣性,提出開發需求如下:(1)從應用程序角度看,能夠隱藏硬件特定信息;(2)支持多型號的控制板卡;(3)支持每種型號的多個數目的控制板卡。應用開發人員可以用這個抽象板卡的API,編制程序而無需考慮實際板卡類型。單個應用程序可以控制多個板卡,而且當有新的板卡加入時,無需大的改動,就能支持。抽象板卡的API,設計上不能直接操控硬件板卡,必須借助原先控制板卡的提供的API。因此,軟件工程的角度看,統一抽象控制板卡API,只有兩個外部接口,一邊是上層的主機程序,另一邊是下層具體的激光控制板卡API。統一建模語言(UnifiedModelingLanguage,UML)[2-3]是軟件工程中一種為面向對象系統的產品進行說明、可視化和編制文檔的一種標準語言,UML是面向對象設計的建模工具。抽象板卡API的UML用例圖如圖1所示。
2抽象接口組成分解
抽象接口的功能分解圖如圖2所示。抽象接口由三個層級的動態庫成分組成,從上至下依次為:(1)LC.HWInterface.dll。(2)LC.HWMgr.dll。(3)LC.B1Mgr.dll,LC.B2Mgr.dll。2.1LC.HWInterface.dllLC.HWInterface.dll包含了直接由上位機軟件調用的API函數,在該DLL中會引用下層的LC.HWMgr.dll。LC.HWInterface.dll包含三個類:Job、DeviceStatus與HWController。Job類提供了上層應用軟件訪問特定激光控制器的便利途徑,從而隱藏了多種激光器控制板卡的復雜性。每個打標任務必須對應一個Job對象,而每個Job對象又綁定了一個控制板卡。Job對象還包含當前任務的完成情況、錯誤狀態等。DeviceStatus對象提供了上層軟件對特定激光器狀態的單點訪問。在DeviceStatus對象的整個生命周期內可以對激光器的狀態隨時查詢。HWController則對連接的設備進行各種控制管理提供方法。比如,初始化硬件、創建Job對象與DeviceStatus對象、關閉硬件等。2.2LC.HWMgr.dllLC.HWMgr.dll包含了公共接口,這些接口從LC.B1Mgr.dll,LC.B2Mgr.dll或其他新的板卡支持Dll里實現的函數抽象出來的。所以,如果需要整合新的控制板卡,就需要實現LC.HWMgr.dll中定義的接口。LC.HWMgr.dll就是為了隱藏控制卡的類型而引入的,LC.HWInterface.dll并不需要知道控制卡的信息,僅僅有接口的引用信息。LC.HWMgr.dll包含了一個類:HWCreator.和三個接口:ILaserHW、IHWMgr、和IStatusUpdate。具體實現參考第4節抽象接口類圖。2.3LC.B1Mgr.dllLC.B1Mgr.dll中實現了LC.HWMgr.dll中定義的各個接口,且調用特定的控制板卡API。如果需要整合新的控制板卡,同樣的需要實現上面定義的接口。LC.B1Mgr.dll在編譯時候并不需要鏈接到API中,而是在LC.HWMgr.dll中根據配置文件動態的加載進。所以,對于新的控制板卡,同樣需要新寫一個動態庫,且在配置文件中給出必要的信息,根據需要動態加載。包含三個類:B1HWMgr、B1Controller、和NetDeviceMgr。具體實現參照第4節抽象接口類圖。
3抽象接口類圖
上位機應用程序需要創建一個HWController實例,一個或多個打標Job實例,對應每個打標激光設備的DeviceStatus實例。HWCreator會根據配置文件來創建B1HWMgr或B2HWMgr的實例。在配置文件中需要指定控制板卡的類型。抽象接口類圖,如圖3所示。
4重要的公共方法整理
(表1)其他類略。
5結論
該設計成功整合了目前公司的兩種型號的控制板卡,并實現了統一管理與使用接口。雖然本文僅以某激光公司的軟件開發為例,設計了支持多種類型控制板卡的接口函數庫,但是該設計方法,適用于各類用途的支持多控制板卡的接口設計,具有很強的借鑒意義。
參考文獻
[1]趙文路.多模式多接口激光標記控制軟件的設計與實現[D].華中科技大學,2011.
[2]宋雨,趙文清.軟件工程[M].中國電力出版社,2007.
[3]GradyBooch,等著.UML用戶指南(第2版)[M].人民郵電出版社,2012.
作者:蘇亞娟 榮音 單位:無錫南洋職業技術學院