基于P87C591的CAN總線(xiàn)超聲測距系統設計方案
2 超聲波智能節點(diǎn)控制系統的軟件編寫(xiě)
軟件的編寫(xiě)工作主要有兩個(gè)部分:超聲波測距部分和CAN總線(xiàn)的通信部分。
2.1 超聲波測距部分的軟件設計
超聲波發(fā)射部分的軟件設計相對簡(jiǎn)單。在軟件編寫(xiě)工作中,需要將超聲波持續發(fā)射一段時(shí)間以便被接收器準確接收。以下程序可作參考:
START:MOV TH0, #00H;將定時(shí)器初值設為0,產(chǎn)生一個(gè)方波即產(chǎn)生一次中斷
MOV TL0, #00H
MOV 10H, #4D;將10H單元做一個(gè)計數器實(shí)現200 ms定時(shí)
SETB TR0;啟動(dòng)定時(shí)器T0
FS:CPL P2.0;P2.0口產(chǎn)生方波,對于6 MHz晶振頻率近似為40 kHz
REPEAT:MOV R0,#12
DJNZ R0,REPEAT
DJNZ 10H,FS
RET
……
END
圖6 超聲波測距部分程序流程
當超聲波接收器接收到回波時(shí),硬件電路產(chǎn)生低電平觸發(fā)P87C591的外部中斷0口。軟件編寫(xiě)的主要思想是,在中斷服務(wù)程序中由寄存器預先設定一個(gè)數值,這個(gè)數值是機器人避障的最短距離。從超聲波發(fā)射頭發(fā)射方波開(kāi)始,到超聲波接收頭接收到回波為止,把這段時(shí)間換算成為距離,與上述最短距離相比較。如大于最短距離,則不作處理,跳出中斷服務(wù)程序;如等于或小于最短距離,則執行相應動(dòng)作。圖6是這部分程序的流程。
這部分軟件編寫(xiě)主要由以下幾部分組成:初始化、接收處理、發(fā)送處理、中斷處理及錯誤處理函數。由于系統中任意節點(diǎn)在任意時(shí)刻均可主動(dòng)與其他節點(diǎn)通信,故各個(gè)
節點(diǎn)通信程序大致相同。具體程序的編寫(xiě)可參考P87C591的用戶(hù)手冊。
結語(yǔ)
本文論述了以CAN總線(xiàn)擴展多路超聲波傳感器的基本思想,介紹了一種以Philips公司P87C591作為超聲波傳感器控制核心及CAN總線(xiàn)控制器和以TJA1040作為CAN總線(xiàn)收發(fā)器的CAN總線(xiàn)智能超聲波測距系統。與以往移動(dòng)機器人超聲波傳感器測距系統相比,這個(gè)設計增加了CAN總線(xiàn)部分的設計,將多路超聲波傳感器的擴展轉移到智能節點(diǎn)部分上完成,簡(jiǎn)化了移動(dòng)機器人系統控制核心的工作;采取了比較簡(jiǎn)單的硬件設計,主要是將超聲波傳感器的控制核心和CAN總線(xiàn)控制器集中到一起,采用P87C591一個(gè)器件完成兩種芯片的工作,大大節省硬件。另外,CAN總線(xiàn)的擴展也會(huì )令后續的移動(dòng)機器人系統的進(jìn)一步開(kāi)發(fā)變得更為靈活。實(shí)踐證明這個(gè)設計可行,只是對于實(shí)際工作中不同應用場(chǎng)合的有些電路(比如復位電路、電源電路等外圍電路)在設計細節上還有待進(jìn)一步細化。另外,軟件編寫(xiě)方面還應特別注意多超聲波傳感器的抗干擾問(wèn)題。
分頻器相關(guān)文章:分頻器原理
評論