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