《单片机串行扩展.ppt》由会员分享,可在线阅读,更多相关《单片机串行扩展.ppt(53页珍藏版)》请在第壹文秘上搜索。
1、 第六部分单片机的串行扩展第六部分单片机的串行扩展 系统扩展是指单片机内部各功能部件不能满足应用系统扩展是指单片机内部各功能部件不能满足应用系统要求时,在片外连接相应的外围新片以满足应系统要求时,在片外连接相应的外围新片以满足应用系统要求。用系统要求。80C51系列单片机有很强的外部扩展系列单片机有很强的外部扩展能力,外围扩展电路芯片大多是一些常规芯片。扩能力,外围扩展电路芯片大多是一些常规芯片。扩展电路及扩展方法较典型、规范。展电路及扩展方法较典型、规范。 80C51系统扩展有系统扩展有程序存储器(程序存储器(ROM)扩展,数)扩展,数据存储器(据存储器(RAM)扩展,)扩展,I/O口扩展,
2、中断系统扩口扩展,中断系统扩展以及其他特殊功能扩展。展以及其他特殊功能扩展。 单片机系统扩展方法有单片机系统扩展方法有并行扩展和串行扩展法并行扩展和串行扩展法。 并行扩展并行扩展是指利用单片机的三总线(是指利用单片机的三总线(AB、DB、CB) 进行的系统扩展(见第五部分);进行的系统扩展(见第五部分); 串行扩展串行扩展是指利用是指利用SPI三总线、三总线、IC双总线、单总线双总线、单总线 等等进行的串行系统扩展。进行的串行系统扩展。6.1 概述概述缺点:速度慢,在需要高速的场合要用并行扩展。缺点:速度慢,在需要高速的场合要用并行扩展。 优点:串行接口器件体积小;与单片机接口的优点:串行接口
3、器件体积小;与单片机接口的I/O口口线少。线少。串行扩展的特点:串行扩展的特点: 在器件之间采用在器件之间采用两根信号线(两根信号线(SDL,SCL)进行信息传送并允进行信息传送并允许若干兼容器件共享的数据总线,称为许若干兼容器件共享的数据总线,称为IC总线总线。 SDA传输双向的数据;传输双向的数据;SCL线用来传输时钟信号,用来同线用来传输时钟信号,用来同步串行数据线上的数据。步串行数据线上的数据。 一、一、 IC公用双总线结构(飞利浦公司)公用双总线结构(飞利浦公司)挂接在挂接在IC总线的器件,根据功能可分为:总线的器件,根据功能可分为:主控器件和从控主控器件和从控器件。器件。主控器件主
4、控器件:控制总线存取,产生串行时钟信号,并产生启动:控制总线存取,产生串行时钟信号,并产生启动传送及结束传送的器件,传送及结束传送的器件,总线必须有一个主控器件。总线必须有一个主控器件。从控器件从控器件:在总线上被主控器件寻址的器件,它们根据主控:在总线上被主控器件寻址的器件,它们根据主控器件的命令来接收和发送数据。器件的命令来接收和发送数据。6.2 串行扩展概述串行扩展概述VCCSDASCLI2C芯片1#I2C芯片N# 多个器件之间连接使数据线多个器件之间连接使数据线SDA为为“与与”的关系,的关系,即只要其中一个器件输出即只要其中一个器件输出0,即可使,即可使SDA数据线为数据线为0。I2
5、C总线系统是一个允许多主的总线系统是一个允许多主的系统。系统。I I2 2C C数据传输协议:数据传输协议:只有当总线不忙时(只有当总线不忙时(SDASDA与与SCLSCL均为高电平)均为高电平),数据传输才开始;数据传输期间,数据传输才开始;数据传输期间,无论何时串行时钟线为高,串行数据线必须保持无论何时串行时钟线为高,串行数据线必须保持稳定;稳定;当串行时钟线为高时,串行数据线将认为当串行时钟线为高时,串行数据线将认为此时传送的开始或停止。此时传送的开始或停止。I2C总线定义的总线条件有:总线定义的总线条件有:1.总线不忙:总线不忙:2.开始传输数据:开始传输数据:3.停止传输数据:停止传
6、输数据:SCL和和SDA保持高电平。保持高电平。在在SCL1时,时,SDA发生一个高到底的跳变。发生一个高到底的跳变。在在SCL1时,时,SDA发生一个低到高的跳变。发生一个低到高的跳变。4.数据有效:数据有效:SCL保持高电平期间,当保持高电平期间,当SDA稳定后,串行数稳定后,串行数据线的状态表示数据线是有效的。据线的状态表示数据线是有效的。5.数据变化:数据变化:SCL保持低电平期间,保持低电平期间,SDA数据线的状态才可数据线的状态才可以发生变化。以发生变化。在在I2C总线上传输的数据有两种方式:主发送从接收、从发送总线上传输的数据有两种方式:主发送从接收、从发送主接收。主接收。它们是
7、由起始信号后的第一个字节的最低位决定。它们是由起始信号后的第一个字节的最低位决定。1表示主器件读数据,表示主器件读数据,0表示主器件写数据)。表示主器件写数据)。主发送从接收(主器件为写数据):主发送从接收(主器件为写数据):主器件产生起始信号后,主器件产生起始信号后,发送的第一个字节为从地址(该地发送的第一个字节为从地址(该地址的前址的前7位字节为从器件的片选信号,最低位决定数据的传位字节为从器件的片选信号,最低位决定数据的传输方向位)此时该位是输方向位)此时该位是0。从器件每接收一个数据字节后,都返回一个应答信号(ASK=0)从器件在接收到主器件发送的从地址和为从器件在接收到主器件发送的从
8、地址和为1的方向位后,返的方向位后,返回一个应答信号(回一个应答信号(ASK=0), 接着从器件发送数据到主器接着从器件发送数据到主器件,主器件每接收一个数据字节后,都返回一个应答信号件,主器件每接收一个数据字节后,都返回一个应答信号(ASK=0ASK=0):在接收从器件最后一个字节后,在接收从器件最后一个字节后,主器件发送一个非应答信主器件发送一个非应答信号(号(ASK=1),终止从器件继续发送。从器件发送的数据,终止从器件继续发送。从器件发送的数据可以是单字节,也可以是一串数据。可以是单字节,也可以是一串数据。主控器的主控器的时钟输出时钟输出S应答应答起始信号起始信号用于应答信号用于应答信
9、号的时钟脉冲的时钟脉冲1289主发送器的主发送器的数据输出数据输出从发送器的从发送器的数据输出数据输出非应答非应答(1)A0、A1、A2:片选或页面选择地址输入。:片选或页面选择地址输入。 1、二线制、二线制I2C E2PROM AT24CXX系列的扩展系列的扩展 AT24C01(A)/02/04/08/16 E2ROM存储器都是存储器都是8个引脚。个引脚。存储容量为存储容量为1K/2K/4K/8K/16K bits。(2)GND:地线。:地线。 6.3 单片机的外部串行扩展单片机的外部串行扩展 一、一、串行扩展串行扩展E2PROM AT24C01(A)/02/04/08/16的封装形式的封装
10、形式 AT24C04与单片机的扩展与单片机的扩展 模拟实现模拟实现I2C接口接口(3)SDA:串行数据(:串行数据(/地址)地址)I/O端,用于串行数据的端,用于串行数据的 输入输入/输出。输出。 (4)SCL:串行时钟输入端,用于输入:串行时钟输入端,用于输入/输出数据的同步。输出数据的同步。 (5)WP:写保护,用于硬件数据的保护。:写保护,用于硬件数据的保护。(6)VCC:电源电压,接:电源电压,接+5V。 AT24CXX SDA和和SCL时钟关系时钟关系 AT24CXX启动和停止信号启动和停止信号 应答信号应答信号 AT24CXX立即地址读立即地址读 其中:其中:1010为为EEPRO
11、M的编码;的编码; XXX为为AT24CXX的地址编号。的地址编号。在在I2C总线上最多可以连接总线上最多可以连接8个个AT24C01/02,4个个AT24C04,2个个AT24C08,1个个AT24C16。 AT24CXX立即地址读立即地址读 AT24CXX随机读随机读 AT24CXX顺序读顺序读 AT24C01(A)/02/04/08/16字节写字节写 AT24C01(A)/02/04/08/16页面写页面写 START:; 开始位开始位; 传入参数:传入参数: 无无; 返回值:无返回值:无SETB SDASETB SCLNOP NOP CLR SDANOPNOP NOP NOP CLR
12、SCLRET STOP:; 停止位停止位; 传入参数:传入参数: 无无; 返回值:无返回值:无CLR SDANOP NOP SETB SCLNOP NOP NOP NOP SETB SDA NOPRET SHIN:; 从从AT24Cxx移入数据到移入数据到MCU; 传入参数:传入参数: 无无; 返回值:返回值:R7 - 移入的数据移入的数据USING0CLR AMOV R6,ASHIN_LP:SETB SCLMOV A,R7ADD A,ACCMOV R7,AMOV C,SDACLR ARLC AORL AR7,ACLR SCLINC R6CJNE R6,#08H,SHIN_LP; 共共8位,判
13、断是否完成位,判断是否完成RET SHOUT:; 从从MCU移出数据到移出数据到AT24Cxx; 传入参数:传入参数: R7 - 要移出的数据要移出的数据; 返回值:返回值:C - AT24Cxx的应答位的应答位USING0CLR AMOV R6,ASHOUT_LP: MOV A,R7 ; 循环移入循环移入8个位个位RLC AMOV SDA,CNOP SETB SCLNOP NOP CLR SCLMOV A,R7ADD A,ACCMOV R7,AINC R6CJNE R6,#08H,SHOUT_LP ; 共共8位,判断是否完成位,判断是否完成SETB SDA ; 读取应答读取应答NOP NOP
14、 SETB SCLNOP NOP NOP MOV C,SDA ; 保存应答位到保存应答位到CCLR SCLRET READ_RANDOM:; 在指定地址读取在指定地址读取; 传入参数:传入参数:R7 - 地址地址 ; 返回值:返回值:R7 - 读入的数据读入的数据USING0MOV R5,AR7; 暂存地址暂存地址LCALL STARTMOV R7,#OP_WRITE; 写入器件地址和写入命令写入器件地址和写入命令LCALL SHOUTMOV R7,AR5; 写入地址写入地址LCALL SHOUTLCALL READ_CURRENT; 在当前地址读取在当前地址读取RET READ_CURREN
15、T:; 在当前地址读取在当前地址读取; 传入参数:无传入参数:无 ; 返回值:返回值:R7 - 读出的数据读出的数据USING0LCALL STARTMOV R7, #OP_READ; 写入器件地址和读取命令写入器件地址和读取命令LCALL SHOUTLCALL SHIN; 读取数据,保存在读取数据,保存在R7LCALL STOPRET WRITE_BYTE:; 在指定地址写入数据在指定地址写入数据; 传入参数:传入参数: R7 - 写入数据的地址写入数据的地址; 传入参数:传入参数: R5 - 要写入的数据要写入的数据; 返回值:无返回值:无USING0MOV R4,AR7LCALLSTAR
16、TMOV R7,#OP_WRITE; 写入器件地址和写命令写入器件地址和写命令LCALLSHOUTMOV R7,AR4; 地址地址LCALLSHOUTMOV R7,AR5; 数据数据LCALLSHOUTLCALLSTOPMOV R7,#10; 写入周期写入周期, 延时延时10msLCALLDELAYMS2、利用、利用SPI扩展扩展E2PROMSPI是三线总线结构的一个同步外围接口,允许单片机与是三线总线结构的一个同步外围接口,允许单片机与各种外围设备以串行方式进行通讯。特点:各种外围设备以串行方式进行通讯。特点: l主从机工作方式;主从机工作方式;l可程控的主机位传送频率、时钟极性和相位;可程控的主机位传送频率、时钟极性和相位;l发送完成中断标志;发送完成中断标志;l写冲突保护标志。写冲突保护标志。l全双工、三线同步传送;全双工、三线同步传送; 在在SPI设置为主机方式时,设置为主机方式时,MISO是主机的数据输是主机的数据输入线,入线,MOSI是主机的数据输出线;设置为从机时,是主机的数据输出线;设置为从机时,MISO是从机的数据输出线,是从机的数据输出线,MOSI是从机的数据是从机