基于PIC18F2580的CAN總線超聲波測距智能節點設計
CANH和CANL與地之間并聯了兩個30 pF的電容,可以過濾掉總線上的高頻干擾和一定的電磁輻射。兩根CAN總線接人端與地之間分別反接了一個保護二極管。當CAN總線有較高的負電壓時,通過二極管的續流可起到一定的過壓保護作用。總線兩端接的120Ω電阻起匹配總線阻抗的作用,忽略掉它會使數據通信的抗干擾性能及可靠性大大降低甚至無法通信。
4 超聲波智能節點控制系統的軟件編寫
軟件的編寫工作主要有兩個部分:超聲波測距部分和CAN總線的通信部分。
4.1 超聲波測距部分的軟件設計
當超聲波接收器接收到回波時,硬件電路產生脈沖電平觸發PIC18F2580的外部中斷0口。軟件編寫的主要思想是,在中斷服務程序中由寄存器預先設定一個數值,這個數值是機器人避障的最短距離。從超聲波發射頭發射方波開始,到超聲波接收頭接收到回波為止,把這段時間換算成為距離,與上述最短距離相比較。如大于最短距離,則不作處理,跳出中斷服務程序;如等于或小于最短距離,則執行相應動作。圖5是這部分程序的流程。本文引用地址:http://www.104case.com/article/173729.htm
圖5 超聲波測距軟件流程圖
4.2 CAN總線通信部分的軟件編寫
這部分軟件編寫主要由以下幾部分組成:初始化、接收處理、發送處理、中斷處理及錯誤處理函數。由于系統中任意節點在任意時刻均可主動與其它節點通信,故各個節點通信程序大致相同。具體程序的編寫可參考PIC18F2580的用戶手冊。
5 結束語
本文論述了以CAN總線擴展多路超聲波傳感器的基本思想,介紹了一種以Microchip公司PIC18F2580作為超聲波傳感器控制核心及CAN總線控制器。以TJAl040作為CAN總線收發器的CAN總線智能超聲波測距系統。將多路超聲波傳感器的擴展轉移到智能節點部分上完成,簡化了移動機器人系統控制核心的工作;采取了比較簡單的硬件設計,主要是將超聲波傳感器的控制核心和CAN總線控制器集中到一起,采用PIC18F2580一個器件完成兩種芯片的工作,節省硬件。另外,CAN總線的擴展也會令后續的移動機器人系統的進一步開發變得更為靈活。
評論