第七章 串口通信原理与应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

特 点
每个UART包含一个波特率发生器、发送器、接 收器和一个控制单元。
发送器和接收器包含了FIFO和数据移位器。
UART结构图
1. 数据传输模式
回环模式
(此模式仅用于测试,不用做传输数据)。 S5PV210的UART提供了一个参考环回模式测试 模式,有助于排除在通信连接中的故障。通过设 置UART控制寄存器中的环回位来选择此模式。


/* Interrupt request or polling mode/Normal transmit/Normal operation/PCLK/*/ /*发送和接受引脚采用中断和轮询查询模式,正常发送,常规操作, 时钟选择为PCLK*/ UCON0 = 1 | (1 << 2) | (0 << 10);

UART数据帧格式
3. 数据接收
溢出错误
是指在旧数据被读取新数据覆盖了旧数据
奇偶校验错误
是指接收器侦测到一个不希望的奇偶条件。
帧错误
是指接收到的数据没有一个有效的停止位。
终止条件
是指RxDn输入保持逻辑0状态长于一个帧的 传输时间。
4. 波特率


每个UART波特率发生器为发送器和接收器提 供串行时钟。 存储在波特率除数寄存器和分槽寄存器的值使 用来确定串行Tx/Rx时钟速率。 DIV_VAL=UBRDIVn+(numof1’s in UDIVSLOTn)/16 DIV_VAL=(PCLK/(bps*16))-1 DIV_VAL=(SCLK_UART/(BPS*16))-1
2. 数据位
每个包是指一个字 节,包括开始/停止 位,数据位和奇偶 校验位。 如何设置取决于想 传输的信息。比如, 标准的ASCII码是 0-127(7位),扩 展的ASCII码是0255(8位)。
3. 停止位
注意 用于表示单 个包的最后 一位。 1. 典型的值 为1、1.5 和2位。 2. 使用的停止位的位 数越多,不同时钟 同步的容忍程度越 大,但是数据传输 率同时也越慢。
初始值 --0
RXDATA n
[31:8]
[7:0]
UARTn的 接收数据
0x00
本章内容
1 2 串口通信原理 S5PV210的UART通信概述 S5PV210的UART功能寄存器 用UART实现发送和接收数据
3
4
7.3 UART通信实例(一)
第1步 查看电路 连接图
第2步 翻查数据 手册 第3 步 确定关键 定义
UART 功 能 寄 存 器
FIFO状态寄存器 (UFSTATn)
MODEM状态寄存器 (UMSTATn) 发送缓存寄存器 (UTXHn) 接收缓存寄存器 (URXHn) 波特率除数寄存器 (UBRDIVn) 分槽寄存器 (UDIVSLOTn)


初始化用到的寄存器有:ULCONn、 UCONn、 UFCONn、 UMCONn、 UBRDIVn 、 UDIVSLOTn。 收到用到的寄存器有:UTRSTATn、 UTXHn 、 URXHn。以下就对这几个寄存器相应的参数 进行详细说明。
本章内容
1 2 串口通信原理 S5PV210的UART通信概述 S5PV210的UART功能寄存器 用UART实现发送和接收数据
3
4
7.1.3 通用异步接收器和发送器 (UART)
UART是一种通用串行数据的总线,用于异 步通信,该总线双向通信,可以实现全双工 传输和接收。
特 点
S5PV210提供4个基于DMA或中断的操作的 独立异步串行I/O端口,UART可以通过产生 中断或DMA请求来进行CPU和UART之间的 数据传输。
掌握
UART通信程序编 写和分析。
本章内容
1 2 串口通信原理 S5PV210的UART通信概述 S5PV210的UART功能寄存器 用UART实现发送和接收数据
3
4
7.1 串口通信原理

7.1.1 串口通信的重要参数
波特率 数据位
重要参数
停止位
奇偶校验
衡量通信速率的参 数,表示每秒传输 的位的个数。
7.1.2 串行通信接口
RS232
美国电子工业协会EIA在1970年指 定的一种串行通信接口标准,9芯 D插头。 采用4根数据线,加一根地线,全 双工、差分传输、多点通信的数 据传输协议。 是在RS-422的基础上,为扩大应 用范围,EIA制定了RS-485标准 ,添加了多点、双向通信能力。
RS422
RS485
7.1.2 串行通信接口
7.1.2 串行通信接口
RS-232-C DB-9各引脚定义:



CD:载波检测 RXD:接收数据线 TXD:发送数据线 DTR:数据终端就绪 SG:信号线 DSR:数据设备就绪 RTS:请求发送 CTS:清除发送 RI:振铃提示
RS-232-C远距离通信系统



本章内容
1 2 串口通信原理 S5PV210的UART通信概述 S5PV210的UART功能寄存器 用UART实现发送和接收数据
3
4
7.2 S5PV210的UART功能寄存器
行控制寄存器 (ULCONn) 控制寄存器 (UCONn) FIFO控制寄存器 (UFCONn) MODEM控制寄存器 (UMCONn) 接收发送状态寄存器 (UTRSTATn) 错误状态寄存器 (UERSTARn)
在串口通信中一种 简单的检错方式。
有四种检错方式: 偶、奇、高和低, 当然没有校验位也 是可以的。
4. 奇偶校 验位
例如,如果数据是 011,那么对于偶 校验,校验位为0, 保证逻辑高的位数 是偶数个。如果是 奇校验,校验位为 1。 对于偶和奇校验的 情况,串口会设置 校验位(数据位后 面的一位),用一 个值来确保传输的 数据有偶数个或者 奇数个逻辑高位。
中断或轮询
当有数据到来或数据可发送时产生中断,通知 CPU。这种方式要求通信硬件比较高,需要支持 产生中断信号。
DMA模式
通常实现数据的转移或复制时,CPU将从源地址复 制数据到寄存器,然后将寄存器数据再写入到目的 地址处,这个操作是由CPU来执行。
2. 数据发送


发送的数据帧是可编程的,包括一个开始位, 5-8个数据位,一个可选的奇偶位和1-2个停止 位,其可由线性控制寄存器ULCONn来设置。 发送器也可以产生一个终止条件,其可以对一 个发送时间强制串行输出为逻辑0。在当前发 送字被完全传输完以后,该模块发送一个终止 信号。在终止信号发送后,其不断发送数据到 Tx FIFO中。
举例:

如果波特率是115200bps且SLCK_UART时钟 是40MHz,UBRDIVn和UDIVSLOTn的值为: DIV_VAL=(40000000/(115200*-16))-1=21.7-1 UBRDIVn=20(DIV_VAL的整数部分) (UDIVSLOTn中1的数量)/16=0.7 则 (UDIVSLOTn中1的数量)=11
IO程序编 程步骤
第5步 实验程序
第4步 编写程序
7.3.1 查看电路连接图

通常使用的串口是RS-232,在RS-232标准中 定义了逻辑1和逻辑0电压级数,以及标准的传 输速率和连接器类型。

专用芯片SP3232,用于实现RS-232串行数据 通信接口和TTL兼容的数字逻辑电路之间的电 平转换,提供了两路双向的接收发送驱动器, 可以同时对Rx、Tx、CTS和RTS思路信号进 行转换。

一般的正常通信模式下,通常设置为无奇偶校 验位、1个停止位、8个数据位,则ULCONn 设置为0x3。

2. UART控制寄存器(UCONn) UCONn控制寄存器当选择有FCLK提供时钟 频率时的分频除数、时钟选择、发送接收终端 产生类型、发送接收模式等。下表为UCONn 的详细设置表。

3. FIFO控制寄存器(UFCONn) UFCONn FIFO控制寄存器用来设置是否使能 FIFO、发送接收FIFO触发级别、是否自动清 空缓冲区。下表为UFCONn寄存器的设置位。

4. UART MODEM控制寄存器(UMCONn) UMCONn寄存器设置时有启用AFC自动流控, 通常不使用AFC自动流控,所以通常设置为0, UMCONn寄存器详细位可参看数据手册。
UART支持比特率高达3Mbps,每个UART 通道包含两个FIFO用来接收和发送数据,其 中,UART0支持接收/发送独立的256字节 FIFO,UART1支持64B的FIF0,UART2、3 、均支持16B的FIFO。
7.1.3 通用异步接收器和发送器 (UART)
S5PV210的UART包括可编程波特率,红外发射 器/接收器,插入1个或2个停止位,5位、6位、7 位或8位的数据宽度以及奇偶校验。
7.2.1 UART控制寄存器

1. UART行控制寄存器 通过设置ULCONn来设置UART的通信方式, 是否使用红外,数据帧中奇偶校验类型、停止 位的个数、和数据位的位数。

S5PV210中有4个UART,所以行控制寄存器 也四个分别是ULCON0、ULCON1、 ULCON2、ULCON3,如表所示:


5. UART波特率除数寄存器和UART分槽寄存 器 UBRDIVn寄存器和UDIVSLOTn寄存器用来决 定波特率。
7.2.2 UART操作寄存器


1. UART接收发送状态寄存器(UTRSTATn) UTRSTATn寄存器用于记录UART发送和接收 的状态,其中包括发送器是否为空、发送缓冲 寄存器是否为空。 如下表所示:



2. UART发送、接收缓冲寄存器 UTXHn、URXHn寄存器用于缓冲发送和接收 的数据,因为数据存储分为大端模式和小端模 式。 UTXHn发送缓冲寄存器为只写寄存器、 URXHn接收寄存器为只读寄存器。
缓冲寄存 器 TXDATAn
位 [31:8] [7:0]
描述 保留 UARTn的 发送数据 保留
/* 禁止FIFO */ UFCON0 = 0;



/* ** 波特率计算:115200bps ** PCLK = 66MHz ** DIV_VAL = (66000000/(115200 x 16))-1 = 35.8 - 1 = 34.8 ** UBRDIV0 = 34 (DIV_VAL的整数部分) ** (num of 1's in UDIVSLOTn)/16 = 0.8 (DIV_VAL的小数部分) ** (num of 1's in UDIVSLOTn) = 12 ** UDIVSLOT0 = 0xDDDD (在数据手册上880页查表) */ UBRDIV0 = 34;//波特率分度值 UDIVSLOT0 = 0xDDDD; }
第7章 串口通信原理 与应用
本章内容
1 2 串口通信原理 S5PV210的UART通信概述 S5PV210的UART功能寄存器 用UART实现发送和接收数据
3
4
教学大纲要求
串口通信原理:串口 通信的重要参数、串 口通信接口和通用异 步接收器和发送器。
了解
来自百度文库理解
S5PV210的UART功 能寄存器,包括控制 寄存器和操作寄存器

串口的连接通常使用简单连接方式,只连接三 根线,即发送、接收和信号地线,需要连接 RSTXD0、RSRXD0、GND三根线。

由图可知TXD0和GPA0_1引脚连接,RXD0和 GPA0_0引脚连接。
7.3.2 翻查数据手册


查看数据手册中GPIO中A0组中两个引脚的设 置。 图中TXD0、RXD0和GPA0复用一个引脚,所 以使用之前一定要设置引脚的功能。
例如,300波特率 表示每秒发送300 个位。
1. 波特率
高波特率常常用于 放置的很近的仪器 间的通信,典型的 例子就是GPIB设 备的通信。 通信电话线的波特 率为14400、 28800和36600。 波特率可以远远大 于这些值,但是波 特率和距离成反比。
衡量通信中实际数 据位的参数。
当计算机发送一个 信息包,标准的值 是5、6、7和8位。
7.3.4 编写程序

1. 初始化 在程序运行之前一定要对相关的寄存器进行初 始化,下面的uart_init函数是对UART相关寄 存器进行初始化,clock_init函数是对clock 相关寄存器进行初始化。



void uart_init() { GPA0CON &= ~0xFF; GPA0CON |= 0x22; //0b 00100010 /* 8-bits/One stop bit/No parity/Normal mode operation */ /*每次8位,1个停止位,无奇偶验证,正常发送模式(非红外) */ ULCON0 = 0x3 | (0 << 2) | (0 << 3) | (0 << 6); // 0b 0 0xx 0 11
相关文档
最新文档