一、IIC
连接线:VCC、GND、SDA、SCK。
半双工异步通信。MSB。
速率:100Kbps、400Kbps、3.4Mbps。
数据采集:SCL为高电平期间采集,因此SDA必须在SCL为低期间跳变。
空闲状态:SCL、SDA同为高。因此电路设计一般加上拉电阻。
起始信号:SCL为高时SDA上出现下降沿。
停止信号:SCL为高时SDA上出现上升沿。
读写位 :1为读,0为写。
应答信号:发送方发送完毕会将SDA拉高,然后等待接收方发送ACK或者NACK,如果下一个SCL为高的时候接收方已经将SDA拉低表示ACK,为高则为NACK。
读数据:起始信号+7位地址|写+WACK+写地址+WACK+起始信号+7位地址|读+读数据0+ACK+读取数据1+ACK......+读取数据N+NACK+停止信号。(AT24C02)如果读取一个数据就直接返回NACK。
写数据:起始信号+7位地址|写+WACK+写地址+WACK+写数据+WACK+停止信号。
二、SPI
连接线:VCC、GND、MOSI、MOSI、SCLK、SSN 。
全双工同步通信。MSB。
速率:从机限制。最大50Mbps。
数据采集与输出与极性和相位配置有关:
CPOL表示空闲时SCLK电平状态0为低1为高。
CPHA表示数据采集在什么边沿,0为时钟前沿,1为后边沿。数据输出则为另外一个边沿。具体是上升还是下降沿需要结合CPOL确定。因此可以以CPOL为第1位,CPHA为第0位组成4总模式。
模式0:CPOL = 0 CPHA = 0;
模式1:CPOL = 0 CPHA = 1;
模式2:CPOL = 1 CPHA = 0;
模式3:CPOL = 1 CPHA = 1;
当数据从在时钟前沿采集时,第0位没有数据输出边沿,在片选信号SSN使能时输出。
三、U(S)ART
连接线:VCC、GND、TX、RX(RTC、CTS、DTR、DSR在TTL中不常用)。
UART:全双工异步通信。USART:全双工同步/异步通信。LSB。
数据包描述:起始位+数据位+(奇偶检验)+停止位+空闲位,
起始位(低电平,时长为1个bit长度);
数据位(LSB,可配置为4-9个bit);
奇偶检验(使得加上该位后数据位中的1为奇数或者偶数,也可没有该位);
停止位(可配置时长为1、1.5、2个bit,高电平);
空闲位(高电平)。
bit时长为1/比特率。
比特率 = 波特率 *log2(N);N为一个码元可以表示的状态。在uart通信中一个码元就是一个bit为0或者1,N=2,波特率等于比特率。