董改花,孫榮川,孫立寧,郭秀華DONG Gai-hua, SUN Rong-chuan, SUN Li-ning, GUO Xiu-hua(.蘇州經貿職業技術學院SOC研發中心,蘇州 5009;.蘇州大學機器人與微系統研究中心,蘇州 5000)
基于CAN總線的移動機器人超聲波測距模塊標準化設計
董改花1,2,孫榮川2,孫立寧2,郭秀華1
DONG Gai-hua1,2, SUN Rong-chuan2, SUN Li-ning2, GUO Xiu-hua1
(1.蘇州經貿職業技術學院SOC研發中心,蘇州 215009;2.蘇州大學機器人與微系統研究中心,蘇州 215000)
面向當前移動機器人平臺模塊化及通用接口標準化發展的迫切需求,以TMS320F2812 DSP芯片增強型eCAN為核心,對移動機器人常用的超聲波測距模塊進行通用標準化CAN口設計。主要包括eCAN標準化接口硬件電路設計及超聲波信號處理流程等。試驗結果證明,本超聲波測距模塊標準化接口工作可靠,實時性好,滿足控制要求,能與上位機通過CAN總線實現即插即用,已經成功應用于移動機器人控制系統中。
超聲波測距;標準化接口;DSP芯片;CAN總線;移動機器人
對周圍障礙物距離地不斷測量構建環境的二維或三維信息是移動機器人構建環境地圖、實現路徑規劃、自主導航定位與實現避障的先決條件[1]。超聲波傳感器以其簡單方便、成本低等優點,以及在測量精度方面完全能夠達到工業實用要求,所以在移動機器人研制上受到了人們越來越多地青睞。
目前市場上超聲波傳感器種類繁多,其輸出接口信號不一致,沒有統一標準,導致傳感器之間無法實現互操作及即插即用[2]。就最終使用用戶而言,面臨著重復投入及二次開發問題。這樣使得移動機器人研究設計人員得花費大量的時間精力在底層傳感器及驅動執行器的硬件接口通信上,很大程度上延長了研究周期,增加了研究成本。2015年5月,國務院發布《中國制造2025》規劃,機器人作為該戰略部署的十個重點發展領域之一,其中指出要想突破機器人技術瓶頸,機器人設計標準化、模塊化發展是今后趨勢[3]。從目前的現狀來看,隨著移動機器人傳感器系統復雜程度的加深,涉及到的接口種類也越來越多,傳感器系統接口標準化技術已經成為移動機器人技術迅速發展的關鍵。
目前,超聲波測距相關資料及論文不少,但大多數是用單片機作為微處理器進行測距,主要呈現出以下不足:一方面,單片機不足以滿足移動機器人上層算法對傳感器數據采集頻率的要求。另一方面,絕大多數資料都是僅對超聲波如何測距進行設計,對其接口進行標準化設計方面的內容少之又少。在此背景下,設計了一款基于DSP的即插即用的具有通用標準化CAN接口的超聲波測距模塊。
目前,清潔機器人作為移動機器人中的一種,采用超聲波避障的清潔機器人產品有很多,比如日本夏普公司Cocorobo RX、伊萊克斯三葉蟲ZA1和臺灣微星電子FUNROBOT iCleaner M800等,圖1為FUNROBOT iCleaner M800型號清潔機器人,此清潔機器人前部防撞位置有3組每組2個共6個超聲波探測器。

圖1 FUNROBOT M800清潔機器人
開發人員每設計一款清潔移動機器人都得重新設計底層超聲波測距功能電路板,浪費了很多時間、精力及成本。因此本文設計一款通用型超聲波測距模塊,通過標準化CAN接口能與各種清潔移動機器人通信連接,實現數據的實時采集。此類移動機器人平臺大多分為底層驅動模塊、傳感器控制模塊、上層控制模塊[2]三部分。常見移動機器人平臺如圖2所示。

圖2 移動機器人平臺
常見通用接口有CAN、SCI、SPI等[4]。CAN總線只有2根線與外部相連,是一種能實現實時控制的多主串行通信局域網[5]。移動機器人平臺普遍采用CAN總線與下層節點進行通信。
從圖2中看出,超聲波測距標準化接口模塊將超聲波測距電路信號經微處理器DSP[6]信號處理后,輸出適合CAN總線的通用標準信號。移動機器人平臺上層控制模塊通過CAN總線對各個下層節點實時監控管理及控制。傳感器控制模塊負責將采集的數據通過標準CAN接口向上層模塊匯報,上層模塊將采集的信息根據實時算法做出決策。
本系統采用了TMS320F2812 DSP芯片,原因是此芯片上集成了兼容CAN2.0協議的增強型eCAN模塊,它可以使用已制定的CAN2.0協議在電子噪聲環境中同上位機進行串口通信[7,8]。
本系統超聲波測距選用的型號為HC-SR04,它可提供20mm~4000mm非接觸式距離感測功能,精度為3mm,完全符合移動機器人避障范圍及精度。
此HC-SR04超聲波測距電路板有4個引腳,其中VCC接電源+5V,GND接地,還有2個信號引腳Trig和Echo。Trig為觸發角,要用至少10us的高電平觸發它,然后電路板會自動發送8個40kHz的方波,自動檢測是否有信號返回到Echo腳,一旦檢測到有信號返回,Echo腳將輸出一個高電平,其高電平持續的時間長度就是超聲波從發射到返回的時間。其測量距離見式(1)和式(2)[9]。

式中:L為超聲波到障礙物間的距離(單位:m);t為超聲波發射與接收的時間差(單位:s);v為超聲波在空氣中的傳播速度(單位:m/s);T為測量時的實際溫度。式(2)是聲波在空氣中傳播的速度對實際環境溫度的矯正值。
3.1接口標準化硬件電路
超聲波測距CAN接口標準化硬件電路如圖3所示。

圖3 超聲波測距CAN標準化模塊硬件電路
從圖3可知,超聲波測距HC-SR04的觸發測量引腳Trig接TMS320F2812 DSP芯片通用輸入輸出口GPIOA的第11引腳TDIRA,故該引腳應設置為輸出口;反饋引腳Echo接TMS320F2812 DSP芯片通用輸入輸出口GPIOF的第0引腳SPISIMO,故該引腳應設置為輸入口。TMS320F2812 DSP芯片擁有的CAN功能引腳CANRXA 和CANTXA分別和CAN總線收發器SN65HVD230的R腳和D腳連接,SN65HVD230的CANH和CANL分別接到CAN總線的對應引腳。在CAVH和CANL之間要接一個120Ω的匹配總線電阻以提高整個系統的可靠性。
本模塊標準化設計將障礙物距離通過CAN總線采集到上位機進行決策控制外,還設計了將實際距離以七段數碼管的形式顯示出來。超聲波電路板HC-SR04測距范圍為20mm~4000mm,故選用四位七段共陰數碼管,DSP通過3128A CPLD為4位數碼管分別分配了地址0x80000、0x90000、0xa0000、0xb0000,DSP的D0到D6分別對應A-G,D7對應DP小數點。
3.2模塊標準化軟件設計
本設計采用的DSP為TI公司TMS320F2812型號,其內嵌eCAN模塊擁有32個郵箱。本超聲波測距模塊主要任務是由DSP將超聲波現場采集的距離值通過CAN總線發送至上位機,故本系統僅需1個郵箱存儲距離值,且要求是具有發送功能,本傳感器控制模塊選擇0#郵箱的發送功能。
1)配置GPIO端口eCAN功能
eCAN模塊初始化首先要將TMS30F2812 DSP芯片引腳CANTX和CANRX設置為CAN功能端口。設置程序為:
GpioMuxRegs.GPFMUX.bit.CANRXA_GPIOF7=1;
GpioMuxRegs.GPFMUX.bit.CANTXA_GPIOF6=1;
對超聲波傳感器模塊中使用的GPIO口TDIRA和SPISIMO進行初始化,將TDIRA設置為輸出普通IO口,將SPISIMO設置為輸入普通IO口,程序如下:
GpioMuxRegs.GPAMUX.bit.TDIRA_GPIOA11=0;
GpioMuxRegs.GPFMUX.bit.SPISIMOA_GPIOF0=0;
GpioMuxRegs.GPADIR.bit.GPIOA11=1;
GpioMuxRegs.GPFDIR.bit.GPIOF0=0;
GpioDataRegs.GPADAT.bit.GPIOA11=0;
2)eCAN波特率的配置
eCAN波特率設置是成功完成通訊的關鍵,根據公式(3)[5]:

其中系統時鐘設置SYSCLK=150MHz,BRPreg=9,TSEG1reg=10,TSEG2reg=2。代入式(3),本模塊CAN波特率設置為1MHz。
3)eCAN信息的發送
eCAN信息發送首先要清除CANTRS寄存器,然后是對郵箱的初始化。本模塊選用0#郵箱,設為發送郵箱且標識符為0x80C80000。初始化完成后,將要發送的數據寫入指定的郵箱數據區,對應CANTRS寄存器置位,表示數據已經準備好,等待CANTA寄存器對應位置位,則郵箱數據完成發送任務。當此次信息發送完畢后,要復位CANTA及CANTRS對應位,注意只有對其對應位寫1才能清零。為下次的信息發送做好準備。主要發送程序:
ECanaRegs.CANTRS.all = 0x00000001;
While(ECanaRegs.CANTA.all = = 0);
ECanaRegs.CANTA.all = 0x00000001;
4)超聲波測距程序
本超聲波測距模塊采用DSP芯片內定時器T0中斷進行處理。本系統選用的超聲波電路板HC-SR04測量距離范圍為20mm~4000mm,精度為3mm。經計算所能測量距離的時間范圍為117us~23.5ms,精確到3mm所需測量時間大約為17us,所以選擇DSP定時器T0的計時時間為10us,保證能達到超聲波測距的精度要求。具體T0定時器中斷程序如下:
EALLOW;
PieVectTable.TINT0 = &ISRTimer0;
EDIS;
ConfigCpuTimer(&CpuTimer0, 150, 10);
CpuTimer0Regs.TCR.bit.TSS = 0;
IER |= M_INT1;
PieCtrl.PIEIER1.bit.INTx7=1;
EINT;
ERTM;
在定時T0中斷服務程序中,將超聲波至少10us觸發脈沖發送至Trig腳,同時檢測反饋腳Echo腳為高電平的時刻,其高電平持續的時間,通過式(1)及式(2),即可獲取超聲波與被測物之間距離。為防止發射信號對回響信號的影響,測量周期至少為60ms以上,本系統設置為1s采集一次,本模塊還可以根據用戶要求,只要改變程序數據即可隨意設置采樣周期。
移動機器人平臺上層控制模塊主要完成圖像采集、路徑規劃、地圖分析及多處理器之間通信等工作。目前常用處理器有工控機、ARM等。為驗證超聲波傳感器標準化模塊與上層控制系統能夠實現即插即用。將其安裝在本實驗室現有清潔機器人移動平臺的正前方進行試驗,如圖4所示。

圖4 清潔機器人試驗平臺
本系統采用的USB to CAN適配器選擇了德國IXXAT公司USB-to-CAN Compact型號,它是一種用于連接CAN總線的低功耗、主動CAN接口。實時測量值用CAN總線下層節點超聲波測距標準化模塊通過四位數碼管實時采集,清潔移動機器人平臺在移動過程中實時測量與周邊障礙物的距離,此時采集距離值為443mm,如圖5所示。

圖5 超聲波模塊測距
同時將現場采集的實時數據通過CAN總線傳輸到與其通信的上位機上,數據采集結果如圖6所示。

圖6 上位機現場數據采集
超聲波測距標準化模塊測距結果通過DSP芯片0#郵箱進行發送,由圖6看出在0#郵箱標識符為0x80C80000,郵箱寄存器有CANMDL和CANMDH,各32位。而超聲波測距范圍為20mm~4000mm,轉成十六進制數為14H~FA0H。本系統中高32位CANMDH寄存器存放傳感器測得距離字符值,通過圖6發現此時障礙物實際距離測量值為443mm,與圖5中數碼管顯示一致。低32位CANMDL寄存器存放傳感器實際距離測量值,顯示出的結果已經將其轉為十六進制數據,443mm轉成十六進制數為1BBH,與圖6顯示結果一致。由此該超聲波測距標準化接口模塊通過CAN總線能實時準確地采集到上位機。
針對移動機器人平臺上常用的超聲波測距電路,采用TMS320F2812 DSP芯片為核心微處理器,將其模塊進行標準化CAN接口設計,并利用現有清潔移動機器人平臺進行試驗,試驗結果表明此模塊與上位機CAN總線通信可靠,實時性好。
此超聲波標準化接口模塊還可推廣應用到避障距離在4m范圍內的任何移動機器人系統中。可將此系統裝于一個黑盒子內,移動機器人研發設計人員只需拿來直接通過CAN總線與上層平臺搭接,即可采集到想要的實時數據,不需要再去花費時間和精力去研究超聲波傳感器輸出信號處理的硬軟件設計,節約了研究成本,縮短了研究周期。
[1] 賈莉娜.高精度的超聲波測距系統在移動機器人導航方面的應用[J].計量與測試技術,2004,31(9):23-24,26.
[2] 蔡永娟.機器人感知系統標準化與模塊化設計[D].中國科學技術大學,2010.
[3] 桂仲成,吳建東,李永龍.2009日本國際機器人展綜述[J].東方電氣評論,2010,24(3):69-78.
[4] 鄭凱.小型移動機器人系統平臺的模塊化設計與實現[D].華中科技大學,2010.
[5] 顧衛鋼.手把手教你學DSP-基于TMS320X281X[M].2版.北京航空航天大學出版社,2015,8.
[6] 方正,楊華,胡益民,徐心和.嵌入式智能機器人平臺研究[J].機器人,2006,28(1):54-58.
[7] 田志宏,白穩峰,徐文慧.CAN總線在電動輪椅車通信系統中的應用[J].自動化與儀表,2010,25(8):19-22,30.
[8] 王兵,蔣蓁.模塊化重構機器人技術的現狀與發展綜述[J].機電工程,2008,25(5):1-4.
[9] 李恒,徐小力,左云波.移動機器人超聲波測距避障系統設計[J].現代電子技術,2014,(3):157-159,162.
A CAN bus standardized design of ultrasonic distance measuring module in mobile robots
TP336
A
1009-0134(2016)08-0041-04
2016-06-24
江蘇省高等職業院校國內高級訪問學者計劃資助項目(2015FX068);蘇州經貿職業技術學院科研項目(KY-ZR1508)
董改花(1977 -),女,山西太谷人,副教授,碩士,主要從事機電控制方面的教學與研究。