畢業(yè)設(shè)計(jì)(論文)UART的奇偶校驗(yàn)器及總線選擇器模塊的設(shè)計(jì)_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)UART的奇偶校驗(yàn)器及總線選擇器模塊的設(shè)計(jì)_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)UART的奇偶校驗(yàn)器及總線選擇器模塊的設(shè)計(jì)_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)UART的奇偶校驗(yàn)器及總線選擇器模塊的設(shè)計(jì)_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)UART的奇偶校驗(yàn)器及總線選擇器模塊的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、論文題目uart的奇偶校驗(yàn)器及總線選擇器模塊的設(shè)計(jì)同學(xué)的本科畢業(yè)論文,絕對(duì)原創(chuàng),word文件,可直接使用編寫(xiě)于2011年6月24日 摘 要uart是一種廣泛應(yīng)用于短距離,低速,低成本通信的串行傳輸接口;由于常用uart芯片比較復(fù)雜且移植性差,通過(guò)軟件ise實(shí)現(xiàn)了對(duì)uart的模塊化設(shè)計(jì);首先簡(jiǎn)要介紹uart的基本特點(diǎn),然后依據(jù)其系統(tǒng)組成設(shè)計(jì)奇偶校驗(yàn)和總線選擇模塊,再采用有限狀態(tài)機(jī)設(shè)計(jì)接收器模塊和發(fā)送器模塊,所有功能實(shí)現(xiàn)全部采用ise軟件對(duì)所有模塊仿真實(shí)現(xiàn);最后將uart的核心功能集成芯片上,使整體設(shè)計(jì)緊湊。uart也就是通用異步接收發(fā)送器,全稱是universal asynchronous re

2、ceiver/transmitter,一般經(jīng)常用于設(shè)備之間的串行通信。廣泛應(yīng)用于調(diào)制解調(diào)器modem、手持工業(yè)設(shè)備、條形碼閱讀器、測(cè)試設(shè)備、消費(fèi)產(chǎn)品與計(jì)算機(jī)pc、微處理器芯片以及小型通信網(wǎng)絡(luò)之間的通信。本論文對(duì)uart的其中兩個(gè)模塊進(jìn)行系統(tǒng)的設(shè)計(jì)與分析,對(duì)uart進(jìn)行具體模擬。包括系統(tǒng)劃分、編寫(xiě)程序、功能仿真、邏輯綜合等。在設(shè)計(jì)的各階段使用的是ise的各種程序功能。在具體的功能實(shí)現(xiàn)方面,本文給出了uart的奇偶校驗(yàn)?zāi)K和總線選擇模塊的詳細(xì)設(shè)計(jì),在uart設(shè)計(jì)中,考慮到速度、面積和穩(wěn)定性等因素,對(duì)各個(gè)模塊的具體設(shè)計(jì)做了優(yōu)化。論文最后給出了uart綜合優(yōu)化、仿真測(cè)試和分析的結(jié)果。結(jié)果表明,所設(shè)計(jì)的

3、uart功能上已達(dá)到設(shè)計(jì)要求。它可支持標(biāo)準(zhǔn)異步串行傳輸rs-232協(xié)議;可編程波特率;接收、發(fā)送全雙工;各種出錯(cuò)檢驗(yàn)和中斷;優(yōu)先級(jí)中斷控制系統(tǒng)。關(guān)鍵詞通用異步接收發(fā)送器;奇偶校驗(yàn);總線選擇器abstractuart is a widely used short-range: low: low-cost serial communication transmission interface; as uart chip used more complex and poor portability, ise software achieved through the modular design o

4、f the uart; first introduces the basic uart characteristics, then the composition of its system design based on parity and bus switching module, and then the finite state machine design receiver modules and transmitter modules, all of the features used in all ise software to achieve all the modules

5、simulation; finally, the uart core function of integration chip, and the overall design compact.uart is universal asynchronous receiver transmitter, stands universal asynchronous receiver / transmitter, often used for general serial communication between devices. widely used in modem, handheld indus

6、trial equipment, bar code readers, test equipment, consumer products and computer pc, a microprocessor chip and a small communication between the communication networks. all stages of the design using a variety of program features ise. realization of specific functions, this paper uart modules and b

7、us parity selection module detailed design, the uart design, taking into account the speed, size and stability of other factors, the specific design of each module is optimized. papers finally, uart integrated optimization, simulation testing and analysis results. the results show that the design of

8、 the uart function has reached the design requirements. it supports standard rs-232 asynchronous serial transmission protocol; programmable baud rate; to receive, transmit full-duplex; a variety of error testing and break; priority interrupt control system.keywordsuniversal asynchronous receiver tra

9、nsmitter;parity;bus selector; 目錄摘 要iabstractii第一章 前言11.1課題的來(lái)源與意義11.2 uart的發(fā)展現(xiàn)狀21.3研究?jī)?nèi)容與目標(biāo)31.3.1uart通信31.3.2奇偶校驗(yàn)31.4論文結(jié)構(gòu)41.5本章小結(jié)4第二章 uart奇偶校驗(yàn)器與總線選擇器的原理52.1uart奇偶校驗(yàn)和總線選擇52.1.1基本結(jié)構(gòu)62.1.2原理奇偶校驗(yàn)72.1.3數(shù)據(jù)傳輸72.2各模塊的功能82.3本章小結(jié)8第三章 模塊總體設(shè)計(jì)與實(shí)現(xiàn)93.1設(shè)計(jì)思想及設(shè)計(jì)原則93.2基本結(jié)構(gòu)與實(shí)現(xiàn)方式123.3研究編譯143.4模塊實(shí)現(xiàn)173.5本章小結(jié)19第四章 uart模塊設(shè)計(jì)20

10、4.1測(cè)試環(huán)境204.2uart工作流程204.3總體模塊的仿真與實(shí)現(xiàn)214.4本章小結(jié)22結(jié) 論23參考文獻(xiàn)24附錄一 總線選擇器模塊26附錄二 奇偶校驗(yàn)器模塊28致 謝30第一章 前 言1.1課題的來(lái)源與意義很久很久以前,計(jì)算機(jī)還沒(méi)有出現(xiàn),那時(shí)就已經(jīng)存在了(計(jì)算機(jī))史前的串口設(shè)備(電傳打字機(jī),工控測(cè)量設(shè)備,通信調(diào)制解調(diào)器),為了連接這些串口,eia制定了rs232標(biāo)準(zhǔn),采用db25接插件,支持同步和異步串口,d型的接口可以有效防止插反。標(biāo)準(zhǔn)化給使用帶來(lái)了便利。時(shí)光荏苒,個(gè)人計(jì)算機(jī)出現(xiàn)了,這些已有的串口設(shè)備毫無(wú)疑問(wèn)地成為了最初的外設(shè),自然而然地 rs232標(biāo)準(zhǔn)被個(gè)人計(jì)算機(jī)采納。但是設(shè)備制造商

11、傾向于體積更小,成本更低的接口,因此,將db25中未使用的和支持同步模式的引腳去掉,形成db9。最 初的情況相當(dāng)混亂,因?yàn)閐b9只定義了信號(hào),卻沒(méi)有指定信號(hào)和引腳的對(duì)應(yīng)關(guān)系,各個(gè)制造商只能自行定義。幸運(yùn)的是,ibm的pc成了工業(yè)標(biāo)準(zhǔn),db9逐漸 統(tǒng)一到ibm的定義上來(lái)。db9只有9根線,遵循rs232標(biāo)準(zhǔn)。定義如下:dtr,dsr-dte設(shè)備準(zhǔn)備好/dce設(shè)備準(zhǔn)備好。主流控信號(hào)。ts,cts-請(qǐng)求發(fā)送/清除發(fā)送。用于半雙工時(shí),收發(fā)切換。屬于輔助流控信 號(hào)。半雙工的意思是說(shuō),發(fā)的時(shí)候不收,收的時(shí)候不發(fā)。那么怎么區(qū)分收發(fā)呢?缺省時(shí)是dce向dte發(fā)送數(shù)據(jù),當(dāng)dte決定向dce發(fā)數(shù)據(jù)時(shí),先有效 rt

12、s,表示dte希望向dce發(fā)送,一般dce不能馬上轉(zhuǎn)換收發(fā)狀態(tài),dte就通過(guò)監(jiān)測(cè)cts是否有效來(lái)判斷可否發(fā)送,這樣避免了dte在dce未準(zhǔn)備 好時(shí)發(fā)送所導(dǎo)致的數(shù)據(jù)丟失。全雙工時(shí),這兩個(gè)信號(hào)一直有效即可。隨著計(jì)算機(jī)的日益普及,很多非rs232的串口也要接入pc機(jī),如果為每一種新出現(xiàn)的串口都 增加一個(gè)新的i/o口顯然不現(xiàn)實(shí),因?yàn)閜c后面板位置有限,因此,將rs232串口和非rs232串口都通過(guò)rs232口接入是最佳方案。uart的 u(通用)指的就是這個(gè)意思。早期rom bios和dos里的通信軟件都是為rs232設(shè)計(jì)的,在沒(méi)有檢測(cè)到dcd有效前不會(huì)發(fā)送數(shù)據(jù),因此,就連發(fā)送一個(gè)字符這樣樸素的應(yīng)用也

13、要給出dcd、dtr、dsr等控制信號(hào)。因此,串口接頭上要將一些控制線短接,或者干脆繞過(guò)系統(tǒng)軟件自己寫(xiě)通信程序1。到此,uart的涵義就總結(jié)為:通用的異步 (串行) i/o口隨著微機(jī)系統(tǒng)的廣泛運(yùn)用和微機(jī)網(wǎng)絡(luò)的極大發(fā)展,uart(universal asynchronous receive transmitter)在數(shù)據(jù)通信及控制系統(tǒng)中得到了廣泛運(yùn)用。8250、ns16450等芯片都是常見(jiàn)的uart器件,這類芯片已經(jīng)相當(dāng)復(fù)雜,有的含有許多輔助模塊(如fifo),但在實(shí)際中有時(shí)只需要使用uart的部分功能,因而會(huì)造成一定的資源浪費(fèi)。fpga在現(xiàn)代電子設(shè)計(jì)中的廣泛運(yùn)用,使我們可以充分利用其資源,在芯

14、片上集成uart的功能模塊,這樣就無(wú)需外接專用uart芯片,從而簡(jiǎn)化了電路,縮小了體積,設(shè)計(jì)的靈活性更大 。本篇論文所進(jìn)行研究設(shè)計(jì)的通用異步接收發(fā)送器uart就是一種常用的串行接口,近年來(lái)得到了很大的發(fā)展,速度快、集成度高、價(jià)格便宜已經(jīng)成為它近年來(lái)的發(fā)展策略。該總線雙向通信,可以實(shí)現(xiàn)全雙工傳輸和接收。在嵌入式設(shè)計(jì)中,uart用來(lái)與pc進(jìn)行通信,包括與監(jiān)控調(diào)試器和其它器件,如eeprom通信。uart,可以用于調(diào)制解調(diào)器modem、手持工業(yè)設(shè)備、條形碼閱讀器、測(cè)試設(shè)備、消費(fèi)產(chǎn)品與計(jì)算機(jī)pc、微處理器芯片以及小型通信網(wǎng)絡(luò)之間的通信。uart的奇偶校驗(yàn)和總線選擇也在不斷的升級(jí)與提高。1.2 uart

15、的發(fā)展現(xiàn)狀隨著通信技術(shù)及微機(jī)的廣泛應(yīng)用,接口技術(shù)已成為十分重要的技術(shù)。由于各種外設(shè)的工作原理、工作速度、信息格式、驅(qū)動(dòng)方式差別很大,無(wú)法與cpu直接匹配,需要有個(gè)接口電路來(lái)充當(dāng)它們和cpu間的橋梁,通過(guò)該電路來(lái)完成信號(hào)的交換、數(shù)據(jù)的緩沖、與cpu聯(lián)絡(luò)等工作。uart是一個(gè)并行輸入成為串行輸出的芯片,通常集成在主板上,多數(shù)是16550afn芯片。因?yàn)橛?jì)算機(jī)內(nèi)部采用并行數(shù)據(jù)數(shù)據(jù),不能直接把數(shù)據(jù)發(fā)到modem,必須經(jīng)過(guò)uart整理才能進(jìn)行異步傳輸,其過(guò)程為:cpu先把準(zhǔn)備寫(xiě)入串行設(shè)備的數(shù)據(jù)放到uart的寄存器(臨時(shí)內(nèi)存塊)中,再通過(guò)fifo(first input first output,先入先出

16、隊(duì)列)傳送到串行設(shè)備,若是沒(méi)有fifo,信息將變得雜亂無(wú)章,不可能傳送到modem。比如源程序或原始數(shù)據(jù)可通過(guò)接口從輸入設(shè)備送入微機(jī)中,而運(yùn)算結(jié)果可通過(guò)接口向輸出設(shè)備送出去;控制命令通過(guò)接口發(fā)出去,現(xiàn)場(chǎng)狀態(tài)通過(guò)接口取進(jìn)來(lái),這些來(lái)往信息都要通過(guò)接口進(jìn)行變換與傳遞。近幾年來(lái),接口技術(shù)已經(jīng)得到了很大的發(fā)展,微機(jī)接口本身已不是一些邏輯電路的簡(jiǎn)單組合,而是采用硬件與軟件相結(jié)合的方法,使微處理器與外部世界進(jìn)行最佳耦合與匹配,以在cpu與外部世界之間實(shí)現(xiàn)高效、可靠的信息交換的一門(mén)技術(shù)。目前,接口技術(shù)已發(fā)展成為硬件和軟件相結(jié)合的綜合性技術(shù)。1.3研究的內(nèi)容與目標(biāo)1.3.1 uart的通信uart首先將接收到的

17、并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)來(lái)傳輸。消息幀從一個(gè)低位起始位開(kāi)始,后面是7個(gè)或8個(gè)數(shù)據(jù)位,一個(gè)可用的奇偶位和一個(gè)或幾個(gè)高位停止位。接收器發(fā)現(xiàn)開(kāi)始位時(shí)它就知道數(shù)據(jù)準(zhǔn)備發(fā)送,并嘗試與發(fā)送器時(shí)鐘頻率同步。如果選擇了奇偶,uart就在數(shù)據(jù)位后面加上奇偶位。奇偶位可用來(lái)幫助錯(cuò)誤校驗(yàn)。 在接收過(guò)程中,uart從消息幀中去掉起始位和結(jié)束位,對(duì)進(jìn)來(lái)的字節(jié)進(jìn)行奇偶校驗(yàn),并將數(shù)據(jù)字節(jié)從串行轉(zhuǎn)換成并行。uart也產(chǎn)生額外的信號(hào)來(lái)指示發(fā)送和接收的狀態(tài)。例如,如果產(chǎn)生一個(gè)奇偶錯(cuò)誤,uart就置位奇偶標(biāo)志。1.3.2奇偶校驗(yàn)奇偶監(jiān)督碼是一種增加二進(jìn)制傳輸系統(tǒng)最小距離的簡(jiǎn)單和廣泛采用的方法。例如,單個(gè)的奇偶監(jiān)督將使碼的最小距離由一

18、增加到二。 一個(gè)二進(jìn)碼字,如果它的碼元有奇數(shù)個(gè)1,就稱為具有奇性。例如有七個(gè)1的碼字“1011010111”,因此,這個(gè)碼字具有奇性。同樣,偶性碼字具有偶數(shù)個(gè)1。注意奇性檢測(cè)等效于所有碼元的模二加,并能夠由所有碼元的異或運(yùn)算來(lái)確定。 在一個(gè)典型系統(tǒng)里,在傳輸以前,由奇偶發(fā)生器把奇偶監(jiān)督位加到每個(gè)字中。原有信息中的數(shù)字在接收機(jī)中被檢測(cè), 如果沒(méi)有出現(xiàn)正確的奇、偶性,這個(gè)信息標(biāo)定為錯(cuò)誤的,這個(gè)系統(tǒng)將把錯(cuò)誤的字拋掉或者請(qǐng)求重發(fā)。注意,用單個(gè)的奇偶監(jiān)督碼僅能檢出奇數(shù)個(gè)碼元的錯(cuò)誤。奇偶校驗(yàn),內(nèi)存中最小的單位是比特,也稱為“位”,位有只有兩種狀態(tài)分別以1和0來(lái)標(biāo)示,每8個(gè)連續(xù)的比特叫做一個(gè)字節(jié)(byte)

19、2。不帶奇偶校驗(yàn)的內(nèi)存每個(gè)字節(jié)只有8位,如果其某一位存儲(chǔ)了錯(cuò)誤的值,就會(huì)導(dǎo)致其存儲(chǔ)的相應(yīng)數(shù)據(jù)發(fā)生變化,進(jìn)而導(dǎo)致應(yīng)用程序發(fā)生錯(cuò)誤。而奇偶校驗(yàn)就是在每一字節(jié)(8位)之外又增加了一位作為錯(cuò)誤檢測(cè)位。在某字節(jié)中存儲(chǔ)數(shù)據(jù)之后,在其8個(gè)位上存儲(chǔ)的數(shù)據(jù)是固定的,因?yàn)槲恢荒苡袃煞N狀態(tài)1或0,假設(shè)存儲(chǔ)的數(shù)據(jù)用位標(biāo)示為1、1、1、0、0、1、0、1,那么把每個(gè)位相加(111001015),結(jié)果是奇數(shù),那么在校驗(yàn)位定義為1,反之為0。當(dāng)cpu讀取存儲(chǔ)的數(shù)據(jù)時(shí),它會(huì)再次把前8位中存儲(chǔ)的數(shù)據(jù)相加,計(jì)算結(jié)果是否與校驗(yàn)位相一致。從而一定程度上能檢測(cè)出內(nèi)存錯(cuò)誤,奇偶校驗(yàn)只能檢測(cè)出錯(cuò)誤而無(wú)法對(duì)其進(jìn)行修正,同時(shí)雖然雙位同時(shí)發(fā)生錯(cuò)

20、誤的概率相當(dāng)?shù)停媾夹r?yàn)卻無(wú)法檢測(cè)出雙位錯(cuò)誤。奇偶校驗(yàn)?zāi)軌驒z測(cè)出信息傳輸過(guò)程中的部分誤碼(1位誤碼能檢出,2位及2位以上誤碼不能檢出),同時(shí),它不能糾錯(cuò)。在發(fā)現(xiàn)錯(cuò)誤后,只能要求重發(fā)。但由于其實(shí)現(xiàn)簡(jiǎn)單,仍得到了廣泛使用。有些檢錯(cuò)方法,具有自動(dòng)糾錯(cuò)能力。如循環(huán)冗余碼(crc)檢錯(cuò)等。1.4論文結(jié)構(gòu)論文共分4章,其基本結(jié)構(gòu)如下:第1章介紹 uart 的來(lái)源與發(fā)展、奇偶校驗(yàn)的定義分析、總線選擇器的意義。第2章 uart奇偶校驗(yàn) 總線選擇的原理與分析。第3章介紹了模塊總體設(shè)計(jì)與實(shí)現(xiàn) 各模塊的分析 。第4章對(duì)本文進(jìn)行總結(jié) ,展示了模塊的仿真與實(shí)現(xiàn)。1.5本章小結(jié)本章介紹了論文課題的來(lái)源與意義、uart

21、、奇偶校驗(yàn)以及總線選擇的發(fā)展現(xiàn)狀以及研究的內(nèi)容與目標(biāo),并對(duì)論文的結(jié)構(gòu)進(jìn)行了總體概括。第二章 uart奇偶校驗(yàn)與總線選擇器的原理2.1 uart奇偶校驗(yàn)和總線選擇uart 主要由uart內(nèi)核、信號(hào)檢測(cè)器、移位寄存器、波特率發(fā)生器、計(jì)數(shù)器、總線選擇器和奇偶校驗(yàn)器總共7各模塊組成3。奇偶校驗(yàn)?zāi)K的功能是根據(jù)奇偶校驗(yàn)的設(shè)置和輸入數(shù)據(jù)計(jì)算出相應(yīng)的奇偶校驗(yàn)位,它是通過(guò)純組合邏輯實(shí)現(xiàn)的??偩€選擇模塊用于選擇奇偶校驗(yàn)器的輸入時(shí)數(shù)據(jù)發(fā)送總線還是數(shù)據(jù)接收總線。在接受數(shù)據(jù)時(shí)總線選擇模塊將數(shù)據(jù)接收總線連接到奇偶校驗(yàn)器的輸入端,來(lái)檢查已接受數(shù)據(jù)的奇偶校驗(yàn)位是否正確;而在發(fā)送數(shù)據(jù)時(shí),總線選擇模塊將數(shù)據(jù)發(fā)送總線連接到奇偶校

22、驗(yàn)器的輸入端,uart內(nèi)核模塊就能夠獲取并且保持待發(fā)送序列所需要的奇偶校驗(yàn)位了。圖2-1是數(shù)據(jù)發(fā)送過(guò)程的完整示意圖,發(fā)送過(guò)程中各個(gè)模塊相互控制相互協(xié)作,從而達(dá)到發(fā)送目的。重置波特率發(fā)生器和移位寄存器,設(shè)置工模式輸出信號(hào)提示發(fā)送完成結(jié)束啟動(dòng)是否加載完將待發(fā)送的串行數(shù)據(jù)送到移位寄存器的輸入端發(fā)送完成移位寄存器將數(shù)據(jù)發(fā)送到rs232的發(fā)送器重置波特率發(fā)生器,設(shè)置移動(dòng)寄存器模式圖2-1 uart發(fā)送數(shù)據(jù)流程圖 由上圖可以看出發(fā)送數(shù)據(jù)過(guò)程由兩部分組成,首先是加載,在加載過(guò)程中先要重置波特率發(fā)生器和移位寄存器,并且設(shè)置其工作模式,待發(fā)送的串行數(shù)據(jù)送到移位寄存器的輸入端,加載完成后,再次重置波特率發(fā)生器,設(shè)

23、置移動(dòng)寄存器模式,移位寄存器將數(shù)據(jù)發(fā)送到rs232的發(fā)送器中,發(fā)送完成。圖2-2是接收示意圖,運(yùn)行過(guò)程如下。啟動(dòng)重置波特率發(fā)生器,設(shè)置工作模式為波特率模式將移位寄存器移位讀取串行輸入信號(hào) 讀取完成否進(jìn)行奇數(shù)校驗(yàn)奇偶位正確輸出錯(cuò)誤信號(hào)輸出接收完成信號(hào)重置信號(hào)檢測(cè)器結(jié)束否是圖2-2 uart接收數(shù)據(jù)流程圖2.1.1基本結(jié)構(gòu) 如下圖2-3所示,是uart的基本框架。 uart內(nèi)核總線選擇器奇偶校驗(yàn)器控制信號(hào)控制信號(hào)計(jì)數(shù)器波特率發(fā)生器移位寄存器控制信號(hào)信號(hào)檢測(cè)器控制信號(hào)控制信號(hào)輸出輸入指示信號(hào)圖2-3 uart的基本架構(gòu)2.1.2奇偶校驗(yàn)原理串行數(shù)據(jù)在傳輸過(guò)程中,由于干擾可能引起信息的出錯(cuò)4,例如,傳

24、輸字符e,其各位為:0100,0101=45hd7 d0由于干擾,可能使位變?yōu)?,(為什么不變0?)這種情況,我們稱為出現(xiàn)了“誤碼”。我們把如何發(fā)現(xiàn)傳輸中的錯(cuò)誤,叫“檢錯(cuò)”。發(fā)現(xiàn)錯(cuò)誤后,如何消除錯(cuò)誤,叫“糾錯(cuò)”。最簡(jiǎn)單的檢錯(cuò)方法是“奇偶校驗(yàn)”,即在傳送字符的各位之外,再傳送1位奇/偶校驗(yàn)位。可采用奇校驗(yàn)或偶校驗(yàn)。奇校驗(yàn):所有傳送的數(shù)位(含字符的各數(shù)位和校驗(yàn)位)中,“1”的個(gè)數(shù)為奇數(shù),如:1 0110,01010 0110,0001偶校驗(yàn):所有傳送的數(shù)位(含字符的各數(shù)位和校驗(yàn)位)中,“1”的個(gè)數(shù)為偶數(shù),如:1 0100,01010 0100,0001奇偶校驗(yàn)?zāi)軌驒z測(cè)出信息傳輸過(guò)程中的部分誤碼(1

25、位誤碼能檢出,2位及2位以上誤碼不能檢出),同時(shí),它不能糾錯(cuò)。在發(fā)現(xiàn)錯(cuò)誤后,只能要求重發(fā)。但由于其實(shí)現(xiàn)簡(jiǎn)單,仍得到了廣泛使用。有些檢錯(cuò)方法,具有自動(dòng)糾錯(cuò)能力。如循環(huán)冗余碼(crc)檢錯(cuò)等。2.1.3數(shù)據(jù)傳輸異步通信規(guī)定字符由起始位(start bit),數(shù)據(jù)位(data bit),奇偶校驗(yàn)位(parity bit)和停止位(stop bit)組成。起始位表示一個(gè)字符的開(kāi)始,接收方可用起始位使自己的接收時(shí)鐘與數(shù)據(jù)同步。停止位則表示一個(gè)字符的結(jié)束。這種用起始位開(kāi)始,停止位結(jié)束所構(gòu)成的一串信息稱為幀(注意:異步通信中的“幀”與同步通信中“幀”是不同的,異步通信中的幀只包含一個(gè)字符,而同步通信中“幀”

26、可包含幾十個(gè)到上千個(gè)字符)。在傳送一個(gè)字符時(shí),由一位低電平的起始位開(kāi)始,接著傳送數(shù)據(jù)位,數(shù)據(jù)位的位數(shù)為5到8位5。在傳輸時(shí),按低位在前,高位在后的順序傳送。奇偶校驗(yàn)位用于檢驗(yàn)數(shù)據(jù)傳送的正確性,也可以沒(méi)有,由程序來(lái)指定。最后傳送的是高電平的停止位,停止位可以是1位,1.5位或2位。停止位結(jié)束到下一個(gè)字符的起始位之間的空閑位要由高電平來(lái)填充(只要不發(fā)送下一個(gè)字符,線路上就始終為空閑位)。傳送開(kāi)始之前,收發(fā)雙方必須把所采用的起止式格式(包括字符的數(shù)據(jù)位長(zhǎng)度,停止位位數(shù),有無(wú)校驗(yàn)位以及是奇校驗(yàn)還是偶校驗(yàn)等)和數(shù)據(jù)傳輸速率作統(tǒng)一一致的約定。異步通信中典型的幀格式是:1位起始位,7位(或8位)數(shù)據(jù)位,1位

27、奇偶校驗(yàn)位,1位停止位,如圖2.2中所示。這種格式若從字符數(shù)字流看去,字符之間的傳送是異步的隨機(jī)的,而對(duì)字符傳送的內(nèi)部是靠起始位和停止位來(lái)實(shí)現(xiàn)字符的界定或同步的。2.2各模塊的功能奇偶校驗(yàn)?zāi)K:奇偶校驗(yàn)器模塊是根據(jù)奇偶校驗(yàn)的設(shè)置和輸入數(shù)據(jù)計(jì)算出相應(yīng)的奇偶校驗(yàn)位,它是通過(guò)純組合邏輯實(shí)現(xiàn)的。總線選擇模塊:總線選擇模塊用于選擇奇偶校驗(yàn)器的輸入是數(shù)據(jù)發(fā)送總線還是數(shù)據(jù)接收總線。在接收數(shù)據(jù)時(shí),總線選擇模塊將數(shù)據(jù)接收總線連接到奇偶校驗(yàn)器的輸入端,來(lái)檢查已接收數(shù)據(jù)的奇偶校驗(yàn)位是否正確;而在發(fā)送數(shù)據(jù)時(shí),總線選擇模塊將數(shù)據(jù)發(fā)送總線連接到奇偶檢驗(yàn)器的輸入端,uart內(nèi)核模塊就能夠獲取并保存待發(fā)送序列所需的奇偶校驗(yàn)位

28、了6。2.3本章小結(jié)本章將uart的基本結(jié)構(gòu)進(jìn)行展示,并且對(duì)本論文課題所研究的兩個(gè)模塊(奇偶校驗(yàn)?zāi)K和總線選擇模塊)進(jìn)行分析和區(qū)別比較。第三章 模塊總體設(shè)計(jì)與實(shí)現(xiàn)本章主要介紹所設(shè)計(jì)的奇偶校驗(yàn)?zāi)K和總線選擇模塊的總體構(gòu)架。這里將程序設(shè)計(jì)分成 4節(jié)來(lái)介紹,第一節(jié)介紹總體的設(shè)計(jì)思想與設(shè)計(jì)原則,第二節(jié)介紹奇偶校驗(yàn)和總線選擇器的基本結(jié)構(gòu)與實(shí)現(xiàn)方式,第三節(jié)介紹對(duì)編譯程序進(jìn)行研究,第四節(jié)介紹模塊實(shí)現(xiàn) ,分析了模塊總體設(shè)計(jì)及流程。3.1設(shè)計(jì)思想及設(shè)計(jì)原則設(shè)計(jì)思想:奇偶監(jiān)督碼是一種增加二進(jìn)制傳輸系統(tǒng)最小距離的簡(jiǎn)單和廣泛采用的方法7。例如,單個(gè)的奇偶監(jiān)督將使碼的最小距離由一增加到二。 一個(gè)二進(jìn)碼字,如果它的碼元有

29、奇數(shù)個(gè)1,就稱為具有奇性。例如,碼字“1011010 111”有七個(gè)1,因此,這個(gè)碼字具有奇性。同樣,偶性碼字具有偶數(shù)個(gè)1。注意奇性檢測(cè)等效于所有碼元的模二加,并能夠由所有碼元的異或運(yùn)算來(lái)確定。對(duì)于一個(gè)n位字,奇性由下式給出: 奇性=a0a1a2an 很明顯,用同樣的方式,我們也能夠根據(jù)每一個(gè)碼字的零的個(gè)數(shù)來(lái)構(gòu)成奇偶監(jiān)督。 在一個(gè)典型系統(tǒng)里,在傳輸以前,由奇偶發(fā)生器把奇偶監(jiān)督位加到每個(gè)字中。原有信息中的數(shù)字在接收機(jī)中被檢測(cè), 如果沒(méi)有出現(xiàn)正確的奇、偶性,這個(gè)信息標(biāo)定為錯(cuò)誤的,這個(gè)系統(tǒng)將把錯(cuò)誤的字拋掉或者請(qǐng)求重發(fā)。注意,用單個(gè)的奇偶監(jiān)督碼僅能檢出奇數(shù)個(gè)碼元的錯(cuò)誤8。 例如考慮奇性監(jiān)督碼。把奇、偶

30、監(jiān)督位加到一個(gè) 8-4-2-1 bcd碼,使之能夠進(jìn)行奇監(jiān)督(將所有監(jiān)督位反過(guò)來(lái)將產(chǎn)生偶監(jiān)督碼)。可以看到,如果將任何碼字里的奇數(shù)個(gè)碼元反過(guò)來(lái),那么將成為偶性碼,因而,無(wú)效的字是可以分辨出來(lái)的。然而,如果有兩個(gè)或四個(gè)碼元反過(guò)來(lái),那末奇偶監(jiān)督將仍然是奇性碼,并且這個(gè)字被認(rèn)為是正確的。只當(dāng)一個(gè)給定的字里同時(shí)出現(xiàn)兩個(gè)錯(cuò)誤的概率被忽略不計(jì)時(shí),單個(gè)的奇偶監(jiān)督才是有效的,實(shí)際上,奇監(jiān)督碼比偶監(jiān)督碼可取,因?yàn)樗懦藗鬏斎?的情況。 十進(jìn)數(shù)字 4 比特直接二進(jìn)碼 奇性監(jiān)督位 8 4 2 1 0 0 0 0 0 1 1 0 0 0 1 0 2 0 0 1 0 0 3 0 0 1 1 1 4 0 1 0 0 0

31、 5 0 1 0 1 1 6 0 1 1 0 1 7 0 1 1 1 0 8 1 0 0 0 0 9 1 0 0 1 1 上圖是附加奇性監(jiān)督位的bcd碼 奇偶監(jiān)督可以用在數(shù)字系統(tǒng)的主要接口設(shè)備中。由于在每個(gè)信息中加了多余度,僅當(dāng)出現(xiàn)錯(cuò)誤的概率和錯(cuò)誤的危害足夠大時(shí),才采用奇偶監(jiān)督碼。 加一個(gè)奇偶監(jiān)督位后,每個(gè)字需要五個(gè)碼位,從而,將傳輸速率降低到80字秒,能夠檢測(cè)一個(gè)錯(cuò)誤,并且能指令發(fā)送機(jī)重發(fā)錯(cuò)了的信息以校正信息。出現(xiàn)兩個(gè)錯(cuò)誤的概率計(jì)算如下:如果五個(gè)碼位是a、b、c、d、e,那么兩個(gè)錯(cuò)誤可能以下述10種組合出現(xiàn)。即 ab、ac、ad、ae bc、bd、be cd、ce de 出現(xiàn)任何一對(duì)的概率是

32、(3.110-5)2,或9.610-10,因此,在單個(gè)字里出現(xiàn)兩個(gè)錯(cuò)誤的概率等于10 9.610-10,或9.610-9。以80字/秒的新的傳輸速率, 可能以每1.310-6秒, 即平均每15天,出現(xiàn)一個(gè)未被檢出的錯(cuò)誤。因?yàn)槿齻€(gè)錯(cuò)誤能被檢測(cè)出,四個(gè)碼位錯(cuò)誤的概率與兩個(gè)錯(cuò)誤相比可以忽略不計(jì),因此,我們?cè)谶@里不考慮任何更多的錯(cuò)誤。邏輯電路的演化設(shè)計(jì)主要設(shè)計(jì)電路功能符合程度、所用邏輯門(mén)個(gè)數(shù)、延時(shí)級(jí)數(shù)等設(shè)計(jì)子目標(biāo):(1)電路功能符合程度輸入和輸出對(duì)給定功能的真值表的符合程度。(2)所有邏輯門(mén)個(gè)數(shù)是在完全符合給定真值表功能的情況下,使得設(shè)計(jì)出的電路所利用的門(mén)個(gè)數(shù)最少。(3)延時(shí)級(jí)數(shù)設(shè)計(jì)出的電路的互連關(guān)系

33、可以計(jì)算出該電路的延時(shí)。延時(shí)級(jí)數(shù)即定義為從輸入到輸出最長(zhǎng)的一個(gè)電路流向。由于數(shù)據(jù)在存取、傳送和運(yùn)算過(guò)程中,難免會(huì)發(fā)生錯(cuò)誤,有奇偶檢驗(yàn)?zāi)芰澳墚a(chǎn)生校驗(yàn)碼的電路稱為奇偶校驗(yàn)產(chǎn)生器。本實(shí)驗(yàn)就是用演化硬件的方法來(lái)產(chǎn)生奇偶校驗(yàn)器。奇偶校驗(yàn)器的功能定義如下:僅當(dāng)多位輸入中包含偶數(shù)(0除外)個(gè)“1”時(shí),輸出為“1”,稱做偶校驗(yàn)器,反之為奇校驗(yàn)器。如三位偶校驗(yàn)器的真值表如下表3-1所示。三位偶校驗(yàn)器。3位變量輸入,1位輸出。表3-1三位偶校驗(yàn)器的真值表a1a2a3p00000011010101101001101011001111總線選擇器模塊的功能是通過(guò)一個(gè)選擇信號(hào)控制兩個(gè)輸入信號(hào),將其輸出,也就是一個(gè)二選一

34、的選擇器,但選擇信號(hào)sel為低時(shí),將會(huì)把輸入總線一din1輸出,否則在選擇信號(hào)sel為高時(shí)將會(huì)把輸入總線二din2輸出。奇偶校驗(yàn)位:資料位加上這一位后,使得“1”的位數(shù)應(yīng)為偶數(shù)(偶校驗(yàn))或奇數(shù)(奇校驗(yàn)),以此來(lái)校驗(yàn)資料傳送的正確性9。- 奇偶校驗(yàn)規(guī)則定義type parity is(none,- 無(wú)奇偶校驗(yàn)odd,- 奇校驗(yàn)even- 偶校驗(yàn));總線選擇器:總線選擇器模塊的功能是通過(guò)選擇信號(hào)來(lái)控制兩個(gè)輸入信號(hào),將其輸出,也就是一個(gè)二選一的選擇器。結(jié)構(gòu)如圖3-1所示。圖3-1 二選一選擇器結(jié)構(gòu)圖設(shè)計(jì)原則:uart設(shè)計(jì)要求 1數(shù)據(jù)位寬度可編程(5位、6位、7位或8位數(shù)據(jù)位)。2產(chǎn)生并進(jìn)行奇校驗(yàn)、偶

35、校驗(yàn),或者無(wú)校驗(yàn)位。3.要使總線選擇器能夠適應(yīng)不同寬度的總線具有分開(kāi)的輸入數(shù)據(jù)總線和輸出數(shù)據(jù)總線。4具有標(biāo)準(zhǔn)的cpu接口。5. 能夠?qū)€路狀態(tài)以及錯(cuò)誤開(kāi)始位的檢測(cè)。3.2基本結(jié)構(gòu)與實(shí)現(xiàn)方式如下圖3-2所示。圖3-2 總線選擇的基本結(jié)構(gòu)圖3-3 總線選擇的基本結(jié)構(gòu)如上圖3-3所示,為總線選擇的基本結(jié)構(gòu)。圖3-4奇偶校驗(yàn)的基本結(jié)構(gòu)如上圖3-4所示,為奇偶校驗(yàn)的基本結(jié)構(gòu)。實(shí)現(xiàn)方式:奇偶校驗(yàn)的端口定義,如表3-2所示。表3-2 奇偶校驗(yàn)端口定義表名稱類型寬度說(shuō)明source輸入data_length輸入的待校驗(yàn)數(shù)據(jù)parity輸出1檢驗(yàn)結(jié)果輸出總線選擇器端口定義,如表3-3所示。表3-3 總線選擇器端

36、口定義表名稱類型寬度說(shuō)明din1輸入bus_width輸入總線一din2輸入bus_width輸入總線二sel輸入1選擇信號(hào)dout輸出bus_width輸出總線3.3研究編譯總線選程序分析:- 庫(kù)聲明library ieee;use ieee.std_logic_1164.all;最初的定義庫(kù),方便以后的調(diào)用。- 實(shí)體聲明entity switch_bus is定義實(shí)體名稱 注意實(shí)體名稱不能用漢字,否則在以后的調(diào)用中會(huì)出現(xiàn)程序的錯(cuò)誤和加載等問(wèn)題。- 類屬參數(shù)generic (bus_width : integer := 8 );- 總線寬度port (din1 : in std_logic_

37、vector(bus_width-1 downto 0);- 輸入總線一din2 : in std_logic_vector(bus_width-1 downto 0);- 輸入總線二sel : in std_logic;- 選擇信號(hào)dout : out std_logic_vector(bus_width-1 downto 0) );- 輸出總線end switch_bus;總線選擇的定義為了能夠使總線選擇器適應(yīng)不同寬度的總線,在聲明其實(shí)體的時(shí)候可以添加一個(gè)bus_width的類型參數(shù),它表示總線的寬度,代碼如上。- end of automatically maintained secti

38、on- 結(jié)構(gòu)體architecture switch_bus of switch_bus isbegin- 使用select語(yǔ)句with sel selectdout = din1 when 0,din2 when others;end switch_bus;奇偶校驗(yàn)程序分析:- 庫(kù)聲明library ieee;use ieee.std_logic_1164.all;use work.uart_package.all;以上為庫(kù)聲明,方便以后調(diào)用。- 實(shí)體聲明entity parity_verifier is定義了實(shí)體名稱,parity_verifier為實(shí)體的名稱。- 類屬參數(shù)generic

39、(data_length : integer := 8;parity_rule : parity := none );- 端口port (source : in std_logic_vector(data_length-1 downto 0);parity : out std_logic );end parity_verifier;- end of automatically maintained section- 結(jié)構(gòu)體architecture parity_verifier of parity_verifier isbegin- enter your statements here - 按

40、照校驗(yàn)規(guī)則計(jì)算校驗(yàn)位with parity_rule select parity = multixor(source) when odd, - 奇校驗(yàn)( not multixor(source) ) when even,- 偶校驗(yàn)1 when others; end parity_verifier;上述奇偶校驗(yàn)器實(shí)現(xiàn)代碼中的multixor函數(shù)也是在uart_package庫(kù)中定義的,其功能是對(duì)輸入序列進(jìn)行異或計(jì)算,multixor的函數(shù)聲明如下:function multixor(din:in std_logic_vector)return std_logic;begincheck:din(

41、dinlow);for i in 1 to (dinhigh)loopcheck:=check xor din(i);end loop;return check;end multixor;編碼方式:把用高級(jí)語(yǔ)言描述的程序翻譯成計(jì)算機(jī)能夠執(zhí)行的計(jì)算機(jī)語(yǔ)言,這樣的過(guò)程叫做編譯,繼續(xù)把計(jì)算機(jī)語(yǔ)言翻譯成和其相對(duì)應(yīng)的數(shù)字邏輯電路的過(guò)程就稱作綜合。綜合是指在給定的標(biāo)準(zhǔn)庫(kù)和一定的設(shè)計(jì)約束條件下通過(guò)綜合工具將硬件描述語(yǔ)一言等設(shè)計(jì)輸入轉(zhuǎn)變成可與fpga的基本結(jié)構(gòu)相映射的門(mén)級(jí)網(wǎng)表的過(guò)程。標(biāo)準(zhǔn)庫(kù)指的就是一些邏輯單元(比如與、或、非門(mén)等等)或者一些宏單元(比如加法器、觸發(fā)器等等)。設(shè)計(jì)的約束就是為所描述的硬件定義一些

42、約束,比如時(shí)序約束、面積約束以及功耗等等。本篇論文使用vhdl進(jìn)行編譯的,vhdl程序中可以具有高級(jí)的、抽象性的行為描述語(yǔ)句,也有低級(jí)的(門(mén)級(jí)描述語(yǔ)句,邏輯綜合的作用是將高級(jí)的抽象性更高的行為描述語(yǔ)句轉(zhuǎn)換成低級(jí)的抽象性低點(diǎn)的門(mén)級(jí)描述語(yǔ)句,也就是門(mén)級(jí)網(wǎng)表。)對(duì)于綜合來(lái)說(shuō),滿足要求的方案可能有很多個(gè),綜合器將產(chǎn)生一個(gè)最優(yōu)的或接近最優(yōu)的結(jié)果,(這種結(jié)果的優(yōu)劣與綜合器的性能有關(guān))。在綜合的過(guò)程中,綜合器會(huì)自動(dòng)地根據(jù)設(shè)定的目標(biāo)器件的特點(diǎn)對(duì)vhdl程序進(jìn)行面向目標(biāo)器件的優(yōu)化,因此,綜合過(guò)程同時(shí)也是設(shè)計(jì)目標(biāo)的優(yōu)化過(guò)程10。3.4模塊實(shí)現(xiàn)總線選擇模塊的實(shí)現(xiàn):圖3-5 結(jié)構(gòu)框圖圖3-6 仿真波形圖上圖3-5為結(jié)

43、構(gòu)框圖,圖3-6為編寫(xiě)一個(gè)測(cè)試平臺(tái)對(duì)上述代碼進(jìn)行測(cè)試,使得輸入總線一上的數(shù)據(jù)位“11110000”,輸入總線二上的數(shù)據(jù)位“00001111”,再分別使選擇的信號(hào)為“0”和“1”。會(huì)得到的仿真波形,輸出總線在選擇信號(hào)為“0”時(shí)是“11110000”,即輸入總線一的數(shù)據(jù),而當(dāng)選擇信號(hào)變?yōu)椤?”后,輸出總線上的數(shù)據(jù)也變?yōu)檩斎肟偩€二的數(shù)據(jù)“00001111”,可見(jiàn)上述代碼完全實(shí)現(xiàn)了設(shè)計(jì)所需的功能11。奇偶校驗(yàn)的實(shí)現(xiàn):uart內(nèi)核模塊通過(guò)總線選擇模塊和奇偶校驗(yàn)?zāi)K進(jìn)行奇偶校驗(yàn),他們之間的連接方式如圖3-7所示,總線選擇器的兩個(gè)輸入分別連接到數(shù)據(jù)發(fā)送總線send_bus和數(shù)據(jù)接收總線recv_bus上,它

44、的輸出連接到奇偶校驗(yàn)器的輸入端,最后奇偶校驗(yàn)器的校驗(yàn)結(jié)果輸出連接到uart的一個(gè)端口parity上12 。這樣的連接方式有一個(gè)好處,就是在發(fā)送和接收的不同過(guò)程中,只要通過(guò)一個(gè)總線選擇信號(hào)sel_pv就能夠選擇不同的奇偶校驗(yàn)內(nèi)容,sel_pv信號(hào)是由uart內(nèi)核的一個(gè)端口連接到總線選擇器的選擇信號(hào)端口上。din1(bus-width-1:0) dout1(bus-width-1:0)din1(bus-width-1:0)paritysource(data-length_1:0)send_bus(data_bit-1:0)recv_bus(data_bit-1:0)uart內(nèi)核sel_pvpari

45、tysel圖3-7 奇偶校驗(yàn)相關(guān)連接示意圖由上述內(nèi)容可知,uart使用的端口除了上面已經(jīng)介紹的數(shù)據(jù)發(fā)送總線和數(shù)據(jù)接收總線外,就是總線選擇信號(hào)端口上13。表3-4為端口定義。表3.4 奇偶校驗(yàn)端口定義表名稱類型寬度說(shuō)明 sel_pv輸出1 總線選擇信號(hào),選擇奇偶校驗(yàn)的數(shù)據(jù)parity 輸入1奇偶校驗(yàn)結(jié)果 奇偶檢驗(yàn)是最簡(jiǎn)單最常用的檢驗(yàn)方法。它的基本原理是在傳輸?shù)挠行?shù)據(jù)中附加一個(gè)檢驗(yàn)位,利用這個(gè)校驗(yàn)位的存在,使得數(shù)據(jù)信息位(包括有效數(shù)據(jù)位和檢驗(yàn)位)中1的個(gè)數(shù)為偶數(shù)或者奇數(shù)14。如果整個(gè)信息位l的個(gè)數(shù)為偶數(shù)的話稱為偶檢驗(yàn),為奇數(shù)的話則稱為為奇檢驗(yàn)。整個(gè)信息位在經(jīng)過(guò)線路的傳輸后,在接收端用專門(mén)的電路來(lái)

46、檢查1的個(gè)數(shù)是否符合事先的規(guī)定,若原來(lái)所具有的1的個(gè)數(shù)的奇偶性發(fā)生了變化,則說(shuō)明出現(xiàn)了傳輸錯(cuò)誤。這種方法只能檢查傳輸數(shù)據(jù)中的一位錯(cuò)誤,兩位數(shù)據(jù)以上的錯(cuò)誤就檢查不出來(lái)了,由于在傳輸過(guò)程中最容易產(chǎn)生一位數(shù)據(jù)的錯(cuò)誤,加上奇偶檢驗(yàn)的實(shí)現(xiàn)方法最簡(jiǎn)單,所以實(shí)際應(yīng)用也最廣泛15。總線選擇器的兩個(gè)輸入端分別連接到數(shù)據(jù)發(fā)送總線send-bus和數(shù)據(jù)解說(shuō)總線recv-bus上,它的輸出連接到奇偶校驗(yàn)器的輸入端,最好奇偶校驗(yàn)器的校驗(yàn)結(jié)果輸出連接到uart的一個(gè)端口parity上,這樣的連接方式有一個(gè)好處,就是在發(fā)送和接受德?tīng)柌煌^(guò)程中,只要通過(guò)一個(gè)總線選擇信號(hào)sel_pv就能夠選擇不同的奇偶校驗(yàn)內(nèi)容,sel_pv信

47、號(hào)是有uart內(nèi)核的一個(gè)端口連接到總線選擇器的選擇信號(hào)端口上16,如下圖3-8。圖3-8 奇偶校驗(yàn)結(jié)構(gòu)框圖圖3-9 奇偶校驗(yàn)仿真波形圖如圖3-9可知,在一個(gè)數(shù)據(jù)幀“10101010”結(jié)束后由高電平“1”變?yōu)椤?”,直到下一個(gè)激勵(lì)源再次來(lái)臨,再次變?yōu)椤?”。其中“1”是初始狀態(tài),而“0”是奇偶校驗(yàn)值。3.5本章小結(jié)本章對(duì)奇偶校驗(yàn)仿真模塊和總線選擇仿真模塊進(jìn)行了系統(tǒng)的程序仿真和調(diào)試選擇,模塊進(jìn)行了總體設(shè)計(jì),并詳細(xì)的敘述了每一設(shè)計(jì)過(guò)程的緣由,對(duì)每一各調(diào)用模塊進(jìn)行了系統(tǒng)的聲明,結(jié)合了奇偶校驗(yàn)?zāi)K和總線選擇模塊設(shè)計(jì)的流程及原理給出了整體的程序。第四章uart模塊設(shè)計(jì)在完成了控制模塊的設(shè)計(jì)之后,需要通過(guò)硬

48、件描述語(yǔ)言vhdl對(duì)該模塊進(jìn)行實(shí)現(xiàn),并對(duì)這一實(shí)現(xiàn)進(jìn)行功能驗(yàn)證。本章主要討論奇偶校驗(yàn)?zāi)K和總線選擇模塊在ise上的實(shí)現(xiàn)問(wèn)題,通過(guò)搭建一個(gè)測(cè)試環(huán)境對(duì)其進(jìn)行仿真。分析了uart的總體結(jié)構(gòu) 和測(cè)試波形的仿真。4.1測(cè)試環(huán)境基本環(huán)境硬件配置:cpu:duo t5600 1.83ghz;內(nèi)存:ddr2 2048m;運(yùn)行環(huán)境:windowsxp;測(cè)試軟件:使用ise程序測(cè)試軟件;4.2 uart的工作流程uart的工作流程可以分為接收和發(fā)送過(guò)程兩部分。接收過(guò)程指的是uart監(jiān)測(cè)到rs-232總線上的數(shù)據(jù),順序讀取串行的數(shù)據(jù)并且將其輸出給cpu的過(guò)程。當(dāng)信號(hào)監(jiān)測(cè)器監(jiān)測(cè)到新的數(shù)據(jù)(rs-232輸入邏輯變?yōu)?,即

49、rs-232 傳輸協(xié)議的起始位)就會(huì)觸發(fā)接收過(guò)程,器流程圖如下圖2.2所示17。首先uart內(nèi)核會(huì)重置波特率發(fā)生器和移位寄存器,并且設(shè)置移位寄存器的工作模式為波特率模式,以準(zhǔn)備接收數(shù)據(jù),并且將數(shù)據(jù)保存在內(nèi)部的寄存器內(nèi)。接收完成后,uart內(nèi)核會(huì)對(duì)已接受的數(shù)據(jù)進(jìn)行奇偶校驗(yàn)并且輸出校驗(yàn)結(jié)果 18。uart主要用來(lái)實(shí)現(xiàn)串行和并行數(shù)據(jù)流間的變換:從cpu接收并行數(shù)據(jù),轉(zhuǎn)換成串行數(shù)據(jù)輸出;或者是,從串口讀入外部數(shù)據(jù),將其轉(zhuǎn)換為并行數(shù)據(jù),送往cpu根據(jù)top_down的設(shè)計(jì)方法,我們將uart系統(tǒng)按功能進(jìn)行模塊劃分,。頂層模塊劃分包括:發(fā)送模塊、接收模塊、波特率發(fā)生器模塊、modem模塊、接口模塊19。其

50、中發(fā)送模塊包括發(fā)送器和發(fā)送fifo,接收模塊包括接收器和接收f(shuō)ifo。在fifo的設(shè)計(jì)中,采用參數(shù)化設(shè)計(jì)方法,把fifo模塊分別例化到接收和發(fā)送模塊中。4.3 總體模塊的仿真和實(shí)現(xiàn)圖4-1為模塊結(jié)構(gòu)圖,圖4-2為rtl視圖。圖4.1 模塊結(jié)構(gòu)圖圖4-2 rtl視圖圖4-3 仿真波形圖圖4-3是對(duì)uart的總電路進(jìn)行模型仿真之后,在波形控制的輸入端加入觸發(fā)波形后仿真得出的20。從上圖可以看出,待發(fā)送的數(shù)據(jù)是ox55(十六進(jìn)制,即send_bus總線上的數(shù)據(jù)),由send信號(hào)觸發(fā)后,rs-232的txd端輸出為序列001010101(二進(jìn)制),其中的第一位是起始位,中間的八位正是待發(fā)送的數(shù)據(jù)oxf

51、f,最后再發(fā)送完成后輸出提示信號(hào)send_over??梢?jiàn),發(fā)送的結(jié)果符合rs-232的時(shí)序要求,uart的發(fā)送功能完全正確。同樣的測(cè)試條件下數(shù)據(jù)接收的仿真結(jié)果如圖所示。首先,rxd上的數(shù)據(jù)序列為010101010(二進(jìn)制),表示起始位0,之后的數(shù)據(jù)位是10101010(二進(jìn)制),所以待接收的數(shù)據(jù)時(shí)oxaa(十六進(jìn)制)。recv_buf 是數(shù)據(jù)接收總線,可以看到其最終得到的數(shù)據(jù)正是oxaa(十六進(jìn)制),并且,在接受完成后recv信號(hào)會(huì)輸出一個(gè)脈寬的高電平作為提示。由上述可知,數(shù)據(jù)接收的過(guò)程也完全正確。4.4本章小結(jié)本章通過(guò)ise 對(duì)uart的整個(gè)模塊的vhdl模型進(jìn)行仿真,并得出仿真波形。介紹了

52、uart的工作流程和uart的整個(gè)測(cè)試環(huán)境。在這樣的環(huán)境下奇偶校驗(yàn)和總線選擇進(jìn)行了仿真與測(cè)試。結(jié)論本課題是針對(duì)uart芯片中的奇偶校驗(yàn)和總線選擇器所設(shè)計(jì)的。開(kāi)篇首先提出了課題研究的意義以及研究現(xiàn)狀,接下來(lái)分析了一下在課題研究中所用到的一些相關(guān)技術(shù):包括硬件描述語(yǔ)言(vhdl)、uart通信協(xié)議uart內(nèi)部寄存器的構(gòu)造以及各個(gè)部分的定義。然后根據(jù)以上的知識(shí)再利用top一down的設(shè)計(jì)方法對(duì)uart整個(gè)系統(tǒng)進(jìn)行層次化的設(shè)計(jì),設(shè)計(jì)的模塊主要包括: uart的信號(hào)檢測(cè)器及移位寄存器模塊的設(shè)計(jì)、 uart的內(nèi)核模塊設(shè)計(jì)、uart總體框架及頂層模塊設(shè)計(jì)、uart的波特率發(fā)生器及計(jì)數(shù)器模塊的設(shè)計(jì)、uart的

53、奇偶校驗(yàn)器及總線選擇器模塊的設(shè)計(jì)。在設(shè)計(jì)的過(guò)程中,根據(jù)系統(tǒng)的某個(gè)具體要求,對(duì)每個(gè)模塊進(jìn)行了優(yōu)化以及附加的設(shè)計(jì)。最后再對(duì)各個(gè)子模塊以及頂層模塊進(jìn)行了功能仿真驗(yàn)證,結(jié)果顯示基本符合設(shè)計(jì)目標(biāo)。比如具有可編程波特率的模式、可變的有效數(shù)據(jù)位長(zhǎng)度、奇偶校驗(yàn)?zāi)J?、錯(cuò)誤檢測(cè)處理以及內(nèi)部自診斷等等。本文介紹了設(shè)計(jì)方法,通過(guò)對(duì)系統(tǒng)按功能劃分模塊來(lái)進(jìn)行具體設(shè)計(jì)。首先介紹了通用異步接收發(fā)送器設(shè)計(jì)的背景及意義,然后敘述了串行通信的基本原理以及通用異步接收發(fā)送器的基本原理。在此基礎(chǔ)上,提出了uart的設(shè)計(jì)要求及各功能模塊劃分,并用vhdl硬件描述語(yǔ)言具體實(shí)現(xiàn)了接收和發(fā)送的描述,波特率發(fā)生器,發(fā)送器,接收器,接口模塊和mo

54、dem控制器等功能模塊。在uart的奇偶校驗(yàn)器及總線選擇器模塊的設(shè)計(jì)中,考慮到奇偶校驗(yàn)和總線選擇的一些因素,對(duì)各個(gè)模塊的具體設(shè)計(jì)做了優(yōu)化。文中采用參數(shù)化設(shè)計(jì)方法,增強(qiáng)系統(tǒng)可移植性??紤]到uart對(duì)時(shí)鐘的特殊要求,對(duì)系統(tǒng)時(shí)鐘做了一定的改進(jìn)。對(duì)uart的各個(gè)模塊,尤其是關(guān)鍵部件進(jìn)行了全面的邏輯驗(yàn)證。在行為級(jí)、綜合后、映射后仿真層面上分別進(jìn)行了仿真驗(yàn)證。參考文獻(xiàn)1 梁婕高德遠(yuǎn),張盛兵,段然.通用異步串行通信接口的ip核設(shè)計(jì)j.微型電腦應(yīng)用,2005, (04) :11-180.2 張松,董玲,于宗光,須文波,薛忠杰.一種適合于soc集成的uart核的設(shè)計(jì)實(shí)現(xiàn)j. 微電子學(xué)與計(jì)算機(jī),2005(09):

55、132-150 .3 nios embedded processor 32-bit programmers reference manualm. altera .inc .2003.1:55-90.4 劉明章.基于fpga的嵌入式系統(tǒng)設(shè)計(jì)m.北京:國(guó)防工業(yè)出版社,2007.(09)9:100-139.5 劉韜,樓興華.編著.fpga數(shù)字系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)實(shí)例導(dǎo)航m.北京:人民郵電出版社,2005. 6: 100-230. 6 李強(qiáng),潘明,許勇.編寫(xiě)基于fpga的risc微型處理器的設(shè)計(jì)與實(shí)現(xiàn)n.廣西科學(xué)院學(xué)報(bào),2005.6.18(04):100-134.7 華新遠(yuǎn),馮丹,童薇.基于pci接口的嵌入式系統(tǒng)啟動(dòng)卡研究j.計(jì)算機(jī)工程與設(shè)計(jì),2006, (09) :50-90.8 linn c,debray s. obfuscation of executable code to improveresistance to static disassembly c .10th a

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論