文章目录
前言
https://blog.csdn.net/oqqHuTu12345678/article/details/65445338这个博客写的特别好,大家可以借鉴借鉴
平时开发中很多协议层的东西我们都没有关注过,我们常常是自己调用库函数或者是内核底层给我们做好了,我们可以不用去做底层的实现,但是我们需要对这些天天打交道的协议有一定了解。
提示:以下是本篇文章正文内容,下面案例可供参考
先简单聊聊单工,半双工,全双工,串行,并行,同步与异步
并行与串行
串行是一位一位的进行数据传输,并行是多位一起传输。
下面这些都是讨论的串行情况
单工:
是指数据传输仅能沿一个方向,不能实现反向传输。
半双工:
是指数据传输可以沿两个方向,但不能同时进行传输。
全双工:
是指数据可以同时进行双向传输。
同步与异步是指通信双方的时钟是否是统一的,统一即为同步,否则则为异步。这里聊一下,同步还好说,双方时钟同步,可以通过时钟信号确定每个信息位,但是异步信号及需要一些辅助信号,比如开始位,停止位,奇偶校验位。
一、USART串口通信(上面的看懂了,自然知道串口是什么通信)
波特率:每秒传输码元的位数。
比特率:每秒传输二进制的位数。
因为在串口传输中,码元就是一个二进制位,所以在数值上波特率等于比特率,但是其意义并不一样。
二、IIC通信(同理)
1.每个设备有自己的器件地址,通过器件地址选中设备。意味着SCL,SDA两根线上可以挂载多个设备。
2.通过边两个沿信号作为起始与终止,通过SCL时钟线去规定高电平读SDA数据,低电平SDA发生变化。
3.均为高时为空闲信号。
4.有应答信号,及数据传输后需要接受方去应答是否完成了接受。可以是硬件器件的应答,可以是单片机去发出应答,IIC作为通信协议不仅仅是控制设备,也可以双机通信。
5.串行的8位双向数据传输位速率再标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。通过传输速率可以看出IIC的传输速度并不高。
三、SPI通信
SPI---------同步通信;串行通信;全双工;主从通信(某一时刻可以出现多个从机,但只能存在一个主机,主机通过片选线来确定要通信的从机)。
同时只有一个master主机,从机通过CS片选信号确定,传输速度快,可以一位一位传输,然后关于各个信号的定义是可以自己配置的,
CPOL:时钟极性,表示SPI在空闲时,时钟信号是高电平还是低电平。
CPHA:时钟相位,表示SPI设备是在在时钟的上升沿采集还是下降沿采集。
则SPI数据传输就有四种可能—按照标准的说法,SPI数据传输就有四种模式。
全双工同步传输,速度约有50Mbps,即约5.9MB/s。
有SDO,SDI,所以可以做到全双工。