<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          H和L與地之間并聯(lián)了兩個(gè)30 pF的電容,可以過(guò)濾掉上的高頻干擾和一定的電磁輻射。兩根接人端與地之間分別反接了一個(gè)保護(hù)二極管。當(dāng)CAN有較高的負(fù)電壓時(shí),通過(guò)二極管的續(xù)流可起到一定的過(guò)壓保護(hù)作用??偩€兩端接的120Ω電阻起匹配總線阻抗的作用,忽略掉它會(huì)使數(shù)據(jù)通信的抗干擾性能及可靠性大大降低甚至無(wú)法通信。
          4 控制系統(tǒng)的軟件編寫
          軟件的編寫工作主要有兩個(gè)部分:部分和的通信部分。
          4.1 部分的軟件
          當(dāng)超聲波接收器接收到回波時(shí),硬件電路產(chǎn)生脈沖電平觸發(fā)的外部中斷0口。軟件編寫的主要思想是,在中斷服務(wù)程序中由寄存器預(yù)先設(shè)定一個(gè)數(shù)值,這個(gè)數(shù)值是機(jī)器人避障的最短距離。從超聲波發(fā)射頭發(fā)射方波開始,到超聲波接收頭接收到回波為止,把這段時(shí)間換算成為距離,與上述最短距離相比較。如大于最短距離,則不作處理,跳出中斷服務(wù)程序;如等于或小于最短距離,則執(zhí)行相應(yīng)動(dòng)作。圖5是這部分程序的流程。

          本文引用地址:http://www.ex-cimer.com/article/173729.htm

          圖5 超聲波軟件流程圖
          4.2 通信部分的軟件編寫
          這部分軟件編寫主要由以下幾部分組成:初始化、接收處理、發(fā)送處理、中斷處理及錯(cuò)誤處理函數(shù)。由于系統(tǒng)中任意在任意時(shí)刻均可主動(dòng)與其它通信,故各個(gè)節(jié)點(diǎn)通信程序大致相同。具體程序的編寫可參考的用戶手冊(cè)。
          5 結(jié)束語(yǔ)
          本文論述了以擴(kuò)展多路超聲波傳感器的基本思想,介紹了一種以Microchip公司作為超聲波傳感器控制核心及CAN總線控制器。以TJAl040作為CAN總線收發(fā)器的CAN總線系統(tǒng)。將多路超聲波傳感器的擴(kuò)展轉(zhuǎn)移到節(jié)點(diǎn)部分上完成,簡(jiǎn)化了移動(dòng)機(jī)器人系統(tǒng)控制核心的工作;采取了比較簡(jiǎn)單的硬件,主要是將超聲波傳感器的控制核心和CAN總線控制器集中到一起,采用PIC18F2580一個(gè)器件完成兩種芯片的工作,節(jié)省硬件。另外,CAN總線的擴(kuò)展也會(huì)令后續(xù)的移動(dòng)機(jī)器人系統(tǒng)的進(jìn)一步開發(fā)變得更為靈活。


          上一頁(yè) 1 2 3 下一頁(yè)

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();