并行crc邏輯電路的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
并行crc邏輯電路的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
并行crc邏輯電路的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
并行crc邏輯電路的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

并行crc邏輯電路的設(shè)計(jì)與實(shí)現(xiàn)

電子能源傳感器是能源系統(tǒng)中的重要設(shè)備。研究它與自動(dòng)變電站系統(tǒng)的接口和通信,對(duì)變電站數(shù)字化非常重要。目前,對(duì)于電子式電流互感器的研制工作已向?qū)嵱没A段發(fā)展。國(guó)際電工委員會(huì)(IEC)已經(jīng)制定出電子式電流互感器標(biāo)準(zhǔn):IEC60044-8,對(duì)電子式電流互感器的數(shù)字輸出作出了統(tǒng)一規(guī)范。1iec60044-8鏈路層規(guī)則介紹IEC60044-8標(biāo)準(zhǔn)中的鏈路層幀格式采用的是FT3幀格式,此格式在IEC60870-5-1中有所規(guī)定,如下所示。2數(shù)據(jù)的傳輸過(guò)程新型變電站的結(jié)構(gòu)一般包括3層,即過(guò)程層、間隔層和變電站層,電流/電壓互感器屬于過(guò)程層。電子式電流互感器保護(hù)和測(cè)量的數(shù)據(jù)應(yīng)按照FT3幀格式傳輸,傳輸速度為2.5Mbit/s,用曼徹斯特碼傳輸,傳輸中應(yīng)保證實(shí)時(shí)性和準(zhǔn)確性。在過(guò)程層首先經(jīng)過(guò)數(shù)字信號(hào)處理模塊完成對(duì)接收到的采樣數(shù)據(jù)的抽取濾波,接下來(lái)便是按照IEC60044-8規(guī)約的要求對(duì)抽取濾波后的數(shù)據(jù)組幀編碼,加入額定電流、電壓、延遲以及狀態(tài)碼等。鏈路層的設(shè)計(jì)只要將數(shù)據(jù)加上幀頭、循環(huán)冗余校驗(yàn)CRC(CyclicRedundancyCheck)碼完成組幀,然后在物理層將數(shù)據(jù)進(jìn)行曼徹斯特編碼即可。編碼后的數(shù)據(jù)經(jīng)過(guò)E/O變換后通過(guò)光纖高速傳輸,發(fā)送至間隔層。數(shù)據(jù)組幀編碼總體的設(shè)計(jì)如圖1所示,下面將對(duì)CRC校驗(yàn)碼和曼徹斯特編碼的概念和實(shí)現(xiàn)方法加以介紹。3數(shù)據(jù)比特序列的接收方編碼為了確保數(shù)據(jù)的可靠傳輸,需要在數(shù)據(jù)鏈路中加入差錯(cuò)檢測(cè)碼。CRC碼是在嚴(yán)密的代數(shù)學(xué)理論基礎(chǔ)上建立的,以其實(shí)現(xiàn)簡(jiǎn)單、抗干擾能力強(qiáng)而得到廣泛應(yīng)用,IEC600448-8標(biāo)準(zhǔn)中便是使用CRC校驗(yàn)碼進(jìn)行差錯(cuò)檢測(cè)和控制的。采用CRC校驗(yàn)時(shí),發(fā)送方和接收方預(yù)先約定一個(gè)生成多項(xiàng)式G(x),該生成多項(xiàng)式作為除數(shù)多項(xiàng)式(IEC60044-8中所規(guī)定的生成多項(xiàng)式G(x)為x16+x13+x12+x11+x10+x8+x6+x5+x2+1),將要發(fā)送的數(shù)據(jù)比特序列作為一個(gè)多項(xiàng)式f(x)的系數(shù),該多項(xiàng)式為被除多項(xiàng)式,用G(x)除f(x)得到一個(gè)余數(shù)多項(xiàng)式,該余數(shù)多項(xiàng)式的系數(shù)即構(gòu)成了數(shù)據(jù)比特序列的CRC校驗(yàn)碼,將它添加到數(shù)據(jù)序列之后一起發(fā)送到接收方。接收方同樣將接收到的數(shù)據(jù)看成是一個(gè)多項(xiàng)式的系數(shù),并用相同的生成多項(xiàng)式除該多項(xiàng)式,若得到的余數(shù)為0,表示傳輸過(guò)程無(wú)差錯(cuò),否則表示出錯(cuò)。發(fā)送方編碼過(guò)程如下:首先,將待發(fā)送數(shù)據(jù)多項(xiàng)式f(x)乘以xk,其中k為生成多項(xiàng)式G(x)的最高冪次,本文中k=16,對(duì)于二進(jìn)制乘法,f(x)x16意味著將f(x)對(duì)應(yīng)的發(fā)送比特序列左移16位。其次,用G(x)去除以上乘積,可得到f(x)x16/G(x)=Q(x)+R(x)/G(x),式中Q(x)為商,R(x)為余數(shù)多項(xiàng)式。由于不帶進(jìn)(借)位的模2運(yùn)算加減法是等同的,就有f(x)x16+R(x)=G(x)Q(x)。最后,令M(x)=f(x)x16+R(x),將M(x)所對(duì)應(yīng)的比特序列作為一個(gè)整體發(fā)送。接收方校驗(yàn)時(shí),對(duì)接收序列所對(duì)應(yīng)的多項(xiàng)式M′(x)作如下處理:計(jì)算M′(x)/G(x),若M′(x)÷G(x)=Q(x),余數(shù)為0,則M′(x)=M(x),認(rèn)為傳輸正確;若M′(x)/G(x)余數(shù)不為0,則認(rèn)為傳輸有錯(cuò)。4系統(tǒng)整體設(shè)計(jì)隨著大規(guī)模集成電路的發(fā)展,基于EDA(ElectronicDesignAutomation)技術(shù)的可編程邏輯器件的出現(xiàn),解決了傳統(tǒng)數(shù)字電路設(shè)計(jì)中所遇到的問(wèn)題,它具有編程方式簡(jiǎn)便、速度快、可靠性高、功能強(qiáng)大和開(kāi)發(fā)便捷的優(yōu)點(diǎn)。本系統(tǒng)采用Altera公司生產(chǎn)的EPF10K70RC240-2芯片,EPF10K70RC240-2屬于FLEX10K系列現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA),它具有70000個(gè)典型門(mén),器件內(nèi)部具有3744個(gè)邏輯單元(LE),足以實(shí)現(xiàn)大規(guī)模的復(fù)雜邏輯。開(kāi)發(fā)軟件采用MAX+PlusⅡ,利用VHDL(VeryHighspeedintegratedcircuithardwareDescriptionLanguage)語(yǔ)言編程,可方便地實(shí)現(xiàn)各種數(shù)字邏輯功能。CRC編碼涉及到模2運(yùn)算,根本上可歸結(jié)為數(shù)字信號(hào)的移位和異或操作,因此,可以通過(guò)數(shù)字邏輯實(shí)現(xiàn)。為了有所比較,首先給出CRC校驗(yàn)碼的串行實(shí)現(xiàn),然后,在串行實(shí)現(xiàn)的基礎(chǔ)上,通過(guò)公式遞推,設(shè)計(jì)出并行運(yùn)算的邏輯電路并在FPGA上加以實(shí)現(xiàn)。4.1循環(huán)冗余校驗(yàn)碼的實(shí)現(xiàn)串行編碼方式結(jié)構(gòu)簡(jiǎn)單易于實(shí)現(xiàn),根據(jù)生成多項(xiàng)式畫(huà)出的電路結(jié)構(gòu)如圖2所示,整個(gè)電路由線性反饋移位寄存器(LFSR)和異或門(mén)組成。由圖可見(jiàn),串行計(jì)算時(shí),每次輸入1位數(shù)據(jù),輸入數(shù)據(jù)和上次異或運(yùn)算的結(jié)果組成新數(shù)據(jù),循環(huán)進(jìn)行異或運(yùn)算,直到所有數(shù)據(jù)都已經(jīng)輸入,這時(shí)移位寄存器中的狀態(tài)值即為輸入數(shù)據(jù)的循環(huán)冗余校驗(yàn)碼。使用VHDL語(yǔ)言編程,通過(guò)編譯、仿真,實(shí)現(xiàn)了串行編碼的功能。IEC60044-8鏈路層規(guī)定16個(gè)字節(jié)的數(shù)據(jù)碼之后跟隨16位的校驗(yàn)碼,這里串行輸入的16個(gè)字節(jié)的數(shù)據(jù)碼。采用十六進(jìn)制表示為B16A13D230E603106460F03C1DC045C7。仿真過(guò)程中時(shí)鐘周期設(shè)定為100ns,系統(tǒng)復(fù)位時(shí),寄存器置零。通過(guò)觀察仿真波形可知,16個(gè)字節(jié)的數(shù)據(jù)碼逐位輸入之后,生成的校驗(yàn)碼為6909H,編碼時(shí)間為128個(gè)時(shí)鐘周期。4.2并行crc編碼的邏輯關(guān)系目前,CRC并行運(yùn)算大多是查表法及基于查表法而導(dǎo)出的一些方法。這些方法均需要存儲(chǔ)長(zhǎng)度較大的CRC余數(shù)表,靈活性和快速性都不高。從圖2可看出,各移位寄存器的狀態(tài)值即為CRC余數(shù)值,當(dāng)串行運(yùn)算時(shí),當(dāng)前的CRC余數(shù)值只與數(shù)據(jù)碼的當(dāng)前1位的輸入值和前1狀態(tài)的余數(shù)值有關(guān)。可以推斷,在進(jìn)行8位并行運(yùn)算時(shí),8位數(shù)據(jù)碼同時(shí)輸入并行運(yùn)算電路所產(chǎn)生的CRC余數(shù)應(yīng)該與串行運(yùn)算時(shí)連續(xù)8位數(shù)據(jù)碼逐位輸入,串行運(yùn)算電路所產(chǎn)生的CRC余數(shù)完全相同。根據(jù)這一思想,可以從圖2的串行運(yùn)算電路推導(dǎo)出并行運(yùn)算的邏輯關(guān)系。設(shè)rij、dj(i=0,1,2,…,15;j=1,2,…,8)分別表示移位寄存器狀態(tài)值和數(shù)據(jù)碼輸入序列,其中ri8(i=0,1,2,…,15)為寄存器i在本次8位數(shù)據(jù)碼依次輸入串行運(yùn)算電路后的狀態(tài)值,ri0(i=0,1,2,…,15)為寄存器i在本次8位數(shù)據(jù)碼輸入串行運(yùn)算電路前的狀態(tài)值。“茌”表示異或運(yùn)算。同理,可以推算出其余15個(gè)寄存器在本次8位數(shù)據(jù)碼依次輸入串行運(yùn)算電路后的狀態(tài)值,計(jì)算結(jié)果如下:可見(jiàn),本次CRC值只與本次輸入的8位數(shù)據(jù)碼以及本次數(shù)據(jù)輸入前寄存器的CRC余數(shù)值有關(guān),由此可以建立起8位CRC并行運(yùn)算的邏輯電路,原理如圖3所示。使用VHDL語(yǔ)言編程,通過(guò)編譯、仿真,實(shí)現(xiàn)了8位并行CRC編碼的功能。為了與前面的串行電路相比較,16個(gè)字節(jié)的輸入數(shù)據(jù)碼與串行輸入的數(shù)據(jù)碼相同。同樣,設(shè)定時(shí)鐘周期為100ns,第1個(gè)時(shí)鐘周期內(nèi)系統(tǒng)處于復(fù)位狀態(tài),寄存器置零。第2個(gè)時(shí)鐘周期開(kāi)始輸入并行數(shù)據(jù),8位并行數(shù)據(jù)碼與寄存器初始值按照前面推導(dǎo)出的邏輯關(guān)系進(jìn)行異或運(yùn)算,所得16位CRC余數(shù)值存入寄存器,供下次并行運(yùn)算使用。當(dāng)下一組8位數(shù)據(jù)來(lái)臨時(shí),再將8位數(shù)據(jù)與寄存器當(dāng)前的余數(shù)值進(jìn)行異或運(yùn)算,所得新余數(shù)存入寄存器。依此類(lèi)推,當(dāng)16個(gè)字節(jié)的數(shù)據(jù)碼全部輸入完畢,生成的校驗(yàn)碼為6909H,這與串行編碼的結(jié)果保持一致。實(shí)際上,通過(guò)對(duì)前面串行編碼仿真波形的觀察,可以看出從第1位輸入數(shù)據(jù)碼開(kāi)始,每8位數(shù)據(jù)碼串行輸入后所產(chǎn)生CRC余數(shù)值都與這里并行編碼仿真波形中的相對(duì)應(yīng)部分完全一致,從而進(jìn)一步證實(shí)了并行實(shí)現(xiàn)的可靠性和正確性。同時(shí),這里編碼只用了16個(gè)時(shí)鐘周期,是串行編碼所需時(shí)間的1/8,滿(mǎn)足了電力通信快速性的要求,優(yōu)勢(shì)十分明顯。5不同信號(hào)的輸出信號(hào)轉(zhuǎn)換曼徹斯特碼又稱(chēng)數(shù)字雙相碼,是一種時(shí)鐘自同步編碼技術(shù),每個(gè)二進(jìn)制碼分別利用2個(gè)具有不同相位的二進(jìn)制新碼所取代的碼。編碼規(guī)則之一是:在每個(gè)數(shù)據(jù)碼元間隔的中間以下降沿代表數(shù)據(jù)“1”,上升沿代表數(shù)據(jù)“0”。時(shí)鐘(CLK)、數(shù)據(jù)和曼徹斯特碼的波形關(guān)系如圖4所示。對(duì)于二進(jìn)制通信,代表“0”碼與“1”碼的2個(gè)信號(hào)波形間的相關(guān)系數(shù)越小,則判決錯(cuò)誤的概率越小。曼徹斯特碼代表“0”碼與“1”碼的信號(hào)相關(guān)系數(shù)為-1,因而收端判決比較容易,錯(cuò)誤的概率很小。曼徹斯特碼的編碼過(guò)程相對(duì)解碼較為簡(jiǎn)單,從圖4中看出只要將NRZ碼與時(shí)鐘信號(hào)異或倒相即可得到曼徹斯特碼。不過(guò)由于數(shù)據(jù)和CLK的位置不完全一致,而且數(shù)據(jù)信號(hào)的上升沿和下降沿的不理想,可能會(huì)產(chǎn)生尖峰脈沖,使輸出信號(hào)出現(xiàn)毛刺,這在實(shí)際中是需要考慮的。如圖5所示,本文采用改進(jìn)后的電路,將NRZ信號(hào)與CLK異或非后,還要用一個(gè)2倍時(shí)鐘頻率的信號(hào)通過(guò)D觸發(fā)器整形。由于在2倍時(shí)鐘之后使用了非門(mén),所以是采用時(shí)鐘的下降沿去取樣編碼后的數(shù)據(jù),即可有效地消除毛刺信號(hào)。仿真結(jié)果表明,所設(shè)計(jì)的電路能夠?qū)崿F(xiàn)對(duì)信號(hào)的正確編碼。6并行設(shè)計(jì)過(guò)程按照IEC60044-8標(biāo)準(zhǔn)的要求,本文設(shè)計(jì)了電子式電流互感器數(shù)字輸出編碼模塊,介紹了CRC校驗(yàn)碼的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論