新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于FPGA設(shè)計(jì)EnDat編碼器數(shù)據(jù)采集后續(xù)電路

基于FPGA設(shè)計(jì)EnDat編碼器數(shù)據(jù)采集后續(xù)電路

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


內(nèi)部分為時(shí)鐘發(fā)生模塊、發(fā)送模塊、接收模塊、雙口RAM模塊、發(fā)送使能模塊5個(gè)部分。首先,由時(shí)鐘發(fā)生模塊產(chǎn)生周期為0.5μs的方波信號(hào),取名為CLOCK,此信號(hào)作為通訊同步時(shí)鐘信號(hào)。在CLOCK的每個(gè)時(shí)鐘上升沿計(jì)數(shù)變量COUNT自加1,變量COUNT的初始值為0。當(dāng)發(fā)送使能模塊檢測(cè)到COUNT的值為3時(shí),說(shuō)明已經(jīng)將位置值保存完畢,發(fā)送使能模塊使SENT_EN信號(hào)有效,發(fā)送模塊開始發(fā)送6位模式指令。當(dāng)檢測(cè)到COUNT的值為9時(shí),停止COUNT在每個(gè)時(shí)鐘上升沿計(jì)數(shù),停止發(fā)送數(shù)據(jù)并使接收使能信號(hào)RECEIVE_EN有效,從而使能接收模塊。接收模塊開始檢測(cè)數(shù)據(jù)輸入信號(hào)的上升沿,一旦上升沿到來(lái)說(shuō)明收到數(shù)據(jù)起始位s,啟動(dòng)COUNT在每個(gè)時(shí)鐘上升沿計(jì)數(shù),以后在每個(gè)時(shí)鐘信號(hào)的上升沿保存位置值,直到檢測(cè)到COUNT的值為39時(shí),停止接收數(shù)據(jù),由接收模塊向雙口RAM模塊的A口寫入要保存的位置值,從而結(jié)束一次的通訊過(guò)程。由于每次通訊時(shí)間是嚴(yán)格固定的,設(shè)系統(tǒng)時(shí)鐘為2MHz。為主叫,當(dāng)時(shí)鐘下降沿到來(lái)時(shí),保存位置值要2個(gè)時(shí)鐘周期,向編碼器發(fā)送“請(qǐng)求數(shù)據(jù)”控制字共6位“000111”,需時(shí)6個(gè)時(shí)鐘周期,編碼器向FPCA共發(fā)送1個(gè)起始位、2個(gè)“錯(cuò)誤位”、23位位置值和5位CRC校驗(yàn)位要31個(gè)時(shí)鐘周期,共39個(gè)時(shí)鐘周期,所以每次通訊需要19.5μs的時(shí)間,并且每個(gè)時(shí)刻具體需要傳遞哪一位數(shù)據(jù)也是嚴(yán)格確定
的。因此采用基于時(shí)基的設(shè)計(jì)方法(見(jiàn)圖5)。

6e.jpg


在FPGA內(nèi)部實(shí)現(xiàn)了128 B的雙口RAM空間,A口具有8位數(shù)據(jù)線,7位地址線,用于與編碼器通訊,B口具有16位數(shù)據(jù)線,7位地址線,用于與DSP通訊,因?yàn)門MS320F2812為16位DSP,所以與FPGA中RAM的數(shù)據(jù)傳遞極為方便。DSP在每個(gè)電流環(huán)周期發(fā)送一個(gè)有效的“BEGIN”信號(hào),19.5μs之后,碼盤信號(hào)接收模塊將接收到數(shù)據(jù)存入FPGA內(nèi)部雙口RAM的A口中,并按順序排列成16位數(shù)據(jù)的形式,然后向DSP發(fā)送“END”信號(hào),表示一次通訊結(jié)束,DSP接收到中斷之后從FPGA的雙口RAM的B口中讀取數(shù)據(jù),完成一次通訊。
對(duì)FPGA的開發(fā)采用XILINX公司的ISE集成環(huán)境,硬件描述語(yǔ)言為Verilog HDL語(yǔ)言。圖6為程序流程圖。

6f.jpg

3 結(jié)束語(yǔ)
本文設(shè)計(jì)了一種基于FPGA的編碼器接口,用以進(jìn)行編碼器和伺服驅(qū)動(dòng)器DSP處理器之間的通訊,并且具有CRC校驗(yàn)等糾錯(cuò)功能。本文給出了硬件連接和FPGA程序設(shè)計(jì)流程,可以實(shí)現(xiàn)對(duì)永磁同步交流電機(jī)磁極位置準(zhǔn)確的讀取。


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

評(píng)論


相關(guān)推薦

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

關(guān)閉