新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于PIC的CAN總線超聲波測(cè)距智能節(jié)點(diǎn)設(shè)計(jì)

基于PIC的CAN總線超聲波測(cè)距智能節(jié)點(diǎn)設(shè)計(jì)

作者: 時(shí)間:2009-06-02 來(lái)源:網(wǎng)絡(luò) 收藏

1 引言

移動(dòng)機(jī)器人要實(shí)現(xiàn)在不確定環(huán)境下運(yùn)行,必須具備自動(dòng)導(dǎo)航和避障功能。在移動(dòng)機(jī)器人的導(dǎo)航系統(tǒng)中,傳感器起著舉足輕重的作用。視覺、激光、紅外、超聲傳感器等都在實(shí)際系統(tǒng)中得到了廣泛的應(yīng)用。其中,超聲波傳感器以其信息處理簡(jiǎn)單、速度快和價(jià)格低,被廣泛用作移動(dòng)機(jī)器人的測(cè)距傳感器,以實(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)過(guò)處理的信息再送回CAN總線,并對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行管理。超聲波智能節(jié)點(diǎn)控制系統(tǒng)的主要功能就是判斷障礙物位置,將對(duì)移動(dòng)機(jī)器人前進(jìn)方向有阻礙的障礙物信息通過(guò)CAN總線傳回主控系統(tǒng),由主控系統(tǒng)作出相應(yīng)處理并進(jìn)行避障動(dòng)作。本文將著重介紹超聲波智能節(jié)點(diǎn)控制系統(tǒng)。

2 超聲測(cè)距原理

超聲測(cè)距的原理較簡(jiǎn)單,一般采用渡越時(shí)間法,即:

D=ct/2 (1)

其中D為移動(dòng)機(jī)器人與被測(cè)障礙物之間的距離,c為聲波在介質(zhì)中的傳輸速率。聲波在空氣中傳輸速率為:

c= co(2)

其中,T為絕對(duì)溫度,co =331.4m/s。在不要求測(cè)距精度很高的情況下,一般可以認(rèn)為c為常數(shù)。渡越時(shí)間法主要是測(cè)量超聲發(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ā)射部分電路,利用軟件功能產(chǎn)生40 kHz信號(hào)并通過(guò)驅(qū)動(dòng)放大發(fā)射出去,再利用接收部分電路進(jìn)行接收。另外可以對(duì)其余口線繼續(xù)進(jìn)行超聲波傳感器的擴(kuò)展,實(shí)現(xiàn)多個(gè)超聲波傳感器系統(tǒng)的設(shè)計(jì)。其二是利用PIC18F2580的片內(nèi)CAN控制器實(shí)現(xiàn)與CAN總線的連接。這樣的設(shè)計(jì)改變了過(guò)去在機(jī)器人控制核心上進(jìn)行系統(tǒng)的設(shè)計(jì),不但將超聲波檢測(cè)與處理的工作轉(zhuǎn)移到了上,大大節(jié)省了機(jī)器人控制核心的系統(tǒng)資源,還將CAN總線智能節(jié)點(diǎn)的大部分控制工作也轉(zhuǎn)移到了上,節(jié)省了硬件資源,同時(shí)CAN總線的采用大大提升了系統(tǒng)的抗干擾能力,使機(jī)器人控制系統(tǒng)更加穩(wěn)定地工作。

圖2 測(cè)距節(jié)點(diǎn)控制電路圖

3.2 超聲波傳感器發(fā)射電路設(shè)計(jì)

圖3 超聲波發(fā)射部分電路圖

圖3中,LM386是一種音頻集成功放,具有自身功耗低、電壓增益可調(diào)整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點(diǎn),廣泛應(yīng)用于錄音機(jī)和收音機(jī)之中。它是一個(gè)三級(jí)放大電路。本部分硬件電路相對(duì)簡(jiǎn)單,主要就是利用LM386的驅(qū)動(dòng)放大功能將單片機(jī)產(chǎn)生的40 kHz方波放大輸出。因?yàn)樵谥悄艹暡ü?jié)點(diǎn)控制系統(tǒng)中單片機(jī)的工作相對(duì)較少,為節(jié)省硬件,不妨將40 kHz方波的產(chǎn)生這部分工作交由單片機(jī)的CCP模塊來(lái)完成。TX1為超聲波發(fā)射頭。

3.3 超聲波傳感器接收電路設(shè)計(jì)

電路采用集成電路CX20106A。這是一款紅外線檢波接收的集成電路,常用于電視機(jī)紅外遙控接收器??紤]到紅外遙控常用的載波頻率38 kHz與測(cè)距超聲波頻率40 kHz較為接近,可以利用它作為超聲波檢測(cè)電路。實(shí)驗(yàn)證明,其具有很高的靈敏度和較強(qiáng)的抗干擾能力。適當(dāng)改變C11的大小,可改變接收電路的靈敏度和抗干擾能力。R12和C11控制CX20106A內(nèi)部的放大增益,R14控制帶通濾波器的中心頻率。一般取R12=4.7Ω,C11=1μF。其余元件按圖4取值。RX1為超聲波接收頭,當(dāng)收到超聲波時(shí)產(chǎn)生一個(gè)下降沿,接到單片機(jī)的外部中斷INTO上。

圖4 超聲波接收部分電路圖

當(dāng)超聲波接收頭接收到40 kHz方波信號(hào)時(shí),將會(huì)將此信號(hào)通過(guò)CX20106A驅(qū)動(dòng)放大送入單片機(jī)的外部中斷0口。單片機(jī)在得到外部中斷0的中斷請(qǐng)求后,會(huì)轉(zhuǎn)入外部中斷0的中斷服務(wù)程序進(jìn)行處理,在移動(dòng)機(jī)器人的避障工作中,可以在中斷服務(wù)程序設(shè)定需要單片機(jī)處理的最短距離,比如0.4m。對(duì)于距離大于0.4 m的障礙物,可以不做處理直接跳出中斷服務(wù)程序;對(duì)于距離小于或等于0.4m的障礙物信息,則在中斷服務(wù)程序中進(jìn)行處理并通過(guò)CAN總線上報(bào)機(jī)器人系統(tǒng)控制核心,由機(jī)器人系統(tǒng)控制核心發(fā)出命令指導(dǎo)機(jī)器人的避障動(dòng)作。對(duì)于多超聲波傳感器系統(tǒng),每一個(gè)超聲波傳感器在判斷到對(duì)機(jī)器人行動(dòng)有障礙物時(shí)可分別在其中斷服務(wù)程序中對(duì)障礙物信息進(jìn)行簡(jiǎn)單處理,上報(bào)給機(jī)器人系統(tǒng)控制核心的信息可以相對(duì)簡(jiǎn)單,只需機(jī)器人系統(tǒng)控制核心控制機(jī)器人的實(shí)際動(dòng)作,比如右轉(zhuǎn)20°,而不必機(jī)器人系統(tǒng)控制核心再次進(jìn)行計(jì)算,這樣會(huì)節(jié)省大量系統(tǒng)資源去作其它更為復(fù)雜的工作。

3.4 CAN總線設(shè)計(jì)部分

TJAl040是Philips半導(dǎo)體公司生產(chǎn)的高速CAN總線收發(fā)器。該器件提供了CAN協(xié)議控制器和物理總線之間的接口,以及對(duì)CAN總線的差動(dòng)發(fā)送和接收功能。TJAl040具有優(yōu)秀的EMC性能,而且在不上電狀態(tài)下有理想的無(wú)源性能;它還提供低功耗管理,支持遠(yuǎn)程喚醒。值得一提的是TJAl040的自動(dòng)防故障功能。STB引腳接地工作在正常模式下,引腳TXD提供了一個(gè)向VCC的上拉,使引腳TXD在不使用時(shí)保持隱性電平。如果VCC掉電,引腳TXD、STB和RXD就會(huì)變成懸浮狀態(tài),防止通過(guò)這些引腳產(chǎn)生反向電流。

6N137是,采用6N137的目的是增強(qiáng)CAN總線節(jié)點(diǎn)的抗干擾能力,這樣的設(shè)計(jì)可以很好地實(shí)現(xiàn)總線上各CAN節(jié)點(diǎn)間的電氣隔離。但要注意的是,光耦部分電路所采用的兩個(gè)電源VCC和VDD必須完全隔離,否則光耦就失去了意義。

TJAl040作為CAN總線收發(fā)器,與CAN總線的接口部分也采取了抗干擾措施。TJAl040的CANH1和CANL1引腳各自通過(guò)一個(gè)5Ω電阻與CAN總線連接,電阻可以起到一定的限流作用,保護(hù)TJAl040不受過(guò)流的沖擊。

CANH和CANL與地之間并聯(lián)了兩個(gè)30 pF的電容,可以過(guò)濾掉總線上的高頻干擾和一定的電磁輻射。兩根CAN總線接人端與地之間分別反接了一個(gè)保護(hù)二極管。當(dāng)CAN總線有較高的負(fù)電壓時(shí),通過(guò)二極管的續(xù)流可起到一定的過(guò)壓保護(hù)作用。總線兩端接的120Ω電阻起匹配總線阻抗的作用,忽略掉它會(huì)使數(shù)據(jù)通信的抗干擾性能及可靠性大大降低甚至無(wú)法通信。

4 超聲波智能節(jié)點(diǎn)控制系統(tǒng)的軟件編寫

軟件的編寫工作主要有兩個(gè)部分:部分和CAN總線的通信部分。

4.1 部分的軟件設(shè)計(jì)

當(dāng)超聲波接收器接收到回波時(shí),硬件電路產(chǎn)生脈沖電平觸發(fā)PIC18F2580的外部中斷0口。軟件編寫的主要思想是,在中斷服務(wù)程序中由寄存器預(yù)先設(shè)定一個(gè)數(shù)值,這個(gè)數(shù)值是機(jī)器人避障的最短距離。從超聲波發(fā)射頭發(fā)射方波開始,到超聲波接收頭接收到回波為止,把這段時(shí)間換算成為距離,與上述最短距離相比較。如大于最短距離,則不作處理,跳出中斷服務(wù)程序;如等于或小于最短距離,則執(zhí)行相應(yīng)動(dòng)作。圖5是這部分程序的流程。

圖5 超聲波測(cè)距軟件流程圖

4.2 CAN總線通信部分的軟件編寫

這部分軟件編寫主要由以下幾部分組成:初始化、接收處理、發(fā)送處理、中斷處理及錯(cuò)誤處理函數(shù)。由于系統(tǒng)中任意節(jié)點(diǎn)在任意時(shí)刻均可主動(dòng)與其它節(jié)點(diǎn)通信,故各個(gè)節(jié)點(diǎn)通信程序大致相同。具體程序的編寫可參考PIC18F2580的用戶手冊(cè)。

5 結(jié)束語(yǔ)

本文論述了以CAN總線擴(kuò)展多路超聲波傳感器的基本思想,介紹了一種以Microchip公司PIC18F2580作為超聲波傳感器控制核心及CAN總線控制器。以TJAl040作為CAN總線收發(fā)器的CAN總線智能超聲波測(cè)距系統(tǒng)。將多路超聲波傳感器的擴(kuò)展轉(zhuǎn)移到智能節(jié)點(diǎn)部分上完成,簡(jiǎn)化了移動(dòng)機(jī)器人系統(tǒng)控制核心的工作;采取了比較簡(jiǎn)單的硬件設(shè)計(jì),主要是將超聲波傳感器的控制核心和CAN總線控制器集中到一起,采用PIC18F2580一個(gè)器件完成兩種芯片的工作,節(jié)省硬件。另外,CAN總線的擴(kuò)展也會(huì)令后續(xù)的移動(dòng)機(jī)器人系統(tǒng)的進(jìn)一步開發(fā)變得更為靈活。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉