http://www.kadhoai.com.cn 2026-04-08 04:56:14
編者語:隨著Internet技術與信息家電、工業控製技術等的結合日益緊密,嵌入式設備與Internet的結合已成為大勢所趨。此時期新的微處理器層出不窮,要求嵌入式操作係統的設計更加便於移植,支持更多的微處理器。 嵌入式係統的開發需要強大的硬件開發工具和軟件支持包。通用計算機上使用的新技術、新觀念開始逐步移植到嵌入式係統中,如嵌入式數據庫、移動代理、實時CORBA等。各類嵌入式Linux操作係統在全球數以百萬計愛好者的合力開發下迅速發展,由於具有源代碼開放、係統內核小、執行效率高、網絡功能強,多媒體人機交互界麵友好等特點,很適合信息家電等嵌入式係統的需要。
一、嵌入式係統的技術特點
早期的嵌入式係統設計方法,通常采用“硬件優先”原(yuan)則(ze),即(ji)在(zai)隻(zhi)粗(cu)略(lve)估(gu)計(ji)軟(ruan)件(jian)任(ren)務(wu)需(xu)求(qiu)的(de)情(qing)況(kuang)下(xia),首(shou)先(xian)進(jin)行(xing)硬(ying)件(jian)設(she)計(ji)與(yu)實(shi)現(xian)。然(ran)後(hou),在(zai)此(ci)硬(ying)件(jian)平(ping)台(tai)上(shang)再(zai)進(jin)行(xing)軟(ruan)件(jian)設(she)計(ji)。因(yin)而(er)很(hen)難(nan)達(da)到(dao)充(chong)分(fen)利(li)用(yong)軟(ruan)硬(ying)件(jian)資(zi)源(yuan),取(qu)得(de)最(zui)佳(jia)性(xing)能(neng)的(de)效(xiao)果(guo)。同(tong)時(shi),一(yi)旦(dan)需(xu)要(yao)對(dui)設(she)計(ji)進(jin)行(xing)修(xiu)改(gai)時(shi),整(zheng)個(ge)設(she)計(ji)流(liu)程(cheng)將(jiang)重(zhong)新(xin)進(jin)行(xing),這(zhe)對(dui)成(cheng)本(ben)和(he)設(she)計(ji)周(zhou)期(qi)的(de)影(ying)響(xiang)很(hen)大(da)。這(zhe)種(zhong)傳(chuan)統(tong)的(de)設(she)計(ji)方(fang)法(fa)隻(zhi)能(neng)改(gai)善(shan)軟(ruan)件(jian)/硬件各自的性能,在有限的設計空間不可能對係統做出較好的性能綜合優化,在很大程度上依賴於設計者的經驗和反複實驗。
上世紀90年代以來,隨著電子係統功能的日益強大和微型化,硬件和軟件也不再是截然分開的兩個概念,而是緊密結合、相互影響的。因而出現了軟硬件協同(codesign)設計方法,即使用統一的方法和工具對軟件和硬件進行描述、綜(zong)合(he)和(he)驗(yan)證(zheng)。在(zai)係(xi)統(tong)目(mu)標(biao)要(yao)求(qiu)的(de)指(zhi)導(dao)下(xia),通(tong)過(guo)綜(zong)合(he)分(fen)析(xi)係(xi)統(tong)軟(ruan)硬(ying)件(jian)功(gong)能(neng)及(ji)現(xian)有(you)資(zi)源(yuan),協(xie)同(tong)設(she)計(ji)軟(ruan)硬(ying)件(jian)體(ti)係(xi)結(jie)構(gou),以(yi)最(zui)大(da)限(xian)度(du)地(di)挖(wa)掘(jue)係(xi)統(tong)軟(ruan)硬(ying)件(jian)能(neng)力(li),避(bi)免(mian)由(you)於(yu)獨(du)立(li)設(she)計(ji)軟(ruan)硬(ying)件(jian)體(ti)係(xi)結(jie)構(gou)而(er)帶(dai)來(lai)的(de)種(zhong)種(zhong)弊(bi)病(bing),得(de)到(dao)高(gao)性(xing)能(neng)低(di)代(dai)價(jia)的(de)優(you)化(hua)設(she)計(ji)方(fang)案(an)。
二、嵌入式係統的發展趨勢
在網絡、通信、微電子發展的基礎上,以及勢不可擋的數字化信息產品的強大需求推動下,嵌入式技術具有廣闊的發展創新空間。
(1) 低功耗、高性能、高可靠性的係統需求對我國芯片設計是一個機遇。以嵌入式處理 器為領頭的國產CPU、片上係統(SoC)、片上網絡係統(NoC)將有很大的發展。
(2) Linux正逐漸成為嵌入式操作係統的主流;J2ME技(ji)術(shu)也(ye)將(jiang)對(dui)嵌(qian)入(ru)式(shi)軟(ruan)件(jian)的(de)發(fa)展(zhan)產(chan)生(sheng)深(shen)遠(yuan)影(ying)響(xiang)。目(mu)前(qian)自(zi)由(you)軟(ruan)件(jian)技(ji)術(shu)備(bei)受(shou)青(qing)睞(lai),並(bing)對(dui)軟(ruan)件(jian)技(ji)術(shu)的(de)發(fa)展(zhan)產(chan)生(sheng)了(le)巨(ju)大(da)的(de)推(tui)動(dong)作(zuo)用(yong)。嵌(qian)入(ru)式(shi)操(cao)作(zuo)係(xi)統(tong)內(nei)核(he)不(bu)僅(jin)需(xu)要(yao)具(ju)有(you)微(wei)型(xing)化(hua)、高實時性等基本特征,還將向高可信性、自適應性、構件組件化方向發展;支撐開發環境將更加集成化、自動化、人性化;係統軟件對無線通信和能源管理的功能支持將日益重要。近幾年來,為使嵌入式設備更有效地支持Web服務而開發的操作係統不斷推出。這種操作係統在體係結構上采用麵向構件、中間件技術,為應用軟件乃至硬件的動態加載提供支持,即所謂的"即插即用",在克服以往的嵌入式操作係統的局限性方麵顯示出明顯的優勢。
(3) Java虛擬機與嵌入式Javajiangchengweikaifaqianrushixitongdeyouligongju。qianrushixitongdeduomeitihuajiangbianchengxianshi。tazaiwangluohuanjingzhongdeyingyongyishibukekangjudechaoliu,bingjiangzhanlingwangluojierushebeidezhudaodiwei。
(4) 嵌入式係統與人工智能、模式識別技術的結合,將開發出各種更具人性化、智能化的實際係統。智能手機、數字電視,以及汽車電子的嵌入式應用,是這次機遇中的切入點。伴隨網絡技術、網格計算的發展,以嵌入式移動設備為中心的"無所不在的計算"將成為現實。
三、嵌入式係統在機器人技術中的應用
不(bu)論(lun)是(shi)在(zai)工(gong)業(ye)控(kong)製(zhi)中(zhong),還(hai)是(shi)在(zai)商(shang)業(ye)領(ling)域(yu)裏(li),機(ji)器(qi)人(ren)技(ji)術(shu)都(dou)得(de)到(dao)了(le)廣(guang)泛(fan)的(de)應(ying)用(yong)。從(cong)用(yong)於(yu)生(sheng)產(chan)加(jia)工(gong)的(de)傳(chuan)統(tong)工(gong)業(ye)機(ji)器(qi)人(ren)到(dao)豐(feng)富(fu)大(da)眾(zhong)生(sheng)活(huo)的(de)現(xian)代(dai)娛(yu)樂(le)機(ji)器(qi)人(ren),都(dou)與(yu)嵌(qian)入(ru)式(shi)係(xi)統(tong)密(mi)不(bu)可(ke)分(fen)。現(xian)有(you)的(de)大(da)多(duo)數(shu)機(ji)器(qi)人(ren),都(dou)采(cai)用(yong)單(dan)片(pian)機(ji)作(zuo)為(wei)控(kong)製(zhi)單(dan)元(yuan),以(yi)8位和16位最為常見,其處理速度較低,沒有操作係統,無法實現豐富的多任務功能,係統的潛力沒有得到充分的發掘和應用。
基於ARM9的機器人視覺係統的目標是在選定好的S3C2410平台上移植並配置Linux操作係統,針對平台和應用的特點,製作合適的文件係統,為機器人視覺係統構建穩定的軟硬件開發環境。其次編寫應用程序,通過S3C2410平台,從USBshexiangtoushishicaijituxiang,bingliyongzhekuanqianrushichuliqideqiangdayunsuannengli,duituxiangjinxinghouqidechuli,wanchengmubiaoshibieyudingwei,zuoweijiqirendongzuodanyuandeshuru。zuihouzhenduijiqirenguanjiesuoshiyongdedianji,bianxietedingdeshebeiqudongchengxu,baozhengcaozuoxitongkezhunquedikongzhijiqirendongzuo,xiangyingshijiaochulidejieguo,kaifayitaowanzhengde"機器人視覺係統"。
[page_break]
1. 硬件平台的選型和搭建
機器人係統如圖1所示。全身由24個舵機組成,控製24個關節。通過對舵機的控製,可實現機器人的動作。

(1) 視覺係統
采用USB攝像頭作為視覺采集器件。其優點是接口通用,驅動豐富,傳輸速率快。同時,Linux操作係統對於USB設備的支持較好,方便了應用程序的編寫和調試。網眼(WebEye)v2000攝像頭,采用了ov511芯片(Linux源代碼中有相應的驅動程序),適合用於開發。
這裏采用高端的32位嵌入式微處理器:基於ARM體係結構的S3C2410芯片(由三星公司生產),其主頻為200MHz。它提供了豐富的內部設備:分開的16kB指令Cache和16kB數據Cache、MMU虛擬存儲器管理、LCD控製器、支持NAND Flash係統引導、係統管理器、3通道UART、4通道DMA、4通道PWM定時器、I/O端口、RTC、8通道10位ADC和觸摸屏接口、IIC-BUS接口、USB主機、USB設備、SD主卡和MMC卡接口、2通道的SPI以及內部PLL時鍾倍頻器。S3C2410采用了ARM920T內核,0.18μm工藝的CMOS標準宏單元和存儲器單元。
(2) 硬件平台組成
見圖2,一塊核心母板,配備CPU、16MB的NOR Flash、64MB的NAND Flash、32MB的SDRAM,並設置係統從NAND Flash啟動;一塊外設電路板,負責係統和外設器件的連接,布設有2個USB接口、1個UART口、24個3針插座(用 於控製機器人的關節)以及電源接口等。核心母板與外設電路板通過內存插槽進行連接。

圖2 硬件電路
分開設計的好處有:升級核心母板可實現係統處理能力的提高;而er更geng換huan外wai設she電dian路lu則ze可ke適shi應ying不bu同tong的de應ying用yong。這zhe樣yang就jiu大da大da節jie約yue了le硬ying件jian成cheng本ben,對dui於yu開kai發fa和he調tiao試shi也ye是shi非fei常chang有you利li的de。同tong時shi,核he心xin母mu板ban本ben身shen就jiu是shi一yi個ge最zui小xiao係xi統tong,在zai嵌qian入ru式shi係xi統tong設she計ji中zhong,保bao證zheng最zui小xiao係xi統tong的de可ke靠kao性xing是shi開kai發fa的de第di一yi步bu。
調試核心母板以及外設電路至工作正常。確保開發板與PC機通信(利用Windows下的超級終端工具,通過串口線連接開發板與PC機)。
[page_break]
2. 軟件平台的構建和配置
目前,越來越多的嵌入式係統采用了Linux作為操作係統。Linux功能強大,運行穩定,驅動齊全,配置靈活,內核緊湊,從來就與嵌入式係統有密不可分的關係。Linux內核版本眾多,其中2.4係列比較成熟,在嵌入式平台中應用廣泛,資料齊全。這裏使用Linux- 2.4.18-rmk7-pxa1版本。
a. 配置開發板軟件環境
將係統引導程序(俗稱bootloader,其功能相當於PC機中的BIOS)燒寫進入S3C2410核心母板。這裏采用了三星公司推薦的vivi程序。通過對vivi中參數的設置,完成對Flash的分區。
b. 配置、編譯、下載內核
(1) 下載源代碼,在PC端建立交叉編譯環境;armv4l-unknown-linux-gcc可以將Linux內核編譯為適用於ARM體係結構的二進製代碼;
(2) 配置內核:使用make menu-config命令,將USB設備支持、USB攝像頭驅動(針對OV511芯片)、NAND Flash驅動,以及掛載嵌入式文件係統所需要的驅動程序靜態編譯到內核中;
(3) 編譯內核:使用交叉編譯工具,將源代碼編譯為可執行二進製內核鏡像,生成文件zImage;
(4) 下載內核:將zImage通過串口線,利用vivi的數據燒寫功能,下載到Flash的內核分區中(kernel);
c. 製作文件係統
嵌入式係統中常見的文件係統有CRAMFS、JFFS、JFFS2、YAFFS等。考慮到實際的需求,這裏采用了CRAMFS。在內核配置時對CRAMFS的驅動代碼進行靜態編譯,並且利用mkcramfs工具製作經過仔細裁剪的文件係統映像,利用vivi的燒寫指令下載到Flash的root分區。最終的文件係統映像小於3MB,這是由嵌入式係統較為緊張的存儲資源決定的。
啟動係統,通過PC機的超級終端,可看到啟動信息:包括內核的版本、Flash分區表、交叉編譯器的版本,以及內核中靜態編譯的組件等。
3. 驅動程序的編寫和應用程序的開發
視shi覺jiao功gong能neng的de最zui終zhong實shi現xian,首shou先xian需xu要yao為wei機ji器qi人ren的de關guan節jie電dian機ji編bian寫xie驅qu動dong程cheng序xu,使shi操cao作zuo係xi統tong可ke完wan成cheng對dui機ji器qi人ren動dong作zuo的de控kong製zhi,作zuo為wei對dui視shi覺jiao結jie果guo的de響xiang應ying。視shi覺jiao絕jue非fei最zui終zhong目mu的de,而er是shi機ji器qi人ren獲huo取qu信xin息xi的de一yi種zhong途tu徑jing,其qi根gen本ben目mu的de在zai於yu為wei機ji器qi人ren的de動dong作zuo、行為提供策略或數據支持。單純的視覺並沒有意義。
機器人全身的關節均為舵機。舵機結構簡單,控製方便,外部隻有3個引腳:電源、地、PWM信號。對舵機的控製實際上就是要產生頻率、脈寬合適的PWM波。
S3C2410芯片內部集成4個PWM發生單元。驅動程序利用其中的一個作為機器人頭部電機的控製信號源,通過改寫寄存器的值,改變頻率和占空比,產生期望的PWM波。
將(jiang)驅(qu)動(dong)程(cheng)序(xu)交(jiao)叉(cha)編(bian)譯(yi)為(wei)模(mo)塊(kuai),在(zai)係(xi)統(tong)啟(qi)動(dong)後(hou)動(dong)態(tai)地(di)插(cha)入(ru)內(nei)核(he)中(zhong)。模(mo)塊(kuai)加(jia)載(zai)前(qian)獨(du)立(li)於(yu)內(nei)核(he),方(fang)便(bian)了(le)驅(qu)動(dong)程(cheng)序(xu)的(de)調(tiao)試(shi)。編(bian)寫(xie)簡(jian)短(duan)的(de)測(ce)試(shi)程(cheng)序(xu),確(que)認(ren)關(guan)節(jie)電(dian)機(ji)可(ke)以(yi)正(zheng)常(chang)工(gong)作(zuo)。
這裏為機器人視覺係統搭建了一個實際的應用場景:活動的目標小球在背景中運動,期望機器人可以識別目標並對其定位,最後控製頭部跟隨目標運動(好像機器人在盯著活動目標觀察一樣)。
機器人視覺處理程序的主要功能為:
(1) 從USB攝像頭實時讀取視頻數據,進行簡單的預處理;
(2) 隨後進行圖像處理,主要完成空域的圖像增強。通過對圖像進行二值化,將目標小球從背景中提取出來;
(3) 計ji算suan目mu標biao的de位wei置zhi,進jin而er計ji算suan出chu機ji器qi人ren頭tou部bu的de旋xuan轉zhuan角jiao度du,通tong過guo舵duo機ji驅qu動dong程cheng序xu,控kong製zhi機ji器qi人ren頭tou部bu轉zhuan動dong到dao目mu標biao所suo在zai角jiao度du,實shi現xian對dui目mu標biao物wu體ti的de跟gen蹤zong。
經過實驗,機器人頭部可較好地跟蹤目標,實現了視覺原型係統。
4. 拓展性工作
機(ji)器(qi)人(ren)視(shi)覺(jiao)係(xi)統(tong)的(de)開(kai)發(fa)隻(zhi)是(shi)嵌(qian)入(ru)式(shi)係(xi)統(tong)在(zai)機(ji)器(qi)人(ren)領(ling)域(yu)中(zhong)應(ying)用(yong)的(de)一(yi)個(ge)方(fang)麵(mian)。事(shi)實(shi)上(shang),還(hai)有(you)很(hen)多(duo)值(zhi)得(de)我(wo)們(men)繼(ji)續(xu)去(qu)實(shi)現(xian)的(de)子(zi)係(xi)統(tong),諸(zhu)如(ru)語(yu)音(yin)係(xi)統(tong)(語音識別、語音輸出)、行走控製(設計算法,實現平穩的行走)、網絡係統(未來的機器人將不再會是獨立的個體,多機器人的協同工作是必然的趨勢;同時,機器人同其他設備的連接需求也越來越迫切)等等。應當承認,雖然目前的嵌入式處理器已經具備了比較強大的功能,但是受功耗、體積、成本因素的限製,在實時視頻(音頻) 處理、多媒體協同計算等方麵,其速度仍然無法滿足需求;所以,更強勁的嵌入式處理器也是將來在為機器人選擇控製單元時的重要考慮因素。
四、嵌入式係統的前景
從本文所述的機器人視覺係統中就可看出嵌入式係統的強大功能與廣闊應用領域。在當今數字信息和網絡技術高速發展的後PC(Post-PC)時代,嵌入式係統已被廣泛應用於移動計算平台(PDA、掌上計算機)、信息家電(數字電視、機頂盒、網絡設備)、無線通信設備(智能手機、股票接收設備)、工業/商業控製(智能工控設備、POS/ATM 機)、電子商務平台、甚至軍事應用等諸多領域,其前景無疑是令人非常樂觀的。