版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章单片机与I2C总线芯片的接口技术11.1I2C总线的基本概念11.2虚拟I2C总线软件包11.3I2C总线E2PROM芯片AT24C××11.4I2C总线I/O扩展芯片PCF857411.5I2C总线A/D、D/A转换芯片PCF859111.6I2C总线实时时钟/日历芯片PCF856311.7I2C总线数字温度传感器芯片LM75A 11.1I2C总线的基本概念
1. I2C总线概述
I2C(Inter-IntegratedCircuit)总线是由PHILIPS公司开发的2线式串行总线,用于连接微控制器及其外围设备,是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有口线少,控制方式简单,器件封装小,通信速率高等优点,被列入世界性的工业标准。现在有许多外围器件与微控制器的接口采用I2C串行总线。
I2C总线有严格的规范,如接口的电气特性、信号时序、总线状态设置和状态处理等。I2C总线的数据传输模式有基本模式、快速模式和高速模式,传输速度分别为100kb/s、
400kb/s和3.4Mb/s。I2C总线的驱动能力受总线电容限制,不加驱动时的驱动能力为400pF。
I2C总线协议如下:
(1)只有在总线非忙时才被允许进行数据传送。
(2)在数据传送时,若时钟线为高电平,则数据线必须为固定状态,不允许有跳变。因为时钟线为高电平时,数据线的任何电平变化将被当作总线的启动或停止条件。
2. I2C总线的电气特性与结构
I2C总线是由数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。采用I2C总线的器件均并联在总线上,每个器件内部都有I2C接口电路,用于实现与I2C总线的连接,连接方式如图11.1所示。图11.1I2C器件与I2C总线的连接
3. I2C总线的数据传输
在传输数据开始前,主控器件发送起始位,通知从接收器件作好接收准备;在传输数据结束时,主控器件发送停止位,通知从接收器件停止接收。
1) I2C总线数据传送的起始和停止标志
当SCL处于高电平,SDA从高电平向低电平跳变时,I2C总线数据传送开始,总线起始后便处于忙的状态;当SCL处于高电平,SDA从低电平向高电平跳变时I2C总线数据传送停止,总线停止后处于空闲状态。在起始信号和停止信号之间是寻址信息和数据信息。I2C总线每传送一次数据,都由主器件发送起始信号开始,发送停止信号结束,时序如图11.2所示。图11.2I2C总线的开始和结束时序
2) I2C总线上的数据传输格式
I2C总线上的数据传输必须遵循总线规范。主CPU发出起始信号表明一次数据传送的开始,其后为寻址字节。寻址字节由高7位地址和1位方向位组成。方向位表明主CPU与从器件之间的数据传送方向,该位为“0”时表明CPU对从器件进行写操作,为“1”时是读操作。寻址字节后是按指定地址读、写操作的数据字节与应答位。主CPU发出寻址信号后,地址与自己相符的从器件便会产生一个应答信号。数据字节的后面也跟随一个应答信号,应答信号在第9个时钟位上出现。当从器件输出低电平时为应答信号,输出高电平时为非应答信号,如图11.3所示。图11.3I2C总线的应答信号
SDA线上的数据在时钟信号SCL为高电平时必须稳定。数据线上的高低状态只有当SCL线的时钟信号为低电平时才可变换,如图11.4所示。图11.4I2C总线的有效数据位
3) I2C总线的数据传输时序
I2C总线在起始位后的首字节决定哪个被控器被主控器选择。当主控器输出一个地址时,系统中的每一器件都将起始位后的前七位地址和自己的地址进行比较,如果相同,则该器件认为自己被主控器寻址。该器件是作为被控接收器还是被控发送器则取决于第8位(R/位)。I2C总线的数据传输时序如图11.5所示。图11.5I2C总线的数据传输时序
4.器件的寻址字节
在I2C总线标准中,寻址字节由7位地址和1位方向位组成,从器件的地址完全由引脚电平和器件类型决定,即上述的器件地址(高4位D7~D4)和引脚地址(低3位D3~D1)。I2C总线中的外围芯片的器件地址由各厂家按统一的标准制定。表11.1为常用I2C总线芯片的器件地址和引脚地址。表11.1常用I2C总线芯片的器件地址和引脚地址 11.2虚拟I2C总线软件包
11.2.1虚拟I2C总线汇编软件包
虚拟I2C总线汇编软件包是广州周立功单片机发展有限公司的研究人员提出的,用在单主I2C总线上,硬件接口是SDA、SCL,使用MCU的I/O口来模拟SDA、SCL总线。设计有/无子地址的子程序是根据I2C器件的特点进行的,目的在于将地址和数据彻底分开。软件包的函数如下:
IRDBYTE(无子地址)读单字节数据(现行地址读)
IWRBYTE(无子地址)写单字节数据(现行地址写)
IRDNBYTE(有子地址)读N字节数据
IWRNBYTE(有子地址)写N字节数据
(1)现行地址读/写专指无子地址的器件,不给定子地址的读/写操作。
(2)平台占用内部资源:R0,R1,R2,R3,ACC,Cy。
(3)使用前必须定义变量:SLA器件从地址,SUBA器件子地址,NUMBYTE读/写的字节数,位变量ACK。
(4)使用前必须定义常量:SDA、SCL总线位,MTD发送数据缓冲区首址,MRD接收数据缓冲区首址。
(5)子程序出口参数ACK为0时表示从器件无应答。
VI2C_ASM.ASM软件包清单如下:11.2.2虚拟I2C总线C51程序软件包
虚拟I2C总线C51程序软件包用在单主方式下的I2C总线上,硬件接口是SDA、SCL,使用MCU的I/O口作SDA、SCL。软件包函数如下:
(1) bitISendStr(ucharsla,ucharsuba,uchar*s,ucharno)(有子地址)读N字节数据;
(2) bitIRcvStr(ucharsla,ucharsuba,uchar*s,ucharno)(有子地址)写N字节数据;
说明:
(1)每一个函数都有返回值,当返回值为1时表示操作成功,否则表示操作失败。
(2) sla为器件从地址,suba为器件子地址,*s为数据接收/发送区指针,no为接收/发送字节数。
(3)有子地址器件,不给定子地址的读/写操作。
(4)设计有/无子地址子程序是根据I2C器件的特点,把地址和数据彻底分开。
(5)使用时只要把I2C.c复制到用户程序相应的目录,然后在用户主程序开头加入#include<I2C.c>即可使用上面的函数。
<I2C.c>软件包中有两点需要注意:
(1) I2C总线SDA、SCL定义为MCU的P3.4、P3.5。
(2) MCU的标准时钟fosc小于等于12MHz(时钟周期为标准80C51模式,即12Clock)。
11.3I2C总线E2PROM芯片AT24C××
1.串行E2PROM芯片AT24C××系列概述
AT24C××系列是美国Atmel公司生产的低功耗CMOS串行E2PROM,支持I2C总线数据传输协议。该系列包含AT24C01、AT24C02、AT24C04、AT24C08、AT24C16、AT24C32、AT24C64、AT24C128、AT24C256和AT24C512等10种芯片,容量分别为1、2、4、8、16、32、64、128、256和512kb,具有工作电压宽(1.8V~6V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点。它们在系统中始终作为从器件。表11.2给出了美国Atmel公司生产的I2C总线AT24C××系列串行E2PROM。表11.2AT24C××系列
2. AT24C××的特点和引脚功能
AT24C××系列的工作电流约为3mA,主要特性如下:
(1)具有页写功能,AT24C01的页缓冲区为4B,AT24C02的页缓冲区为8B等。
(2)可擦写次数大于100000次。
(3)数据保存周期为100年。
(4)采用8脚DIP或SOIC封装。
AT24C01的引脚排列如图11.6所示。图11.6AT24C01的引脚排列
3. AT24C××的寻址
AT24C××系列E2PROM操作时有两种寻址方式:芯片寻址和片内子地址寻址。
4. AT24C××的操作时序
AT24C××作为器件的从节点,当主器件以主发送方式对其进行操作时,即实现了AT24C××的输入,当主器件以主接收方式对AT24C××进行操作时,即实现了AT24C××的输出,而不需要专门的写信号控制线。其信号时序如图11.7所示。图11.7AT24C××的操作时序
5. AT24C××与单片机的接口
AT24C01与MCS-51单片机的接口电路如图11.8所示。单片机的P3.4端与I2C器件SDA端连接,P3.5端与I2C器件SCL端连接,由于SDA和SCL引脚都是开漏结构,所以要接上拉电阻,三个地址端A2、A1、A0接地,片选WP接单片机的P1.0口。
6.软件设计
软件设计相对简单,首先要把I2C.c复制到用户程序相应的目录,然后在用户主程序开头加入#include<I2C.c>即可使用内部的函数。对E2PROM的读/写操作分别调用IRcvStr(ucharsla,ucharsuba,uchar*s,ucharno)和ISendStr(ucharsla,ucharsuba,uchar*s,ucharno)函数。图11.8AT24C××与单片机的接口电路 11.4I2C总线I/O扩展芯片PCF8574
1.概述
PCF8574是PHILIPS公司推出的带I2C总线接口的CMOS型I/O扩展芯片,包含一个8位准双向口和一个I2C总线接口。PCF8574电流消耗很低,且I/O口输出时具有大电流驱动能力,可直接驱动LED。它还带有一条中断引脚,可与MCU的中断逻辑相连。通过发送中断信号,远端I/O口不必经过I2C总线通信就可通知MCU是否有数据从端口输入。PCF8574和PCF8574A的唯一区别在于器件地址不同。其特性为:操作电压为2.5V~6.0V,开漏中断输出,I/O口输出锁存,通过3个硬件地址引脚可寻址8个器件(PCF8574A可多达16个)。
2.引脚定义
PCF8574采用DIP16、SO16或SSOP20形式封装,其引脚如图11.9所示。图11.9PCF8574的引脚
3.寻址说明
PCF8574的每个I/O口都可单独用作输入或输出。PCF8574和PCF8574A的从地址不同,分别为0100和0111,如图11.10所示。图11.10PCF8574和PCF8574A的从地址输入通过读模式将数据传送到MCU,如图11.11所示。图11.11读模式数据协议输出通过写模式将数据发送到I/O端口,如图11.12所示。图11.12写模式数据协议
4. PCF8574与单片机的连接
PCF8574与单片机的接口如图11.13所示。图11.13PCF8574与单片机的接口
5.软件设计
软件设计首先要把I2C软件包复制到用户程序相应的目录下,然后在用户主程序开头加入#include<I2C.c>即可使用内部的函数。输入、输出操作只需调用IRcvStr(ucharsla,ucharsuba,uchar*s,ucharno)和ISendStr(ucharsla,ucharsuba,uchar*s,ucharno)函数就可以了。11.5I2C总线A/D、D/A转换芯片PCF8591
1.概述
PCF8591是一低功耗8位COMS型A/D、D/A转换芯片,单电源供电,正常工作电压范围为2.5V~6V,典型值为5V。它具有4路模拟量输入通道、1路模拟量输出通道和1个I2C总线接口,通过I2C总线完成数据的输入/输出。该器件I2C从地址的低三位由芯片的A0、A1和A2三个地址引脚决定,所以在不增加任何硬件的情况下同一条I2C总线最多可以连接8个同类型的器件。该器件具有多路模拟量输入、片上跟踪保持、8位逐次逼近A/D转换和8位带有一路模拟量输出的乘法D/A转换等功能,4路模拟量输入可编程为单端输入或差分输入;可配置转换通道号自动增加功能;模拟电压范围为Vss~Vdd;A/D与D/A的最大转换速率由I2C总线的最大传输速率决定。
2.功能框图
PCF8591的内部功能框图如图11.14所示。图11.14PCF8591的内部功能框图
3.引脚功能
图11.15PCF8591的引脚排列PCF8591采用DIP16和SO16两种封装,其引脚排列如图11.15所示。图11.15PCF8591的引脚排列图11.16PCF8591的从地址
5.控制字
PCF8591的控制转换字存放在控制寄存器中,用于实现器件的各种功能,总线操作时作为主发送的第二个字节,器件接受该字节后将它存放在控制寄存器中。PCF8591的控制字格式如图11.17所示。图11.17PCF8591的控制字格式
D1、D0:A/D通道编号,模拟量输入通道选择位,可选择当前使用的模拟量输入通道号。D1D0为00时选择通道0,为01时选择通道1,为10时选择通道2,为11时选择通道3。
D2:输入通道自动增量选择位。D2 = 1时,A/D转换将按通道0~3依次自动转换,即每次A/D转换结束都自动选择下一通道。
D3、D7:必须为0。
D4、D5:模拟量输入方式选择位。D4、D5取不同的值,可选四种不同的输入方式,如表11.3所示。
D6:模拟输出允许。D6 = 1,模拟量输出有效。表11.3PCF8591模拟信号输入方式
4种模拟量输入方式如图11.18所示。图11.18PCF8591的模拟量输入方式
6. D/A转换
D/A转换器是PCF8591的关键单元,除作为D/A转换使用外,还用于A/D转换。D/A转换器的工作是使用I2C总线的写入方式完成的,其数据格式如图11.19所示。图11.19D/A转换数据格式逻辑操作波形时序图如图11.20所示。图11.20D/A转换时序
7. A/D转换
PCF8591的A/D转换为逐次逼近型,在A/D转换周期中借用D/A转换及高增益比较器对PCF8591进行写/读操作后便立即启动A/D转换,并读出A/D转换结果。在每个应答信号的后沿触发A/D转换周期,采样模拟电压并读出前一次转换后的结果。A/D转换中,一旦A/D采样周期被触发,所选择通道的采样电压便保存在采样保持电路中,并转换成8位二进制码(单端输入)或二进制补码(差分输入)后存放在A/D数据寄存器中等待器件读出。如果控制字节中自动增量选择位置1,则一次A/D转换完毕后自动选择下一通道。读周期中读出的第一个字节为前一个周期的转换结果。上电复位后读出的第一字节为80H。PCF8591的A/D转换亦使用的是I2C总线的读方式操作完成的。其数据操作格式如图11.21所示。图11.21A/D转换数据格式逻辑操作波形时序图如图11.22所示。图11.22A/D转换时序
8. PCF8591与单片机的接口
PCF8591与MCS-51单片机的接口电路如图11.23所示。图11.23PCF8591与MCS-51单片机的接口电路图11.24PCF8591D/A转换流程
A/D转换时,首先将字节地址选择字写入PCF8591中,与D/A转换设置相同,为0x90;其次写入转换控制字,如果转换时只对A1N0通道进行采样,则转换控制字为0x00;接下来再写入一个地址选择字,此时的地址选择字中的D0(R/)应当设置成1(读),所以此时的地址选择字为0x91。A/D转换每次输出的是上一次转换后的结果,如果需要读出当前的转换数据,则每次需要读取两次转换结果,取第二次读出的数据。A/D转换的软件流程如图11.25所示。图11.25A/D转换的软件流程11.6I2C总线实时时钟/日历芯片PCF8563
PCF8563是PHILIPS公司推出的具有I2C总线接口功能的低功耗CMOS实时时钟/日历芯片。该芯片的最大总线速度为400kb/s。PCF8563具有多种报警功能、定时器功能、时钟输出功能以及中断输出功能,能完成各种复杂的定时服务,甚至可为单片机提供看门狗功能。内部时钟电路、内部振荡电路、内部低电压检测电路以及两线制I2C总线通信方式不但使外围电路极其简洁,而且也增加了芯片的可靠性,同时每次读/写数据后,内嵌的字地址寄存器会自动产生增量。因而PCF8563是一款性价比极高的时钟芯片,已被广泛用于电表、水表、气表、电话、传真机以及便携式仪器。其主要技术指标如下:
(1)内含复位电路、振荡器电容和掉电检测电路。
(2)具有400kHz的I2C总线(Vdd = 1.8V~5.5V),其从地址读时为0A3H,写时为0A2H。
(3)具有宽的电压范围,为1.0V~5.5V,复位电压标准值为0.9V。
(4)具有超低功耗,典型值为0.25μA(Vdd = 3.0V,Tamb = 25℃)。
(5)可编程时钟输出频率为32.768kHz、1024Hz、32Hz、1Hz。
(6)有四种报警功能和定时器功能。
1.芯片引脚定义及功能
PCF8563的引脚如图11.26所示。图11.26PCF8563的引脚
2.内部寄存器
PCF8563有16个位寄存器、1个可自动增量的地址寄存器、1个内置的32 768Hz振荡器、1个分频器、1个可编程时钟输出、1个定时器、1个报警器、1个掉电检测器和1个400kHz的I2C总线接口。所有16个寄存器设计成为可寻址的8位并行寄存器,但不是所有位都有用。00H、01H为控制/状态寄存器;02H、08H为时钟计数器(秒至年计数器);09H~0CH为报警寄存器;0DH为控制CLKOUT引脚的输出频率的时钟输出寄存器;0EH和0FH分别用于定时器控制寄存器和定时器倒计数数值寄存器。秒、分钟、小时、日、月、年、分钟报警、小时报警、日报警寄存器编码格式为BCD。
1)二进制格式寄存器
PCF8563的内部二进制格式寄存器如表11.4所示。表11.4PCF8563的内部寄存器控制/状态寄存器1的D6、D4、D2、D1、D0缺省值置0,其余各位的功能如表11.5所示。表11.5控制/状态寄存器1控制/状态寄存器2的D7、D6、D5缺省值置0,其余各位的功能如表11.6所示。表11.6控制/状态寄存器2
AF和TF值的功能如表11.7所示。表11.7AF和TF值的功能时钟输出寄存器各位的描述如表11.9所示。表11.9时钟输出寄存器定时器控制寄存器是一个8位的倒计数定时器,它由位TE决定是否有效,定时器的时钟也可以由定时器控制寄存器选择,其它定时器功能(如中断产生)由控制/状态寄存器2控制。为了能精确读到倒计数的数值,I2C总线时钟SCL的频率应至少为所选定时器时钟频率的两倍。定时器控制寄存器各位的功能如表11.10所示。表11.10定时器控制寄存器
2) BCD格式寄存器
PCF8563的内部BCD格式寄存器如表11.11所示。表11.11PCF8563的内部BCD格式寄存器
3. PCF8563与单片机的接口
PCF8563与单片机的接口电路如图11.27所示。图11.27PCF8563与单片机的接口电路
4.软件设计
按I2C总线协议规约,PCF8563有唯一的器件地址A2H,进行软件设计时首先要把I2C软件包复制到用户程序相应的目录下,然后在用户主程序开头加入#include<I2C.c>即可使用内部的函数。对PCF8563的读/写操作只需调用IRcvStr(ucharsla,ucharsuba,uchar*s,ucharno)和ISendStr(ucharsla,ucharsuba,uchar*s,ucharno)函数就可以了。软件流程如图11.28所示。图11.28PCF8563接口程序流程11.7I2C总线数字温度传感器芯片LM75A
1.芯片引脚定义及说明
LM75A的引脚如图11.29所示。图11.29LM75A的引脚图
2. LM75A的寄存器
LM75A内部有温度寄存器Temp、配置寄存器、滞后寄存器Thyst和过温关断阈值寄存器Tos等4个寄存器,地址分别为0x00、0x01、0x02和0x03。
(1)温度寄存器Temp。LM75A的温度寄存器Temp是一个只读寄存器,地址为0x00。它包含2个8位的数据字节,由一个高数据字节(MS)和一个低数据字节(LS)组成。这两个字节中只有11位用来存放分辨率为0.125℃的Temp数据(以二进制补码数据的形式),如表11.12所示。
根据11位Temp数据来计算温度值的方法为:若D10=0,温度值(℃) = +Temp数据×0.125℃;若D10 = 1,温度值(℃) = -Temp数据的二进制补码 × 0.125℃。表11.12Temp寄存器
(2)配置寄存器。配置寄存器为8位可读
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度新能源汽车补贴申请及贷款服务合同3篇
- 二零二五年度程力危险品厢式车厂家智能化调度中心建设合同4篇
- 二零二五年度绿色建筑项目承包劳务合同2篇
- 2025年度个人额度借款合同范本(消费金融版)2篇
- 2025年度个人个人间影视版权借款合同2篇
- 二零二五年度餐饮业安全生产责任协议及隐患排查合同3篇
- 2025年个人信用卡分期付款合同示范文本4篇
- 2025产权交易委托合同适用于转让方采取拍卖、招投标方式
- 2025代理合同(参考样稿)
- 二零二五年度数据中心强电设备远程监控服务合同3篇
- 2024年山东省济南市中考英语试题卷(含答案解析)
- 2024年社区警务规范考试题库
- 2024年食用牛脂项目可行性研究报告
- 静脉治疗护理技术操作标准(2023版)解读 2
- 2024年全国各地中考试题分类汇编(一):现代文阅读含答案
- 2024-2030年中国户外音箱行业市场发展趋势与前景展望战略分析报告
- GB/T 30306-2024家用和类似用途饮用水处理滤芯
- 家务分工与责任保证书
- 消防安全隐患等级
- 温室气体(二氧化碳和甲烷)走航监测技术规范
- 华为员工股权激励方案
评论
0/150
提交评论