通用异步收发器

上传人:清****欢 文档编号:243129170 上传时间:2024-09-16 格式:PPTX 页数:42 大小:1.08MB
返回 下载 相关 举报
通用异步收发器_第1页
第1页 / 共42页
通用异步收发器_第2页
第2页 / 共42页
通用异步收发器_第3页
第3页 / 共42页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,010 UART,模块,通用异步收发器,(,Universal Asynchronous Receiver/Transmitters,,,UART,),数据通信的基本方式,:,并行通信与串行,通信,.,1,、串行通信基础知识,并行通信,:,指利用多条数据传输线将一个数据的各位同时,传送,.,特点,:传输速度快,适用于短距离通信。,串行通信,:,指利用一条传输线将数据一位位地顺序传送。,特点:通信线路简单,利用电话或电报线路就可实现通信,降低成本,适用于远距离通信,但传输速度慢。,常见的串行传输,I2C,SPI,UART,USB,1394,ETHERNET,串行,通信,:分为,同步通信,(SYNC),与,异步通信,(,ASYNC,)两种方式。,通信的双方应该有一个约定,什么时候开始发送,什么时候发送完毕;接收方收到的信息是否正确等,这就是,通信协议,。主要,解决,传送速率、信息格式、位同步、字符同步、数据校验等,问题。,UART,通常采用,NRZ,数据格式,(,“标准不归零传号,/,空号数据格式”,),“不归零”的最初含义是:用正、负电平表示二进制值,不使用零电平。“,mark/space”,即“传号,/,空号”分别是表示两种状态的物理名称,逻辑名称记为“,1/0”,。,1,、串行通信基础知识,异步通信,1,、串行通信基础知识,以,字符为单位传输,帧的组成: “起止同步式”,起始位,数据位,校验位,,停止位,.,优点,:硬件结构简单。,缺点:传输速度慢。,同步通信,1,、串行通信基础知识,在,同步通信中,发送方在数据或字符开始处就用同步字符,(,常约定,1,2,个字节,),指示一帧的开始 ,由时钟来实现发送端和接收端同步,接收方一旦检测到与规定的同步字符符合,下面 就连续按顺序传送若干个数据 ,最后发校验字节。,SYN,字符,1,SYN,字符,2,数据,1,数据,2,.,数据,n,连续传送,n,个数据,校验,数据传输速率,比特率,(,Bit Rate,),每秒传输的二进制位,数,bps,波特率,(,Baud Rate,),每秒传输的离散状态,数,在一个信道上,如果只有高、低电平两种离散状态(分别代表“,1”,和“,0”,),则波特率与比特率刚好一致。,如果在某个信道中可以传输多种不同的离散状态,则每个状态可以携带两位或两位以上的二进制数,此时,波特率就不等于比特率。,波特率标准值,300,600,900,1200,1800,2400,4800,9600,19200,38400,57600,115200,1,、串行通信基础知识,校验,Parity,Check,校验的意义:检出错误,由软件纠正(请求重发),差错由软件确认,硬件不提供出错信息,无校验,(None),添加校验位,该位是“,1”,或“,0”,,使得字符的数据位加校验位,,“,1”,的个数是,奇数,奇校验,(,Odd ),偶数,偶校验,( Even ),采用何种校验是通信双方事先规定好的(通信协议)。,仍有出错概率。,Ethernet,采用更加复杂的校验,算法,.,1,、串行通信基础知识,串行通信的传输方式,1,、串行通信基础知识,站,A,站,B,单工,单工(,Simplex,):,数据传送是单向的,一端为发送端,另一端为接收端。这种传输方式中,除了地线之外,只要一根数据线就可以了。有线广播就是单工的。,全双工(,Full-duplex,):数据传送是双向的,且可以同时接收与发送数据。这种传输方式中,除了地线之外,需要两根数据,线。,一般情况下,,MCU,的异步串行通信接口均是全双工的。,全双工,站,A,站,B,站,A,站,B,半双工,在计算机串行通讯中主要使用半双工和全双工方式。,半双工,(,Half-duplex,):数据传送也是双向的,但是在这种传输方式中,除了地线之外,一般只有一根数据线。任何一个时刻,只能由一方发送数据,另一方接收数据,不能同时收发,。,串行通信的传输方式,1,、串行通信基础知识,例,1,某异步通信的波特率为,4800,,,8,个数据位,无校验位,一个停止位。试估算每个字符传输所需要的时间。,解:,起始位,1,位,,8,位数据位,无校验位,一个停止位,则一个字符的编码为,1+8+0+1=10,位。,波特率为,4800,,即,4800,位,/,秒,传输,10,位所需要的时间是,10/48000.002083,秒,即,2.083,毫秒。,UART,通信的速度不是很高!,1,、串行通信基础知识,TTL,电平标准的直接通信,MCU,引脚输入,/,输出只是(,Transistor Transistor Logic,)电平,不适合长距离通信。,RS-232C,(,15m 9600bps,),美国电子工业协会,EIA,(,Electronic Industry Association,)制订了串行物理接口标准。,“1”= -3 -15V ; “0”=+3+15V,RS422/RS-485,标准,(1.2km 9600bps),使用一对线传输:“,1”: A=H, B=L ; “0”: A=L, B=H,差分型接收,不依赖公共,地线,9,芯串行接口排列,RS-232C,串行接口,引脚,功 能,引脚,功 能,1,接收线信号检测,(,载波检测,DCD),6,数据通信设备准备就绪,(DSR),2,接收数据线,(RXD),7,请求发送,(RTS),3,发送数据线,(TXD),8,允许发送,(CTS),4,数据终端准备就绪,(DTR),9,振铃指示,5,信号地,(SG),TTL,电平到,RS-232,电平转换电路,MAX3232,或,MAX232,MAX232,引脚,2. UART,模块功能,串行通信接口的主要功能是:接收时,把外部的单线输入的数据变成一个字节的并行数据送入,MCU,内部;发送时,把需要发送的一个字节的并行数据转换为单线输出。,接受引脚,RxD,发送引脚,TxD,发送移位寄存器,接受移位寄存器,UART,数据,寄存器,MCU,内部总线,UART,控制,寄存器,UART,状态,寄存器,UART,波特率,寄存器,串行通信接口的功能:,接收,串,/,并转换,发送,并,/,串转换,K60,的,UART,模块功能,K60,具有,6,个相同且独立的,UART,模块,支持,ISO7816,(智能卡标准),支持,LIN,总线(,CAN,的下级总线),IrDA,(红外接口)和硬件流量控制。,1,外部引脚,(未计入,Modem,引脚),TXDx,发送数据引脚;,RXDx,接收数据引脚。,x =,0,5,。,2,波特率发生器,UART0,和,UART1,时钟源为内核时钟,UART2,UART5,的时钟源为外设时钟(总线时钟)。,波特率由一个,13,位的模数计数器和一个,5,位的分数微调计数器共同决定。,UART Registers,常用组,UARTx_BDH, _BDL,UARTx_C1, _C2,_C3,_C4,UARTx_S1,UARTx_D,_ED,高级应用,FIFO 7,个,DMA,相关,1,个,地址匹配,UARTx_MA1,_MA2,_C4,红外,Infrared 1,个,MODEM,相关,1,个,其它,不常用,非典型应用,7816,智能卡相关,9,个,CEA709.1-B,相关,25,个,均为,8,位,,x = 05,对应,6,个完全独立、相同的,UART,端口,K60,的,UART,模块功能,2,波特率发生器,UART0,和,UART1,时钟源为内核时钟,UART2,UART5,的时钟源为外设时钟(总线时钟)。,波特率由一个,13,位的模数计数器和一个,5,位的分数微调计数器共同决定。,UART baud rate = UART module clock / (16 (SBR12:0 + BRFD),sbr,控制 UART 波特率发生器的预分频,数,波特率微调位控制分数微调计数器增,加分数延迟到波特率时钟来允许波特率精修以匹配系统波特率,sbr= (uint16_t)(sysclk*1000)/(baud * 16),brfa = (sysclk*32000)/(baud * 16) - (sbr * 32);,接收器每个位接收时间为16 个时钟周期,UART Baud Rate Registers,UARTx_BDH,UARTx_BDL,UART,波特率寄存组由,UARTx_BDH4:0,和,UARTx_BDL7:0,组成,,,先,写,UARTx_BDH4:0,,后,写,UARTx_BDL7:0,;当,C2RE,或者,C2TE,置位时,,UART,开始,工作。,UART,baud rate = UART module clock / (16 (SBR12:0 + BRFD,),BRFD,在,UARTx_C4,UART Control Register 4 (UARTx_C4),位,描述,4-0 BRFA,Baud Rate Fine Adjust,UART Control Register 1 (UARTx_C1),位,描述,4,M,9,位或,8,位模式选择位,。,0,:,正常模式,-,起始位,+8,位数据位(由,MSBF,决定,MSB/LSB,优先),+,停止位。,1,:,9,位模式,-,起始位,+9,位数据位,+,停止位。,1,PE,奇偶校验使能位,当奇偶校验使能时,停止位前会被入一个奇偶校验位。,0:,奇偶校验功能禁止;,1:,奇偶校验功能使能。,0,PT,校验类型。,0,:偶校验;,1:,奇校验。,UART Control Register 2 (UARTx_C2),位,描述,7,TIE,发送器中断或,DMA,传送使能位,。,0: TDRE,中断和,DMA,传送请求禁止。,1: TDRE,中断或者,DMA,传送使能。,6,TCIE,传送结束中断使能,位。,0: TC,中断请求禁止。,1: TC,中断请求使能。,5,RIE,接收器满中断或,DMA,传送使能位。,0: RDRF,中断和,DMA,传送请求禁止。,1: RDRF,中断或,DMA,传送请求使能。,3,TE,发送器使能,位。,0,:禁止;,1,:使能。,2,RE,接收器使能位。,0,:禁止;,1,:使能,0,SBK,发送中止位。,UART Control Register 3 (UARTx_C3),R8,Received Bit 8,T8,Transmit Bit 8,ORIE,Overrun Error Interrupt Enable,FEIE,Framing Error Interrupt Enable,PEIE,Parity Error Interrupt Enable,UART Status Register 1 (UARTx_S1),位,描述,7,TDRE,发送数据寄存器空标志位,。,发送缓冲区中的数据个数,=TWFIFO TXWATER,时,,RDRF,被置位。,4,LDLE,空闲线标志位,。,3,OR,接收器溢出标志,位。,0,:没有溢出;,1,:溢出。,2,NF,噪声标志位。,1,FE,帧错误标志位。,0,PF,奇偶校验错误标志位。,UART Data Register (UARTx_D),UARTx_D,由两个单独的寄存器组成:只读的接收数据寄存器和只写的发送数据寄存器,对它读时只读接收数据寄存器中的内容,写时只写入到发送数据寄存器。,System Clock Gating Control Register 4 (SIM_SCGC4),位,描述,13 UART3,UART3 Clock Gate Control, This bit controls the clock gate to the UART3 module.,0: Clock disabled; 1: Clock enabled,12 UART2,0: Clock disabled; 1: Clock enabled,11 UART1,0: Clock disabled; 1: Clock enabled,10 UART0,0: Clock disabled; 1: Clock enabled,System Clock Gating Control Register 1 (SIM_SCGC1),位,描述,11 UART5,UART5 Clock Gate Control, This bit controls the clock gate to the UART5 module.,0: Clock disabled; 1: Clock enabled,10 UART4,0: Clock disabled; 1: Clock enabled,System Clock Gating Control Register,Field,Module,13 UART3,0: Clock disabled; 1: Clock enabled,12 UART2,0: Clock disabled; 1: Clock enabled,11 UART1,0: Clock disabled; 1: Clock enabled,10 UART0,0: Clock disabled; 1: Clock enabled,In SIM_SCGC4,In SIM_SCGC1,Field,Module,11 UART5,0: Clock disabled; 1: Clock enabled,10 UART4,0: Clock disabled; 1: Clock enabled,Pin Control Register n (PORTx_PCRn),alt3,是,UART,功能,UART5,初始化,K60 Signal Multiplexing and Pin Assignments,/ UART is alt3 function for this pin,PORTE_PCR8 = 0x038;/PORT_PCR_MUX(0x3);,PORTE_PCR9 = 0x038;/ PORT_PCR_MUX(0x3);,UART5,初始化,K60 Signal Multiplexing and Pin Assignments,实验用这个模块,UART初始化流程图,UART5,初始化,void UART5_init(int baud),register,unsigned,int sbr, brfa;,unsigned char temp;,/ UART is alt3 function for this pin,PORTE_PCR8 = 0x038; /,开引脚串口功能,PORTE_PCR9 = 0x038;,SIM_SCGC1 |= 111; /,开,UART5,时钟,;,/ Make sure that the transmitter and receiver are disabled,UART5_C2 ,/Configure the UART for 8-bit mode, no parity,UART5_C1 = 0;,#define periph_clk 48000000,UART5,初始化(接上页),/ Determine if a fractional divider is needed,brfa = (periph_clk *32)/(baud * 16)-(sbr * 32),/ Save the UARTx_C4 register except for the BRFA field,temp = UART5_C4 ,UART5_C4= temp | brfa;,/Enable receiver and transmitter,UART5_C2 |= (13 | 12);,sbr = (unsigned int)(periph_clk /(baud * 16);,/ Save the current value of the UARTx_BDH except for the SBR field,temp,= UART5_BDH ,UART5_BDH,= temp | (sbr ,UART5_BDL,= (unsigned char)(sbr);,实现UART收发的两种方式,UART实现收发数据功能,有两种方式:,(1)查询方式,接受数据时,通过查询UART_S1的RDRF位来判断是否接收完毕;,发送数据时,通过查询UART_S1的TDRE位来判断是否发送完毕;,(2)中断方式,UART5 send data,(查询方式),void UART5_putchar ( char ch),/* Wait until space is available in the FIFO */,while(!(UART5_S1 ,/* Send the character */,UART5_D = (,unsigned char)ch;,void UART5_putstring(char *str),unsigned int i,len;,len =,strlen(str);,for(i=0;ilen;i+),UART5_putchar(stri);,/,发送,UART5 receive data,char UART5_getchar (void),/* Wait until character has been received */,while (!(UART5_S1 ,/* Return the 8-bit data from the receiver */,return UART5_D;,/,接收,例程,1,简单应用,1,、新建工程,testUART00,;基于,MK60DN512VMD10,,调试工具为,Open Source JTAG,。,2,、将,mcg.c,、,mcg.h,、,uart5.c,和,uart5.h,加入工程(拷贝文件),3,、,main,函数中,enable GPIO Clock Gate,,初始化,MCG,、,UART5,4,、调用,UART5_putstring,函数,,每隔一段时间从,UART5,输出,“welcome to K60 UART!n”,。,#include derivative.h /* include peripheral declarations */,#include mcg.h,#include uart5.h”,void delay(void),unsigned int i,j;,for(i=0;i3000;i+),for(j=0;j3000;j+),;,int main(void),SIM_SCGC5 |= 0x1f9;,pll_init();,UART5_init(19200);,UART5_putstring(system inited ok!n);,for(;) ,UART5_putstring(welcome to K60 UART!n);,delay();,return 0;,若将接收到的数据从串口发出去,#include derivative.h /* include peripheral declarations */,#include mcg.h,#include uart5.h”,int main(void),SIM_SCGC5 |= 0x1f9;,pll_init();,UART5_init(19200);,UART5_putstring(system inited ok!n);,for(;) ,UART5_putchar(UART5_getchar ();,return 0;,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 临时分类 > 人文社科


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!