畢業(yè)論文:基于FPGA的串口設(shè)計(jì)_第1頁(yè)
畢業(yè)論文:基于FPGA的串口設(shè)計(jì)_第2頁(yè)
畢業(yè)論文:基于FPGA的串口設(shè)計(jì)_第3頁(yè)
畢業(yè)論文:基于FPGA的串口設(shè)計(jì)_第4頁(yè)
畢業(yè)論文:基于FPGA的串口設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩102頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

I開(kāi)題報(bào)告 Ⅱ指導(dǎo)教師審查意見(jiàn) Ⅲ評(píng)閱教師評(píng)語(yǔ) 答辯會(huì)議記錄 V 外文摘要 5 6 61.2課題研究的研究背景 61.3國(guó)內(nèi)外的發(fā)展現(xiàn)狀、發(fā)展趨勢(shì)及存在的主要問(wèn)題 71.4課題研究的指導(dǎo)思想與技術(shù)路線 錯(cuò)誤!未定義書(shū)簽。31.5基于FPGA串口設(shè)計(jì)的技術(shù)要求 錯(cuò)誤!未定義書(shū)簽。4 3方案選擇 3.1設(shè)計(jì)語(yǔ)言的選擇 3.2電平轉(zhuǎn)換方式的選擇 錯(cuò)誤!未定義書(shū)簽。7 4系統(tǒng)硬件設(shè)計(jì) 4.1器件芯片介紹 4.2系統(tǒng)硬件框圖 4.3主要組成電路分析 4.4總電路圖設(shè)計(jì) 5系統(tǒng)軟件設(shè)計(jì) 5.2中斷子程序流程圖 錯(cuò)誤!未定義書(shū)簽。195.4AD7886軟件驅(qū)動(dòng)設(shè)計(jì) 錯(cuò)誤!未定義書(shū)簽。205.5系統(tǒng)源程序 6制作位移測(cè)量裝置的步驟 7總結(jié) 42-參考文獻(xiàn) 附錄1 附錄2 附錄3 前言第1頁(yè)(共37頁(yè))基于FPGA的串口設(shè)計(jì)[摘要]隨著微電子技術(shù)的快速發(fā)展,電子設(shè)備逐漸向著小型化.集成化方向的移植性較差等缺點(diǎn)。本設(shè)計(jì)是基于FPGA的嵌入式UART模塊化設(shè)計(jì)方法,將UART功能在文中都有詳細(xì)的介紹。整個(gè)設(shè)計(jì)都采用硬件描述語(yǔ)言(VHDL)實(shí)現(xiàn),并且采[關(guān)鍵字]FPGAUARTVHDLPC機(jī)MAX232基于FPGA的串口設(shè)計(jì)第2頁(yè)(共40頁(yè))前言第3頁(yè)(共37頁(yè))FengFengRan:ChenXiaojing,ElectronicInformation[Abstract]Withtherapiddevelopmentofmicroelecrequlrementsatthesametime,alsocalledlohighreliability.UARTbecauseobecomebroaderandsimpleserialdatacommunicationcmethodologyforembeddedUART,UARTmoduleswillbeintegratedbasedonthesemodulesfeaturehardwaredescriptionlanguageVHD基于FPGA的串口設(shè)計(jì)第4頁(yè)(共40頁(yè))前言第5頁(yè)(共37頁(yè))隨著FPGA/CPLD器件在控制領(lǐng)域的廣泛使用,開(kāi)發(fā)嵌于FPGA/CPLD器件內(nèi)部的通用異步收發(fā)器,以實(shí)現(xiàn)FPGA/CPLD開(kāi)發(fā)系統(tǒng)與PC機(jī)之間的數(shù)據(jù)通信是很有實(shí)際意義的。FPGA/CPLD器件與單片機(jī)、ARM等器件不同,內(nèi)部沒(méi)有集成UART,因此要實(shí)現(xiàn)串行通信,必須要獨(dú)立開(kāi)發(fā)UART模塊。本設(shè)計(jì)對(duì)于深入理解串口的工作原理和理解FPGA的工作流程具有啟示意義,并通過(guò)設(shè)計(jì)的過(guò)程FPGA的應(yīng)用能力和系統(tǒng)綜合設(shè)計(jì)能力將得到加強(qiáng)。第6頁(yè)(共40頁(yè))結(jié)合科研當(dāng)今社會(huì)是數(shù)字化的社會(huì),是數(shù)字集成電路廣泛應(yīng)用的社會(huì)。數(shù)字集成電路本超大規(guī)模集成電路(VLSIC,幾萬(wàn)門(mén)以上)以及許多具有特定功能的專(zhuān)用集成電路。但通用異步收發(fā)器(UniversalAsynchronousReceiver/Transmitter),簡(jiǎn)稱(chēng)為UART)由于具有數(shù)據(jù)通信時(shí)需要的連線少,具有相關(guān)工業(yè)標(biāo)準(zhǔn)提供的標(biāo)準(zhǔn)的接口電平規(guī)范等優(yōu)點(diǎn),在工業(yè)控制領(lǐng)域被廣泛采用.近年來(lái),隨著FPGA/CPLD器件在控制選題背景第7頁(yè)(共35頁(yè))1.3國(guó)內(nèi)外的發(fā)展現(xiàn)狀、發(fā)展趨勢(shì)及存在的主要問(wèn)題通用異步收發(fā)器(UniversalAsychronousReceiverTransmitter,UART)是雷達(dá)成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又cCellArray)這樣一個(gè)新概念,內(nèi)部包括可配置邏輯模塊CLB(ConfigurableLogicBlock)、輸出輸入模塊IOB(InputOutputBlock)和內(nèi)部連線(Interconnec第8頁(yè)(共40頁(yè))t)三個(gè)部分。1)采用FPGA設(shè)計(jì)ASIC電路,用戶(hù)不需要投片生產(chǎn),就能得到合用的芯片。2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。3)FPGA內(nèi)部有豐富的觸發(fā)器和I/0引腳。4)FPGA是ASIC電路中設(shè)計(jì)周期最短、開(kāi)發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。5)FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容??梢哉f(shuō),F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。目前系等。FPGA是由存放在片內(nèi)RAM中的程序來(lái)設(shè)置其工作狀態(tài)的,因此,工作時(shí)需要對(duì)片內(nèi)的RAM進(jìn)行編程。用戶(hù)可以根據(jù)不同的配置模式,采用不同的編程方式。加電改FPGA功能時(shí),只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。FPGA有多種配置模式:并行串行模式可以采用串行PROM編程FPGA;外設(shè)模式可以將FPGA作為微處理器的外設(shè),由微處理器對(duì)其編程。1)不同時(shí)鐘域轉(zhuǎn)換前言第9頁(yè)(共37頁(yè))2)高速電路設(shè)計(jì),信號(hào)完整性3)降低功耗1.4課題研究的指導(dǎo)思想與技術(shù)路線UART(即UniversalAsynchronousReceiverTransmitter通用異步收發(fā)器)是一種應(yīng)用廣泛的短距離串行傳輸接口。UART允許在串行鏈路上進(jìn)行全雙工的通信。串行外設(shè)用到的RS232-C異步串行接口,一般采用專(zhuān)用的集成電路即UART實(shí)現(xiàn)。如8250、8251、NS16450等芯片都是常見(jiàn)的UART器件,這類(lèi)芯片已經(jīng)相當(dāng)復(fù)雜,有的含有許多輔助的模塊(如FIFO),有時(shí)我們不需要使用完整的UART的功能和這些輔助功能。或者設(shè)計(jì)上用到了FPGA/CPLD器件,那么我們就可以將所需要的UART功能集穩(wěn)定且可靠。本文設(shè)計(jì)一利用FPGA實(shí)現(xiàn)的通用異步收發(fā)器UART,能實(shí)現(xiàn)與PC機(jī)之間的串口通信。1.5基于FPGA串口設(shè)計(jì)的技術(shù)要求(1)設(shè)計(jì)出能完成串行數(shù)據(jù)發(fā)送和接收的的串口,可實(shí)現(xiàn)與PC機(jī)的通訊。(2)設(shè)計(jì)波特率為9600bit/s(3)收發(fā)數(shù)據(jù)幀格式定義為:1位起始位,8位數(shù)據(jù)位和1位停止位。基于FPGA的串口設(shè)計(jì)第10頁(yè)(共40頁(yè))總結(jié)第11頁(yè)(共37頁(yè))2UART原理介紹因?yàn)橛?jì)算機(jī)內(nèi)部采用并行數(shù)據(jù),不能直接把數(shù)據(jù)發(fā)到Modem,必須經(jīng)過(guò)UART的寄存器(臨時(shí)內(nèi)存塊)中,再通過(guò)FIFO(FirstInputFirstOutput,先入先出隊(duì)UART是用于控制計(jì)算機(jī)與串行設(shè)備的芯片。有一點(diǎn)要注意的是,它提供了RS-232C數(shù)據(jù)終端設(shè)備接口,這樣計(jì)算機(jī)就可以和調(diào)制解調(diào)器或其它使用將由計(jì)算機(jī)內(nèi)部傳送過(guò)來(lái)的并行數(shù)據(jù)轉(zhuǎn)換為輸出的串行數(shù)據(jù)流。將計(jì)算機(jī)外部來(lái)的串行數(shù)據(jù)轉(zhuǎn)換為字節(jié),供計(jì)算機(jī)內(nèi)部使用并行數(shù)據(jù)的器件使用。在輸出的串行數(shù)據(jù)流中加入奇偶校驗(yàn)位,并對(duì)從外部接收的數(shù)據(jù)流進(jìn)行奇偶校驗(yàn)。在輸出數(shù)據(jù)流中加入啟停標(biāo)記,并從接收數(shù)據(jù)流中刪除啟停標(biāo)記。處理由鍵盤(pán)或鼠標(biāo)發(fā)出的中斷信號(hào)(鍵盤(pán)和鼠標(biāo)也是串行設(shè)備)??梢蕴幚碛?jì)算機(jī)與外部串行設(shè)備的同步管第12頁(yè)(共40頁(yè))基于FPGA的串口設(shè)計(jì)TAUART幀的格式包括線路空閑狀態(tài)(idle,高電平有效)、起始位(startbit,低電據(jù)位數(shù)(5~8位)可選、是否有校驗(yàn)位和校驗(yàn)的類(lèi)型等設(shè)置。格促掉止位中解總結(jié)波特率發(fā)生器和數(shù)據(jù)位計(jì)數(shù)器.在波特率時(shí)鐘的驅(qū)動(dòng)下移位寄存器將RxD線上的電模塊使用.檢測(cè)發(fā)送請(qǐng)求信號(hào)有效,則發(fā)送信號(hào)檢測(cè)器停止接收發(fā)送請(qǐng)求.發(fā)送請(qǐng)求信號(hào)傳到串特率時(shí)鐘的驅(qū)動(dòng)下,發(fā)送移位寄存器先發(fā)送一位起始位(邏輯0),然后將待發(fā)送的并行數(shù)據(jù)從最低位開(kāi)始逐位發(fā)出,數(shù)據(jù)發(fā)送完后,再發(fā)送一位停止位(邏輯1)。在移位寄存器移出一位邏輯值后數(shù)據(jù)位計(jì)數(shù)器加1,當(dāng)數(shù)據(jù)位計(jì)數(shù)器記滿10表示一帖數(shù)據(jù)一次發(fā)送請(qǐng)求.第13頁(yè)(共37頁(yè))基于FPGA的串口設(shè)計(jì)第14頁(yè)(共40頁(yè))3方案選擇本次設(shè)計(jì)用的硬件描述語(yǔ)言是VHDL,主要原因是以前學(xué)過(guò)該語(yǔ)言和它具有如下(1)與其他的硬件描述語(yǔ)言相比,VHDL具有更強(qiáng)的行為描述能力,從而決定了他成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語(yǔ)言。強(qiáng)大的行為描述能力是避開(kāi)具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證。(2)VHDL豐富的仿真語(yǔ)句和庫(kù)函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)系統(tǒng)的功能可行性,隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬。(3)VHDL語(yǔ)句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。符合市場(chǎng)需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個(gè)代發(fā)組共同并行工作才能實(shí)現(xiàn)。(4)VHDL對(duì)設(shè)計(jì)的描述具有相對(duì)獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。RS-232C是與RS499、RS423、RS422和RS485并列的一種UART(universalasynchronousreceiver/transmitter)接口標(biāo)準(zhǔn)規(guī)范和總線標(biāo)準(zhǔn)規(guī)范.這些規(guī)范雖然規(guī)定了不同的通信接口電氣特性、傳輸速率、連接特性和接口的機(jī)械特性等內(nèi)容,但是都對(duì)應(yīng)異步串行通信協(xié)議.由于實(shí)際中PC的外部接口配置為RS-232C已經(jīng)成為事實(shí)美信公司專(zhuān)門(mén)為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,所以電平轉(zhuǎn)換3.3FPGA核心芯片的選擇本系統(tǒng)用的主芯片是EP1C12Q240C8,該系列的芯片采用324引腳、BGA封裝的EP1C12FPGA,它擁有12060個(gè)LE,52個(gè)M4K片上RAM(共計(jì)239616bits),2個(gè)高性能PLL以及多達(dá)249個(gè)用戶(hù)自定義IO。同時(shí),系統(tǒng)還可以根據(jù)用戶(hù)不同的設(shè)不管從性能上而言,還是從系統(tǒng)靈活性上而言,它EP1C12核心板具有JTAG調(diào)試接口、50MHz高精度時(shí)鐘源等可用資源,因此對(duì)3.4總體設(shè)計(jì)框圖第15頁(yè)(共37頁(yè))4.1器件芯片介紹4.1.1FPGA核心板EP1C12介紹EP1C12核心板為基于AlteraCyclone器件的嵌入式系統(tǒng)開(kāi)發(fā)提供了一個(gè)很好的硬件平臺(tái),它可以為開(kāi)發(fā)人員提供以下資源:1主芯片采用AlteraCyclone器件EP1C12F324C82EPCS4I8配置芯片34個(gè)用戶(hù)自定義按鍵44個(gè)用戶(hù)自定義LED51個(gè)七段碼LED6標(biāo)準(zhǔn)AS編程接口和JTAG調(diào)試接口第16頁(yè)(共40頁(yè))第17頁(yè)(共37頁(yè))740MHz高精度時(shí)鐘源8三個(gè)高密度擴(kuò)展接口9系統(tǒng)上電復(fù)位電路10支持+5V直接輸入,板上電源管理模塊系統(tǒng)主芯片采用324引腳、BGA封裝的E1C12FPGA,它擁有12060個(gè)LE,52個(gè)M4K片上RAM(共計(jì)239616bits),2個(gè)高性能PLL以及多達(dá)249個(gè)用戶(hù)自定義IO。同時(shí),系統(tǒng)還可以根據(jù)用戶(hù)不同的設(shè)計(jì)需求來(lái)更換其它不同系列的核心板,5050MHz高精度時(shí)鐘NORFlashROMJTAG調(diào)試接口擴(kuò)展接口管理手動(dòng)復(fù)位基于FPGA的串口設(shè)計(jì)第18頁(yè)(共40頁(yè))FPGA開(kāi)發(fā)平臺(tái)提供了豐富的資源供學(xué)生或開(kāi)發(fā)人員學(xué)習(xí)使用,資源包括接口通信、控制、存儲(chǔ)、數(shù)據(jù)轉(zhuǎn)換以及人機(jī)交互顯示等幾大模塊,接口通信模塊包括SPI以及音頻CODE等;人機(jī)交互顯示模塊包括8個(gè)按鍵、16個(gè)LED發(fā)光二極管顯示、1602字符型點(diǎn)陣LCD、8位動(dòng)態(tài)7段碼管、實(shí)時(shí)時(shí)鐘、SD卡等。上述的這些資源模塊既可以滿足初學(xué)者入門(mén)的要求,也可以滿足開(kāi)發(fā)人員進(jìn)行二次開(kāi)發(fā)的要求。1、標(biāo)準(zhǔn)配置核心板為EP1C12核心板(核心芯片為EP1C12F324C8)??筛鼡Q4、1個(gè)256色VGA接口。5、1個(gè)標(biāo)準(zhǔn)串行接口??偨Y(jié)11、IC接口的EEPROM存儲(chǔ)器模塊。13、8位動(dòng)態(tài)七段碼管LED顯示。14、16個(gè)用戶(hù)自定義LED顯示,8個(gè)用戶(hù)自定義按鍵輸出。核心板核心板音頻/信號(hào)輸出模擬信號(hào)輸出EEPROM存儲(chǔ)器PC機(jī)電腦核心板擴(kuò)展接口圖5FPGA系統(tǒng)平臺(tái)功能框圖第19頁(yè)(共37頁(yè))第20頁(yè)(共40頁(yè))在FPGA開(kāi)發(fā)過(guò)程中,JTAG是一個(gè)比不可少的接口,因?yàn)殚_(kāi)發(fā)人員需要下載配置數(shù)據(jù)到FPGA。在NiosⅡ開(kāi)發(fā)過(guò)程中,JTAG更是起著舉足輕重的作用,因?yàn)橥ㄟ^(guò)JTAG接口,開(kāi)發(fā)人員不僅可以對(duì)NiosⅡ系統(tǒng)進(jìn)行在線仿真調(diào)試,而且還可以下載代碼或用戶(hù)數(shù)據(jù)到CFIFlash中。開(kāi)發(fā)板上提供如圖2-6所示的10針插座,其每個(gè)插針的信號(hào)定義見(jiàn)表1。JP1插座信號(hào)定義123456/7/8/9總結(jié)注:‘表示該插針沒(méi)有任何信號(hào)。晶振核心板上提供了高精度、高穩(wěn)定性50MHz的有源晶振,晶振所輸出的脈沖信號(hào)如果設(shè)計(jì)人員需要其它頻率時(shí)鐘源,可以在FPGA內(nèi)部進(jìn)行分頻或利用FPGA內(nèi)部PLL倍頻等途徑來(lái)得到。有源晶振的輸出端與FPGA的IO接口對(duì)應(yīng)關(guān)系如表2所示。40M時(shí)鐘信號(hào)EP1C12引腳MAX232芯片是美信公司專(zhuān)門(mén)為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電。第21頁(yè)(共37頁(yè))基于FPGA的串口設(shè)計(jì)引腳介紹第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個(gè)電源,提供給RS-232串口電平的需要。第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。數(shù)據(jù)通道。TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。第三部分是供電。15腳GND、16腳VCC(+5v)??偨Y(jié)1、符合所有的RS-232C技術(shù)標(biāo)準(zhǔn)2、只需要單一+5V電源供電3、片載電荷泵具有升壓、電壓極性反轉(zhuǎn)能力,能夠產(chǎn)生+10V和-10V電壓4、功耗低,典型供電電流5mA5、內(nèi)部集成2個(gè)RS-232C驅(qū)動(dòng)器6、內(nèi)部集成兩個(gè)RS-232C接收器7、高集成度,片外最低只需4個(gè)電容即可工作。RS232接口是1970年由美國(guó)電子工業(yè)協(xié)會(huì)(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠準(zhǔn)規(guī)定采用一個(gè)25個(gè)腳的DB25連接器,對(duì)連接器的每個(gè)引腳的信號(hào)內(nèi)容加以規(guī)定,RS-232C的功能特性定義了25芯標(biāo)準(zhǔn)連接器中的20根信號(hào)線,其中2條地線、4條數(shù)據(jù)線、11條控制線、3條定時(shí)信號(hào)線,剩下的5根線作備用或未定義。常用的只有10根,它們是:第23頁(yè)(共37頁(yè))(1)聯(lián)絡(luò)控制信號(hào)線:數(shù)據(jù)發(fā)送準(zhǔn)備好(Datasetready-DSR)——有效時(shí)(ON)狀態(tài),表明MODEM處于可以使用的狀態(tài)。數(shù)據(jù)終端準(zhǔn)備好(Dataterminalready-DTR)——有效時(shí)(ON)狀態(tài),表明數(shù)據(jù)終端可以使用。只表示設(shè)備本身可用,并不說(shuō)明通信鏈路可以開(kāi)始進(jìn)行通信了,能否開(kāi)始進(jìn)行通信要由下面的控制信號(hào)決定。終端要發(fā)送數(shù)據(jù)時(shí),使該信號(hào)有效(ON狀態(tài)),向MODEM請(qǐng)求發(fā)送。它用來(lái)數(shù)據(jù),是對(duì)請(qǐng)求發(fā)送信號(hào)RTS的響應(yīng)信號(hào)。當(dāng)MODEM已準(zhǔn)備好接收終端傳來(lái)的數(shù)據(jù),并向前發(fā)送時(shí),使該信號(hào)有效,通知終端開(kāi)始沿發(fā)送數(shù)據(jù)線TxD發(fā)送這對(duì)RTS/CTS請(qǐng)求應(yīng)答聯(lián)絡(luò)信號(hào)是用于半雙工MODEM系統(tǒng)中發(fā)送方式和接收方式之間的切換。在全雙工系統(tǒng)中,因配置雙向通道,故不需要RTS/CTS聯(lián)絡(luò)信號(hào),使其變高。接收線信號(hào)檢出(ReceivedLinedetection-RLSD)——用來(lái)表示DCE已接通通信鏈路,告知DTE準(zhǔn)備接收數(shù)據(jù)。當(dāng)本地的MODEM收到由通信鏈路另一端(遠(yuǎn)地)的MODEM送來(lái)的載波信號(hào)時(shí),使RLSD信號(hào)有效,通知終端準(zhǔn)備接收,第24頁(yè)(共40頁(yè))總結(jié)并且由MODEM將接收下來(lái)的載波信號(hào)解調(diào)成數(shù)字兩數(shù)據(jù)后,沿接收數(shù)據(jù)線RxD送到終端。此線也叫做數(shù)據(jù)載波檢出(DataCarrierdectection-DCD)線。振鈴指示(Ringing-RI)——當(dāng)MODEM收到交換臺(tái)送來(lái)的振鈴呼叫信號(hào)時(shí),使該信號(hào)有效(ON狀態(tài)),通知終端,已被呼叫。(2)數(shù)據(jù)發(fā)送與接收線:發(fā)送數(shù)據(jù)(Transmitteddata-TxD)——通過(guò)TxD終端將串行數(shù)據(jù)發(fā)送到接收數(shù)據(jù)(Receiveddata-RxD)——通過(guò)RxD線終端接收從MOD串行數(shù)據(jù),(DCE→DTE)。(3)地線:GND、Sig.GND保護(hù)地和信號(hào)地,無(wú)方向上述控制信號(hào)線何時(shí)有效,何時(shí)無(wú)效的順序表示了接口信號(hào)的傳送過(guò)程。例如,只有當(dāng)DSR和DTR都處于有效(ON)狀態(tài)時(shí),才能在DTE和DCE之間進(jìn)行傳送操作。若DTE要發(fā)送數(shù)據(jù),則預(yù)先將DTR線置成有效(ON)狀態(tài),等CTS線上收到有效(ON)狀態(tài)的回答后,才能在TxD線上發(fā)送串行數(shù)據(jù)。這種順序的規(guī)定對(duì)半雙工的通信線路特別有用,因?yàn)榘腚p工的通信才能確定DCE已由接收方向改為發(fā)送方向,這時(shí)線路才能開(kāi)始發(fā)送。2個(gè)數(shù)據(jù)信號(hào):發(fā)送TXD;接收RXD。6個(gè)控制信號(hào):第25頁(yè)(共37頁(yè))基于FPGA的串口設(shè)計(jì)RTSDTE請(qǐng)求DCE發(fā)送(RequestToSend)。CTSDCE允許DTE發(fā)送(ClearToSend),該信號(hào)是對(duì)RTS信號(hào)的回答。DCD數(shù)據(jù)載波檢測(cè)(DataCarrierDetection),當(dāng)本地DCE設(shè)備(Modem)收到對(duì)方的DCE設(shè)備送來(lái)的載波信號(hào)時(shí),使DCD有效,通知DTE準(zhǔn)備接收,并且由DCE將接收到的載波信號(hào)解調(diào)為數(shù)字信號(hào),經(jīng)RXD線送給DTE。RI振鈴信號(hào)(Ringing),當(dāng)DCE收到對(duì)方的DCE設(shè)備送來(lái)的振鈴呼叫信號(hào)時(shí),使該信號(hào)有效,通知DTE已被呼叫。由于RS232接口標(biāo)準(zhǔn)出現(xiàn)較早,難免有不足之處,主要有以下四點(diǎn):(1)接口的信號(hào)電平值較高,易損壞接口電路的芯片,又因?yàn)榕cTTL電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL電路連接。(2)傳輸速率較低,在異步傳輸時(shí),波特率≤20Kbps。(3)接口使用一根信號(hào)線和一根信號(hào)返回線而構(gòu)成共地的傳輸形式,這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。(4)傳輸距離有限,最大傳輸距離標(biāo)準(zhǔn)值為50英尺(實(shí)際≤15米)。RS232(DB9)接口定義總結(jié)圖8接口說(shuō)明1DCD載波檢測(cè)2RXD接收數(shù)據(jù)3TXD發(fā)送數(shù)據(jù)4DTR數(shù)據(jù)終端準(zhǔn)備好5SG信號(hào)地6DSR數(shù)據(jù)準(zhǔn)備好7RTS請(qǐng)求發(fā)送4.2系統(tǒng)硬件框圖第27頁(yè)(共37頁(yè))本系統(tǒng)設(shè)計(jì)目標(biāo)主要包括兩個(gè)部分:FPGA模塊、電平轉(zhuǎn)換模塊。FPGA模塊主要由波特率產(chǎn)生模塊、數(shù)據(jù)發(fā)送模塊、數(shù)據(jù)接收模塊三部分組成。下圖為FPGA的頂層原理圖。第28頁(yè)(共40頁(yè))總結(jié)甲國(guó)T圖10.頂層模塊的電路圖波特率產(chǎn)生模塊:波特率發(fā)生器實(shí)際上就是一個(gè)分頻器。可以根據(jù)給定的系統(tǒng)時(shí)鐘(晶振時(shí)鐘)和要求的波特率算出波特率分頻因子,算出的波特率分頻器的分頻數(shù)。即分頻數(shù)=系統(tǒng)時(shí)鐘/(16×波特率),波特率分頻數(shù)可以根據(jù)不同的應(yīng)用需要更改。題目要求波特率為9600bit/s,由于FPGA的EP1C12核心板提供了高精度、高穩(wěn)定性的40MHz時(shí)鐘源。波特率發(fā)生器模塊圖如下所示第29頁(yè)(共37頁(yè))baudbelkUART接收器模塊:由于串行數(shù)據(jù)幀和接收時(shí)鐘是異步的,由邏輯1轉(zhuǎn)為邏輯0可以被視為一個(gè)數(shù)據(jù)幀的起始位。然而,為了避免毛刺影響,能夠得到正確的起始位信號(hào),第30頁(yè)(共40頁(yè))總結(jié)必須要求接收到的起始位在波特率時(shí)鐘采樣的過(guò)程中至少有一半都是屬于邏輯0才可認(rèn)定接收到的是起始位。由于內(nèi)部采樣時(shí)鐘bclk周期(由波特率發(fā)生器產(chǎn)生)是發(fā)送或接收波特率時(shí)鐘頻率的16倍,所以起始位需要至少8個(gè)連續(xù)bclk周期的邏輯0被接收到,才認(rèn)為起始位接收到,接著數(shù)據(jù)位和奇偶校驗(yàn)位將每隔16個(gè)bclk周期被采樣一次(即每一個(gè)波特率時(shí)鐘被采樣一次)。如果起始位的確是16個(gè)bclk周期長(zhǎng),那么接下來(lái)的數(shù)據(jù)將在每個(gè)位的中點(diǎn)處被采樣。狀態(tài)機(jī)一直在等待RXD的電平跳轉(zhuǎn),從邏輯1變?yōu)檫壿?,即起始位,這意味著新的一幀UART數(shù)據(jù)幀的開(kāi)始,一旦起始位被確定,狀態(tài)機(jī)將轉(zhuǎn)入RCENTER狀態(tài)。圖6中的RXDSYNC信號(hào)是RXD的同步信號(hào),因?yàn)樵谶M(jìn)行邏輯1或邏輯0判斷時(shí),不希望檢測(cè)的信號(hào)是不穩(wěn)定的,所以不直接檢測(cè)RXD信號(hào),而是檢測(cè)經(jīng)過(guò)同步后的2、R_CENTER狀態(tài):對(duì)于異步串行信號(hào),為了使每一次都檢測(cè)到正確的位信號(hào),而是在較后的數(shù)據(jù)位檢測(cè)時(shí)累計(jì)誤差較小,顯然在每位的中點(diǎn)檢測(cè)是最為理想的。在本狀態(tài),就是由起始位求出每位的中點(diǎn),通過(guò)對(duì)bclk的個(gè)數(shù)進(jìn)行計(jì)數(shù)(RCNT16),但計(jì)數(shù)值不是想當(dāng)然的“1000”,要考慮經(jīng)過(guò)一個(gè)狀態(tài),也即經(jīng)過(guò)了一個(gè)bclk周期,所希望得到的是在采樣時(shí)1/2位。另外,可能在R_START狀態(tài)檢測(cè)到的起始位不是真正的起始位,可能是一個(gè)偶然出現(xiàn)的干擾尖脈沖(負(fù)脈沖)。這種干擾脈沖的周期是很短的,所以可以認(rèn)為保持邏輯0超過(guò)1/4個(gè)位時(shí)間的信號(hào)一定是起始位。第31頁(yè)(共37頁(yè))基于FPGA的串口設(shè)計(jì)第32頁(yè)(共40頁(yè))“E七圖13UART接收器的接收狀態(tài)機(jī)注:狀態(tài)機(jī)一共有5個(gè)狀態(tài):R_START(等待起始位)、R_CENTER(求中點(diǎn))、R_WAIT(等待采樣)、R_SAMPLE(采樣)和R_STOP(停止位接收)。3、R_WAIT狀態(tài):當(dāng)狀態(tài)機(jī)處于這一狀態(tài),等待計(jì)滿15個(gè)bclk,在第16個(gè)bclk是進(jìn)入R_SAMPLE狀態(tài)進(jìn)行數(shù)據(jù)位的采樣檢測(cè),同時(shí)也判斷是否采集的數(shù)據(jù)位長(zhǎng)度已達(dá)到數(shù)據(jù)幀的長(zhǎng)度,如果到來(lái),就說(shuō)明停止位來(lái)臨了。在本設(shè)計(jì)中默認(rèn)為8,即對(duì)應(yīng)的UART工作在8位數(shù)據(jù)位、無(wú)校驗(yàn)位格式。5、RSTOP狀態(tài):無(wú)論停止位是1還是1.5位,或是2位,狀態(tài)機(jī)在RSTOP不具體檢測(cè)RXD,只是輸出幀接收完畢信號(hào)(REC_DONE<'1’),停止位后狀態(tài)機(jī)轉(zhuǎn)總結(jié)回到RSTART狀態(tài),等待下一個(gè)幀的起始位。圖14UART接收器的模塊圖Bclkr:波特率時(shí)鐘信號(hào)周期Rxdr:電平觸發(fā)信號(hào),從邏輯1變?yōu)檫壿?Rbuf:并行數(shù)據(jù)圖15UART接收器的仿真波形第33頁(yè)(共37頁(yè))第34頁(yè)(共40頁(yè))UART發(fā)送器模塊:發(fā)送器只要每隔16個(gè)bclk周期輸出一個(gè)數(shù)據(jù)即可,次序遵循第一位是起始位,第8位是停止位。在本設(shè)計(jì)中沒(méi)有校驗(yàn)位,但只要改變Generic參數(shù)這時(shí)由于XMIT_CMD是一個(gè)外加信號(hào),在FPGA之外,不可能對(duì)XMIT_CMD的脈幀的發(fā)送,顯然該幀的發(fā)送是錯(cuò)誤的。在此對(duì)XMIT_CMD進(jìn)行了脈沖寬度的限定,XMIT_CMD_P=‘1’,狀態(tài)機(jī)轉(zhuǎn)入X_START,準(zhǔn)備發(fā)送起始位。至TXD,即起始位。緊接著狀態(tài)機(jī)轉(zhuǎn)入XWAIT狀態(tài)。XCNT16是bclk的計(jì)數(shù)器。3、X_WAIT狀態(tài):同UART接收狀態(tài)機(jī)中的R_WAIT狀態(tài)類(lèi)似。4、X_SHIFT狀態(tài):當(dāng)狀態(tài)機(jī)處于這一狀態(tài)時(shí),實(shí)現(xiàn)待發(fā)數(shù)器的并串轉(zhuǎn)換。轉(zhuǎn)換完成立即回到X_WAIT狀態(tài)。5、X_STOP:停止位發(fā)送狀態(tài),當(dāng)數(shù)據(jù)幀發(fā)送完畢,狀態(tài)16個(gè)bclk周期的邏輯1信號(hào),即1位停止位。狀態(tài)機(jī)送完停止位后回到XIDLE狀圖16發(fā)送狀態(tài)機(jī)的狀態(tài)圖p基于FPGA的串口設(shè)計(jì)第36頁(yè)(共40頁(yè))圖17UART發(fā)送器的模塊圖吼址數(shù)超Bclkt:波特率時(shí)鐘信號(hào)周期Resett:復(fù)位信號(hào)Txddone:串行數(shù)據(jù)Txd:數(shù)據(jù)幀圖18UART發(fā)送器的仿真波形4.3.2電平轉(zhuǎn)換模塊電平轉(zhuǎn)換是由MAX232芯片實(shí)現(xiàn)的。MAX232芯片是美信公司專(zhuān)門(mén)為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電。該模塊的作用就是實(shí)現(xiàn)電平轉(zhuǎn)換后于PC機(jī)相連。總結(jié)0O-Q0?162F了3了雪2要21243圖19MAX232電平轉(zhuǎn)換電路見(jiàn)附錄1和附錄2。波特率設(shè)置(9600bit/s)復(fù)位信號(hào)為0YNY完成準(zhǔn)備發(fā)送下一帖數(shù)據(jù)第38頁(yè)(共40頁(yè))總結(jié)第39頁(yè)(共37頁(yè))基于FPGA的串口設(shè)計(jì)第40頁(yè)(共40頁(yè))圖21數(shù)據(jù)介紹模塊流程圖圖21數(shù)據(jù)介紹模塊流程圖開(kāi)始開(kāi)始波特率設(shè)置(9600bit/s)Y準(zhǔn)備接收接收起始位(邏輯0超過(guò)1/4個(gè)位時(shí)間為起始位)NY接收停止位接收完成結(jié)束總結(jié)執(zhí)行。編寫(xiě)完程序后,要編譯,編譯通過(guò)后生成VHDL文件。文件編譯成功后將由QuartusⅡ9.0生成子模塊和狀態(tài)轉(zhuǎn)換圖,再在ModelSim里面運(yùn)行程序觀察波形。第41頁(yè)(共37頁(yè))基于FPGA的串口設(shè)計(jì)第-42-頁(yè)(共40頁(yè))本文對(duì)以FPGA為核心實(shí)現(xiàn)UART與PC機(jī)之間的串口通信的整體結(jié)構(gòu)、性能功用及各組成模塊的設(shè)計(jì)方法都做了較為詳細(xì)的研究。通過(guò)波特率發(fā)生器、發(fā)送器和接收器模塊的設(shè)計(jì)與仿真,能較容易地實(shí)現(xiàn)通用異步收發(fā)器總模塊,。本設(shè)計(jì)完全采用VHDL語(yǔ)言進(jìn)行描述。實(shí)現(xiàn)的UART設(shè)置了時(shí)鐘輸入clk,復(fù)位輸入reset,串行數(shù)據(jù)輸入rxd,讀寫(xiě)信號(hào)輸入rd和wr、片選輸入cs、傳送數(shù)據(jù)位數(shù)選擇輸入al和a0、定時(shí)器初值輸入count,串行發(fā)送數(shù)據(jù)輸入txd,接收寄存器狀態(tài)輸出rdfull、發(fā)送寄存器狀態(tài)輸出tdempty以及數(shù)據(jù)總線data。并詳細(xì)討論了采用VHDL對(duì)異步通信接口在FAGA上實(shí)現(xiàn)UART的全過(guò)程,再通過(guò)電平轉(zhuǎn)換與PC機(jī)相連,就實(shí)現(xiàn)了與PC機(jī)的通信。通過(guò)本次畢業(yè)設(shè)計(jì),我完成了基于FPGA串口設(shè)計(jì)。在這次畢業(yè)設(shè)計(jì)中使我對(duì)FPGA技術(shù)有了進(jìn)一步的認(rèn)識(shí),F(xiàn)PGA技術(shù)注重培養(yǎng)學(xué)生的自主創(chuàng)新的意識(shí)和能力,側(cè)重使用電子系統(tǒng)的設(shè)計(jì)。在整個(gè)設(shè)計(jì)中最難點(diǎn)和學(xué)習(xí)費(fèi)時(shí)在于硬件描述語(yǔ)言VHDL設(shè)計(jì)流程和ModelSimSE6.2b波形仿真。首先得學(xué)習(xí)軟件的安裝和使用,尤其在編譯成功后的仿真波形的測(cè)試。通過(guò)系統(tǒng)的學(xué)習(xí)使用對(duì)軟件的使用和對(duì)設(shè)計(jì)的編程都有在整個(gè)設(shè)計(jì)階段感受最為深刻的是掌握學(xué)習(xí)的方式和解決問(wèn)題的方法。首先是解決問(wèn)題的方式,在面臨的大量的信息中如何篩選出所需的信息,才是解決問(wèn)題的關(guān)鍵。結(jié)束語(yǔ)第-43-頁(yè)(共37頁(yè))畢業(yè)中出現(xiàn)的困難我通過(guò)和老師的溝通、查閱相關(guān)書(shū)籍、網(wǎng)上搜索以及同學(xué)的幫助,最終得到了解決。由于本人水平有限,文中難免存在不足之處,敬請(qǐng)各位老師和同學(xué)批評(píng)指正。參考文獻(xiàn)(1)陳永剛.基于FPGA的通用異步收發(fā)器的設(shè)計(jì)蘭州交通大學(xué)學(xué)報(bào)2010年(2)王敬美.基于FPGA和UART的數(shù)據(jù)采集器設(shè)計(jì)電子器件2009年4月(3)方喜波.基于FPGA串口通訊開(kāi)發(fā)計(jì)(7)張凱.林偉.VHDL實(shí)例剖析.北京:國(guó)防工業(yè)出版社,2004·(8)徐光輝.徐志軍.CPLD/FPGA的開(kāi)發(fā)與應(yīng)用.北京:電子工業(yè)出版社,2002·第44頁(yè)(共40頁(yè))致謝第45頁(yè)(共37頁(yè))域的熱情。在學(xué)業(yè)即將完成之際,謹(jǐn)向各位恩師表示我最衷心的感謝!最后,謹(jǐn)向所有關(guān)心、幫助和支持過(guò)我的老師、同學(xué)和家人們表示衷心的感謝!基于FPGA的串口設(shè)計(jì)附錄1數(shù)的那數(shù)的那附錄附錄2社理理第47頁(yè)(共37頁(yè))基于FPGA的串口設(shè)計(jì)附錄33主要程序(1)主程序附錄rec_ready,txd_out,txd_done_out:outstxdbuf_in:instd_logic_vector(7downto0);—待發(fā)送數(shù)據(jù)輸入rec_buf:outstd_logic_vector(7downtoO));—接收數(shù)據(jù)緩沖architectureBehavioraloftopissignalb:std_logic;ul:baudportmap(clk=>clk32mhz,resetb=>reset,bclk=>b);一頂層映射第49頁(yè)(共37頁(yè))基于FPGA的串口設(shè)計(jì)(2)波特率發(fā)生器模塊(baud.vhd)第51頁(yè)(共37頁(yè))elsifrising_edge(clk)thenbclk<=clkbit;基于FPGA的串口設(shè)計(jì)port(belkr,resetr,rxdr:instd_logic;一定義輸入輸出信號(hào)rbuf:outstd_logic_vector(7downtoarchitectureBehavioralofrecieverisprol:process(rxdr)ifrx

溫馨提示

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