




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、iic总线 .iic串行总线:是串行总线:是Philips公司提出的公司提出的同一板内芯片间同一板内芯片间串行串行总线。总线。是是近距离近距离的通信。的通信。 .iic串行总线:仅有两根线:串行总线:仅有两根线:SDA(数据线)(数据线)和和SCL(时钟线)。时钟线)。 .iic总线的特点:总线的特点:半双工半双工、同步同步、多主总线、多主总线、串行串行。 .iic串行总线的连接电路:串行总线的连接电路:节点节点1 节点节点2iic总线 .SDA(数据线)和(数据线)和SCL(时钟线)都时钟线)都是是集电极开路或漏极开路集电极开路或漏极开路结结构构的,只能输出的,只能输出“0”,不能输出,不能
2、输出“1”,都必须接,都必须接上拉电阻。上拉电阻。 .SDA和和SCL是是双向的,(双向的,( 为什么?)为什么?)当需要输入数据时,将一个当需要输入数据时,将一个读数据用的输入端接在输出端。读数据用的输入端接在输出端。iic总线 .SDA(数据线)和(数据线)和SCL(时钟线)都时钟线)都具有具有“线与线与”功能。功能。Y10iiciic总线的有关概念总线的有关概念 .主机和从机:总线上可以有一个或多个主机,总线运行由主机和从机:总线上可以有一个或多个主机,总线运行由主机主机控制。控制。主机是指启动数据的传送(发起始信号)、发出时钟信号、主机是指启动数据的传送(发起始信号)、发出时钟信号、传
3、送结束时发出终止信号的器件传送结束时发出终止信号的器件。通常,主机由各种单片机或其主机由各种单片机或其他微处理器充当。被主机寻访的器件叫他微处理器充当。被主机寻访的器件叫从机从机,它可以是各种单片,它可以是各种单片机或其他微处理器,也可以是其他器件,如存储器、机或其他微处理器,也可以是其他器件,如存储器、LED或或LCD驱动器、驱动器、A/D或或D/A转换器、时钟日历器件等。转换器、时钟日历器件等。 .发送器发送器和和接收器接收器:发送数据的一方称为发送器,而接收数据的发送数据的一方称为发送器,而接收数据的一方称为接收器。一方称为接收器。 .主主发送器发送器:iiciic总线的有关概念总线的有
4、关概念 .主接收器:主接收器: .从从发送器:发送器: .从从接收器接收器: .当总线当总线空闲空闲时,两根线均为时,两根线均为高电平高电平。 .在标准在标准I2C普通模式下,数据的传输率为普通模式下,数据的传输率为100Kbps,高速模式,高速模式下可达下可达400Kbps。连接的器件越多,电容值越大,总线上允许的。连接的器件越多,电容值越大,总线上允许的器件数以总线上的电容量不超过器件数以总线上的电容量不超过400pF为限。为限。 I2CI2C总线的总线的SDASDA和和SCLSCL是是双向双向的的均通过均通过上拉电阻上拉电阻接正电源接正电源 .IICIIC总线是总线是多主多主总线,但是任
5、一时刻只有一个主机在占用总线,那么它总线,但是任一时刻只有一个主机在占用总线,那么它们的们的仲裁机制仲裁机制是怎样的呢?是怎样的呢? .SCL线的时钟同步:线的时钟同步:SCL由于具有线由于具有线“与与”的逻辑功能,即只要有一个的逻辑功能,即只要有一个节点发送低电平时,总线上就表现为低电平。当所有的节点都发送高电平时,节点发送低电平时,总线上就表现为低电平。当所有的节点都发送高电平时,总线才能表现为高电平。正是由于线总线才能表现为高电平。正是由于线“与与”逻辑功能的原理,当多个节点同逻辑功能的原理,当多个节点同时发送时钟信号时,在总线上表现的是统一的时钟信号。这就是时发送时钟信号时,在总线上表
6、现的是统一的时钟信号。这就是SCL的同步的同步原理原理注意:总线上最终的时钟信号就是仲裁后的结果注意:总线上最终的时钟信号就是仲裁后的结果I2CI2C总线的总线仲裁总线的总线仲裁 .SDA线线的的仲裁,仲裁,SDA线的仲裁也是建立在总线具有线线的仲裁也是建立在总线具有线“与与”逻逻辑功能的原理上的。节点在发送辑功能的原理上的。节点在发送1位数据后,比较总线上所呈现的位数据后,比较总线上所呈现的数据与自己发送的是否一致。是,继续发送;否则,退出竞争。数据与自己发送的是否一致。是,继续发送;否则,退出竞争。SDA线的仲裁可以保证线的仲裁可以保证I2C总线系统在多个主节点同时企图控制总总线系统在多个
7、主节点同时企图控制总线时通信正常进行并且数据不丢失。总线系统通过仲裁线时通信正常进行并且数据不丢失。总线系统通过仲裁只允许一个只允许一个主节点主节点可以继续占据总线。可以继续占据总线。总结:总结:SDA仲裁和仲裁和SCL时钟同步是时钟同步是同时进行同时进行的。的。IIC总线的控制信号 开始信号开始信号 (主机发送)(主机发送)停止信号停止信号(主机发送)(主机发送)确认信号(确认信号(ACKACK):):“谁接收谁产生谁接收谁产生”的原则,即总的原则,即总是由接收器产生应答位是由接收器产生应答位 非应答信号(非应答信号(NACK)NACK):如果接收器在接收完:如果接收器在接收完最后一最后一个
8、个字节的数据,或者字节的数据,或者不能再接收更多的数据时不能再接收更多的数据时,应,应当产生非应答来通知发送器。发送器如果发现接收当产生非应答来通知发送器。发送器如果发现接收器产生了非应答状态,则应当终止发送。器产生了非应答状态,则应当终止发送。起始和终止信号起始和终止信号 根据根据I2CI2C总线协议的规定,总线协议的规定,SCLSCL线为线为高电平期间高电平期间,SDASDA线由线由高电高电平向低平向低电平的变化表示电平的变化表示起始信号起始信号;SCLSCL线为线为高电平期间高电平期间,SDASDA线线由由低电平向高低电平向高电平的变化表示电平的变化表示终止信号终止信号。起始和终止信号如
9、图。起始和终止信号如图所示。所示。数据位的数据位的有效性有效性I2C总线进行数据传送时,总线进行数据传送时,时钟信号为高电平期间时钟信号为高电平期间,数据线上的,数据线上的数据数据必须保持稳定必须保持稳定。只有在时钟线上的信号为低电平期间,数据。只有在时钟线上的信号为低电平期间,数据线上的高电平或低电工状态才允许变化,如图所示。线上的高电平或低电工状态才允许变化,如图所示。 IICIIC总线数据传送格式总线数据传送格式 利用利用IIC总线进行数据传送时,传送的总线进行数据传送时,传送的字节数是没有限制的字节数是没有限制的,但,但是每一个字节是每一个字节必须保证是必须保证是8位长度位长度。数据传
10、送时,。数据传送时,先传送最高位先传送最高位(MSB),每一个被传送的字节后面都),每一个被传送的字节后面都必须跟随一位应答位必须跟随一位应答位(即一帧共有(即一帧共有9位),如图所示:位),如图所示: 应答时序图 数据传送格式数据传送格式在总线的一次数据传送过程中,可以有以下几种组合方式:在总线的一次数据传送过程中,可以有以下几种组合方式: 主机向从机发送数据,在整个传送过程中主机向从机发送数据,在整个传送过程中数据传送方向不变数据传送方向不变。 主机在第一个字节后,立即由从机读数据。主机在第一个字节后,立即由从机读数据。 在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一
11、次,在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读但两次读/写方向位正好反向。写方向位正好反向。 每个期间内部都有个每个期间内部都有个RAM,RAM地址连续的,且能自动加地址连续的,且能自动加/减减1,被传送数据,被传送数据的存放地址即有第一个数据提供。的存放地址即有第一个数据提供。总线上传送的每个字节后,总线上传送的每个字节后,必须跟一个应答或非应答信号必须跟一个应答或非应答信号IICIIC总线的寻址字节总线的寻址字节 .主控制器产生起始条件后,发送的主控制器产生起始条件后,发送的第一个字节第一个字节为寻址字节,即从器件的地为寻址字节,即从器件的地址,从器件
12、的地址格式如下:址,从器件的地址格式如下: .其中其中DA3DA0位位:是是IIC总线外围接口器件固有的地址编码,出场时已给总线外围接口器件固有的地址编码,出场时已给定。定。如如IIC接口的接口的EEPROM 芯片芯片AT24CXX为为1010。4位位LED驱动器驱动器SAA1064的器件地址为的器件地址为0111。 .A2A1A0:IIC总线器件的引脚在电路中根据接电源或地来决定。总线器件的引脚在电路中根据接电源或地来决定。 .R/W是数据传送方向位,为是数据传送方向位,为“0”时表示主机向从机写数据,为时表示主机向从机写数据,为“1”时表示时表示主机由从机读数据。主机由从机读数据。 .主机
13、发送地址时,总线上的每个从机都将这主机发送地址时,总线上的每个从机都将这7位地址码与自己的地址进行比较,如果位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址,根据相同,则认为自己正被主机寻址,根据R/W位将自己确定为发送器或接收器。位将自己确定为发送器或接收器。 .系统中所接同类型的器件的数目:由系统中所接同类型的器件的数目:由A2A1A0决定决定第第8 8章章单片机系统扩展及接口技术单片机系统扩展及接口技术图8-10 I2C总线外围扩展示意图第第8 8章章单片机系统扩展及接口技术单片机系统扩展及接口技术v在在I I2 2C C总线上,总线上,SDASDA用于传送有效用于传送有效
14、数据位数据位,其上传输的每,其上传输的每位有效数据均对应于位有效数据均对应于SCLSCL线上的一个时钟脉冲。线上的一个时钟脉冲。v也就是说,只有当也就是说,只有当SCLSCL线上为线上为高电平高电平时,时,SDASDA线上的数据线上的数据信号才会有效;信号才会有效;SCLSCL线为低电平(线为低电平(SCL=0SCL=0)时,)时,SDASDA线上的线上的数据信号无效。数据信号无效。v因此,只有当因此,只有当SCLSCL线为低电平(线为低电平(SCL=0SCL=0)时,)时,SDASDA线上的电线上的电平状态才允许发生变化(见图平状态才允许发生变化(见图8-12)8-12)。第第8 8章章单片
15、机系统扩展及接口技术单片机系统扩展及接口技术v在在I I2 2C C总线上每传输一位数据都有一个时钟脉冲相对应。注总线上每传输一位数据都有一个时钟脉冲相对应。注意这里的时钟脉冲不一定是周期性的,它的时钟间隔可以意这里的时钟脉冲不一定是周期性的,它的时钟间隔可以不同。不同。v总线总线空闲空闲时,时,SDASDA和和SCLSCL都必须保持都必须保持高电平高电平状态,关闭状态,关闭I I2 2C C总总线时才使线时才使SCLSCL箝位在低电平。只有当总线处于箝位在低电平。只有当总线处于“空闲空闲”状态状态时,数据传输才能被初始化。时,数据传输才能被初始化。v在数据传输期间,只要在数据传输期间,只要S
16、CLSCL为高电平为高电平,数据线数据线SDASDA就必须保就必须保持稳定。持稳定。v只有在时钟线为低电平时,才允许数据线上的电平状态变只有在时钟线为低电平时,才允许数据线上的电平状态变化。化。v在时钟线保持高电平期间,数据线出现下降沿为启动信号、在时钟线保持高电平期间,数据线出现下降沿为启动信号、上升沿为停止信号,上升沿为停止信号,启动和停止信号都由主机产生启动和停止信号都由主机产生。第第8 8章章单片机系统扩展及接口技术单片机系统扩展及接口技术vI I2 2C C总线上传输的数据和地址字节总线上传输的数据和地址字节均为均为8 8位位,且,且高位在前,低位在高位在前,低位在后。后。vI I2
17、 2C C总线以起总线以起始信号为启动信号始信号为启动信号,接着传输的是地址和数据字节,接着传输的是地址和数据字节,数据字节是没有限制的数据字节是没有限制的,但每个字节后都必须跟随一个应答位,但每个字节后都必须跟随一个应答位,全部数据传输完毕后,以终止信号结尾。全部数据传输完毕后,以终止信号结尾。第第8 8章章单片机系统扩展及接口技术单片机系统扩展及接口技术v如前所述,如前所述,SCLSCL线为低电平时,线为低电平时,SDASDA线上数据就被停止传送。线上数据就被停止传送。SCLSCL线的这一特性十分有用:线的这一特性十分有用: 当接收器接收到一个数据当接收器接收到一个数据/ /地址字节后地址
18、字节后, ,需要进行其他工作而无法立即接收下一个字节时,接收器便可向需要进行其他工作而无法立即接收下一个字节时,接收器便可向SCLSCL线输出低电平而箝住线输出低电平而箝住SCLSCL(SCL=0SCL=0),迫使),迫使SDASDA线处于等待状态,线处于等待状态,直到接收器准备好接收新的数据直到接收器准备好接收新的数据/ /地址字节时,再释放时钟线地址字节时,再释放时钟线SCLSCL(SCLSCL)=1=1),使),使SDASDA线上数据传输得以继续进行。例如,当被控线上数据传输得以继续进行。例如,当被控接收器在接收器在A A点(见图点(见图8-138-13)接收完主控器发来的一个数据字节时
19、,)接收完主控器发来的一个数据字节时,若被控器需要处理接收中断而无法令其接收器继续接收,则被控若被控器需要处理接收中断而无法令其接收器继续接收,则被控器便可箝住器便可箝住SCLSCL线为低电平,使主控发送器处于等待状态,直到线为低电平,使主控发送器处于等待状态,直到被控器处理完接收中断后,再释放被控器处理完接收中断后,再释放SCLSCL线。线。第第8 8章章单片机系统扩展及接口技术单片机系统扩展及接口技术v利用利用SDASDA线进行数据传输时,线进行数据传输时,发送器发送器每发完一个数据字节后,都要求每发完一个数据字节后,都要求接收方接收方发发回一个回一个应答信号应答信号。但与应答信号相对应的
20、但与应答信号相对应的时钟仍由主控器时钟仍由主控器在在SCLSCL线上产生,因线上产生,因此主控发送器必须在被控接收器发送应答信号前,预先释放对此主控发送器必须在被控接收器发送应答信号前,预先释放对SDASDA线的控制,线的控制,以便主控器对以便主控器对SDASDA线上应答信号的检测。线上应答信号的检测。v应答信号在第应答信号在第9 9个时钟位上出现,接收器在个时钟位上出现,接收器在SDASDA线上输出低电平为应答信号线上输出低电平为应答信号(A A),输出高电平为非应答信号(),输出高电平为非应答信号(A A)。时钟信号以及应答和非应答信号间)。时钟信号以及应答和非应答信号间的关系如图的关系如
21、图8-148-14所示。所示。第第8 8章章单片机系统扩展及接口技术单片机系统扩展及接口技术v在主控器发送数据时,被控器接收完一个数据字节后都要向主控器发回一个在主控器发送数据时,被控器接收完一个数据字节后都要向主控器发回一个应答信号(应答信号(A A),主控器据此便可进行下一字节的发送。但如果被控器由于某),主控器据此便可进行下一字节的发送。但如果被控器由于某种原因需要进行其他处理而无法继续接收种原因需要进行其他处理而无法继续接收SDASDA线上数据时,线上数据时,便可向便可向SDASDA线输出线输出一个非应答信号(一个非应答信号(A A),使),使SDASDA线保持高电平,主控器据此便可产
22、生一个停止线保持高电平,主控器据此便可产生一个停止信号来终止信号来终止SDASDA线上的数据传输。线上的数据传输。v当主控器作为接收器接收被控器送来的最后一个数据时,必须给被控器发送当主控器作为接收器接收被控器送来的最后一个数据时,必须给被控器发送一个一个非应答信号(非应答信号(A A),),令被控器释放令被控器释放SDASDA线,以便主控器可以发送停止信号线,以便主控器可以发送停止信号来结束数据的传输。来结束数据的传输。v在任何时刻总线上只有一个主控器件(主节点)实现总线的控制操作,对总在任何时刻总线上只有一个主控器件(主节点)实现总线的控制操作,对总线上的其他节点寻址,分时实现点点的数据传
23、送。线上的其他节点寻址,分时实现点点的数据传送。v总线上每个节点都有一个固定的节点地址。总线上每个节点都有一个固定的节点地址。第第8 8章章单片机系统扩展及接口技术单片机系统扩展及接口技术vI I2 2C C总线上的单片机都可以成为主节点,其器件地址由软件给定,总线上的单片机都可以成为主节点,其器件地址由软件给定,存放在存放在I I2 2C C总线的地址寄存器中,称为主器件的从地址。总线的地址寄存器中,称为主器件的从地址。v在在I I2 2C C总线的多主系统中,单片机作为从节点时,其从地址才有总线的多主系统中,单片机作为从节点时,其从地址才有意义。意义。v数据字节传送完后,被控接收器发回一个
24、非应答信号(高电平数据字节传送完后,被控接收器发回一个非应答信号(高电平有效),主控器据此发送停止信号,以结束这次数据的传输。有效),主控器据此发送停止信号,以结束这次数据的传输。v但是,如果主机仍希望在总线上通信,它可以产生重复的起始但是,如果主机仍希望在总线上通信,它可以产生重复的起始信号(信号(Sr)和寻址另一个从机,而不是首先产生一个停止信号。)和寻址另一个从机,而不是首先产生一个停止信号。I2C总线模拟硬件接口软件设计总线模拟硬件接口软件设计 AT89S51单片机单片机没有没有IIC接口接口,在外接,在外接IIC接口的芯片时,接口的芯片时,AT89S51单片机必须用软件模拟单片机必须
25、用软件模拟IIC时序,产生时序,产生IIC总线的起始信总线的起始信号、结束信号等。首先可定义号、结束信号等。首先可定义P1口任意两个引脚作为单片机口任意两个引脚作为单片机I2C总线的总线的SCL和和SDA,然后再编程实现,然后再编程实现I2C功能。下面介绍一个主功能。下面介绍一个主方式下的虚拟方式下的虚拟I2C总线总线软件包。软件包。若若AT89s51单片机的系统时钟为单片机的系统时钟为12Mhz,1个周期为个周期为1us,则,则I2C总线总线起始信号起始信号子程序子程序 启动启动I2C总线子程序总线子程序 START: SETB SDA NOP SETB SCL ;起始条件建立时间大于起始条
26、件建立时间大于4.7us NOP NOP NOP NOP NOP CLR SDA NOP ;起始条件锁定时大于起始条件锁定时大于4us NOP NOP NOP NOP CLR SCL ;钳住总线,准备发数据钳住总线,准备发数据 NOP RET结束信号结束信号子程序子程序 ;结束总线子程序结束总线子程序STOP: CLR SDA NOP SETB SCL ;发送结束条件的时钟信号发送结束条件的时钟信号 NOP ;结束总线时间大于结束总线时间大于4us NOP NOP NOP NOP SETB SDA ;结束总线结束总线 NOP ;保证一个终止信号和起始信号的空闲时间大于保证一个终止信号和起始信号
27、的空闲时间大于4.7us NOP NOP NOP NOP RET发送发送应答信号应答信号子程序子程序 MACK: CLR SDA ;将;将SDA置置0 (由由接收器接收器发送,发送,SDA稳定后稳定后) NOP NOP SETB SCL NOP ;保持数据时间,即;保持数据时间,即SCL为高时间大于为高时间大于4.7 s NOP NOP NOP NOP CLR SCL NOP NOP RET发送非应答信号发送非应答信号 MNACK: SETB SDA ;将将SDA置置1 NOP NOP SETB SCL NOP NOP ;保持数据时间,即;保持数据时间,即SCL为高时间大于为高时间大于4.7
28、s NOP NOP NOP CLR SCL NOP NOP RET检查应答位子程序检查应答位子程序 ;返回值,返回值,ACK=1时表示有应答时表示有应答( ACK BIT 20H)CACK: SETB SDA NOP NOP SETB SCL CLR ACK NOP NOP MOV C,SDA JC CEND SETB ACK ;判断应答位;判断应答位CEND: NOP CLR SCL NOP RET发送单字节发送单字节子程序子程序 ;字节数据字节数据放入放入ACC WRBYTE: MOV R0,#08HWLP: RLC A ;取数据位;取数据位 JC WR1 SJMP WR0 ;判断数据位;
29、判断数据位WLP1: DJNZ R0,WLP NOP RETWR1: SETB SDA ;发送;发送1 NOP SETB SCL NOP NOP NOP NOP NOP NOP NOP CLR SCL SJMP WLP1 WR0: CLR SDA ;发送;发送0 NOP SETB SCL NOP NOP NOP NOP NOP CLR SCL SJMP WLP1读取字节读取字节子程序子程序 ;读出的值在读出的值在ACC内内;每取一字节要发送一个应答;每取一字节要发送一个应答/非应答信号非应答信号 RDBYTE: MOV R0,#08HRLP: SETB SDA;从机释放总线从机释放总线 NOP
30、 SETB SCL ;时钟线为高(;时钟线为高(主机主机SCL早已置早已置高高),接收数据位),接收数据位 NOP NOP MOV C,SDA ;读取数据位;读取数据位 MOV A,R2 CLR SCL ;将;将SCL拉低,时间大于拉低,时间大于4.7 s RLC A ;进行数据位的处理;进行数据位的处理 MOV R2,A NOP NOP NOP DJNZ R0,RLP ;未够;未够8位,再来一次位,再来一次 RET 无子地址器件写字节数据无子地址器件写字节数据 ;入口参数入口参数: 数据为数据为ACC、器件、器件从地址从地址SLA ;占用;占用: A、R0、CYIWRBYTE: PUSH A
31、CCIWBLOOP: LCALL START ;起动总线;起动总线 MOV A,SLA LCALL WRBYTE ;发送器件从地址;发送器件从地址 LCALL CACK JNB ACK,RETWRB ;无应答则跳转;无应答则跳转 POP ACC ;写数据;写数据 LCALL WRBYTE LCALL CACK LCALL STOP RETRETWRB: POP ACC LCALL STOP RET 仅仅一个字节,仅仅一个字节,这叫随机写这叫随机写无子地址器件读字节数据无子地址器件读字节数据 ;入口参数入口参数: 器件从地址器件从地址SLA;出口参数;出口参数: 数据为数据为ACC ;占用;占用
32、 A 、R0、R2 、CYIRDBYTE:LCALL START MOV A,SLA ;发送器件从地址;发送器件从地址 INC A LCALL WRBYTE LCALL CACK JNB ACK,RETRDB LCALL RDBYTE ;进行读字节操作;进行读字节操作 LCALL MNACK ;发送非应信号;发送非应信号RETRDB:LCALL STOP ;结束总线;结束总线 RET仅仅一个字节,仅仅一个字节,这叫随机读这叫随机读向器件指定子地址写向器件指定子地址写N N个数据个数据 ;入口参数入口参数: 器件从地址器件从地址SLA、器件子地址、器件子地址SUBA 、发送数据缓冲发送数据缓冲区
33、区MTD、发送字节数、发送字节数NUMBYTE;占用:;占用: A 、R0 、R1 、R3 、CY IWRNBYTE: MOV A,NUMBYTE MOV R3,A LCALL START ;起动总线;起动总线 MOV A,SLA LCALL WRBYTE ;发送器件从地址;发送器件从地址 LCALL CACK JNB ACK,RETWRN ;无应答则退出;无应答则退出 MOV A,SUBA ;指定子地址;指定子地址 LCALL WRBYTE LCALL CACK MOV R1,#MTDWRDA: MOV A,R1 LCALL WRBYTE ;开始写入数据;开始写入数据 LCALL CACK
34、JNB ACK,IWRNBYTE ;无应答重新开始;无应答重新开始 INC R1 DJNZ R3,WRDA ;判断写完没有;判断写完没有RETWRN: LCALL STOP RET向器件指定子地址读取向器件指定子地址读取N N个数据个数据 ;入口参数;入口参数: 器件从地址器件从地址SLA、器件子地址、器件子地址SUBA、接收字节数、接收字节数NUMBYTE;出口参数;出口参数: 接收数据缓冲区接收数据缓冲区MTD;占用:;占用:A、 R0、 R1、 R2、 R3、 CY IRDNBYTE: MOV R3,NUMBYTE LCALL START MOV A,SLA LCALL WRBYTE ;
35、发送器件从地址;发送器件从地址 LCALL CACK JNB ACK,RETRDN MOV A,SUBA ;指定子地址;指定子地址 LCALL WRBYTE LCALL CACK LCALL START ;重新起动总线;重新起动总线 MOV A,SLA INC A ;准备进行读操作;准备进行读操作 LCALL WRBYTE LCALL CACK JNB ACK,IRDNBYTE MOV R1,#MRD向器件指定子地址读取向器件指定子地址读取N个数据个数据RDN1: LCALL RDBYTE ;读操作开始;读操作开始 MOV R1,A DJNZ R3,SACK LCALL MNACK ;最后一字
36、节发非应答位;最后一字节发非应答位 RETRDN: LCALL STOP ;并结束总线;并结束总线 RETSACK: LCALL MACK ;发应答信号;发应答信号 INC R1 SJMP RDN1a.a.如何区分向随机读如何区分向随机读/ /写?还是向指定地址读写?还是向指定地址读/ /写?写?b. b. 读读N N个字节的格式:个字节的格式:SSLA0ASubsASrSLA1AData0A.DataN/AP AT24C*接触式IC卡q所谓接触式IC卡就是在使用时,通过有形的金属电极触点将卡的集成电路与外部接口电路直接接触连接,提供集成电路工作的电源并进行数据交换的IC卡。其特点是在卡的表面
37、有符合ISO7816标准的多个金属触点。 接触式IC卡的基本构成 q接触式IC 卡的实际构成可分为: 半导体芯片、电极模片、塑料基片接触式IC卡的工作原理q接触式接触式ICIC卡是如何获取工作电压的?卡是如何获取工作电压的? 接触式IC卡通过其表面的金属电极触点将卡的集成电路与外部接口电路直接接触连接,由外部接口电路提供卡内集成电路工作的电源。q接触式接触式ICIC卡如何与读写器交换数据的?卡如何与读写器交换数据的? 接触式IC卡通过其表面的金属电极触点将卡的集成电路与外部接口电路直接接触连接,通过串行方式(IIC总线)与读写器交换数据。触点功能定义触点辩识C1C1C2C2C3C3C4C4C5
38、C5C6C6C7C7C8C8VccVccN.C.N.C.SCLSCLN.C.N.C.GNDGNDN.C.N.C.SDASDAN.C.N.C.AT24CAT24C系列系列IICIIC总线接口总线接口EEPROMEEPROMAT24C01的内部的内部RAM为为128字节,有多种封装形式,字节,有多种封装形式,下图为下图为双列直插式,双列直插式,其中其中WP引脚:引脚:写保护,当写保护,当wp接地,接地,可以正常读可以正常读/写;当写;当wp接电源时,可以对接电源时,可以对整个芯片整个芯片进行进行读操作读操作,但,但不能写。不能写。AT24C01的地址:写地址(的地址:写地址(0A0H)和读地址和读
39、地址(0A1H)1010A2A1A0R/W在在IIC总线上,最多可以接总线上,最多可以接多少多少片片AT24C01?AT24C01AT24C01的的字节写字节写SSLA 0ADATAAPAT24C01AT24C01的片内的片内RAMRAM共共128128个字节,对于个字节,对于AT24C01AT24C01的写操作的写操作分为分为字节写字节写和和页写。页写。字节写就是向字节写就是向AT24C01AT24C01的的随机单元随机单元写入数据,写入数据,格式如下:格式如下:a.在字节写模式下,主器件发送起始命令、从器件地在字节写模式下,主器件发送起始命令、从器件地址(址(R/W=0)给给AT24C01
40、,AT24C01产生应答信号后,主器产生应答信号后,主器件发送数据给件发送数据给AT24C01,AT24C01收到数据后,收到数据后,AT24C01产生产生应答信号,应答信号,主器件主器件产生停止信号后,产生停止信号后,AT24C01开始内部开始内部数据的擦写,即将刚才收到的数据由数据的擦写,即将刚才收到的数据由页写缓冲区页写缓冲区保存保存到到AT24C01内内地址寄存器地址寄存器所指的单元。所指的单元。在擦写过程中不在擦写过程中不再响应主器件的任何请求。再响应主器件的任何请求。AT24C01AT24C01的页写的页写SSLA 0ASUBSADATA0ADATA7APAT24C01的的页写页写
41、操作中,可以操作中,可以一次写入一次写入8 8个字节个字节,AT24C01AT24C01内部的内部的页页写缓冲区共写缓冲区共8 8个单元个单元,AT24C01AT24C01一次收到的一次收到的8 8个数据就先放在个数据就先放在缓冲区内,等收到停止信号后,再开始内部数缓冲区内,等收到停止信号后,再开始内部数据的擦写,据的擦写,页写的格式如下:页写的格式如下:页写页写和和字节写字节写的的不同不同在于传送在于传送一个字节一个字节后不发送停止后不发送停止信号。主器件发送信号。主器件发送最多最多8个数据个数据。主器件每发送完一个。主器件每发送完一个字节,字节,AT24C01产生一个应答信号,片内的地址计
42、数产生一个应答信号,片内的地址计数器自动器自动1,并在主器件产生停止信号后,开始内部数,并在主器件产生停止信号后,开始内部数据的擦写,在擦写的过程中不再响应主器件的任何请据的擦写,在擦写的过程中不再响应主器件的任何请求。求。AT24C01AT24C01的页写的页写a.如果在一次写过程中,写的如果在一次写过程中,写的字节数超过页字节的数目字节数超过页字节的数目,那么就会将前面的覆盖掉。例如写那么就会将前面的覆盖掉。例如写9个个data7data6data5data4data3data2data1data8b.b.在在写的过程写的过程中,中,EEPROMEEPROM芯片会把接收到的数据暂时芯片会把
43、接收到的数据暂时保存到保存到页写缓冲区页写缓冲区中,等操作结束(中,等操作结束(stop)stop)后,后,EEPROMEEPROM芯片不会再响应其它任何操作,芯片不会再响应其它任何操作,唯一要做唯一要做的就的就是将是将页寄存器中页寄存器中的数据保存到芯片内部的的数据保存到芯片内部的RAMRAM。AT24C01AT24C01的的读操作读操作SSLA 1ADATANACKPAT24C01AT24C01的读操作可以分为的读操作可以分为:随机读随机读、选择读选择读和和连续读连续读三种方式。三种方式。随机读随机读就是就是AT24C01AT24C01的的地址计数器地址计数器指向哪个指向哪个单元,就从哪个
44、单元读取数据。如下:单元,就从哪个单元读取数据。如下:选择性读选择性读:允许主器件对寄存器的:允许主器件对寄存器的任意字节任意字节进行读操作。进行读操作。主器件首先通过发送主器件首先通过发送起始信号、起始信号、从器件地址和它想读取从器件地址和它想读取的字节数据的的字节数据的子地址子地址执行一个伪写操作,在执行一个伪写操作,在AT24WC01应答之后,主器件重新发送应答之后,主器件重新发送起始信号起始信号和和从器件读地址从器件读地址,AT24WC01响应并发送响应并发送应答信号应答信号和一个和一个8 位数据,主器位数据,主器件发送非应答信号并产生一个停止信号。件发送非应答信号并产生一个停止信号。
45、SSLA0ASubsASrSLA1AData/APAT24C01AT24C01的的连续读操作连续读操作AT24C01AT24C01的的随机读随机读和和选择性选择性读,都是读取读,都是读取一个字节一个字节。AT24C01AT24C01的的连续读连续读就是就是AT24C01AT24C01从一个从一个具体地址具体地址(地址计(地址计数器数器具体地址具体地址)开始连续)开始连续读出读出n n个数据,每读出一个个数据,每读出一个数据,地址计数器数据,地址计数器1,1,当地址计数器的值到达最大值当地址计数器的值到达最大值0FFH0FFH后,如果再读取数据,地址计数器的值就反转为后,如果再读取数据,地址计数器的值就反转为00H00H。连续读的格式如下:。连续读的格式如下:实验:基于实验:基于ICIC卡的读写实验卡的读写实验一、一、 实验目的实验目的1 1、熟悉、熟悉ICIC卡(卡(I IC C存储卡的简称)工作原理及存储卡的简称)工作原理及I IC C总线总线结构。结构。2 2、利用单片机的、利用单片机的I/OI/O口线产生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 利润分成合同:2025年度新能源项目合作协议
- 现代生物科技在可持续农业中的角色
- 二零二五年度房地产中介服务合同范本打造行业典范
- 二零二五年度舞蹈学校校长聘任协议
- 二零二五年度洗车工职业健康保险及服务合同
- 二零二五年度创业投资股权分红与项目评估及退出协议
- 二零二五年度员工股份激励与员工福利协议
- 现代服务业集聚区的人才培养与教育体系构建
- 2025年大唐四川发电有限公司高校毕业生招聘笔试参考题库附带答案详解
- 2025年度股东股份协议书:智能电网建设项目股权投资协议
- 《欣赏 中华人民共和国国歌(简谱、五线谱)》课件
- 羽毛球教案18课时
- 初三化学一轮复习计划
- 链家新人成长手册10
- 成人重症患者人工气道湿化护理专家共识 解读
- 关于进一步加强路基路面施工质量的通知
- 新版苏教版六年级数学上册全册解析
- AQ/T 2080-2023 金属非金属地下矿山在用人员定位系统安全检测检验规范(正式版)
- GB/T 36548-2024电化学储能电站接入电网测试规程
- JTT 1499-2024 公路水运工程临时用电技术规程(正式版)
- 2024年甘肃省天水市中考生物·地理试题卷(含答案)
评论
0/150
提交评论