




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于FPGA的并行CRC算法的UART控制器摘要:基于串行異步收發(fā)器(UART)的通信中經(jīng)常用到循環(huán)冗余校驗(yàn)(CRC),常見的CRC校驗(yàn)電路多為串行校驗(yàn),校驗(yàn)所需時鐘周期較多,基于查找表或輸入矩陣轉(zhuǎn)換的并行算法,需要存儲余數(shù)表,占用大量的硬件資源。該文利用輸入和校驗(yàn)多項式的邏輯關(guān)系,成功地將基于字節(jié)的并行CRC校驗(yàn)算法運(yùn)用于UART控制器中,在Xilinx公司的可編程門陣列(FPGA)芯片上驗(yàn)證通過,可實(shí)現(xiàn)連續(xù)多個字節(jié)校驗(yàn)。校驗(yàn)一個bit需要1/8時鐘周期,降低了校驗(yàn)所需時鐘頻率,提高了通信的效率,保證了通信的可靠性。UART廣泛應(yīng)用于工業(yè)通信控制領(lǐng)域。在通信過程中經(jīng)常需要在數(shù)據(jù)末尾加入CRC校驗(yàn)碼,保證數(shù)據(jù)傳輸?shù)目煽啃?。CRC校驗(yàn)碼是一種有效但很簡單的編碼技術(shù),由于其檢出概率高和易于硬件實(shí)現(xiàn),在移動通信、計算機(jī)、USB等領(lǐng)域得到了廣泛應(yīng)用,傳統(tǒng)的硬件實(shí)現(xiàn)方式是采用串行移位的方式對接收到的每個bit依次進(jìn)行校驗(yàn),校驗(yàn)每個bit需要8個時鐘周期。CRC校驗(yàn)的并行算法有查找表法和基于查找表法而導(dǎo)出的一些方法,但這些方法均需要存儲長度較大的CRC余數(shù)表,其性能較低。直接利用輸入字節(jié)數(shù)據(jù)和多項式的邏輯關(guān)系,推導(dǎo)出CRC的邏輯表達(dá)式,方法直接、簡潔[2]。將并行字節(jié)CRC校驗(yàn)機(jī)制引入到基于UART的數(shù)據(jù)通信中,實(shí)現(xiàn)了基于字節(jié)的CRC并行校驗(yàn),校驗(yàn)每個bit需要1/8時鐘周期。目前此方案已成功運(yùn)用于采集和監(jiān)控系統(tǒng)中。1CRC校驗(yàn)原理2基于字節(jié)CRC-16并行校驗(yàn)算法的實(shí)現(xiàn)步驟CRC并行算法是由LFSR(線性反饋移位寄存器)推導(dǎo)出來的。其基本原理如下:
再次,確定電路形式,將CRC多項式根據(jù)LFSR(線性反饋移位寄存器)轉(zhuǎn)換成電路轉(zhuǎn)移圖形式[3]。如圖1所示。
最后,代入輸入數(shù)據(jù),對每一位引入寄存器,依次將數(shù)據(jù)中的每一位引入到LFSR的輸入端,最終得出所有位輸入后,CRC結(jié)果中每一位的邏輯表達(dá)式,即:表達(dá)式。3UART控制器異步通信有如下特點(diǎn):字符幀的傳輸格式使發(fā)送方在字符之間可按應(yīng)用要求插入不同的時間間隔,即每一個字符的發(fā)送是隨機(jī)的,這是異步通信的主要特點(diǎn)[4]。每一個字符的傳輸開始總是以一個起始位為準(zhǔn),然后接收方與發(fā)送方保持同步(格式的統(tǒng)一)。通信雙方可按應(yīng)用需要隨時改變通信協(xié)議,即改變數(shù)據(jù)位、奇偶校驗(yàn)位和停止位長度和數(shù)據(jù)傳輸率。在異步通信的數(shù)據(jù)流中,一個字符看作一個獨(dú)立的信息單元,并且字符出現(xiàn)在數(shù)據(jù)流中的相對時間是任意的,接收端預(yù)先并不知道,每個字符一經(jīng)發(fā)送,收發(fā)雙方則以預(yù)先固定的時鐘速率傳送各位。因此,要有效進(jìn)行異步通信,在CPU與外設(shè)通信之前,必須統(tǒng)一字符格式和波特率。
由上式可以看出,不考慮FPGA芯片內(nèi)時鐘的建立和保持時間和傳輸過程所受的干擾,當(dāng)n一定時,波特率越高,位周期誤差越小,累計誤差越小,數(shù)據(jù)傳輸?shù)某鲥e率越小。Rxd(輸入引腳)從‘1’變?yōu)椤?’代表了起始位,為了消除毛刺的干擾,一般采用16次過采樣的方法,保證正確接收每一位數(shù)據(jù),將每一位數(shù)據(jù)的中間采樣作為采樣結(jié)果,可以把后續(xù)數(shù)據(jù)位檢測的累計誤差降到最小。因此,計數(shù)到8時標(biāo)志起始位的中心,每隔16個采集周期采集一次數(shù)據(jù),直到所有數(shù)據(jù)位采集完成,最后檢測停止位,隨后輸出接收完成標(biāo)志脈沖。軟件流程圖如圖2所示。3.2發(fā)送模塊發(fā)送模塊的時鐘頻率即波特率時鐘周期,發(fā)送模塊無需考慮時鐘誤差問題,只需按照發(fā)送周期將每一位發(fā)送出去,為了使發(fā)送器每次發(fā)送一個字節(jié),采用了上升沿觸發(fā)啟動發(fā)送任務(wù),發(fā)送完一幀后自動停止,因此,當(dāng)檢測到發(fā)送使能引腳上升沿時,在發(fā)送時鐘驅(qū)動依次輸出開始位、數(shù)據(jù)位和停止位。軟件控制流程如圖3所示。3.3總體控制讀寫控制模塊是兩個獨(dú)立的控制模塊,但是在本系統(tǒng)中是半雙工模式,即收到命令幀時再根據(jù)協(xié)議內(nèi)容發(fā)送數(shù)據(jù),通過信號機(jī)制實(shí)現(xiàn)兩個模塊進(jìn)程的相互通信,設(shè)trans_over為發(fā)送的狀態(tài)信號,receive_over為接受的狀態(tài)信號,接收模塊先處于工作狀態(tài),當(dāng)接收完一幀數(shù)據(jù)時receive_over置‘1’并等待發(fā)送模塊發(fā)送完成后trans_over置‘1’,發(fā)送模塊首先將trans_over置‘0’,等待receive_over置‘1’,發(fā)送完數(shù)據(jù)后trans_over置‘1’并且等待receive_over置‘0’。通過這兩個信號,協(xié)調(diào)發(fā)送和接收模塊的工作。4實(shí)驗(yàn)結(jié)果4.1軟件波形仿真實(shí)驗(yàn)以Xilinx公司的XC3S400為FPGA芯片,實(shí)驗(yàn)數(shù)據(jù)和功能仿真波形如圖4所示,串口波特率為9600,8bits數(shù)據(jù)位,無校驗(yàn)位,1個停止位。起始位,停止位不參與CRC校驗(yàn)。為了與實(shí)際中多數(shù)的上層協(xié)議軟件版本的CRC-16校驗(yàn)保持一致,將輸入數(shù)據(jù)先進(jìn)行反轉(zhuǎn),復(fù)位時寄存器的值都置為‘1’;接收時CRC字節(jié)參與校驗(yàn),通過判斷結(jié)果是否為0x0000確定數(shù)據(jù)傳輸是否正確。發(fā)送時先發(fā)送CRC的低8位,再發(fā)送高8位。發(fā)送過程中本文采用將CRC結(jié)果也參與校驗(yàn),發(fā)送完數(shù)據(jù)后直接發(fā)送兩次CRC結(jié)果的低8位,實(shí)現(xiàn)了高8位和低8位自動交換。4.2硬件測試結(jié)果將程序下載到FPGA芯片中進(jìn)行測試,采用PC端串口控制軟件進(jìn)行UART通信實(shí)驗(yàn),其部分?jǐn)?shù)據(jù)如圖5所示。硬件電路的核心板為XC3S400(TQ144封裝),串口芯片采用Max3232,基本的協(xié)議是如果接收的數(shù)據(jù)校驗(yàn)正確返回相應(yīng)字節(jié)長度的數(shù)據(jù),本例中0x01,0x03為幀頭,0x00,0x01是地址,0x00,0x06為數(shù)據(jù)長度。經(jīng)過重復(fù)實(shí)驗(yàn),收發(fā)系統(tǒng)保持了非常高的傳輸可靠性。標(biāo)志脈沖延遲輸出:當(dāng)接收一個字節(jié)數(shù)據(jù)完成時,如果數(shù)據(jù)的鎖存和標(biāo)志脈沖同步,那么第一個校驗(yàn)的字節(jié)是空閑時的CRC-16模塊輸入端數(shù)據(jù),因此為了保持每一次校驗(yàn)都是本次接收到的數(shù)據(jù),CRC校驗(yàn)接收完成標(biāo)志正脈沖應(yīng)該稍有延時,這樣數(shù)據(jù)先更新,校驗(yàn)脈沖緊隨其后,保證了CRC-16模塊連續(xù)字節(jié)數(shù)據(jù)輸入校驗(yàn)的正確。本文采用將標(biāo)志正脈沖通過一個D觸發(fā)器,實(shí)現(xiàn)了脈沖的延時輸出。4.3軟件仿真與硬件實(shí)測結(jié)果分析通過圖4和圖5可看出,仿真的結(jié)果與實(shí)測結(jié)果相同,說明基于FPGA實(shí)現(xiàn)的并行CRC算法的UART控制器,數(shù)據(jù)傳輸正確,達(dá)到了設(shè)計的目的。5結(jié)語在進(jìn)行較多的數(shù)據(jù)傳輸時
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度車間租賃安全風(fēng)險評估與管理協(xié)議
- 2025年度股份代持及公司知識產(chǎn)權(quán)保護(hù)協(xié)議
- 2025年度高校與企事業(yè)單位實(shí)習(xí)生勞動合同范本
- 2025年度綠色出行眾籌協(xié)議書標(biāo)準(zhǔn)范本
- 二零二五年度個人股權(quán)無償轉(zhuǎn)讓與品牌推廣協(xié)議
- 二零二五年度美縫劑性能改進(jìn)與三年質(zhì)保服務(wù)協(xié)議
- Unit 4 Did You Have a Nice Trip?Lesson 22 Gifts for Everyone同步練習(xí)(含答案含聽力原文無聽力音頻)
- 二零二五年度競業(yè)限制解除后的競業(yè)限制補(bǔ)償金支付合同
- 二零二五年度高校畢業(yè)生就業(yè)安置與就業(yè)技能培訓(xùn)與就業(yè)保障服務(wù)合同
- 二零二五年度股份轉(zhuǎn)讓與新能源項目投資合作框架協(xié)議
- GB/T 45229-2025劇場工藝安全要求
- 2025-2030年中國數(shù)字告示(數(shù)字標(biāo)牌)行業(yè)需求現(xiàn)狀及發(fā)展趨勢分析報告
- 矛盾糾紛排查知識講座
- 2025年廣州市黃埔區(qū)東區(qū)街招考社區(qū)居委會專職工作人員高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 汽車制動系統(tǒng)課件
- 2025年黑龍江省高職單招《職測》高頻必練考試題庫400題(含答案)
- 2025年第六屆美麗中國國家版圖知識競賽題庫及答案
- 安全生產(chǎn)法律法規(guī)匯編(2025版)
- 義務(wù)教育化學(xué)課程標(biāo)準(zhǔn)(2022年版)解讀
- 生產(chǎn)加工型小微企業(yè)安全管理考試(含答案)
- 2《幼苗長大了》課件
評論
0/150
提交評論