基于PIC18F2580的CAN總線超聲波測距智能節(jié)點(diǎn)設(shè)計(jì)
1 引言
移動機(jī)器人要實(shí)現(xiàn)在不確定環(huán)境下運(yùn)行,必須具備自動導(dǎo)航和避障功能。在移動機(jī)器人的導(dǎo)航系統(tǒng)中,傳感器起著舉足輕重的作用。視覺、激光、紅外、超聲傳感器等都在實(shí)際系統(tǒng)中得到了廣泛的應(yīng)用。其中,超聲波傳感器以其信息處理簡單、速度快和價(jià)格低,被廣泛用作移動機(jī)器人的測距傳感器,以實(shí)現(xiàn)避障、定位、環(huán)境建模和導(dǎo)航等功能。本文介紹的CAN總線智能節(jié)點(diǎn)的設(shè)計(jì)以Microchip公司的PIC18F2580控制核心。由于PIC18F2580有片上自帶的CAN控制器并且為CAN的應(yīng)用提供了許多專用的硬件功能,因此又將它作為了系統(tǒng)的CAN總線控制器,大大節(jié)省了主控系統(tǒng)的資源。CAN總線的收發(fā)器采用TJAl040。系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)框圖
機(jī)器人系統(tǒng)控制核心由ARM或DSP實(shí)現(xiàn)。其主要功能是處理需要復(fù)雜計(jì)算的信息,將經(jīng)過處理的信息再送回CAN總線,并對整個(gè)網(wǎng)絡(luò)進(jìn)行管理。超聲波智能節(jié)點(diǎn)控制系統(tǒng)的主要功能就是判斷障礙物位置,將對移動機(jī)器人前進(jìn)方向有阻礙的障礙物信息通過CAN總線傳回主控系統(tǒng),由主控系統(tǒng)作出相應(yīng)處理并進(jìn)行避障動作。本文將著重介紹超聲波智能節(jié)點(diǎn)控制系統(tǒng)。
2 超聲測距原理
超聲測距的原理較簡單,一般采用渡越時(shí)間法,即:
D=ct/2 (1)
其中D為移動機(jī)器人與被測障礙物之間的距離,c為聲波在介質(zhì)中的傳輸速率。聲波在空氣中傳輸速率為:
c= co(2)
其中,T為絕對溫度,co =331.4m/s。在不要求測距精度很高的情況下,一般可以認(rèn)為c為常數(shù)。渡越時(shí)間法主要是測量超聲發(fā)射到超聲返回的時(shí)間間隔t,即“渡越時(shí)間”,然后根據(jù)式(1)計(jì)算距離。
3 超聲波智能節(jié)點(diǎn)控制系統(tǒng)的硬件設(shè)計(jì)
超聲波智能節(jié)點(diǎn)控制系統(tǒng)的硬件電路如圖2所示。
3.1 控制電路
超聲波傳感器的控制部分采用Microchip公司生產(chǎn)的PIC18F2580。它是一個(gè)單片8位高性能微控制器,采用了哈佛總線結(jié)構(gòu),運(yùn)行速度高,功耗低,抗干擾能力強(qiáng),具有片內(nèi)CAN控制器。
作為系統(tǒng)控制核心,PIC18F2580擔(dān)負(fù)兩個(gè)主要任務(wù)。其一是作為超聲波傳感器的控制核心,在其普通I/O口上擴(kuò)展了超聲波傳感器的接收和發(fā)射部分電路,利用單片機(jī)軟件功能產(chǎn)生40 kHz信號并通過驅(qū)動放大發(fā)射出去,再利用接收部分電路進(jìn)行接收。另外可以對其余口線繼續(xù)進(jìn)行超聲波傳感器的擴(kuò)展,實(shí)現(xiàn)多個(gè)超聲波傳感器系統(tǒng)的設(shè)計(jì)。其二是利用PIC18F2580的片內(nèi)CAN控制器實(shí)現(xiàn)與CAN總線的連接。這樣的設(shè)計(jì)改變了過去在機(jī)器人控制核心上進(jìn)行超聲波測距系統(tǒng)的設(shè)計(jì),不但將超聲波檢測與處理的工作轉(zhuǎn)移到了單片機(jī)上,大大節(jié)省了機(jī)器人控制核心的系統(tǒng)資源,還將CAN總線智能節(jié)點(diǎn)的大部分控制工作也轉(zhuǎn)移到了單片機(jī)上,節(jié)省了硬件資源,同時(shí)CAN總線的采用大大提升了系統(tǒng)的抗干擾能力,使機(jī)器人控制系統(tǒng)更加穩(wěn)定地工作。
圖2 測距節(jié)點(diǎn)控制電路圖
評論