資源描述:
《uart原理及接收模塊設(shè)計(jì)原理》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、UART原理2.1UART的通信原理UART即通用異步收發(fā)器,是一種串行通信方式。數(shù)據(jù)在傳輸過程中是通過一位一位地進(jìn)行傳輸來實(shí)現(xiàn)通信的,串行通信方式具有傳輸線少,成本底等優(yōu)點(diǎn),缺點(diǎn)是速度慢。串行通信分為兩種類型:同步通信方式和異步通信方式。但一般多用異步通信方式,主要因?yàn)榻邮芎桶l(fā)送的時鐘是可以獨(dú)立的這樣有利于增加發(fā)送與接收的靈活性。異步通信是一個字符接著一個字符傳輸,一個字符的信息由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位組成。每一個字符的傳輸靠起始位來同步,字符的前面一位是起始位,用下降沿通知收方開始傳輸,緊接著起始位之后的是
2、數(shù)據(jù)位,傳輸時低位在前高位在后,字符本身由5~8位數(shù)據(jù)位組成。數(shù)據(jù)位后面是奇偶校驗(yàn)位,最后是停止位,停止位是用高電平來標(biāo)記一個字符的結(jié)束,并為下一個字符的傳輸做準(zhǔn)備。停止位后面是不同長度的空閑位。停止位和空閑位都規(guī)定為高電平,這樣可以保證起始位有一個下降沿。UART的幀格式如圖2.1所示。0/10/10/10/10/10/10/10/1LSBMSB起始位數(shù)據(jù)位停止位校驗(yàn)位空閑位圖2.1UART的幀格式Figure2.1TheframeformatofUARTUART的幀格式包括線路空閑狀態(tài)(idle,高電平)、起始位(st
3、art?bit,低電平)、5~8位數(shù)據(jù)位(data?bits)、校驗(yàn)位(parity?bit,可選)和停止位(stop?bit,位數(shù)可為1、1.5、2位)。?在串口的異步通信中,數(shù)據(jù)以字節(jié)為單位的字節(jié)幀進(jìn)行傳送。發(fā)送端和接收端必須按照相同的字節(jié)幀格式和波特率進(jìn)行通信。其中字節(jié)幀格式規(guī)定了起始位、數(shù)據(jù)位、寄偶效驗(yàn)位、停止位。起始位是字節(jié)幀的開始。使數(shù)據(jù)線處于邏輯0狀態(tài),用于向接收端表明開始發(fā)送數(shù)據(jù)幀,起到使發(fā)送和接收設(shè)備實(shí)現(xiàn)同步。停止位是字節(jié)幀的終止,使數(shù)據(jù)線處于邏輯1狀態(tài)。用于向接收端表明數(shù)據(jù)幀發(fā)送完畢。波特率采用標(biāo)準(zhǔn)速度
4、9600bit/s。這種格式是由起始位和停止位來實(shí)現(xiàn)字符的同步。UART內(nèi)部一般有配置寄存器,可以配置數(shù)據(jù)位數(shù)(5~8位)、是否有校驗(yàn)位和校驗(yàn)的類型、停止位的位數(shù)(1,1.5,2)等設(shè)置將發(fā)送器和接收器模塊組裝起來,就能較容易地實(shí)現(xiàn)通用異步收發(fā)器總模塊,而且硬件實(shí)現(xiàn)不需要很多資源,尤其能較靈活地嵌入到FPGA/CPLD的開發(fā)中。2.2UART的結(jié)構(gòu)UART的設(shè)計(jì)采用模塊化的設(shè)計(jì)思想,主要分為3個模塊:數(shù)據(jù)發(fā)送模塊、數(shù)據(jù)接收模塊及波特率發(fā)生器控制模塊。發(fā)送模塊實(shí)現(xiàn)數(shù)據(jù)由并行輸入到串行輸出,接收模塊實(shí)現(xiàn)數(shù)據(jù)由串行輸入到并行輸出
5、,波特率發(fā)生器模塊控制產(chǎn)生UART時鐘頻率。CPU總線接口控制邏輯發(fā)送部分接收部分波特率發(fā)生器對象器件接收圖2.2UART的典型結(jié)構(gòu)圖Figure2.2ThetypicalstructureofUART從圖中可以看出UART主要有由數(shù)據(jù)總線接口、控制邏輯、波特率發(fā)生器、發(fā)送部分和接收部分組成且控制邏輯一般是由MP即微處理器模塊實(shí)現(xiàn),圖中的對象器件一般指和CPU進(jìn)行通信的外圍串行通信設(shè)備類打印機(jī)等。連線采用最簡單的3線制連接模式,即只需要兩根信號線和一根地線來完成數(shù)據(jù)收發(fā)。而FPGA只需要選擇兩個普通I/O引腳分別與接口芯片
6、MAX3232對應(yīng)引腳T2IN、R2OUT相連即可完成將串口電平轉(zhuǎn)換為設(shè)備電路板的工作電平,即實(shí)現(xiàn)RS-232電平和TTL/CMOS電平的轉(zhuǎn)換。一個MAX3232芯片可以支持兩個串口的電平變換,我們選擇其中的一組接口,圖中的4個電阻可以省去。在電路中加入了0Ω的跳線電阻,是為了在這組接口出故障時可以方便地跳線,使用另一組接口。3UART模塊設(shè)計(jì)3.2接收模塊3.2.1接收模塊的實(shí)現(xiàn)方法串行數(shù)據(jù)幀和接收時鐘是異步的,發(fā)送來的數(shù)據(jù)由邏輯1變?yōu)檫壿?可以視為一個數(shù)據(jù)幀的開始。接收器先要捕捉起始位,在rdn信號有效的條件下,由rx
7、d1非與rxd2相與,啟動接收程序,計(jì)數(shù)器開始計(jì)數(shù),數(shù)據(jù)從rxd[7..0]串行輸入,由接收移位寄存器rsr[7..0]逐位移位接收,并在接收完成時傳送給接收緩沖寄存器rbr[7..0],最后,接收緩沖寄存器rbr[7..0]將接收的數(shù)據(jù)傳送至dout[7..0],由它并行輸出。確定rxd輸入由1到0,邏輯0要8個CLK16時鐘周期,才是正常的起始位,然后在每隔16個CLK16時鐘周期采樣接收數(shù)據(jù),移位到輸入接收移位寄存器rsr,最后輸出數(shù)據(jù)dout。還要輸出一個數(shù)據(jù)接收標(biāo)志信號標(biāo)志數(shù)據(jù)接收完。當(dāng)rdn為0的情況下,接收器
8、才開始接收數(shù)據(jù),而數(shù)據(jù)由接收移位寄存器傳給接收數(shù)據(jù)緩沖器主要由no_bits_sent信號控制。當(dāng)no_bits_sent==0時SDO的值為0,就是數(shù)據(jù)的起始位,當(dāng)no_bits_sent==1,2,3,4,5,6,7,8時開始接收八位數(shù)據(jù),當(dāng)no_bits_sent==9時sdo〈=奇偶校驗(yàn)位的值此