前言
学习永无止境!本篇是嵌入式开发之片上外设USART,了解基本硬件原理以及通信协议,实现HEX数据数据包的发送与接收。
注:本文章为学习笔记,部分图片与文字来源于网络/江协科技课程/手册,如侵权请联系!谢谢!
一、通信基础知识
1.1 单片机常用通信外设
通信就是双方按照约定的协议进行数据收发,实现硬件与硬件的合作,扩展硬件系统。单片机上常用的通信协议有以下几种:
名称 | 引脚 | 双工 | 时钟 | 电平 | 设备 |
---|---|---|---|---|---|
UART | TX、RX | 全双工 | 异步 | 单端 | 点对点 |
I2C | SCL、SDA | 半双工 | 同步 | 单端 | 多设备 |
SPI | SCLK、MOSI、MISO、CS | 全双工 | 同步 | 单端 | 多设备 |
CAN | CAN_H、CAN_L | 半双工 | 异步 | 差分 | 多设备 |
USB | DP、DM | 半双工 | 异步 | 差分 | 点对点 |
1.2 相关通信概念
①串行与并行
- 串行通信:又称逐位传输(Bit by Bit Transmission),按顺序将数据一位一位发送或接收,虽然传输速率慢一些,但实现简单,只需单线便可实现,串行通信常用于远距离传输;
- 并行通信:又称多数据位传输(Word by Word Transmission),通过多跟数据线实现数据的同时传输,传输速率较串行大大提高,但缺点也显而易见,需要多跟数据线,硬件成本较高。
②同步与异步
- 同步通信:通信双方共用一根时钟线,双方约定根据时钟的上升或者下降沿进行数据收发,同步通信时,数据不能有间隔,因为在同一个时钟下工作,一边发送,另一边接收,默认所有数据都是有效位;
- 异步通信:通信双方无时钟线,根据约定好的帧头帧尾进行数据的接收判断,数据包之间可以间隔任意时间发送,一般一个数据帧会有一个起始位、一个停止位,实际一般有效数据只有5~8位,相比同步传输效率较低。
③全双工与半双工
- 全双工:发送与接收数据线独立,可以同时进行数据的发送与接收;
- 半双工:发送与接收共用一根数据线,在同一时刻只能进行发送或者接收。
④比特率与波特率