第一讲:USART
1、物理层
RS-232标准串口通信结构
2、协议层
2.1波特率
2.2通信起始信号和停止信号
每个数据包的起始信号由一个逻辑0的数据为表示,数据包的停止信号可由0.5、1、1.5或2个逻辑1的数据为表示,需要两者都约定一致即可
2.3有效数据
在数据包的起始位之后就是传输的主体数据内容,称为有效数据,有效数据的长度约定为5、6、7或者8位长度
2.4数据校验位,
在有效的数据后,有一个可选的数据校验位,由于数据通信更容易受到外部干扰导致传输数据出现偏差,采用校验位来解决这个问题,校验方法有奇校验、偶校验、0校验、1校验以及无校验
奇校验需要有效数据和校验位的‘1’的个数为奇数,比如一个8位长的有效数据为:01101001,此时总共有4个‘1’,为达到奇校验效果,校验位为‘1’,最后传输的数据将是8位的有效数据加上1位的校验位总共9位
偶校验与奇校验相反,要求帧数据和校验位中‘1’的个数为偶数,比如数据帧:11001010,此时帧数‘1’的个数为4个,所以偶校验为‘0’
0校验是不管有效数据中的内容是什么,校验位总是‘0’
1校验是不管有效数据中的内容是什么,校验位总是‘1’
设置:端口号---波特率---校验位---数据位---停止位
第二讲:IIC
对于IIC通信,主要的重点就是SDA和SCL的时序问题,也是IIC通信的核心部分
1、物理层
特点:
1.1、可连接多个I2C通讯设备,支持多个通讯主机及多个通讯从机
1.2、一条双向串行数据线SDA,一条串行时钟线SCL,数据线表示数据,时钟线用于数据收发同步
1.3、每个连接到总线的设备都有一个独立的地址,主机可以利用这个地址进行不同设备之间的访问
1.4、总线接上拉电阻,当I2C空闲时,输出高阻态,当设备空闲时,都输出高阻态时,由上拉电阻把总线拉成高电平
1.5、多个主机同时使用总线,为防止数据冲突,使用仲裁方式决定由哪个设备占用总线
1.6、具有三种传输模式:
标准模式传输速率100kbit/s,
快速模式传输速率400kbit/s
高速模式传输速率3.4Mbit/s,目前大多I2C设备尚不支持高速模式
1.7、连接到相同总线的IC数量受到总线的最大电容400pF限制
2、协议层
2.1开始信号
2.2停止信号
第三讲:SPI
1、物理层
SPI通信使用3条总线和片选线,3条总线分别为SCK,MOSI,MISO,片选线为SS
SCK线:时钟信号线,用于通信数据同步,它由通信主机产生,决定了通信速率,不同的设备支持的最高时钟频率不一样,通信速率受限于低速设备
MOSI线:主设备输出/从设备输入,主机的数据从这条信号线输出,从机由这条信号线读入主机发送的数据,即这条线上的数据方向是主机到从机的
MISO线:主设备输入/从设备输出,主机从这条信号线读入数据,从机的数据由这条信号线输出到主机,即在这条线上数据的方向为从机到主机
SS线:从设备选择信号线,常称为片选信号,也称为NSS,当多个SPI设备与SPI主机相连时,设备的其他信号线SCK、MOSI、MISO同时并联到相同的SPI总线上,无论多少个从设备,都共同拥有这三条总线;而每个从设备都有独立的一条NSS信号线,本信号线独占主机的一个引脚,即有多少个从设备,就有多少条片选信号线;在I2C中都是通过设备地址来进行寻址的,而SPI没有设备地址的说法,它使用NSS信号线来寻址,当主机要选择从设备时,把该从设备的NSS信号设置为低电平,该从设备即被选中,即片选有效,接着主机开始与被选中的从设备进行SPI通信,所以SPI通信以NSS线置为低电平为开始信号,以NSS线被拉高作为结束信号。
2、协议层
SPI协议定义通信的起始和停止信号、数据有效性、时钟同步
通信时序图:
主机通信时序,NSS、SCK、MOSI信号都由主机控制产生的,而MISO的信号由从机产生的,主机通过该信号读取从机的数据,MOSI与MISO的信号只在NSS为低电平时候才生效,在SCK的每个时钟周期MOSI和MISO传输一位数据
2.1起始信号:NSS信号由高到低,SPI通信的起始信号,每个从机都有独占的NSS信号线,当从机在自己的NSS线检测到起始信号后,就明白自己被主机选中 ,于是开始准备与主机进行通信
2.2停止信号:NSS信号由低到高,SPI通信的停止信号,表示此次通信结束,从机选中状态被取消
2.3数据有效性: