一.简要介绍
**串行通信**一般是以帧格式传输数据,即是一帧一帧的传输,每帧包含有起始信号、数据信息、停止信息,可能还有校验信息。
USART 就是对这些传输参数有具体规定,当然也不是只有唯一一个参数值,很多参数值都可以自定义设置,只是增强它的兼容性。
USART 满足外部设备对工业标准 NRZ 异步串行数据格式的要求,并且使用了小数波特率发生器,可以提供多种波特率,使得它的应用更加广泛。
USART 支持同步单向通信和半双工单线通信;还支持局域互连网络 LIN、智能卡(SmartCard)协议与 lrDA(红外线数据协会) SIR ENDEC 规范。
USART 支持使用 DMA,可实现高速数据通信,有关 DMA 具体应用将在 DMA 章节作具体讲解。
USART 在 STM32 应用最多莫过于“打印”程序信息,一般在硬件设计时都会预留一个 USART 通信接口连接电脑,用于在调试程序是可以把
一些调试信息“打印”在电脑端的串口调试助手工具上,从而了解程序运行是否正确、如果出错哪具体哪里出错等等
1.根据数据通讯的方向,通讯又分为全双工、半双工及单工通讯
2.根据通讯的数据同步方式,又分为同步和异步两种,可以根据通讯过程中是否有使用到时钟信号进行简单的区分。
在同步通讯中,收发设备双方会使用一根信号线表示时钟信号,在时钟信号的驱动下双方进行协调,同步数据,见图 20-3。通讯中通常双方会统一规定在时钟信号的上升沿或下降沿对数据线进行采样
在异步通讯中,不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些同步用的信号位,或者把主体数据进行打包,以数据帧的格式传输数据,见图 20-4,某些通讯中还需要双方约定数据的传输速率,以便更好地同步
在同步通讯中,数据信号所传输的内容绝大部分就是有效数据,而异步通讯中会包含有帧的各种标识符,所以同步通讯的效率更高,但是同步通讯双方的时钟允许误差较小,而异步通讯双方的时钟允许误差较大。
总结:
**处理器与外部通讯**主要可分别为以下两种方式:
1.并行通信:数据多位同时传输,通讯速度快,但占用IO口资源多
2.串行通信:数据单位顺序传输,通讯速度较慢,其占用IO口资源较少。
**串行通信按数据传递方向**又可分为一下几种类型:
1.单工:传输数据只能单向传递
2.半双工:传输数据可以进行双向传输,但在传输数据的一瞬间,数据为单向传输,实际上是一种可变方向的单工通信
3.全双工:传输数据进行双向传输过程,此类通信方式要求通信设备都具有独立的接收和发送数据能力。
**串行通信按通信方式**又可分为1.同步通信,2.异步通信
1.同步通信:从硬件结构上讲,其通讯接口有:比如:SPI,IIC通信接口。
1.SDA:数据线,发送和接受用户所需求的数据。
2.SCL两个接口: 时钟线,提供数据接受时序,保证数据正常传递;
2.异步通信:与同步通信上对比,没有时钟线:SCL,使用波特率等协议来确保数据传输速率。通讯接口为:RXD、TXD分别负责数据的接收和发送。
串口通讯
串口通讯收发双方设备就需要符合串口通讯协议的物理规定也就是串口的机械电气特性,同时接受发送时也要符合规定通讯逻辑,统一收发双方的数据打包、解包标准。也就是要统一收发双方的物理层与协议层。
物理层
1、RS232标准
RS232标准串口通信
1.如果两个通讯设备之间使用的是RS232串行通讯协议标准