基于FPGA的通信接口模塊設計與實(shí)現
協(xié)議使用8B/10B編碼保證數據通道的直流平衡,完成時(shí)鐘的恢復。同時(shí)利用8B/10B編碼的控制字符作為數據幀傳輸的起始、結束標識,并作為傳輸信道的同步控制。在每一數據幀的起始位置添加幀起始控制字符,在數據幀的結束位置添加幀結束控制字符,在數據傳輸過(guò)程中有中斷或在無(wú)數據傳輸的空閑時(shí)段填充同步控制字符。本文引用地址:http://dyxdggzs.com/article/154067.htm
控制命令和狀態(tài)數據都以數據幀的方式在光纖上傳輸。數據幀格式如圖2所示。標識字說(shuō)明數據幀的性質(zhì)和傳輸到的設備,不同的應用有不同的標識,且每個(gè)標識有唯一對應的設備,一個(gè)設備可能有多個(gè)標識字。字長(cháng)為從標識到校驗的長(cháng)度。數據為命令或狀態(tài)信息。校驗字為從字長(cháng)到數據的所有字節的循環(huán)冗余校驗碼(CRC)。
2 通信接口模塊實(shí)現
通信接口模塊以FPGA為控制核心,外圍添加電平轉換芯片實(shí)現。通信接口模塊對上行控制命令和下行狀態(tài)信息進(jìn)行獨立處理。在FPGA內實(shí)現的邏輯框圖如圖3所示。
光纖接收和光纖發(fā)送模塊實(shí)現光纖通信協(xié)議的物理層處理。成幀和解幀模塊實(shí)現光纖通信協(xié)議的鏈路層處理??刂泼钐幚砗蜖顟B(tài)數據處理實(shí)現用戶(hù)數據處理。三線(xiàn)同步串行接口、通用異步串行接口和邏輯電平接口實(shí)現針對各個(gè)前端受控模塊的數據傳輸。
2.1 光纖接口
按照光纖通信協(xié)議,光纖接口包括物理層和鏈路層處理,即圖3中的光纖發(fā)送/接收、成幀/解幀邏輯模塊,發(fā)送和接收是相反方向的處理。光纖接收/發(fā)送邏輯模塊實(shí)現串行解串編解碼和8B/10B編解碼。串行器將并行數據變?yōu)榇袛祿l(fā)送至光纖接口;解串器將從光纖接口接收到的串行數據變?yōu)椴⑿袛祿?。同時(shí)通過(guò)8B/10B編碼將發(fā)送時(shí)鐘編碼到數據中一同發(fā)送,解串器則從數據流中恢復時(shí)鐘。串行器采用
SN65LV1023A器件,解串器采用SN65LV1224B器件。8B/10B編解碼則在FPGA中實(shí)現。成幀/解幀模塊實(shí)現數據長(cháng)度檢驗、數據校驗、添加幀頭和幀尾。
2.2 控制命令處理邏輯
控制命令處理邏輯首先檢測FIFO緩沖器是否有數據,如有數據則開(kāi)啟一次控制命令處理。數據處理時(shí),根據標志字將數據寫(xiě)入相應的設備接口,一幀數據處理完成后,通過(guò)設置幀有效信號,啟動(dòng)接口模塊發(fā)送??刂茽顟B(tài)機如圖4所示。
評論