S3C2410的串口UART及编程

上传人:飞*** 文档编号:51258359 上传时间:2018-08-13 格式:PPT 页数:456 大小:4.65MB
返回 下载 相关 举报
S3C2410的串口UART及编程_第1页
第1页 / 共456页
S3C2410的串口UART及编程_第2页
第2页 / 共456页
S3C2410的串口UART及编程_第3页
第3页 / 共456页
S3C2410的串口UART及编程_第4页
第4页 / 共456页
S3C2410的串口UART及编程_第5页
第5页 / 共456页
点击查看更多>>
资源描述

《S3C2410的串口UART及编程》由会员分享,可在线阅读,更多相关《S3C2410的串口UART及编程(456页珍藏版)》请在金锄头文库上搜索。

1、第六章 S3C2410的串口UART及编程6.1 S3C2410的串口UART概述 6.1.1 S3C2410异步串行通信(UART)单元 S3C2410 UART单元提供3个独立的异步串行通信接口,皆可 工作于查询、中断和DMA模式。使用系统时钟最高波特率达 230. 4 kb/s,如果使用外部设备提供的时钟,可以达到更高的 速率。每一个UART单元包含一个16字节的FIFO(First Input First Output,先进先出移位寄存器),用于数据的接收和发 送。 S3C2410 UART支持可编程波特率、红外发送/接收( UART2 ) 、1个或2个停止位、5位/6位/7位/8位数

2、据宽度和奇偶校验。n6.1.2 波特率的产生n波特率由一个专用的UART波特率分频寄存器(UBRDIVn) 控制,UBRDIVn值计算公n如下:n UBRDIVn=(int)ULK/(波特率 16)1n或者 UBRDIVn=(int) PLK/(波特率 16)1n式中:时钟选用ULK还是PLK由UART控制寄存器 UCONn10的状态决定。如果UCONn10=0,则用PLK 作为波特率发生器的时钟源频率;否则选用ULK作为波特 率发生器的时钟源频率。UBRDIVn的值必须在1(2161) 之间。n例如:若ULK或者PLK等于40 MHz,当波特率为115200 b/s 时,则nUBRDIVn=

3、(int)40 000 000/(115 200 16)一1=int(21. 7) 1= 211=20n6.1.3 UART通信操作n下面简略介绍UART操作,关于数据发送、数据 接收、中断产生、波特率产生、查询检测模式、 红外模式的详细介绍,参见下面6.3节。n发送数据帧是可编程的。一个数据帧包含1个起始 位、58个数据位、1个可选的奇偶校验位和12位 停止位,停止位通过行控制寄存器ULCONn配置 。n与发送数据帧类似,接收数据帧也是可编程的。 接收帧由1个起始位、58个数据位、l个可选的奇 偶校验位以及12位行控制寄存器ULCONn中设 定的停止位组成。接收器还可以检测溢出错、奇 偶校验

4、错、帧错误和传输中断,每一个错误均可 以设置一个错误标志。 溢出错误溢出错误(overrun error)(overrun error):指已接收到的数据在读:指已接收到的数据在读取之前被新接收的数据覆盖;取之前被新接收的数据覆盖; 奇偶校验错:指接收器检测到的校验和与设置的奇偶校验错:指接收器检测到的校验和与设置的不符;不符; 帧错误:指没有接收到有效的停止位;帧错误:指没有接收到有效的停止位; 传输中断:表示接收数据传输中断:表示接收数据RxDnRxDn保持逻辑保持逻辑0 0超过一超过一帧的传输时间。帧的传输时间。 在在FIFOFIFO模式下,如果模式下,如果RxFIFORxFIFO非空,

5、而在非空,而在3 3个字的传个字的传输时间内没有接受到数据,则产生超时。输时间内没有接受到数据,则产生超时。n6.2 UART的控制寄存器n6.2.1 UART行控制寄存器ULCONnn 该寄存器的位6决定是否使用红外模式,位5、位4和位3决定 校验方式,位2决定停止位长度,位1和位0决定每帧的数据位 数。具体如下:nULCONn7 保留;nULCONn6 红外线模式,0:正常模式;1:红外线模式 ;nULCONn5:3 校验模式,0xx:无校验;100:奇校验; 101:偶校验;nULCONn2 停止位,0:一个停止位;1:二个停止位;nULCONn1:0 数据位,00:5位;01:6位;1

6、0:7位;11: 8位。n6.2.2 UART控制寄存器UCONnn该寄存器决定UART的各种模式。nUCONn10 1:ULK做波特率发生器;0:PLK做波特 率发生器。nUCONn9 1:Tx中断电平触发;0:Tx中断脉冲触发 。nUCONn8 1:Rx中断电平触发;0:Rx中断脉冲触发 。nUCONn7 1:接收超时中断允许;0:接收超时中断 禁止。nUCONn6 1:产生接收错误中断;0:不产生接收错 误中断。nUCONn5 l:发送直接传给接收方式(loopback);0: 正常模式。nUCONn4 1:发送间断信号;0:正常模式发送。nUCONn3:2 发送模式选择:n 00:禁止

7、发送;n 01:中断或查询模式;n 10:DMA0请求(UART0 ) , DMA3请求(UART2);n 11:DMAl请求(UART1)。nUCONn1:0 接收模式选择。n 00:禁止接收;n 01:中断或查询模式;n 10 : DMA0请求UART0,DMA2请求UART2;n 11:DMAl请求UART1。n6.2.3 UART FIFO控制寄存器UFCONnnUFCONn7:6n 00:Tx FIFO寄存器中有0字节就触发中断;n 01:Tx FIFO寄存器中有4字节就触发中断;n 10:Tx FIFO寄存器中有8字节就触发中断;n 11:Tx FIFO寄存器中有12字节就触发中断

8、。nUFCONn5:4n 00:Rx FIFO寄存器中有4字节就触发中断;n 01:Rx FIFO寄存器中有8字节就触发中断;n 10:Rx FIFO寄存器中有12字节就触发中断;n 11:Rx FIFO寄存器中有16字节就触发中断。nUFCONn3 保留。nUFCONn2 1: FIFO复位清零Tx FIFO ;0 : FIFO复位不清零TxFIFO。nUFCONn1 1: FIFO复位清零Rx FIFO; 0:F1FO复位不清零RxFIFO。nUFCONn0 1:允许FIFO功能;0:禁止 FIFO功能。n6.2.4 UART MODEM控制寄存器UMCONnnUMCONn7:5 保留,必

9、须全为0。nUMCONn4 1:允许使用AFC模式;0:禁止使用AFC模式。nUMCONn3 保留,必须全为0。nUMCONn0 1:激活rRTS;0:不激活rRTS。n6.2.5 发送寄存器UTXH和接收寄存器URXHn这两个寄存器存放发送和接收的数据,当然只有1字节(8位 数据)。需要注意的是,在发生溢出错误时,接收的数据必须被读出来,否则会引发下次溢出错误。n6.2.6 发送和接收状态寄存器UTRSTATnnUTRSTATn发送和接收状态寄存器包括 UTRSTAT0, UTRSTAT1 and UTRSTAT2 nUTRSTATn 寄存器各位定义:nUTRSTATn 1 发送缓冲器空标志

10、n0 =不空;n1 = 空。nUTRSTATn 0 接收缓冲器有接收数据标志n0 =空;n1 = 接收缓冲器有数据。n6.2.7 波特率分频寄存器UBRDIVn波特率分频寄存器UBRDIV的定义和使用在6.1.2中已叙述, 不再重复。n6.2.8 UART单元各寄存器的定义n在随书提供的软件包2410test中,在2410addr.h文件中有关于 UART单元各寄存器的定义。n/UARTn#define rULCON0 ( * (volatile unsigned * )0x50000000)/UART 0 Line controln#define rUCON0 ( * (volatile u

11、nsigned * )0x50000004)/UART 0 controln#define rUFCON0 ( * (volatile unsigned * )0x50000008)/UART 0 FIFO controln#define rUMCON0 ( * (volatile unsigned * )0x5000000c)/UART 0 Modem controln#define rUTRSTAT0 ( * (volatile unsigned * )0x50000010)/UART 0 Tx/Rx statusn#define rUERSTAT0 ( * (volatile unsig

12、ned * )0x50000014)/UART 0 Rx error statusn#define rUFSTAT0 ( * (volatile unsigned * )0x50000018)/UART 0 FIFO statusn#define rUMSTAT0 ( * (volatile unsigned * )0x5000001c)/UART 0 Modem statusn#define rUBRDIV0 ( * (volatile unsigned * )0x50000028)/UART 0 Baud rate diviaorn#define rULCON1 ( * (volatile

13、 unsigned * )0x50004000)/UART 1 Line controln#define rUCON1 ( * (volatile unsigned * )0x50004004)/UART 1 Controln#define rUFCON1 ( * (volatile unsigned * )0x50004008)/UART 1 FIFO controln#define rUMCON1 ( * (volatile unsigned * )0x5000400c)/UART 1 Modem controln#define rUTRSTAT1 ( * (volatile unsign

14、ed * )0x50004010)/UART 1 Tx/Rx statusn#define rUERSTAT1 ( * (volatile unsigned * )0x50004014)/UART 1 Rx error statusn#define rUFSTAT1 ( * (volatile unsigned * )0x50004018)/UART 1 FIFO statusn#define rUMSTAT1 ( * (volatile unsigned * )0x5000401c)/UART 1 Modem statusn#define rUBRDIV1 ( * (volatile uns

15、igned * )0x50004028)/UART 1 Baud rate divisorn#define rULCON2 ( * (volatile unsigned * )0x50008000)/UART 2 Line controln#define rUCON2 ( * (volatile unsigned * )0x50008004)/UART 2 Controln#define rUFCON2( * (volatile unsigned * )0x50008008)/UART 2 FIFO controln#define rUMCON2 ( * (volatile unsigned * )0x5000800c)/UART 2 Modem controln#define rUTRSTAT2 ( * (volatile unsigned * )0x50008010)/UART 2 Tx/Rx statusn#define rUERSTAT2 ( * (volatile unsigned * )0x50008014)/U

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号