关于数据通信和串口(USART)的一些笔记
在上次的串口通信的实验里,我们简单介绍了一小部分串口和通信的笔记;并且在上一篇笔记里,我们介绍了三个比较常见和重要的通信协议SPI,I2C和CAN总线通信。今天我们来更深地了解数据通信和串口。
首先我们介绍一些数据通信的分类。
1、数据通信方式分类:按照这种方式,数据通信可以分为串行通信和并行通信。
在串行通信中,数据从发送设备向接收设备按顺序逐步一字节一字节依次传输。比如图中,设备1先向设备2传输b0数据,在设备2接收后,设备1再向设备2传输数据b1,接下来再传输诸如b2,b3,b4等数据。一般在传输了一个字节的数据后,设备2就会向设备2的寄存器存入该数据,进入设备2的cpu进行处理。
串行通信的传输速率较慢,抗干扰能力较强,通信距离较长,IO资源占用较少,成本较低。
在并行通信中,各位数据从发送设备向接收设备同时发送数据。比如在图中,这8位数据(b0~b7)并行同时从发送设备通过多条线路传输给接收设备。
并行通信的传输速率较快,抗干扰能力较弱,通信距离较短,IO资源占用较多,成本较高。
2、数据传输方向分类: 按照这种方式,数据通信可以分为单工通信、半双工通信、全双工通信。
在单工通信中,单方向将数据从发送端发送到接收端,但是数据只能按单一方向传输且不能改变,方向是设计时候指定的。
在半双工通信中,数据可以从设备1传输到设备2,也可以从设备2传输到设备1,但是半双工通信只有一个信道,同一时间只能进行一次单方向的通信,只有在本次通信完成后才能进行下一次通信,可以理解为把两个不同方向的串行通信联合在一起。
在双工通信中,读者可以理解为把两个不同方向的串行通信联合在一起, 它拥有两条信道,可以在同一时间完成双向的独立通信,互不干扰。
3、数据同步方式:按照这种方式,数据通信可以分为同步通信和异步通信。
在同步通信中,一般采用以一条数据线、一条信号线(可能还有一条CS/SS触发线),由发送端向接收端发送同步时钟信号(比如SCLK信号),双方共用同一个同步时钟信号,可以利用同步时钟信号的上升沿或者下降沿触发数据采样,比如SPI,也有利用同步时钟信号的高电平作为采样的启动标准,比如I2C。
在异步通信中,只有一条数据线,没有同步时钟线和触发信号线,传输的信号一般分为起始位、数据位、奇偶校验位和终止位,来区分传输信号的不同目的和采样相应的数据。
4、比特率/波特率
最后我们介绍一下比特率和波特率。
比特率为每秒传输数据的比特数(二进制),单位为bit/s。
波特率为每秒传播的码元数,单位为Baud。
这两者之间的关系是:比特率=波特率*log2M,M为每个码元所承载的信息量。
比如在二进制系统中,因为在一个二进制信息所携带的信息只有0或1两者,所以M=2,比特率=波特率;或者在16进制系统中,因为在一个16进制信息所携带的信息有0~F的16种,所以M=16,比特率(此处指的是16进制的一个字节,即0x?)=4*波特率。
最后展示一些相应的串行通信接口的一些信息供大家参考: