IIC串行总线的组成及其工作原理

------------------最近项目上用到了一款美信的DS1308RTC芯片,由于是挂在了Zynq的PS MIO上,需要软件人员协助才能测试;觉得太麻烦了,想通过飞线,然后在Vivado中调用IIC的IP核,在PL端实现IIC的读写,借此验证此芯片的功能是否正常。因此简单学习一下IIC的协议,顺便借此提升一下对IIC的认识---------------

常用的串行扩展总线有:IIC总线、SPI总线与UART总线。

IIC总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。

IIC总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平。连到总线上的任一器件输出的低电平,都将使总线的信号变低,即各器件的SDA及SCL都是线“与”关系。

每个IIC总线上的器件都有唯一的地址。主机与其它器件间的数据传送可以是由主机发送数据到其它器件,这时主机即为发送器,由总线上接收数据的器件则为接收器。

>>>数据位的有效性规定

IIC总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平器件,数据线上的高电平或低电平状态才允许变化。

>>>起始和终止信号

SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。

起始和终止信号都是由主机发出的,在起始信号产生后,总线就处于被占用的状态;在终止信号产生后,总线就处于空闲状态。

备注:接收器件收到一个完整的数据字节后,有可能需要完成一些其它工作,如处理内部中断服务等,可能无法立即接收下一个字节,这时接收期间可以将SCL线拉成低电平,从而使主机处于等待状态。直到接收器件准备好接收下一个字节时,再释放SCL线使之为高电平,从而使数据传送可以继续进行。

>>>数据传送格式

1 每一个字节必须保证是8位长度。数据传送时,先传送最高位MSB,每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位)。

2 数据帧格式

IIC总线上传送的数据信号是广义的,既包括地址信号,又包括真正的数据信号。

在起始信号后必须传送一个从机的地址(7位),第8位是数据的传送方向位(R/T),用“0”表示主机发送数据(T),“1”表示主机接收数据(R)。每次数据传送总是由主机产生的终止信号结束。但是,若主机希望继续占用总线进行新的数据传送,则可以不产生终止信号,马上再次发出起始信号对另一从机进行寻址。

传送数据的组合方式:

A、主机向从机发送数据,数据传送方向在整个传送过程中不变。

B、主机在第一个字节后,立即从从机读数据

C、在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读/写方向位正好相反

>>>总线的寻址

IIC总线协议有明确的规定:采用7位的寻址字节(寻址字节时起始信号后的第一个字节)。

主机发送地址时:总线上的每个从机都将这7位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址,根据R/T位将自己确定为发送器或接收器。

从机的地址:由固定部分和可编程部分组成。

原文地址:https://www.cnblogs.com/lifei-chan/p/8660334.html

时间: 2024-10-10 07:03:34

IIC串行总线的组成及其工作原理的相关文章

cortex_m3_stm32嵌入式学习笔记(二十):IIC实验(I2C串行总线)

IIC(Inter- Integrated Circuit)总线是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备.它是由数据线SDA 和时钟SCL构成的串行总线,可发送和接收数据.在 CPU 与被控 IC 之间. IC 与 IC 之间进行双向传送, 高速 IIC 总线一般可达 400kbps 以上. ALIENTEK MiniSTM32 开发板板载的 EEPROM 芯片型号为 24C02.该芯片的总容量是 256个字节,该芯片通过 IIC 总线与外部连接,我们本章

SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)

SPI.I2C.UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) 第二,区别在电气信号线上: SPI总线由三条信号线组成:串行时钟(SCLK).串行数据输出(SDO).串行数据输入(SDI).SPI总线可以实现多个SPI设备互相连接.提供SPI串行时钟的SPI

单片微机原理P4:80C51串口与串行总线拓展

0. 串口通讯 0. 串口通讯的数据传输方式:单工(单向传输数据),半双工(非同时双向传输),全双工(同时,双向传输) 1. 根据通信方式的不同又分为同步通讯和异步通讯. 同步通讯:所有设备都使用同一个时钟,称为同步时钟.在数据传送时,以若干个数据字符(称为数据块)为单位进行传输,每个数据块包括同步字符.数据块和校验字符CRC. 异步通信是指在串行通信中,接收设备和发送设备有各自的时钟信号,异步通信以字符为单位进行数据传送,不过通信中这些时钟频率必须保持一致. 2. 波特率和比特率 波特率是每秒

浅谈 串行信号 转换成 并行信号 原理

注 :  文中讲述的原理是推理和探讨 , 和现实中的实现不一定完全相同 . 开始之前, 可以先参考看看我之前写的两篇文章 : <设计一个 硬件 实现的 Dictionary(字典)>  https://www.cnblogs.com/KSongKing/p/10193128.html <漫谈 计算机硬件 的 设计 和 实现>  https://www.cnblogs.com/KSongKing/p/9866334.html 原文地址:https://www.cnblogs.com/

IIC总线硬件工作原理(待完善)

一.IIC基础概念 IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备.IIC总线最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信.例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇.可随时监控内存.硬盘.网络.系统温度等多个参数,增加了系统的安全性,方便了管理. 1.IIC特点 简单:接口在组件上,占用空间小     高效:能够以10Kbp

COM口,串行通讯端口,RS-232接口 基础知识

COM口即串行通讯端口. COM口的接口标准规范和总线标准规范是RS-232,有时候也叫做RS-232口.电脑上的com口多为9针,最大速率115200bps.通常用于连接鼠标(串口)及通讯设备(如连接外置式MODEM进行数据通讯)等.但目前主流的主板一般都只带1个串口,甚至不带,慢慢会被USB 取代. 以前用于连接老式的COM口鼠标键盘,还有链接路由器,外置调制解调器等.现在很少使用. 什么是串口,串行通讯端口?-----------------------------------------

十天学会单片机Day4串行口通信

并行与串行基本通信方式 1.并行通信方式 通常是将数据字节的各位用多条数据线同时进行传送. 并行通信控制简单.传输速度快:由于传输线较多,长距离传送时成本高且接收方的各位同时接收存在困难. 2.串行通信方式 是将数据字节分成一位一位的形式在一条传输线上逐个地传送. 串行通信传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂. 3.异步串行通信方式 异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程.为使双方的收发协调,要求发送和接收设备

EEPROM工作原理透彻详解

EEPROM(Electrically Erasable Programmable read only memory)即电可擦可编程只读存储器,是一种掉电后数据不丢失(不挥发)存储芯片. EERPOM的基本结构有几种,这里讲解比较常用的FLOTOX管结构,如下图所示: FLOTOX(Floating Gate Tunneling Oxide)MOS管即浮栅隧道氧化层晶体管,它是在标准CMOS工艺的基础上衍生的技术. 如上图所示,在传统的MOS管控制栅下插入一层多晶硅浮栅,浮栅周围的氧化层与绝缘层

哈希表工作原理 (并不特指Java中的HashTable)

1. 引言         哈希表(Hash Table)的应用近两年才在NOI中出现,作为一种高效的数据结构,它正在竞赛中发挥着越来越重要的作用.  哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间:而代价仅仅是消耗比较多的内存.然而在当前可利用内存越来越多的情况下,用空间换时间的做法是值得的.另外,编码比较容易也是它的特点之一.         哈希表又叫做散列表,分为“开散列” 和“闭散列”.考虑到竞赛时多数人通常避免使用动态存储结构,本文中的“哈希表”仅