基于nRF401和AT89C2051的無線數字通信系統
引言
本文引用地址:http://www.104case.com/article/21467.htm目前,機器人足球比賽系統主要有3種控制方式:第1種稱為遠程遙控無智能機器人足球比賽系統,主機通過無線方式遙控機器人;第2種稱為基于視覺的機器人足球比賽系統,主機通過處理由攝像機獲取的信息來控制機器人;第3種稱為基于機器人的機器人足球比賽系統,此系統無需主機的控制,每個機器人通過自身的傳感器獲取信息并作出判斷。
基于視覺的足球機器人系統作為實驗平臺,其實現難度適中,而且利于模糊推理、神經網絡、機器學習等人工智能領域的研究。從設備上看,基于視覺的機器人足球比賽系統包括小車、攝像裝置、計算機和無線收發裝置;從功能上看,基于視覺的足球機器人比賽系統由視覺子系統、決策子系統、通信子系統和機器人子系統等四個部分以閉環系統形式構成。基于視覺的機器人足球比賽系統結構框圖如圖1所示。

通信子系統是機器人足球比賽系統中一個重要組成部分,其通信性能好壞,將嚴重影響機器人的運動和比賽的順利進行。如果在通信過程中有誤差,它將導致機器人小車錯誤的動作,失去運動目標。一般來說,對通信子系統的要求是:通信頻率可選,硬件電路結構緊湊,通信速率高和性能穩定可靠。為了便于機器人小車的活動,通信子系統一般采用無線通信方式。
根據對通信子系統的設計要求,我們采用微控制器(俗稱單片機)at89c2051作為無線通信子系統的控制核心,并選用基于藍牙核心技術的無線通信芯片nrf401,通信子系統結構框圖如圖2所示。機器人小車的控制命令由pc機發出,pc機的rs232串口連接到圖2所示的無線通信子系統的輸入端,控制命令經at89c2051處理后,通過芯片nrf401以無線的方式發送給機器人小車。


at89c2051芯片簡介
微控制器采用美國atmel公司的at89c2051芯片。它的指令系統與mcs-51產品兼容,具有2k字節可重編程閃速存儲器,128 8位內部ram,兩個16位定時器/計數器,六個中斷源,編程串行uart通道,15根可 編程i/o引線。在無線通信子系統中,at89c2051完成接收pc機從rs232串口送來的機器人小車控制指令,并將控制指令經無線通信芯片nrf401送給機器人小車子系統。
nrf401芯片介紹
nrf401[3]是由挪威nordic vlsi asa公司推出的集收、發于一體的無線通信芯片,在一個20管腳芯片內集成了高頻發射、高頻接收、fsk調制與解調、pll鎖相環、放大器等單元電路。工作于433mhz ism頻段,采用fsk調制與解調技術,數據通信速率高達20kb/s,最大傳輸功率為+10dbm,并可以調整傳輸功率,差分式天線接口,非常適合做成pcb天線,以節約成本。
n rf401的內部結構如圖3所示。nrf401的配置電路圖如圖4所示。

無線通信子系統電路原理圖
無線通信子系統電路原理圖如圖5所示。cpu選用at89c2051,它既接收來自上位機(pc機)的數據,同時又將從pc機接收的數據通過nrf401以廣播形式發送給每個機器人小車子系統,每個機器人小車子系統根據設定的識別碼,從接收緩沖區取出左右輪速度值,從而控制機器人小車的運動。

at89c2051微控制器的rxd/p3.0口與電平轉換芯片max232相連,max232通過db_9/male插頭與pc機的rs232串口相接,用以接收pc機發送過來的命令控制字。at89c2051微控制器的txd/p3.1口與nrf401的dout/pin9腳相接,結合其他的控制引腳,at89c2051控制nrf401的無線發射過程,用來完成將命令控制字經nrf401實現無線傳輸給機器人小車。at89c2051微控制器的p1.0、p1.1、p1.2分別與nrf401的cs、pwr_up、txen相連接。
基于ertos的系統軟件設計
通信格式
nrf401可以使用全雙工模式,因此,機器人小車子系統不但可以接收主機發出的命令,而且可以向主機發出信息,甚至可以實現機器人小車子系統之間的通信。但是當信息量過大時,有可能發生通信死鎖,所以應考慮通信協議的設計。為確保通信的順暢,我們 只允許主機向機器人發送命令,而禁止其他形式的通信。命令控制字的具體格式如下:

其中si(i=1,2,3,...),為i號機器人小車標識;
li(i=1,2,3,...),為i號機器人小車左輪速度;
ri(i=1,2,3,...),為i號機器人小車右輪速度。
pc機發給每個機器人小車的控制命令字包括3個字節,第1字節是小車標號,第2字節是該小車左輪速度,第3字節是該小車右輪速度。一次性將所有機器人小車的控制命令打包發送。每個小車都能接收到pc機發送的每1條指令,機器人小車子系統上的通信專用mcu對標識信號進行比較,相符則隨后數據有效,否則不予接收。
軟件設計
為 了能夠實時地完成無線通信的目的,系統的軟件我們用c51語言編寫,并采用 keil vision2 6.20集成開發環境中的rtx51 tiny實時操作系統來完成無通信子系統中微控制器at89c2051的軟件設計。rtx51 tiny實時操作系統是德國keil公司開發的一種應用于mcs-51系列單片機功能強大的、可用于目前世界上由intel 8051標準內核派生出的很多種增強型微控制器的實時操作 系統。rtx51 tiny短小精悍,只占用900字節rom、7字節data型及3倍于任務數量的idata型ram空間,可以很容易地運行在沒有擴展外部存儲器的單片機系統上。使用rtx51 tiny的用戶程序可以訪問外部存儲器,允許循環任務切換,并且支持信號傳遞和事件驅動,還能并行地利用中斷功能。rtx51 tiny允許“準并行”地同時執行16個任務。
根 據對無通信子系統功能的分析,我們把軟件分解為三個任務,各任務之間的運行關系如圖6所示。這三個任務的具體情況如下。

任務0:系統初始化,如設置mcu的串行口工作在方式1,并設置波特率為9600bps。在啟動任務1和任務2后自動刪除任務0,使得任務0只在系統復位時執行一次。
任務1:接收pc機的命令控制字。若接收到了命令控制字則向任務2發送觸發信號。
任 務2:等待觸發信號,若signal被置 位,則控制nrf401并將命令控制字傳送給nrf401,完成無線發射。
結束語
人 類對機器人的研究已走過了漫長的歷程。隨著科學技術的不斷發展,人們對機器人的要求也隨之越來越高而現實。在機器人足球比賽系統的開發過程中,不僅需要機器人學、通信與計算機技術等,而且還需要圖像處理、智能控制等學科內容。
本 文主要敘述了機器人足球比賽通信子系統的硬件、軟件設計。采用at89c2051和nrf401所設計的通信子系統,電路核心芯片少,外圍電路簡單,體積小巧,成本低,其無線數字通信距離及其通信的可靠性均能滿足機器人足球比賽系統的要求,從實際使用情況來看,使用效果
相當好。
數字通信相關文章:數字通信原理
評論