基于PIC18F2580的CAN總線超聲波測距智能節(jié)點設(shè)計
圖3 超聲波發(fā)射部分電路圖
圖3中,LM386是一種音頻集成功放,具有自身功耗低、電壓增益可調(diào)整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點,廣泛應(yīng)用于錄音機和收音機之中。它是一個三級放大電路。本部分硬件電路相對簡單,主要就是利用LM386的驅(qū)動放大功能將單片機產(chǎn)生的40 kHz方波放大輸出。因為在智能超聲波節(jié)點控制系統(tǒng)中單片機的工作相對較少,為節(jié)省硬件,不妨將40 kHz方波的產(chǎn)生這部分工作交由單片機的CCP模塊來完成。TX1為超聲波發(fā)射頭。
3.3 超聲波傳感器接收電路設(shè)計
電路采用集成電路CX20106A。這是一款紅外線檢波接收的集成電路,常用于電視機紅外遙控接收器。考慮到紅外遙控常用的載波頻率38 kHz與測距超聲波頻率40 kHz較為接近,可以利用它作為超聲波檢測電路。實驗證明,其具有很高的靈敏度和較強的抗干擾能力。適當改變C11的大小,可改變接收電路的靈敏度和抗干擾能力。R12和C11控制CX20106A內(nèi)部的放大增益,R14控制帶通濾波器的中心頻率。一般取R12=4.7Ω,C11=1μF。其余元件按圖4取值。RX1為超聲波接收頭,當收到超聲波時產(chǎn)生一個下降沿,接到單片機的外部中斷INTO上。
圖4 超聲波接收部分電路圖
當超聲波接收頭接收到40 kHz方波信號時,將會將此信號通過CX20106A驅(qū)動放大送入單片機的外部中斷0口。單片機在得到外部中斷0的中斷請求后,會轉(zhuǎn)入外部中斷0的中斷服務(wù)程序進行處理,在移動機器人的避障工作中,可以在中斷服務(wù)程序設(shè)定需要單片機處理的最短距離,比如0.4m。對于距離大于0.4 m的障礙物,可以不做處理直接跳出中斷服務(wù)程序;對于距離小于或等于0.4m的障礙物信息,則在中斷服務(wù)程序中進行處理并通過CAN總線上報機器人系統(tǒng)控制核心,由機器人系統(tǒng)控制核心發(fā)出命令指導(dǎo)機器人的避障動作。對于多超聲波傳感器系統(tǒng),每一個超聲波傳感器在判斷到對機器人行動有障礙物時可分別在其中斷服務(wù)程序中對障礙物信息進行簡單處理,上報給機器人系統(tǒng)控制核心的信息可以相對簡單,只需機器人系統(tǒng)控制核心控制機器人的實際動作,比如右轉(zhuǎn)20°,而不必機器人系統(tǒng)控制核心再次進行計算,這樣會節(jié)省大量系統(tǒng)資源去作其它更為復(fù)雜的工作。
3.4 CAN總線設(shè)計部分
TJAl040是Philips半導(dǎo)體公司生產(chǎn)的高速CAN總線收發(fā)器。該器件提供了CAN協(xié)議控制器和物理總線之間的接口,以及對CAN總線的差動發(fā)送和接收功能。TJAl040具有優(yōu)秀的EMC性能,而且在不上電狀態(tài)下有理想的無源性能;它還提供低功耗管理,支持遠程喚醒。值得一提的是TJAl040的自動防故障功能。STB引腳接地工作在正常模式下,引腳TXD提供了一個向VCC的上拉,使引腳TXD在不使用時保持隱性電平。如果VCC掉電,引腳TXD、STB和RXD就會變成懸浮狀態(tài),防止通過這些引腳產(chǎn)生反向電流。
6N137是光電耦合器,采用光電耦合器6N137的目的是增強CAN總線節(jié)點的抗干擾能力,這樣的設(shè)計可以很好地實現(xiàn)總線上各CAN節(jié)點間的電氣隔離。但要注意的是,光耦部分電路所采用的兩個電源VCC和VDD必須完全隔離,否則光耦就失去了意義。
TJAl040作為CAN總線收發(fā)器,與CAN總線的接口部分也采取了抗干擾措施。TJAl040的CANH1和CANL1引腳各自通過一個5Ω電阻與CAN總線連接,電阻可以起到一定的限流作用,保護TJAl040不受過流的沖擊。
評論