收藏 分享(赏)

i2c芯片 已学过的mcu与其外部器件的连接方法.ppt

上传人:无敌 文档编号:1071390 上传时间:2018-06-09 格式:PPT 页数:124 大小:1.30MB
下载 相关 举报
i2c芯片 已学过的mcu与其外部器件的连接方法.ppt_第1页
第1页 / 共124页
i2c芯片 已学过的mcu与其外部器件的连接方法.ppt_第2页
第2页 / 共124页
i2c芯片 已学过的mcu与其外部器件的连接方法.ppt_第3页
第3页 / 共124页
i2c芯片 已学过的mcu与其外部器件的连接方法.ppt_第4页
第4页 / 共124页
i2c芯片 已学过的mcu与其外部器件的连接方法.ppt_第5页
第5页 / 共124页
点击查看更多>>
资源描述

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总线标准的IC器件,其内部具有I2C接

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

4、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 initiated only when

5、 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 ConditionThe START Condition precedes all commands to the device, and i

6、s 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 untilthis condition is met.,STOP ConditionA LOW to HIGH transition of SDA when SCL is HIGH determines the STOP condition. All operations must end with a STOP co

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

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

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

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

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

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

13、2C总线上的信息进行仲裁,因此不会造成信息的丢失。,实验仪上的I2C总线接口器件,E2PROM:CAT24WC02(256B);实时时钟芯片:PCF8563。察看实验仪电路图,观察I2C器件与单片机之间的连接情况。,I2C总线接口器件及其应用,1、串行E2PROM存储器件CAT24WC022、实时时钟芯片PCF8563,带I2C接口的串行E2PROM存储器件CAT24WC02,电可擦除可编程只读存储器E2PROM可分为并行和串行2大类。并行E2PROM在读写数据是通过8位数据总线传输,而串行E2PROM的数据是一位一位的传输。虽然与并行E2PROM相比,串行传输数据较慢,但它体积小、低廉、电路

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

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

16、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):,首先MCU将内部RAM区的一串字符:“GOOD MORING!”发送给24WC02的00H-0FH区

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

18、加以注释;同学可以互相讨论,教师有针对地讲解;按照实验指导的要求完成实验5。2、实验6:阅读实验指导;读懂实验中程序,并加以注释;同学可以互相讨论,教师有针对地讲解;按照实验指导的要求完成实验6。,3、在实验的基础上编程练习 (24wc02-3):MCU从串口接收10个字符,将其写入24WC02的前10个字节,然后再将这些字符通过串口发送出去。4、完成上述内容的同学,可以思考下面的编程练习。,作业19,作业20(24wc02-4),编程练习。要求如下: MCU从标准串口接收大写英文字母(以回车符结束,一次最多15个);将这些字符存储在24WC02的前15个字节中;再将这15个数分别加上20H后

19、,并存放到24WC02的30H开始的15个单元中;最后再将30H单元开始的15个数通过标准串口发送出去(结果发出的应该是15个小写的英文字母)。,I2C串行实时日历、时钟芯片(RTC)PCF8563,PCF8563功能特性; CLKOUT 输出PCF8563内部结构;掉电检测器PCF8563引脚及其功能;复位 PCF8563的硬件连接(实验仪上的PCF8563)PCF8563内部寄存器及其功能;PCF8563器件地址;PCF8563通过I2C接口的读写操作;PCF8563日历、实时时钟应用实例; 作业。,PCF8563功能特性,I2C接口的实时时钟日历芯片;功耗低;它提供一个可编程时钟信号输出

20、;提供一个中断输出和掉电检测器;所有的地址和数据通过I2C总线接口串行传递,最大总线速度为400 Kbits/s;每次读写数据后,其内部的字地址寄存器会自动加1。,上层,2特性* 低工作电流:典型值为0.25A(VDD=3.0V,Tamb=25时);* 具有世纪标志(解决了2000年问题)* 大工作电压范围:1.05.5V* 低休眠电流;* 400Kbits/s 的I2C总线接口可编程时钟输出频率为:32.768KHz,1024Hz,32Hz,1Hz。,* 报警和定时器。* 掉电检测器。* 内部振荡电路。* 片内电源复位功能。* I2C总线从地址:读,0A3H;写,0A2H。* 开漏中断引脚。

21、,3广泛应用于:电话、电表、水表、气表、传真机、便携式仪器以及电池供电的仪器仪表等产品领域。,PCF8563内部结构,上层,掉电检测器和时钟监控,上层,掉电检测器和时钟监控,PCF8563 内嵌掉电检测器,当VDD 低于Vlow 时,位VL(Voltage Low,秒寄存器的位7)被置,用于指明可能产生不准确的时钟日历信息,VL 标志位只可以用软件清除当VDD 慢速降低(例如以电池供电)达到Vlow 时,标志位VL 被设置,这时可能会产生中断。,上层,CLKOUT 输出,管脚CLKOUT 可以输出可编程的方波。CLKOUT 频率寄存器(地址0DH)决定方波的频率:CLKOUT 可以输出32.7

22、68KHz( 缺省值),1024,32,1Hz 的方波。CLKOUT为开漏输出管脚,通电时有效,无效时为高阻抗。,上层,复位,PCF8563 包含一个片内复位电路,当振荡器停止工作时,复位电路开始工作。在复位状态下,I2C 总线初始化,寄存器中位TF、VL、TD1、TD0、TESTC、AE 被置逻辑,其它的寄存器和地址指针被清。,上层,PCF8563引脚及其功能,上层,PCF8563引脚功能,PCF8563的硬件连接,1、实验仪上的PCF8563:查看实验仪的原理图。2、带备用电池的电路连接图: (如下图1)。3、利用中断的电路连接: (如图2)。,上层,上层,图1,图2,PCF8563内部寄

23、存器及其功能,PCF8563共有16个8位寄存器,其中:00H01H为控制方式寄存器、09H0CH为报警功能寄存器(定义报警条件),0DH为时钟输出寄存器、0EH和0FH为定时器(倒计数)功能寄存器、02H08H为秒年时间寄存器。,上层,上层,控制方式寄存器,控制/状态寄存器1的位描述(地址 00H);控制/状态寄存器2的位描述(地址 01H);,日历、时钟寄存器,秒/VL寄存器位描述(地址02H);分钟寄存器位描述(地址03H);小时寄存器位描述(地址04H);日寄存器位描述(地址05H);星期寄存器位描述(地址06H);月/世纪寄存器位描述(地址07H);年寄存器位描述(地址08H)。,报

24、警功能模式,一个或多个报警寄存器MSB(AE=Alarm Enable 报警使能位)清时,相应的报警条件有效,这样,一个报警将在每分钟至每星期范围内产生一次。设置报警标志位AF(控制状态寄存器的位)用于产生中断,AF 只可以用软件清除。,上层,将一个或多个报警寄存器写入合法的分钟、小时、日或星期数值,并且它们的AE(Alarm Enable)位为逻辑0,当这些数值与当前的分钟、小时、日或星期数值相等标志位AF( Alarm Flag) 被置位,AF保存设置值直到被软件清除为止,AF被清除后,只有在时间增量与报警条件再次相匹配时才可再被设置。,上层,报警寄存器,分钟报警寄存器位描述(地址09H)

25、小时报警寄存器位描述(地址0AH)日报警寄存器位描述(地址0BH)星期报警寄存器位描述(地址0CH),上层,秒、分钟、小时、日、月、年、分钟报警、小时报警、日报警寄存器,编码格式为BCD,星期和星期报警寄存器不以BCD 格式编码。,上层,控制/状态寄存器1的位描述(地址 00H),控制/状态寄存器2的位描述(地址 01H),INT操作(bit TI/TP=1),AF和TF值描述,秒/VL寄存器位描述(地址02H),分钟寄存器位描述(地址03H),小时寄存器位描述(地址04H),日寄存器位描述(地址05H),星期寄存器位描述(地址06H),星期分配表,月/世纪寄存器位描述(地址07H),月分配表

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

27、器用于设定倒计数器的频率(4096,64,1,或1/60Hz),以及设定倒计数器有效或无效。倒计数器从软件设置的8 位二进制数倒计数,每次倒计数结束,设置标志位TF,TF 只可以用软件清除,TF 用于产生一个中断(INT),每个倒计数周期产生一个脉冲作为中断信号。TI/TP控制中断产生的条件。当读倒计数器时,返回当前倒计数的数值。,PCF8563器件地址,(其中A0=1)PCF8563器件地址为:写PCF8563:0A2H;读PCF8563:0A3H。,上层,PCF8563通过I2C接口的读写操作,与24WC02的读操作、写操作类似;且不涉及到超过16字节的情况( PCF8563内部只有16个

28、8位的寄存器。)所用到的读操作函数IRevStr、写操作函数ISendStr与24WC02类似(只是从器件的地址不同)。,上层,ISendStr(向有子地址器件发送多字节数据函数),函数原型: bit ISendStr(uchar sla,uchar suba, ucahr *s,uchar no); 功能: 从启动总线到发送地址,子地址,数据,结束总线的全过程,从器件地址sla,子地址suba,发送内容是s指向的内容,发送no个字节。 如果返回1表示操作成功,否则操作有误。注意:使用前必须已结束总线。,上层,bit ISendStr(uchar sla,uchar suba,uchar *s

29、,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=0)return(0); s+; Stop_I2c(); /*结束总线*/ return(1);,上层,IRevStr (向有子地址器件读取多字节数据函数 ),函数原型: bit IRcvStr(uchar sla,uchar suba

30、,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

31、(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); /*发送非应位*/ Stop_I2c(); /*结束总线*/ return(1);,上层,PCF8563日历、时钟应用实例,以实验仪为平台,编程实现:按照实际时间,MCU通过I2C总线对实验仪上的PCF8563进行日历、时钟设置(包括:年、月、星期、日、时、分、秒),并按一定的时间间隔不断地从PCF85

32、63读取当前的日历、时钟值,并将其通过MCU标准串口发送至PC机以显示、查看结果是否符合实际的时间变化。,上层,作业,思考、试做:欲实现:将实验仪上的数码管用来显示实际的时间,而且还可以通过键盘对实验仪上的PCF8563进行时间设置,需用到实验仪上的那些芯片,软件如何编制?,上层,编程练习:,USB2.0综合仿真实验仪系统实时日历、时钟的设置与显示、(调整)。要求 :将实验仪上的数码管用来显示实时时钟(如时、分、秒)。 (进一步:而且还可以通过键盘对实验仪上的PCF8563进行时间设置。),教学目标:初步掌握PCF8563和ZLG7289的综合编程应用;初步掌握当一个计算机应用系统,要求具有实

33、时时钟功能、键盘显示器功能时,其基本的软硬件设计及实现的方法;进一步掌握I2C器件的C语言编程方法;进一步熟悉一般可编程器件的学习方法。逐步训练自己分析问题、解决问题的能力以及一定的软硬件设计能力。,教学重点、难点:在实际的计算机应用系统中,如何运用PCF8563、ZLG7289来实现实时时钟、键盘显示器的功能;应从实际应用系统的角度出发考虑问题。PCF8563和ZLG7289的综合编程应用。,教学过程设计:1、问题:将实验仪上的数码管用来显示实际的时间,而且还可以通过键盘对实验仪上的PCF8563进行时间设置,需用到实验仪上的那些芯片,硬件如何?软件如何编制?2、学生思考、讨论、提问,教师针对性讲解;3、分析解决此问题的方法;4、分析回顾PCF8563的具体编程方法;5、分析回顾ZLG7289的具体编程应用方法;6、同学试着相互讨论完成,碰到困难可以提出,讨论,教师协助,逐步完成题目要求。,课程小结:当一个计算机应用系统,要求具有实时时钟功能、键盘显示器功能时,其基本的软硬件设计及实现的方法如何?I2C器件的软、硬件共性如何?对于一般可编程器件的学习方法如何?每学习一个新的内容后,一定要注意它在实际计算机应用系统中的应用,并对此进行总结,有意识地逐步锻炼自己对实际问题的分析和解决能力。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报