I2C 波形读取方法

I2c信息读取指南  

一、 基本信号判断  
1 总线空闲判断   SCL 和  SDA 全为高  
2 开始信号判断  :SCL 为高时 SDA 产生一个下跳沿 
3 地址、数据、应答,读写标示电平的识别:SCL 为高电平脉冲时SDA上的电平即为地址、数据、应答电平 
4 i2c读  : 高电平 
5 i2c 写 : 低电平 
6 应答(ACK):低电平 
7 非应答(NAK):高电平  
8 停止信号 : SCL 为高时 SDA 产生一个上升沿  
9 数据传输方向: 数据传输先高字节后低字节。即先传第七位,然后第六位。。。。。。。。。第0位。  
二、I2c协议包描述 首先是起始信号   然后是七位的slave 地址 
然后是读写标志位(0 写  1 读)  然后是设备的应答(0 ack  1 nak)如果此时是1 则设备存在问题,i2c错误  然后是一个或多个字节的数据。每个数据有8位,后跟一个应答。此时如果是主机读数据则应答位由主机发出。如果是写数据则应答位由设备发出。  然后是停止位。如果是主机读,则在收到最后一个字节后发一个nak并发stop信号释放总线。如果是主机写,则在发出最后一个字节并受到ack后发stop信号释放总线。  
三、获取i2c波形数据:   从start信号到stop信号或restart信号之间的数据线在clk信号的高电平脉冲上的电平的集合。  
四、从I2c 波形数据读取i2c信息 1 获得设备地址  :数据位的前七位  2 获取数据传输方向: 第8位(高读,低写)  3 获取是否应答: 9的倍数位(低ack,高 nak)即每一个数据紧跟的那一位  4 获取传输的数据: 第10+7(n-1)位到10+7n 位是传输的数据 n 指的是传输的第n个数据  Note : 1   如果是读操作,stop信号前必须要有nak ,否则i2c错  2 丛机应答nak则i2c错  3 如何解析传输的数据依赖于设备定义。(比如ov2640,第一个字节是寄存器地 址,第二个字节是数据。它只有两个数据)  
五、读波形的步骤:  1 根据三提供的方法获取波形数据    2 根据波形数据获取i2c信息  

六 、复合i2c概念  所谓复合i2c是指主机完成一次传输后不发stop信号,接着发start信号开始下一次传输。 这样的格式在某些设备中要求(设备spec中有详细的说明)。  


猜你喜欢

转载自blog.csdn.net/syrchina/article/details/79991483
I2C