目录
1.概述
1.1 什么是总线
总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是由导线组成的传输线束, 按照计算机所传输的信息种类,计算机的总线可以划分为数据总线、地址总线和控制总线,分别用来传输数据、数据地址和控制信号。总线是一种内部结构,它是cpu、内存、输入、输出设备传递信息的公用通道,主机的各个部件通过总线相连接,外部设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统。在计算机系统中,各个部件之间传送信息的公共通路叫总线,微型计算机是以总线结构来连接各个功能部件的。
1.2 i2c总线简介
随着大规模集成电路技术的发展,把CPU和一个单独工作系统所必需的ROM、RAM、I/O端口、A/D、D/A等外围电路集成在一个单片内而制成的单片机或微控制器愈来愈方便。目前,世界上许多公司生产单片机,品种很多。其中包括各种字长的CPU,各种容量的ROM、RAM以及功能各异的I/O接口电路等等,但是,单片机的品种规格仍然有限,所以只能选用某种单片机来进行扩展。扩展的方法有两种:一种是并行,另一种是串行总线。由于串行总线的连线少,结构简单,往往不用专门的母板和插座而直接用导线连接各个设备。因此,采用串行线可大大简化系统的硬件设计。PHILIPS公司早在十几年前就推出了I2C串行总线,利用该总线可实现多主机系统所需的裁决和高低速设备同步等功能。因此,这是一种高性能的串行总线。
2. i2c协议
2.1硬件上是什么样?
i2c是个半双工的通讯协议,即同一时间只能从主传到从,或者从从机传到主。
有以下两根线:
SDA:用于数据的传输。
SCL:时钟的信号线。
I2C一般是一个主挂多从这样方式进行通讯。
2.2 时序
起始信号与停止信号:
很好理解,当SCL持续拉高,且SDA检测到拉低的时候,即为起始信号,反之则为终止信号。
其中有7个bit用于表示i2c的设备地址,设备地址一般是由外设的厂商规定的,一般跟某两个引脚的信号有关。紧接着的一个bit为读写标记为,0为写操作,1为读操作。
·接着数据跟ACK应答信号