[计算机硬件及网络]单片机接口技术.doc
《[计算机硬件及网络]单片机接口技术.doc》由会员分享,可在线阅读,更多相关《[计算机硬件及网络]单片机接口技术.doc(34页珍藏版)》请在三一办公上搜索。
1、IC总线应用实验一、IC总线介绍1.1 IC总线的特性在单片机应用系统中推广IC总线后将会大大改变单片机应用系统结构、性能,对单片机的应用开发带来以下好处。1、可最大限度地简化结构,二线制的IC串行总线使得各电路单元之间只需最简单的2线连接,而且总线接口都已集成在器件中,不需另加总线接口电路,这样减少电路板面积,提高了可靠性,降低了成本。2、可实现电路系统的模块化、标准化设计。在IC总线上各单元电路相互之间没有其它连线,用户常用的单元电路基本上与系统电路无关,故极易形成用户自己的标准化、模块化设计。3、IC总线各节点具有独立的电气特性,各节点单元电路能在相互不受影响的情况下, 甚至在系统供电情
2、况下接入或撤出,且系统可方便地对某一节点电路进行故障诊断与跟踪,有极好的可维护性。4、IC总线系统构成具有最大的灵活性、系统改型设计、或对已加工好的电路板需扩展功能时,对原有设计及电路板系统影响最小,同时标准IC总线模块的组合开发大大地缩短了新品的开发周期。1.2 标准模式IC总线规范IC总线通过2根线串行数据(SDA)和串行时钟(SCL)线连接到总线上的任何一个器件,每个器件都应有一个唯一的地址,而且都可以作为一个发送器或接收器。此外,器件在执行数据传输时也可以被看作是主机或从机。发送器:本次传送中发送数据(不包括地址和命令)到总线的器件。接收器:本次传送中从总线接收数据(不包括地址和命令)
3、的器件。主机:初始化发送、产生时钟信号和终止发送的器件,它可以是发送器或接收器。主机通常是微控制器。从机:被主机寻址的器件,它可以是发送器或接收器。IC总线是一个多主机的总线,也即可以连接多于一个能控制总线的器件到总线。当2个以上能控制总线的器件同时发动传输时,只能有一个器件能真正控制总线而成为主机,并使报文并不被破坏,这个过程叫做仲裁。与此同时,能使多个能控制总线的器件产生时钟信号的同步。SDA和SCL都是双向线路,连接到总线的器件的输出级必须是漏极开路或集电极开路,都通过一个电流源或上拉电阻连接到正的电源电压,这样才能够实现线与功能。当总线空闲时,这2条线路都是高电平。在标准模式下,数据传
4、输的速度为0100Kbit/s。1、 位传输IC总线上每传输一个数据位必须产生一个时钟脉冲。(1) 数据的有效性SDA线上的数据必须在时钟线SCL的高电平周期保持稳定,数据线的电平状态只有在SCL线的时钟信号是低电平时才能改变,如图(31-1)所示。在标准模式下,高低电平宽度必须不小于4.7Ns。 图 (31-1) IC总线的位传输 (2) 起始和停止条件在IC总线中,唯一违反上述数据有效性的是起始(S)和停止(P)条件,如图(31-2)所示。起始条件(重复起始条件);在SCL线是高电平时,SDA线从高电平向低电平切换。停止条件:在SCL线是高电平时,SDA线由低电平向高电平切换。 图 (31
5、-2) 起始和停止条件起始和停止条件一般由主机产生。起始条件作为一次传送的开始,在起始条件后总线被认为处于忙的状态。停止条件作为一次传送的结束,在停止条件的某段时间后,总线被认为再次处于空闲状态。重复起始条件既作为上次传送的结束,也作为下次传送的开始。2、 数据传输(1) 字节格式发送到SDA线上的每个字节必须为8位。每次传输可以发送的字节数量不受限制。每个字节后必须跟一个应答位。首先传输的是数据的最高位(MSB),见图(31-3)所示。 图 (31-3) IC总线的数据传输(2) 应答相应的应答时钟脉冲由从机产生。在应答的时钟脉冲期间,发送器释放SDA线(高)。在应答的时钟脉冲期间,接收器必
6、须将SDA线拉低,使她在这个时钟脉冲的高电平期间保持稳定的低电平。如图3. 3中时钟信号SCL的第9位。一般说来,被寻址匹配的从机或可继续接收下一字节的接收器将产生一个应答。若作为发送器的主机在发送完一个字节后,没有收到应答位(或收到一个非应答位),或作为接收器的主机没有发送应答位(或发送一个非应答位),那么主机必须产生一个停止条件或重复起始条件来结束本次传输。若从机接收器不能接收更多的数据字节,将不产生这个应答位:主机接收器在接收完最后一个字节后不产生应答,通知从机发送器数据结束。3、 仲裁与时钟发生(1) 同步时钟同步通过各个能产生时钟的器件线与连接到SCL线上来实现的,上述的各个器件可能
7、都有自己独立的时钟,各个时钟信号的频率、周期、相位和占空比可能都不相同,由于“线与”的结果,在SCL线上产生的实际时钟的低电平宽度由低电平持续时间最长的器件决定,而高电平宽度由高电平持续时间最短的器件决定。(2) 仲裁当总线空闲时,多个主机同时启动传输,可能会有不止一个主机检测到满足起始条件,而同时获得主机权,这样就要进行仲裁。当SCL线是高电平时,仲裁在SDA线发生,当其他主机发送低电平时,发送高电平的主机将丢失仲裁,因为总线上的电平与它自己的电平不同。仲裁可以持续多位,它的第一个阶段是比较地址位,如果每个主机都尝试寻址相同的器件,仲裁会继续比较数据位,或者比较响应位。因为IC总线的地址和数
8、据信息由赢得仲裁的主机决定,在仲裁过程中不会丢失信息。(3) 用时钟同步机制作为握手器件可以快速接收数据字节,但可能需要更多时间保存接收到的字节或准备一个要发送的字节。此时,这个器件可以使SCL线保持低电平,迫使与之交换数据的器件进入等待状态,直到准备好下一字节的发送或接收。4、 传输协议(1) 寻址字节主机产生起始条件后,发送的第一个字节为寻址字节,该字节的头7位(高7位)为从机地址,最低位(LSB)决定了报文的方向,“0”表示主机写信息到从机,“1”表示主机读从机中的信息,如图(31-4)所示。当发送了一个地址后,系统中的每个器件都将头7位与它自己的地址比较。如果一样,器件会应答主机的寻址
9、,至于是从机接收器还是从机发送器都由R/W位决定。 图 (31-4) 起始条件后的第一个字节 从机地址由一个固定的和一个可编程的部分构成。例如:某些器件有4个固定的位(高4位)和3个可编程的地址位(低3位),那么同一总线上共可以连接8个相同的器件。IC总线委员会协调IC地址的分配,保留了2组8位地址(0000XXXX和1111XXXX),这2组地址的用途可查阅有关资料。(2) 传输格式主机产生起始条件后,发送一个寻址字节,收到应答后跟着就是数据传输,数据传输一般由主机产生的停止位终止。但是,如果主机仍希望在总线上通讯,它可以产生重复起始条件(Sr)和寻址另一个从机,而不是首先产生一个停止条件。
10、在这种传输中,可能有不同的读/写格式结合。可能的数据传输格式有:主机发送器发送数据到从机接收器。见图(31-5),寻址字节的“R/W”位为0,数据传输的方向不改变。寻址字节后,主机接收器立即读从机发送器中的数据,见图(31-6)。寻址字节的“R/W”位为1。在第一次从机产生的响应时,主机发送器变成主机接收器,从机接收器变成从机发送器。之后,数据由从机发送,主机接收,每个应答由主机产生,时钟信号CLK仍由主机产生。若主机要终止本次传输,则发送一个非应答信号(/A),接着主机产生停止条件。复合格式,见图(31-7)。传输改变方向的时候,起始条件和从机地址都会被重复。但R/W位取反。如果主机接收器发
11、送一个重复起始条件,它之前应该要发送一个非应答信号(/A)。 图 (31-5) 主机发送器发送数据到从机接收器,传输方向不变。 图 (31-6) 寻址字节后,主机接收器立即读从机发送器中的数据图 (31-7) 复合格式1.3 虚拟IC总线汇编程序软件包(V1.1)为了非常方便地对IC从器件进行快速的、正确的读写操作,为此我们设计了硬件IC总线操作平台软件包。本软件包是字节方式下的硬件IC总线软件包,只要用户给子程序提供几个主要的参数,即可轻松地完成任何IC总线外围器件的应用程序设计。IC总线是PHILIPS公司推出的芯片间串行数据传输总线,2根线(SDA、SCL)即可实现完善的全双工同步数据传
12、输,能够十分方便地构成多机系统和外围器件扩展系统。IC器件是把IC的协议植入器件的I/O接口,使用时器件直接挂到IC总线上,这一特点给用户在设计应用系统时带来了极大的便利。IC器件无须片选信号,是否选中是由主器件发出的IC从地址决定的,而IC器件的从地址是由IC总线委员会实行统一发配。我们推出的IC总线的操作平台软件包,只要你给出器件从地址,即可进行字节读、字节写、多字节读、多字节写,能够非常方便地使用IC器件,无须你介入底层的IC操作协议。1.4 A51软件包概述此软件包是用在单主IC总线上,硬件接口是SDA、SCL,使用MCU的I/O来模拟SDA/SCL总线。设计有/无子地址的子程序是根据
13、IC器件的特点,目的在于将地址和数据彻底分开。软件包的接口界面为:IRDBYTE (无子地址)读单字节数据 (现行地址读)IWRBYTE (无子地址)写单字节数据 (现行地址写)IRDNBYTE (有子地址)读N字节数据IWRNBYTE (有子地址)写N字节数据IRDNBYTEEXT (无子地址)读N字节数据IWRNBYTEEXT (无子地址)写N字节数据说明:现行地址读/写即专指无子地址的器件,不给定子地址的读/写操作。软件包占用内部资源: R0,R1,R2,R3,ACC,Cy。使用前须定义变量:SLA器件从地址,SUBA器件子地址,NUMBYTE读/写的字节数,位变量ACK。使用前须定义常
14、量:SDA、SCL总线位,MTD发送数据缓冲区首址接口子程序出口参数ACK为0时表示器件无应答1.4.1 软件包清单 MCS-51单片机模拟IC软件包(V1.1) 文件名:VIC_ASM.INC 功能说明:本模拟IC软件包包含了IC操作的底层子程序,使用前要定义 好SCL和SDA。在标准8051模式(12Clock)下,对主频要求是不高于12MHz (即1个机器周期1us);若Fosc12 MHz则要增加相应的NOP指令数。(总线 时序符合IC标准模式,100Kbit/S)启动IC总线子程序:START: SETB SDA NOP SETB SCL ;起始条件建立时间大于4.7 us NOP
15、NOP NOP NOP NOP CLR SDA NOP ;起始条件锁定时大于4 us NOP NOP NOP NOP CLR SCL ;钳住总线,准备数据NOPRET结束总线子程序:STOP: CLR SDA NOP SETB SCL ;发送结束条件的时钟信号 NOP ;结束总线时间大于4 us NOP NOP NOP NOP SETB SDA ;结束总线 NOP ;保证一个终止信号和起始信号的空闲时间大于4.7us NOP NOP NOPRET发送应答信号子程序:MACK: CLR SDA ;将SDA置0 NOP NOP SETB SCL NOP ;保持数据时间,即SCL为高时间大于4.7
16、us NOP NOP NOP NOP CLR SCL NOP NOP RET发送非应答信号:MNACK: SETB SDA ;将SDA置1 NOP NOP SETB SCL NOP NOP ;保持数据时间,即SCL为高时间大于4.7 us NOP NOP NOP CLR SCL NOP NOP RET检查应答位子程序(返回值,ACK=1时表示有应答):CACK: SETB SDA NOP NOP SETB SCL CLR ACK NOP NOP MOV C, SDA JC CEND SETB ACK ;判断应答位CEND: NOP CLR SCL NOP RET发送字节子程序(字节数据放入AC
17、C, 每发送一字节要调用一次CACK子程序,取应答位):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 CLR SCL SJMP WLP1WR0: CLR SDA ;发送0 NOP SETB SCL NOP NOP NOP NOP NOP CLR SCL SJMP WLP1读取字节子程序(读出的值在ACC, 每取一字节要发送一个应答/非应答信号):RDBYTE: MOV
18、R0,#08HRLP: SETB SDA NOP SETB SCL ;时钟线为高,接收数据位 NOPNOPMOV C, SDA ;读取数据位MOV A, R2CLR SCL ;将SCL拉低,时间大于4.7 usRLC A ;进行数据位的处理MOV R2, ANOPNOPNOPDJNZ R0, RLP ;未够8位,再来一次RET以下是用户接口子程序:无子地址器件写字节数据入口参数:数据为ACC、器件从地址SLA占用:A、 R0、 CYIWRBYTE : PUSH ACC IWBLOOP: LCALL START ;启动总线MOV A, SLALCALL WRBYTE ;发送器件从地址LCALL
19、CACKJNB ACK, RETWRB ;无应答则跳转POP ACC ;写数据LCALL WRBYTELCALL CACKLCALL STOPRETRETWRB: POP ACCLCALL STOP RET无子地址器件读字节数据入口参数:器件从地址SLA出口参数:数据为ACC占用: A、 R0、 R2、 CYIRDBYTE: LCALL STARTMOV A, SLA ;发送器件从地址INC ALCALL WRBYTE LCALL CACKJNB ACK, RETRDBLCALL RDBYTE ;进行读字节操作LCALL MNACK ;发送非应答信号RETRDB: LCALL STOP ;结束
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机硬件及网络 计算机硬件 网络 单片机 接口 技术
链接地址:https://www.31ppt.com/p-4561386.html