IIC总线(集成电路总线)
三大串行总线:UART、SPI、IIC(其中SPI是由时钟沿采集数据,为同步接口;UART和IIC是由电平采集数据,为异步接口)
IIC速率:工作在半双工方式,2根线(SCL和SDA)
标准:100kbps,快速400kbps,告诉3.4Mbps
总线信号:SDA——串行数据线,SCL——串行时钟线
总线空闲状态:SDA——高电平,SCL——高电平
起始位:SCL为高电平期间,SDA出现下降沿。

终止位:SCL为高电平期间,SDA出现下降沿

数据传输:SDA的数据在SCL高电平期间被写入从机。所以SDA上数据需要在SCL为低电平期间才能发生变化。

应答:接收方发动给发送方ACK信号。即当IIC主机将8比特的数据或命令发出后,将SDA设置为输入模式(高阻),等待从机应答(SDA的电平由高变为低),以此确定从机成功的接收到了数据。

IIC器件地址:一些器件在出厂的时候就已经定好了地址,不可以被用户更改;有些器件值在出厂时只确定了高几位地址,用户可以对低位的地址进行更改,例如EEPROM高4位地址确定为1010,低3位的地址由用户硬件连线来确定,所以一个IIC总线最多可以连接8个EEPROM。
单字节地址的写时序:

多字节地址的写时序:

单字节地址的读时序:

多字节地址的读时序:(略,与多字节地址的写时序类似)
Device Address地址读写操作:(器件地址为7位,0为写,1为读)

在xilinx的vivado软件中,SDA接口数据编写:
IOBUF IOBUF_inst(
.O (sda_in), //1bit output
.I (sda_out), //1bit input
.IO(SDA), //1bit inout
.T (~sda_oe) //1bit input:3-state enable(1=input,0=output)
); //sda_in输入
等价于:
assign SDA = sda_oe?sda_out:1'bz;
IIC总线(集成电路总线)的更多相关文章
- 什么是总线、总线的类型、局部总线、局部总线类型和什么是接口方式?什么是IDE?什么是SCSI?
在安装电脑系统时,进行内核配置时涉及到各种总线类型,有必要了解一下什么是总线.总线的类型.局部总线.局部总线类型和接口方式. 1)总线总线是一组通信线.在机器内部, 各部件通过总线连接; 对于外部设备 ...
- IIC串行总线的组成及其工作原理
------------------最近项目上用到了一款美信的DS1308RTC芯片,由于是挂在了Zynq的PS MIO上,需要软件人员协助才能测试:觉得太麻烦了,想通过飞线,然后在Vivado中调用 ...
- IIC总线解析
IIC简介: IIC 即Inter-Integrated Circuit(集成电路总线),这种总线类型是由飞利浦半导体公司在八十年代初设计出来的,主要是用来连接整体电路(ICS) ,IIC是一种多向控 ...
- 对 IIC 总线的理解、调用函数以及常见面试问题
一.IIC 总线概述: IIC 即Inter-Integrated Circuit(集成电路总线) I2C总线是PHLIPS公司推出的一种串行总线, I2C总线只有两根双向信号线.一根是数据线SDA, ...
- 【接口时序】6、IIC总线的原理与Verilog实现
一. 软件平台与硬件平台 软件平台: 1.操作系统:Windows-8.1 2.开发套件:ISE14.7 3.仿真工具:ModelSim-10.4-SE .ChipScope 硬件平台: 1. FPG ...
- IIC - 【转载】对I2C总线的时钟同步和总线仲裁的深入理解
对I2C总线的时钟同步和总线仲裁的深入理解 每一个IIC总线器件内部的SDA.SCL引脚电路结构都是一样的,引脚的输出驱动与输入缓冲连在一起.其中输出为漏极开路的场效应管.输入缓冲为一只高输入阻抗的同 ...
- I2C总线协议详解
I2C总线定义 I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备.I2C总线产生于在80年代,最初为音 ...
- Linux中总线设备驱动模型及平台设备驱动实例
本文将简要地介绍Linux总线设备驱动模型及其实现方式,并不会过多地涉及其在内核中的具体实现,最后,本文将会以平台总线为例介绍设备和驱动程序的实现过程. 目录: 一.总线设备驱动模型总体介绍及其实现方 ...
- S3C2440 I2C总线控制
概述:话不多说,直接上图 多主机IIC总线控制(IICCON): IIC控制总线状态(IICSTAT): IIC总线地址(IICADD): IIC发送,接收总线寄存器(IICDS) IIC总线控制寄存 ...
随机推荐
- 对《SQL Server中tempdb的management》的一些更正和补充
对<SQL Server中tempdb的management>的一些更正和补充 前几天看了这篇文章:SQL Server中tempdb的management 发现里面有些内容不是很准确 文 ...
- Oracle EBS AP 已经完全付款的发票仍然可以选择并进行零金额的付款
1>找出相应的发票; SELECT DISTINCT ai.invoice_id, ai.invoice_num invoice_num, pv.segment1 vendor_num, pv. ...
- 《鸟哥的Linux私房菜》Chapter11 20180726~20180806
目录 1.认识Bash这个shell 1.1.硬件.核心与shell 1.2.系统的合法shell和/etc/shells功能 1.3.Bash shell的功能 1.3.1.命令修编功能 1.3.2 ...
- [翻译] PPiAwesomeButton
PPiAwesomeButton https://github.com/pepibumur/PPiAwesomeButton UIButton category with new methods to ...
- iOS手势处理
iOS手势处理 iOS手势有着如下几种: UITapGestureRecognizer UIPinchGestureRecognizer UIRotationGestureRecognizer UIS ...
- 铁乐学Python_Day33_网络编程Socket模块1
铁乐学Python_Day33_网络编程Socket模块1 部份内容摘自授课老师的博客http://www.cnblogs.com/Eva-J/ 理解socket Socket是应用层与TCP/IP协 ...
- 复用$.ajax方式传递参数错误处理
1.封装后的方法,在 data:inData 传递参数的方式和一般不一样,如果不注意会出现错误. function getDataByJsonP(methName, inData, fn) { $.a ...
- 解决redis-cli command not found问题
在使用其他服务器连接Redis服务器时,一般使用的语句是 [redis-cli -h IP -p port] 但是早上连接时报错:redis-cli command not found 在redis服 ...
- 1.5 Community and Conferences(社区和讨论组)+ 私货
1.5 Community and Conferences(社区和讨论组)+ 私货 下面是一些和科学计算,数据处理相关的Python社群和讨论组,如果有什么问题可以进行提问: pydata: A Go ...
- PHPExcel 导入
首先: //包含excel的类库require APPPATH . 'third_party/PHPExcel.php';require APPPATH . 'third_party/PHPExcel ...