基于FPGA器件EP1C12Q240CQ8芯片實(shí)現(xiàn)UAR核心功能的設(shè)計(jì)_第1頁(yè)
基于FPGA器件EP1C12Q240CQ8芯片實(shí)現(xiàn)UAR核心功能的設(shè)計(jì)_第2頁(yè)
基于FPGA器件EP1C12Q240CQ8芯片實(shí)現(xiàn)UAR核心功能的設(shè)計(jì)_第3頁(yè)
基于FPGA器件EP1C12Q240CQ8芯片實(shí)現(xiàn)UAR核心功能的設(shè)計(jì)_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

基于FPGA器件EP1C12Q240CQ8芯片實(shí)現(xiàn)UAR核心功能的設(shè)計(jì)引言隨著嵌入式系統(tǒng)的廣泛推廣和應(yīng)用,UART(UniversalAsynchronousReceiverTransmiller)作為一種串行數(shù)據(jù)傳輸方式也得到廣泛的使用。UART允許在串行鏈路上進(jìn)行全雙工通信。串行外設(shè)到RS232-C異步串行接口一般采用專用的集成電路即UART實(shí)現(xiàn)。常見(jiàn)的串行接口芯片如8250、8251、NS16450等,能夠?qū)崿F(xiàn)比較全面的串行通信功能。而在實(shí)際應(yīng)用中,我們往往并不需要如此完整的功能,從而會(huì)造成資源的浪費(fèi)和成本的提高。隨著EDA技術(shù)的飛速發(fā)展,我們就可以根據(jù)自己的需求,將所需要的UART功能集成到FPGA內(nèi)部,從而簡(jiǎn)化了電路、減小了體積、提高了系統(tǒng)的可靠性?;谶@種思想,在設(shè)計(jì)中選用Altera公司的EP1C12Q240CQ8,使用VerilogHDL設(shè)計(jì)實(shí)現(xiàn)UART的核心功能。1UART通信原理串行通信分為兩種類型:同步通信方式和異步通行方式。UART是通用異步發(fā)送器,是一種串行異步通信方式。它是各種設(shè)備之間進(jìn)行通信的關(guān)鍵模塊,允許在串行鏈路上進(jìn)行全雙工的通信。在發(fā)送端,并行的數(shù)字信號(hào)需要轉(zhuǎn)化成串行信號(hào)才能通過(guò)有線或無(wú)線傳輸?shù)搅硗庖慌_(tái)設(shè)備;而在接收端,串行信號(hào)必須要被恢復(fù)成并行信號(hào)才能進(jìn)行數(shù)據(jù)處理。UART就是用來(lái)處理這種數(shù)據(jù)與串口之間的串并和并串轉(zhuǎn)換的。UART傳送一個(gè)字符以起始位(StartBit)開(kāi)始,以停止位(StopBit)結(jié)束,字符之間沒(méi)有固定的時(shí)間間隔要求。每一個(gè)字符的前面都有一個(gè)起始位(低電平),字符本身由5~8位數(shù)據(jù)位組成,然后是一位校驗(yàn)位(可選),最后是停止位(1位,1位半或2位),停止位后面是不定長(zhǎng)度的空閑位。停止位和空閑位都規(guī)定高電平,這樣就可以保證起始位開(kāi)始處有一個(gè)下降沿。2UART在FPGA中的實(shí)現(xiàn)2.1UART的硬件電路設(shè)計(jì)在串行通信中,普遍采用的是RS-232接口標(biāo)準(zhǔn)。硬件電路主要由FPGA串口模塊、MAX3232和DB-9組成,電路圖如圖2所示。數(shù)據(jù)從DB-9的TxD端進(jìn)入,經(jīng)過(guò)MAX3232進(jìn)行電平轉(zhuǎn)換后由FPGA串口模塊中的RxD端進(jìn)入,進(jìn)行串并轉(zhuǎn)換后由數(shù)據(jù)總線進(jìn)入FPGA的其他模塊。數(shù)據(jù)處理后經(jīng)由數(shù)據(jù)總線進(jìn)入FPGA串口模塊,在其中進(jìn)行并串轉(zhuǎn)換后由TxD端輸出到MAX3232中,經(jīng)電平轉(zhuǎn)換后由DB-9的RxD端輸出。2.2UART的結(jié)構(gòu)設(shè)計(jì)UART主要由波特率發(fā)生模塊、發(fā)送模塊、接收模塊這三個(gè)部分組成。2.2.1波特率發(fā)生模塊當(dāng)UART在發(fā)送數(shù)據(jù)的時(shí)候,只需要按照一定的速率將數(shù)據(jù)串行地移動(dòng)出就可以了。然而,當(dāng)UART在接收串行的數(shù)據(jù)時(shí),在什么時(shí)刻將數(shù)據(jù)移入移位寄存器是非常關(guān)鍵的。最理想的情況是在串行數(shù)據(jù)的每一位的中間時(shí)刻,對(duì)串行數(shù)據(jù)進(jìn)行采樣。對(duì)每一位數(shù)據(jù)的時(shí)間進(jìn)行分段,時(shí)間的分段越多,對(duì)串行數(shù)據(jù)的采樣就越靠近中點(diǎn),由于接收方和發(fā)送方的時(shí)鐘不可能完全同步,時(shí)間的分段越多,接收方出現(xiàn)采樣錯(cuò)誤的概率就越低。但時(shí)間的分段越多,也意味著采樣時(shí)間就越高,系統(tǒng)的開(kāi)銷就越大。因此,在實(shí)際的設(shè)計(jì)中,采用16倍于波特率的時(shí)鐘頻率。UART收發(fā)的每一個(gè)數(shù)據(jù)寬度都是波特率發(fā)生器輸出的時(shí)鐘周期的16倍。如按照9600b/s進(jìn)行收發(fā),那么波特率發(fā)生器的輸出時(shí)鐘頻率應(yīng)為9600×16Hz。由于外部時(shí)鐘采用25MHz,可以很簡(jiǎn)單地通過(guò)總線寫(xiě)入不同的數(shù)值到波特率發(fā)生器保持寄存器中,然后用計(jì)數(shù)器的方式生成所需要的各種波特率。計(jì)算公式為:25000000/(16×所期望的波特率)-1。2.2.2發(fā)送模塊發(fā)送模塊主要實(shí)現(xiàn)對(duì)并行數(shù)據(jù)的緩存,并串轉(zhuǎn)換,然后把串行數(shù)據(jù)按照既定數(shù)據(jù)幀格式進(jìn)行輸出,其機(jī)構(gòu)如圖3所示:實(shí)驗(yàn)中串行數(shù)據(jù)結(jié)構(gòu)為1位起始位,8位數(shù)據(jù)位,1位奇偶校驗(yàn)位,1位停止位。數(shù)據(jù)的發(fā)送由外部接收模塊控制,接收模塊給出wrn信號(hào),UART發(fā)送模塊根據(jù)此信號(hào)將并行數(shù)據(jù)data-input鎖存進(jìn)發(fā)送緩沖,并通過(guò)移位寄存器進(jìn)行并串轉(zhuǎn)換,在轉(zhuǎn)換結(jié)束后加上奇偶校驗(yàn)位,發(fā)送到端口txd進(jìn)行串行輸出。在整個(gè)工作過(guò)程中,輸出信號(hào)tbre作為標(biāo)志信號(hào),在串行數(shù)據(jù)全部輸出完畢之后變成0,并在發(fā)送模塊未工作時(shí)保持為0。2.4接收模塊接收模塊的結(jié)構(gòu)如圖4所示。接收模塊的作用是把收到的串行數(shù)據(jù)轉(zhuǎn)換成并行數(shù)據(jù)進(jìn)行輸出,并判斷收到數(shù)據(jù)是否有錯(cuò)。接收模塊的內(nèi)部結(jié)構(gòu)及工作過(guò)程與發(fā)送模塊類似,只不過(guò)接收模塊的工作和發(fā)送模塊的工作相反,是進(jìn)行數(shù)據(jù)的串并轉(zhuǎn)換。rxddout[7:0]rdndatareadyrstparity-errorclk16xframing-errora)rxd接收串行數(shù)據(jù)輸入;b)rdn為輸入控制端,只有rdn為0時(shí),并行數(shù)據(jù)才允許輸出;c)data-ready為數(shù)據(jù)是否準(zhǔn)備好的標(biāo)志;d)parity-error為校驗(yàn)位是否出錯(cuò)的標(biāo)志;e)framing-error為幀是否出錯(cuò)的標(biāo)志;f)data-out[7:0]為并行數(shù)據(jù)輸出端。接收模塊從捕捉到數(shù)據(jù)串的第一個(gè)0開(kāi)始工作,然后把隨后依次輸入的8個(gè)數(shù)據(jù)位通過(guò)移位在寄存器中完成竄并轉(zhuǎn)換,并將并行數(shù)據(jù)輸出至端口data-out。將8個(gè)數(shù)據(jù)位移位至寄存器后,接收模塊將檢測(cè)輸入數(shù)據(jù)串的最后一位是否為1(停止位)來(lái)判斷接收到的數(shù)據(jù)幀是否出錯(cuò),若不為1,就將輸出framing-error置1。3仿真驗(yàn)證在實(shí)驗(yàn)中,作者選用Altera公司的Cyclone系列產(chǎn)品中的EP1C12Q240C8芯片,硬件描述語(yǔ)言采用VerilogHDL,用Quartus5.1進(jìn)行邏輯綜合,仿真工具則使用ModelSim6.0。發(fā)送模塊和接收模塊的仿真結(jié)果分別如圖5所示。發(fā)送的數(shù)據(jù)能夠嚴(yán)格按照串行通信協(xié)議進(jìn)行傳輸;接收的數(shù)據(jù)也完全正確。通過(guò)仿真測(cè)試后,將程序下載到FPGA芯片中運(yùn)行,結(jié)果通信數(shù)據(jù)正確,電路工作穩(wěn)定、可靠。4結(jié)束語(yǔ)用FPGA實(shí)現(xiàn)了UART通信功能,可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的接收和發(fā)送,并可以在接收數(shù)據(jù)時(shí)對(duì)其校驗(yàn)位、停止位進(jìn)行判斷,在發(fā)送數(shù)據(jù)時(shí)可以形成完整的一幀數(shù)據(jù)格式。本文利用FPGA設(shè)計(jì)實(shí)現(xiàn)了U

溫馨提示

  • 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)論