博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SCCB 总线和I2C总线区别(转载 )
阅读量:6924 次
发布时间:2019-06-27

本文共 1108 字,大约阅读时间需要 3 分钟。

转载地址:

SCCB总线

      
 

 
 

SCCB是简化的I2C协议,SIO-l是串行时钟输入线,SIO-O是串行双向数据线,分别相当于I2C协议的SCL和SDA。SCCB的总线时序与I2C基本相同,它的响应信号ACK被称为一个传输单元的第9位,分为Don’t care和NA。Don’t care位由从机产生;NA位由主机产生,由于SCCB不支持多字节的读写,NA位必须为高电平。另外,SCCB没有重复起始的概念,因此在SCCB的读周期中,当主机发送完片内寄存器地址后,必须发送总线停止条件。不然在发送读命令时,从机将不能产生Don’t care响应信号。

由于I2C和SCCB的一些细微差别,所以采用GPIO模拟SCCB总线的方式。SCL所连接的引脚始终设为输出方式,而SDA所连接的引脚在数据传输过程中,通过设置IODIR的值,动态改变引脚的输入/输出方式。SCCB的写周期直接使用I2C总线协议的写周期时序;而SC-CB的读周期,则增加一个总线停止条件。

SCCB是和I2C相同的一个协议。    SIO_C和SIO_D分别为SCCB总线的时钟线和数据线。目前,SCCB总线通信协议只支持100Kb/s或400Kb/s的传输速度,并且支持两种地址形式:①从设备地址(ID Address,8bit),分为读地址和写地址,高7位用于选中芯片, 第0位是读/写控制位(R/W),决定是对该芯片进行读或写操作;②内部寄存器单元地址(Sub_ Address,8bit),用于决定对内部的哪个寄存器单元进行操作,通常还支持地址单元连续的多字节顺序读写操作。SCCB控制总线功能的实现完全是依靠SIO_C、SIO_D两条总线上电平的状态以及两者之间的相互配合实现的。SCCB总线传输的启动和停止条件如图 

过程:采用简单的三相(Phase)写数据的方式,即在写寄存器的过程中先发送OV7649的ID地址(ID Address),然后发送写数据的目地寄存器地址(Sub_address),最后发送要写入的数据(Write Data),见图3。如果给连续的寄存器写数据,写完一个寄存器后,OV7649会自动把寄存器地址加1,程序可继续向下写,而不需要再次输入ID地址,从而三相写数据变为了两相写数据,由于本系统只需对有限个不连续寄存器进行配置,如果采用对全部寄存器都加以配置这一方法的话,会浪费很多时间和资源,所以我们只对需要更改数据的寄存器进行写数据。对于每一个需更改的寄存器,都采用三相写数据的方法。

转载于:https://www.cnblogs.com/crazybingo/archive/2012/05/06/2485672.html

你可能感兴趣的文章
当量子计算遇到机器学习
查看>>
关于ScrollView can host only one direct child 问题
查看>>
Android WebView 缓存处理
查看>>
Require的使用 CMD
查看>>
为什么软件定制项目难做?软件外包公司该怎么发展?
查看>>
官方揭秘OpenAI如何打败人类:10个月训练4.5万年
查看>>
一次前端面试经验总结
查看>>
POJ 2479 Maximum sum
查看>>
连线:微软Adobe同仇人忾 谋求配合抗衡苹果
查看>>
python中用os.system+sqlcmd执行sql脚本
查看>>
【PHP cookie | 欢迎效果】
查看>>
PB5.0 features/sysgen参数和ceconfig.h中宏定义的对应关系
查看>>
PHP与MySQL学习笔记8:重要概念与设计Web数据库
查看>>
11.22 访问日志不记录静态文件 11.23 访问日志切割 11.24 静态元素过期时间
查看>>
Bash脚本语法泛述
查看>>
SSH打通密钥后仍需要密码
查看>>
GZIP(1)
查看>>
在线压缩解压缩PHP代码
查看>>
使用vmware vdp备份2008虚机时,如果出错可以参考这篇文章。
查看>>
新网互联域名注册量动态:6月下旬净增3341个
查看>>