基于BiSS協(xié)議的光電編碼器通信模塊設計
主機輸出寄存器地址序列后,如果是讀寄存器模式,即寄存器地址序列中的WNR位為0,MA繼續(xù)輸出時鐘,SL返回寄存器中的數(shù)據(jù)。如果是寫寄存器模式,即寄存器地址序列中的WNR位為1,MA則繼續(xù)輸出高低占空比信號,SL返回寫入的寄存器值,如該值與發(fā)送的數(shù)據(jù)一致,說明寫寄存器操作成功。本文引用地址:http://m.butianyuan.cn/article/169493.htm
位置數(shù)據(jù)、寄存器數(shù)據(jù)、寄存器地址后均加有CRC校驗,保證傳送數(shù)據(jù)的準確性。對于總線連接方式,BiSS協(xié)議給出了多編碼器串行連接的讀數(shù)方式和寄存器讀寫方式,是上述時序的組合,詳細說明見參考文獻[1]。
2.1 硬件設計
通信模塊基于EP1C12Q240-FPGA設計,對Netzer RE252型號的絕對位置式光電編碼器進行位置讀數(shù),采用點對點連接,RS422差分總線接口使用MAX3460電平轉(zhuǎn)換芯片。為了提高通信模塊在工業(yè)應用中的抗干擾性,接口芯片和FPGA核心模塊之間加入高速光耦HCPL0630進行隔離。輸出接口有并行接口、串行通信接口、增量式等,與上位機通信。
2.2 軟件設計
程序在Quartus II軟件[6]環(huán)境下,使用Verilog HDL[7]語言編寫,采用的是自底向上的編寫方式,使用約6000門資源。底層模塊包括讀數(shù)模塊、讀寫寄存器模塊。底層模塊的clk時鐘由頂層模塊的鎖相環(huán)PLL分頻提供[8]。讀數(shù)模塊或者讀寫寄存器模塊在EN置位后,獨占MA線,發(fā)送與協(xié)議對應的波形,再根據(jù)編碼器返回的SL波形采樣識別數(shù)據(jù),通過data總線保存到頂層模塊的數(shù)據(jù)緩沖區(qū)。
頂層模塊主要包括兩個狀態(tài)機。讀數(shù)狀態(tài)機根據(jù)編碼器的工作時序要求完成寄存器的初始化,然后不斷的讀取編碼器的數(shù)據(jù)保存到數(shù)據(jù)緩沖區(qū)。輸出狀態(tài)機根據(jù)指定標志位從數(shù)據(jù)緩沖區(qū)讀取數(shù)據(jù),控制以并行、串口、增量式的輸出時序邏輯。
3、實驗結(jié)果及對比
quartus II中的signalTap邏輯分析儀可以嵌入到FPGA,觀察管腳電平和內(nèi)部變量值。圖7所示為編碼器返回14位數(shù)據(jù)的通信波形。從圖中可見,SL的第一個下降沿即ACK位延遲了約0.65μs,為總線延時。一個完整的讀數(shù)操作從-5時刻開始需要約210個采樣點,即4.2μs的時間(4.2μs=210*1/50 MHz,采樣頻率50MHz)。
圖8為TAMAGAWA-TS5667型號的絕對式光電位置編碼器返回17位數(shù)據(jù)的通信波形,該編碼器采用起止式異步串行通信協(xié)議,波特率為2.5M。半雙工通信方式下,一個完整的讀數(shù)操作從0時刻di請求開始,到約868時刻ro應答結(jié)束,需要約30.4μs的時間(30.4μs=868*1/28.57MHz,采樣頻率28.57MHz)。
BiSS協(xié)議下的數(shù)據(jù)位數(shù)可調(diào)整,如果把BiSS協(xié)議下的數(shù)據(jù)位數(shù)從14位增加到17位,只需增加3個時鐘的時間長度,在10Mbps下為0.3秒。
由此得到,在同樣傳輸17位光電編碼器位置數(shù)據(jù)的情況下,起止式異步協(xié)議耗時30.4μs,而BiSS協(xié)議僅耗時4.5μs,通信速度提高了6.75倍。
4、結(jié)論
基于BiSS協(xié)議的各方面優(yōu)點,目前已有德國IC-Haus,美國Danaher,以色列Netzer Precision等130多家公司申請并免費使用了BiSS協(xié)議,BiSS協(xié)議得到了越來越廣泛的應用。同時,BiSS與SSI協(xié)議下的接口兼容,方便SSI使用者和廠商系統(tǒng)升級。綜上所述,BiSS協(xié)議在降低協(xié)議成本、硬件成本,提高通信速度和準確率等綜合方面,是未來編碼器用串行通信協(xié)議中一種非常理想的選擇。
評論