通信
通信的目的:将一个设备的数据传送到另一个设备,扩展硬件系统(扩展STM32系统,与别的模块互联,实现外挂模块和读取外挂模块数据)
通信协议:制定通信的规则,通信双方按照协议规则进行数据收发
相关概念
全双工:通信双方能够同时进行双向通信,发送线路与接收线路互不影响(两根通信线)(打电话)
半双工:通信双方在同一时间只能进行单向通信(发电报)
单工:数据只能从一个设备到另一个设备,而不能反着来(收音机)
同步:有单独的时钟线,接收方可以在时钟信号的指引下进行采样
异步:没有始时钟线,需要双方约定一个采样频率,加入帧头帧尾进行采样位置的对齐
单端:引脚的高低电平都是对GND的电压差,所以必须要接GND
差分:靠两个差分引脚的电压差来传输信号的(使用差分信号可以极大地提高看干扰特性,所以一般差分信号的传输速度和距离都会非常高,性能也不错)
串行通信(Serial communication)
是指在计算机总线或其他数据通道上,每次传输一个位元数据,并连续进行以上单次过程的通信方式。与之对应的是并行通信,它在串行端口上通过一次同时传输若干位元数据的方式进行通信。串行通信被用于长距离通信以及大多数计算机网络,在普通应用场合,电缆和同步化使并行通信面临实际应用问题。
(1)异步串行通信 异步串行通信所传输的数据格式(也称为串行帧)由1个起始位、7~9个数据位、1~2个停止位(含1.5个停止位)和1个校验位组成。起始位约定为0,空闲位约定为1。在异步通信方式中,接收器和发送器有各自的时钟,它们的工作是非同步的。
不使用时钟信号进行数据同步,它们直接在数据信号中穿插一些同步用的信号位,
或者把主体数据进行打包,以数据帧的格式传输数据。
(2)同步串行通信 同步串行通信中,发送器和接收器由同一个时钟源控制。
使用时钟信号进行数据同步,在同步通讯中,数据信号所传输的内容绝大部分就是有效数据,而异步通讯中会包含有帧的各种标识符,所以同步通讯的效率更高,但是同步通讯双方的时钟允许误差较小,而异步通讯双方的时钟允许误差较大。
3)波特率及时钟频率** 波特率BR是单位时间传输的数据位数,即单位:bps(bit per second)1bps = 1bit/s。采用异步串行,互相通信甲乙双方必须具有相同的波特率,否则无法成功地完成数据通信。同步通信中通过主从设备的同步时钟完成