<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于PCI總線(xiàn)的HDLC通信卡的設計與實(shí)現

基于PCI總線(xiàn)的HDLC通信卡的設計與實(shí)現

作者: 時(shí)間:2016-12-20 來(lái)源:網(wǎng)絡(luò ) 收藏

點(diǎn)擊放大圖片

3.2 HDLC通信模塊實(shí)現

HDLC的標準幀格式如表1所示,但HDLC也有由用戶(hù)定義的非標準幀格式,常用于點(diǎn)對點(diǎn)的通信中。在非標準格式中,地址段、控制段、CRC段是可選的。本通信卡主要用于點(diǎn)對點(diǎn)通信,且采用簡(jiǎn)化的HDLC協(xié)議,即省略地址段、控制段、CRC段。其中CRC校驗功能由上位機軟件實(shí)現。

點(diǎn)擊放大圖片

HDLC是面向位的,在待傳數據中出現與標志字一樣的數據時(shí),如果不進(jìn)行處理,就會(huì )被誤認為是幀邊界。為了避免此錯誤,HDLC規定采用“零比特填充法”使一幀中兩個(gè)字段之間不會(huì )出現6個(gè)連續1。具體做法是:發(fā)送數據時(shí),先進(jìn)行幀數據掃描,只要發(fā)現有連續的5個(gè)1,則立即插入一個(gè)0,以此保證數據中不會(huì )出現連續6個(gè)1;接收數據時(shí),先找到3E字段以確定幀的邊界,接著(zhù)對其后的比特流進(jìn)行掃描,每發(fā)現5個(gè)連續1就將其后的0刪除,以此保證所傳比特流中不出現幀標志,直到幀尾標志出現,從而實(shí)現HDLC在鏈路層的“透明傳輸”,保證發(fā)送端可以發(fā)送任意組合的比特流信息,而接收端都能準確無(wú)誤地接收到。

FPGA中實(shí)現的簡(jiǎn)化HDLC模塊總體框圖如圖3所示。讀寫(xiě)FIFO采用Ahera公司的LPM功能模塊實(shí)現,大。小可根據需要設置,本通信卡設為512x32 bit。發(fā)送數據舅時(shí),寫(xiě)FIFO接收Pc數據(總線(xiàn)寬度為32 bit),首先進(jìn)行曼并串轉換,再進(jìn)行插“O”操作,最后插入標志字按位發(fā)送出去,輸出數據Tx和輸出時(shí)鐘Tx_Clk保持同步,整個(gè)過(guò)程由發(fā)送控制狀態(tài)機進(jìn)行控制。接收數據與發(fā)送數據過(guò)程相反,由接收控制狀態(tài)機進(jìn)行控制。其中輸入、輸出時(shí)鐘可以設置為68 kHz或者768 kHz。

點(diǎn)擊放大圖片

發(fā)送控制狀態(tài)機和接收控制狀態(tài)機分別如圖4、圖5所示。發(fā)送數據時(shí),發(fā)送狀態(tài)機首先判斷寫(xiě)FIFO是否有數據,若有數據,則插入幀頭,依次讀取FIFO數據,完成插“0”操作和插幀尾操作,并按照從低到高的順序發(fā)送數據,直至寫(xiě)FIFO為空。接收數據時(shí),首先搜索幀頭,為了防止接收到連續兩個(gè)標志字而把后一個(gè)標志字誤認為是數據,設置搜索數據狀態(tài)(Data_find),若不是標志字,則作為數據進(jìn)行去“0”操作,完成串并轉換和幀尾檢測,并將接收到的數據以32 bit為單位,逐次寫(xiě)入讀FIFO中。當一幀傳輸結束,采用中斷信號通知上位機及時(shí)讀取數據。一旦檢測到丟棄序列(0x7F),則結束對此幀數據的處理,并清空讀FIFO里的數據,同時(shí)上報PC機錯誤信息,請求發(fā)送方重新發(fā)送數據。

點(diǎn)擊放大圖片

3.3 功能時(shí)序圖

圖6、圖7分別給出了利用Quartus II的在線(xiàn)邏輯分析儀SignalTap II獲取的PCI寫(xiě)數據、HDLC數據發(fā)送和HDLC接收、PCI讀數據的時(shí)序波形圖。從圖中可以看到,HDLC模塊正確實(shí)現了插“O”和去“0”操作,并能與PCI9054進(jìn)行正確的數據收發(fā)。

點(diǎn)擊放大圖片

本文采用PCI總線(xiàn)控制器PCI9054和FPGA技術(shù)設計實(shí)現了一款符合簡(jiǎn)化HDLC協(xié)議的通信卡,并已成功應用于實(shí)際工作中。實(shí)際應用表明收發(fā)數據正確,可以滿(mǎn)足高速數據通信要求。同時(shí),該通信卡設計中預留了一定的擴展空間,能夠根據需要進(jìn)行功能拓展。本通信卡可應用于信號處理、數據通信等場(chǎng)合,對PCI總線(xiàn)應用設計有一定的參考價(jià)值。

實(shí)驗結果表明,基于A(yíng)RM9和CPLD硬件平臺,在嵌入式Linux操作系統下,系統能夠實(shí)現等速跟蹤、位置定點(diǎn)和正弦跟蹤等功能,滿(mǎn)足控制實(shí)時(shí)性要求,可實(shí)現伺服控制。系統體積小、成本低、功耗小、接口豐富、便于開(kāi)發(fā),且Linux系統具有很好的文件管理功能,有助于實(shí)驗數據的存儲和導出,便于實(shí)驗結果分析。系統進(jìn)一步完善后可將控制程序設計成圖形界面,利用觸摸屏輸入和顯示伺服控制結果,則可實(shí)現控制結果實(shí)時(shí)顯示,可視化效果好,整個(gè)系統可脫離計算機工作,具有廣泛的應用價(jià)值。


上一頁(yè) 1 2 下一頁(yè)

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>