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

?

ETC系統(tǒng)中HDLC協(xié)議解碼控制器的Verilog HDL實(shí)現(xiàn)

2017-10-21 03:40鄧昌晟李海洋王小松張海英
關(guān)鍵詞:鏈路層解碼校驗(yàn)

鄧昌晟,劉 昱,李海洋,王小松,張海英

(1. 中國(guó)科學(xué)院微電子研究所 新一代通信射頻芯片技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室,北京 100029;2. 中國(guó)科學(xué)院大學(xué) 微電子學(xué)院,北京 100049)

ETC系統(tǒng)中HDLC協(xié)議解碼控制器的VerilogHDL實(shí)現(xiàn)

鄧昌晟1,2,劉 昱1,2,李海洋1,王小松1,張海英1,2

(1. 中國(guó)科學(xué)院微電子研究所 新一代通信射頻芯片技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室,北京 100029;2. 中國(guó)科學(xué)院大學(xué) 微電子學(xué)院,北京 100049)

電子不停車收費(fèi)系統(tǒng)(Electronic Toll Collection, ETC)是解決目前交通擁堵問(wèn)題最有效的手段。為規(guī)范ETC設(shè)計(jì),統(tǒng)一國(guó)內(nèi)ETC標(biāo)準(zhǔn),我國(guó)制定了電子收費(fèi)專用短程通信國(guó)家標(biāo)準(zhǔn)(Dedicated Short Range Communications, DSRC)。DSRC數(shù)據(jù)鏈路層采用由國(guó)際標(biāo)準(zhǔn)化組織(ISO)制定的高級(jí)數(shù)據(jù)鏈路控制規(guī)程(High-Level Data Link Control, HDLC)。文章遵循DSRC短程通信協(xié)議數(shù)據(jù)鏈路層標(biāo)準(zhǔn)規(guī)范,采用硬件描述語(yǔ)言Verilog HDL實(shí)現(xiàn)了一種基于串行結(jié)構(gòu)的HDLC解碼電路,并對(duì)其中‘0’比特刪除模塊、CRC校驗(yàn)?zāi)K著重分析,設(shè)計(jì)較短時(shí)延的解碼電路。在解碼時(shí)鐘為256 kHz時(shí),可以在0.2 ms時(shí)間內(nèi)完成解碼和讀取工作。

電子不停車收費(fèi)系統(tǒng);DSRC;HDLC;Verilog HDL; CRC

0 引言

不停車收費(fèi)系統(tǒng)(ETC)由路邊讀寫設(shè)備(Road Side Unit, RSU)、車載單元(On Board Unit, OBU)、專用短程通信技術(shù)(DSRC)組成,如圖1所示。

圖1 ETC系統(tǒng)組成

DSRC通信協(xié)議遵循開放系統(tǒng)互聯(lián)(Open System Interconnection, OSI)模型,將DSRC協(xié)議分為三層模型,即應(yīng)用層、數(shù)據(jù)鏈路層、物理層。

數(shù)據(jù)鏈路層需要提供向下物理層的接口,同時(shí)也要向上為應(yīng)用層提供服務(wù),為此,數(shù)據(jù)鏈路層需要穩(wěn)定的數(shù)據(jù)傳輸協(xié)議。DSRC中數(shù)據(jù)鏈路層采用高級(jí)數(shù)據(jù)鏈路控制協(xié)議HDLC。HDLC是一種面向比特的高級(jí)鏈路層控制協(xié)議。在通信領(lǐng)域中 , HDLC協(xié)議是應(yīng)用最廣泛的協(xié)議之一,具有強(qiáng)大的差錯(cuò)檢測(cè)、流量控制、高效和同步傳輸?shù)墓δ躘1]。

使用硬件編程語(yǔ)言實(shí)現(xiàn)HDLC協(xié)議是比較理想的方式,相對(duì)于軟件方式實(shí)現(xiàn),有著更快的執(zhí)行速度,更好的時(shí)序同步性;而相對(duì)于使用專用芯片有著更好的靈活性[2]。

1 HDLC協(xié)議

1.1HDLC協(xié)議幀結(jié)構(gòu)

HDLC是面向比特字節(jié)數(shù)據(jù)的傳輸協(xié)議,與其他數(shù)據(jù)鏈路層傳輸協(xié)議相比,HDLC協(xié)議不依賴字符集,且較利于用硬件電路實(shí)現(xiàn)。HDLC協(xié)議以幀格式進(jìn)行數(shù)據(jù)傳輸,數(shù)據(jù)幀格式如表1所示[3]。

表1 HDLC協(xié)議幀結(jié)構(gòu)

HDLC幀格式由如下幾位組成:

前后導(dǎo)碼:其格式均為二進(jìn)制序列01111110(0x7E),前后導(dǎo)碼之間為信息位。如果解碼控制器收到多個(gè)連續(xù)的0x7E,則以最后一個(gè)作為幀的前導(dǎo)碼,表示數(shù)據(jù)起始。解碼控制器在接收的比特?cái)?shù)據(jù)中找到前后導(dǎo)碼,就可以確定兩個(gè)導(dǎo)碼段中間為一幀完整的數(shù)據(jù)。

地址位:用于表示網(wǎng)絡(luò)中發(fā)送或接收該幀的設(shè)備地址。并且用全‘1’即0xFF或者0xFFFF表示廣播地址。

控制位:幀格式根據(jù)控制位的不同,將HDLC幀定義為不同類型的幀。

信息位:所需要傳輸?shù)臄?shù)據(jù)。字段長(zhǎng)度取8 bit的整數(shù)倍。

幀校驗(yàn)位:為保證數(shù)據(jù)的正確性傳輸,HDLC幀校驗(yàn)位采用國(guó)際通行的CRC校驗(yàn),根據(jù)所選的生成多項(xiàng)式,通常是16 bit或者32 bit的校驗(yàn)碼。CRC校驗(yàn)不會(huì)對(duì)幀數(shù)據(jù)內(nèi)容進(jìn)行修改,但是可以通過(guò)校驗(yàn)是否正確來(lái)選擇性接收這一幀數(shù)據(jù)[4]。

1.2‘0’比特插入機(jī)制

在前后導(dǎo)碼之間的比特流數(shù)據(jù)中,如果出現(xiàn)了與前后導(dǎo)碼一樣的0x7E的比特?cái)?shù)據(jù),那么就會(huì)被認(rèn)為是幀的邊界,進(jìn)而使接收的數(shù)據(jù)出錯(cuò)。HDLC協(xié)議使用‘0’比特插入機(jī)制來(lái)避免出現(xiàn)誤檢測(cè)邊界的情況。當(dāng)比特流數(shù)據(jù)中出現(xiàn)連續(xù)的5個(gè)‘1’時(shí),在這5個(gè)‘1’的數(shù)據(jù)之后人為地插入一個(gè)無(wú)效位‘0’。這個(gè)位只在傳輸時(shí)存在,在設(shè)計(jì)HDLC解碼控制器時(shí)需要考慮這個(gè)數(shù)據(jù)‘0’的存在,解碼時(shí)要?jiǎng)h除這個(gè)‘0’位數(shù)據(jù),還原真實(shí)的數(shù)據(jù)流[5]。

1.3CRC校驗(yàn)

HDLC協(xié)議在每一幀數(shù)據(jù)后都加入了幀校驗(yàn)序列,以保證數(shù)據(jù)的正確性傳輸。HDLC采用循環(huán)冗余校驗(yàn)碼(Cyclic Redundancy Check, CRC)。本設(shè)計(jì)中采用CRC-CCITT的生成多項(xiàng)式,即:

P(x)=x16+x15+x5+1

在HDLC協(xié)議中,除了前后導(dǎo)碼和插入的‘0’比特?zé)o效位,所有的信息都要參與CRC校驗(yàn)[6]。

2 HDLC協(xié)議解碼控制器設(shè)計(jì)

如圖2所示,HDLC協(xié)議解碼控制器采用串行結(jié)構(gòu)。

圖2 HDLC協(xié)議解碼器框圖

HDLC解碼模塊在接收了來(lái)自物理層的FM0解碼數(shù)據(jù)后,經(jīng)過(guò)刪除前后導(dǎo)碼、刪‘0’、串并轉(zhuǎn)換、CRC校驗(yàn)、FIFO各個(gè)模塊后完成解碼,將解碼的數(shù)據(jù)存儲(chǔ)在FIFO中,方便外部MCU讀取。

2.1刪除前后導(dǎo)碼模塊

通過(guò)找到連續(xù)的01111110的標(biāo)志字段來(lái)判斷數(shù)據(jù)的開始與結(jié)束,接收機(jī)只有在前導(dǎo)碼和后導(dǎo)碼中處理有效的數(shù)據(jù)。并且接收機(jī)會(huì)將01111110的前后導(dǎo)碼和不是前后導(dǎo)碼中的有效數(shù)據(jù)都刪除,以防止在后面的刪0模塊中誤檢測(cè)到連續(xù)的5個(gè)“1”后將后導(dǎo)碼刪除[7]。

如圖3所示,刪除前后導(dǎo)碼模塊通過(guò)一個(gè)標(biāo)志位flag來(lái)標(biāo)志數(shù)據(jù)是否有效,初始狀態(tài)標(biāo)志位為0,當(dāng)檢測(cè)到輸出了01111110(0x7E)時(shí),將標(biāo)志位翻轉(zhuǎn)為1;再次檢測(cè)到01111110(0x7E)時(shí)將標(biāo)志位翻轉(zhuǎn)為0,在標(biāo)志位為1時(shí)其中的數(shù)據(jù)就是后續(xù)電路需要的有效數(shù)據(jù),并用data_start表示有效數(shù)據(jù)段。data_start位寄存器和數(shù)據(jù)位一起傳入后面待處理的模塊,用于標(biāo)志數(shù)據(jù)流中的有效數(shù)據(jù)[8]。

圖3 刪除前后導(dǎo)碼流程圖

2.2‘0’比特刪除模塊實(shí)現(xiàn)

HDLC數(shù)據(jù)中除了前后導(dǎo)碼中會(huì)出現(xiàn)連續(xù)的6個(gè)1,在HDLC編碼中一幀數(shù)據(jù)的有效數(shù)據(jù)中如果出現(xiàn)連續(xù)的5個(gè)1,則不管后面的數(shù)據(jù)是0還是1都在連續(xù)的5個(gè)1之后插入一個(gè)0以區(qū)別前后導(dǎo)碼。所以在接收機(jī)中要通過(guò)判斷有效數(shù)據(jù)中是否出現(xiàn)連續(xù)的5個(gè)1并且刪除掉連續(xù)5個(gè)1以后的一個(gè)0[9]。

刪除串行數(shù)據(jù)中的0會(huì)導(dǎo)致串行數(shù)據(jù)提前:當(dāng)前的數(shù)據(jù)是0并且將其刪除了,但是下一位的數(shù)據(jù)并沒(méi)有來(lái)到。為了解決這個(gè)問(wèn)題,可以設(shè)計(jì)一個(gè)足夠長(zhǎng)的FIFO來(lái)緩存接收到的串行數(shù)據(jù),在檢測(cè)到刪0條件滿足時(shí)就停止一位FIFO的輸入,但是由于信息域長(zhǎng)度不可知,有效數(shù)據(jù)中有多少個(gè)需要?jiǎng)h除的0并不知道,F(xiàn)IFO的大小難以確定,太小的FIFO會(huì)造成數(shù)據(jù)的丟失和出錯(cuò),太大的FIFO會(huì)造成過(guò)大的時(shí)鐘延遲,所以用FIFO緩存不是一個(gè)理想的方案。

1 bit的串行數(shù)據(jù)需要通過(guò)串并轉(zhuǎn)換模塊轉(zhuǎn)換為8 bit的并行數(shù)據(jù),以方便后續(xù)CRC校驗(yàn)和FIFO緩存電路使用。串并轉(zhuǎn)換的模塊通過(guò)連續(xù)的8個(gè)D觸發(fā)器實(shí)現(xiàn),時(shí)鐘上是通過(guò)計(jì)數(shù)器進(jìn)行8分頻實(shí)現(xiàn)。如圖4所示,結(jié)合串并轉(zhuǎn)換模塊,可以在串并轉(zhuǎn)換的同時(shí)利用D觸發(fā)器的可以緩存數(shù)據(jù)的特性進(jìn)行刪0模塊中數(shù)據(jù)的“提前”。用并行數(shù)據(jù)的低5位與0x1F做比較,如果相同就產(chǎn)生一個(gè)脈沖信號(hào)給用于時(shí)鐘分頻的計(jì)數(shù)器,這個(gè)脈沖信號(hào)可以給串并轉(zhuǎn)換模塊的計(jì)數(shù)器一個(gè)暫停的信號(hào),使得計(jì)數(shù)器停止一個(gè)時(shí)鐘周期的計(jì)數(shù),并且用于輸出的D觸發(fā)器不儲(chǔ)存當(dāng)前的輸入值,即要被刪除的0數(shù)據(jù)。這樣就可以達(dá)到刪0的目的。

圖4 刪‘0’模塊框圖

假設(shè)一幀數(shù)據(jù)中有效的數(shù)據(jù)一共有nbit,無(wú)效的‘0’位數(shù)據(jù)有mbit,一個(gè)時(shí)鐘周期時(shí)間為t,電路本身造成的其他延遲為T。則采用FIFO緩存實(shí)現(xiàn)‘0’比特刪除模塊時(shí)產(chǎn)生的時(shí)間延遲為:

而采用與串并轉(zhuǎn)換結(jié)合的方式實(shí)現(xiàn)‘0’比特刪除模塊時(shí)產(chǎn)生的時(shí)間延遲為:

T2=T+m×t

當(dāng)且僅當(dāng)n=5×m時(shí),T1=T2,即比特率數(shù)據(jù)的有效位全為1時(shí),兩者的延遲相等。然而實(shí)際情況中一幀數(shù)據(jù)幾

乎不可能出現(xiàn)全1的情況,即在絕大部分的情況下T1>T2。

2.3CRC模塊實(shí)現(xiàn)

串行CRC校驗(yàn)實(shí)現(xiàn)較為簡(jiǎn)單,但是處理速度相對(duì)較慢,所以本設(shè)計(jì)中采用并行CRC校驗(yàn),能夠在一個(gè)時(shí)鐘周期內(nèi)完成數(shù)據(jù)CRC校驗(yàn)。并行CRC校驗(yàn)原理與串行CRC相同,由于CRC各個(gè)位之間可以獨(dú)立運(yùn)算,并行的CRC輸入可以在一個(gè)時(shí)鐘周期中完成1 B的CRC校驗(yàn),這樣的效果與串行CRC校驗(yàn)的結(jié)果是相同的,但是相比串行CRC實(shí)現(xiàn)延遲能夠減少8倍。對(duì)于生成多項(xiàng)式為gx=x16+x12+x5+1,其移位寄存器如圖5所示。

3 仿真結(jié)果與分析

本文采用modelsim SE 10.0a 進(jìn)行電路仿真,編寫testbench文件進(jìn)行仿真,模擬輸入已編碼的字符串0x ECF9ECF91932,其中0x32為CRC校驗(yàn)碼。

3.1刪除前后導(dǎo)碼模塊仿真結(jié)果

如圖6所示,data_in是數(shù)據(jù)輸入端,data_out是數(shù)據(jù)輸出端,data_start表示數(shù)據(jù)的有效位。在除去前后導(dǎo)碼后,data_out相比data_in延遲8個(gè)串行時(shí)鐘周期。則刪除前后導(dǎo)碼模塊的延遲為:

T1=16t

3.2‘0’比特刪除模塊

如圖7所示,data_in是串行數(shù)據(jù)輸入端,data_out是并行數(shù)據(jù)輸出端,counter是串并轉(zhuǎn)換用于時(shí)鐘分頻的計(jì)數(shù)器,如圖中圈出delete_on是發(fā)生‘0’刪時(shí)候的標(biāo)志。當(dāng)發(fā)生‘0’刪事件的時(shí)鐘,counter會(huì)停止計(jì)數(shù),略過(guò)這一位,同時(shí)并行時(shí)鐘輸出端也會(huì)相應(yīng)地延遲??偟难舆t周期為:T2=11t。

圖5 CRC移位寄存器示意圖

圖6 刪除導(dǎo)碼電路仿真結(jié)果

圖7 ‘0’比特刪除模塊仿真結(jié)果

3.3CRC校驗(yàn)?zāi)K

如圖8所示,data_in是數(shù)據(jù)輸入端,data_out是數(shù)據(jù)輸出端,通過(guò)CRC校驗(yàn)?zāi)K以后data_out與data_in相比減少了后8位的校驗(yàn)碼,并且crc_right被置高,表示CRC校驗(yàn)正確,會(huì)被寫入后續(xù)的FIFO中。CRC模塊占用一個(gè)并行周期:T3=8t。

圖8 CRC校驗(yàn)仿真結(jié)果

3.4仿真結(jié)果分析

通過(guò)解碼電路,能夠在FIFO輸入端 rd_data 讀取到解碼后正確的并行數(shù)據(jù)0x ECF9ECF919。在使用256 kHz時(shí)鐘時(shí),一個(gè)時(shí)鐘周期約為t=3.9 μs,因?yàn)镕IFO的讀取還占用了2個(gè)并行時(shí)鐘周期,所以解碼一共用時(shí)T=51 t個(gè)時(shí)鐘周期,整個(gè)解碼所占用時(shí)鐘約為51×3.9 μs=199 μs。

4 結(jié)論

本文介紹了HDLC協(xié)議的原理,重點(diǎn)分析了HDLC中刪‘0’模塊,CRC校驗(yàn)?zāi)K的原理和設(shè)計(jì)實(shí)現(xiàn)。并且使用modelsim 仿真設(shè)計(jì)模塊,驗(yàn)證了電路功能正確。并且能夠在0.2 ms的時(shí)間內(nèi)完成解碼工作。

[1] 應(yīng)三叢, 張行. 基于FPGA的HDLC協(xié)議控制器[J]. 四川大學(xué)學(xué)報(bào)(工程科學(xué)版), 2008, 40(3):116-120.

[2] 李曉娟, 黃翌. 基于FPGA的HDLC設(shè)計(jì)實(shí)現(xiàn)[J]. 現(xiàn)代電子技術(shù), 2007, 30(6):35-37.

[3] LI G, TAN N. Design and implementation of HDLC protocol and manchester encoding based on FPGA in train communication network[C]. Third International Conference on Information and Computing. IEEE Computer Society, 2010:105-108.

[4] NAGPURWALA A H, SUNDARESAN C, CHAITANYA C. Implementation of HDLC controller design using verilog HDL[C]. International Conference on Electrical, Electronics and System Engineering. IEEE, 2013: 7-10.

[5] 邱婷. 電子不停車收費(fèi)系統(tǒng)基帶電路的設(shè)計(jì)與實(shí)現(xiàn)[D]. 南京:南京理工大學(xué), 2009.

[6] GB/T 20851.1-2007[S]. 電子收費(fèi) 專用短程通信 第1部分:物理層.2007.

[7] GB/T 20851.2-2007[S]. 電子收費(fèi) 專用短程通信 第2部分:數(shù)據(jù)鏈路層.2007.

[8] 賈輝. HDLC幀收發(fā)器在TDM/以太網(wǎng)接口電路中的應(yīng)用[D]. 成都:西南交通大學(xué), 2013.

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

Verilog HDL implementation of HDLC protocol decoding controller in ETC system

Deng Changsheng1,2, Liu Yu1,2, Li Haiyang1, Wang Xiaosong1, Zhang Haiying1,2

(1. Beijing Key Laboratory of Radio Frequency IC Technology for Next Generation Communications,Institute of Microelectronics of Chinese Academy of Sciences, Beijing 100029, China;2. School of Microelectronics, University of Chinese Academy of Sciences, Beijing 100049, China)

Electronic toll collection system is the most effective way to solve the current traffic problem. In order to uniform the standard of ETC, China has developed the national standard for Dedicated Short Range Communications (DSRC). The DSRC data link layer uses a High-Level Data Link Control protocol developed by the International Organization(ISO). This paper follows the standard specification of dedicated short range communication protocol data link layer, and implements a HDLC decoding circuit based on serial pipeline structure using hardware description language Verilog HDL, and focuses on the 0-bit delete module and CRC module for designing a shorter delay circuit. When the decoding clock is 256 kHz, decoding and reading can be completed within 0.2 ms.

ETC; DSRC; HDLC; Verilog HDL; CRC

TN92

A

10.19358/j.issn.1674- 7720.2017.19.009

鄧昌晟,劉昱,李海洋,等.ETC系統(tǒng)中HDLC協(xié)議解碼控制器的verilog HDL實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2017,36(19):30-33.

2017-03-28)

鄧昌晟(1993-),男,碩士研究生,主要研究方向:數(shù)字電路設(shè)計(jì)。劉昱(1975-),男,博士,研究員,主要研究方向:射頻集成電路。

猜你喜歡
鏈路層解碼校驗(yàn)
《解碼萬(wàn)噸站》
使用Excel朗讀功能校驗(yàn)工作表中的數(shù)據(jù)
基于多空間內(nèi)存共享的數(shù)據(jù)鏈路層網(wǎng)絡(luò)包捕獲方法
衛(wèi)星網(wǎng)絡(luò)中的TCP 跨層技術(shù)研究
一種基于PCI接口的1394B總線的設(shè)計(jì)與實(shí)現(xiàn)
解碼eUCP2.0
NAD C368解碼/放大器一體機(jī)
Quad(國(guó)都)Vena解碼/放大器一體機(jī)
爐溫均勻性校驗(yàn)在鑄鍛企業(yè)的應(yīng)用
電子式互感器校驗(yàn)方式研究