- 相關(guān)推薦
小型足球機器人的無線通信系統(tǒng)設(shè)計
摘要:介紹了一種用于Robocup F-180小型組足球機器人比賽的無線通信系統(tǒng)的設(shè)計。包括發(fā)送端和接收端系統(tǒng)的硬件設(shè)計和實現(xiàn)及其軟件設(shè)計。給出了一種適應(yīng)于這套系統(tǒng)的通信協(xié)議,包括物理層的編碼設(shè)計、糾錯編碼設(shè)計和幀結(jié)構(gòu)設(shè)計。關(guān)鍵詞:串行通信 無線通信 機器人
足球機器人是一個極富挑戰(zhàn)性的高技術(shù)密集 密集型項目,融小車機械、機器人學(xué)、機電一體化、單片機、數(shù)據(jù)融合、精密儀器、實時數(shù)字信號處理、圖像處理與圖像識別、知識工程與專家系統(tǒng)、決策、軌跡規(guī)劃、自組織與自學(xué)習(xí)理論、多智能體協(xié)調(diào)以及無線通信等理論和技術(shù)于一體,既是一個典型的智能機器人系統(tǒng),又為研究發(fā)展多智能體系統(tǒng)、多機器人之間的合作與對抗提供了生動的研究模型。它通過提供一個標(biāo)準(zhǔn)任務(wù),使研究人員利用各種技術(shù)獲得更好的解決方案,從而有效促進各個領(lǐng)域的發(fā)展。其聽理論與技術(shù)可應(yīng)用于工業(yè)生產(chǎn)、自動化流水線、救援、教育等實踐領(lǐng)域,從而有效推動國家科技經(jīng)濟等方面的發(fā)展。機器人足球 從一個側(cè)面反映了一個國家信息與自動化領(lǐng)域的基礎(chǔ)研究和高技術(shù)發(fā)展水平。
目前,國際上有機器人足球比賽分為兩大系列——FIRA和Robocup。本文所要論述的系統(tǒng)所應(yīng)用的F-180小型足球機器人比賽就是RoboCup系列中應(yīng)用較廣泛的一種。
F-180小型足球機器人足球比賽的示意圖如圖1所示,比賽雙方各有5名機器人小車在場上。足球機器人系統(tǒng)在硬件設(shè)備方面包括機器人小車、攝像裝置、計算機主機和無線發(fā)射裝置;從功能上分,它包括機器人小車、視覺、決策和無線通信四個子系統(tǒng)。
(范文先生網(wǎng)www.gymyzhishaji.com收集整理)
其中無線通信系統(tǒng)是銜接主機和底層機器人不可缺少的一環(huán),它必須保證從主機端到機器人底層之間的數(shù)據(jù)傳送是可靠的,從而使得機器人比較能夠順利流暢進行。由于比賽雙方都有多個機器人同時在場地上跑動,要求無線通信有一定的抗干擾性。無線通信系統(tǒng)的性能相當(dāng)程度上直接影響著機器人的場上表現(xiàn)。
1 系統(tǒng)的設(shè)計及實現(xiàn)
比賽中從攝像頭來的視頻信號經(jīng)過計算機處理之后得到控制小車用的數(shù)據(jù)信息,而無線通信系統(tǒng)的就是將這些數(shù)據(jù)信息及時準(zhǔn)確地送達場上的每一個機器人小車,系統(tǒng)采用廣播方式,各機器人根據(jù)特定標(biāo)志識別發(fā)給自己的有用數(shù)據(jù),從而進行決策與行動。整個系統(tǒng)的框圖如圖2所示。
1.1 發(fā)送端的硬件設(shè)計
發(fā)送端主要用PIC16F877單片機實現(xiàn)編碼和對發(fā)射機的控制,計算機通過串行口發(fā)送數(shù)據(jù),經(jīng)過PIC16F877編碼后再通過PTR3000無線通信模塊將數(shù)據(jù)發(fā)送出去。
所采用的PIC16F877單處機是MICROCHIP公司推出的8位單片機。采用RISC指令系統(tǒng)和哈佛總線結(jié)構(gòu),最高運行的時鐘頻率可達20MHz,因而指令運行速度快。它有很寬的工作電壓范圍,可直接與3.3V的PTR3000無線通信模塊配合使用。
TR3000無線數(shù)據(jù)收發(fā)模塊是一種半雙工收發(fā)器,采用NORDIC公司的nrf903無線收發(fā)芯片,工作頻率采用國際通用的數(shù)傳頻段ISM,頻段915MHz,工作頻率可以在902MHz~928MHz可變。采用GMSK調(diào)制,抗干擾能力強,特別適合工業(yè)控制。靈敏度高,達到-100dBm,最大發(fā)射功率+10dBm,工作電壓為2.7V~3.3V。它最多有169個頻道,可滿足需要多頻道的場合,最高數(shù)據(jù)速率可達76.8kbps。因而完全可以滿足小型組機器人通信的數(shù)傳速率與距離的需要。
本系統(tǒng)中PIC16F877就是采用20MHz的時鐘信號,能夠滿足即時收發(fā)數(shù)據(jù)以及編碼的需要。整個系統(tǒng)中包含兩種電源,無線通信模塊的電源為3.3V,而MAX232又需要+5電源。信號線的連接也要考慮兩種電平的匹配問題,在必要的地方要加上電平轉(zhuǎn)換電路。
首先單片機要接收來自計算機端的數(shù)據(jù),計算機串口輸出的信號經(jīng)過MAX232由232電平轉(zhuǎn)換為TTL電平。但是由于單片機采用3.3V電平,因而MAX232輸出的信號需經(jīng)過電平轉(zhuǎn)換才能輸入單片機,電平轉(zhuǎn)換可以采用TI公司提供的典型電平匹配電路(見圖3),也可采用74LVCXX系列邏輯門來轉(zhuǎn)換。
由于PIC16F877只有一個異步串行口,因而要通過16C550通用同步異步收發(fā)器(USART)芯片來擴展一個異步串行口。這樣就可以保證從計算機串口輸出的數(shù)據(jù)與無線通信的數(shù)據(jù)速率不同,從而使原始數(shù)據(jù)經(jīng)過通信編碼及打包數(shù)據(jù)量增加之后也能及時傳送,并且在必要時也能將接收數(shù)據(jù)送回計算機端,實現(xiàn)半雙工通道。系統(tǒng)的電路圖如圖4。從圖4可以看出PIC單片機采用并口對16C550進行初始化配置。由于16C550共有10個寄存器,且占用了8個地址,因而PIC單片機用RA0、RA1、RA2三個通用I/O口做地址線選擇16C550的各個寄存器。單片機可以不斷通過RB1、RB2引腳檢測TXRDY、RXRDY信號獲知ST16C550是否接收到數(shù)據(jù),還是已經(jīng)發(fā)送了數(shù)據(jù)。還可以通過把16C550設(shè)置成中斷方式使每接收到一個字節(jié)數(shù)據(jù)便產(chǎn)生一次中斷使INT信號有效,單片機進入中斷處理程序,從而使單片機的執(zhí)行效率更高。
單片機通過自帶的異步串行口輸出數(shù)據(jù)到PTR3000通信模塊。由于nrf903芯片接收和發(fā)送數(shù)據(jù)共用一個引腳,因而需要其他電路來解復(fù)用。最簡單的方法就是在單片機的TX引腳先接一個10kΩ的隔離電阻,再與RX和PTR3000的DATA引腳相連。但是這種方法有兩個缺點,它會造成發(fā)送的數(shù)據(jù)串入到單片機的接收引腳中,另外發(fā)送信號的驅(qū)動能力受到了極大的限制。因此,本系統(tǒng)采用了74HC244三態(tài)緩沖器作為隔離(見圖4中虛線框內(nèi)所示),并且通過單片機的RB4控制收發(fā)狀態(tài),因而在半雙工方式下發(fā)送信號與接收信號可以互不干擾地傳送。
對于通信模塊工作狀態(tài)的控制主要包含表1所列的這幾個信號,通過單片機的普通I/O口即可控制。
表1 PTR3000工作工作模式配置表
1.2 發(fā)送端的軟件設(shè)計
當(dāng)系統(tǒng)復(fù)位時,單片機首先要對PTR3000無線通信模塊和16C550的寄存器進行編程初始化。PTR3000的初始化編程是通過同步串行信號進行的,總共有三個信號CFG_CLK、CS和CFG_DATA,分別連接到單片機RC3、RB7、RC5引腳。PIC16F877單片機本身就有同步串行口功能模塊,但是由于PTR3000的同步串行數(shù)據(jù)位為14位,并非整數(shù)字節(jié),而且14位數(shù)據(jù)必須一次初始化完成,因此實際通過普通的I/O口編程來實現(xiàn)這14位的同步串行信號更方便一些。在整個初始化期間CS信號必須一直為高電平。這14位初始化字的定義見表2。在初始化同步串行信號輸出時最高有效位在先。在對PTR3000編程前先其狀態(tài)為接收狀態(tài)以免在其他頻率造成無線干擾,編程完成后就可以將狀態(tài)改為發(fā)射狀態(tài)了。
表2 PTR3000初始化控制字各位定義
參 數(shù)
位 數(shù) 0~1 頻段 FB 必須為了10(表示為選擇頻段915±13MHz) 2 2~9 頻點 CH f=902.1696+CH·0.1536(MHz) 10~11 輸出功率 POUT 發(fā)射功率≈-8dBm+6dBm·POUT 2 12~13 時鐘分頻輸出 Fup "00"=>Fup=fxtal"01"=>Fup=fxtal/2
"10"=>Fup=fxtal/4
"11"=>Fup=fxtal/8 2
接下來對16C550的初始化設(shè)置。由于PIC16F877自身的并行口對16C550進行初始化編程設(shè)置各個寄存器,需要注意的只是在輸出每一個字節(jié)之前先要通過RA0~RA2輸出相應(yīng)字節(jié)的地址信號。在初始化設(shè)置時將16C550的波特率設(shè)置低于76.8kbps,以保證接收的數(shù)據(jù)能夠通過PTR3000即時發(fā)送。
1.3 接收端的硬件設(shè)計
接收端裝在每個機器人小車上,由于機器人小車的控制采用DSP控制器TMS320LF2407,因而在接收端PTR3000無線通信模塊就采用TMS320LF2407來控制。通過PTR3000接收的數(shù)據(jù)直接輸入DSP,由DSP進行解碼,從而做出決策和發(fā)出控制信號。因而無線通信系統(tǒng)的接收端電路相對發(fā)送端要簡單得多,只需用TMS320LF2407代替發(fā)送電路中的單片機與PTR3000模塊相連接即可。PTR3000的初始化編程也就由2407的普通I/O口來實現(xiàn),只不過在初始化編程之后依舊保持PTR3000處在接收狀態(tài)。
2 協(xié)議的設(shè)計
2.1 物理層的編碼設(shè)計
物理層的編碼設(shè)計要根據(jù)所采用的物理器件和物理信道的特性來決定。本系統(tǒng)采用PTR3000無線通信模塊在接收模塊中為了獲得0直流電平就需要在所傳輸?shù)臄?shù)據(jù)中邏輯“0”和邏輯“1”的數(shù)量相等。只有滿足上述條件接收部分才會獲得很高的接收正確率。長時間空閑也會導(dǎo)致接收部分的0直流電平漂移,因為長時間的空閑實際上一直發(fā)送的是邏輯“1”。
由于PTR3000的這些特性,很自然就想到采用曼徹斯特編碼(Manchester)(也稱為數(shù)字雙向碼(Digital Biphase)或分相碼(Biphase,Split-phase)。它采用一個周期的方波表示“1”,而且它的反向波形表示“0”。由于方波的正負周期各占一半,因而信號中不存在直流分量。在異步串行通信中有一個起始位“0”,因此將停止位“1”長度也設(shè)為一位,這樣在一個字節(jié)共10位信號中也就不存在直流分量了。只是加了曼徹 斯特編碼之后原來一個字節(jié)的數(shù)據(jù)現(xiàn)在要兩個字節(jié)才能傳送。
圖4
有一些數(shù)字節(jié),不會在進行曼徹斯特編碼之后的數(shù)據(jù)串口出現(xiàn),但是在一個字節(jié)中也具有0直流分量的特性,也有很高的接收正確率。這類數(shù)據(jù)字節(jié)如:0xF0、0x0F、0xCC、0x33等。從碼型看來其中0xF0碼型定時性能是最好的(其碼型見圖5),它很容易使異步接收器達到同步并且不會發(fā)生錯誤。由于0xF0的這種特性就可以用它做同步碼元,在空閑的時間內(nèi)通信系統(tǒng)就通過一直發(fā)送同步碼元,使接收端保持同步,而且也可以保持接收模塊的0直流電平狀態(tài)。
2.2 糾錯編碼設(shè)計
為了在有一定外界干擾的情況下,保證主要與機器人之間的無線通信依然穩(wěn)定可靠,必須采取一定的抗干擾措施,這可以采用糾錯編碼來實現(xiàn)?梢赃x擇糾錯編碼方案有(14,8)分組碼、(7,4)分組碼和循環(huán)碼,需要使用兩字節(jié)的長度發(fā)送一字節(jié)的有效信息;(5,2)分組碼和循環(huán)碼,交錯碼、(21,8)分組碼和縮短循環(huán)碼、(21,9)BCH碼、(21,12)BCH碼,需要使用三字節(jié)的長度發(fā)送一字節(jié)的有效信息。
系統(tǒng)中使用了(7,4)分組碼,并在實際中取得了較好的效果。它的構(gòu)成方式如下:
假定不做任何處理的原碼格式為:
其高四位的監(jiān)督碼為:
A2 A1 A0其低四位的監(jiān)督碼為:
B2 B1 B0則編碼后成為兩個byte長度:
1 X7 X6 X5 X4 A2 A1 A0 0 X3 X2 X1 X0 B2 B1 B0其中每個字節(jié)的最高位作為標(biāo)志位,用于表示高四位和低四位,高四位用“1”做標(biāo)志,低四位用“0”做標(biāo)志。接收端通過檢測標(biāo)志進行重組和解碼。對于譯碼基本方法有維特比譯碼和使用監(jiān)督矩陣譯碼,可根據(jù)具體的編碼方案靈活選用。
2.3 幀格式設(shè)計
一般數(shù)據(jù)幀包括幀頭、機器人標(biāo)識、數(shù)據(jù)、數(shù)據(jù)校驗、保留字節(jié)等內(nèi)容,通常按照下面的格式排列:
幀頭 機器人標(biāo)識 數(shù)據(jù) 保留字 數(shù)據(jù)校驗為了保證幀能夠準(zhǔn)確接收,幀頭的設(shè)計至關(guān)重要。一般幀頭需要兩個或兩個以上的字節(jié),并且應(yīng)該選擇數(shù)據(jù)中出現(xiàn)幾率較低的數(shù)值和組合。在這個系統(tǒng)中可以采用一般數(shù)據(jù)中根本不會出現(xiàn)的數(shù)據(jù)字節(jié)如0xF0、0xCC作為數(shù)據(jù)幀頭。而其它類型的幀(如開球或暫停等命令幀),則可以選擇在0xF0之后加上其它的字0x33、0xC3、0x3C、0x0F等構(gòu)成。這種幀頭組合在一般的數(shù)據(jù)中是不會出現(xiàn)的,因而可保證幀同步不會出錯。場上的每個機器人通過數(shù)據(jù)幀中的機器人標(biāo)識來識別屬于自己的數(shù)據(jù),由于場上只有5個機器人,因而機器人標(biāo)識只占用一個字節(jié)。
這套通信系統(tǒng)采用了PTR3000無線通信模塊進行無線傳輸,并運用了單處機的編解碼使這套系統(tǒng)工作更加穩(wěn)定可靠,使數(shù)據(jù)通信及時正確地傳送到場上的每個機器人,完全滿足小型組足球機器人比賽的通信速率和正確率要求。
這套小型組機器人通信系統(tǒng)已應(yīng)用于中國科技大學(xué)的F-180 Robocup小型足球 機器人系統(tǒng)中。2003年7月在意大利舉行的Robocup小型機器人足球比賽中,這套通信系統(tǒng)在存在各種通信干擾的情況下依然表現(xiàn)出了較高的可靠性。2003年8月在北京舉辦的全國機器人大賽F-180 Robocup小型組的比賽中,這套通信系統(tǒng)中中國科技大學(xué)一隊贏得了亞軍。
【小型足球機器人的無線通信系統(tǒng)設(shè)計】相關(guān)文章:
基于FPGA的總線型LVDS通信系統(tǒng)設(shè)計08-06
LPC2106在足球機器人控制中的應(yīng)用設(shè)計08-06
CIO的“無線攻略”08-05
無線視頻監(jiān)控方案08-09
小型活動策劃方案08-09
無線局域網(wǎng)及應(yīng)用08-06
小型工程合同02-17