好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

单片机接口技术:iic总线.ppt

50页
  • 卖家[上传人]:鲁**
  • 文档编号:573546313
  • 上传时间:2024-08-15
  • 文档格式:PPT
  • 文档大小:1.67MB
  • / 50 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • iic总线♣.iic串行总线:是串行总线:是Philips公司提出的公司提出的同一板内芯片间同一板内芯片间串行串行总线是是近距离近距离的通信♣.iic串行总线:仅有两根线:串行总线:仅有两根线:SDA(数据线)(数据线)和和SCL(时钟线)时钟线)♣.iic总线的特点:总线的特点:半双工半双工、、同步同步、、多主总线、多主总线、串行串行♣.iic串行总线的连接电路:串行总线的连接电路:节点节点1 节点节点2 iic总线♣.SDA(数据线)和(数据线)和SCL(时钟线)都时钟线)都是是集电极开路或漏极开路集电极开路或漏极开路结构结构的,只能输出的,只能输出“0”,不能输出,不能输出“1”,都必须接,都必须接上拉电阻上拉电阻♣.SDA和和SCL是是双向的,(双向的,( 为什么?)为什么?)当需要输入数据时,将一个当需要输入数据时,将一个读数据用的输入端接在输出端读数据用的输入端接在输出端 iic总线♣.SDA(数据线)和(数据线)和SCL(时钟线)都时钟线)都具有具有“线与线与”功能Y10 iiciic总线的有关概念总线的有关概念♣.主机和从机:总线上可以有一个或多个主机,总线运行由主机和从机:总线上可以有一个或多个主机,总线运行由主机主机控制。

      控制主机是指启动数据的传送(发起始信号)、发出时钟信号、主机是指启动数据的传送(发起始信号)、发出时钟信号、传送结束时发出终止信号的器件传送结束时发出终止信号的器件通常,主机由各种单片机或其主机由各种单片机或其他微处理器充当被主机寻访的器件叫他微处理器充当被主机寻访的器件叫从机从机,它可以是各种单片,它可以是各种单片机或其他微处理器,也可以是其他器件,如存储器、机或其他微处理器,也可以是其他器件,如存储器、LED或或LCD驱动器、驱动器、A/D或或D/A转换器、时钟日历器件等转换器、时钟日历器件等♣.发送器发送器和和接收器接收器::发送数据的一方称为发送器,而接收数据的一发送数据的一方称为发送器,而接收数据的一方称为接收器方称为接收器♣.主主发送器发送器:: iiciic总线的有关概念总线的有关概念♣.主接收器:主接收器:♣.从从发送器:发送器:♣.从从接收器接收器::♣.当总线当总线空闲空闲时,两根线均为时,两根线均为高电平高电平♣.在标准在标准I2C普通模式下,数据的传输率为普通模式下,数据的传输率为100Kbps,高速模式下,高速模式下可达可达400Kbps连接的器件越多,电容值越大,总线上允许的器。

      连接的器件越多,电容值越大,总线上允许的器件数以总线上的电容量不超过件数以总线上的电容量不超过400pF为限 I2CI2C总线的总线的SDASDA和和SCLSCL是是双向双向的的均通过均通过上拉电阻上拉电阻接正电源接正电源 ♣.IICIIC总线是总线是多主多主总线,但是任一时刻只有一个主机在占用总线,那么它们总线,但是任一时刻只有一个主机在占用总线,那么它们的的仲裁机制仲裁机制是怎样的呢?是怎样的呢?♣.SCL线的时钟同步:线的时钟同步:SCL由于具有线由于具有线“与与”的逻辑功能,即只要有一个节的逻辑功能,即只要有一个节点发送低电平时,总线上就表现为低电平当所有的节点都发送高电平时,点发送低电平时,总线上就表现为低电平当所有的节点都发送高电平时,总线才能表现为高电平正是由于线总线才能表现为高电平正是由于线“与与”逻辑功能的原理,当多个节点同逻辑功能的原理,当多个节点同时发送时钟信号时,在总线上表现的是统一的时钟信号这就是时发送时钟信号时,在总线上表现的是统一的时钟信号这就是SCL的同步的同步原理原理注意:总线上最终的时钟信号就是仲裁后的结果注意:总线上最终的时钟信号就是仲裁后的结果 I2CI2C总线的总线仲裁总线的总线仲裁 ♣.SDA线线的的仲裁,仲裁,SDA线的仲裁也是建立在总线具有线线的仲裁也是建立在总线具有线“与与”逻逻辑功能的原理上的。

      节点在发送辑功能的原理上的节点在发送1位数据后,比较总线上所呈现的位数据后,比较总线上所呈现的数据与自己发送的是否一致是,继续发送;否则,退出竞争数据与自己发送的是否一致是,继续发送;否则,退出竞争SDA线的仲裁可以保证线的仲裁可以保证I2C总线系统在多个主节点同时企图控制总总线系统在多个主节点同时企图控制总线时通信正常进行并且数据不丢失总线系统通过仲裁线时通信正常进行并且数据不丢失总线系统通过仲裁只允许一个只允许一个主节点主节点可以继续占据总线可以继续占据总线总结:总结:SDA仲裁和仲裁和SCL时钟同步是时钟同步是同时进行同时进行的 IIC总线的控制信号 开始信号开始信号 (主机发送)(主机发送)停止信号停止信号(主机发送)(主机发送)确认信号(确认信号(ACKACK):):“谁接收谁产生谁接收谁产生”的原则,即总是的原则,即总是由接收器产生应答位由接收器产生应答位 非应答信号(非应答信号(NACK)NACK):如果接收器在接收完:如果接收器在接收完最后一个最后一个字字节的数据,或者节的数据,或者不能再接收更多的数据时不能再接收更多的数据时,应当产,应当产生非应答来通知发送器发送器如果发现接收器产生非应答来通知发送器。

      发送器如果发现接收器产生了非应答状态,则应当终止发送生了非应答状态,则应当终止发送 起始和终止信号起始和终止信号 根据根据I2CI2C总线协议的规定,总线协议的规定,SCLSCL线为线为高电平期间高电平期间,,SDASDA线由线由高电平高电平向低向低电平的变化表示电平的变化表示起始信号起始信号;;SCLSCL线为线为高电平期间高电平期间,,SDASDA线由线由低电平向高低电平向高电平的变化表示电平的变化表示终止信号终止信号起始和终止信号如图所起始和终止信号如图所示 数据位的数据位的有效性有效性I2C总线进行数据传送时,总线进行数据传送时,时钟信号为高电平期间时钟信号为高电平期间,数据线上的,数据线上的数据数据必须保持稳定必须保持稳定只有在时钟线上的信号为低电平期间,数据只有在时钟线上的信号为低电平期间,数据线上的高电平或低电工状态才允许变化,如图所示线上的高电平或低电工状态才允许变化,如图所示 IICIIC总线数据传送格式总线数据传送格式 利用利用IIC总线进行数据传送时,传送的总线进行数据传送时,传送的字节数是没有限制的字节数是没有限制的,但,但是每一个字节是每一个字节必须保证是必须保证是8位长度位长度。

      数据传送时,数据传送时,先传送最高位先传送最高位((MSB),每一个被传送的字节后面都),每一个被传送的字节后面都必须跟随一位应答位必须跟随一位应答位(即一帧共有(即一帧共有9位),如图所示:位),如图所示: 应答时序图 数据传送格式数据传送格式在总线的一次数据传送过程中,可以有以下几种组合方式:在总线的一次数据传送过程中,可以有以下几种组合方式: • 主机向从机发送数据,在整个传送过程中主机向从机发送数据,在整个传送过程中数据传送方向不变数据传送方向不变• 主机在第一个字节后,立即由从机读数据主机在第一个字节后,立即由从机读数据• 在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读但两次读/写方向位正好反向写方向位正好反向• 每个期间内部都有个每个期间内部都有个RAM,RAM地址连续的,且能自动加地址连续的,且能自动加/减减1,被传送数据,被传送数据的存放地址即有第一个数据提供的存放地址即有第一个数据提供•总线上传送的每个字节后,总线上传送的每个字节后,必须跟一个应答或非应答信号必须跟一个应答或非应答信号 IICIIC总线的寻址字节总线的寻址字节 ♣.主控制器产生起始条件后,发送的主控制器产生起始条件后,发送的第一个字节第一个字节为寻址字节,即从器件的地址,为寻址字节,即从器件的地址,从器件的地址格式如下:从器件的地址格式如下: ♣.其中其中DA3~~DA0位位:是是IIC总线外围接口器件固有的地址编码,出场时已给定。

      总线外围接口器件固有的地址编码,出场时已给定如如IIC接口的接口的EEPROM 芯片芯片AT24CXX为为10104位位LED驱动器驱动器SAA1064的器的器件地址为件地址为0111♣.A2A1A0:IIC总线器件的引脚在电路中根据接电源或地来决定总线器件的引脚在电路中根据接电源或地来决定♣.R/W是数据传送方向位,为是数据传送方向位,为“0”时表示主机向从机写数据,为时表示主机向从机写数据,为“1”时表示时表示主机由从机读数据主机由从机读数据♣.主机发送地址时,总线上的每个从机都将这主机发送地址时,总线上的每个从机都将这7位地址码与自己的地址进行比较,如果位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址,根据相同,则认为自己正被主机寻址,根据R/W位将自己确定为发送器或接收器位将自己确定为发送器或接收器♣.系统中所接同类型的器件的数目:由系统中所接同类型的器件的数目:由A2A1A0决定决定 第第8 8章单片机系统扩展及接口技术章单片机系统扩展及接口技术图8-10 I2C总线外围扩展示意图 第第8 8章单片机系统扩展及接口技术章单片机系统扩展及接口技术v在在I I2 2C C总线上,总线上,SDASDA用于传送有效数据位,其上传输的每位用于传送有效数据位,其上传输的每位有效数据均对应于有效数据均对应于SCLSCL线上的一个时钟脉冲。

      线上的一个时钟脉冲v也就是说,只有当也就是说,只有当SCLSCL线上为高电平时,线上为高电平时,SDASDA线上的数据线上的数据信号才会有效;信号才会有效;SCLSCL线为低电平(线为低电平(SCL=0SCL=0)时,)时,SDASDA线上的线上的数据信号无效数据信号无效v因此,只有当因此,只有当SCLSCL线为低电平(线为低电平(SCL=0SCL=0)时,)时,SDASDA线上的电线上的电平状态才允许发生变化(见图平状态才允许发生变化(见图8-12)8-12) 第第8 8章单片机系统扩展及接口技术章单片机系统扩展及接口技术v在在I I2 2C C总线上每传输一位数据都有一个时钟脉冲相对应注总线上每传输一位数据都有一个时钟脉冲相对应注意这里的时钟脉冲不一定是周期性的,它的时钟间隔可以意这里的时钟脉冲不一定是周期性的,它的时钟间隔可以不同v总线总线空闲空闲时,时,SDASDA和和SCLSCL都必须保持都必须保持高电平高电平状态,关闭状态,关闭I I2 2C C总总线时才使线时才使SCLSCL箝位在低电平只有当总线处于箝位在低电平只有当总线处于““空闲空闲””状态状态时,数据传输才能被初始化。

      时,数据传输才能被初始化v在数据传输期间,只要在数据传输期间,只要SCLSCL为高电平为高电平,,数据线数据线SDASDA就必须保持就必须保持稳定v只有在时钟线为低电平时,才允许数据线上的电平状态变化只有在时钟线为低电平时,才允许数据线上的电平状态变化v在时钟线保持高电平期间,数据线出现下降沿为启动信号、在时钟线保持高电平期间,数据线出现下降沿为启动信号、上升沿为停止信号,上升沿为停止信号,启动和停止信号都由主机产生启动和停止信号都由主机产生 第第8 8章单片机系统扩展及接口技术章单片机系统扩展及接口技术vI I2 2C C总线上传输的数据和地址字节总线上传输的数据和地址字节均为均为8 8位位,且,且高位在前,低位在高位在前,低位在后vI I2 2C C总线以起总线以起始信号为启动信号始信号为启动信号,接着传输的是地址和数据字节,,接着传输的是地址和数据字节,数据字节是没有限制的数据字节是没有限制的,但每个字节后都必须跟随一个应答位,,但每个字节后都必须跟随一个应答位,全部数据传输完毕后,以终止信号结尾全部数据传输完毕后,以终止信号结尾 第第8 8章单片机系统扩展及接口技术章单片机系统扩展及接口技术v如前所述,如前所述,SCLSCL线为低电平时,线为低电平时,SDASDA线上数据就被停止传送。

      线上数据就被停止传送SCLSCL线的这一特性十分有用:线的这一特性十分有用: 当接收器接收到一个数据当接收器接收到一个数据/ /地址字节后地址字节后, ,需要进行其他工作而无法立即接收下一个字节时,接收器便可向需要进行其他工作而无法立即接收下一个字节时,接收器便可向SCLSCL线输出低电平而箝住线输出低电平而箝住SCLSCL((SCL=0SCL=0),迫使),迫使SDASDA线处于等待状态,线处于等待状态,直到接收器准备好接收新的数据直到接收器准备好接收新的数据/ /地址字节时,再释放时钟线地址字节时,再释放时钟线SCLSCL((SCLSCL))=1=1),使),使SDASDA线上数据传输得以继续进行例如,当线上数据传输得以继续进行例如,当被控接收器在被控接收器在A A点(见图点(见图8-138-13)接收完主控器发来的一个数据字)接收完主控器发来的一个数据字节时,若被控器需要处理接收中断而无法令其接收器继续接收,节时,若被控器需要处理接收中断而无法令其接收器继续接收,则被控器便可箝住则被控器便可箝住SCLSCL线为低电平,使主控发送器处于等待状态,线为低电平,使主控发送器处于等待状态,直到被控器处理完接收中断后,再释放直到被控器处理完接收中断后,再释放SCLSCL线。

      线 第第8 8章单片机系统扩展及接口技术章单片机系统扩展及接口技术v利用利用SDASDA线进行数据传输时,线进行数据传输时,发送器发送器每发完一个数据字节后,都要求每发完一个数据字节后,都要求接收方接收方发发回一个回一个应答信号应答信号但与应答信号相对应的但与应答信号相对应的时钟仍由主控器时钟仍由主控器在在SCLSCL线上产生,因线上产生,因此主控发送器必须在被控接收器发送应答信号前,预先释放对此主控发送器必须在被控接收器发送应答信号前,预先释放对SDASDA线的控制,线的控制,以便主控器对以便主控器对SDASDA线上应答信号的检测线上应答信号的检测v应答信号在第应答信号在第9 9个时钟位上出现,接收器在个时钟位上出现,接收器在SDASDA线上输出低电平为应答信号线上输出低电平为应答信号((A A),输出高电平为非应答信号(),输出高电平为非应答信号(A A)时钟信号以及应答和非应答信号间)时钟信号以及应答和非应答信号间的关系如图的关系如图8-148-14所示 第第8 8章单片机系统扩展及接口技术章单片机系统扩展及接口技术v在主控器发送数据时,被控器接收完一个数据字节后都要向主控器发回一个在主控器发送数据时,被控器接收完一个数据字节后都要向主控器发回一个应答信号(应答信号(A A),主控器据此便可进行下一字节的发送。

      但如果被控器由于某),主控器据此便可进行下一字节的发送但如果被控器由于某种原因需要进行其他处理而无法继续接收种原因需要进行其他处理而无法继续接收SDASDA线上数据时,线上数据时,便可向便可向SDASDA线输出线输出一个非应答信号(一个非应答信号(A A),使),使SDASDA线保持高电平,主控器据此便可产生一个停止线保持高电平,主控器据此便可产生一个停止信号来终止信号来终止SDASDA线上的数据传输线上的数据传输v当主控器作为接收器接收被控器送来的最后一个数据时,必须给被控器发送当主控器作为接收器接收被控器送来的最后一个数据时,必须给被控器发送一个一个非应答信号(非应答信号(A A),),令被控器释放令被控器释放SDASDA线,以便主控器可以发送停止信号线,以便主控器可以发送停止信号来结束数据的传输来结束数据的传输v在任何时刻总线上只有一个主控器件(主节点)实现总线的控制操作,对总在任何时刻总线上只有一个主控器件(主节点)实现总线的控制操作,对总线上的其他节点寻址,分时实现点点的数据传送线上的其他节点寻址,分时实现点点的数据传送v总线上每个节点都有一个固定的节点地址总线上每个节点都有一个固定的节点地址。

      第第8 8章单片机系统扩展及接口技术章单片机系统扩展及接口技术vI I2 2C C总线上的单片机都可以成为主节点,其器件地址由软件给定,总线上的单片机都可以成为主节点,其器件地址由软件给定,存放在存放在I I2 2C C总线的地址寄存器中,称为主器件的从地址总线的地址寄存器中,称为主器件的从地址v在在I I2 2C C总线的多主系统中,单片机作为从节点时,其从地址才有总线的多主系统中,单片机作为从节点时,其从地址才有意义v数据字节传送完后,被控接收器发回一个非应答信号(高电平数据字节传送完后,被控接收器发回一个非应答信号(高电平有效),主控器据此发送停止信号,以结束这次数据的传输有效),主控器据此发送停止信号,以结束这次数据的传输v但是,如果主机仍希望在总线上通信,它可以产生重复的起始但是,如果主机仍希望在总线上通信,它可以产生重复的起始信号(信号(Sr)和寻址另一个从机,而不是首先产生一个停止信号和寻址另一个从机,而不是首先产生一个停止信号 I2C总线模拟硬件接口软件设计总线模拟硬件接口软件设计 AT89S51单片机单片机没有没有IIC接口接口,在外接,在外接IIC接口的芯片时,接口的芯片时,AT89S51单片机必须用软件模拟单片机必须用软件模拟IIC时序,产生时序,产生IIC总线的起始信总线的起始信号、结束信号等。

      首先可定义号、结束信号等首先可定义P1口任意两个引脚作为单片机口任意两个引脚作为单片机I2C总线的总线的SCL和和SDA,然后再编程实现,然后再编程实现I2C功能下面介绍一个主方功能下面介绍一个主方式下的虚拟式下的虚拟I2C总线总线软件包若若AT89s51单片机的系统时钟为单片机的系统时钟为12Mhz,,1个周期为个周期为1us,则,则 I2C总线总线起始信号起始信号子程序子程序 启动启动I2C总线子程序总线子程序 START: SETB SDA NOP SETB SCL ;起始条件建立时间大于起始条件建立时间大于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 ;保证一个终止信号和起始信号的空闲时间大于保证一个终止信号和起始信号的空闲时间大于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 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 ;判断数据位;判断数据位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 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 ACCIWBLOOP: 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 ;占用;占用 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 、、发送数据缓冲发送数据缓冲区区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 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 ;发送器件从地址;发送器件从地址 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 ;最后一字节发非应答位;最后一字节发非应答位 RETRDN: LCALL STOP ;并结束总线;并结束总线 RETSACK: LCALL MACK ;发应答信号;发应答信号 INC R1 SJMP RDN1a.a.如何区分向随机读如何区分向随机读/ /写?还是向指定地址读写?还是向指定地址读/ /写?写?b. b. 读读N N个字节的格式:个字节的格式:SSLA0ASubsASrSLA1AData0A.......DataN/AP SmartCardSmartCard AT24C**接触式IC卡q所谓接触式IC卡就是在使用时,通过有形的金属电极触点将卡的集成电路与外部接口电路直接接触连接,提供集成电路工作的电源并进行数据交换的IC卡。

      其特点是在卡的表面有符合ISO7816标准的多个金属触点 SmartCardSmartCard 接触式IC卡的基本构成 q接触式IC 卡的实际构成可分为: 半导体芯片、电极模片、塑料基片 SmartCardSmartCard接触式IC卡的工作原理q接触式接触式ICIC卡是如何获取工作电压的?卡是如何获取工作电压的? 接触式IC卡通过其表面的金属电极触点将卡的集成电路与外部接口电路直接接触连接,由外部接口电路提供卡内集成电路工作的电源q接触式接触式ICIC卡如何与读写器交换数据的?卡如何与读写器交换数据的? 接触式IC卡通过其表面的金属电极触点将卡的集成电路与外部接口电路直接接触连接,通过串行方式(IIC总线)与读写器交换数据 SmartCardSmartCard触点功能定义 SmartCardSmartCard触点辩识 AT24CAT24C系列系列IICIIC总线接口总线接口EEPROMEEPROMAT24C01的内部的内部RAM为为128字节,有多种封装形式,下字节,有多种封装形式,下图为图为双列直插式,双列直插式,其中其中WP引脚:引脚:写保护,当写保护,当wp接地,接地,可以正常读可以正常读/写;当写;当wp接电源时,可以对接电源时,可以对整个芯片整个芯片进行进行读操作读操作,但,但不能写。

      不能写AT24C01的地址:写地址(的地址:写地址(0A0H)和读地址和读地址(0A1H)1010A2A1A0R/W在在IIC总线上,最多可以接总线上,最多可以接多少多少片片AT24C01? AT24C01AT24C01的的字节写字节写SSLA 0ADATAAPAT24C01AT24C01的片内的片内RAMRAM共共128128个字节,对于个字节,对于AT24C01AT24C01的写操作的写操作分为分为字节写字节写和和页写字节写就是向字节写就是向AT24C01AT24C01的的随机单元随机单元写入数据,写入数据,格式如下:格式如下:a.在字节写模式下,主器件发送起始命令、从器件地在字节写模式下,主器件发送起始命令、从器件地址(址(R/W=0)给给AT24C01,,AT24C01产生应答信号后,主器产生应答信号后,主器件发送数据给件发送数据给AT24C01,,AT24C01收到数据后,收到数据后,AT24C01产生产生应答信号,应答信号,主器件主器件产生停止信号后,产生停止信号后,AT24C01开始内部数开始内部数据的擦写,即将刚才收到的数据由据的擦写,即将刚才收到的数据由页写缓冲区页写缓冲区保存到保存到AT24C01内内地址寄存器地址寄存器所指的单元。

      所指的单元在擦写过程中不再响在擦写过程中不再响应主器件的任何请求应主器件的任何请求 AT24C01AT24C01的页写的页写SSLA 0ASUBSADATA0A……DATA7APAT24C01的的页写页写操作中,可以操作中,可以一次写入一次写入8 8个字节个字节,,AT24C01AT24C01内部的内部的页页写缓冲区共写缓冲区共8 8个单元个单元,,AT24C01AT24C01一次收到的一次收到的8 8个数据就先放在个数据就先放在缓冲区内,等收到停止信号后,再开始内部数缓冲区内,等收到停止信号后,再开始内部数据的擦写,据的擦写,页写的格式如下:页写的格式如下:页写页写和和字节写字节写的的不同不同在于传送在于传送一个字节一个字节后不发送停止后不发送停止信号主器件发送信号主器件发送最多最多8个数据个数据主器件每发送完一个主器件每发送完一个字节,字节,AT24C01产生一个应答信号,片内的地址计数产生一个应答信号,片内的地址计数器自动+器自动+1,并在主器件产生停止信号后,开始内部数,并在主器件产生停止信号后,开始内部数据的擦写,在擦写的过程中不再响应主器件的任何请据的擦写,在擦写的过程中不再响应主器件的任何请求。

      求 AT24C01AT24C01的页写的页写a.如果在一次写过程中,写的如果在一次写过程中,写的字节数超过页字节的数目字节数超过页字节的数目,,那么就会将前面的覆盖掉例如写那么就会将前面的覆盖掉例如写9个个data7data6data5data4data3data2data1data8b.b.在在写的过程写的过程中,中,EEPROMEEPROM芯片会把接收到的数据暂时芯片会把接收到的数据暂时保存到保存到页写缓冲区页写缓冲区中,等操作结束(中,等操作结束(stop)stop)后,后,EEPROMEEPROM芯片不会再响应其它任何操作,芯片不会再响应其它任何操作,唯一要做唯一要做的就是将的就是将页页寄存器中寄存器中的数据保存到芯片内部的的数据保存到芯片内部的RAMRAM AT24C01AT24C01的的读操作读操作SSLA 1ADATANACKPAT24C01AT24C01的读操作可以分为的读操作可以分为::随机读随机读、、选择读选择读和和连续读连续读三种方式三种方式随机读随机读就是就是AT24C01AT24C01的的地址计数器地址计数器指向哪个指向哪个单元,就从哪个单元读取数据如下:单元,就从哪个单元读取数据。

      如下:选择性读选择性读:允许主器件对寄存器的:允许主器件对寄存器的任意字节任意字节进行读操作进行读操作主器件首先通过发送主器件首先通过发送起始信号、起始信号、从器件地址和它想读取从器件地址和它想读取的字节数据的的字节数据的子地址子地址执行一个伪写操作,在执行一个伪写操作,在AT24WC01应答之后,主器件重新发送应答之后,主器件重新发送起始信号起始信号和和从器件读地址从器件读地址,,AT24WC01响应并发送响应并发送应答信号应答信号和一个和一个8 位数据,主器位数据,主器件发送非应答信号并产生一个停止信号件发送非应答信号并产生一个停止信号SSLA0ASubsASrSLA1AData/AP AT24C01AT24C01的的连续读操作连续读操作AT24C01AT24C01的的随机读随机读和和选择性选择性读,都是读取读,都是读取一个字节一个字节AT24C01AT24C01的的连续读连续读就是就是AT24C01AT24C01从一个从一个具体地址具体地址(地址计(地址计数器=数器=具体地址具体地址)开始连续)开始连续读出读出n n个数据,每读出一个个数据,每读出一个数据,地址计数器+数据,地址计数器+1,1,当地址计数器的值到达最大值当地址计数器的值到达最大值0FFH0FFH后,如果再读取数据,地址计数器的值就反转为后,如果再读取数据,地址计数器的值就反转为00H00H。

      连续读的格式如下:连续读的格式如下: 实验:基于实验:基于ICIC卡的读写实验卡的读写实验一、一、 实验目的实验目的1 1、熟悉、熟悉ICIC卡(卡(I I²C C存储卡的简称)工作原理及存储卡的简称)工作原理及I I²C C总线结总线结构2 2、利用单片机的、利用单片机的I/OI/O口线产生口线产生I I²C C总线总线SCLSCL、、SDASDA二、二、 实验内容实验内容本实验以本实验以AT24C01AT24C01卡为例,根据卡为例,根据AT24C01AT24C01卡的读写时序,卡的读写时序,把单片机内把单片机内RAMRAM的的128128个单元的数据都写到个单元的数据都写到AT24C01AT24C01中去,中去,然后把写入然后把写入ICIC卡的数据再读到数码管上显示卡的数据再读到数码管上显示三、三、 实验说明实验说明 AT24C01 AT24C01卡是一种卡是一种E E2 2ROMROM存储卡,容量为存储卡,容量为128128××8 8位,采位,采用用I I2 2C C总线结构,其卡的结构与引脚排列如下总线结构,其卡的结构与引脚排列如下:: 实验:基于实验:基于ICIC卡的读写实验卡的读写实验四、四、 实验原理图实验原理图MCS-51P3.1P3.0SDASCLvcc 实验:基于实验:基于ICIC卡的读写实验卡的读写实验 实验:基于实验:基于ICIC卡的读写实验卡的读写实验五、五、 实验步骤实验步骤(1) IC(1) IC卡接口区的卡接口区的INIINI插孔接插孔接P1.0P1.0,,INIINI作为作为ICIC卡识卡识别信号,发光二极管别信号,发光二极管INIINI作为作为ICIC卡插入指示灯,灯亮卡插入指示灯,灯亮表示表示ICIC卡插入正确。

      卡插入正确2) IC(2) IC卡接口区的卡接口区的WRIWRI插孔接插孔接P1.1P1.1,,WRIWRI作为作为ICIC写信写信号,发光二极管号,发光二极管WRIWRI作为作为ICIC卡写信号指示灯,灯亮表卡写信号指示灯,灯亮表示示ICIC卡正在写卡正在写3) IC(3) IC卡接口区的卡接口区的RDIRDI插孔接插孔接P1.2P1.2,,RDIRDI作为作为ICIC读信读信号,发光二极管号,发光二极管RDIRDI作为作为ICIC卡读信号指示灯,灯亮表卡读信号指示灯,灯亮表示示ICIC卡正在读卡正在读4) IC(4) IC卡接口区的卡接口区的SDA_01SDA_01插孔接插孔接P3.1P3.1,,ICIC卡区的卡区的SCL_01SCL_01插孔接插孔接P3.0P3.0 实验:基于实验:基于ICIC卡的读写实验卡的读写实验(5) (5) 串行显示接口区的串行显示接口区的SDA_04SDA_04连接连接P3.1P3.1,,SCL_04SCL_04连接连接P3.0P3.0,,BITBIT连数码管显示区的连数码管显示区的BITBIT,,CODECODE连到数码管显示连到数码管显示区的区的CODECODE,,P1.3P1.3接接10HZ10HZ脉冲。

      脉冲2 2、调试运行程序、调试运行程序24C01.ASM24C01.ASM3 3、、查看运行结果:查看运行结果:如果读写正确,系统数码管显示如果读写正确,系统数码管显示““ICoICoXXXXo oXXXX””指示灯指示灯RDIRDI、、WRIWRI同时点亮,前面同时点亮,前面XXXX为地址,为地址,显示缓冲区为显示缓冲区为7bh7bh和和7ch7ch,后面为数据,显示缓冲区为,后面为数据,显示缓冲区为78h和和79h否则指示灯否则指示灯RDIRDI、、WRIWRI同时熄灭同时熄灭 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.