1.USART用于异步通讯详解
1.1 USART的异步工作模式
在异步工作模式下, USART 采用的是标准非归零 ( NRZ编码格式 :一位起始位、8 位或 9 位数据位和一位停止位 )。最常用的数据格式是 8 位。片内专用的 8 位波特率发生器可用于由振荡器产生标准的波特率频率。 USART 首先发送和接收最低有效位。 USART 的发送器和接收器在功能上是独立的, 但采用相同的数据格式和波特率。 波特率发生器可以根据 BRGH 位 (TXSTA<2>)的状态产生两种不同的移位速率:对系统时钟 16 分频或 64 分频的波特率时钟。 USART 硬件不支持奇偶校验,但可以用软件实现 ( 奇偶校验位是第 9 个数据位 )。在休眠状态下, USART 不能在异步模式下工作。通过对 SYNC 位 (TXSTA<4>) 清零,可选择 USART 异步工作模式。USART 异步工作模式包括如下重要部分: 波特率发生器, 采样电路, 异步发送器,异步接收器。
1.2 异步发送器
上图展示的是发送器发送原理图。设置异步发送模式应遵循以下一些步骤:
1. 选择合适的波特率,对 SPBRG 寄存器进行初始化。如果需要高速波特率,将 BRGH 位置1 ;
2. 将 SYNC 位清零、 SPEN 位置 1,使能异步串行端口;
3. 若需要中断,将 TXIE、 GIE 和 PEIE 位置 1 ;(发送中断使能、中断总开关,外围中断使能)
4. 若需要发送 9 位数据,将 TX9 位置 1 ;
5. 将 TXEN 位置 1 ,使能发送,这也将置位 TXIF 位;
6. 若选择发送 9 位数据,第 9 位数据应该先写入 TX9D 位;
7. 把数据送入 TXREG 寄存器 ( 启动发送 )。
异步通信数据发送的时序图如下所示:
|