收藏 分销(赏)

总线接口的扩展.ppt

上传人:s4****5z 文档编号:14008032 上传时间:2026-05-26 格式:PPT 页数:147 大小:6.60MB 下载积分:10 金币
下载 相关 举报
总线接口的扩展.ppt_第1页
第1页 / 共147页
总线接口的扩展.ppt_第2页
第2页 / 共147页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第二章 总线接口的扩展,总线介绍,微机中总线一般有内部总线、系统总线和外部总线。内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连;,而系统总线是微机中各插件板与系统板之间的总线,用于插件板一级的互连;,外部总线则是微机和外部设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,它用于设备一级的互连。,内部总线,1,SPI,总线 串行外围设备接口,SPI,(,serial peripheral interface,)总线技术是,Motorola,公司推出的一种同步串行接口。,Motorola,公司生产的绝大多数,MCU,(微控制器)都配有,SPI,硬件接口,如,68,系列,MCU,。,SPI,总线是一种三线同步总线,因其硬件功能很强,所以,与,SPI,有关的软件就相当简单,使,CPU,有更多的时间处理其他事务。,2.I2C,总线,I2C,(,Inter-IC,)总线,10,多年前由,Philips,公司推出,是近年来在微电子通信控制领域广泛采用的一种新型总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简化,器件封装形式小,通信速率较高等优点。在主从通信中,可以有多个,I2C,总线器件同时接到,I2C,总线上,通过地址来识别通信对象。,系统总线,1,ISA,总线,ISA,(,industrial standard architecture,)总线标准是,IBM,公司,1984,年为推出,PC/AT,机而建立的系统总线标准,所以也叫,AT,总线。它是对,XT,总线的扩展,以适应,8/16,位数据总线要求。它在,80286,至,80486,时代应用非常广泛,以至于现在奔腾机中还保留有,ISA,总线插槽。,ISA,总线有,98,只引脚。,2,EISA,总线,EISA,总线是,1988,年由,Compaq,等,9,家公司联合推出的总线标准。它是在,ISA,总线的基础上使用双层插座,在原来,ISA,总线的,98,条信号线上又增加了,98,条信号线,也就是在两条,ISA,信号线之间添加一条,EISA,信号线。在实用中,,EISA,总线完全兼容,ISA,总线信号。,3,VESA,总线,VESA,(,video electronics standard association,)总线是,1992,年由,60,家附件卡制造商联合推出的一种局部总线,简称为,VL(VESA local bus),总线。它的推出为微机系统总线体系结构的革新奠定了基础。该总线系统考虑到,CPU,与主存和,Cache,的直接相连,通常把这部分总线称为,CPU,总线或主总线,其他设备通过,VL,总线与,CPU,总线相连,所以,VL,总线被称为局部总线。它定义了,32,位数据线,且可通过扩展槽扩展到,64,位,使用,33MHz,时钟频率,最大传输率达,132MB/s,,可与,CPU,同步工作。是一种高速、高效的局部总线,可支持,386SX,、,386DX,、,486SX,、,486DX,及奔腾微处理器。,PCI,总线,PCI,(,peripheral component interconnect,)总线是当前最流行的总线之一,它是由,Intel,公司推出的一种局部总线。它定义了,32,位数据总线,且可扩展为,64,位。,PCI,总线主板插槽的体积比原,ISA,总线插槽还小,其功能比,VESA,、,ISA,有极大的改善,支持突发读写操作,最大传输速率可达,132MB/s,,可同时支持多组外围设备。,PCI,局部总线不能兼容现有的,ISA,、,EISA,、,MCA,(,micro channel architecture,)总线,但它不受制于处理器,是基于奔腾等新一代微处理器而发展的总线。,5,Compact PCI,以上所列举的几种系统总线一般都用于商用,PC,机中,在计算机系统总线中,还有另一大类为适应工业现场环境而设计的系统总线,比如,STD,总线、,VME,总线、,PC/104,总线等。,Compact PCI,的意思是“坚实的,PCI”,,是当今第一个采用无源总线底板结构的,PCI,系统,是,PCI,总线的电气和软件标准加欧式卡的工业组装标准,是当今最新的一种工业计算机标准。,Compact PCI,是在原来,PCI,总线基础上改造而来,它利用,PCI,的优点,提供满足工业环境应用要求的高性能核心系统,同时还考虑充分利用传统的总线产品,如,ISA,、,STD,、,VME,或,PC/104,来扩充系统的,I/O,和其他功能,外部总线,1,RS-232-C,总线,RS-232-C,是美国电子工业协会,EIA,(,Electronic Industry Association,)制定的一种串行物理接口标准。,RS,是英文“推荐标准”的缩写,,232,为标识号,,C,表示修改次数。,RS-232-C,总线标准设有,25,条信号线,包括一个主通道和一个辅助通道,在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。,RS-232-C,标准规定的数据传输速率为每秒,50,、,75,、,100,、,150,、,300,、,600,、,1200,、,2400,、,4800,、,9600,、,19200,波特。,RS-232-C,标准规定,驱动器允许有,2500pF,的电容负载,通信距离将受此电容限制,例如,采用,150pF/m,的通信电缆时,最大通信距离为,15m,;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是,RS-232,属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于,20m,以内的通信。,2,RS-485,总线 在要求通信距离为几十米到上千米时,广泛采用,RS-485,串行总线标准。,RS-485,采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至,200mV,的电压,故传输信号能在千米以外得到恢复。,RS-485,采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。,RS-485,用于多点互连时非常方便,可以省掉许多信号线。应用,RS-485,可以联网构成分布式系统,其允许最多并联,32,台驱动器和,32,台接收器。,3,IEEE-488,总线 上述两种外部总线是串行总线,而,IEEE-488,总线是并行总线接口标准。,IEEE-488,总线用来连接系统,如微计算机、数字电压表、数码显示器等设备及其他仪器仪表均可用,IEEE-488,总线装配起来。它按照位并行、字节串行双向异步方式传输信号,连接方式为总线方式,仪器设备直接并联于总线上而不需中介单元,但总线上最多可连接,15,台设备。最大传输距离为,20,米,信号传输速度一般为,500KB/s,,最大传输速度为,1MB/s,。,4,USB,总线 通用串行总线,USB,(,universal serial bus,)是由,Intel,、,Compaq,、,Digital,、,IBM,、,Microsoft,、,NEC,、,Northern Telecom,等,7,家世界著名的计算机和通信公司共同推出的一种新型接口标准。它基于通用连接技术,实现外设的简单快速连接,达到方便用户、降低成本、扩展,PC,连接外设范围的目的。它可以为外设提供电源,而不像普通的使用串、并口的设备需要单独的供电系统。另外,快速是,USB,技术的突出特点之一,,USB,的最高传输率可达,12Mbps,比串口快,100,倍,比并口快近,10,倍,而且,USB,还能支持多媒体。,由于在消费类电子产品、计算机外设、汽车和工业应用中增加了嵌入式功能,对低成本、高速和高可靠通信介质的要求也不断增长以满足这些应用,其结果是越来越多的处理器和控制器用不同类型的总线集成在一起,实现与,PC,软件、开发系统,(,如仿真器,),或网络中的其它设备进行通信。目前流行的通信一般采用串行或并行模式,而串行模式应用更广泛。,串行通信的优点,串行相比于并行的主要优点是要求的线数较少。,例如,用在汽车工业中的,LIN,串行总线只需要一根线来与从属器件进行通信,,Dallas,公司的,1-Wire,总线只使用一根线来输送信号和电源。较少的线意味着所需要的控制器引脚较少。集成在一个微控制器中的并行总线一般需要,8,条或更多的线,线数的多少取决于设计中地址和数据的宽度,所以集成一个并行总线的芯片至少需要,8,个引脚来与外部器件接口,这增加了芯片的总体尺寸。相反地,使用串行总线可以将同样的芯片集成在一个较小的封装中。,另外,在,PCB,板设计中并行总线需要更多的线来与其它外设接口,使,PCB,板面积更大、更复杂,从而增加了硬件成本。此外,工程师还可以很容易地将一个新器件加到一个串行网络中去,而且不会影响网络中的其它器件。例如,可以很容易地去掉总线上旧器件并用新的来替代,.,串行总线的故障自诊断和调试也非常简单,可以很容易地跟踪网络中一个有故障的器件并用新器件替换而不会干扰网络。但另一方面,并行总线比串行速度快。例如,,Rambus,公司的“,Redwood”,总线速度可高达,6.4GHz,,而最高的串行速度不会超过几个兆赫。,常用总线类型比较,RS-232-C,它是由是美国电子工业协会,/,电信工业协会,(Electronic Industries Association/Telecommunications Industries Association,,,EIA/TIA),在,1969,年公布的通信协议标准。它最初主要用于近距离的,DTE,和,DCE,设备之间的通信。后来被广泛用于计算机的串行接口,(COM1,、,COM2,等,),与终端或外设之间的近地连接标准。该标准在数据传输速率,20Kbps,时,最长的通信距离为,15,米。,EIA/TIA 232,有时又被称作,RS-232-C.,RS(Recommended,Standard),代表推荐标准,(EIA,制定的标准一般都被冠以,RS),,,232,是标识号,,C,代表,RS-232,的最新一次修改。,DTE英文全称Data,Terminal,Equipment,数字终端设备,指一般的终端或是计算机。可能是大、中、小型计算机,也可能是一台只接收数据的打印机,。,DCE,英文全称,Data Circuit-terminating Equipment,,数字通信设备,通常指调制解调器,多路复用器或数字设备。,它们主要是用于异步传输模式中。,它们之间的区别是,DCE,一方提供时钟,,DTE,不提供时钟,但它依靠,DCE,提供的时钟工作。比如,PC,机和,MODEM,之间的连接。,PC,机就是一个,DTE,,,MODEM,是一个,DCE,。,DTE,可以从硬件上区别它的接口为针式,,DCE,的接口为孔式。,DB9,只有,9,根线,遵循,RS232,标准。定义如下:,DTR,DSR-DTE,设备准备好,/DCE,设备准备好。主流控信号。,RTS,CTS-,请求发送,/,清除发送。缺省时是,DCE,向,DTE,发送数据,当,DTE,决定向,DCE,发数据时,先有效,RTS,,表示,DTE,希望向,DCE,发送,一般,DCE,不能马上转换收发状态,,DTE,就通过监测,CTS,是否有效来判断可否发送,这样避免了,DTE,在,DCE,未准备好时发送所导致的数据丢失。全双工时,这两个信号一直有效即可。,接收线信号检出,(Received Line detection-RLSD),用来表示,DCE,已接通通信链路,告知,DTE,准备接收数据。当本地的,MODEM,收到由通信链路另一端(远地)的,MODEM,送来的载波信号时,使,RLSD,信号有效,通知终端准备接收,并且由,MODEM,将接收下来的载波信号解调成数字两数据后,沿接收数据线,RxD,送到终端。此线也叫做数据载波检出,(Data Carrier,dectection,-DCD,)线。,振铃指示,(Ringing-RI),当,MODEM,收到交换台送来的振铃呼叫信号时,使该信号有效(,ON,状态),通知终端,已被呼叫。,采用,Modem(DCE,),和电话网通信时的信号连接,采用专用电话线通信,近距离通信:零,Modem,的最简连线(,3,线制),零,Modem,标准连接,RS232,的电气特性,电气特性,EIA-RS-232C,对电器特性、逻辑电平和各种信号线功能都作了规定。,(1),在,TxD,和,RxD,上:逻辑,1(MARK)=-3V,-15V,逻辑,0(SPACE)=3,15V,(2),在,RTS,、,CTS,、,DSR,、,DTR,和,DCD,等控制线上:信号有效(接通,,ON,状态,正电压),3V,15V,信号无效(断开,,OFF,状态,负电压,)=-3V,-15V,RS232,和,TTL,之间的电平转换,MAX232,MAX232,连线图,双串口电路原理图,TXD,RXD,TXD,RXD,由三极管组成的串口电平转换电路,RS-422,与,RS-485,串行接口标准,RS-422,由,RS-232,发展而来,它是为弥补,RS-232,之不足而提出的。为改进,RS-232,通信距离短、速率低的缺点,,RS-422,定义了一种平衡通信接口,将传输速率提高到,10Mb/s,,传输距离延长到,4000,英尺(速率低于,100kb/s,时),并允许在一条平衡总线上连接最多,10,个接收器。,RS-422,是一种单机发送、多机接收的单向、平衡传输规范,被命名为,TIA/EIA-422-A,标准。,为扩展应用范围,,EIA,又于,1983,年在,RS-422,基础上制定了,RS-485,标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为,TIA/EIA-485-A,标准。由于,EIA,提出的建议标准都是以“,RS”,作为前缀,所以在通讯工业领域,仍然习惯将上述标准以,RS,作前缀称谓。,RS-422,、,RS-485,与,RS-232,不一样,数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为,A,,另一线定义为,B,。,通常情况下,发送驱动器,A,、,B,之间的正电平在,+2,+6V,,是一个逻辑状态,负电平在,-2,-6V,,是另一个逻辑状态。另有一个信号地,C,,在,RS-485,中还有一“使能”端,而在,RS-422,中这是可用可不用的。“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“,1”,与“,0”,的第三态。,接收器也作与发送端相对的规定,收、发端通过平衡双绞线将,AA,与,BB,对应相连,当在收端,AB,之间有大于,+200mV,的电平时,输出正逻辑电平,小于,-200mV,时,输出负逻辑电平。接收器接收平衡线上的电平范围通常在,200mV,至,6V,之间。参见图,RS-422,标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。下图右是典型的,RS-422,四线接口。实际上还有一根信号地线,共,5,根线。下图左是其,DB9,连接器引脚定义。由于接收器采用高输入阻抗和发送驱动器,比,RS232,更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接,10,个节点。即一个主设备(,Master,),其余为从设备(,Salve,),从设备之间不能通信,所以,RS-422,支持点对多的双向通信。,接收器输入阻抗为,4k,,故发端最大负载能力是,104k+100,(终接电阻)。,RS-422,四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(,XON/XOFF,握手)或硬件方式(一对单独的双绞线)。,RS-422,的最大传输距离为,4000,英尺(约,1219,米),最大传输速率为,10Mb/s,。其平衡双绞线的长度与传输速率成反比,在,100kb/s,速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般,100,米长的双绞线上所能获得的最大传输速率仅为,1Mb/s,。,RS-422,需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在,300,米以下不需终接电阻。终接电阻接在传输电缆的最远端。,RS485,由于,RS-485,是从,RS-422,基础上发展而来的,所以,RS-485,许多电气规定与,RS-422,相仿。如都采用平衡传输方式、都需要在传输线上接终接电阻等。,RS-485,可以采用二线与四线方式,二线制可实现真正的多点双向通信。,而采用四线连接时,与,RS-422,一样只能实现点对多的通信,即只能有一个主(,Master,)设备,其余为从设备,但它比,RS-422,有改进,无论四线还是二线连接方式总线上可多接到,32,个设备,.,1,英尺,=0.3048,米,4000,英尺,4000,英尺,RS485/RS422,收发器,半双工的,RS485,网络,全双工的,RS485,网络,SPI,同步外设接口,(SPI),(,Serial Peripheral Interface,)是由摩托罗拉公司开发的全双工同步串行总线,该总线大量用在与,EEPROM,、,ADC,、,FRAM,和显示驱动器之类的慢速外设器件通信。,SPI,接口是在,CPU,和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通信,数据传输速度可达到几,Mbps,。,SPI,接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件,其接口包括以下四种信号:(,1,),MOSI,主器件数据输出,从器件数据输入(,2,),MISO,主器件数据输入,从器件数据输出(,3,),SCLK,时钟信号,由主器件产生(,4,),/SS,从器件使能信号,由主器件控制,在点对点的通信中,SPI,接口不需要进行寻址操作,且为全双工通信,显得简单高效。在多个从器件的系统中,每个从器件需要独立的使能信号,硬件上稍微复杂一些。,SPI,接口在内部硬件实际上是两个简单的移位寄存器,传输的数据为,8,位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后。如下图所示,在,SCLK,的下降沿上数据改变,同时一位数据被存入移位寄存器。,常用的是方式,0,和方式,3,SPI,总线接口及时序,SPI,模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(,CPOL,)对传输协议没有重大的影响。如果,CPOL=0,,串行同步时钟的空闲状态为低电平;如果,CPOL=1,,串行同步时钟的空闲状态为高电平。时钟相位(,CPHA,)能够配置用于选择两种不同的传输协议之一进行数据传输。如果,CPHA=0,,在串行同步时钟的第一个跳变沿(上升或下降)数据被采样;如果,CPHA=1,,在串行同步时钟的第二个跳变沿(上升或下降)数据被采样。,SPI,主模块和与之通信的外设时钟相位和极性应该一致。,SPI,总线接口时序如图所示。,SPI,器件举例,AT93C46/56/66,AT93C46,AT93C56,AT93C66,引脚功能,引脚功能说明,Vcc,:,电源引脚,,+5V,。,GND:,地线,CS,:,片选信号。当,CS=1,时,选中芯片;,当,CS=0,时,不选中芯片且强迫芯片进入等待方式。一旦编程周期启动,则不管,CS,的输入信号是否变为,0,,编程周期都会继续执行直到结束,在编程周期结束之前,如果,CS,为,0,,则编程一结束芯片马上进入等待方式。在两条相临指令执行中,,CS,必须最少产生,500NS,的低电平,以指明前条指令的结束。在,CS,处于,0,时,内部控制逻辑处于复位状态。,SK:,串行时钟,在时钟的上升沿,操作码、地址和数据位进入器件或从器件输出。,DI,:,串行数据输入,用于在串行时钟,SK,的同步下输入起始位,操作码地址和写入数据。,DO,:,数据输出端。数据输出端,DO,用于在读方式中,在串行时钟,SK,的同步下输出读出的数据。,ORG:,存贮器构造配置端,.,接,VCC,时,选择,16,位模式,;,接,GND,时,选择,8,位模式,.,指令集,指令,起始位,操作码,读指定地址中的数据,擦,/,写使能,用于所有模式前,擦除指定地的数据,写,1,向指定地的数据写数据,擦除所有空间,将指定数据写入所有空间,擦,/,写禁止,各模式时序,读时序,:,用于从指定的单元中把数据从高位到低位输出至,DO,端,但逻辑,0,位先于数据位输出,.,读指令和数据的各个位是在时钟的上升沿发生变化,.,擦,/,写使能时序,当上电时,芯片自动处于禁止擦,/,写状态。该命令用于所有命令的前面,用于启动允许擦,/,写状态,直到遇到,EWDS,命令前,该命令始终有效。,为了防止意外的数据扰动,,EWDS,用于禁止所有的编程模式,它应该用于所有的编程命令之后,但,READ,命令独立于,EWEN,和,EWDS,,,READ,命令可以在任何时间执行。,禁止擦,/,写时序,地址写时序,写指令用于将,8,位或,16,位数据写入指定的地址中,当在,DI,上的最后一个数据位被接收后,启动自定时的编程周期,twp(,典型值为,3ms),,如果,CS,在保持最小,250ns,后变高,那么,DO,引脚将输出,READY/BUSY,状态,逻辑,0,表示写入过程正在进行(,BUSY,)。逻辑,1,表示写入完毕,准备接收下一步的指令。,如果,CS,在,twp,周期后变高,则,READY/BUSY,状态不会被获取。,芯片写指令时序,该指令将命令中指定的数据写入所有单元。如果,CS,在保持最小,250ns,后变高,那么,DO,引脚将输出,READY/BUSY,状态,逻辑,0,表示写入过程正在进行(,BUSY,)。逻辑,1,表示写入完毕,准备接收下一步的指令。,地址擦除定时,该指令用于将指定地址中的所有数据位置,1,。当接收的指令和地址被解码后,开始自定时的擦除周期,,DO,引脚输出,READY/BUSY,状态。,芯片擦除指令,该指令用于将芯片中的所有存贮位置,1,,,DO,引脚会输出,READY/BUSY,状态。,AT93XX,控制程序设计,P1.0,CS,P1.1,SK,P1.2,DI,P1.3,DO,8051,AT93C46,ORG,总线,I,2,C,(Inter,Integrated Circuit),总线,:I,2,C,总线产生于在,80,年代,是一种由,PHILIPS,公司开发的两线式串行总线,用于连接微控制器及其外围设备。,I,2,C,总线最主要的优点是其简单性和有效性。,I,2,C,总线是由数据线,SDA,和时钟,SCL,构成的串行总线,可发送和接收数据。在,CPU,与被控,IC,之间、,IC,与,IC,之间进行双向传送,最高传送速率,100kbps,。各种被控制电路均并联在这条总线上,但就像电话机一样只有拨通各自的号码才能工作,所以每个电路和模块都有唯一的地址,在信息的传输过程中,,I,2,C,总线上并接的每一模块电路既是主控器(或被控器),又是发送器(或接收器),这取决于它所要完成的功能。,标准模式器件和快速模式器件连接到,I,2,C,总线,I,2,C,总线接口电路结构,I,2,C,总线接口为开漏或开集电极输出,需加上拉电阻。,系统中所有的单片机、外围器件都将数据线,SDA,和时钟线,SCL,的同名端相连在一起,总线上的所有节点都由器件和管脚给定地址。,系统中可以直接连接具有,I,2,C,总线接口的单片机,也可以通过总线扩展芯片或,I/O,口的软件仿真与,I,2,C,总线相连。,在,I,2,C,总线上可以挂接各种类型的外围器件,如,RAM/EEPROM,、日历,/,时钟芯片、,A/D,转换器、,D/A,转换器、以及由,I/O,口、显示驱动器构成的各种模块。,I,2,C,总线上数据传送的基本单位为字节,采用高位在前的格式。主从器件之间一次传输的数据称为一帧,由启动信号、若干个数据字节和应答位以及停止信号组成。,I,2,C,的主要命令只有读、写两种,虽然读写的字节根据具体器件的不同而不同,但其时序关系不会发生改变。,下位机只要具备,I,2,C,的基本时序即可。这些基本时序包括:启动、写字节、读字节、应答位、停止信号,并可以组合成两个子程序:读,N,字节子程序、写,N,字节子程序。,CPU,发出的控制信号分为地址码和控制量两部分,地址码用来选址,即接通需要控制的电路,确定控制的种类;控制量决定该调整的类别(如对比度、亮度等)及需要调整的量。这样,各控制电路虽然挂在同一条总线上,却彼此独立,互不相关。,I,2,C,总线在传送数据过程中共有三种类型信号,它们分别是:开始信号、结束信号和应答信号。,开始信号:,SCL,为高电平时,,SDA,由高电平向低电平跳变,开始传送数据。,结束信号,:,SCL,为高电平时,,SDA,由低电平向高电平跳变,结束传送数据。,应答信号:,接收数据的,IC,在接收到,8bit,数据后,向发送数据的,IC,发出特定的低电平脉冲,表示已收到数据。,I,2,C,总线的特征,数据传输过程举例,I,2,C,总线的位传输,起始和终止条件,I,2,C,总线的数据传输,从机发出应答,从机拉低总线,使主机进入等待状态,接收器发出应答,I,2,C,总线的响应,发送器的数据输出,接收器的数据输出,主机发送的时钟,应答时钟脉冲,完整的数据传输过程,从机发,接收器发,始终由,主机发出,可能的数据传输格式,I,2,C,器件举例,AT24C02,器件地址,操作模式,-,写操作,字节写,页写,用页写,AT24C01,可一次写入,8,个字节数据,AT24C02/04/08/16,可以一次写入,16,个字节,如果在发送停止信号之前主器件发送超过页字节长度,地址计数器将自动翻转先前写入的数据被覆盖,写保护,写保护操作特性可使用户避免由于不当操作而造成对存储区域内部数据的改写,当,WP,管脚接高时,整个寄存器区全部被保护起来而变为只可读取,AT24C01/02/04/08/16,可以接收从器件地址和字节地址,但是装置在接收到第一个数据字节后不发送应答信号从而避免寄存器区域被编程改写,.,操作模式,-,读操作,对,AT24C01/02/04/08/16,读操作的初始化方式和写操作时一样,仅把,R/W,位置为,1,。有三种不同的读操作方式:,立即地址读,选择读,和,连续读。,立即地址读,AT24C01/02/04/08/16,的地址计数器内容为最后操作字节的地址加,1,,也就是说如果上次读,/,写的操作地址为,N,,则立即读的地址从地址,N+1,开始。如果,N=E,,这里对,24C01 E=127,,对,24C02 E=255,,对,24C04,,,E=511,,对,24C08 E=1023,,对,24C16 E=2047,,则计数器将翻转到,0,,且继续输出数据,AT24C01/02/04/08/16,接收到从器件地址信号后(,R/W,位置,1,),它首先发送一个应答信号,然后发送一个,8,位字节数据。主器件不需发送一个应答信号但要产生一个停止信号。,选择性读,选择性读操作允许主器件对存储器的任意字节进行读操作。主器件首先通过发送起始信号,从器件地址和它想读取的字节数据的地址,执行一个伪写操作。在,AT24C01/02/04/08/16,应答之后,主器件重新发送起始信号和从器件地址,,此时,R/W,位置,1,。,AT24C01/02/04/08/16,响应并发送应答信号,然后,输出所要求的一个,8,位字节数据,主器件不发送应答信号,但产生一个停止信号。,连续读,连续读操作可通过立即读或选择性读操作启动,在,AT24C01/02/04/08/16,发送完一个,8,位字节数据后,主器件产生一个应答信号来响应,告知,AT24C01/02/04/08/16,主器件要求更多的数据,对应每个主机产生的应答信号,,AT24C01/02/04/08/16,将发送一个,8,位数据字节,当主器件不发送应答信号而发送停止位时结束此操作,时间参数定义,写周期定时,I,2,C,总线的软件模拟,1.,产生起始位和停止位,分别用,P1.0,和,P1.1,模拟,I,2,C,总线的时钟线和数据线,则可给时钟线,SCL,和数据线,SDA,赋值。程序如下:,SDL EQU P1.0,SCA EQU P1.1,2.,发送起始条件,当时钟,SCL,为高电平时,数据线,SDA,从高电平向低电平切换表示起始条件,即启动,I,2,C,总线数据传送。模拟时序产生时钟,SCL,和,SDA,发送的起始条件子程序如下:,使用不同频率的晶体振荡器,则要相应增删程序段中,NOP,指令的条数,以满足时序的要求。,START,:,SETB SDA,SETB SCL,NOP,;,NOP,的数目根据时钟频率确定,NOP,;此处用,NOP,来延时,CLR SDA,NOP,NOP,CLR SCL,RET,3.,发送停止条件,当时钟,SCL,为高电平时,数据线,SDA,由低电平向高电平切换表示停止条件,即停止,I,2,C,总线数据传送。模拟时序产生时钟,SCL,和,SDA,发送的停止条件子程序如下:,使用不同频率的晶体振荡器,则要相应增删程序段中,NOP,指令的条数,以满足时序的要求。,STOP,:,CLR SDA,SETB SCL,NOP,;,NOP,的数目根据时钟频率确定,NOP,;此处用,NOP,来延时,SETB SDA,NOP,NOP,CLR SDA,CLR SCL,RET,4.,发送应答位、非应答位子程序,I,2,C,总线上的第,9,个时钟脉冲对应于应答位,当该位为低电平表示应答,ACK,,当该位为高电平表示非应答,ACK,。,I,2,C,总线的应答位和非应答位如下图所示。发送,ACK,和,ACK,子程序如下。,SDA,SCL,应答,非应答,(1),发送应答位,ACK,由上图可知,当发送应答位,ACK,时,只需将,SDA,设为低电平、,SCL,设为高电平,其区间的长短根据晶振的频率确定,即改变下列子程序中的,NOP,数即可达到要求,发送,ACK,子程序如下:,YACK,:,CLR SDA,SETB SCL,NOP,;,NOP,的数目根据时钟频率确定,NOP,;此处用,NOP,来延时,CLR SCL,SETB SDA,RET,(2),发送非应答位,由上图可知,当发送非应答位,ACK,时,只需将,SDA,设为高电平、,SCL,设为高电平,其区间的长短根据晶振的频率确定,即改变下列子程序中的,NOP,数即可达到要求,发送,ACK,子程序如下:,YNACK,:,SETB SDA,SETB SCL,NOP,;,NOP,的数目根据时钟频率确定,NOP,;此处用,NOP,来延时,CLR SCL,CLR SDA,RET,5.,应答位检查子程序,根据,I,2,C,总线协议,在接收到一个字节后,要发送一个应答位以供检查,此时可设置一个标志位表示应答状态。当检查结果为正常应答时,则标志位置,0,;否则,标志位置,1,。应答位检查子程序如下:,TACK,:,SETB SDA,;设置,SDA,为输入方式,SETB SCL,;产生第,9,个时钟脉冲,NOP,;,NOP,的数目根据时钟频率确定,NOP,;此处用,NOP,来延时,CLR 30H,MOV C,,,SDA,JNC TEND,;若正常,应答,则转移,SETB 30H,TEND,:,CLR SCL,RET,6.,字节数据发送子程序,根据,I,2,C,总线协议,数据在时钟线为低电平时变化,高电平时稳定,每一个时钟脉冲传送一位。模拟,I,2,C,总线的,SDA,接在并行口线,并口中无移位寄存器,要通过指令完成移位后再从,SDA,串行输出。,I,2,C,总线的字节数据传送如下图所示。将待发送的字节存于累加器,A,中,字节数据发送子程序如下:,WOBYT,:,MOV R4,,,#08H,;要发送的数据长度为,8,位,LOOP2,:,RLC A,;将待发送的位送入位,CY,中,JC LOOP1,;,CY,位为,1,转到,LOOP1,CLR SDA,;,置为低电平,发送,0,SETB SCL,;时钟高电平数据保持数据稳定,NOP,;调节,NOP,的个数,使延时,4.7u s,NOP,CLR SCL,;时钟脉冲变为低电平,准备改变数据,DJNZ R4,,,LOOP2,;若,8,位未发送完,转,LOOP2,继续,RET,;,8,位发送完成,返回,LOOP1,:,SETB SDA,;置为高电平,发送,1,SETB SCL,;时钟为高电平保持数据稳定,NOP,;调节,NOP,的个数,使延时,4.7u s,NOP,CLR SCL,;时钟脉冲变为低电平,准备改变数据,CLR SDA,;将数据改为低电平,DJNZ R4,,,LOOP2,;若,8,位未发送完,转,LOOP2,继续,RET,;,8,位发送完成,返回,字节数据发送子程序,7.,字节数据接收子程序,根据,I,2,C,总线协议,数据必须在时钟处于高电平期间,数据稳定时才能读取数据,在经过八次的时钟转换后,读出八位即一个字节数据。,I,2,C,总线起始字节如下图所示。将读出的字节数据存于,R5,中,接收字节数据子程序如下:,接收字节数据子程序,ROBYT,:,MOV R4,,,#08H,;要,接收,的数据长度为,8,位,LOOP3,:,SETB SDA,;设置,SDA,为输入方式,SETB SCL,;,SDA,上数据有效,MOV C,,,SDA,;读入,SDA,引脚状态,MOV A,,,R5,;将存放结果送入,A,中,RLC A,;将读出的,1,位移入,A,中,MOV R5,,,A,CLR SCL,;一个脉冲结束,,SDA,上数据无效,DJNZ R4,,,LOOP3,;未读完,8,位,转到,LOOP3,RET,;读完返回,8.,多个字节数据发送子程序,在完成上述模拟子程序后,根据,I,2,C,总线协议,可编写多个字节数据发送子程序。要发送的字节数存放在,R5,中,要发送的数据块的第一个数据的地址为,40H,,外围器件的地址存放在,60H,中,参考程序如下:,WDBYT,:,LCALL START,;起始,WLP1,:,MOV A,,,60H,;设,60H,为存放的控制字,LCALL WOBYT,;发送读控制字节,LCALL TACK,;检查应答位,JB 30H,,,W,LP1,;无应答位,重发,MOV R0,,,#40H,;,40H,为第一个数据的首地址,WLP2,:,MOV A,,,R0,;读一个字节数据,LCALL WOBYT,;发送,LCALL TACK,;检查应答位,JB 30H,,,W,LP1,;无应答位,重发,INC R0,;指向下一个要发送的数据,DJNZ R5,,,W,LP2,;要发送数据未发完,再发送,LCALL STOP,;全部数据发完,停止,RET,;返回,9.,多个字节数据接收子程序,根据,I,2,C,总线协议,同样可编写多个字节数据接收子程序。要接收的字节数存放在,R5,中,要接收的数据块存放的首地址为,50H,,外围器件的地址存放在,60H,中,参考程序如下:,RDBYT,:,LCALL START,;起始,RLP1,:,MOV A,,,60H,;设,60H,为存放的控制字,LCALL WOBYT,;发送读控制字节,LCALL TACK,;检查应答位,JB 30H,,,R,LP1,;无应答位,重发,MOV R0,,,#50H,;,50H,为第一个数据的首地址,RLP2,:,LCALL ROBYT,;读入一个字节,MOV R0,,,A,DJNZ R5,,,R,LP3,;要接收数据未读完,再读入,LCALL YNACK,;发送非应答位,L
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服