徐 蓉
(四川師范大學, 成都 610068)
?
嵌入式系統中面向EOC的開發技術
徐 蓉
(四川師范大學, 成都 610068)
簡述嵌入式對象(EOC)的概念,將面向對象的方法應用于嵌入式系統開發中。這些軟硬件實體代表了面向對象開發技術中的對象,可作為單個的電子模塊集成到嵌入式系統中。EOC的目標是使嵌入式系統開發更快捷方便,同時保證最終產品的商業可行性。
嵌入式對象;面向對象設計; 嵌入式系統
設計嵌入式系統是一個需要大量專業技巧、耗時且昂貴的過程。開發過程需要先創建需求說明,接著對軟硬件進行分區設計。這個分區設計過程包括了對MCU(Microcontroller Unit,微控制器單元)、FPGA(Field Programmable Gate Array,現場可編程門陣列)或其他處理器等主要組件的選擇。分區和選擇組件完成以后,需要創建產品的硬件(PCB)和軟件并且測試它們(先分開測試然后再整合測試)。
EOC(Embedded-Object Concept,嵌入式對象)是為了讓嵌入式系統的設計過程更加簡單快捷、時間上可預測而出現的概念。這個概念使用了面向對象的方法和稱為EOC[2]的物理電子模塊來解決設計中的問題。EOC是包含了硬件和特定功能軟件的微型PCB,因此它是完全的功能實體。這些對象可看作樂高積木彼此互相連接,從而創建一個完整的嵌入式系統。每個對象都有一個通用的、定義明確的硬件和軟件接口。對于更復雜的設計,開發人員可以應用面向對象的開發原則。這樣,開發人員可以將最終設備轉化為大量生產的PCB。
由于使用面向對象的方法,EOC相比傳統方法而言有不少的優勢。從技術的角度看,EOC讓原型設計更快,修改更容易,并且允許設備的增量開發,這在傳統開發方法中是不可能的。面向對象方法同時也讓設計可以重用,讓設備具有可擴展性和可管理的結構。此外,模塊化的結構意味著對象配置可以用UML語言描述,因此常用的UML工具也可用于設計。
這些技術同時也帶來實用性的好處:原型設計更容易,通過模板設計新功能對象更容易,設計和開發時間更短。而在產品和市場方面的好處,則是從原型設計到最終產品的轉化更簡單,支持大規模生產和產品的模塊化測試,可預測的成本以及簡單的升級和擴展。
EOC的開發概念對于需要定制、修改、迭代的應用,以及非大規模生產的消費設備是最適合的,同時它也適合機器人、工業自動化、研究和教育等領域中復雜應用。在使用EOC的案例和傳統方法之間比較成本和時間,我們發現用EOC建立的設備在成本方面要貴10%,但卻大大地節省了開發時間。
EOC的基本概念就是像樂高積木組裝新的玩具一樣來建立新的設備。開發者使用一組已經建立好的模塊,將它們用不同的方法連接起來,以創建新的不同的設備。在EOC中,模塊是稱為對象模塊的微型PCB,通過通用總線互相連接。每個PCB都有不同的功能(例如伺服控制或傳感器輸入)。每個對象的屬性、事件和方法都可以通過總線來訪問。開發者可以將任何對象和另一個對象連接。
開發者將具有特定功能的PCB連接起來,為新系統建立一個新的嵌入式系統模型,然后開發高層控制軟件,并賦予系統智能性。軟件既可以添加到PCB上,也可添加到外部設備中。開發者能夠測試設備,并在必要時使用測試結果來修改設備配置。最后,當設計者確認模型完成后,就可以轉化為大量生產的單板設備,其中包括在PCB設計中使用的所有模塊。
圖1顯示了如何在一組稱為原子對象的模塊上實現EOC。

圖1 嵌入式對象:包含了硬件和特定軟件功能的微型PCB
開發者使用EOC來創建結構簡單的設備,僅僅需要連接幾個對象就可以。以一個三輪機器人運動控制器為例,該設備包含了兩個馬達控制器、一個電源板、一個紅外傳感器輸入、一個連接計算機的用于接收驅動指令的USB接口。當這些對象連接好以后,設備的硬件就緒。當主要控制指令被寫入這些對象后,整個設備就緒。
這個概念還可以擴展,基于總線的結構支持面向對象的復雜性增長。我們可以把機器人運動控制器看作一個新的、包含了多個基本對象的更大的對象。為了創建一個更復雜的設備,機器人運動控制器這種大型對象還可以和其他對象連接。如果類對象具有兩個或更多的總線接口就可以完成這種連接。例如,攝像對象、音頻對象、網絡對象及電源對象可以組裝成一個網絡攝像設備。我們可以將機器人運動控制器與網絡攝像設備連接起來,如圖2中的UML圖。由于不再需要USB,類對象替代了機器人運動控制器中的USB對象。類連接器將類對象的第二條總線連接到網絡攝像設備,并用作整個對象的接口。進一步,我們還可以將電源對象從網絡攝像設備移除,因為機器人運動控制器中的電源對象可以作此用途。最后的結果就是一個機器人設備包含了三個基本對象和一個更大的對象。

圖2 機器人設備的UML類圖
遠程機器人是通過可運動機器人進行遠程作業的一項應用。整個系統包含一個兩輪機器人和計算機配對裝置。遙控機器人包括了視頻和聲頻交換能力,以及兩輪駕駛的控制和平衡能力。通過計算機配對裝置,即普通PC上安裝有聲頻音頻功能、因特網連接和機器人控制軟件,經由WLAN連接可以遠程控制機器人。換而言之,這個機器人具有看、聽、說的能力,并且可以被計算機遠程控制。對于這樣的遙控機器人,只要有合適的軟件,就可以實現遠程監控和遠程會議。
圖3用類圖顯示了機器人的結構。UML類圖是特別在EOC開發中使用的。對于有疑問的對象可使用這種傳統方法來顯示其硬件和軟件功能。聚合標識表示一個對象是另一個對象的一部分,而屬性和方法通常用于顯示每個對象的數據和功能。

圖3 遙控機器人的UML類圖
通過查看對象的性質,我們發現幾乎所有的對象都是在默認狀態下運行(即默認軟件)。只有配置和運動對象是自定義的對象,也就是在默認軟件基礎上添加了新的功能,在這個案例中就是如此。當機器人加電后,配置對象初始化其他的對象。然后它等待用戶通過TCPIP對象將它與機器人連接。當連接成功后,它配置其他對象使用TCPIP對象經由TCP/IP連接來收發數據。每個對象都對自己的數據流向負責:攝像對象發送視頻數據,聲音對象交換音頻數據,運動對象接收運動控制命令。

圖4 遙控機器人和位于其頭部的組件
圖4顯示了位于遙控機器人頭部的這些對象。配置對象在機器人整個使用期間監控其連接狀態。當一個遠程會話關閉,配置對象將機器人返回到初始狀態并等待新的會話。由于每個模塊處理它自己的低層任務,高層的控制其實不需要很復雜。
用于控制機器人的運動對象包含了好幾個子對象。運動對象的高層軟件存儲在一個類中,其中僅僅包含了總線管理功能。在遙控機器人中包含了平衡和驅動軟件,用于保持機器人的平衡和管理機器人的轉彎和旋轉。
該軟件是一個定時循環,不斷輪詢紅外探測對象的傾斜傳感器和馬達控制器對象的譯碼器。從得到的輪詢值,它計算出當前的角度、角速率、角加速率、運動速率。運動對象通過TCPIP對象經由第二條總線接口接收運動指令,并連接到機器人上層對象中。計算和接收到的值都通過平衡算法得到推動值,并通過馬達控制器對象應用到馬達上。
綜上所述,我們所描述的遙控機器人系統包含了計算機軟件用于遠程控制機器人。計算機軟件包含了一個基于DirectShow的顯示屏和一個通過因特網收發音頻和控制數據的控制面板程序。計算機的用戶接口是一個顯示屏(640×480像素),顯示從機器人傳來的視頻。用戶使用計算機鍵盤的上下左右箭頭來控制機器人。

[1] A S Berger. Embedded Systems Design: An Introduction to Processes, Tools and Techniques[M].[S.L]: CMP Books, 2002.
[2] T Vallius, J Haverinen, J Ro ning. Object-Oriented Embedded System Development Method for Easy and Fast Prototyping [C]//Proc. Int'l Conf. Machine Automation, Osaka University and Japanese Council of International Federation for the Promotion of Mechanism and Machine Science, 2004: 435-440.
[3] T Vallius, J Ro ning. Embedded Object Concept: Case Balancing Two-Wheeled Robo[J]. Intelligent Robots and Computer Vision XXV: Algorithms, Techniques, and Active Vision. 2007, 6764:1-14.
[4] T Vallius, J Ro ning. Combining Atomi Objects into a Single PCB for Mass Production [C]//Proc. 3rd Int'l Symp. Industrial Embedded Systems, IEEE Press,2008: 89-96.
[5] T Vallius, J Roz ning. ATOMI II Framework for Easy Building of Object Oriented Embedded Systems[C]// Proc. 9th Euromicro Conf. Digital System Design, Architectures, Methods and Tools, IEEEPress, 2006: 464-474.
徐蓉(講師),研究方向為嵌入式實時系統。
EOC Development Method in Embedded System
Xu Rong
(Sichuan Normal University, Chengdu 610068,China)
The embedded-object concept, EOC, applies common object-oriented software methods to the design of embedded systems. These modular entities, representing objects in object-oriented design, function as electronic building blocks that can be assembled into new embedded systems. The goal of EOC is to make embedded-system design faster and easier while preserving the commercial applicability of the resulting devices.
embedded object concept; object-oriented design; embedded system
TP311.5
A
珍
2013-12-06)