I2C芯片PPT学习课件_第1页
I2C芯片PPT学习课件_第2页
I2C芯片PPT学习课件_第3页
I2C芯片PPT学习课件_第4页
I2C芯片PPT学习课件_第5页
已阅读5页,还剩119页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、已学过的MCU与其外部器件的连接方法:,1、通过并行口连接; 2、通过UART串行口连接; (如MCU之间,MCU与PC机之间,以及MCU与任何具有RS-232标准串口的设备之间) 另外,可以: 通过I2C接口连接各种具有I2C接口的器件。,I2C接口技术,1. I2C总线简介 2. 实验仪上的I2C总线接口器件 3. I2C总线接口器件及其应用 4. I2C总线接口的C51函数,作业19,作业20,I2C总线简介,I2C总线是一种用于集成电路之间连接的二线制总线。 (Inter Integrated Circuit Bus) 它通过 SDA(串行数据线) 、 SCL(串行时钟线) 两根线在连

2、到总线上的器件之间传送信息,并根据地址识别每个器件。,I2C总线简介,I2C总线的应用 I2C总线的基本结构 双向传输的接口特性 I2C总线上的时钟信号(略) I2C的传输速率 数据的传送(“开始”和“结束”信号)(位传送) I2C BUS PROTOCOL I2C上的应答位 I2C时序图 总线竞争的仲裁(略),I2C总线的应用,目前在视频处理、移动通信等领域采用I2C总线接口器件已经比较普遍。 通用的I2C总线接口器件,如带I2C总线的单片机、RAM、ROM、AD、DA、LCD驱动器等器件,也越来越多地应用于计算机及自动控制系统中。,I2C总线的应用,I2C总线的基本结构,采用I2C总线标准

3、的IC器件,其内部具有I2C接口电路,通过软件寻址实现片选,减少了器件片选线的连接。 CPU可以实现对硬件系统的既简单又灵活的扩展与控制。 I2C总线接口电路结构如下图示。,双向传输的接口特性,I2C总线根据器件的功能通过软件程序使其可工作于发送或接收方式。 产生信号的设备是传送器,接收信号的设备是接收器,控制信号的设备是主设备,受控信号的设备是从设备。,I2C总线系统配置图,主器件用于启动总线上传送数据并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件。 I2C总线的控制完全由挂接在总线上的主器件送出的地址和数据决定,在总线上,既没有中心机,也没有优先级。,Data trans

4、fer is controlled by the Master device which generates the serial clock and all START and STOP conditions for bus access.,SDA和SCL均为双向IO线,通过上拉电阻接正电源。 当总线空闲时,两根线都是高电平。连接总线的器件的输出级必须是集电极或漏极开路,以具有线“与”功能。,I2C BUS PROTOCOL,The following defines the features of the I2C bus protocol: (1) Data transfer may be

5、 initiated only when the bus is not busy. (2) During a data transfer, the data line must remain stable whenever the clock line is high. Any changes in the data line while the clock line is high will be interpreted as a START or STOP condition.,START Condition The START Condition precedes all command

6、s to the device, and is defined as a HIGH to LOW transition of SDA when SCL is HIGH. The CAT24WC01/02/04/08/16 monitor the SDA and SCL lines and will not respond until this condition is met.,STOP Condition A LOW to HIGH transition of SDA when SCL is HIGH determines the STOP condition. All operations

7、 must end with a STOP condition.,I2C时序图,I2C时序参数,I2C的传输速率,I2C总线的数据传送速率在标准工作方式下为100Kbits,在快速方式下,最高传送速率可达400Kbits。,I2C总线上的时钟信号(略),在I2C总线上传送信息时的时钟同步信号是由挂接在SCL时钟线上的所有器件的逻辑 “与”完成的。 SCL线上由高到低电平的跳变将影响到这些器件,一旦某个器件的时钟信号变为低电平,将使SCL线一直保持低电平,使SCL线上的所有器件开始低电平期。此时,低电平周期短的器件的时钟由低至高的跳变并不能影响SCL线的状态,于是这些器件将进入高电平等待的状态。

8、,当所有器件的时钟信号都变为高电平时,低电平期结束,SCL线被释放返回高电平,即所有的器件都同时开始它们的高电平期。其后,第一个结束高电平期的器件又将SCL线拉成低电平。这样就在SCL线上产生一个同步时钟。 可见,时钟低电平时间由时钟低电平期最长的器件确定,而时钟高电平时间由时钟高电平期最短的器件确定。,数据的传送,在数据传送过程中,必须确认数据传送的开始和结束。 在I2C总线技术规范中,开始和结束信号(也称启动和停止信号)的定义如下图所示。,“开始”和“结束”信号,总线不忙时,数据线和时钟线保持高电平。数据线在下降沿而时钟线为高电平时为起动条件(S),数据线在下降沿而时钟线为高电平时为停止条

9、件(P)。,I2C总线的数据传送格式,I2C总线开始信号后,送出的第一字节数据是用来选择从器件地址的,其中前7位为地址码,第8位为方向位(RW)。 方向位为“0”表示发送,即主器件把信息写到所选择的从器件中;方向位为“1”表示主器件将从从器件读信息。,开始信号后,系统中的各个器件将自己的地址和主器件送到总线上的地址进行比较,如果与主器件发送到总线上的地址一致,则该器件即为被主器件寻址的器件; 其接收信息还是发送信息则由第8位(RW)确定。,I2C总线上每次传送的数据字节数不限,但每一字节必须为8位,而且每个传送的字节后面必须跟一个应答位(ACK) (第9位) 。 每次都是先传最高位,通常从器件

10、在接收到每字节后都会做出响应,即释放SCL线返回高电平,准备接收下一个数据字节,主器件可继续传送。,如果从器件正在处理一个实时事件而不能接收数据时(例如正在处理一个内部中断,在这个中断处理完之前就不能接收I2C总线上的数据字节),可以使时钟SCL线保持低电平,从器件必须使SDA保持高电平。 此时主器件产生1个结束信号,使传送异常结束,迫使主器件处于等待状态。当从器件处理完毕时释放SCL线,主器件继续传送。,当主器件发送完一字节的数据后,接着发出对应于SCL线上的一个时钟(ACK)应答位,此时钟内主器件释放SDA线,一字节传送结束,而从器件的响应信号将SDA线拉成低电平,使SDA在该时钟的高电平

11、期间为稳定的低电平。 从器件的响应信号结束后,SDA线返回高电平,进入下一个传送周期。,应答位(ACK),在起动条件和停止条件之间传送器传送给接收器的数据数量没有限制。每个位字节后加一个应答位,传送器产生高电平的应答位,这时主设备产生一个附加应答时钟脉冲。,从接收器必须在接收到每个字节后产生一个应答位,主接收器也必须在接收从传送器传送的每个字节后产生一个应答位。 在应答位时钟脉冲出现时,SDA 线应保持低电平(应考虑起动和保持时间)。传送器应在从设备接收最后一个字节时变为低电平,使接收器产生应答位,这时主设备可产生停止条件。,I2C总线上的应答位,应答,位传送,每个时钟脉冲传送一个数据位,SD

12、A 线上的数据在时钟脉冲高电平时应保持稳定,否则SDA 线上的数据将成为“启动”或“结束”信号。,总线竞争的仲裁(略),总线上可能挂接多个器件,有时会发生两个或多个主器件同时想占用总线的情况。例如,多单片机系统中,可能在某一时刻有两个单片机要同时向总线发送数据,这种情况叫做总线竞争。,I2C总线具有多主控能力,可以对发生在SDA线上的总线竞争进行仲裁,共仲裁原则是这样的:当多个主器件同时想占用总线时,如果某个主器件发送高电平,而另一个主器件发送低电平,则发送电平与此时SDA总线电平不符的那个器件将自动关闭其输出级。,总线竞争的仲裁是在两个层次上进行的。首先是地址位的比较,如果主器件寻址同一个从

13、器件,则进入数据位的比较,从而确保了竞争仲裁的可靠性。由于利用I2C总线上的信息进行仲裁,因此不会造成信息的丢失。,实验仪上的I2C总线接口器件,E2PROM:CAT24WC02(256B); 实时时钟芯片:PCF8563。 察看实验仪电路图,观察I2C器件与单片机之间的连接情况。,I2C总线接口器件及其应用,1、串行E2PROM存储器件CAT24WC02 2、实时时钟芯片PCF8563,带I2C接口的串行E2PROM存储器件CAT24WC02,电可擦除可编程只读存储器E2PROM可分为并行和串行2大类。并行E2PROM在读写数据是通过8位数据总线传输,而串行E2PROM的数据是一位一位的传输

14、。虽然与并行E2PROM相比,串行传输数据较慢,但它体积小、低廉、电路简单等优点,因此广泛用于智能仪器、仪表设备中。,CATALYST公司的CAT24WC02是一个256字节的支持I2C总线数据传送协议的串行CMOS E2PROM 。具有2种写入方式:字节写入方式和页写入方式。1页的大小取决于芯片内页寄存器的大小。CAT24WC02具有16字节数据的页面写能力。可在电源电压低到1.8V的条件下工作。CAT24WCXX系列E2PROM在极强的干扰下数据不丢失,在汽车电子及电度表、水表、煤气表中得到广泛的应用。,CAT24WC02,CAT24WC02的特性; CAT24WC02管脚描述; CAT2

15、4WC02管脚功能; CAT24WC02内部结构图; 串行E2PROM芯片的寻址; CAT24WC02数据地址分配; CAT24WC02写操作方式; CAT24WC02读操作方式; CAT24WC02的C51编程及应用。,CAT24WC02的特性,阅读讲义P110表5.5。 容量:2kbits (即:256 Bytes); 一次页写的最大字节数:16字节; 最大可扩展数量:8片; ESD:抗干扰的一项指标,越高越好。,CAT24WC02管脚描述,DIP Double In-line Package 双列直插式封装,CAT24WC02管脚功能,内部结构图,串行E2PROM芯片的寻址,(1) 从器

16、件地址位,(2) 应答信号,数据地址分配,CAT24WC02内部256个字节的地址为: 00H FFH。,写操作方式,1、字节写,2、 页写,读操作方式,对CAT24WC02读操作的初始化方式和写操作时一样,仅把R/W位置为1,有3种不同的读操作方式: 按当前地址读内容、 按选择地址读内容、 按连续的地址读内容。,1、按当前地址读取,2、按选择地址读取,3、按连续的地址读取,I2C总线接口的C51函数,在单个主器件下的I2C总线,硬件接口是SDA、SCL,使用CPU的I/O口的两根线做SDA、SCL,则其接口函数见VIIC_C51.c 。,CAT24WC02的编程及应用例(24wc02-1):

17、,首先MCU将内部RAM区的一串字符:“GOOD MORING!”发送给24WC02的00H-0FH区域;然后,MCU再从24WC02中读出这些字符,并保存在MCU内部RAM中的另一区域,之后,再将这些读来的字符通过MCU标准串口发送出去。,例(24wc02-2) :,MCU向24WC02的前64个字节单元写入64个不同的字符,并将这些字符通过MCU的标准串口发送出去。,作业,1、复习24WC02; 2、上网查找有关CAT24WC02的详细资料,并阅读学习。,本次课内容,1、实验5 2、实验6 要求:按照实验指导的要求进行实验。 课程目标: 初步掌握I2C总线的C51接口函数及其应用;初步掌握

18、I2C串行E2PROM CAT24WC02的编程及应用。,教学设计: 1、实验5:阅读实验指导;读懂实验中程序,并加以注释;同学可以互相讨论,教师有针对地讲解;按照实验指导的要求完成实验5。 2、实验6:阅读实验指导;读懂实验中程序,并加以注释;同学可以互相讨论,教师有针对地讲解;按照实验指导的要求完成实验6。,3、在实验的基础上编程练习 (24wc02-3): MCU从串口接收10个字符,将其写入24WC02的前10个字节,然后再将这些字符通过串口发送出去。 4、完成上述内容的同学,可以思考下面的编程练习。,作业19,作业20(24wc02-4),编程练习。要求如下: MCU从标准串口接收大

19、写英文字母(以回车符结束,一次最多15个); 将这些字符存储在24WC02的前15个字节中; 再将这15个数分别加上20H后,并存放到24WC02的30H开始的15个单元中; 最后再将30H单元开始的15个数通过标准串口发送出去(结果发出的应该是15个小写的英文字母)。,I2C串行实时日历、时钟芯片(RTC)PCF8563,PCF8563功能特性; CLKOUT 输出 PCF8563内部结构;掉电检测器 PCF8563引脚及其功能;复位 PCF8563的硬件连接(实验仪上的PCF8563) PCF8563内部寄存器及其功能; PCF8563器件地址; PCF8563通过I2C接口的读写操作;

20、PCF8563日历、实时时钟应用实例; 作业。,PCF8563功能特性,I2C接口的实时时钟日历芯片; 功耗低; 它提供一个可编程时钟信号输出; 提供一个中断输出和掉电检测器; 所有的地址和数据通过I2C总线接口串行传递,最大总线速度为400 Kbits/s; 每次读写数据后,其内部的字地址寄存器会自动加1。,上层,2特性 * 低工作电流:典型值为0.25A(VDD=3.0V,Tamb=25时); * 具有世纪标志(解决了2000年问题) * 大工作电压范围:1.05.5V * 低休眠电流; * 400Kbits/s 的I2C总线接口 可编程时钟输出频率为: 32.768KHz,1024Hz,

21、32Hz,1Hz。,* 报警和定时器。 * 掉电检测器。 * 内部振荡电路。 * 片内电源复位功能。 * I2C总线从地址:读,0A3H;写,0A2H。 * 开漏中断引脚。,3广泛应用于: 电话、电表、水表、气表、传真机、便携式仪器以及电池供电的仪器仪表等产品领域。,PCF8563内部结构,上层,掉电检测器和时钟监控,上层,掉电检测器和时钟监控,PCF8563 内嵌掉电检测器,当VDD 低于Vlow 时,位VL(Voltage Low,秒寄存器的位7) 被置,用于指明可能产生不准确的时钟日历信息,VL 标志位只可以用软件清除 当VDD 慢速降低(例如以电池供电)达到Vlow 时,标志位VL 被

22、设置,这时可能会产生中断。,上层,CLKOUT 输出,管脚CLKOUT 可以输出可编程的方波。CLKOUT 频率寄存器(地址0DH)决定方波的频率: CLKOUT 可以输出32.768KHz( 缺省值),1024,32,1Hz 的方波。 CLKOUT为开漏输出管脚,通电时有效,无效时为高阻抗。,上层,复位,PCF8563 包含一个片内复位电路,当振荡器停止工作时,复位电路开始工作。在复位状态下,I2C 总线初始化,寄存器中位TF、VL、TD1、TD0、TESTC、AE 被置逻辑,其它的寄存器和地址指针被清。,上层,PCF8563引脚及其功能,上层,PCF8563引脚功能,PCF8563的硬件连

23、接,1、实验仪上的PCF8563: 查看实验仪的原理图。 2、带备用电池的电路连接图: (如下图1)。 3、利用中断的电路连接: (如图2)。,上层,上层,图1,图2,PCF8563内部寄存器及其功能,PCF8563共有16个8位寄存器,其中: 00H01H为控制方式寄存器、 09H0CH为报警功能寄存器(定义报警条件), 0DH为时钟输出寄存器、 0EH和0FH为定时器(倒计数)功能寄存器、 02H08H为秒年时间寄存器。,上层,上层,控制方式寄存器,控制/状态寄存器1的位描述(地址 00H); 控制/状态寄存器2的位描述(地址 01H);,日历、时钟寄存器,秒/VL寄存器位描述(地址02H

24、); 分钟寄存器位描述(地址03H); 小时寄存器位描述(地址04H); 日寄存器位描述(地址05H); 星期寄存器位描述(地址06H); 月/世纪寄存器位描述(地址07H); 年寄存器位描述(地址08H)。,报警功能模式,一个或多个报警寄存器MSB(AE=Alarm Enable 报警使能位)清时,相应的报警条 件有效,这样,一个报警将在每分钟至每星期范围内产生一次。 设置报警标志位AF(控制状态寄存器的位)用于产生中断,AF 只可以用软件清除。,上层,将一个或多个报警寄存器写入合法的分钟、小时、日或星期数值,并且它们的AE(Alarm Enable)位为逻辑0,当这些数值与当前的分钟、小时

25、、日或星期数值相等标志位AF( Alarm Flag) 被置位,AF保存设置值直到被软件清除为止,AF被清除后,只有在时间增量与报警条件再次相匹配时才可再被设置。,上层,报警寄存器,分钟报警寄存器位描述(地址09H) 小时报警寄存器位描述(地址0AH) 日报警寄存器位描述(地址0BH) 星期报警寄存器位描述(地址0CH),上层,秒、分钟、小时、日、月、年、分钟报警、小时报警、日报警寄存器,编码格式为BCD,星期和星期报警寄存器不以BCD 格式编码。,上层,控制/状态寄存器1的位描述(地址 00H),控制/状态寄存器2的位描述(地址 01H),INT操作(bit TI/TP=1),AF和TF值描

26、述,秒/VL寄存器位描述(地址02H),分钟寄存器位描述(地址03H),小时寄存器位描述(地址04H),日寄存器位描述(地址05H),星期寄存器位描述(地址06H),星期分配表,月/世纪寄存器位描述(地址07H),月分配表,年寄存器位描述(地址08H),分钟报警寄存器位描述(地址09H),小时报警寄存器位描述(0AH),日报警寄存器位描述(0BH),星期报警寄存器位描述(0CH),CLKOUT频率寄存器位描述(地址0DH),CLKOUT频率选择表,倒计数定时器控制器,倒计数定时器控制器含有8位二进制,它由位TE决定有效或无效。为了能精确读回倒计数的数值,I2C总线时钟SCL的频率应至少为所选定

27、定时器时钟频率的两倍。,倒计数定时器控制器位描述(地址0EH),定时器时钟频率选择,定时器倒计数数值(地址0FH),位的倒计数器(地址0FH),位的倒计数器(地址0FH)由定时器控制寄存器(地址0EH)控制,定时器控制寄存器用于设定倒计数器的频率(4096,64,1,或1/60Hz),以及设定倒计数器有效或无效。 倒计数器从软件设置的8 位二进制数倒计数,每次倒计数结束,设置标志位TF,TF 只可以用软件清除,TF 用于产生一个中断(INT),每个倒计数周期产生一个脉冲作为中断信号。TI/TP控制中断产生的条件。当读倒计数器时,返回当前倒计数的数值。,PCF8563器件地址,(其中A0=1)

28、PCF8563器件地址为: 写PCF8563:0A2H; 读PCF8563:0A3H。,上层,PCF8563通过I2C接口的读写操作,与24WC02的读操作、写操作类似; 且不涉及到超过16字节的情况( PCF8563内部只有16个8位的寄存器。) 所用到的读操作函数IRevStr、写操作函数ISendStr与24WC02类似(只是从器件的地址不同)。,上层,ISendStr(向有子地址器件发送多字节数据函数),函数原型: bit ISendStr(uchar sla,uchar suba, ucahr *s,uchar no); 功能: 从启动总线到发送地址,子地址,数据,结束总线的全过程,

29、从器件地址sla,子地址suba,发送内容是s指向的内容,发送no个字节。 如果返回1表示操作成功,否则操作有误。 注意:使用前必须已结束总线。,上层,bit ISendStr(uchar sla,uchar suba,uchar *s,uchar no) uchar i; Start_I2c(); /*启动总线*/ SendByte(sla); /*发送器件地址*/ if(ack=0)return(0); SendByte(suba); /*发送器件子地址*/ if(ack=0)return(0); for(i=0;ino;i+) SendByte(*s); /*发送数据*/ if(ack=

30、0)return(0); s+; Stop_I2c(); /*结束总线*/ return(1); ,上层,IRevStr (向有子地址器件读取多字节数据函数 ),函数原型: bit IRcvStr(uchar sla,uchar suba, uchar *s,uchar no) 功能: 从启动总线到发送地址,子地址,读数据,结束总线的全过程,从器件地址sla,子地址suba,读出的内容放入s指向的存储区,读no个字节。 如果返回1表示操作成功,否则操作有误。 注意:使用前必须已结束总线。,上层,bit IRcvStr(uchar sla,uchar suba,uchar *s,uchar no) uchar i; Start_I2c(); /*启动总线*/ SendByte(sla); /*发送器件地址*/ if(ack=0)return(0); SendByte(suba); /*发送器件子地址*/ if(ack=0)return(0); Start_I2c(); SendByte(sla+1); if(ack=0)return(0); for(i=0;ino-1;i+) *s=RcvByte(); /*发送数据*/ Ack_I2c(0); /*发送就答位*/ s+; *s=RcvByte(); Ack_I2c(1)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论