基于P87C591的CAN總線超聲測距系統(tǒng)設(shè)計方案
介紹一種以Philips公司的P87C591作為超聲波傳感器控制核心及CAN總線控制器,以TJA1040作為CAN總線收發(fā)器的CAN總線智能超聲波測距系統(tǒng);詳細(xì)介紹其硬件電路構(gòu)成、工作原理及軟件設(shè)計思想。該系統(tǒng)硬件結(jié)構(gòu)簡單,實(shí)用性強(qiáng)。
本文引用地址:http://cafeforensic.com/article/194958.htm關(guān)鍵詞 超聲波測距 CAN總線 P87C591 TJA1040 LM386 CX20106A
引言
移動機(jī)器人的安全避障問題一直是該項研究的基本問題,目前解決此問題的基本方法是采用多路超聲波傳感器通過適當(dāng)?shù)陌惭b角度達(dá)到獲取多路測量信息的目的。對于多路超聲波傳感器的擴(kuò)展,一般是在機(jī)器人系統(tǒng)控制核心之上進(jìn)行。這樣做的缺點(diǎn)在于,超聲波傳感器的擴(kuò)展占用了大量的系統(tǒng)硬件資源,另外大量的測量信息的處理也浪費(fèi)了系統(tǒng)軟件資源。針對這一問題,筆者采用CAN總線擴(kuò)展多路超聲波傳感器的作法。這種作法有幾個優(yōu)點(diǎn): 首先,CAN總線具有良好的傳輸防錯設(shè)計,保證了數(shù)據(jù)通信的可靠性;其次,多路超聲波傳感器的設(shè)計可由CAN總線智能節(jié)點(diǎn)實(shí)現(xiàn),大大節(jié)省了系統(tǒng)硬件資源和軟件資源;第三,由于CAN總線對于網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)數(shù)在理論上不受限制,所以隨著對移動機(jī)器人研究的不斷深入,對于整個機(jī)器人系統(tǒng)的總體設(shè)計可以靈活地在CAN總線上進(jìn)一步開發(fā)。本文介紹的CAN總線智能節(jié)點(diǎn)的設(shè)計以Philips公司的P87C591作為超聲波傳感器的控制核心。由于P87C591具有片上自帶的CAN控制器并且為CAN的應(yīng)用提供了許多專用的硬件功能,因此又將它作為了系統(tǒng)的CAN總線控制器,大大節(jié)省了主控系統(tǒng)的資源。CAN總線的收發(fā)器采用TJA1040。系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。
機(jī)器人系統(tǒng)控制核心由ARM實(shí)現(xiàn)。其主要功能是處理需要復(fù)雜計算的信息,將經(jīng)過處理的信息再送回CAN總線,并對整個網(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)。
圖1 系統(tǒng)總體結(jié)構(gòu)框圖
1 超聲波智能節(jié)點(diǎn)控制系統(tǒng)的硬件設(shè)計
超聲波智能節(jié)點(diǎn)控制系統(tǒng)的硬件電路如圖2所示。P87C591是51系列單片機(jī),對于大部分熟悉51單片機(jī)的使用者來說它的使用方法十分簡單。下面分別介紹各個組成部分。
圖2 超聲波智能節(jié)點(diǎn)控制系統(tǒng)
1.1 控制部分
超聲波傳感器的控制部分采用Philips半導(dǎo)體公司生產(chǎn)的P87C591。它是一個單片8位高性能微控制器,具有片內(nèi)CAN控制器,是從80C51微控制器家族派生出來的。它采用了強(qiáng)大的80C51指令集,并成功地包括了Philips半導(dǎo)體公司SJA1000 CAN控制器的PeliCAN功能;全靜態(tài)內(nèi)核提供了擴(kuò)展的節(jié)電方式;振蕩器可停止和恢復(fù)而不會丟失數(shù)據(jù);改進(jìn)的1∶1內(nèi)部時鐘預(yù)分頻器在12 MHz外部時鐘速率時,實(shí)現(xiàn)500 ns指令周期;內(nèi)部具有的16 KB內(nèi)部程序存儲器完全滿足本系統(tǒng)要求。
作為系統(tǒng)控制核心,P87C591擔(dān)負(fù)兩個主要任務(wù)。其一是作為超聲波傳感器的控制核心,在其普通I/O口上擴(kuò)展了超聲波傳感器的接收和發(fā)射部分電路,利用單片機(jī)軟件功能產(chǎn)生40 kHz信號并通過驅(qū)動放大發(fā)射出去,再利用接收部分電路進(jìn)行接收。另外可以對其余口線繼續(xù)進(jìn)行超聲波傳感器的擴(kuò)展,實(shí)現(xiàn)多個超聲波傳感器系統(tǒng)的設(shè)計。其二是利用P87C591的片內(nèi)CAN控制器實(shí)現(xiàn)與CAN總線的連接。這樣的設(shè)計改變了過去在機(jī)器人控制核心上進(jìn)行超聲波測距系統(tǒng)的設(shè)計,不但將超聲波檢測與處理的工作轉(zhuǎn)移到了單片機(jī)上,大大節(jié)省了機(jī)器人控制核心的系統(tǒng)資源,還將CAN總線智能節(jié)點(diǎn)的大部分控制工作也轉(zhuǎn)移到了單片機(jī)上,節(jié)省了硬件資源,同時CAN總線的采用大大提升了系統(tǒng)的抗干擾能力,使機(jī)器人控制系統(tǒng)更加穩(wěn)定地工作。
1.2 超聲波傳感器發(fā)射部分
超聲波傳感器發(fā)射部分硬件電路如圖3所示。
圖3 超聲波傳感器發(fā)射部分
評論