基于PCI總線的HDLC通信卡的設計與實現(xiàn)
3.2 HDLC通信模塊實現(xiàn)
HDLC的標準幀格式如表1所示,但HDLC也有由用戶定義的非標準幀格式,常用于點對點的通信中。在非標準格式中,地址段、控制段、CRC段是可選的。本通信卡主要用于點對點通信,且采用簡化的HDLC協(xié)議,即省略地址段、控制段、CRC段。其中CRC校驗功能由上位機軟件實現(xiàn)。
HDLC是面向位的,在待傳數(shù)據(jù)中出現(xiàn)與標志字一樣的數(shù)據(jù)時,如果不進行處理,就會被誤認為是幀邊界。為了避免此錯誤,HDLC規(guī)定采用“零比特填充法”使一幀中兩個字段之間不會出現(xiàn)6個連續(xù)1。具體做法是:發(fā)送數(shù)據(jù)時,先進行幀數(shù)據(jù)掃描,只要發(fā)現(xiàn)有連續(xù)的5個1,則立即插入一個0,以此保證數(shù)據(jù)中不會出現(xiàn)連續(xù)6個1;接收數(shù)據(jù)時,先找到3E字段以確定幀的邊界,接著對其后的比特流進行掃描,每發(fā)現(xiàn)5個連續(xù)1就將其后的0刪除,以此保證所傳比特流中不出現(xiàn)幀標志,直到幀尾標志出現(xiàn),從而實現(xiàn)HDLC在鏈路層的“透明傳輸”,保證發(fā)送端可以發(fā)送任意組合的比特流信息,而接收端都能準確無誤地接收到。
FPGA中實現(xiàn)的簡化HDLC模塊總體框圖如圖3所示。讀寫FIFO采用Ahera公司的LPM功能模塊實現(xiàn),大。小可根據(jù)需要設置,本通信卡設為512x32 bit。發(fā)送數(shù)據(jù)舅時,寫FIFO接收Pc數(shù)據(jù)(總線寬度為32 bit),首先進行曼并串轉(zhuǎn)換,再進行插“O”操作,最后插入標志字按位發(fā)送出去,輸出數(shù)據(jù)Tx和輸出時鐘Tx_Clk保持同步,整個過程由發(fā)送控制狀態(tài)機進行控制。接收數(shù)據(jù)與發(fā)送數(shù)據(jù)過程相反,由接收控制狀態(tài)機進行控制。其中輸入、輸出時鐘可以設置為68 kHz或者768 kHz。
發(fā)送控制狀態(tài)機和接收控制狀態(tài)機分別如圖4、圖5所示。發(fā)送數(shù)據(jù)時,發(fā)送狀態(tài)機首先判斷寫FIFO是否有數(shù)據(jù),若有數(shù)據(jù),則插入幀頭,依次讀取FIFO數(shù)據(jù),完成插“0”操作和插幀尾操作,并按照從低到高的順序發(fā)送數(shù)據(jù),直至寫FIFO為空。接收數(shù)據(jù)時,首先搜索幀頭,為了防止接收到連續(xù)兩個標志字而把后一個標志字誤認為是數(shù)據(jù),設置搜索數(shù)據(jù)狀態(tài)(Data_find),若不是標志字,則作為數(shù)據(jù)進行去“0”操作,完成串并轉(zhuǎn)換和幀尾檢測,并將接收到的數(shù)據(jù)以32 bit為單位,逐次寫入讀FIFO中。當一幀傳輸結(jié)束,采用中斷信號通知上位機及時讀取數(shù)據(jù)。一旦檢測到丟棄序列(0x7F),則結(jié)束對此幀數(shù)據(jù)的處理,并清空讀FIFO里的數(shù)據(jù),同時上報PC機錯誤信息,請求發(fā)送方重新發(fā)送數(shù)據(jù)。
3.3 功能時序圖
圖6、圖7分別給出了利用Quartus II的在線邏輯分析儀SignalTap II獲取的PCI寫數(shù)據(jù)、HDLC數(shù)據(jù)發(fā)送和HDLC接收、PCI讀數(shù)據(jù)的時序波形圖。從圖中可以看到,HDLC模塊正確實現(xiàn)了插“O”和去“0”操作,并能與PCI9054進行正確的數(shù)據(jù)收發(fā)。
本文采用PCI總線控制器PCI9054和FPGA技術設計實現(xiàn)了一款符合簡化HDLC協(xié)議的通信卡,并已成功應用于實際工作中。實際應用表明收發(fā)數(shù)據(jù)正確,可以滿足高速數(shù)據(jù)通信要求。同時,該通信卡設計中預留了一定的擴展空間,能夠根據(jù)需要進行功能拓展。本通信卡可應用于信號處理、數(shù)據(jù)通信等場合,對PCI總線應用設計有一定的參考價值。
實驗結(jié)果表明,基于ARM9和CPLD硬件平臺,在嵌入式Linux操作系統(tǒng)下,系統(tǒng)能夠?qū)崿F(xiàn)等速跟蹤、位置定點和正弦跟蹤等功能,滿足控制實時性要求,可實現(xiàn)伺服控制。系統(tǒng)體積小、成本低、功耗小、接口豐富、便于開發(fā),且Linux系統(tǒng)具有很好的文件管理功能,有助于實驗數(shù)據(jù)的存儲和導出,便于實驗結(jié)果分析。系統(tǒng)進一步完善后可將控制程序設計成圖形界面,利用觸摸屏輸入和顯示伺服控制結(jié)果,則可實現(xiàn)控制結(jié)果實時顯示,可視化效果好,整個系統(tǒng)可脫離計算機工作,具有廣泛的應用價值。
評論