第5章 通用同步、异步收发器USART

合集下载

《USART模块》课件

《USART模块》课件

波特率的设置
波特率决定了数据传 输速度,可根据通信 双方的要求设置合适 的波特率。
字符长度的设置
USART支持不同的字 符长度设置,包括5 位、6位、7位和8位 字符。
奇偶校验位的设置
通过设置奇偶校验位, 可以检测和纠正数据 传输中的错误。
USART模块在MCU中的应用
1
AVR单片机中的应用
AVR单片机广泛使用USART模块进行与外
STC单片机中的应用
2
设的通信,如与LCD显示屏、传感器等进 行数据交互。
STC单片机的USART模块具有多种功能和
配置选项,可满足不同应用场景的需求。
3
ARM Cortex-M单片机中的应用
ARM Cortex-M系列单片机通过USART模块 实现与外部设备的高速数据传输。
常见问题及解决方案
数据丢失
USART模块的未来发展方向
随着技术的进步,USART模块将继续优化,提供更 高的传输速率和更稳定的通信能力。
USART模块的工作原理
1 发送数据的原理
通过USART发送数据时,将数据按照指定的传输格式进行编码,并通过串口引脚发送至外 部设备。
2 接收数据的原理
当外部设备发送数据时,USART接收引脚接收信号并进行解码,将数据传输至数据寄存器 供单片机读取。
USART模块的相关参数设置
工作模式的设置
USART可以以同步或 异步方式工作,需根 据具体需求选择合适 的工作模式。
USART模块
在本PPT课件中,我们将深入探讨USART模块。了解USART模块的结构、工作 原理和在MCU中的应用,以及常见问题的解决方案。
什么是USART模块
USART(通用同步/异步收发传输)模块是一种常见的串口通信接口,用于在 单片机和外部设备之间进行可靠的数据传输。

usart的介绍

usart的介绍

USART目录主要特点结构组成USART:(Universal Synchronous/AsynchronousReceiver/Transmitter)通用同步/异步串行接收/发送器USART是一个全双工通用同步/异步串行收发模块,该接口是一个高度灵活的串行通信设备。

编辑本段主要特点⒈ 全双工操作(相互独立的接收数据寄存器和发送数据寄存器);⒉ 支持同步和异步操作;⒊ 同步操作时,可主机时钟同步,也可从机时钟同步;⒋ 独立的高精度波特率发生器,不占用定时/计数器;⒌ 支持5、6、7、8和9位数据位,1或2位停止位的串行数据桢结构;⒍ 由硬件支持的奇偶校验位发生和检验;⒎ 数据溢出检测;⒏ 帧错误检测;⒐ 包括错误起使位的检测噪声滤波器和数字低通滤波器;⒑ 三个完全独立的中断,TX发送完成、TX发送数据寄存器空、RX接收完成;⒒ 支持多机通信模式;⒓ 支持倍速异步通信模式。

编辑本段结构组成USART收发模块一般分为三大部分:时钟发生器、数据发送器和接收器。

控制寄存器为所有的模块共享。

时钟发生器由同步逻辑电路(在同步从模式下由外部时钟输入驱动)和波特率发生器组成。

发送时钟引脚XCK仅用于同步发送模式下,发送器部分由一个单独的写入缓冲器(发送UDR)、一个串行移位寄存器、校验位发生器和用于处理不同桢结构的控制逻辑电路构成。

使用写入缓冲器,实现了连续发送多帧数据无延时的通信。

接收器是USART模块最复杂的部分,最主要的是时钟和数据接收单元。

数据接收单元用作异步数据的接收。

除了接收单元,接收器还包括校验位校验器、控制逻辑、移位寄存器和两级接收缓冲器(接收UDR)。

接收器支持与发送器相同的桢结构,同时支持桢错误、数据溢出和校验错误的检测。

与UART兼容性AVR USART 和AVR UART 兼容性 USART 在如下方面与AVR UART 完全兼容:• 所有USART 寄存器的位定义。

• 波特率发生器。

STM32USART的使用

STM32USART的使用

STM32USART的使用USART(通用同步/异步收发传输器)是一种串行通信接口,用于在微控制器(MCU)和外部设备之间进行数据传输。

STM32系列微控制器具有内置的USART硬件模块,在很多应用中被广泛使用。

本篇文章将介绍STM32中USART的基本原理、配置以及使用方法。

USART的基本原理:USART是一种全双工的通信接口,可以同时进行数据的发送和接收。

它支持同步和异步两种通信方式。

在异步通信中,通信双方通过传输时间间隔来同步数据,而在同步通信中,通信双方使用时钟信号来同步数据传输。

USART还支持多种数据帧格式,如8位或9位数据位、奇偶校验位、1或2位停止位等。

USART的配置:在STM32中,USART的配置主要涉及以下几个方面:1.硬件引脚配置:先确定USART通信要使用的GPIO引脚,并将它们与USART模块的引脚进行映射。

2. USART时钟配置:通过RCC(Reset and Clock Control)模块配置USART时钟,使USART模块可以正常工作。

ART参数配置:设置USART的工作模式、波特率、数据位、停止位和校验等参数。

4.中断配置(可选):如果需要使用USART中断来处理接收和发送数据,可以配置相应的中断向量。

USART的使用方法:下面是一个基本的USART初始化和数据发送的例子,假设使用USART2进行通信。

首先,需要在程序中引用相关的头文件和库。

例如,在使用STM32Cube库时,可以引用以下头文件和库:```c#include "stm32f4xx.h"#include "stm32f4xx_hal.h"#include "stm32f4xx_hal_usart.h"```然后,进行USART的配置。

以STM32Cube库为例,配置USART时可以使用HAL库提供的相应函数,如下所示:```c/*配置USART2引脚*/GPIO_InitTypeDef GPIO_InitStruct = {0};__HAL_RCC_USART2_CLK_ENABLE(;__HAL_RCC_GPIOA_CLK_ENABLE(;GPIO_InitStruct.Pin = GPIO_PIN_2 , GPIO_PIN_3;GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;GPIO_InitStruct.Pull = GPIO_PULLUP;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;GPIO_InitStruct.Alternate = GPIO_AF7_USART2;HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);/*配置USART2参数*/USART_HandleTypeDef huart2 = {0};huart2.Instance = USART2;huart2.Init.BaudRate = 9600;huart2.Init.Mode = USART_MODE_TX_RX;huart2.Init.Parity = USART_PARITY_NONE;huart2.Init.StopBits = USART_STOPBITS_1;huart2.Init.WordLength = USART_WORDLENGTH_8B;huart2.Init.HwFlowCtl = USART_HWCONTROL_NONE;HAL_UART_Init(&huart2);```接下来,可以使用USART进行数据的发送和接收。

STM32 通用同步异步收发器 USART

STM32 通用同步异步收发器 USART
STOP模式下 USART1仍可工作, 还可唤醒MCU
USART1唤醒连到EXTI25
AHB分频 因子 APB分频 因子 PCLK max 48MHz
fCK SYSCLK max 48MHz HSI LSE 8MHz 32.768KHz
USART1SW[1:0] @ RCC_CFGR3
USART1
检测阶段结束
成功检测到波特率 硬件置位ABRF、RxNE,并同时由硬件更新USART_BRR 如果线路噪声过大,检测值BRR不准确 硬件置位ABRF、RxNE,以及ABRE和FE等错误标志 无论是否成功检测,第一个数据都能接收 ABRE置位时,收到RDR中的数据可能不正确
硬件检测数据块结尾,无需软件或其他资源干预
RTU:通过超时@USART_RTOR检测长时间的空闲总线 中 断 ASCII:通过特定的字符序列进行字符匹配 中断
协议的控制部分,地址识别、数据块完整性控制、命令 解析,需要软件实现
13
智能卡模式
支持ISO 7816-3标准定义的智能卡异步通信协议
Transmit message DTE DEAT
DEM: 方向信号使能,DE信号从RTS引脚输出 DEP: 方向信号(输出)极性 DEAT[4:0]: Driver Enable assertion time DEDT[4:0]: Driver Enable deassertion time
发送、接收引脚可通过软件交换@SWAP 发送、接收使能应答 新增标志
BUSY:表示接收线上是否有通信在进行 REACK:进入STOP模式前用以确认模块准备好接收了 TEACK:用于发送空闲帧时确保满足TE=0的最小时间(复位TE之 后,置位TE之前)

嵌入式系统实验—通用异步收发器(UART)实验

嵌入式系统实验—通用异步收发器(UART)实验

嵌⼊式系统实验—通⽤异步收发器(UART)实验实验五:通⽤异步收发器(UART)实验Technorati 标签: 嵌⼊式系统实验,通⽤异步收发器,UART,mini2440,arm,j-link,keil-uvision,实验报告⼀、实验⽬的1、掌握 UART 外设的操作原理和编程。

2、学习使⽤ UART 进⾏多机通讯。

⼆、实验设备1、硬件:PC 机⼀台、Mini2440 ARM 实验板⼀套 J-link 仿真器⼀套2、软件:WindowsXP 系统,Keil uVision 4.0 集成开发环境三、实验内容(1)使⽤ C 语⾔编写 UART 基本收发数据程序,进⾏ 2 个实验板之间的数据收发测试。

(2)⽤两个实验板模拟嵌⼊式控制系统中的数据采集/控制实验,其中⼀个实验板模拟数据采集模块,将通过UART 返回数据;另⼀块实验板模拟控制系统的主机,通过 UART 采集数据,并通过 UART 发出控制指令。

四、实验预习要求(1)学习 UART 相关的原理概念;(2)查阅 S3C2440 芯⽚⼿册,了解 UART0 结构和原理。

五、实验步骤(1)启动 Keil uVision,新建⼀个⼯程ex05。

不需要系统提供的 Startup ⽂件。

建⽴汇编源⽂件 ex05.s,编写实验程序,然后添加到⼯程中。

设置⼯程选项,存储器映射。

设置⼯程调试选项。

建⽴仿真初始化⽂件 RAM.ini。

(2)建⽴ C 语⾔源⽂件 main.c,编写实验程序,然后添加到⼯程中。

(3)使⽤交叉串⼝电缆连接两个实验板。

(4)编译程序,使⽤仿真器在⽬标板上调试运⾏程序,使⽤单步、设置断点,观察程序执⾏时,收发数据的值。

六、实验程序C 语⾔实验程序见程序清单 5。

程序清单 4.1 UART 实验程序// Uart0#define WrUTXH0(ch) (*(volatile unsigned char *)0x50000020)=(unsigned char)(ch)#define RdURXH0() (*(volatile unsigned char *)0x50000024)#define rULCON0 (*(volatile unsigned *)0x50000000) //UART 0 Line control#define rUCON0 (*(volatile unsigned *)0x50000004) //UART 0 Control#define rUFCON0 (*(volatile unsigned *)0x50000008) //UART 0 FIFO control#define rUMCON0 (*(volatile unsigned *)0x5000000c) //UART 0 Modem control#define rUTRSTAT0 (*(volatile unsigned *)0x50000010) //UART 0 Tx/Rx status#define rUERSTAT0 (*(volatile unsigned *)0x50000014) //UART 0 Rx error status#define rUFSTAT0 (*(volatile unsigned *)0x50000018) //UART 0 FIFO status#define rUMSTAT0 (*(volatile unsigned *)0x5000001c) //UART 0 Modem status#define rUBRDIV0 (*(volatile unsigned *)0x50000028) //UART 0 Baud rate divisor#define rGPHCON (*(volatile unsigned *)0x56000070) //Port H control#define rGPHUP (*(volatile unsigned *)0x56000078) //Pull-up control H//PCLK:12MHz#define PCLK 12000000//( (int)(pclk/16./baud+0.5) -1 )#define baud_value 12 //57600void Uart_Init(){int i;rUFCON0 = 0x0; //UART channel 0 FIFO control register, FIFO disablerUMCON0 = 0x0; //UART chaneel 0 MODEM control register, AFC disablerULCON0 = 0x3; //Line control register : Normal,No parity,1 stop,8 bits// [10] [9] [8] [7] [6] [5] [4] [3:2] [1:0]// Clock Sel, Tx Int, Rx Int, Rx Time Out, Rx err, Loop-back, Send break, TransmitMode, Receive Mode// 0 1 0 , 0 1 0 0 ,01 01// PCLK Level Pulse Disable Generate Normal NormalInterrupt or PollingrUCON0 = 0x245; // Control registerrUBRDIV0= baud_value; //Baud rate divisior register 0for(i=0;i<100;i++);rGPHCON |= 0xaa;//use GPH port as uart0rGPHUP =0x0f;//the pull up function is disabled}void Uart_SendByte(int data){WrUTXH0(data);char Uart_Getch(void){while(!(rUTRSTAT0 & 0x1)) //Receive data readyreturn RdURXH0();}main(){char c = 'a';Uart_Init();Uart_SendByte(c);while(1){c = Uart_Getch();c++;Uart_SendByte(c);}七、实验现象两块实验板在接收指令处设断点,然后实验板1全速运⾏,实验板2接着全速运⾏,实验板1⾃动暂停。

通用异步收发器UART设计说明

通用异步收发器UART设计说明
bclk<=~bclk;
end
end
else
div_16baud<=div_16baud+8'd1;
end
endmodule
C.//接收子模块:u_rec
//u_rec.v
module u_rec (bclk16,reset,rxd,rec_ready,rbuf);
input bclk16;
input reset;
//状态机状态编码,使用独热码
parameter r_Start =5'b00001;
parameter r_Center=5'b00010;
parameter r_Wait =5'b00100;
parameter r_Sample=5'b01000;
parameter r_Stop =5'b10000;
begin
state<=r_Center;
center<=1'b1;
end
end
r_Wait:
begin
Shift<=1'b0;
if(samplecnt==4'd13)
begin
center<=1'b0;
if(datacnt==Framelen)
state<=r_Stop;
else
begin
state<=r_Sample;
通用异步收发器UART设计
——现代电子系统设计
一、实验原理:
通用异步收发器是一种广泛应用的短距离串行传输接口。常用于短距离,低速,低成本的微机与下位机的通讯中,—基本的UART连接通信图如下:

通信基本概念:单工、半双工、全双工、同步、异步

通信基本概念:单工、半双工、全双工、同步、异步

通信基本概念:单⼯、半双⼯、全双⼯、同步、异步USART:通⽤同步和异步收发器
UART:通⽤异步收发器
当进⾏异步通信时,这两者是没有区别的。

区别在于USART⽐UART多了同步通信功能。

这个同步通信功能可以把USART当做SPI来⽤,⽐如⽤USART来驱动SPI设备。

同步是指:发送⽅发出数据后,等接收⽅发回响应以后才发下⼀个数据包的通讯⽅式。

异步是指:发送⽅发出数据后,不等接收⽅发回响应,接着发送下个数据包的通讯⽅式。

同步是阻塞模式,异步是⾮阻塞模式。

其中SPI IIC为同步通信为异步通信, usart为同步&异步通信。

单⼯、半双⼯、全双⼯
单⼯数据传输只⽀持数据在⼀个⽅向上传输;
半双⼯数据传输允许数据在两个⽅向上传输,但是,在某⼀时刻,只允许数据在⼀个⽅向上传输,它实际上是⼀种切换⽅向的单⼯通信;
全双⼯数据通信允许数据同时在两个⽅向上传输,因此,全双⼯通信是两个单⼯通信⽅式的结合,它要求发送设备和接收设备都有独⽴的接收和发送能⼒。

I2C是半双⼯,SPI的全双⼯,uart是全双⼯。

usart同步通信原理

usart同步通信原理

usart同步通信原理USART(Universal Synchronous/Asynchronous Receiver Transmitter)是一种通用的同步/异步收发器,常用于计算机与外设之间的串行通信。

与其他通信接口相比,USART具有使用简便、传输速率高、可靠性强等优点,广泛应用于工业自动化、通信设备、嵌入式系统等领域。

本文将详细介绍USART 同步通信的原理。

一、USART概述USART是一种支持同步和异步通信的串行通信接口。

它包含了发送和接收两个单独的模块,可以独立进行串行数据的发送和接收。

USART的工作模式可以是同步模式,也可以是异步模式。

同步模式下,由外设设备提供时钟信号,数据通过USART与时钟信号同步传输。

异步模式下,USART通过内部时钟信号进行数据传输。

二、USART同步通信原理USART同步通信是指数据传输的时钟信号由外部设备提供的通信方式。

在同步模式下,数据包含位同步的时钟信号,可以实现更稳定可靠的数据传输。

USART同步通信的原理如下:1. 产生时钟信号:在USART同步模式下,时钟信号由外设设备提供。

外设设备通常会产生一个固定频率的时钟信号,用于同步数据传输。

时钟信号可以是周期性的矩形波形。

2. 数据传输:数据传输分为发送和接收两个过程。

发送过程:当发送数据时,USART根据时钟信号的上升沿或下降沿来判断数据位的变化。

一般情况下,数据传输的时刻是在每个时钟信号的下降沿或上升沿进行的。

每个数据位都映射到一个时钟信号的周期。

发送方按照时钟信号的节拍,将数据按位发送。

接收过程:当接收数据时,接收方根据时钟信号的上升沿或下降沿来采样传输的数据。

接收方在每个时钟信号的节拍来临时,采样接收到的数据位。

发送和接收过程通常以字节为单位进行,即发送或接收一个字节的数据。

USART通信支持多种数据位宽,如8位、9位等。

一个字节的数据包括起始位、数据位、校验位和停止位。

3. 通信协议:USART同步通信需要一种规定的通信协议,以确保发送方和接收方之间的数据传输正确可靠。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 5章
通用同步/异步收发器USART
第5章 通用同步/异步收发器USART
USART(Universal Synchronous / Asynchronous Receive / Transmit)是MSP430单片机的重要外围串行通信接口。 MSP430F449有2个USART:USART0和USART1。 USART可以工作于异步模式,即通用异步收发(UART), USART也可以工作于同步模式,即SPI(Serial Peripheral Interface串行外设接口)。
URXSE = 1时,串行口检测到UART起始位是就产生接收中断,退出低 功耗模式。中断程序通过查询URXIFGx可以判断是起始中断还是结束中断。
b5~4:SSEL1,SSEL0: 时钟源选择。时钟源是计算波特率字的主要依据。
SSEL1-0 00 01 10,11
时钟源 UCLKI ACLK SMCLK
起始中断 URXSEx = 1 URXIFGx = 0
接收中断 URXSEx = 0 URXIFGx = 1
S
D0
D1
D2
D3
D4
D5
D6
D7
P
S
正常情况下,UART的接收中断应该是接收到一个有效的UART帧时发 生,此时RXBUFx是收到的数据,其它时间RXBUFx数据无效(或是前一帧 的数据)。 MSP430单片机有多种低功耗运行模式,例如在LM3模式下,MCLK、 SMCLK都是关闭。如果UART使用的是SMCLK,在正式接收UART数据前 就必须启动SMCLK。任何中断都会自动退出低功耗模,启动SMCLK。
32768 =3.413 计算: 9600
注意:UBRx ≥ 3,如果UBRx < 3, 波特率将会出现不可预见的错误。
整数:3 ;UBR11=00h,UBR01=03h 调整:0.413×8=3.304≈3 ;UMTCL1有3个比特为1, ;取UMTCL1=01001001b=49h 波特率误差:
USART控制寄存器UCTL: UCTL0(070h),UCTL1(078h) 7 6 5 4 3
PENA PEV SP CHAR LISTEN
2
SYNC
1
MM
0
SWRST
b0:SWRST:软件复位USART状态机。 0:USART正常运行 1:初始化USART的状态机,运行标志初始化成初始状态 b1:MM:多处理器模式选择。 0:线路空闲多处理机协议(常规的异步协议) 1:地址位多处理机协议 b2:SYNC:同步模式使能。 0:UART模式 1:SPI模式

m = 2,
i 0
11000000b、01100000b、00110000b、……10001000b、 01000100b、00100001b、00010001b等。 UMTCLx的作用是对波特率误差进行插补修正,因此 UMTCLx中的“1”应该均匀分布。例如 如
m = 2时,
i 0 i
S D0 D2 D4 D5 D6 D7 S
D1
D3
P
5.1.3 异步通信模式 线路空闲多处理机模式: 在这种模式下,数据块被一段空 闲时间分隔。在字符的第一个停止位之后接收到10个以上 的”1”,则表示检测到接收线路空闲。
地址位格式:在这种模式下,字符包含一额外的位作为 地址标识。数据块的第一个字符携带一个置位的地址位,以 表明该字符是一地址。当接收字符是地址时RXWake位置位, 并且被送入接收缓存URXBUF(允许接收时)。 正常情况下,如果USART的URXWIE位置位,数据字符按 通常方式在接收器拼装,但是它们不会送入接收缓存URXBUF, 也不会产生中断。只有当接收到一个地址位置位的字符,接 收器暂时被激活,字符送入URXBUF,同时URXIFG置位。相应 的错误状态标志将置位。应用软件按有效利用资源、降低功 耗的原则作后续操作。应用软件可验证接收到的地址。如果 匹配,处理机将读取数据块的后续数据;如果地址不匹配, 处理机将等待下一地址字符的到来。
随着单片机计算能力的增强,大多数UART通信都采用可 靠性更高的校验方法,如累加和法、CRC校验法等。 采用累 加和法或CRC校验法通信时,奇偶校验位PA将被省略。
6、停止位P: UART可选的停止位包括1,1.5,2。 停止位是UART帧的最后信息元,单片机在收到停止位后必 须进行相应的处理,如存储RXD的数据,根据通信协议进行 数据串处理。 过去由于处理器的处理能力(速度)有限,1位停止位的时间 可能不够进行处理,所以希望发送端在发送完1帧数据后能够 多留时间给接受端处理数据。 目前由于单片机的处理速度足够快,所以绝大多数UART通 信只采用一个停止位。 目前常用的UART的帧格式为:(1,8,n,1),即1个起 始位;8个数据位;无校验位;1个停止位。
b3:URXEIE:接收错误字符中断使能 0:只要有错误字符都不改变URXIFG 1:所有字符都使URXIFG置位
b4:BRK:数据链断裂标志。 当RXD连续10bit(一帧UART)都是0,BRK被置位 0:数据链链断裂 1:数据链断裂 b5:OE:URXBUF溢出标志。 当接收到的字符送进URXBUF时,前一个字符还没有读走 0:无溢出 1:URXBUF溢出 b6:PE:奇偶校验出错。 当校验允许PENA = 0时, PE总是0。 0:无错误 1:奇偶校验出错 b7:FE:停止位错误。 没有停止位,或停止位不完整。 0:停止位正常 1:停止位错误
4、地址位AD: MSP430单片机的UART模块支持多机通信(类似于Bitbus总 线 )。
多机通信的各个节点都有自己的独立编号,即地址。以便 所有收到数据的节点可以判断是否相应该串数据。
多机通信数据串的第一个帧总是节点地址,即AD = 1;数 据串的其余帧都是数据,即AD = 0。 有些多机通信可以靠数据串协议识别地址,可以不用AD地 址位。所以AD是可选项,不是必选项。
7
UMTCLx = 10001000b、01000100b、 001000010b、00010001b就比较合理
举例:1、串行口1: 波特率时钟采用子系统时钟:BRCLK=SMCLK=1048576Hz 波特率:9600。
1048576 计算: =109.227 9600
整数:109 = 006Dh ;UBR11=00h,UBR01=6Dh 调整:0.227×8=1.816≈2 ;UMTCL1有2个比特为1, ;取UMTCL1=00100010b=22h 波特率误差:
发送控制寄存器UTCTL: UTCTL0(071h),UTCTL1(079h) 7 6 5 4 3
未用 CKPL SSEL1,SSEL0 URXSE
2
TXWAKE
1
未用
0
TXEPT
b0:TXEPT:发送缓冲器空闲标志。 0:发送缓冲器忙,有数据正在发送 1:发送缓冲器空,可以发送新数据 b2:TXWAKE:传送唤醒。 0:下一帧发送的是数据 1:下一帧发送的是地址 b3:URXSE:UART接收起始沿中断选择。 0:禁止接收沿中断 1:允许接收沿中断
b3:LISTEN:侦听使能。 0:不侦听 1:RXD侦听由TXD发送出的数据,即自发自收。 b4:CHAR:字符长度选择。 0:7位有效数据,Bit7填0 1:8位有效数据。 b5:SP:停止位长度选择。 0:1位停止位 1:2停止位。 b6:PEV:奇偶校验选择(PENA = 1时有效) 0:奇校验 1:偶校验。 b7:PENA:校验允许。 0:无校验位 1:奇偶校验(位)允许。
5.1.4 UART的波特率 波特率:通信速率,单位bps(bit/s)。UART的标准波特率包括300、600、 1200、2400、4800、9600、19200……。 UART的收发双方的波特率必须是一致的。 5.1.5 异步模式下的寄存器 控制和状态寄存器:USART模块的硬件是字节结构的,必须用字节指令 访问(后缀“B”)。 寄存器 USART控制寄存器 发送控制寄存器 接收控制寄存器 波特率调整寄存器 波特率寄存器0 波特率寄存器1 接收缓存 发送缓存 符号 CTL UTCTL URCTL UMCTL UBR0 UBR1 URXBUF UTXBUF 说明 设置串行口模块的工作方式,查询状态 选择串行口时钟源,查询发送状态等 选择纠错方式,查询接收状态等 对波特率误差进行插补修正 波特率字低位 波特率字高位 接收到的数据从URXBUF中读出 准备发送的数据送入UTXBUF
波特率选择和调制控制寄存器: UBR00(074h)、UBR01(07Ch): 波特率低位; UBR10(075h)、UBR11(07Dh): 波特率高位; UMTCL0(073h)、UMTCL1(07Bh):波特调整(小数)寄存器;
波特率时钟 Baud rate = 波特率字 波特率调整
ΔB= 标准波特率 - 实际波特率 标准波特率字 ×100%
9600 =
B R C LK 1048576 9600 1 7 2 U BR x+ m i 109 + 8 i= 0 8 ×100% 0. ×100% = 02% 9600 9600
2、串行口0: 波特率时钟采用辅助时钟:BRCLK = ACLK = 32768Hz 波特率:9600。
5.1 通用异步串行接口UART 在异步模式下,接收器实现自身帧同步,及收发双方单 片机不使用同一个时钟源。 波特率由收发双方的单片机各自产生。
5.1.1 串口操作的基本步骤 略,见后面的编程举例
5.1.2 通用异步串行口的数据格式 异步帧格式由以下几部分组成: 1个起始位; 7或8个数据位; 奇/偶/无校验位(可选); 1个地址位(地址位模式,可选) 1或2个停止位组成。
5、校验位PA: 标准的UART帧可以包括奇偶校验位PA。是奇校验就计算 前7位(或8位)的1的个数。是奇数,则在第八位填0,是 偶数,则在第八位填1。偶校验类推。接收方以此为判断传 输的正确性。 偶校验只能检验一位码元的错误,如果出现两位同时出错, 就会出现校验错误。在通信背景噪声严重的系统中通信,出 现一位码元以上的错误啊常有的,所以奇偶校验并不十分可 靠。
相关文档
最新文档