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

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

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

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

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

[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.
徐蓉(講師),研究方向?yàn)榍度胧綄?shí)時(shí)系統(tǒng)。
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)