王斌 薛文奎
摘要:針對(duì)娛樂(lè)機(jī)器人系統(tǒng)開(kāi)放性差、通信接口標(biāo)準(zhǔn)不統(tǒng)一、數(shù)據(jù)傳輸性差等問(wèn)題,機(jī)器人利用嵌入式開(kāi)發(fā)板和CAN總線(xiàn)模塊搭建娛樂(lè)機(jī)器人控制系統(tǒng)硬件平臺(tái),然后將開(kāi)放的Linux操作系統(tǒng)移植到控制器上,經(jīng)測(cè)試系統(tǒng)動(dòng)態(tài)性好和實(shí)時(shí)性強(qiáng)。
關(guān)鍵詞:娛樂(lè)機(jī)器人;硬件平臺(tái);CAN總線(xiàn)模塊;Linux操作系統(tǒng)
中圖分類(lèi)號(hào):TB
文獻(xiàn)標(biāo)識(shí)碼:A
doi:10.19311/j.cnki.16723198.2017.09.091
娛樂(lè)機(jī)器人的研究網(wǎng)絡(luò)通信協(xié)議不開(kāi)放和專(zhuān)用的操作系統(tǒng),導(dǎo)致市場(chǎng)上出現(xiàn)的娛樂(lè)機(jī)器人開(kāi)放性差、通信接口標(biāo)準(zhǔn)不統(tǒng)一、數(shù)據(jù)傳輸性差等問(wèn)題,阻礙娛樂(lè)機(jī)器人的更好的發(fā)展。本文提出將開(kāi)放的嵌入式Linux操作系統(tǒng)移植到ARM9開(kāi)發(fā)板,實(shí)現(xiàn)娛樂(lè)機(jī)器人通信接口標(biāo)準(zhǔn)不統(tǒng)一的問(wèn)題,數(shù)據(jù)傳輸?shù)目煽啃缘玫教岣摺?/p>
1系統(tǒng)總體設(shè)計(jì)
采用模塊化設(shè)計(jì)娛樂(lè)機(jī)器人控制系統(tǒng),系統(tǒng)主要由主節(jié)點(diǎn)模塊、通信總線(xiàn)模塊、從節(jié)點(diǎn)模塊、紅外線(xiàn)檢測(cè)模塊和驅(qū)動(dòng)模塊等組成。娛樂(lè)機(jī)器人系統(tǒng)框架如圖1所示。
2硬件平臺(tái)組成
2.1主節(jié)點(diǎn)模塊
主節(jié)點(diǎn)模塊是娛樂(lè)機(jī)器人控制系統(tǒng)的核心,負(fù)責(zé)與其他各個(gè)模塊進(jìn)行數(shù)據(jù)交換和管理網(wǎng)絡(luò)功能。系統(tǒng)采用S3C2441A處理器作為主控芯片。S3C2440A微處理器主頻400MHz,系統(tǒng)集成SDRAM儲(chǔ)存器、專(zhuān)用LCD的DMA控制器、擁有外部請(qǐng)求的4路引腳DMA控制器,支持16/32位精簡(jiǎn)指令集。
2.2CAN總線(xiàn)模塊
CAN總線(xiàn)模塊由CAN收發(fā)器和CAN控制器組成,本文采用MSG-3CM類(lèi)型CAN總線(xiàn)控制芯片和TJA1050的CAN總線(xiàn)收發(fā)器,其電路原理圖如圖2所示。
2.3從節(jié)點(diǎn)模塊
采用68HC11單片機(jī)作為從節(jié)點(diǎn)控制器模塊,68HC11是增強(qiáng)型8位單片機(jī),芯片具有運(yùn)算高速、系統(tǒng)功能齊備、低功耗等優(yōu)點(diǎn)。68HC11通過(guò)SPI接口與CAN總線(xiàn)模塊的SPI接口進(jìn)行通訊,外圍電路設(shè)計(jì)簡(jiǎn)單,可靠性高。
2.4紅外傳感器模塊
紅外傳感器接收與發(fā)送模塊由紅外發(fā)射器和紅外接收器組成,檢測(cè)距離為18—75cm。其原理圖如3所示。
3娛樂(lè)機(jī)器人軟件平臺(tái)
搭建娛樂(lè)機(jī)器人軟件平臺(tái),將開(kāi)放的嵌入式Linux操作系統(tǒng)移植到GT2440上。具體需要進(jìn)行主機(jī)的配置、Boot Loader的移植、linux內(nèi)核的移植及配置、根系統(tǒng)文件的建立等方面。
3.1嵌入式Linux開(kāi)發(fā)環(huán)境的建立
嵌入式系統(tǒng)開(kāi)發(fā)采用交叉開(kāi)發(fā)方式,即在電腦將代碼編寫(xiě)好,然后通過(guò)編譯交叉工具生成執(zhí)行機(jī)器代碼,再通過(guò)串口下載到系統(tǒng)平臺(tái)上,如圖4所示。
3.2移植Boot Loader
移植U-Boot原理是將U-Boot源代碼上進(jìn)行刪減或添加系統(tǒng)相關(guān)配置文件,然后進(jìn)行編譯及下載到控制板的過(guò)程。移植具體如下:
(1)將u-boot-1.1.6解壓到GT2440文件中。
(2)修改smdk2410.c、smdk2410.o、smdk2410.h分別修改為GTStudio.c、GTStudio.o、GTStudio.h。
(3)指定交叉編譯器為“Carm-linux-”。
(4)中斷向量根據(jù)需要進(jìn)行修改start.s文件,修改serial.c與設(shè)置的FPCLK和串口波特率相同。
(5)設(shè)置bank控制器參數(shù)及修改lowlevel_init.s文件與內(nèi)存配置一致。
(6)在drivers中添加設(shè)備驅(qū)動(dòng)程序,實(shí)現(xiàn)USB等設(shè)備的驅(qū)動(dòng)。
(7)執(zhí)行make指令,生成機(jī)器語(yǔ)言映像文件。
3.3Linux內(nèi)核移植
3.3.1內(nèi)核源碼的解壓
在Linux源代碼包,執(zhí)行#tar xvzf 指令將Linux-2.6.38.6進(jìn)行解壓縮。
3.3.2設(shè)置編譯環(huán)境
修改makefile文件完成目標(biāo)代碼的類(lèi)型的更改,系統(tǒng)編譯交叉工具為4.3.4.具體設(shè)計(jì)為:
ARCH2?= arm1
CROSS_COMPILE ?=/local/arm1/4.4.3/bin/arm-linux-
3.3.3修改系統(tǒng)時(shí)鐘
GT2440開(kāi)發(fā)板采用的外部時(shí)鐘為12MHz,對(duì)應(yīng)的內(nèi)核源代碼為mach-smdk2440.c文件中,將s3c24xx_init_clocks修改為12MHz(12000000)。
4系統(tǒng)測(cè)試
將生成的二進(jìn)制映像文件下載到GT2440芯片中。用USB線(xiàn)將GT2440開(kāi)發(fā)板與電腦連接好,然后利用DNW軟件將編譯好的文件下載到開(kāi)發(fā)板中,并重新啟動(dòng)系統(tǒng),可通過(guò)SecureCRT軟件看到系統(tǒng)界面,如圖5所示。
5結(jié)論
本文搭建娛樂(lè)機(jī)器人硬件平臺(tái),通過(guò)CAN總線(xiàn)實(shí)現(xiàn)系統(tǒng)各硬件模塊的底層通信,同時(shí)使用CANopen協(xié)議完成主從節(jié)點(diǎn)的通信,實(shí)現(xiàn)硬件模塊化,同時(shí)也提高了數(shù)據(jù)傳輸?shù)目煽啃浴?/p>
參考文獻(xiàn)
[1]白俊利.娛樂(lè)機(jī)器人控制器與無(wú)線(xiàn)通信網(wǎng)絡(luò)的設(shè)計(jì)與實(shí)現(xiàn)[D].蘭州:蘭州理工大學(xué),2010.
[2]Dominik Off.Multimodal Integration Processes in Plan-Based Service Robot Control[J].Tsinghua Science and Technology,2011.
[3]嵇鵬程.服務(wù)機(jī)器人的現(xiàn)狀及發(fā)展趨勢(shì)[J].常州大學(xué)學(xué)報(bào),2010.
[4]李衛(wèi).基于ARM的嵌入式服務(wù)機(jī)器人控制器的研究[J].電子設(shè)計(jì)工程,2009.
[5]辛鑫.基于嵌入式ARM9平臺(tái)的Linux-2.6移植[D].武漢:華中科技大學(xué),2008.