串行通信学习

Jane ·
更新时间:2024-11-11
· 904 次阅读

一、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,波特率等于比特率。


作者:勿忘初心,方得始终。



串行通信 学习 通信

需要 登录 后方可回复, 如果你还没有账号请 注册新账号