开发板FS4412-IIC总线

本文详细介绍了IIC总线的工作原理、信号实现、典型时序,重点讲解了Exynos4412下的IIC控制器及其与MPU6050运动传感器的交互,包括寄存器操作和陀螺仪实验代码解析。

目录

一、 IIC总线概述

二、IIC总线信号实现

三、IIC典型时序

四、Exynos4412下的IIC控制器

1.工作逻辑

2.控制流程

五、IIC寄存器详解

六、MPU6050原理

七、MPU6050寄存器读写时序

八、IIC编程-陀螺仪实验代码分析


一、 IIC总线概述

1.        IIC总线是Philips公司在八十年代初推出的一种串行、半双工总线主要用于近距离、低速的芯片之间的通信;IIC总线有两根双向的信号线一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步;IIC总线硬件结构简单,成本较低,因此在各个领域得到了广泛的应用

2.        IIC总线是一种多主机总线,连接在IIC总线上的器件分为主机和从机,主机有权发起和结束一次通信,而从机只能被主机呼叫;当总线上有多个主机同时启用总线时,IIC也具备冲突检测和仲裁的功能来防止错误产生;每个连接到IIC总线上的器件都有一个唯一的地址(7bit),且每个器件都可以作为主机也可以作为从机(同一时刻只能有一个主机),总线上的器件增加和删除不影响其他器件正常工作;IIC总线在通信时总线上发送数据的器件为发送器,接收数据的器件为接收器;

 3.IIC总线通信过程

  • 主机发送起始信号启用总线告诉其他设备,总线被占用了
  • 主机发送一个字节数据指明从机地址(主机与哪个从机通信)和后续字节的传送方 (从机地址7位,最后一位表示传输方向:0主发给从,1从发给主)
  • 被寻址的从机发送应答信号回应主机
  • 发送器发送一个字节数据
  • 接收器发送应答信号回应发送器 … … (循环步骤4、5)
  • n.通信完成后主机发送停止信号释放总线

 4.IIC总线寻址方式

  • IIC总线上传送的数据是广义的,既包括地址,又包括真正的数据**
  • 主机发送起始信号后必须先发送一个字节的数据(地址+方向),该数据的高7位为从机地址,最低位表示后续字节的传送方向,'0’表示主机发送数据,'1’表示主机接收数据;总线上所有的从机接收到该字节数据后都将这7位地址与自己的地址进行比较,如果相同,则认为自己被主机寻址,然后再根据第8位将自己定为发送器或接收器

二、IIC总线信号实现

1.起始信号和停止信号

两根线SDA 和 SCL 正常均为高电平

  • SCL为高电平时,SDA由高变低表示起始信号

  • SCL为高电平时,SDA由低变高表示停止信号

  • 起始信号和停止信号都是由主机发出,起始信号产生后总线处于占用状态停止信号产生后总线处于空闲状态

2.字节传达与应答

IC总线通信时每个字节为8位长度(串口通信可以为5-8位),数据传送时,先传送最高位,后传送低位(串口先发低位),发送器发送完一个字节数据后接收器必须发送1位应答位来回应发送器,即一帧共有9位

3.同步信号
如何区分发送了10还是1100:时钟线SCL保证收发双方时钟同步(串口通过波特率来区分)

IIC总线在进行数据传送时,时钟线SCL为低电平期间,发送器向数据线上发送一位数据,在此期间数据线上的信号允许发生变化,时钟线SCL为高电平期间是为了给接收器从数据线上读取一位数据,在此期间数据线上的信号不允许发生变化,必须保持稳定

三、IIC典型时序

阴影部分表示数据由主机向从机传送,无阴影部分则表示数据由从机向主机传送;A表示应答, A非表示非应答,S表示起始信号,P表示终止信号

1.主机向从机发送数据

停止发送:① 主机不想发了:主机发送停止信

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值