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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于DSP的絕對式光電編碼器串行接口設(shè)計

          基于DSP的絕對式光電編碼器串行接口設(shè)計

          作者: 時間:2012-10-22 來源:網(wǎng)絡(luò) 收藏


          3 硬件電路設(shè)計
          采用絕對式編碼器的電機(jī)伺服控制系統(tǒng)包括:待測量旋轉(zhuǎn)位置的電動機(jī)、絕對式編碼器、電平轉(zhuǎn)換元件MAX488、以為核心的電機(jī)控制板以及電機(jī)功率驅(qū)動電路。本文主要介紹絕對式編碼器HMCT/16/4096/BA和芯片的接口部分。
          由于該編碼器輸出接口為SSI接口,而單片機(jī)、、PC104、工控機(jī)等工控領(lǐng)域常用的控制器一般不提供SSI接口,此外SSI光電編碼器供應(yīng)商一般也不提供接口轉(zhuǎn)換器,所以有必要將SSI接口轉(zhuǎn)換成可以與DSP等可以通信的串行接口。接口電路如圖2所示。

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

          e.JPG


          由圖可見,絕對式光電編碼器的輸入時鐘信號(CLOCK)和輸出數(shù)據(jù)信號(DATA)均為差分信號,其數(shù)據(jù)傳輸符合EIA RS 22標(biāo)準(zhǔn),是符合RS 422協(xié)議的電平,因而需將其轉(zhuǎn)換成可以輸入單片機(jī)或者DSP的電平。能完成這種轉(zhuǎn)換的芯片很多,大致有兩類:全雙工和半雙工,由編碼器讀數(shù)時序圖,可數(shù)據(jù)的輸出在時鐘信號下降沿轉(zhuǎn)換,在時鐘信號上升沿傳送,因此應(yīng)選用全雙工的轉(zhuǎn)換芯片。本文選用MAX488芯片作為絕對式光電編碼器與DSP芯片MS320F2812通信的接口芯片,它由5 V電壓供電,是一種適用于RS 422和RS 485的低功率收發(fā)器,它的芯片中包含一個驅(qū)動器和一個接收器,并且可以2.5 Mb/s速率進(jìn)行傳輸。絕對式光電編碼器與DSP芯片通信的接口電路圖如圖3所示。

          f.JPG


          在該電路中,用DSP的GPIOF7(CANRXA)口來模擬產(chǎn)生絕對式編碼器讀數(shù)時所需的同步時鐘信號,用GPIOF6(CANTXA)口接收數(shù)據(jù),同時為了減少電路前后的干擾以及實現(xiàn)與DSP接口3.3 V電平的匹配,在電路中使用了兩路高速光耦器件進(jìn)行光電隔離,并實現(xiàn)電平轉(zhuǎn)換。

          4 軟件設(shè)計
          高精度多圈絕對式編碼器可以同時輸出多圈位置信息(nMT位)和單圈位置信息(nST位),其數(shù)據(jù)發(fā)送時序關(guān)系,如圖4所示,當(dāng)編碼器接收到發(fā)送周期的第一個時鐘信號下降沿時,讀取(nMT+nST)位字長的絕對位置值存入數(shù)據(jù)緩存器。數(shù)據(jù)緩存器中數(shù)據(jù)隨著時鐘信號的下降沿串行同步發(fā)送數(shù)據(jù),第一個發(fā)出的數(shù)據(jù)位是絕對位置值的最高位(MSB),最后一個發(fā)出的數(shù)據(jù)位是絕對位置值的最低位(LSB)。

          g.JPG



          評論


          相關(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); })();