基于nRF401和AT89C2051的無線數(shù)字通信系統(tǒng)
引言
本文引用地址:http://butianyuan.cn/article/21467.htm目前,機器人足球比賽系統(tǒng)主要有3種控制方式:第1種稱為遠程遙控無智能機器人足球比賽系統(tǒng),主機通過無線方式遙控機器人;第2種稱為基于視覺的機器人足球比賽系統(tǒng),主機通過處理由攝像機獲取的信息來控制機器人;第3種稱為基于機器人的機器人足球比賽系統(tǒng),此系統(tǒng)無需主機的控制,每個機器人通過自身的傳感器獲取信息并作出判斷。
基于視覺的足球機器人系統(tǒng)作為實驗平臺,其實現(xiàn)難度適中,而且利于模糊推理、神經(jīng)網(wǎng)絡、機器學習等人工智能領域的研究。從設備上看,基于視覺的機器人足球比賽系統(tǒng)包括小車、攝像裝置、計算機和無線收發(fā)裝置;從功能上看,基于視覺的足球機器人比賽系統(tǒng)由視覺子系統(tǒng)、決策子系統(tǒng)、通信子系統(tǒng)和機器人子系統(tǒng)等四個部分以閉環(huán)系統(tǒng)形式構成。基于視覺的機器人足球比賽系統(tǒng)結構框圖如圖1所示。
系統(tǒng)硬件設計通信子系統(tǒng)是機器人足球比賽系統(tǒng)中一個重要組成部分,其通信性能好壞,將嚴重影響機器人的運動和比賽的順利進行。如果在通信過程中有誤差,它將導致機器人小車錯誤的動作,失去運動目標。一般來說,對通信子系統(tǒng)的要求是:通信頻率可選,硬件電路結構緊湊,通信速率高和性能穩(wěn)定可靠。為了便于機器人小車的活動,通信子系統(tǒng)一般采用無線通信方式。
根據(jù)對通信子系統(tǒng)的設計要求,我們采用微控制器(俗稱單片機)at89c2051作為無線通信子系統(tǒng)的控制核心,并選用基于藍牙核心技術的無線通信芯片nrf401,通信子系統(tǒng)結構框圖如圖2所示。機器人小車的控制命令由pc機發(fā)出,pc機的rs232串口連接到圖2所示的無線通信子系統(tǒng)的輸入端,控制命令經(jīng)at89c2051處理后,通過芯片nrf401以無線的方式發(fā)送給機器人小車。
at89c2051芯片簡介
微控制器采用美國atmel公司的at89c2051芯片。它的指令系統(tǒng)與mcs-51產(chǎn)品兼容,具有2k字節(jié)可重編程閃速存儲器,128 8位內部ram,兩個16位定時器/計數(shù)器,六個中斷源,編程串行uart通道,15根可 編程i/o引線。在無線通信子系統(tǒng)中,at89c2051完成接收pc機從rs232串口送來的機器人小車控制指令,并將控制指令經(jīng)無線通信芯片nrf401送給機器人小車子系統(tǒng)。
nrf401芯片介紹
nrf401[3]是由挪威nordic vlsi asa公司推出的集收、發(fā)于一體的無線通信芯片,在一個20管腳芯片內集成了高頻發(fā)射、高頻接收、fsk調制與解調、pll鎖相環(huán)、放大器等單元電路。工作于433mhz ism頻段,采用fsk調制與解調技術,數(shù)據(jù)通信速率高達20kb/s,最大傳輸功率為+10dbm,并可以調整傳輸功率,差分式天線接口,非常適合做成pcb天線,以節(jié)約成本。
n rf401的內部結構如圖3所示。nrf401的配置電路圖如圖4所示。
無線通信子系統(tǒng)電路原理圖
無線通信子系統(tǒng)電路原理圖如圖5所示。cpu選用at89c2051,它既接收來自上位機(pc機)的數(shù)據(jù),同時又將從pc機接收的數(shù)據(jù)通過nrf401以廣播形式發(fā)送給每個機器人小車子系統(tǒng),每個機器人小車子系統(tǒng)根據(jù)設定的識別碼,從接收緩沖區(qū)取出左右輪速度值,從而控制機器人小車的運動。
at89c2051微控制器的rxd/p3.0口與電平轉換芯片max232相連,max232通過db_9/male插頭與pc機的rs232串口相接,用以接收pc機發(fā)送過來的命令控制字。at89c2051微控制器的txd/p3.1口與nrf401的dout/pin9腳相接,結合其他的控制引腳,at89c2051控制nrf401的無線發(fā)射過程,用來完成將命令控制字經(jīng)nrf401實現(xiàn)無線傳輸給機器人小車。at89c2051微控制器的p1.0、p1.1、p1.2分別與nrf401的cs、pwr_up、txen相連接。
基于ertos的系統(tǒng)軟件設計
通信格式
nrf401可以使用全雙工模式,因此,機器人小車子系統(tǒng)不但可以接收主機發(fā)出的命令,而且可以向主機發(fā)出信息,甚至可以實現(xiàn)機器人小車子系統(tǒng)之間的通信。但是當信息量過大時,有可能發(fā)生通信死鎖,所以應考慮通信協(xié)議的設計。為確保通信的順暢,我們 只允許主機向機器人發(fā)送命令,而禁止其他形式的通信。命令控制字的具體格式如下:
其中si(i=1,2,3,...),為i號機器人小車標識;
li(i=1,2,3,...),為i號機器人小車左輪速度;
ri(i=1,2,3,...),為i號機器人小車右輪速度。
pc機發(fā)給每個機器人小車的控制命令字包括3個字節(jié),第1字節(jié)是小車標號,第2字節(jié)是該小車左輪速度,第3字節(jié)是該小車右輪速度。一次性將所有機器人小車的控制命令打包發(fā)送。每個小車都能接收到pc機發(fā)送的每1條指令,機器人小車子系統(tǒng)上的通信專用mcu對標識信號進行比較,相符則隨后數(shù)據(jù)有效,否則不予接收。
軟件設計
為 了能夠實時地完成無線通信的目的,系統(tǒng)的軟件我們用c51語言編寫,并采用 keil vision2 6.20集成開發(fā)環(huán)境中的rtx51 tiny實時操作系統(tǒng)來完成無通信子系統(tǒng)中微控制器at89c2051的軟件設計。rtx51 tiny實時操作系統(tǒng)是德國keil公司開發(fā)的一種應用于mcs-51系列單片機功能強大的、可用于目前世界上由intel 8051標準內核派生出的很多種增強型微控制器的實時操作 系統(tǒng)。rtx51 tiny短小精悍,只占用900字節(jié)rom、7字節(jié)data型及3倍于任務數(shù)量的idata型ram空間,可以很容易地運行在沒有擴展外部存儲器的單片機系統(tǒng)上。使用rtx51 tiny的用戶程序可以訪問外部存儲器,允許循環(huán)任務切換,并且支持信號傳遞和事件驅動,還能并行地利用中斷功能。rtx51 tiny允許“準并行”地同時執(zhí)行16個任務。
根 據(jù)對無通信子系統(tǒng)功能的分析,我們把軟件分解為三個任務,各任務之間的運行關系如圖6所示。這三個任務的具體情況如下。
任務0:系統(tǒng)初始化,如設置mcu的串行口工作在方式1,并設置波特率為9600bps。在啟動任務1和任務2后自動刪除任務0,使得任務0只在系統(tǒng)復位時執(zhí)行一次。
任務1:接收pc機的命令控制字。若接收到了命令控制字則向任務2發(fā)送觸發(fā)信號。
任 務2:等待觸發(fā)信號,若signal被置 位,則控制nrf401并將命令控制字傳送給nrf401,完成無線發(fā)射。
結束語
人 類對機器人的研究已走過了漫長的歷程。隨著科學技術的不斷發(fā)展,人們對機器人的要求也隨之越來越高而現(xiàn)實。在機器人足球比賽系統(tǒng)的開發(fā)過程中,不僅需要機器人學、通信與計算機技術等,而且還需要圖像處理、智能控制等學科內容。
本 文主要敘述了機器人足球比賽通信子系統(tǒng)的硬件、軟件設計。采用at89c2051和nrf401所設計的通信子系統(tǒng),電路核心芯片少,外圍電路簡單,體積小巧,成本低,其無線數(shù)字通信距離及其通信的可靠性均能滿足機器人足球比賽系統(tǒng)的要求,從實際使用情況來看,使用效果
相當好。
數(shù)字通信相關文章:數(shù)字通信原理
評論