您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > UART-串行异步通信解析
UART串行异步通信本节内容:1、数据通信原理。2、串行异步收发器(UART)。3、UART驱动程序设计。数据通信方式数据通信的基本方式可分为并行通信和串行通信两种:并行通信:利用多条数据线将数据的各位同时传送。其特点是传输速度快,适用于短距离通信。串行通信:利用一条数据线将数据一位位地顺序传送,特点是通信线路简单,成本低,适用于远距离通信。数据传送方式:单工方式:数据始终是从A设备发送B设备半双工方式:既能从A设备传送到B设备,也能从B设备传送到A设备,但在任何时刻都不能在两个方向上同时传送,即每次只能有一个设备发送,另一个设备接收。全双工方式:允许通信双方同时进行发送和接收,这时,A设备在发送的同时也可以接收,B设备也一样。ABABAB数据通信协议通信协议:是指通信的双方约定的一些规则。一般情况下通信硬件线路越简单,需要的软件协议越复杂,协议占用数据量越多。异步通信数据格式:空闲位、起始位、奇偶检验位、停止位。异步串行通信协议:1位起始位--8位数据位—1位校验位—1位停止位起始位:先发一个逻辑“0”信号,表示传输字符的开始数据位:紧接在起始位之后,从最低位开始传送,发送速率靠时钟定位奇偶校验位:数据位加上这一位后,使得“1”的位数为偶数(偶检验)或者奇数(奇校验),以此校验数据传输的正确性。停止位:它是一个字符数据的结束标志空闲位:处于逻辑“1”状态,表述当前线路上没有数据传输。波特率波特率是衡量数据传送速率的指标,单位为位/秒(bit/s)或比特。记录每秒钟传送的二进制位数。RS-232c串口规范RS-232标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronicindustryassociation)代表美国电子工业协会,RS(recommededstandard)代表推荐标准,232是标识号,c代表RS232的最新一次修改(1969)常用物理标准还有EIA-RS-232-CEIA-RS-422-AEIA-RS-423AEIA-RS-485RS-232C接线方式RS-232C串口的接线方式有全串口连线、3线连接等方式3线连接方式:RXD,TXD和GNDRS-232C的通讯距离和速度RS-232C能够可靠进行数据传输的最大通讯距离为15米传输速度一般都可以达到115200bps甚至更高,标准串口能够提供的传输速度主要有以下波特率:1200bps2400bps4800bps9600bps19200bps38400bps57600bps115200bpsUART原理通用异步收发器简称UART,用来传输串行数据发送时:CPU将并行数据写入UART,UART按照一定的格式在一根线上串行发出数据。接收时:UART检测另一根线上的信号,收集串行数据放在缓冲区中,CPU即可读取UART获得这些数据。UART连线图:(1)UART之间以全双工方式传输数据,TXD用于发送,RXD用于接收,GND用于给双方提供参考电压。(2)TXD、RXD数据线以“位”最小单位传输数据。(3)帧:由具有完整意义的、不可分隔的若干位组成,它包含开始位、数据位、校验位和停止位。(4)发送数据前,UART之间要约定好波特率、数据传输格式6410UARTPCUARTUART原理:UART使用标准TTL/CMOS逻辑电平(0-5v,0-3.3v)来表示数据,高电平位1,低电平位0:为了增强数据的抗干扰能力。提高传输长度,通常将TTL/CMOS转位RS-232逻辑电平(3-12v表示0,-3----12V表示1)。数据传输流程:(1)平时数据线处于“空闲”状态(1状态)(2)当要发送数据时,UART改变TXD数据线的状态(变为0状态)并维持1位的时间,这样接收方检测到开始位后,一位位的检测数据线的状态得到所传输的数据。(3)UART一帧中可以有5、6、7、或8位数据,发送方一位位地改变数据线的状态将它们发送出去,首先发送最低位。(4)如果用校验功能,UART在发送完数据位后,还要发送1个校验位。最后,发送停止位,数据线恢复到“空闲”状态(1状态)S3c6410是UART:功能:支持可编程的波特率、红外发送/接受,可插入一个或两个停止位,支持5-8位数组宽度和奇偶校验。UART单元组成:(1)、一个波特率发生器(2)、一个发送器(3)、一个接收器(4)、一个控制单元S3C6410X.pdfS3C6410的UART(1)S3C6410通用异步接收和发送器(UART)提供了四个独立的异步串行I/O端口。(2)每个异步串行I/O端口通过中断或者直接存储器存取(DMA)模式来操作。换句话说,UART是通过产生一个中断或者DMA请求,在CPU和UART之间传输数据的。(3)UART使用系统时钟的时间可以支持的比特率最高为115200b/s.每个UART的通道包含了两个64字节收发FIFO存储器。(4)S3C6410的UART包括可编程波特率,红外线的传送/接收,一个或两个停止位插入,5位,6位,7位或8位数据的宽度和奇偶校验。控制UART相关寄存器:共9个,分为两组:6个控制寄存器和3个指示传送状态寄存器。控制寄存器:线路控制寄存器(ULCONn)控制寄存器(UCONn)FIFO控制寄存器(UFCONn)MODEM控制寄存器(UMCONn)发送寄存器(UTXHn)和接收寄存器(URXHn)波特率因子寄存器(UBRDIVn)指示传送状态寄存器:状态寄存器(UTRSTATn)错误状态寄存器(USERSTATn)FIFO状态寄存器(UFSTATn)UART驱动程序设计串口初始化发送数据功能接收数据功能UART初始化设置UART通道管脚设置波特率设置数据传输格式选择通道工作模式初始化UART通道管脚ok6410开发板串口是配置UART0端口例如:GPA口控制配置GPACON寄存器,禁止上下拉电阻。GPACON&=~0X0ffGPACON|=0X22;GPAUD=0x00;设置波特率S3C6410UART的时钟源有两种选择:PCLK,EXT_UCLK,通过UCONn[11:10]进行设置UBRDIVn=(int)(UARTCLOCK/(buadrate*16))-1例如:时钟源选择时钟源采用PCLKUCON0=(UCON0&=~(0X310))|(0X210);波特率设置#definePCLK66000000baud=115200UBRDIV0=(U32)((PCLK/baud/16)-1);设置传输格式通过ULCON可以设置传输格式:数据位、校验位、停止位、流控等。#defineWORLD_LEN(0X30)#defineSTOP_BIT(0X02)#definePARITY_MODE(0X03)#defineIRD_MODE(0x06)ULCON0=(ULCON0&(~0Xff))|WORLD_LEN|STOP_BIT|PARITY_MODE|IRD_MODE设置通过工作方式:通过UCONn[3:0]设置UART中断方式通过UFCONn设置是否使用FIFO、FIFO触发阀值(即发送FIFO中有多少个数据时产生中断、接收FIFO中有多少个数据时产生中断)a、不使用FIFO时,可以认为FIFO的深度为1,使用FIFO时,FIFO的深度为64.b、使用FIFO时,通过UFSTATn检测FIFO是否已满、其中有多少个数据。中断为脉冲方式,不产生接收错误状态中断,发射接收均为正常模式UCON0=(UCON0|0X05);FIFO禁止UFCON0=UFCON0|0X0;流控禁止UMCON0=UMCON0|0X0;发送数据:将要发送的数据写入UTXHn,UART会将它保持到发送缓冲区中,并自动发出去。接收数据:当UART收到数据,保存到接收缓冲区中,CPU读取URXHn寄存器,即可获得数据。发送、接收时机可以通过发送、接收中断来控制发送、接收时机。如果采用轮询模式,UTRSTATn寄存器用来表明数据是否已经发送完毕、是否已经接收到数据。UART基本接口设计voiduart_init(void){引脚配置波特率设置工作模式}发送一个字节:voiduart_send_byte(unsignedcharbyte){当UTRSTAT0发送缓冲为空则将byte写入UTXH0}接收一个字节unsignedcharuart_recv_byte(void){当URTSTAT0接收缓冲满则从URXH0接收一个字节从函数返回该字节}例:编写程序实现PC与6410之间的通信。(1)、初始化程序。(2)、发送数据子函数。(3)、接收数据子函数。
本文标题:UART-串行异步通信解析
链接地址:https://www.777doc.com/doc-6902981 .html