八、IIC 接口
8.1 IIC接口介绍
8.1.1 IIC 总线的概念
I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。
主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送;如果主机要接收从器件的数据,首先由主器件寻址从器件.然后主机接收从器件发送的数据,最后由主机终止接收过程。在这种情况下.主机负责产生定时时钟和终止数据传送。
8.1.2 IIC 总线术语
|
术语 |
描述 |
|
发送器 |
发送数据到总线的器件 |
|
接收器 |
从总线接收数据的器件 |
|
主机 |
初始化发送产生时钟信号和终止发送的器件 |
|
从机 |
被主机寻址的器件 |
|
多主机 |
同时有多于一个主机尝试控制总线但不破坏报文 |
|
仲裁 |
是一个在有多个主机同时尝试控制总线但只允许其中一个控制总线并使报文不被破坏的过程 |
|
同步 |
两个或多个器件同步时钟信号的过程 |
8.1.3 IIC 总线信号类型
- IIC 总线信号类型:IIC 总线在传输过程中共有3种类型信号:开始信号、结束信号和响应信号
- 开始信号(S):SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据
- 结束信号(P):SCL 为低电平时,SDA 由低电平向高电平跳变,结束传送数据
- 响应信号(ACK):接收器在接收到 8 位数据后,在第9个时钟周期,拉低 SDA 电平


SDA 上传输的数据必须在 SCL 为高电平期间保持稳定,SDA 上的数据只能在 SCL 为低电平期间变化。如下,IIC 总线的位传输图:

8.1.4 IIC总线的数据传输格式
发送到 SDA 线上的每个字节必须是 8 位的,每次传输可以发送的字节数量不受限制。每个字节后必须跟一个响应位。
首先传输的是数据的最高位(MSB)。如果从机要完成一些其他功能(例如一个内部中断服务程序)后才能继续接收或发送下一个字节,从机可以拉低 SCL 迫使主机进入等待状态。
当从机准备好接收下一个数据并释放 SCL 后,数据传输继续。如果主机在传输数据期间也需要完成一些其他功能(例如一个内部中断服务程序)也可以拉低 SCL 以占住总线。
启动一个传输时,主机先发送 S 信号,然后发出 8 位数据。这8位数据的前 7 位为从机的地址,第 8 位表示传输方向(0 表示写操作,1 表示读操作)。被选中的从机发出响应信号。紧接着传输一系列字节及其响应位。
最后,主机发出 P 信号结束本次传输。
主机——发送器用10位地址寻址从机——接收器

主机——接收器用 10 位地址寻址从机——发送器

组合格式 主机用 10 位地址寻址从机 然后发送数据到这个从机并向这个从机读数据
组合格式 主机发送数据到两个都有 10 位地址的从机

组合格式 主机发送数据到两个从机 一个用 7 位地址 一个用 10 位地址

8.2 S3C2440 I2C 总线控制器
IIC 接口有4种工作模式:主机发送器、主机接收器、从机发送器和从机接收器

从图种可以知道,S3C2440提供4个寄存器来完成 IIC 的操作。SDA 线上的数据从 IICDS 寄存器发出,或传入 IICDS;IICADD 寄存器中保存 S3C2440 当作从机时的地址;IICCON、IICSTAT 两个寄存器用来控制或标识各种状态,比如选择工作模式,发出 S 信号、P信号,决定是否发出 ACK 信号,检测是否收到 ACK 信号。
寄存器的用法见芯片手册
8.3 程序
JZ2440 没有使用 IIC 接口的器件
八、IIC 接口的更多相关文章
- IIC接口下的24C02 驱动分析
本节来学习IIC接口下的24C02 驱动分析,本节学完后,再来学习Linux下如何使用IIC操作24C02 1.I2C通信介绍 它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据,是一个多 ...
- iic接口介绍
最近遇到一个BUG,跟IIC通信有关,所以借这个机会总结一下IIC总线协议 1.引脚接口介绍 1.A0,A1,A2为24LC64的片选信号,IIC总线最多可以挂载8个IIC接口器件,通过对A0,A1, ...
- ZYNQ PS端IIC接口使用-笔记
ZYNQ7000系列FPGA的PS自带两个IIC接口,接口PIN IO可扩展为EMIO形式即将IO约束到PL端符合电平标准的IO(BANK12.BANK13.BANK34.BANK35): SDK中需 ...
- 七脚OLED屏幕使用IIC接口
7pin 0.96寸OLED模块支持SPI和IIC接口 默认是SPI接口;如果想用IC接口;操作如下几步骤: 1.将模块背面的电阻R3换到R1位置,此时将模块切换为IIC接口:电阻R8可以用0欧姆电阻 ...
- GPIO模拟IIC接口信号质量分析
信号质量有问题的波形001: 信号质量有问题的波形002: 从上图可以看出,GPIO口模拟的I2C接口,电平都存在半高的情况. 因为I2C的接口是通过GPIO模拟实现的,该时钟信号线SCL内部默认为下 ...
- IIC接口总线
转载:http://www.eefocus.com/article/08-07/48416s.html图11-1给出一个由MCU作为主机,通过IIC总线带3个从机的单主机IIC总线系统.这是最常用.最 ...
- Java学习笔记二十八:Java中的接口
Java中的接口 一:Java的接口: 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承 ...
- [Effective Java 读书笔记] 第三章类和接口 第十八--十九条
十八条 接口优于抽象类 接口的特点: 1.一个类可以实现多个接口,不能继承多个类(抽象类) 2.接口不能有具体的方法实现,只定义标准类型 骨架类: 即实现一个abstract类来实现接口,提供给其他类 ...
- IIC总线解析
IIC简介: IIC 即Inter-Integrated Circuit(集成电路总线),这种总线类型是由飞利浦半导体公司在八十年代初设计出来的,主要是用来连接整体电路(ICS) ,IIC是一种多向控 ...
随机推荐
- loadrunner基础学习笔记二
virtual user generator(vugen) 在测试环境中,loadrunner在物理计算机上使用vuser代替实际用户.vuser以一种可重复.可预测的方式模拟典型用户的操作,对系统施 ...
- BZOJ3718[PA2014]Parking——树状数组
题目描述 你的老板命令你将停车场里的车移动成他想要的样子.停车场是一个长条矩形,宽度为w.我们以其左下角顶点为原点,坐标轴平行于矩形的边,建立直角坐标系.停车场很长,我们可以认为它一直向右边伸展到无穷 ...
- BZOJ4822[Cqoi2017]老C的任务——树状数组(二维数点)
题目描述 老 C 是个程序员. 最近老 C 从老板那里接到了一个任务——给城市中的手机基站写个管理系统.作为经验丰富的程序员,老 C 轻松 地完成了系统的大部分功能,并把其中一个功能交给你来实 ...
- VMware下Centos7快速搭建vsftpd
最简单快捷的实现ftp的功能,不考虑安全问题. 1.配置防火墙和selinux vi /etc/selinux/config # This file controls the state of SEL ...
- MT【227】换钱的总数
(2012复旦)将1张面值100元的人民币全部换成面值1角,2角,5角的人民币,不同的换法有多少种? 解:即求不等式$2x+5y\le1000$的所有非负整数解的个数.由匹克公式:$S=a+\dfra ...
- 架构师成长之路6.6 DNS服务器搭建(构建企业级DNS)
点击返回架构师成长之路 架构师成长之路6.6 DNS服务器搭建(构建企业级DNS) 采用LVS-DR模式负载均衡,多IDC,多套DNS集群,通过master-slave技术保证dns配置的一致性. 1 ...
- CF724F Uniformly Branched Trees
CF724F Uniformly Branched Trees 有根树可以统计.无根树难以统计.因为可以换根. 所以不让换根:只要两个无根树在重心位置不同构,就一定不同构 每个本质不同的树在重心位置统 ...
- 【POJ1187】陨石的秘密
题目大意: 定义一个串:只含有 '( )','[ ]','{ }',3种(6个)字符. 定义 SS 串: 空串是SS表达式. 若A是SS表达式,且A串中不含有中括号和大括号,则(A)是SS表达式. 若 ...
- 解码(ByteBuffer): CharsetDecoder.decode() 与 Charset.decode() 的不同
今天测试的时候发现一个问题: ByteBuffer inputBuffer = ByteBuffer.allocate(1024); StringBuilder inputData = new Str ...
- JAVA:当数据库重启后连接池没有自动识别的解决办法
今天发现服务器上的一个服务程序出现问题,软件抛出:Connection reset by peer: socket write error 无法正常提供服务,找了一下原因,原来是因为数据库服务器重启, ...
