串行接口应用优秀PPT.ppt
《串行接口应用优秀PPT.ppt》由会员分享,可在线阅读,更多相关《串行接口应用优秀PPT.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第9章 串行接口技术 串行接口应用串行接口应用第1页,本讲稿共60页内内 容容 提提 要要 RS-485总线扩展总线扩展 IIC总线扩展接口及应用总线扩展接口及应用 SPI总线扩展接口及应用总线扩展接口及应用 第2页,本讲稿共60页9.1 RS485总线扩展总线扩展RSRS485485标准接口是单片机系统种常用的一种串行总线标准接口是单片机系统种常用的一种串行总线之一。与之一。与RSRS232C232C比较,其性能有许多改进,细节请见表比较,其性能有许多改进,细节请见表9.19.1所所示。示。表表9.1 RS232C与与RS485性能比较性能比较第3页,本讲稿共60页RS485接口可连接成半双
2、工和全双工两种通信方式。接口可连接成半双工和全双工两种通信方式。常见的半双工通信芯片有常见的半双工通信芯片有MAX481、MAX483、MAX485、MAX487等,全双工通信芯片有等,全双工通信芯片有MAX488、MAX489、MAX490、MAX491等。等。第4页,本讲稿共60页 下面以下面以MAX485MAX485为例来介绍为例来介绍RSRS485485串行接口的应用。串行接口的应用。MAX485MAX485的封装有的封装有DIPDIP、SOSO和和uMAXuMAX三种,其中三种,其中DIPDIP封装的管脚如图封装的管脚如图9.19.1所示。所示。管脚的功能如下:管脚的功能如下:ROR
3、O:接收器输出端。若:接收器输出端。若A A比比B B大大200mV200mV,RORO为高;反之为低电平。为高;反之为低电平。RERE:接收器输出使能端。:接收器输出使能端。RERE为低时,为低时,RORO有效;为高时,有效;为高时,RORO呈高阻状态。呈高阻状态。DEDE:驱动器输出使能端。若:驱动器输出使能端。若DEDE1 1,驱动器输,驱动器输出出A A和和B B有效;若有效;若DEDE0 0,则它们呈高阻态。若,则它们呈高阻态。若驱动器输出有效,器件作为线驱动器用,反之驱动器输出有效,器件作为线驱动器用,反之作为线接收器用。作为线接收器用。DIDI:驱动器输入端。:驱动器输入端。DI
4、DI0 0,有,有A A0 0,B B1 1;当当DIDI1 1,则,则A A1 1,B B0 0。GNDGND:接地。:接地。A A:同相接收器输入和同相驱动器输出。:同相接收器输入和同相驱动器输出。B B:反相接收器输入和反相驱动器输出。:反相接收器输入和反相驱动器输出。VCCVCC:电源端,一般接:电源端,一般接+5V+5V。图图9.1 MAX485芯片的芯片的DIP封封装管脚图装管脚图第5页,本讲稿共60页MAX485典型的工作电路如图典型的工作电路如图9.2所示,其中平衡电阻所示,其中平衡电阻Rp通常取通常取100300欧姆。欧姆。MAX485的收发功能见表的收发功能见表9.3。第6
5、页,本讲稿共60页表表9.3 MAX485的收发功能的收发功能第7页,本讲稿共60页89C51与与MAX485的接口电路如图的接口电路如图9.4所示。所示。P1.7用来控制用来控制MAX485的接收或发送,其余操作同串口的接收或发送,其余操作同串口。第8页,本讲稿共60页9.2 I2C总线扩展接口及应用总线扩展接口及应用9.2.1 原理原理 I2C(IIC)总线是总线是Philip公司推出的芯片间串行传输总线。公司推出的芯片间串行传输总线。它用两根线实现了完善的全双工同步数据传送,可以极为它用两根线实现了完善的全双工同步数据传送,可以极为方便地构成多机系统和外围器件扩展系统。方便地构成多机系统
6、和外围器件扩展系统。IIC总线采用了总线采用了器件地址的硬件设置方法,通过软件寻址完全避免了器件器件地址的硬件设置方法,通过软件寻址完全避免了器件的片选线寻址方法,从而使硬件系统具有简单灵活的扩展的片选线寻址方法,从而使硬件系统具有简单灵活的扩展方法。按照方法。按照IIC总线规范,总线传输中的所有状态都生成相总线规范,总线传输中的所有状态都生成相对应的状态码,系统中的主机能够依照这些状态码自动地对应的状态码,系统中的主机能够依照这些状态码自动地进行总线管理,用户只要在程序中装入这些标准处理模块,进行总线管理,用户只要在程序中装入这些标准处理模块,根据数据操作要求完成根据数据操作要求完成IIC总
7、线的初始化,启动总线的初始化,启动IIC总线就总线就能自动完成规定的数据传送操作能自动完成规定的数据传送操作。第9页,本讲稿共60页 IIC总线接口为开漏或开集电极输出,需加上拉电总线接口为开漏或开集电极输出,需加上拉电阻。系统中所有的单片机、外围器件都将数据线阻。系统中所有的单片机、外围器件都将数据线SDA和时钟线和时钟线SCL的同名端相连在一起,总线上的所有节的同名端相连在一起,总线上的所有节点都由器件和管脚给定地址。系统中可以直接连接具点都由器件和管脚给定地址。系统中可以直接连接具有有IIC总线接口的单片机,也可以通过总线扩展芯片或总线接口的单片机,也可以通过总线扩展芯片或I/O口的软件
8、仿真与口的软件仿真与IIC总线相连。在总线相连。在IIC总线上可以挂总线上可以挂接各种类型的外围器件,如接各种类型的外围器件,如RAM/EEPROM、日历、日历/时时钟、钟、A/D、D/A、以及由、以及由I/O口、显示驱动器构成的各口、显示驱动器构成的各种模块。种模块。第10页,本讲稿共60页9.2.2 软件软件IIC总线总线假设单片机所用晶体振荡器的频率为假设单片机所用晶体振荡器的频率为6MHz。用。用P1.7和和P1.6分别模拟分别模拟SDA和和SCL,定义如下:,定义如下:SDAEQUP1.7 SCLEQUP1.6(1)产生起始位和停止位产生起始位和停止位如果单片机则每个机器周期为如果单
9、片机则每个机器周期为2us,我们可分别写出产生时我们可分别写出产生时钟钟SCL和和SDA的发送起始条件和停止条件两段子程序的发送起始条件和停止条件两段子程序如下。若晶振频率并非如下。若晶振频率并非 6MHz,则要相应增删各程序,则要相应增删各程序段中段中NOP指令的条数,以满足时序的要求。例如,若指令的条数,以满足时序的要求。例如,若fosc=12MHz,则两条,则两条NOP指令应增至指令应增至4条。条。第11页,本讲稿共60页发送起始条件发送起始条件STARTSTA:SETB SDA SETB SCL NOP NOP CLR SDA NOP NOP CLR SCL RET 发送停止条件发送停
10、止条件STOPSTOP:CLR SDA SETB SCL NOP NOP SETB SDA NOP NOP CLR SCL RET第12页,本讲稿共60页(2)发送应答位和非应答位子程序发送应答位和非应答位子程序 IIC总线上的第总线上的第9个时钟对应于应答位,相应数据线上个时钟对应于应答位,相应数据线上“0”为为“ACK”和和“1”为为“”。发送应答位和非应答位的子程序。发送应答位和非应答位的子程序分别如下分别如下。发送应答位发送应答位ACKMACK:CLR SDA SETB SCL NOP NOP CLR SCL SETB SDA RET 发送非应答位发送非应答位ACKMNACK:SETB
11、 SDA SETB SCL NOP NOP CLR SCL CLR SDA RET第13页,本讲稿共60页(3)应答位检查子程序应答位检查子程序 在在I2C总线数据传送中,接收器收到发送器传送来的一个字节后,必总线数据传送中,接收器收到发送器传送来的一个字节后,必须向须向SDA线上返送一个应答位线上返送一个应答位ACK,表明此字节已经收妥。本子程序使,表明此字节已经收妥。本子程序使单片机产生一个额外的时钟单片机产生一个额外的时钟(第九个时钟脉冲,在脉冲的高电平期间读第九个时钟脉冲,在脉冲的高电平期间读ACK应答位,并将它的状态被复制到应答位,并将它的状态被复制到F0标志中以供检查。若有正常标志
12、中以供检查。若有正常ACK,则,则F0标志为标志为0,否则为,否则为1。CACK:SETB SDA ;SDA作输入作输入 SETB SCL ;第;第9个时钟脉冲开始个时钟脉冲开始 NOP MOV C,SDA ;读;读SDA线线 MOV F0,C ;转存入;转存入F0中中 CLR SCL ;时钟脉冲结束;时钟脉冲结束 NOP RET第14页,本讲稿共60页(4)字节数据发送子程序字节数据发送子程序 由于是由于是SDA接在并行口线,无移位寄存器,因此数据通过指令完成移位再接在并行口线,无移位寄存器,因此数据通过指令完成移位再从从SDA串行输出。遵循时序要求,数据在时钟低电平时变化,高电平时串行输出
13、。遵循时序要求,数据在时钟低电平时变化,高电平时稳定,每一个时钟脉冲传送一位,编写字节数据传送子程序。稳定,每一个时钟脉冲传送一位,编写字节数据传送子程序。该子程序的入口条件是待发送的字节位于累加器该子程序的入口条件是待发送的字节位于累加器ACC中。中。WRB:MOV R7,#8 ;位计数器初值;位计数器初值WLP:RLC A ;欲发送位移入;欲发送位移入C中中JC WR1 ;此位为;此位为1,转,转WR1CLR SDA ;此位为;此位为0,发送,发送0SETB SCL ;时钟脉冲变为高电平;时钟脉冲变为高电平NOP ;延时;延时NOPCLR SCL ;时钟脉冲变为低电平;时钟脉冲变为低电平D
14、JNZ R7,WLP ;未发完;未发完8位,转位,转WLP RET ;8位已位已发发完,返回完,返回 WR1:SETB SDA ;此位为;此位为 1,发送,发送1 SETB SCL ;时钟脉冲变高电;时钟脉冲变高电 平平 NOP NOP ;延时;延时 CLR SCL ;时钟脉冲变低电;时钟脉冲变低电 平平 CLR SDA DJNZ R7,WLP RET第15页,本讲稿共60页(5)字节数据接收子程序字节数据接收子程序 该子程序的功能是在时钟的高电平时数据已稳定,读入一位,经过该子程序的功能是在时钟的高电平时数据已稳定,读入一位,经过8个时钟从个时钟从SDA线上线上读入一个字节数据,并将所读字节
15、存于读入一个字节数据,并将所读字节存于A和和R6中。中。RDB:MOV R7,#8 ;R7存放位计数器初值存放位计数器初值RLP:SETB SDA ;SDA输入输入 SETB SCL ;SCL脉冲开始脉冲开始 MOV C,SDA ;读;读SDA线线 MOV A,R6 ;取回暂存结果;取回暂存结果 RLC A ;移入新接收位;移入新接收位 MOV R6,A ;暂存入;暂存入R6 CLR SCL ;SCL脉冲结束脉冲结束 DJNZ R7,RLP ;未读完;未读完8位,转位,转RLP RET ;8位读完,返回位读完,返回 第16页,本讲稿共60页(6)n个字节数据发送子程序个字节数据发送子程序 这段
16、子程序的入口条件:这段子程序的入口条件:假定控制字节已存放在片内假定控制字节已存放在片内RAM的的SLA单元中;单元中;待发送数据各字节已位于片内待发送数据各字节已位于片内RAM以以MTD+1为起始地址的为起始地址的n个连续单元中。个连续单元中。NUMBYT单元中存有欲发送数据的字节数。单元中存有欲发送数据的字节数。接收到数据的存放首址存放在片内接收到数据的存放首址存放在片内RAM的的MTD单元。单元。WRNBYT:PUSH PSW ;保护现场;保护现场WRNBYT1:MOV PSW,#18H ;改用第;改用第3组工作寄存器组工作寄存器 CALL STA ;发起始条件;发起始条件 MOV A,
17、SLA ;读写控制字节;读写控制字节 CALL WRB ;发送写控制字节;发送写控制字节 CALL CACK ;检查应答位;检查应答位 JB F0,WRNBYT ;无应答位,重发;无应答位,重发 MOV R0,#MTD ;有应答位,继而发数据,第一个数据为首址;有应答位,继而发数据,第一个数据为首址第17页,本讲稿共60页WRDA:MOV A,R0 ;读一个字节数据;读一个字节数据 LCALL WRB ;发送此字节;发送此字节 LCALL CACK ;检查;检查ACK JB F0,WRNBYT1 ;无;无ACK,重发,重发 INC R0 ;调整指针;调整指针 DJNZ R5,WRDA ;尚未发
18、完;尚未发完n个字节,继续个字节,继续 LCALL STOP ;全部数据发完,停止;全部数据发完,停止 POP PSW ;恢复现场;恢复现场 RET ;返回;返回第18页,本讲稿共60页(7)读、存数据程序读、存数据程序 假设数据接受缓冲区为片内假设数据接受缓冲区为片内RAM以以MRD为首址的为首址的n个单元。个单元。这段子程序的入口条件:这段子程序的入口条件:片内片内RAM中的中的SLA单元存有读控制字节;单元存有读控制字节;NUMBYT单元中存有欲接收数据的字节数。单元中存有欲接收数据的字节数。出口条件:出口条件:所读出的数据将存入片内所读出的数据将存入片内RAM以以MRD为首地址的为首地
19、址的n个连续单元内。个连续单元内。RDNBYT:PUSH PSW RDNBYT1:MOV PSW,#18H LCALL STA ;发送起始条件;发送起始条件 MOV A,SLA ;读入读控制字节;读入读控制字节 LCALL WRB ;发送读控制字节;发送读控制字节 LCALL CACK ;检查;检查ACK JB F0,RDNBYT1 ;无;无ACK,重新开始,重新开始 MOV R1,#MRD ;接收数据缓冲区指针;接收数据缓冲区指针 第19页,本讲稿共60页GO_ON:LCALL RDB ;读一个字节;读一个字节 MOV R1,A ;存入接收数据缓冲区;存入接收数据缓冲区;DJNZ NUMBY
20、T,ACK;未全接收完,转;未全接收完,转ACK LCALL MNACK ;已读完所有字节,发;已读完所有字节,发 LCALL STOP ;发停止条件;发停止条件 POP PSW RETACK:LCALL MACK ;发;发ACK INC R1 ;调整指针;调整指针 SJMP GO_ON ;继续接收;继续接收 第20页,本讲稿共60页9.2.3 典型典型IIC串行存储器的扩展串行存储器的扩展9.2.3.1 串行串行IIC总线总线EEPROM AT24CXX的扩展的扩展1)基本原理)基本原理 AT24CXX的特点是:单电源供电,工作电压范围宽的特点是:单电源供电,工作电压范围宽1.8V5.5V;
21、低功耗;低功耗CMOS技术技术(100KHz(2.5 V)和和400KHz(5V)兼容兼容),自定时写周期,自定时写周期(包含自动擦除包含自动擦除)、页面写周期的典、页面写周期的典型值为型值为2ms,具有硬件写保护。,具有硬件写保护。图图9.6 AT24CXX的结构和引脚。的结构和引脚。(a)内部结构图;内部结构图;(b)引脚图。引脚图。第21页,本讲稿共60页器件型号为器件型号为AT24CXX的结构和引脚如图的结构和引脚如图9.6所示,其中所示,其中SCL 串行时钟端串行时钟端。SDA 串行数据端串行数据端。WP 为写保护,当为写保护,当WP为高电平时存贮器只读;当为高电平时存贮器只读;当W
22、P为低电平时存贮器可读可写。为低电平时存贮器可读可写。A0、A1、A2 片选或块选。片选或块选。SDA为漏极开路端,需接上拉电阻到为漏极开路端,需接上拉电阻到Vcc。数据的结构为。数据的结构为8位。信号为电平触发,位。信号为电平触发,而非边沿触发。输入端内接有滤波器,能有效抑制噪声。自动擦除而非边沿触发。输入端内接有滤波器,能有效抑制噪声。自动擦除(逻辑逻辑“1”)在每在每一个写周期内完成。一个写周期内完成。AT24CXX采用采用IIC规程,运用主规程,运用主/从双向通讯。器件发送数据到总线上,则定义为发送从双向通讯。器件发送数据到总线上,则定义为发送器器,器件接收数据则定义为接收器。主器件,
23、器件接收数据则定义为接收器。主器件(通常为微控制器通常为微控制器)和从器件可工作于接收器和从器件可工作于接收器和发送器状态。总线必须由主器件控制,主器件产生串行时钟和发送器状态。总线必须由主器件控制,主器件产生串行时钟(SCL),控制总线的传送,控制总线的传送方向,并产生开始和停止条件。串行方向,并产生开始和停止条件。串行EEPROM为从器件。无论主控器件,还是从控为从器件。无论主控器件,还是从控器件,接收一个字节后必须发出一个确认信号器件,接收一个字节后必须发出一个确认信号ACK。第22页,本讲稿共60页2)控制字节要求)控制字节要求 开始位以后,主器件送出开始位以后,主器件送出8位控制字节
24、。控制字节的结位控制字节。控制字节的结构构(不包括开始位不包括开始位)如下所示:如下所示:说明:说明:控制字节的第控制字节的第14位为从器件地址位位为从器件地址位(存贮器为存贮器为1010)。控制。控制字节中的前字节中的前4位码确认器件的类型。此四位码由飞利浦公司位码确认器件的类型。此四位码由飞利浦公司的的IIC规程所决定。规程所决定。1010 码即为从器件为串行码即为从器件为串行EEPROM的的情况。串行情况。串行EEPROM将一直处于等待状态,直到将一直处于等待状态,直到1010码发码发送到总线上为止。当送到总线上为止。当1010码发送到总线上,其它非串行码发送到总线上,其它非串行EEPR
25、OM从器件将不会响应。从器件将不会响应。第23页,本讲稿共60页控控制制字字节节的的第第57位位为为18片片的的片片选选或或存存贮贮器器内内的的块块地地址址选选择择位位。此此三三个个控控制制位位用用于于选选片片或或者者内内部部块块选选择择。标标准准的的IIC规规程程允允许许选选择择16K位位的的存存贮贮器器。通通过过对对几几片片器器件件或或一一个个器器件内的几个块的存取,可完成对件内的几个块的存取,可完成对16K位存贮器的选择,如表位存贮器的选择,如表9-6所示。所示。表表9-6 AT24CXX的的A2A1A0第24页,本讲稿共60页 控制字节的控制字节的A2、A1、A0的选择必须与外部的选择
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 串行 接口 应用 优秀 PPT
限制150内