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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于CAN總線的旋轉(zhuǎn)編碼器采集模塊設(shè)計(jì)

          基于CAN總線的旋轉(zhuǎn)編碼器采集模塊設(shè)計(jì)

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

          圖3 旋轉(zhuǎn)編碼器采集電路仿真波形

          3.3 CAN總線通訊部分

          LPC1768處理器支持CAN 2.0B規(guī)范,兼容IS011898-1標(biāo)準(zhǔn),基于此,本文選取飛利浦半導(dǎo)體公司生產(chǎn)的PCA82C250芯片作為CAN總線收發(fā)器,通訊匹配電阻選取120 ,i1,CAN收發(fā)器電路見(jiàn)圖4。

          圖4 CAN收發(fā)器電路

          3.4 電源部分

          LPC1768工作電壓為3. 3 V,而CAN收發(fā)器及旋轉(zhuǎn)編碼器采集電路部分電壓為5 V,所以先使用MC33063將輸人電壓降到5V,供相關(guān)電路使用,然后再通過(guò)LM1117-3.3V將5V電壓降到3.3V,作為處理器工作電壓。電源電路見(jiàn)圖5。

          圖5 電源電路

          4 軟件設(shè)計(jì)

          系統(tǒng)采用RealView MDK-ARM V4.10為開(kāi)發(fā)平臺(tái),以C語(yǔ)言為主要開(kāi)發(fā)語(yǔ)言,程序主要分三個(gè)部分:旋轉(zhuǎn)編碼器采集部分采用中斷方式,通過(guò)LPC1768的定時(shí)捕獲單元來(lái)完成對(duì)輸人脈沖信號(hào)的計(jì)數(shù)工作;CAN通訊部分也采用中斷方式監(jiān)聽(tīng)來(lái)自DPU或者其他控制主機(jī)傳來(lái)的命令,然后執(zhí)行相應(yīng)的數(shù)據(jù)傳送任務(wù);而主程序則通過(guò)一定的時(shí)間調(diào)度算法,完成旋轉(zhuǎn)編碼器轉(zhuǎn)動(dòng)方向的判斷、角速度的計(jì)算以及設(shè)置相應(yīng)的指示燈狀態(tài)、處理CAN通訊過(guò)程中出現(xiàn)的異常狀況、喂狗等操作。主程序流程圖見(jiàn)圖6。

          圖6 主程序流程圖

          5 結(jié)論

          本文設(shè)計(jì)完成的旋轉(zhuǎn)編碼器采集模塊,適用于各類工業(yè)控制現(xiàn)場(chǎng),具有較廣的應(yīng)用前景。經(jīng)實(shí)驗(yàn)室初步驗(yàn)證并應(yīng)用于某工業(yè)現(xiàn)場(chǎng)測(cè)試,該模塊對(duì)旋轉(zhuǎn)編碼器輸人信號(hào)處理結(jié)果滿足用戶要求,并且能夠可靠地與現(xiàn)場(chǎng)控制系統(tǒng)進(jìn)行通訊,工作性能穩(wěn)定,具有很強(qiáng)的抗千擾能力和很高的安全性。


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

          評(píng)論


          技術(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); })();