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