国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的USB-HDLC協(xié)議轉(zhuǎn)換器的設(shè)計與實現(xiàn)

2014-11-09 10:57:40秦兆濤
遙測遙控 2014年4期
關(guān)鍵詞:PC機校驗編程

楊 峰, 秦兆濤

(1北京遙感設(shè)備研究所 北京 100854 2北京航空航天大學(xué) 北京 100191)

引 言

在現(xiàn)代信息社會,數(shù)據(jù)通信占據(jù)著重要的地位,對實時通信數(shù)據(jù)的存儲也不可或缺。很多電子產(chǎn)品都通過HDLC協(xié)議[1]進行通信,然而PC機上卻沒有與之對應(yīng)的接口,所以需要一種“轉(zhuǎn)換”設(shè)備將依該協(xié)議通信的數(shù)據(jù)存儲于PC機中。本文所論述的正是這種“轉(zhuǎn)換”設(shè)備:基于FPGA設(shè)計和實現(xiàn)的USBHDLC協(xié)議轉(zhuǎn)換器。通過該系統(tǒng),便可將RS-485接口轉(zhuǎn)換為USB端口,實現(xiàn)外設(shè)與PC機的數(shù)據(jù)通信。

以往的轉(zhuǎn)換器系統(tǒng)采用的是專用芯片+單片機+接口電路的結(jié)構(gòu),由專用ASIC芯片實現(xiàn)HDLC協(xié)議[2],但存在如下問題:ASIC器件出于專用性目的難以通用不同版本,缺乏靈活性;器件片內(nèi)存儲器容量有限,不適合大數(shù)據(jù)量傳輸;為追求功能完備,芯片控制復(fù)雜[3]。本文系統(tǒng)采用FPGA的單片解決方案,可有效利用片內(nèi)硬件資源,無需外圍電路,高度集成且操作簡單,能夠兼顧速度和靈活性。FPGA既適合完成計算控制,又適合完成接口協(xié)議的編寫,所以本文通過FPGA硬件編程,實現(xiàn)了單片高度集成的USBHDLC協(xié)議轉(zhuǎn)換系統(tǒng)。

本文系統(tǒng)主要包括FPGA控制器、HDLC模塊和USB模塊三部分。系統(tǒng)由FPGA芯片控制實現(xiàn)HDLC通信協(xié)議,通過RS-485接口與外接設(shè)備進行通信。系統(tǒng)配備USB端口,通過FPGA編程配置USB芯片實現(xiàn)系統(tǒng)與PC機的通信,進而實現(xiàn)對數(shù)據(jù)的讀取、存儲和事后分析,亦或?qū)C機上的指令和數(shù)據(jù)發(fā)送出去。

本文系統(tǒng)設(shè)計簡單、靈活,可靠性高,較易實現(xiàn)HDLC通信協(xié)議,USB接口通用性強,具有較強的兼容性和廣泛的適用性,能夠很好地應(yīng)用于各種中小型通信設(shè)備[4]。

1 HDLC協(xié)議簡述

高級數(shù)據(jù)鏈路控制規(guī)程HDLC[5](High-Level Data Link Control Procedures)是一種面向比特位的同步數(shù)據(jù)鏈路層協(xié)議,由國際標(biāo)準化組織ISO制定,廣泛應(yīng)用于數(shù)據(jù)通信領(lǐng)域。該協(xié)議使用統(tǒng)一的幀格式,運用方便;采用零比特插入法,易于硬件實現(xiàn),且支持任意的位流傳輸,實現(xiàn)信息的透明傳輸;全雙工通信,吞吐率高,在未收到應(yīng)答幀的情況下,可連續(xù)發(fā)送信息幀,提高數(shù)據(jù)鏈路傳輸?shù)男?采用CRC幀校驗序列,可防止漏幀,提高信息傳輸?shù)目煽啃浴?/p>

HDLC以幀作為傳輸?shù)幕締挝?,其結(jié)構(gòu)如圖1所示。

圖1 HDLC幀結(jié)構(gòu)

結(jié)合圖1,標(biāo)志位“F”作為幀頭和幀尾,各1個字節(jié),設(shè)定為十六進制“7E”。為防止數(shù)據(jù)傳輸誤判,提高可靠性,可發(fā)送多個“7E”?!癐NFO”為有效數(shù)據(jù)信息,為字節(jié)的整數(shù)倍。對圖1所示的校驗區(qū)間采用CRC方式校驗,即循環(huán)冗余校驗,得到2個字節(jié)的幀校驗序列“FCS”。為防止傳輸?shù)挠行?shù)據(jù)被誤判為幀標(biāo)志位“F”,協(xié)議采用零比特插入和刪除法[6],即規(guī)定:在發(fā)送數(shù)據(jù)時,當(dāng)比特流中連續(xù)出現(xiàn)5個“1”bit時,在后面自動插入一個“0”bit;在接收數(shù)據(jù)時,當(dāng)比特流中連續(xù)出現(xiàn)5個“1”bit時,自動刪除后面的“0”bit。

本文系統(tǒng)采用HDLC協(xié)議與外接設(shè)備進行數(shù)據(jù)通信。由于FPGA可重復(fù)性編程,設(shè)計開發(fā)靈活,可多路并行處理,程序移植性強,能實時仿真,可在眾多通信產(chǎn)品中設(shè)計實現(xiàn)HDLC協(xié)議功能[7],因此本文基于可編程器件FPGA實現(xiàn)HDLC通信協(xié)議。

2 系統(tǒng)結(jié)構(gòu)

本文所論述的系統(tǒng)為基于FPGA的USB-HDLC協(xié)議轉(zhuǎn)換器,系統(tǒng)結(jié)構(gòu)如圖2所示。系統(tǒng)主要由FPGA控制模塊、HDLC模塊和USB模塊三部分組成。此外,系統(tǒng)通過RS-485接口與外接設(shè)備連接,通過USB端口與PC機相連。

圖2 系統(tǒng)結(jié)構(gòu)

當(dāng)發(fā)送數(shù)據(jù)時,PC機上的數(shù)據(jù)信息或指令通過USB接口傳輸進入系統(tǒng),將數(shù)據(jù)暫存于USB芯片中,再進入系統(tǒng)緩存RAM,緩存中的數(shù)據(jù)按HDLC協(xié)議通過RS-485接口傳輸至外接設(shè)備;當(dāng)接收數(shù)據(jù)時,外接設(shè)備的數(shù)據(jù)通過RS-485接口進入系統(tǒng),按照內(nèi)部HDLC協(xié)議對數(shù)據(jù)進行解析并存入FPGA緩存中,USB芯片經(jīng)FPGA配置控制,可接收來自緩存中的外部數(shù)據(jù),進而將其通過USB接口傳入PC機中。

HDLC協(xié)議是通過可編程邏輯器件FPGA編程實現(xiàn)的,而USB模塊功能的實現(xiàn)則依賴于USB芯片和FPGA對它的配置控制。

本文系統(tǒng)采用的 USB芯片為 Cypress公司生產(chǎn)的 EZ-USB芯片 CY7C68013[8]。CY7C68013采用USB2.0協(xié)議,主要有端口模式、GPIF模式和Slave FIFO模式三種工作模式。該芯片全速信號速率最大為12Mb/s,高速信號速率可達480Mb/s。端口模式下的傳輸速率較慢,這是因為其I/O口為8051通用I/O口,需要CPU的參與;在GPIF模式下,GPIF作為主控制器,產(chǎn)生可編程的控制信號,可與外部接口通信;在Slave FIFO模式下,外部處理器可以直接與FIFO連接。

USB芯片CY7C68013的功能如圖3所示。

本文中CY7C68013采用Slave FIFO工作模式,便于系統(tǒng)間通信和協(xié)同合作。該芯片受主控器件FPGA的配置,可控制芯片的數(shù)據(jù)總線讀寫使能,即圖3中的EP2和EP6,進而實現(xiàn)數(shù)據(jù)的高速傳輸。

圖3 USB模塊功能

3 FPGA設(shè)計與實現(xiàn)

可編程邏輯器件FPGA芯片作為主控器件,控制數(shù)據(jù)通信時的USB模塊和HDLC通信協(xié)議模塊,進而實現(xiàn)USB-HDLC協(xié)議轉(zhuǎn)換器功能,其原理如圖4所示。

FPGA編程實現(xiàn)USB譯碼模塊、USB控制模塊和HDLC協(xié)議發(fā)送、接收模塊,緩存RAM可在芯片內(nèi)調(diào)用;USB控制模塊通過控制總線對USB芯片進行配置,經(jīng)USB接口實現(xiàn)與PC機的通信互聯(lián)。USB譯碼模塊對接收或發(fā)送的數(shù)據(jù)進行解析譯碼處理,譯碼后的數(shù)據(jù)信息或經(jīng)USB模塊數(shù)據(jù)總線進入USB芯片上傳到PC機,或緩存到RAM中按HDLC協(xié)議通過RS-485接口發(fā)送給外接設(shè)備。

圖4 FPGA控制實現(xiàn)USB-HDLC協(xié)議轉(zhuǎn)換器原理

下面具體敘述FPGA是如何設(shè)計實現(xiàn)HDLC協(xié)議和控制USB模塊的。

3.1 HDLC 協(xié)議的 FPGA 實現(xiàn)[9]

FPGA實現(xiàn)HDLC協(xié)議的流程如圖5所示。在發(fā)送端,數(shù)據(jù)由發(fā)送緩存RAM經(jīng)并/串轉(zhuǎn)換、CRC校驗、插零和包裝幀頭幀尾標(biāo)志字等操作將數(shù)據(jù)發(fā)送出去;接收端,檢測接收數(shù)據(jù)的幀頭標(biāo)志字,然后經(jīng)CRC校驗檢測、刪零操作后對數(shù)據(jù)串/并轉(zhuǎn)換,并存儲到接收緩存單元RAM中,檢測到幀尾標(biāo)志字后停止接收過程。

具體來講,發(fā)送端首先發(fā)送標(biāo)志字“7E”,然后將緩存中待發(fā)送的并行數(shù)據(jù)并/串轉(zhuǎn)換,同時系統(tǒng)自動完成CRC編碼、“0”比特插入等操作,再將處理后的數(shù)據(jù)按同步串行傳輸方式發(fā)送。在接收端,系統(tǒng)自動完成標(biāo)志字“7E”的檢測、刪“0”及CRC校驗操作,再將同步串行數(shù)據(jù)串/并轉(zhuǎn)換,轉(zhuǎn)換成8位并行數(shù)據(jù)存儲至接收緩存中。整個系統(tǒng)采用同一個全局時鐘。

圖5 HDLC協(xié)議的FPGA設(shè)計實現(xiàn)流程

RS-485接口選用 J30J-21ZKP,通過連接線纜與外設(shè)相連。發(fā)送數(shù)據(jù)時,首先經(jīng)過光耦合器件進行電氣性能隔離,然后經(jīng)過單端電平轉(zhuǎn)差分電平芯片輸出到發(fā)送總線上,這樣的設(shè)計能夠在保證外部通信的同時,有效地保護系統(tǒng)硬件平臺。接收數(shù)據(jù)端,信號經(jīng)過差分電平轉(zhuǎn)單端電平芯片,將差分信號轉(zhuǎn)換為單端信號,然后經(jīng)過光耦合器件輸入到FPGA芯片。本設(shè)計中選擇HCPL-063L光耦隔離芯片以及MAX3485電平轉(zhuǎn)換芯片,理論上此電平轉(zhuǎn)換芯片可以達到10Mb/s的傳輸速率。為滿足不同設(shè)計的需要,F(xiàn)PGA內(nèi)部設(shè)有專門的波特率寄存器,可以通過PC機界面環(huán)境裝訂選擇發(fā)送數(shù)據(jù)的波特率,如2Mb/s或4Mb/s。

3.2 USB控制模塊的FPGA實現(xiàn)

USB控制模塊主要實現(xiàn)對PC機下發(fā)指令的譯碼解析,傳輸下發(fā)數(shù)據(jù)信息以及將系統(tǒng)接收的內(nèi)部數(shù)據(jù)上傳給PC機。系統(tǒng)與PC機連接時,用戶可以從PC機界面環(huán)境向系統(tǒng)發(fā)送指令,進行指令裝訂、保存接收數(shù)據(jù)等操作。

FPGA對USB模塊的控制流程如圖6所示。

如圖6所示,在發(fā)送數(shù)據(jù)時,F(xiàn)PGA編程控制選擇USB FIFO通道EP2,系統(tǒng)接收PC機下發(fā)的指令并對其進行解析、譯碼操作,或通過配置寄存器實現(xiàn)復(fù)位、波特率選擇和觸發(fā)發(fā)送等功能,或?qū)C機下發(fā)的數(shù)據(jù)信息寫入發(fā)送緩存RAM;在接收數(shù)據(jù)時,通過狀態(tài)寄存器判斷接收RAM中是否有數(shù)據(jù),若有,F(xiàn)PGA編程控制選擇USB FIFO通道EP6,上行數(shù)據(jù)通過USB接口傳入PC機中,經(jīng)解析使之顯示在PC機界面環(huán)境中或存儲于PC機內(nèi)部。

圖6 USB控制模塊的FPGA實現(xiàn)流程

4 仿真結(jié)果

本系統(tǒng)FPGA控制實現(xiàn)HDLC協(xié)議部分采用VHDL語言進行編程,并通過第三方軟件Signal TapⅡLogic Analyzer顯示數(shù)據(jù)的通信傳輸過程,用行為級仿真驗證轉(zhuǎn)換器功能。

圖7為FPGA配置控制USB芯片CY7C68013,PC機下發(fā)數(shù)據(jù)時的測試圖。系統(tǒng)采用40MHz時鐘信號采樣,F(xiàn)IFOData為并行數(shù)據(jù),SLRD、SLWR為讀寫信號。從仿真圖中FIFOData信號可以看出,系統(tǒng)設(shè)計發(fā)送 EE、FF、02、01、00 數(shù)據(jù)指令,44、55、33、00、01 等為需要發(fā)送的有效數(shù)據(jù),說明 PC 機中數(shù)據(jù)已進入USB芯片緩存中。接下來的工作是將該數(shù)據(jù)轉(zhuǎn)換為符合HDLC協(xié)議的數(shù)據(jù),并通過RS-485接口發(fā)送出去。

圖7 PC機下發(fā)USB數(shù)據(jù)仿真測試

圖8 為FPGA實現(xiàn)HDLC通信協(xié)議發(fā)送數(shù)據(jù)時的仿真測試。其中TX_Reg為預(yù)備發(fā)送PC機下行并行數(shù)據(jù)的寄存器,SPI_Dat_Out_R為HDLC數(shù)據(jù)總線發(fā)送的串行數(shù)據(jù)。如圖所示,首先發(fā)送幀頭標(biāo)志4個“7E”,然后發(fā)送寄存器中的數(shù)據(jù)44、55、33、00、01等,以及兩個 CRC 校驗字節(jié)“BC”和“A1”。最后,發(fā)送幀尾標(biāo)志4個“7E”。由于設(shè)計規(guī)定,數(shù)據(jù)發(fā)送為先發(fā)低位再發(fā)高位,所以在串行數(shù)據(jù)線上讀取信息時需將數(shù)據(jù)倒置讀取。

圖8 HDLC協(xié)議數(shù)據(jù)傳輸仿真測試

根據(jù)上述兩圖FIFOData、TX_Reg和SPI_Dat_Out_R信號數(shù)據(jù)內(nèi)容的對比,系統(tǒng)實現(xiàn)了將PC機數(shù)據(jù)通過USB接口轉(zhuǎn)入FPGA緩存中并通過RS-485接口并行輸出的功能,即完成了USB-FPGA協(xié)議轉(zhuǎn)換器的功能。

HDLC協(xié)議模塊中,HCPL-063L光耦隔離芯片能達到的最高傳輸速率為15Mb/s,MAX3485電平轉(zhuǎn)換芯片可以達到10Mb/s的傳輸速率;USB模塊中,CY7C68013芯片數(shù)據(jù)傳輸速率可達到480Mb/s,片內(nèi)擁有8kB的RAM,完全可以滿足系統(tǒng)傳輸數(shù)據(jù)的需要。

當(dāng)系統(tǒng)FPGA芯片EP1C6T144C8工作時,資源占用情況如表1所示。

表1 資源使用情況

5 結(jié)束語

本文系統(tǒng)地介紹了基于FPGA的USB-HDLC協(xié)議轉(zhuǎn)換器的設(shè)計與實現(xiàn)。系統(tǒng)采用HDLC總線接口與外接設(shè)備連接,通過USB接口與PC機通信傳輸信息。通過可編程邏輯器件FPGA編程代替專用芯片實現(xiàn)HDLC協(xié)議,編程簡單,易于修改,數(shù)據(jù)傳輸可靠,實時性和穩(wěn)定性較高[10];采用USB2.0協(xié)議接口與PC機進行通信,通用簡便,接口設(shè)計靈活,具有較高的數(shù)據(jù)傳輸率。該USB-HDLC協(xié)議轉(zhuǎn)換器實現(xiàn)了PC機與外接設(shè)備的信息通信和數(shù)據(jù)存儲,采用HDLC協(xié)議和USB接口,使系統(tǒng)具有更強的兼容性和廣泛的應(yīng)用性,具有一定的實用價值。

[1]彭圻平,胡國慶,等.基于FPGA的HDLC規(guī)程模塊實現(xiàn)[J].計算機與網(wǎng)絡(luò),2013,(10):64~67.

[2]劉振宇,陳 禾,等.低功耗RS-485總線HDLC控制器的ASIC設(shè)計[J].微電子學(xué),2002,32(6):469~472.

[3]張文昊,王 俊,等.基于FPGA的HDLC規(guī)程的設(shè)計與實現(xiàn)[J].電子器件,2009,(3):696~699.

[4]應(yīng)三叢,張 行.基于FPGA的HDLC協(xié)議控制器[J].四川大學(xué)學(xué)報,2008,40(3):116~120.

[5]ISO/IEC 13239.Information Technology—Telecommunication Exchange between Systems— High-level Data Link Control(HDLC)Procedures[S].

[6]鄧風(fēng)軍,張 龍,等.基于PCI總線的HDLC通信卡的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2012,38(8):30~33.

[7]張 偉.基于FPGA的HDLC規(guī)程控制系統(tǒng)實現(xiàn)[J].指揮信息系統(tǒng)與技術(shù),2011,(2):48~52.

[8]鄢 濤,杜小丹,等.基于RS485的數(shù)據(jù)通信協(xié)議的設(shè)計與實現(xiàn)[J].電子設(shè)計工程,2013,21(17):19~22.

[9]劉文學(xué),郭玉忠,等.HDLC協(xié)議的FPGA實現(xiàn)方法[J].航空計算技術(shù),2011,41(3):93~96.

[10]劉杰宇.基于FPGA技術(shù)的HDLC幀收發(fā)器的設(shè)計與實現(xiàn)[D].北京交通大學(xué),2010.

猜你喜歡
PC機校驗編程
編程,是一種態(tài)度
少先隊活動(2021年2期)2021-03-29 05:41:04
元征X-431實測:奔馳發(fā)動機編程
編程小能手
紡織機上誕生的編程
基于PC機與單片機的多機通信技術(shù)及抗干擾方法
爐溫均勻性校驗在鑄鍛企業(yè)的應(yīng)用
基于三菱FXPLC的感應(yīng)淬火機床與PC機的串行通信實現(xiàn)
VC.NET下實現(xiàn)dsPIC單片機與PC機的通信
電子制作(2017年23期)2017-02-02 07:16:47
大型電動機高阻抗差動保護穩(wěn)定校驗研究
電測與儀表(2015年1期)2015-04-09 12:03:02
基于加窗插值FFT的PMU校驗方法
郑州市| 辉南县| 焦作市| 马龙县| 文登市| 汽车| 丹凤县| 定安县| 黄骅市| 金阳县| 保亭| 讷河市| 攀枝花市| 五大连池市| 顺平县| 招远市| 平凉市| 长春市| 舒城县| 横峰县| 德庆县| 恩施市| 文登市| 建瓯市| 广德县| 唐山市| 云安县| 建德市| 曲松县| 商水县| 景东| 梁平县| 太仆寺旗| 三穗县| 太原市| 韶关市| 隆德县| 突泉县| 中西区| 门头沟区| 温州市|