編者語(yǔ):隨著Internet技術(shù)與信息家電、工業(yè)控制技術(shù)等的結(jié)合日益緊密,嵌入式設(shè)備與Internet的結(jié)合已成為大勢(shì)所趨。此時(shí)期新的微處理器層出不窮,要求嵌入式操作系統(tǒng)的設(shè)計(jì)更加便于移植,支持更多的微處理器。 嵌入式系統(tǒng)的開(kāi)發(fā)需要強(qiáng)大的硬件開(kāi)發(fā)工具和軟件支持包。通用計(jì)算機(jī)上使用的新技術(shù)、新觀念開(kāi)始逐步移植到嵌入式系統(tǒng)中,如嵌入式數(shù)據(jù)庫(kù)、移動(dòng)代理、實(shí)時(shí)CORBA等。各類(lèi)嵌入式Linux操作系統(tǒng)在全球數(shù)以百萬(wàn)計(jì)愛(ài)好者的合力開(kāi)發(fā)下迅速發(fā)展,由于具有源代碼開(kāi)放、系統(tǒng)內(nèi)核小、執(zhí)行效率高、網(wǎng)絡(luò)功能強(qiáng),多媒體人機(jī)交互界面友好等特點(diǎn),很適合信息家電等嵌入式系統(tǒng)的需要。
一、嵌入式系統(tǒng)的技術(shù)特點(diǎn)
早期的嵌入式系統(tǒng)設(shè)計(jì)方法,通常采用“硬件優(yōu)先”原則,即在只粗略估計(jì)軟件任務(wù)需求的情況下,首先進(jìn)行硬件設(shè)計(jì)與實(shí)現(xiàn)。然后,在此硬件平臺(tái)上再進(jìn)行軟件設(shè)計(jì)。因而很難達(dá)到充分利用軟硬件資源,取得最佳性能的效果。同時(shí),一旦需要對(duì)設(shè)計(jì)進(jìn)行修改時(shí),整個(gè)設(shè)計(jì)流程將重新進(jìn)行,這對(duì)成本和設(shè)計(jì)周期的影響很大。這種傳統(tǒng)的設(shè)計(jì)方法只能改善軟件/硬件各自的性能,在有限的設(shè)計(jì)空間不可能對(duì)系統(tǒng)做出較好的性能綜合優(yōu)化,在很大程度上依賴(lài)于設(shè)計(jì)者的經(jīng)驗(yàn)和反復(fù)實(shí)驗(yàn)。
上世紀(jì)90年代以來(lái),隨著電子系統(tǒng)功能的日益強(qiáng)大和微型化,硬件和軟件也不再是截然分開(kāi)的兩個(gè)概念,而是緊密結(jié)合、相互影響的。因而出現(xiàn)了軟硬件協(xié)同(codesign)設(shè)計(jì)方法,即使用統(tǒng)一的方法和工具對(duì)軟件和硬件進(jìn)行描述、綜合和驗(yàn)證。在系統(tǒng)目標(biāo)要求的指導(dǎo)下,通過(guò)綜合分析系統(tǒng)軟硬件功能及現(xiàn)有資源,協(xié)同設(shè)計(jì)軟硬件體系結(jié)構(gòu),以最大限度地挖掘系統(tǒng)軟硬件能力,避免由于獨(dú)立設(shè)計(jì)軟硬件體系結(jié)構(gòu)而帶來(lái)的種種弊病,得到高性能低代價(jià)的優(yōu)化設(shè)計(jì)方案。
二、嵌入式系統(tǒng)的發(fā)展趨勢(shì)
在網(wǎng)絡(luò)、通信、微電子發(fā)展的基礎(chǔ)上,以及勢(shì)不可擋的數(shù)字化信息產(chǎn)品的強(qiáng)大需求推動(dòng)下,嵌入式技術(shù)具有廣闊的發(fā)展創(chuàng)新空間。
(1) 低功耗、高性能、高可靠性的系統(tǒng)需求對(duì)我國(guó)芯片設(shè)計(jì)是一個(gè)機(jī)遇。以嵌入式處理 器為領(lǐng)頭的國(guó)產(chǎn)CPU、片上系統(tǒng)(SoC)、片上網(wǎng)絡(luò)系統(tǒng)(NoC)將有很大的發(fā)展。
(2) Linux正逐漸成為嵌入式操作系統(tǒng)的主流;J2ME技術(shù)也將對(duì)嵌入式軟件的發(fā)展產(chǎn)生深遠(yuǎn)影響。目前自由軟件技術(shù)備受青睞,并對(duì)軟件技術(shù)的發(fā)展產(chǎn)生了巨大的推動(dòng)作用。嵌入式操作系統(tǒng)內(nèi)核不僅需要具有微型化、高實(shí)時(shí)性等基本特征,還將向高可信性、自適應(yīng)性、構(gòu)件組件化方向發(fā)展;支撐開(kāi)發(fā)環(huán)境將更加集成化、自動(dòng)化、人性化;系統(tǒng)軟件對(duì)無(wú)線通信和能源管理的功能支持將日益重要。近幾年來(lái),為使嵌入式設(shè)備更有效地支持Web服務(wù)而開(kāi)發(fā)的操作系統(tǒng)不斷推出。這種操作系統(tǒng)在體系結(jié)構(gòu)上采用面向構(gòu)件、中間件技術(shù),為應(yīng)用軟件乃至硬件的動(dòng)態(tài)加載提供支持,即所謂的"即插即用",在克服以往的嵌入式操作系統(tǒng)的局限性方面顯示出明顯的優(yōu)勢(shì)。
(3) Java虛擬機(jī)與嵌入式Java將成為開(kāi)發(fā)嵌入式系統(tǒng)的有力工具。嵌入式系統(tǒng)的多媒體化將變成現(xiàn)實(shí)。它在網(wǎng)絡(luò)環(huán)境中的應(yīng)用已是不可抗拒的潮流,并將占領(lǐng)網(wǎng)絡(luò)接入設(shè)備的主導(dǎo)地位。
(4) 嵌入式系統(tǒng)與人工智能、模式識(shí)別技術(shù)的結(jié)合,將開(kāi)發(fā)出各種更具人性化、智能化的實(shí)際系統(tǒng)。智能手機(jī)、數(shù)字電視,以及汽車(chē)電子的嵌入式應(yīng)用,是這次機(jī)遇中的切入點(diǎn)。伴隨網(wǎng)絡(luò)技術(shù)、網(wǎng)格計(jì)算的發(fā)展,以嵌入式移動(dòng)設(shè)備為中心的"無(wú)所不在的計(jì)算"將成為現(xiàn)實(shí)。
三、嵌入式系統(tǒng)在機(jī)器人技術(shù)中的應(yīng)用
不論是在工業(yè)控制中,還是在商業(yè)領(lǐng)域里,機(jī)器人技術(shù)都得到了廣泛的應(yīng)用。從用于生產(chǎn)加工的傳統(tǒng)工業(yè)機(jī)器人到豐富大眾生活的現(xiàn)代娛樂(lè)機(jī)器人,都與嵌入式系統(tǒng)密不可分。現(xiàn)有的大多數(shù)機(jī)器人,都采用單片機(jī)作為控制單元,以8位和16位最為常見(jiàn),其處理速度較低,沒(méi)有操作系統(tǒng),無(wú)法實(shí)現(xiàn)豐富的多任務(wù)功能,系統(tǒng)的潛力沒(méi)有得到充分的發(fā)掘和應(yīng)用。
基于ARM9的機(jī)器人視覺(jué)系統(tǒng)的目標(biāo)是在選定好的S3C2410平臺(tái)上移植并配置Linux操作系統(tǒng),針對(duì)平臺(tái)和應(yīng)用的特點(diǎn),制作合適的文件系統(tǒng),為機(jī)器人視覺(jué)系統(tǒng)構(gòu)建穩(wěn)定的軟硬件開(kāi)發(fā)環(huán)境。其次編寫(xiě)應(yīng)用程序,通過(guò)S3C2410平臺(tái),從USB攝像頭實(shí)時(shí)采集圖像,并利用這款嵌入式處理器的強(qiáng)大運(yùn)算能力,對(duì)圖像進(jìn)行后期的處理,完成目標(biāo)識(shí)別與定位,作為機(jī)器人動(dòng)作單元的輸入。最后針對(duì)機(jī)器人關(guān)節(jié)所使用的電機(jī),編寫(xiě)特定的設(shè)備驅(qū)動(dòng)程序,保證操作系統(tǒng)可準(zhǔn)確地控制機(jī)器人動(dòng)作,響應(yīng)視覺(jué)處理的結(jié)果,開(kāi)發(fā)一套完整的"機(jī)器人視覺(jué)系統(tǒng)"。
1. 硬件平臺(tái)的選型和搭建
機(jī)器人系統(tǒng)如圖1所示。全身由24個(gè)舵機(jī)組成,控制24個(gè)關(guān)節(jié)。通過(guò)對(duì)舵機(jī)的控制,可實(shí)現(xiàn)機(jī)器人的動(dòng)作。
(1) 視覺(jué)系統(tǒng)
采用USB攝像頭作為視覺(jué)采集器件。其優(yōu)點(diǎn)是接口通用,驅(qū)動(dòng)豐富,傳輸速率快。同時(shí),Linux操作系統(tǒng)對(duì)于USB設(shè)備的支持較好,方便了應(yīng)用程序的編寫(xiě)和調(diào)試。網(wǎng)眼(WebEye)v2000攝像頭,采用