![VHDL串口通信_(tái)第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/149484c1-c8c9-488d-ae53-8dc64f6f7f13/149484c1-c8c9-488d-ae53-8dc64f6f7f131.gif)
![VHDL串口通信_(tái)第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/149484c1-c8c9-488d-ae53-8dc64f6f7f13/149484c1-c8c9-488d-ae53-8dc64f6f7f132.gif)
![VHDL串口通信_(tái)第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/149484c1-c8c9-488d-ae53-8dc64f6f7f13/149484c1-c8c9-488d-ae53-8dc64f6f7f133.gif)
![VHDL串口通信_(tái)第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/149484c1-c8c9-488d-ae53-8dc64f6f7f13/149484c1-c8c9-488d-ae53-8dc64f6f7f134.gif)
![VHDL串口通信_(tái)第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/8/149484c1-c8c9-488d-ae53-8dc64f6f7f13/149484c1-c8c9-488d-ae53-8dc64f6f7f135.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、4.UART模塊設(shè)計(jì)UART 異步通信串口協(xié)議的 VHD 墳現(xiàn)包括 3 個(gè)基本模塊:時(shí)鐘分頻、接收模塊和發(fā)送模塊,下面逐一介紹其實(shí)現(xiàn)方法。4.2.1 時(shí)鐘分頻模塊由于 UAR 現(xiàn)異步傳輸,沒(méi)有傳輸同步時(shí)鐘。為了能保證數(shù)據(jù)傳輸?shù)恼_性,UAR*用 16 倍數(shù)據(jù)波特率的時(shí)鐘進(jìn)行采樣。每個(gè)數(shù)據(jù)有 16 個(gè)時(shí)鐘采樣,取中間的采樣值,以保證采樣不會(huì)滑碼或誤碼。一般 UAR幀的數(shù)據(jù)位數(shù)為 8,這樣即使每個(gè)數(shù)據(jù)有一個(gè)時(shí)鐘的誤差,接收端也能正確地采樣到數(shù)據(jù)。這里采用常用的數(shù)據(jù)波特率為 9600bps,則所需時(shí)鐘的頻率為 16*9600。系統(tǒng)時(shí)鐘為 50MHz 則分頻系數(shù)為 50000000/(16*9600)
2、=325.52,取整為 325。分頻器實(shí)現(xiàn)相對(duì)簡(jiǎn)單,這里對(duì)其設(shè)計(jì)流程圖不做詳細(xì)介紹。只是將設(shè)計(jì)過(guò)程和結(jié)果簡(jiǎn)述如下:首先用 VHDL 語(yǔ)言進(jìn)行設(shè)計(jì)輸入,并生成模塊文件如圖 4.3 所示,其中 clk 為 50M系統(tǒng)時(shí)鐘輸入,clkout 為 325 分頻后時(shí)鐘輸出。clkdivclkclkoutiinst4EII-:i|.-rain4ii-ifraa-rftig1圖 4.3 分頻模塊然后建立波形文件,對(duì)以上模塊進(jìn)行時(shí)序仿真,仿真結(jié)果如圖 4.4 所示,方正結(jié)果說(shuō)明,分頻輸出實(shí)現(xiàn)了對(duì)輸入的 325 分頻,分頻模塊設(shè)計(jì)正確。發(fā)送過(guò)程:空閑狀態(tài),線路處于高電平;當(dāng)受到發(fā)送數(shù)據(jù)指令后,拉低線路一個(gè)數(shù)據(jù)位
3、的時(shí)間 T,接著數(shù)據(jù)按地位到高位依次發(fā)送,數(shù)據(jù)發(fā)送完畢后,接著發(fā)送停止位(停止位為高電平),一幀數(shù)據(jù)發(fā)送結(jié)束。(1)模塊流程圖根據(jù)以上發(fā)送過(guò)程,發(fā)送模塊算法示意圖設(shè)計(jì)如圖 4,5 所示。圖 4.5UART 發(fā)送數(shù)據(jù)算法示意圖(2)生成模塊文件新建一原理圖文件,將 VHDL文件生成對(duì)應(yīng)的模塊文件如圖 4,6 所示,其中 clk 為時(shí)鐘輸入,datain 為需要發(fā)送的數(shù)據(jù)輸入,wrsig 為發(fā)送命令輸入,idle 為忙閑信號(hào)輸出,tx 為串行數(shù)據(jù)輸出端。IuarttxL;TicCIK1rJlH1cistainLX.ujDCwrsiginsM圖 4.6UART 發(fā)送模塊(3)波形仿真要對(duì)發(fā)送模塊進(jìn)行
4、時(shí)序仿真必須設(shè)計(jì)一測(cè)試模塊,即在每一個(gè) clk 來(lái)時(shí)產(chǎn)生一個(gè)八位的數(shù)據(jù)。測(cè)試模塊代碼如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitytestuartisport(clk:instd_logic;dataout:outstd_logic_vector(7downto0);wrsig:outstd_logic);endtestuart;architectureoneoftestuartissignaldataoutreg:std_lo
5、gic_vector(7downto0);signalcnt:std_logic_vector(7downto0);begindataout=dataoutreg;process(clk)beginif(clkeventandclk=1)thenif(cnt=11111110)thendataoutreg=dataoutreg+00000001;wrsig=1;cnt=00000000;elsewrsig=0;cnt,K,sni,r,rrs,ri,r一,rrs,ri,rL,lrniTmiTlAideclkcKom保存原理圖為 uartrxts.bdf。編譯工程文件,編譯無(wú)誤后新建波形仿真文:i
6、nstIfrStuarlideinslllllTmITdaiut|7.Ouerlrxdk由初oi7JDinOrdsigusmx拙也審.口wrsigc*tMeciUip.fiwrsig件,加入輸入輸出信號(hào),設(shè)置系統(tǒng)時(shí)鐘 clk 為 50MHz 保存為 uartrxts.vwf,進(jìn)行 UAR 微據(jù)接收的波形仿真,波形仿真報(bào)告如圖 4.12 所示。對(duì)上圖分析看出,UAR 被收模塊接收到的數(shù)據(jù)與 UARTg 送模塊發(fā)送的數(shù)據(jù)相一至,每接收到一個(gè)數(shù)據(jù)都有一個(gè)讀取數(shù)據(jù)指示 rdisg,UART收模塊得到正確驗(yàn)證。4.2.3 硬件測(cè)試按照下圖連接個(gè)模塊,在 PC 機(jī)上安裝一個(gè)串口調(diào)試工具,通過(guò)串口調(diào)試工具向
7、FPGAS 送一個(gè)數(shù)據(jù),看在 PC 機(jī)上能否接受到發(fā)送的數(shù)據(jù)。測(cè)試結(jié)果如下夠FldatioutAIoYd12YDIYRY51ftY7Y3Y9TTi圖 4.12UART 接收模塊仿真結(jié)果附錄:程序代碼UART 分頻模塊代碼:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityclkdivisport(clk:instd_logic;clkout:outstd_logic);endclkdiv;architectureoneofclkdivis
8、signalcnt:std_logic_vector(15downto0);beginprocess(clk)beginif(clkeventandclk=1)thenif(cnt=0000000010100010)thenclkout=1;cnt=cnt+”0000000000000001”;elsif(cnt=0000000101000100)thenclkout=0;cnt=0000000000000000;elsecnt=cnt+0000000000000001;endif;endif;endprocess;endone;UART 發(fā)送模塊代碼:libraryieee;useieee.
9、std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityuarttxisport(clk:instd_logic;datain:instd_logic_vector(7downto0);wrsig:instd_logic;idle:outstd_logic;tx:outstd_logic);enduarttx;architectureoneofuarttxissignalsend:std_logic;signalwrsigbuf:std_logic;signalidlereg:std
10、_logic;signalwrsigrise:std_logic;signalcnt:std_logic_vector(7downto0);beginidle=idlereg;process(clk)beginif(clkeventandclk=1)thenwrsigbuf=wrsig;wrsigrise=(notwrsigbuf)andwrsig;endif;endprocess;process(clk)beginif(clkeventandclk=1)thenif(wrsigrise=1and(notidlereg=1)thensend=1;elsif(cnt=10100000)thens
11、endtx=0;idlereg=1;cnttx=datain(0);idlereg=1;cnttx=datain(1);idlereg=1;cnttx=datain(2);cnttx=datain(3);idlereg=1;cnttx=datain(4);idlereg=1;cnttx=datain(5);idlereg=1;cnttx=datain(6);idlereg=1;cnttx=datain(7);idlereg=1;cnttx=1;idlereg=1;cnttx=1;cntcnt=cnt+00000001;endcase;elsetx=1;cnt=00000000;idlereg=
12、0;endif;endif;endprocess;endone;UART 接收模塊代碼:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityuartrxisport(clk:instd_logic;rx:instd_logic;dataout:outstd_logic_vector(7downto0);rdsig:outstd_logic);enduartrx;architectureoneofuartrxissignaldataoutre
13、g:std_logic_vector(7downto0);signalrdsigreg:std_logic;signalcnt:std_logic_vector(7downto0);signalrxbuf:std_logic;signalrxfall:std_logic;signalreceive:std_logic;signalidle:std_logic;beginprocess(clk)beginif(clkeventandclk=1)thenrxbuf=rx;if(rxbuf=1andrx=0)thenrxfall=1;elserxfall=0;endif;endif;endproce
14、ss;process(clk)beginif(clkeventandclk=1)thenif(rxfall=1andidle=0)thenreceive=1;elsif(cnt=10011000)thenreceiveidle=1;cnt=cnt+”00000001”;rdsigidle=1;dataout(0)=rx;cnt=cnt+00000001;rdsigidle=1;dataout(1)=rx;cnt=cnt+00000001;rdsigidle=1;dataout(2)=rx;cnt=cnt+”00000001”;rdsigidle=1;dataout(3)=rx;cnt=cnt+
15、00000001;rdsigidle=1;dataout(4)=rx;cnt=cnt+00000001;rdsigidle=1;dataout(5)=rx;cnt=cnt+00000001;rdsigidle=1;dataout(6)=rx;cnt=cnt+00000001;rdsigidle=1;dataout(7)=rx;rdsig-idle=1;-cnt=cnt+”00000001”;-rdsigcnt=cnt+00000001;endcase;elsecnt=00000000;idle=0;rdsig=0;endif;endif;endprocess;endone;UART 測(cè)試模塊代碼:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitytestuartisport(clk:instd_logic;dataout:outstd_logic_vector(7downto0);wrsig:outstd_logic);endtestuart;architectureoneoftestuartissignaldataoutreg:std_logic_vector(7downto0);-signa
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋租賃合同(附房屋交割清單)
- 2025年四川省職教高考《語(yǔ)文》核心考點(diǎn)必刷必練試題庫(kù)(含答案)
- 第2章 陸地和海洋(真題重組卷)-(解析版)
- 2025年河北軟件職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年河北政法職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年江西水利職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年江西婺源茶業(yè)職業(yè)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 2025年江蘇城鄉(xiāng)建設(shè)職業(yè)學(xué)院高職單招高職單招英語(yǔ)2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年無(wú)錫科技職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年承德石油高等??茖W(xué)校高職單招職業(yè)技能測(cè)試近5年常考版參考題庫(kù)含答案解析
- 蛋糕店服務(wù)員勞動(dòng)合同
- 土地買賣合同參考模板
- 2025高考數(shù)學(xué)二輪復(fù)習(xí)-專題一-微專題10-同構(gòu)函數(shù)問(wèn)題-專項(xiàng)訓(xùn)練【含答案】
- 2025年天津市政建設(shè)集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 2024-2030年中國(guó)烘焙食品行業(yè)運(yùn)營(yíng)效益及營(yíng)銷前景預(yù)測(cè)報(bào)告
- 寧德時(shí)代筆試題庫(kù)
- 康復(fù)醫(yī)院患者隱私保護(hù)管理制度
- 公司安全事故隱患內(nèi)部舉報(bào)、報(bào)告獎(jiǎng)勵(lì)制度
- 沈陽(yáng)理工大學(xué)《數(shù)》2022-2023學(xué)年第一學(xué)期期末試卷
- 北京三甲中醫(yī)疼痛科合作方案
- QCT957-2023洗掃車技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論