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