基于FPGA的通信接口模塊的設(shè)計
2.5 通用異步串口
通用異步串行接口的邏輯結(jié)構(gòu)如圖7所示。通用異步串行接口的接收模塊可分為數(shù)據(jù)接收、幀檢驗和數(shù)據(jù)緩存3部分。數(shù)據(jù)接收部分包括移位寄存器和接收控制邏輯。按照通用異步串行接口的時序,接收控制邏輯將移動移位寄存器,實現(xiàn)字節(jié)數(shù)據(jù)的接收和串并轉(zhuǎn)換。幀檢驗?zāi)K按照特定前端受控模塊的通信數(shù)據(jù)幀格式對數(shù)據(jù)進行檢驗,對檢驗成功的數(shù)據(jù)寫入到數(shù)據(jù)緩沖區(qū)中。數(shù)據(jù)緩存中存儲數(shù)據(jù)后向狀態(tài)信息處理模塊發(fā)出請求,等待數(shù)據(jù)讀出。
通用異步串口的發(fā)送模塊同樣分為3部分:數(shù)據(jù)緩存、幀形成、數(shù)據(jù)發(fā)送。數(shù)據(jù)緩存接收控制命令處理模塊的數(shù)據(jù)并緩存。由于通用異步串口發(fā)送的命令都是非周期命令,使用128 Byte的FIFO作為數(shù)據(jù)緩存。在幀形成模塊中為數(shù)據(jù)添加校驗、幀頭和幀尾。數(shù)據(jù)發(fā)送模塊針對字節(jié)數(shù)據(jù)按照通用異步通信的時序要求,將數(shù)據(jù)并串轉(zhuǎn)換發(fā)送出去。
3 仿真結(jié)果
FPGA選用Xilinx公司XC3S500E器件,該器件具有足夠的差分接口、邏輯和存儲器資源,能滿足該設(shè)計的要求。首先在ISE中利用Verilog HDL語言編寫邏輯代碼并用ISim對各個模塊進行了詳細的功能仿真。光纖通信接口的仿真結(jié)果如圖8所示。該仿真利用光纖收發(fā)模塊進行自環(huán),檢驗?zāi)K輸入輸出的正確性。從光纖接口接收到相應(yīng)控制命令后三線同步串行接口,通用異步串行接口的數(shù)據(jù)輸出仿真結(jié)果如圖9和圖10所示。仿真表明,程序輸出數(shù)據(jù)發(fā)送正確且數(shù)據(jù)處理時延很小。
4 結(jié)束語
文中以FPGA為控制核心,實現(xiàn)了中心機控制多個遠程受控模塊的通信接口模塊。該設(shè)計具有電路簡單、協(xié)議設(shè)計靈活,邏輯結(jié)構(gòu)擴展性強等優(yōu)點。仿真表明,該設(shè)計能夠滿足通信數(shù)據(jù)傳輸?shù)墓δ芤螅壳耙褢?yīng)用到具體設(shè)備中。
評論