版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
iic总线♣.iic串行总线:是Philips公司提出的同一板内芯片间串行总线。是近距离的通信。♣.iic串行总线:仅有两根线:SDA(数据线)和SCL(时钟线)。♣.iic总线的特点:半双工、同步、多主总线、串行。♣.iic串行总线的连接电路:节点1节点2iic总线♣.SDA(数据线)和SCL(时钟线)都是集电极开路或漏极开路结构的,只能输出“0”,不能输出“1”,都必须接上拉电阻。♣.SDA和SCL是双向的,(
为什么?)当需要输入数据时,将一个读数据用的输入端接在输出端。iic总线♣.SDA(数据线)和SCL(时钟线)都具有“线与”功能。Y10iic总线的有关概念♣.主机和从机:总线上可以有一个或多个主机,总线运行由主机控制。主机是指启动数据的传送(发起始信号)、发出时钟信号、传送结束时发出终止信号的器件。通常,主机由各种单片机或其他微处理器充当。被主机寻访的器件叫从机,它可以是各种单片机或其他微处理器,也可以是其他器件,如存储器、LED或LCD驱动器、A/D或D/A转换器、时钟日历器件等。♣.发送器和接收器:发送数据的一方称为发送器,而接收数据的一方称为接收器。♣.主发送器:iic总线的有关概念♣.主接收器:♣.从发送器:♣.从接收器:♣.当总线空闲时,两根线均为高电平。♣.在标准I2C普通模式下,数据的传输率为100Kbps,高速模式下可达400Kbps。连接的器件越多,电容值越大,总线上允许的器件数以总线上的电容量不超过400pF为限。
I2C总线的SDA和SCL是双向的
均通过上拉电阻接正电源♣.IIC总线是多主总线,但是任一时刻只有一个主机在占用总线,那么它们的仲裁机制是怎样的呢?♣.SCL线的时钟同步:SCL由于具有线“与”的逻辑功能,即只要有一个节点发送低电平时,总线上就表现为低电平。当所有的节点都发送高电平时,总线才能表现为高电平。正是由于线“与”逻辑功能的原理,当多个节点同时发送时钟信号时,在总线上表现的是统一的时钟信号。这就是SCL的同步原理注意:总线上最终的时钟信号就是仲裁后的结果I2C总线的总线仲裁
♣.SDA线的仲裁,SDA线的仲裁也是建立在总线具有线“与”逻辑功能的原理上的。节点在发送1位数据后,比较总线上所呈现的数据与自己发送的是否一致。是,继续发送;否则,退出竞争。SDA线的仲裁可以保证I2C总线系统在多个主节点同时企图控制总线时通信正常进行并且数据不丢失。总线系统通过仲裁只允许一个主节点可以继续占据总线。总结:SDA仲裁和SCL时钟同步是同时进行的。IIC总线的控制信号
开始信号
(主机发送)停止信号(主机发送)确认信号(ACK):“谁接收谁产生”的原则,即总是由接收器产生应答位
非应答信号(NACK):如果接收器在接收完最后一个字节的数据,或者不能再接收更多的数据时,应当产生非应答来通知发送器。发送器如果发现接收器产生了非应答状态,则应当终止发送。起始和终止信号根据I2C总线协议的规定,SCL线为高电平期间,SDA线由高电平向低电平的变化表示起始信号;SCL线为高电平期间,SDA线由低电平向高电平的变化表示终止信号。起始和终止信号如图所示。数据位的有效性I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定。只有在时钟线上的信号为低电平期间,数据线上的高电平或低电工状态才允许变化,如图所示。IIC总线数据传送格式利用IIC总线进行数据传送时,传送的字节数是没有限制的,但是每一个字节必须保证是8位长度。数据传送时,先传送最高位(MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有9位),如图所示:应答时序图数据传送格式在总线的一次数据传送过程中,可以有以下几种组合方式:
主机向从机发送数据,在整个传送过程中数据传送方向不变。
主机在第一个字节后,立即由从机读数据。
在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读/写方向位正好反向。
每个期间内部都有个RAM,RAM地址连续的,且能自动加/减1,被传送数据的存放地址即有第一个数据提供。总线上传送的每个字节后,必须跟一个应答或非应答信号IIC总线的寻址字节
♣.主控制器产生起始条件后,发送的第一个字节为寻址字节,即从器件的地址,从器件的地址格式如下:
♣.其中DA3~DA0位:是IIC总线外围接口器件固有的地址编码,出场时已给定。如IIC接口的EEPROM芯片AT24CXX为1010。4位LED驱动器SAA1064的器件地址为0111。♣.A2A1A0:IIC总线器件的引脚在电路中根据接电源或地来决定。♣.R/W是数据传送方向位,为“0”时表示主机向从机写数据,为“1”时表示主机由从机读数据。♣.主机发送地址时,总线上的每个从机都将这7位地址码与自己的地址进行比较,如果相同,则认为自己正被主机寻址,根据R/W位将自己确定为发送器或接收器。♣.系统中所接同类型的器件的数目:由A2A1A0决定图8-10I2C总线外围扩展示意图在I2C总线上,SDA用于传送有效数据位,其上传输的每位有效数据均对应于SCL线上的一个时钟脉冲。也就是说,只有当SCL线上为高电平时,SDA线上的数据信号才会有效;SCL线为低电平(SCL=0)时,SDA线上的数据信号无效。因此,只有当SCL线为低电平(SCL=0)时,SDA线上的电平状态才允许发生变化(见图8-12)。在I2C总线上每传输一位数据都有一个时钟脉冲相对应。注意这里的时钟脉冲不一定是周期性的,它的时钟间隔可以不同。总线空闲时,SDA和SCL都必须保持高电平状态,关闭I2C总线时才使SCL箝位在低电平。只有当总线处于“空闲”状态时,数据传输才能被初始化。在数据传输期间,只要SCL为高电平,数据线SDA就必须保持稳定。只有在时钟线为低电平时,才允许数据线上的电平状态变化。在时钟线保持高电平期间,数据线出现下降沿为启动信号、上升沿为停止信号,启动和停止信号都由主机产生。I2C总线上传输的数据和地址字节均为8位,且高位在前,低位在后。I2C总线以起始信号为启动信号,接着传输的是地址和数据字节,数据字节是没有限制的,但每个字节后都必须跟随一个应答位,全部数据传输完毕后,以终止信号结尾。如前所述,SCL线为低电平时,SDA线上数据就被停止传送。SCL线的这一特性十分有用:当接收器接收到一个数据/地址字节后,需要进行其他工作而无法立即接收下一个字节时,接收器便可向SCL线输出低电平而箝住SCL(SCL=0),迫使SDA线处于等待状态,直到接收器准备好接收新的数据/地址字节时,再释放时钟线SCL(SCL)=1),使SDA线上数据传输得以继续进行。例如,当被控接收器在A点(见图8-13)接收完主控器发来的一个数据字节时,若被控器需要处理接收中断而无法令其接收器继续接收,则被控器便可箝住SCL线为低电平,使主控发送器处于等待状态,直到被控器处理完接收中断后,再释放SCL线。利用SDA线进行数据传输时,发送器每发完一个数据字节后,都要求接收方发回一个应答信号。但与应答信号相对应的时钟仍由主控器在SCL线上产生,因此主控发送器必须在被控接收器发送应答信号前,预先释放对SDA线的控制,以便主控器对SDA线上应答信号的检测。应答信号在第9个时钟位上出现,接收器在SDA线上输出低电平为应答信号(A),输出高电平为非应答信号(A)。时钟信号以及应答和非应答信号间的关系如图8-14所示。在主控器发送数据时,被控器接收完一个数据字节后都要向主控器发回一个应答信号(A),主控器据此便可进行下一字节的发送。但如果被控器由于某种原因需要进行其他处理而无法继续接收SDA线上数据时,便可向SDA线输出一个非应答信号(A),使SDA线保持高电平,主控器据此便可产生一个停止信号来终止SDA线上的数据传输。当主控器作为接收器接收被控器送来的最后一个数据时,必须给被控器发送一个非应答信号(A),令被控器释放SDA线,以便主控器可以发送停止信号来结束数据的传输。在任何时刻总线上只有一个主控器件(主节点)实现总线的控制操作,对总线上的其他节点寻址,分时实现点点的数据传送。总线上每个节点都有一个固定的节点地址。I2C总线上的单片机都可以成为主节点,其器件地址由软件给定,存放在I2C总线的地址寄存器中,称为主器件的从地址。在I2C总线的多主系统中,单片机作为从节点时,其从地址才有意义。数据字节传送完后,被控接收器发回一个非应答信号(高电平有效),主控器据此发送停止信号,以结束这次数据的传输。但是,如果主机仍希望在总线上通信,它可以产生重复的起始信号(Sr)和寻址另一个从机,而不是首先产生一个停止信号。I2C总线模拟硬件接口软件设计AT89S51单片机没有IIC接口,在外接IIC接口的芯片时,AT89S51单片机必须用软件模拟IIC时序,产生IIC总线的起始信号、结束信号等。首先可定义P1口任意两个引脚作为单片机I2C总线的SCL和SDA,然后再编程实现I2C功能。下面介绍一个主方式下的虚拟I2C总线软件包。若AT89s51单片机的系统时钟为12Mhz,1个周期为1us,则I2C总线起始信号子程序启动I2C总线子程序START:SETBSDANOPSETBSCL;起始条件建立时间大于4.7us
NOPNOPNOPNOPNOPCLRSDA
NOP;起始条件锁定时大于4usNOPNOPNOPNOPCLRSCL;钳住总线,准备发数据NOPRET结束信号子程序;结束总线子程序STOP:CLRSDANOPSETBSCL;发送结束条件的时钟信号NOP;结束总线时间大于4usNOPNOPNOPNOPSETBSDA;结束总线NOP;保证一个终止信号和起始信号的空闲时间大于4.7usNOPNOPNOPNOPRET发送应答信号子程序MACK:CLRSDA ;将SDA置0(由接收器发送,SDA稳定后)NOPNOPSETBSCL
NOP ;保持数据时间,即SCL为高时间大于4.7sNOPNOPNOPNOPCLRSCLNOPNOPRET发送非应答信号MNACK:SETB SDA ;将SDA置1
NOPNOPSETB SCL
NOPNOP;保持数据时间,即SCL为高时间大于4.7sNOPNOPNOPCLRSCLNOPNOPRET检查应答位子程序;返回值,ACK=1时表示有应答(ACKBIT20H)CACK:SETBSDANOPNOPSETBSCLCLRACKNOPNOPMOVC,SDAJCCENDSETBACK;判断应答位CEND:NOPCLRSCLNOPRET发送单字节子程序;字节数据放入ACC
WRBYTE:MOVR0,#08HWLP:RLCA ;取数据位JCWR1SJMPWR0 ;判断数据位WLP1:DJNZR0,WLPNOPRETWR1:SETBSDA;发送1NOPSETBSCLNOPNOPNOPNOPNOPNOPNOPCLRSCLSJMPWLP1
WR0:CLRSDA;发送0NOPSETBSCLNOPNOPNOPNOPNOPCLRSCLSJMPWLP1读取字节子程序;读出的值在ACC内;每取一字节要发送一个应答/非应答信号RDBYTE:MOVR0,#08HRLP:SETBSDA;从机释放总线NOPSETBSCL ;时钟线为高(主机SCL早已置高),接收数据位NOPNOPMOVC,SDA ;读取数据位MOVA,R2CLRSCL ;将SCL拉低,时间大于4.7sRLCA ;进行数据位的处理MOVR2,ANOPNOPNOPDJNZR0,RLP ;未够8位,再来一次RET无子地址器件写字节数据;入口参数:数据为ACC、器件从地址SLA
;占用:A、R0、CYIWRBYTE:PUSHACCIWBLOOP:LCALLSTART ;起动总线MOVA,SLALCALLWRBYTE ;发送器件从地址LCALLCACKJNBACK,RETWRB ;无应答则跳转POPACC ;写数据LCALLWRBYTELCALLCACKLCALLSTOPRETRETWRB:POPACCLCALLSTOPRET仅仅一个字节,这叫随机写无子地址器件读字节数据;入口参数:器件从地址SLA;出口参数:数据为ACC;占用A、R0、R2、CYIRDBYTE: LCALLSTART MOVA,SLA ;发送器件从地址 INCA LCALLWRBYTE LCALLCACK JNBACK,RETRDB LCALLRDBYTE ;进行读字节操作 LCALLMNACK ;发送非应信号RETRDB: LCALLSTOP ;结束总线 RET仅仅一个字节,这叫随机读向器件指定子地址写N个数据;入口参数:器件从地址SLA、器件子地址SUBA
、发送数据缓冲区MTD、发送字节数NUMBYTE;占用:A、R0、R1、R3、CYIWRNBYTE:MOVA,NUMBYTEMOVR3,ALCALLSTART;起动总线MOVA,SLALCALLWRBYTE;发送器件从地址LCALLCACKJNBACK,RETWRN;无应答则退出MOVA,SUBA;指定子地址LCALLWRBYTELCALLCACKMOVR1,#MTDWRDA:MOVA,@R1LCALLWRBYTE ;开始写入数据LCALLCACKJNBACK,IWRNBYTE
;无应答重新开始
INCR1DJNZR3,WRDA
;判断写完没有RETWRN:LCALLSTOPRET向器件指定子地址读取N个数据;入口参数:器件从地址SLA、器件子地址SUBA、接收字节数NUMBYTE;出口参数:接收数据缓冲区MTD;占用:A、R0、R1、R2、R3、CYIRDNBYTE: MOVR3,NUMBYTE LCALLSTART MOVA,SLA LCALLWRBYTE ;发送器件从地址 LCALLCACK JNBACK,RETRDN MOVA,SUBA ;指定子地址 LCALLWRBYTE LCALLCACK LCALLSTART ;重新起动总线 MOVA,SLA INCA ;准备进行读操作 LCALLWRBYTE LCALLCACK JNBACK,IRDNBYTE MOVR1,#MRD向器件指定子地址读取N个数据RDN1: LCALLRDBYTE;读操作开始 MOV@R1,A DJNZR3,SACK LCALLMNACK ;最后一字节发非应答位RETRDN: LCALLSTOP ;并结束总线 RETSACK: LCALLMACK ;发应答信号 INCR1 SJMPRDN1a.如何区分向随机读/写?还是向指定地址读/写?b.读N个字节的格式:SSLA0ASubsASrSLA1AData0A.......DataN/APAT24C**接触式IC卡所谓接触式IC卡就是在使用时,通过有形的金属电极触点将卡的集成电路与外部接口电路直接接触连接,提供集成电路工作的电源并进行数据交换的IC卡。其特点是在卡的表面有符合ISO7816标准的多个金属触点。
接触式IC卡的基本构成
接触式IC卡的实际构成可分为:
半导体芯片、电极模片、塑料基片接触式IC卡的工作原理接触式IC卡是如何获取工作电压的?接触式IC卡通过其表面的金属电极触点将卡的集成电路与外部接口电路直接接触连接,由外部接口电路提供卡内集成电路工作的电源。接触式IC卡如何与读写器交换数据的?接触式IC卡通过其表面的金属电极触点将卡的集成电路与外部接口电路直接接触连接,通过串行方式(IIC总线)与读写器交换数据。触点功能定义触点辩识AT24C系列IIC总线接口EEPROMAT24C01的内部RAM为128字节,有多种封装形式,下图为双列直插式,其中WP引脚:写保护,当wp接地,可以正常读/写;当wp接电源时,可以对整个芯片进行读操作,但不能写。AT24C01的地址:写地址(0A0H)和读地址(0A1H)1010A2A1A0R/W在IIC总线上,最多可以接多少片AT24C01?AT24C01的字节写SSLA0ADATAAPAT24C01的片内RAM共128个字节,对于AT24C01的写操作分为字节写和页写。字节写就是向AT24C01的随机单元写入数据,格式如下:a.在字节写模式下,主器件发送起始命令、从器件地址(R/W=0)给AT24C01,AT24C01产生应答信号后,主器件发送数据给AT24C01,AT24C01收到数据后,AT24C01产生应答信号,主器件产生停止信号后,AT24C01开始内部数据的擦写,即将刚才收到的数据由页写缓冲区保存到AT24C01内地址寄存器所指的单元。在擦写过程中不再响应主器件的任何请求。AT24C01的页写SSLA0ASUBSADATA0A……DATA7APAT24C01的页写操作中,可以一次写入8个字节,AT24C01内部的页写缓冲区共8个单元,AT24C01一次收到的8个数据就先放在缓冲区内,等收到停止信号后,再开始内部数据的擦写,页写的格式如下:页写和字节写的不同在于传送一个字节后不发送停止信号。主器件发送最多8个数据。主器件每发送完一个字节,AT24C01产生一个应答信号,片内的地址计数器自动+1,并在主器件产生停止信号后,开始内部数据的擦写,在擦写的过程中不再响应主器件的任何请求。AT24C01的页写a.如果在一次写过程中,写的字节数超过页字节的数目,那么就会将前面的覆盖掉。例如写9个data7data6data5data4data3data2data1data8b.在写的过程中,EEPROM芯片会把接收到的数据暂时保存到页写缓冲区中,等操作结束(stop)后,EEPROM芯片不会再响应其它任何操作,唯一要做的就是将页寄存器中的数据保存到芯片内部的RAM。AT24C01的读操作SSLA1ADATANACKPAT24C01的读操作可以分为:随机读、选择读和连续读三种方式。随机读就是AT24C01的地址计数器指向哪个单元,就从哪个单元读取数据。如下:选择性读:允许主器件对寄存器的任意字节进行读操作。主器件首先通过发送
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乡镇图书馆年度工作计划
- 广西师大附中工会某年度工作计划
- 年小学寒假期间工作计划范文
- 关于常规工作计划
- 设备管理人员工作计划
- 市第一中学委员会2024年工作计划
- 计划生育专干职责
- 乡卫生院2024年医疗质量管理工作计划
- 标准日本语教学计划
- 2024医院护士工作计划与目标
- GB 5908-2024阻火器
- 信息安全意识培训课件
- Python试题库(附参考答案)
- 小学三年级语文上册课外阅读叶圣陶鲤鱼的遇险
- 2024年浙江省中考英语试题卷(含答案解析)
- 小学作文稿纸语文作文作业格子模板(可打印编辑)
- 中国药物性肝损伤诊治指南(2023年版)解读
- 标准英文版录用信(Letterofoffer)三则
- (完整版)CMMI3级--EPG的问题及答案
- IEC 61646 2008中文版格式修整完成
- 同城票据结算业务
评论
0/150
提交评论