IIC总线协议及ADCPCF8951汇总

合集下载

IIC总线协议及ADCPCF8951汇总

IIC总线协议及ADCPCF8951汇总

PCF8591是单片、单电源低功 耗8位CMOS数据采集器件,具有4 个模拟输入、一个输出和一个串行 I2C总线接口。3个地址引脚A0、 A1和A2用于编程硬件地址,允许 将最多8个器件连接至I2C总线而不 需要额外硬件。器件的地址、控制 和数据通过两线双向I2C总线传输。
器件功能包括多路复用模拟输 入、片上跟踪和保持功能、8位模 数转换和8位数模拟转换。最大转 换速率取决于I2C总线的最高速率。
下面讲基于IIC的集AD与DA一体的
—— PCF8591
1、概述
PCF8591
单电源供电 工作电压:2.5 V ~ 6 V 待机电流低 I2C总线串行输入/输出 通过3个硬件地址引脚编址 采样速率取决于I2C总线速度 4个模拟输入可编程为单端或差分输入 自动增量通道选择 模拟电压范围:VSS~VDD 片上跟踪与保持电路 8位逐次逼近式A/D转换 带一个模拟输出的乘法DAC
控制字节
D5,D4 模拟量输入选择: 00为四路单数入; 01为三路差分输入; 10 为单端与差分配合输入;11为模拟输出允许有效
读字节(AD)操作流程 在进行数据操作时: 首先是主控器发然后发出控制字节(写); 被控器做出应答后;
然后发出寻址字节(读); 被控器做出应答后; 主控器从被控器读出第一个数据字节,主控器发出应答; 主控器从被控器读出第二个数据字节,主控器发出应答; …… 主控器从被控器读出第n个数据字节,主控器发出非应答信号; 主控器发出停止信号。
四、总线的寻址 I2C总线协议有明确的规定:采用7位的寻址字 节(寻址字节是起始信号后的第一个字节)。 (1)寻址字节的位定义
D7~D1位组成从机的地址。D0位是数据 传送方向位,为“0”时表示主机向从机写数 据,为“1”时表示主机由从机读数据。

iic协议格式

iic协议格式

IIC(Inter-Integrated Circuit)协议,即集成电路总线协议,是一种两线制的串行通信总线,使用多主从架构。

IIC协议主要应用于数据量不大且传输距离短的场合,如主板、嵌入式系统或手机连接低速周边设备。

常见的传输速率有100kb/s、300kb/s和3.4Mkb/s。

IIC协议的传输格式以8bit为一个基本传输单位,包含地址、片选、读写和数据信号。

其基本时序如图所示,SCL为输入的时钟信号,SDA既可作为数据的输入信号,也可作为数据的输出信号。

在IIC总线协议中,数据的传输过程包括以下几个步骤:
1. START信号:表示数据传输的开始。

在SCL线为高电平的情况下,SDA线由高变低,即视为START开始。

2. 数据传输:在START信号之后,数据按照预定的格式进行传输。

数据线SDA上的电平变化表示数据的传输方向和状态。

3. STOP信号:表示数据传输的结束。

在SCL线为高电平的情况下,SDA线由低变高,即视为STOP结束。

基于51单片机的AD pcf8951 C程序

基于51单片机的AD pcf8951 C程序
delay();
sda=1;
delay();
for(i=0;i<8;i++)
{
scl=1;
delay();
k=(k<<1)|sda;
scl=0;
delay();
}
return k;
}
void ad_zhuan()//初始化AD转换
{
start();//启动信号
write_byte(0x90);//寻pcf8591址
respons();
stop();
return temp;
}
void main()
{
uchar a,A1,A2,A3,adval;
init();//初始化
//write_add(23,0xaa);向EEPROM写
delay1(100);
//P1=read_add(23);读EEPROM中数据
while(1)
scl=1;
delay();
TMOD=0x21; //定时器1的工作方式2;8位初值自动重装定时器
SCON=0x50;//8位数据允许串行接受
TH1= 0xfd;//产生波特率
TL1= 0xfd;
EA=1;
TR0=1;
}
void write_byte(uchar date)//写一个字节
{
uchar i,temp;
{
sda=0;
delay();
scl=1;
delay();
sda=1;
delay();
}
void respons() //应答
{
uchar i;
scl=1;
delay();

具有I2C总线接口的AD芯片PCF8591及其应用

具有I2C总线接口的AD芯片PCF8591及其应用

标题:具有I2C总线接口的A/D芯片PCF8591及其应用2009-05-28 04:03:27摘要:I2C总线是Philips公司推出的新型单片机系统。

它采用串行总线,主控器与外围器件仅靠两条线进行信息传输,一条称为时钟线(SCL),另一条位数据线(SDA)。

I2C总线单片机系统较通用单片机系统电路简单。

由普通CPU芯片同I2C专用器件组成的系统为模拟I2C系统,它性能稳定,价格较低,目前已得到广泛应用.本文介绍了具有I2C接口的A/D芯片PCF8591的引脚图及应用电路,并在暖水锅炉温度记录仪中得到应用。

关键词:I2C总线A/D转换器件地址控制字节1 引言I2C总线是Philips公司推出的串行总线,整个系统仅靠数据线(SDA)和时钟线(SCL)实现完善的全双工数据传输,即CPU与各个外围器件仅靠这两条线实现信息交换。

I2C总线系统与传统的并行总线系统相比具有结构简单、可维护性好、易实现系统扩展、易实现模块化标准化设计、可靠性高等优点。

在一个完整的单片机系统中,A/D转换芯片往往是必不可少的。

PCF8591是一种具有I2C 总线接口的A/D转换芯片。

在与CPU的信息传输过程中仅靠时钟线SCL和数据线SDA就可以实现。

2 芯片介绍PCF8591是具有I2C总线接口的8位A/D及D/A转换器。

有4路A/D转换输入,1路D/A模拟输出。

这就是说,它既可以作A/D转换也可以作D/A转换。

A/D转换为逐次比较型。

引脚图如图1所示。

结构图如图2所示。

电源电压典型值为5V。

AIN0~AIN3:模拟信号输入端。

A0~A3:引脚地址端。

VDD、VSS:电源端。

(2.5~6V)SDA、SCL:I2C总线的数据线、时钟线。

OSC:外部时钟输入端,内部时钟输出端。

EXT:内部、外部时钟选择线,使用内部时钟时EXT接地。

AGND:模拟信号地。

AOUT:D/A转换输出端。

VREF:基准电源端。

图2PCF85913 应用3.1 器件总地址PCF8591采用典型的I2C总线接口器件寻址方法,即总线地址由器件地址、引脚地址和方向位组成。

iic协议手册

iic协议手册

iic协议手册IIC(Inter-Integrated Circuit)是一种串行通信协议,被广泛应用于数字集成电路之间的通信。

本手册将详细介绍IIC协议的基本原理、通信模式、信号电平和传输速度等关键要点。

一、基本原理IIC协议最早由飞利浦公司(现在的恩智浦半导体)于1982年推出,用于解决集成电路之间的通信问题。

它基于两根双向线路:SDA(串行数据线)和SCL(串行时钟线),实现了高效率的数据传输和设备间的通信。

二、通信模式1. 主从模式:IIC通信中,通常会有一个主设备(Master)和多个从设备(Slave)。

主设备负责发起通信,从设备则被主设备控制并传输数据。

2. 单主模式:只能有一个主设备,但可以连接多个从设备。

主设备可以通过发送地址来选择特定的从设备进行通信。

3. 多主模式:允许多个主设备同时存在,并通过总线仲裁机制(bus arbitration)来解决竞争冲突。

三、信号电平1. 逻辑低电平:0V至0.3V之间。

2. 逻辑高电平:0.7VDD至VDD之间(VDD为供电电压)。

3. 电压标准:IIC协议定义了标准模式、快速模式和高速模式,对应的电压标准分别为3.3V和5V。

用户在使用时需根据实际情况选择合适的电压标准。

四、传输速度IIC协议的传输速率可通过调整时钟频率进行控制,最高速度取决于总线电容和负载。

根据不同的模式,IIC协议可以达到的最高传输速率分别为100kbps(标准模式)、400kbps(快速模式)和3.4Mbps(高速模式)。

五、通信过程IIC通信包括起始条件、地址传输、数据传输和停止条件等多个环节。

以下是一种简单的通信过程示例:1. 主设备发送起始条件:SCL线为高电平时,SDA线由高电平跳变为低电平。

2. 主设备发送从设备地址:主设备发送从设备的7位地址,包括读/写位。

从设备通过比较地址选择响应。

3. 数据传输:根据读/写位选择需要读取或写入的数据。

4. 停止条件:主设备通过将SDA线由低电平跳变为高电平,产生停止条件。

IIC总线工作原理

IIC总线工作原理

IIC总线工作原理IIC(Inter-Integrated Circuit)总线是一种串行通信接口标准,广泛应用于各种电子设备之间的通信。

它在数字电路领域中被普遍使用,因为它具有简单、易于实现和低功耗的特点。

IIC总线可以用于连接各种外设,如传感器、存储器、显示屏等,实现它们之间的数据传输和控制。

首先,IIC总线的起始信号是一个高电平到低电平的时钟信号(SCL),它表示通信的开始。

当SCL为高电平时,数据线(SDA)处于空闲状态,并且可以连接多个设备。

当SCL为低电平时,表示通信成功开始。

当起始信号发送后,接下来是地址和数据传输阶段。

在这个阶段,主设备(通常是控制器)会发送一个7位的地址码给从设备(如传感器)。

地址码用于指示从设备编号,这样主设备就能识别目标设备。

此外,还有一个位用于指示读取(R)或写入(W)操作。

主设备发送完地址码后,从设备会发送一个应答信号(ACK)来确认接收到地址码。

如果从设备正常工作,它会拉低SDA线来发送ACK信号。

如果没有设备响应地址码,主设备会发送停止信号来终止通信。

一旦主设备发送了起始信号和地址码,接下来就是数据传输阶段。

在数据传输阶段,主设备将发送或接收以字节为单位的数据。

数据线的电平发送者由主设备和从设备的电平决定。

主设备将每个字节分成8个位,依次在SDA上发送,并根据SCL时钟信号来同步数据传输。

在每个字节发送之后,接收者会回复一个ACK信号来确认已接收到数据。

主设备可以选择继续发送更多字节,或者发送停止信号来结束通信。

最后,通信的最后阶段是停止信号。

停止信号也是一个高电平到低电平的时钟信号,它表示通信的结束。

停止信号发出后,SDA和SCL两条线都回到高电平状态,表示通信已经结束。

总的来说,IIC总线的工作原理是基于起始信号、地址和数据传输,以及停止信号。

起始信号用于表示通信开始,地址和数据传输用于实现主设备和从设备之间的数据传输,而停止信号表示通信结束。

通过这种方式,IIC总线可以实现简单、高效的串行通信,广泛应用于各种电子设备之间的连接和通信。

iic协议讲解

iic协议讲解

iic协议讲解IIC(Inter-Integrated Circuit,即I2C)是一种串行通信协议,由飞思卡尔公司(现在是恩智浦公司)于1982年首次推出。

它通过两根信号线(SCL和SDA)进行通信,并且允许多个设备共享同一对信号线。

IIC协议使用主从结构,其中一个设备充当主设备,控制通信的起止,而其他设备充当从设备,等待主设备的命令或请求。

以下是IIC协议的一些关键概念和基本通信流程:1. 帧格式:IIC通信是基于字节的,每个数据传输都是1个字节。

每个字节由8个位组成,其中最高位是读或写位,指示主设备是发送数据还是请求数据。

2. 起始信号和停止信号:通信开始前,主设备发送一个起始信号(S)来指示通信的开始,结束时发送一个停止信号(P)来指示通信的结束。

3. 寻址:主设备通过发送设备地址来选择要与之通信的从设备。

每个从设备都有一个唯一的地址,可以是7位或10位。

在7位寻址模式下,可以有最多128个从设备。

4. 数据传输:主设备可以发送数据给从设备,也可以请求从设备发送数据给主设备。

数据传输是通过在SCL线上的时钟脉冲上的时钟信号同步进行的。

5. 硬件确认:每个字节的传输后,接收到字节的设备都会返回一个ACK或NACK信号,以表示是否成功接收到字节。

ACK (ACKnowledge)表示成功接收到字节,而NACK(Not ACKnowledge)则表示接收出错。

6. 速度:IIC协议支持不同的传输速度,通常有标准模式(100 Kbps)和快速模式(400 Kbps)。

一些设备还支持更高的速度,如高速模式(3.4 Mbps)和超高速模式(5 Mbps)。

总的来说,IIC协议是一种简单、灵活且可靠的通信协议,广泛应用于各种电子设备之间的通信,如传感器、存储器和外围设备等。

它的主要优点是只需两根线来进行通信,并且可以连接多个设备,节省了电路复杂度和空间。

I2C总线协议详解

I2C总线协议详解

I2C总线协议详解简介:I2C(Inter-Integrated Circuit)是一种由PHILIPS公司开发的两线式串行总线,用于衔接微控制器及其外围设备。

I2C总线产生于在80年月,最初为音频和视频设备开发,如今主要在服务器管理中用法,其中包括单个组件状态的通信可随时监控内存、硬盘、网络、系统温度等多个参数,增强了系统的平安性,便利了管理。

I2C总线特点I2C总线最主要的优点是其容易性和有效性。

因为接口挺直在组件之上,因此I2C总线占用的空间十分小,削减了板的空间和芯片管脚的数量,降低了互联成本。

总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率支持40个组件。

I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够举行发送和接收的设备都可以成为主总线。

一个主控能够控制信号的传输和时钟频率。

固然,在任何时光点上只能有一个主控。

I2C总线工作原理总线的构成及信号类型I2C总线是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。

在CPU与被控IC之间、IC与IC之间举行双向传送,最高传送速率100kbps。

各种被控制电路均并联在这条总线上,但就像电话机一样惟独拨通各自的号码才干工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,I2C总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。

CPU发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量打算该调节的类别(如对照度、亮度等)及需要调节的量。

这样,各控制电路虽然挂在同一条总线上,却彼此自立,互不相关。

I2C总线在传送数据过程*有三种类型信号,它们分离是:开头信号、第1页共4页。

IIC总线原理及其在51单片机中的简单应用

IIC总线原理及其在51单片机中的简单应用

IIC 总线原理及其在51 单片机中的简单应用
1. IIC 总线基本概念
1.1 总线概述
IIC 总线是PHLIPS 公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线。

1.2 总线结构
IIC 总线是由数据线SDA 和时钟线SCL 构成的串行总线,可发送和接收数据。

在CPU 与被控IC 之间、IC 与IC 之间可以进行双向传送,最高传送速率100kbps。

各种被控制电路均并联在这两条总线上。

2. IIC 总线协议
2.1 数据传输中的主/从机
在多主机系统中,可能同时有几个主机企图启动总线传送数据。

为了避免混乱,IIC 总线要通过总线仲裁,以决定由哪一台主机控制总线。

连在每一个总线上的电路和模块都有一个唯一地址,它们彼此之间只有简单的。

PCF8591和iic总线详细资料

PCF8591和iic总线详细资料

PCF8591和iic总线详细资料PCF8591和iic总线详细资料(⼀)、PCF85911、引脚说明ANI0~ANI3 为模拟信号输⼊端,不使⽤的输⼊端应接地A0~A2 地址输⼊端GND、VCC 地和电源端(+5V)SDA 为I2C数据输⼊与输出端SCL 为I2C时钟输⼊端EXT 内外部时钟选择端,使⽤内部时钟时接地,使⽤外部时钟时接+5VOSC 外部时钟输⼊、内部时钟输出端,不使⽤时应悬空AGND 模拟信号地VREF 基准电压输⼊端AOUT D/A转换后的电压输出端2、功能说明PCF8591是具有I2C总线接⼝的8位A/D及D/A转换器,具有4路A/D输⼊,1路D/A 输出。

PCF8591采⽤典型的I2C总线接⼝器件寻址⽅法,即总线地址由器件地址(1001)、引脚地址(由A0~A2接地或+5V来确定,接地代表0;接+5V代表1)、⽅向位(即R/W)组成。

因此,在I2C总线系统中最多可接8个这样的器件。

R/W=1表⽰读操作,R/W=0表⽰写操作。

本例将A0~A2接地,则读地址为91H;写地址为90H。

地址字节:由器件地址、引脚地址、⽅向位组成,它是通信时主机发送的第⼀字节数据。

控制字节:⽤于控制PCF8951的输⼊⽅式、输⼊通道、D/A转换等,是通信时主机发A/D输⼊⽅式选择说明:3(⼆)、I2C总线1、I2C总线数据位的传输它通过2根线:串⾏数据线(SDA)和串⾏时钟线(SCL)组成。

连接到总线上的每⼀个器件都有⼀个唯⼀的地址,⽽且都可以作为⼀个发⽣器或接收器,SDA和SCL都是双向线路,分别通过⼀个电阻连接到电源(+5V)端。

前提是连接到总线上的器件的SDA和SCL端必须是漏极或集电极开路型。

I2C总线上的数据传输速率在标准模式下可达100Kb/s,快速模式可达400Kb/s,⾼速模式下可达3.4Mb/s。

连接到总线的器件数量只由总线的电容(400PF)限制决定。

I2C总线上每传输⼀个数据位必须产⽣⼀个时钟脉冲,I2C总线上数据传输的有效性要求SDA线上的数据必须在时钟线SCL的⾼电平期间保存稳定,数据线的改变只能在时钟线为低电平期间。

IIC总线详解

IIC总线详解
第7页,共29页。
起始和终止信号都是由主机发出的,在起始信号 产生后,总线就处于被占用的状态;在终止信号产生 后,总线就处于空闲状态。
连接到I2C总线上的器件,若具有I2C总线的硬件接口,则很容
易检测到起始和终止信号。对于不具备I2C总线硬件接口的有些单片 机来说,为了检测起始和终止信号,必须保证在每个时钟周期内对
一、典型信号模拟 为了保证数据传送的可靠性,标准的I2C
总线的数据传送有严格的时序要求。I2C总 线的起始信号、终止信号、发送“0”及发 送“1”的模拟时序 :
第21页,共29页。
第22页,共29页。
二、典型信号模拟子程序
(1)起始信号
Void T2CStart(void)
{
SomeNop( );
一、数据位的有效性规定
I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的 数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据 线上的高电平或低电平状态才允许变化。
第6页,共29页。
二、起始和终止信号
SCL线为高电平期间,SDA线由高电平向低电平的 变化表示起始信号;SCL线为高电平期间,SDA线由低 电平向高电平的变化表示终止信号。
第26页,共29页。
(2)写入过程
AT24C系列E2PROM芯片地址的固定部分为1010, A2、A1、A0引脚接高、低电平后得到确定的3位编码。 形成的7位编码即为该器件的地址码。
单片机进行写操作时,首先发送该器件的7位地址 码和写方向位“0”(共8位,即一个字节),发送完 后释放SDA线并在SCL线上产生第9个时钟信号。被 选中的存储器器件在确认是自己的地址后,在SDA线 上产生一个应答信号作为相应,单片机收到应答后就 可以传送数据了。

PCF8591详解

PCF8591详解

PCF8591应用程序<上一节下一节>分享到:QQ空间新浪微博腾讯微博豆瓣人人网在线学习编程开发,零基础到精通教程任你挑:北风网PCF8591 的通信接口是I2C,那么编程肯定是要符合这个协议的。

单片机对PCF8591 进行初始化,一共发送三个字节即可。

第一个字节,和EEPROM 类似,是器件地址字节,其中7 位代表地址,1 位代表读写方向。

地址高4 位固定是0b1001,低三位是A2,A1,A0,这三位我们电路上都接了GND,因此也就是0b000,如图17-5 所示。

图17-5 PCF8591 地址字节发送到PCF8591 的第二个字节将被存储在控制寄存器,用于控制PCF8591 的功能。

其中第3 位和第7 位是固定的0,另外6 位各自有各自的作用,如图17-6 所示,我逐一介绍。

图17-6 PCF8591 控制字节控制字节的第6 位是DA 使能位,这一位置1 表示DA 输出引脚使能,会产生模拟电压输出功能。

第4 位和第5 位可以实现把PCF8591 的4 路模拟输入配置成单端模式和差分模式,单端模式和差分模式的区别,我们在17.5 节有介绍,这里大家只需要知道这两位是配置AD输入方式的控制位即可,如图17-7 所示。

图17-7 PCF8591 模拟输入配置方式控制字节的第2 位是自动增量控制位,自动增量的意思就是,比如我们一共有4 个通道,当我们全部使用的时候,读完了通道0,下一次再读,会自动进入通道1 进行读取,不需要我们指定下一个通道,由于A/D 每次读到的数据,都是上一次的转换结果,所以同学们在使用自动增量功能的时候,要特别注意,当前读到的是上一个通道的值。

为了保持程序的通用性,我们的代码没有使用这个功能,直接做了一个通用的程序。

控制字节的第0 位和第1 位就是通道选择位了,00、01、10、11 代表了从0 到3 的一共4 个通道选择。

发送给PCF8591 的第三个字节D/A 数据寄存器,表示D/A 模拟输出的电压值。

iic协议格式

iic协议格式

iic协议格式摘要:IIC协议格式简介1.IIC协议概述2.IIC协议的基本格式3.IIC协议的数据传输过程4.IIC协议的优点和应用领域正文:IIC协议格式简介IIC(Inter-Integrated Circuit),又称为I2C(Inter IC),是一种串行双向通信总线,它是由Philips公司于1980年代研发的。

IIC协议主要用于在微处理器和外围设备之间进行低速通信,例如存储器、LCD驱动器、传感器等。

它具有简单、成本低、扩展性强等优点,因此在嵌入式系统和电子设备中得到了广泛应用。

IIC协议的基本格式IIC协议的基本格式包括:起始信号、数据传输、应答信号、停止信号。

1.起始信号:SDA线上的数据从高电平到低电平变化,表示数据传输的开始。

2.数据传输:在SDA线上传输数据,数据是8位的,可以传输一个字节或多个字节。

3.应答信号:在数据传输过程中,每个字节的数据发送后,接收方会发送一个应答信号。

应答信号是SDA线上的数据从低电平到高电平变化。

4.停止信号:SDA线上的数据从低电平到高电平变化,表示数据传输的结束。

IIC协议的数据传输过程IIC协议的数据传输过程分为三个阶段:写数据、读数据和应答。

1.写数据:主设备将数据写入到从设备。

首先,主设备发送起始信号,然后发送数据,接着发送停止信号。

从设备收到数据后,会发送应答信号。

2.读数据:主设备从从设备读取数据。

首先,主设备发送起始信号,然后发送从设备的地址和读数据命令,接着发送停止信号。

从设备收到命令后,会发送应答信号,然后发送数据。

主设备收到数据后,会发送应答信号,最后发送停止信号。

3.应答:在数据传输过程中,每个字节的数据发送后,接收方会发送一个应答信号。

应答信号是SDA线上的数据从低电平到高电平变化。

IIC协议的优点和应用领域IIC协议具有以下优点:1.只需要两根信号线即可实现通信。

2.设备地址唯一,便于识别。

3.支持多主设备,扩展性强。

实用分享:IIC总线通用手册

实用分享:IIC总线通用手册

实用分享:IIC总线通用手册IIC (也称I2C)即Inter-Integrated Circuit(集成电路总线),这种总线类型是由飞利浦半导体公司在八十年代初设计出来的,主要是用来连接整体电路(ICS) ,IIC是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源。

这种方式简化了信号传输总线接口。

随着规模集成电路技术的发展,把CPU和一个单独工作系统所需的ROM、RAM、I/O端口、A/D、D/A等外围电路集成在一个单片内制作成的单片机或微控制器月俩月方便。

目前,世界上许多公司生产的单片机,品种很多。

其中包括各种字长的CPU,这种容量的ROM、RAM以及功能各异的I/O接口电路等等,但是,单片机的品种规格依旧有限,所以只能选用某种单片机来进行扩展。

扩展的方法有两种:一种是并行总线,另一种是串行总线。

由于串行总线的连线少,结构简单,往往不用专门的母版和插座就可以直接用导线连接各个设备。

因此,采用串行线可大大简化系统的硬件设计。

PHILIPS公司在十几年前推出了I2C串行总线,利用该总线实现多主机系统所需的裁决和高低速设备同步等功能。

因此,这是一种高性能的串行总线。

【I2C总线的特点】I2C总线最主要的优点是其简单性和有效性。

由于接口直接在组件上,因此I2C总线占用的空间非常小,减少了电路板的空间和芯片管脚的数量,降低了互联成本。

总线的长度可高达25英尺,并且能够以10KBPS的最大传输速率支持40个组件,I2C总线的另一个优点是,它支持多主控,其中任何能够进行发射和接受的设备都可以成为主总线,一个主控能够控制信号的传输和时钟频率。

当然,在任何时间点上只能有一个主控。

【I2C总线的双向信号线】I2C总线只有两根双向信号线。

一根是数据线SDA,另一根是时钟线SCL。

连接到相同总线的IC数量,受总线最大电容400PF的限制。

I2C总线通过上拉电阻接正电源。

iic知识点总结fpga

iic知识点总结fpga

iic知识点总结fpgaFPGA是一种可编程逻辑器件,用于实现可重复使用的硬件电路。

FPGA的设计可以采用不同的方法,具体包括了RTL(Register Transfer Level)、HDL(Hardware Description Language)、Schematic Design和高层次综合。

iic通信协议是一种串行总线协议,用于在芯片之间进行短距离的数据传输。

iic通信协议在FPGA系统中应用广泛。

本文将对FPGA系统中iic通信协议的相关知识点进行总结。

1. iic协议基础iic协议包括了两条线路:串行数据线(SDA)和串行时钟线(SCL)。

SDA用于传输数据,SCL用于同步数据传输。

iic协议的传输速率可以设置为100Kbit/s、400Kbit/s、1Mbit/s和3.4Mbit/s等。

iic协议支持两种通信方式:主机模式和从机模式。

在主机模式下,主机设备控制总线的时钟信号,并负责传输数据。

在从机模式下,从机设备接收主机设备传输的数据,并提供ACK信号以表示数据已被接收。

iic协议的传输流程包括了起始信号、地址信号、数据传输和停止信号。

起始信号表明一次数据传输的开始,停止信号表明一次数据传输的结束。

地址信号用于指定从机设备的地址。

数据传输是以字节为单位进行的,主机设备将数据传输到从机设备,并等待从机设备提供ACK信号。

如果从机设备不能正确接收数据,则会发送NACK信号并终止传输。

4. FPGA中iic协议的实现在FPGA中,可以使用Verilog或VHDL语言实现iic协议。

实现iic协议需要实现iic 接口模块,包括了读写命令的生成、起始信号和停止信号的生成、时钟速率的控制等。

需要注意的是,在FPGA中,iic协议的实现需要考虑多种因素,例如数据传输速率、总线线长、阻抗匹配等。

因此,在实现iic协议时,需要综合考虑这些因素,以确保数据传输的可靠性和稳定性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

起始和终止信号都是由主机发出的,在起始信号产生后, 总线就处于被占用的状态;在终止信号产生后,总线就处 于空闲状态。
连接到I2C总线上的器件,若具有I2C总线的硬件接口,则 很容易检测到起始和终止信号。
接收器件收到一个完整的数据字节后,有可能需要完成 一些其它工作,如处理内部中断服务等,可能无法立刻接收 下一个字节,这时接收器件可以将SCL线拉成低电平,从而 使主机处于等待状态。直到接收器件准备好接收下一个字节 时,再释放SCL线使之为高电平,从而使数据传送可以继续 进行。
下面讲基于IIC的集AD与DA一体的
—— PCF8591
1、概述
PCF8591
单电源供电 工作电压:2.5 V ~ 6 V 待机电流低 I2C总线串行输入/输出 通过3个硬件地址引脚编址 采样速率取决于I2C总线速度 4个模拟输入可编程为单端或差分输入 自动增量通道选择 模拟电压范围:VSS~VDD 片上跟踪与保持电路 8位逐次逼近式A/D转换 带一个模拟输出的乘法DAC
三、数据传送格式 (1)字节传送与应答
每一个字节必须保证是8位长度。数据传送时,先传 送最高位(MSB),每一个被传送的字节后面都必须跟 随一位应答位(即一帧共有9位)。
由于某种原因从机不对主机寻址信号应答时(如从机 正在进行实时性的处理工作而无法接收总线上的数据), 它必须将数据线置于高电平,而由主机产生一个终止信号 以结束总线的数据传送。 如果从机对主机进行了应答,但在数据传送一段时间后 无法继续接收更多的数据时,从机可以通过对无法接收的 第一个数据字节的“非应答”通知主机,主机则应发出终 止信号以结束数据的继续传送。 当主机接收数据时,它收到最后一个数据字节后,必须 向从机发出一个结束传送的信号。这个信号是由对从机的 “非应答”来实现的。然后,从机释放SDA线,以允许主 机产生终止信号。
I2C串行总线的组成及工作原理
结合AD/DA芯片PCF8591与AT24C02
I2C串行总线的组成及工作原理
采用串行总线技术可以使系统的硬件设计大大简化、系统 的体积减小、可靠性提高。同时,系统的更改和扩充极为容 易。 常用的串行扩展总线有: I2C (Inter IC BUS)总线, 如PCF8591,AT24C02 单总线(1-WIRE BUS), 如温度传感器18B20 SPI(Serial Peripheral Interface)总线, 如串行口 Microwire/PLUS等。 本课仅讨论I2C串行总线。
器件寻址
PCF8591采用典型的I2C总线接口器件寻址方法,即总 线地址由器件地址、引脚地址和方向位组成。 由PHILIPS公司规定AD器件地址为1001,引脚地址为 A2A1A0,其值由用户选择因此 系统中最多可接8个具有I2C 接口的器件,地址的最后一位为方向为R/W,当主控器对 A/D器件进行读操作时为 1,进行写操作时为0,总线操作 时,由器件地址、引脚地址和方向位组成的从地址为主控 器发送的第一字节。
a、主机向从机发送数据,数据传送方向在整 个传送过程中不变:
注:有阴影部分表示数据由主机向从机传送,无阴影部分则 表示数据由从机向主机传送。 A表示应答, A非表示非应答(高电平)。S表示起始信号, P表示终止信号。。
b、主机在第一个字节后,立即从从机读数据
c、在传送过程中,当需要改变传送方向时, 起始信号和从机地址都被重复产生一次,但 两次读/写方向位正好反相。
(2)数据帧格式 I2C总线上传送的数据信号是广义的,既包括地址 信号,又包括真正的数据信号。
在起始信号后必须传送一个从机的地址(7位), 第8位是数据的传送方向位(R/T),用“0”表示主 机发送数据(T),“1”表示主机接收数据(R)。 每次数据传送总是由主机产生的终止信号结束。但 是,若主机希望继续占用总线进行新的数据传送, 则可以不产生终止信号,马上再次发出起始信号对 另一从机进行寻址。 在总线的一次数据传送过程中,可以有以下几种 组合方式:
PCF8591
2、应用 闭环控制系统 用于远程数据采集的低功耗转换器 电池供电设备 在汽车、音响和TV应用方面的模拟电平时,SDA 线从高电平向低电平切换,这个 情况表示起始条件;
#define somenop {_nop_();_nop_();_nop_();_nop_();_nop_();}
发送字节
void iic_sendbyte(unsigned char byt) { unsigned char i; for(i=0;i<8;i++) { if(byt&0x80) //先发高位 SDA = 1; else SDA = 0; somenop; SCL = 1; byt <<= 1; somenop; SCL = 0; } }
PCF8591是单片、单电源低功 耗8位CMOS数据采集器件,具有4 个模拟输入、一个输出和一个串行 I2C总线接口。3个地址引脚A0、 A1和A2用于编程硬件地址,允许 将最多8个器件连接至I2C总线而不 需要额外硬件。器件的地址、控制 和数据通过两线双向I2C总线传输。
器件功能包括多路复用模拟输 入、片上跟踪和保持功能、8位模 数转换和8位数模拟转换。最大转 换速率取决于I2C总线的最高速率。
iic_sendbyte(0x90);
控制字节
控制字节用于实现器件的各种功能 如模拟信号由哪几个通道输入等 控 制字节存放在控制寄存器中 总线操作时为主控器发送的第二字节其格 式如下所示。
iic_sendbyte(0x03);
其中: D1D0两位是A/D通道编号: 00:通道0;01:通道1;10: 通道2;11:通道 3 D2:自动增量选择(有效位为1),每次A/D转换后通道号将 自动增加 D5,D4 模拟量输入选择: 00为四路单数入; 01为三路差分输入; 10 为单端与差分配合输入;11为模拟输出允许有效 D6:模拟输出使能,即DA使能
接收字节
unsigned char iic_recbyte(void) { unsigned char da; unsigned char i; for(i=0;i<8;i++) { SCL = 1; somenop; da <<= 1; if(SDA) da |= 0x01; SCL = 0; somenop; } return da; }
写字节(DA)操作流程 在进行数据操作时: 首先是主控器发出起始信号; 然后发出寻址字节(写); 被控器做出应答后; 然后发出控制字节(写); 被控器做出应答后;
主控器向被控器写入第一个数据字节,被控器回一个应答; 主控器向被控器写入第二个数据字节,被控器回一个应答;
……
主控器发出停止信号。
应答响应
8.2 80C51单片机I2C串行总线器件的接口 8.2.1 总线数据传送的模拟
主机可以采用不带I2C总线接口的单片机,如 80C51、AT89C2051等单片机,利用软件实现I2C 总线的数据传送,即软件与硬件结合的信号模拟。 一、典型信号模拟 为了保证数据传送的可靠性,标准的I2C总线的数 据传送有严格的时序要求。I2C总线的起始信号、终 止信号、发送“0”及发送“1”的模拟时序 :
8.1.2
I2C总线的数据传送
一、数据位的有效性规定
I2C总线进行数据传送时,时钟信号为高电平期间,数据 线上的数据必须保持稳定,只有在时钟线上的信号为低电 平期间,数据线上的高电平或低电平状态才允许变化。
二、起始和终止信号
SCL线为高电平期间,SDA线由高电平向低电 平的变化表示起始信号;SCL线为高电平期间, SDA线由低电平向高电平的变化表示终止信号。
PCF8591
3、引脚图 • AIN0~AIN3:模拟信号输入端。 • A0~A3:引脚地址端。 • VDD、VSS:电源端。(2.5~6V) • SDA、SCL:I2C 总线的数据线、时钟线。 • OSC:外部时钟输入端,内部时钟输出端。 • EXT:内部、外部时钟选择线,使用内部时 钟时 EXT 接地。 • AGND:模拟信号地。
I2C串行总线概述
I2C总线是PHLIPS公司推出的一种串行总线,是具备多 主机系统所需的包括总线裁决和高低速器件同步功能的高 性能串行总线。
I2C总线只有两根双向信号线。一根是数据线SDA,另 一根是时钟线SCL。
I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均 为高电平。连到总线上的任一器件输出的低电平,都将使总 线的信号变低,即各器件的SDA及SCL都是线“与”关系。
主机在接收到一个字节后, 向从机作出应答
主机等待从机应答
void iic_ack(bit ackbit) { if(ackbit) SDA = 0; //应答 else SDA = 1; //非应答 somenop; SCL = 1; somenop; SCL = 0; SDA = 1; //SDA拉高,释放SDA线 somenop; }
控制字节
D5,D4 模拟量输入选择: 00为四路单数入; 01为三路差分输入; 10 为单端与差分配合输入;11为模拟输出允许有效
读字节(AD)操作流程 在进行数据操作时: 首先是主控器发出起始信号; 然后发出寻址字节(写); 被控器做出应答后; 然后发出控制字节(写); 被控器做出应答后;
然后发出寻址字节(读); 被控器做出应答后; 主控器从被控器读出第一个数据字节,主控器发出应答; 主控器从被控器读出第二个数据字节,主控器发出应答; …… 主控器从被控器读出第n个数据字节,主控器发出非应答信号; 主控器发出停止信号。
void iic_start(void) { SDA = 1; _nop_(); SCL = 1; somenop; SDA = 0; somenop; SCL = 0; }
I2C停止
SCL 线是高电平时,SDA 线由低电平向高电平切换,这个 情况表示停止条件。
相关文档
最新文档