基于FPGA的多通道HDLC收發(fā)電路設計
2 HDLC協(xié)議的FPGA實(shí)現
某遙控遙測平臺為確保滿(mǎn)足高速通訊、多通道收發(fā)、功能易于擴展配置的任務(wù)要求,中心控制器采用了以高性能的ARM7為CPU數據處理核心、采用FPGA設計串行通信控制器來(lái)收發(fā)多通道HDLC數據的一體化設計。本文引用地址:http://dyxdggzs.com/article/191874.htm
FPGA按照HDLC協(xié)議規程,接收并存儲來(lái)自集成處理器等8個(gè)獨立通道的數字量。系統先將外部輸入的HDLC數據流由RS485電氣特性轉換為T(mén)TL電平,在此過(guò)程中用光耦進(jìn)行隔離,以避免與外部設備之間的相互干擾,并且RS485芯片與光耦器件的相關(guān)電源使用由電氣供給的獨立5 V和5 V地。 HDLC協(xié)議總體結構框圖,如圖2所示,每個(gè)控制模塊由時(shí)鐘控制、編碼/沖突檢測、發(fā)送和接收FIFO等功能模塊組成。在發(fā)送方向和接收方向,各有一個(gè)128 bit的FIFO,用于串行通道和CPU總線(xiàn)接口之間的數據緩沖。發(fā)送是接收的逆過(guò)程,這里以HDLC數據接收為例進(jìn)行說(shuō)明。
FPGA串行通信控制器接收HDLC數據的原理為:首先,將接收到的數據幀的消息字段和附加的狀態(tài)字段移入,然后根據選定的尋址模式,對接收幀中的目的地址進(jìn)行識別,確認數據幀的發(fā)送地址是否為本設備(站地址=77H),是本設備數據幀則進(jìn)行接收數據并存儲在FIFO中,當接收數據幀結束時(shí),發(fā)出中斷信號給ARM系統,請求接收HDLC數據。
評論