IIC传输,SCLK空闲处于低电平
时间: 2024-08-17 19:01:49 浏览: 44
IIC(Inter-Integrated Circuit)是一种用于短距离、双向并行通信的接口标准,常用于连接微控制器和其他简单的外围器件。在IIC传输过程中,SCLK(Serial Clock,串行时钟线)起着主导作用,它是数据通信的主控信号。
当SCLK线处于空闲状态时,即无数据传输的时刻,它的电平通常是低电平(通常称为“拉低”或“空闲态”)。这种低电平表示从主设备(Master)到从设备(Slave)之间的通信暂停,主设备等待从设备准备好接受下一个命令或数据。当主设备想要开始新的通信周期时,会将SCLK拉高,然后再次拉低至低电平以开始一个新的数据传输周期。
相关问题
485、IIC、SPI、can、usart在物理层、传输距离、传输效率、电平特性、组网结构、网络控制方式、串行并行、同步异步的区别
IIC、SPI、CAN、USART是四种不同的串行通信协议,它们在物理层、传输距离、传输效率、电平特性、组网结构、网络控制方式、串行并行、同步异步等方面有所不同,下面分别介绍:
1. IIC:IIC是一种二线制串行通信协议,使用简单,只需两根线即可实现通信。IIC协议的传输距离较短,一般只能在同一PCB板上使用。IIC协议的传输效率较低,最高速度只有400kbps。IIC协议使用的电平特性为CMOS电平。IIC协议的组网结构为主从结构,一个主设备可以连接多个从设备。IIC协议的网络控制方式为主控制方式。IIC是同步通信协议,数据的传输是在时钟信号的控制下进行的。
2. SPI:SPI是一种四线制串行通信协议,需要四根线来实现通信。SPI协议的传输距离较长,可以在不同PCB板之间使用。SPI协议的传输效率较高,最高速度可以达到几十Mbps。SPI协议使用的电平特性为TTL电平。SPI协议的组网结构为主从结构,一个主设备可以连接多个从设备。SPI协议的网络控制方式为主控制方式。SPI是同步通信协议,数据的传输是在时钟信号的控制下进行的。
3. CAN:CAN是一种串行通信协议,用于工业控制和汽车电子等领域。CAN协议的传输距离较长,可以达到几百米,甚至几千米。CAN协议的传输效率较高,最高速度可以达到1Mbps。CAN协议使用的电平特性为差分电平。CAN协议的组网结构为总线结构,所有设备都连接到同一总线上。CAN协议的网络控制方式为分布式控制方式。CAN是异步通信协议,数据的传输不依赖于时钟信号。
4. USART:USART是一种串行通信协议,可以实现同步通信和异步通信。USART协议的传输距离较短,一般只能在同一PCB板上使用。USART协议的传输效率较高,最高速度可以达到几Mbps。USART协议使用的电平特性为TTL电平或RS232电平。USART协议的组网结构为点对点结构,一个发送设备连接一个接收设备。USART协议的网络控制方式为主从控制方式。USART既可以同步通信,也可以异步通信。
void IIC_Start() { OLED_SCLK_Set() ; OLED_SDIN_Set(); OLED_SDIN_Clr(); OLED_SCLK_Clr(); } /********************************************** //IIC Stop **********************************************/ void IIC_Stop() { OLED_SCLK_Set() ; // OLED_SCLK_Clr(); OLED_SDIN_Clr(); OLED_SDIN_Set(); } void IIC_Wait_Ack() { OLED_SCLK_Set() ; OLED_SCLK_Clr(); } void Write_IIC_Byte(unsigned char IIC_Byte) { unsigned char i; unsigned char m,da; da=IIC_Byte; OLED_SCLK_Clr(); for(i=0;i<8;i++) { m=da; // OLED_SCLK_Clr(); m=m&0x80; if(m==0x80) {OLED_SDIN_Set();} else OLED_SDIN_Clr(); da=da<<1; OLED_SCLK_Set(); OLED_SCLK_Clr(); }
这段代码是关于IIC总线的基本操作函数,包括启动信号函数IIC_Start()、停止信号函数IIC_Stop()、等待应答信号函数IIC_Wait_Ack()以及向IIC总线写入一个字节的函数Write_IIC_Byte()。
其中,启动信号函数IIC_Start()的作用是在IIC总线上发送起始信号,即SDA从高电平向低电平切换时,SCL为高电平。停止信号函数IIC_Stop()的作用则是在IIC总线上发送停止信号,即SDA从低电平向高电平切换时,SCL为高电平。等待应答信号函数IIC_Wait_Ack()的作用是在向IIC总线写入一个字节后,等待从设备(如传感器)返回的应答信号。向IIC总线写入一个字节的函数Write_IIC_Byte()则是将一个字节的数据写入到IIC总线上。
这些函数代码中的OLED_SCLK_Set()和OLED_SDIN_Set()以及OLED_SCLK_Clr()和OLED_SDIN_Clr()函数,应该是具体硬件平台上的IO口控制函数,根据具体硬件平台的不同,这些函数的实现方法和作用可能会有所不同。
阅读全文