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