【大学课件】80c51内核衍生型单片机芯片及应用ppt_第1页
【大学课件】80c51内核衍生型单片机芯片及应用ppt_第2页
【大学课件】80c51内核衍生型单片机芯片及应用ppt_第3页
【大学课件】80c51内核衍生型单片机芯片及应用ppt_第4页
【大学课件】80c51内核衍生型单片机芯片及应用ppt_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2018/1/19,单片机原理与应用,第5章 80C51内核衍生型单片机芯片及应用,以增强型MCS-51作内核的衍生型嵌入式单片机芯片品种很多,如P8XC51RX、P89C66X、P89C6XX2、P8XC55X、P8XC59X、LPC76X、LPC900系列等。本章将简要介绍通用性较强、性价比高、硬件资源丰富的8XC51RX、P89C6XX2、P89C66X以及SST公司的SST89E(V)系列单片机芯片特点、新增硬件资源及其使用方法。在叙述过程中,采用对比手法,着重,甚至仅仅介绍这些芯片新增功能及其用法,不介绍与8XC5X、8XC5XX2系列相同的硬件功能。,5.1 89C51RX系列单片机概述,89C51RX系列单片机以增强型MCS-51 CPU作内核,硬件资源、指令系统、引脚排列与相同封装形式的增强型80C51芯片保持100%兼容。与增强型MCS-51相比,89C51RX系列的最大特点是扩展了片内存储器的种类、容量,在89C51RX系列芯片中程序存储器容量最大为64KB,片内RAM存储器容量为5121024字节,并集成了可编程计数器阵列PCA(与Intel 8XC51FX系列内嵌的可编程计数器阵列兼容)、硬件看门狗计数器WDT。可见,89C51RX系列硬件资源丰富,一片89C51RX芯片即可构成一个功能相对较完善的单片机应用系统。,2018/1/19,单片机原理与应用,89C51RX系列包括Philips公司的P89C51RXXH系列(Philips公司第一代89C51RX系列芯片)、P89C51RXX (Philips公司第二代89C51RX系列芯片)和Atmel公司的89C51RX 系列(包括AT89C51RX系列、T89C51RX、TS87C51RX)以及SST公司的SST89E(V)554RC、SST89E(V)564RD和SST89E(V)5XRD2芯片。,2018/1/19,单片机原理与应用,5.2 P89C51RX引脚功能,P89C51RX系列具有PDIP40、PLCC44(CLCC44)LQFP44三种封装形式,引脚排列与相同封装形式的增强型MCS-51芯片保持兼容,如图5-2所示。由于P89C51RX比增强型MCS-51多了5模块可编程计数器阵列PCA,因此P1口的P1.2P1.7引脚具有复用功能,既可作为一般I/O引脚使用,也可作为5个PCA模块的计数脉冲输入端、捕获/比较模式外部输入/输出端。,2018/1/19,单片机原理与应用,2018/1/19,单片机原理与应用,2018/1/19,单片机原理与应用,图5-2 P89C51RX系列芯片封装形式及引脚排列,2018/1/19,单片机原理与应用,5.3 P89C51RX系列片内存储器结构,在介绍89C51RX系列CPU内部资源前,先列出89C51RX系列芯片特殊功能寄存器(或寄存器位),如表5-3所示。,2018/1/19,单片机原理与应用,5.3.1 片内程序存储器,89C51RX系列采用Flash ROM作为片内程序存储器,容量从8KB64KB,无须通过EPROM、Flash ROM芯片扩展外部程序存储器,因此 引脚一般通过2.0K4.7K电阻接电源Vcc。 可以在通用编程器上对89C51RX系列芯片编程,也可以用ISP、IAP方式进行编程。,5.3.2 片内数据存储器,P89C51RX数据存储器包括片内RAM和外部RAM两大部分,其中片内RAM存储器由256字节的内部RAM(与增强型MCS-51芯片相同)和256768字节的内部扩展RAM组成,如图5-3所示。,图5-3 P89C51RX/87C51RX存储器结构,2018/1/19,单片机原理与应用,256字节内部RAM、外部RAM读写方法与增强型MCS-51相同;内部扩展RAM地址空间与外部RAM地址空间重叠,也是通过MOVX指令读写。为区别MOVX指令的读写对象是内部扩展RAM,还是外部RAM,在89C51RX系列辅助功能寄存器AUXR中增加了EXTRAM选择位。当EXTRAM为0时,MOVX指令读写对象为内部扩展RAM;反之,当EXTRAM为1时,MOVX指令读写对象为外部RAM。由于复位时,AUXR寄存器内容为xxxxxx00B,因此复位后,MOVX指令读写对象为内部扩展RAM。当需要读写外部RAM时,须通过如下指令,将EXTRAM位置1。,2018/1/19,单片机原理与应用,OR AUXR, #00000010B;由于AUXR寄存器不具有位寻址功能,只能通过或;指令将指定位置1。MOV DPTR, #XXXXH;外部RAM地址送DPTR。MOVX A, DPTR;读外部RAM单元内容。在读写内部扩展RAM期间,P0、P2口及 、 引脚无效,因此当以R0或R1作间接寻址寄存器读写扩展RAM时,只能访问扩展RAM前256字节。,2018/1/19,单片机原理与应用,5.4 可编程计数器阵列PCA及应用,P89C51RX系列可编程计数器阵列含有5个结构相同的16位捕捉/比较计数器,每个模块均可以编程为捕捉模式、软件定时器模式、高速输出模式、脉宽调制(PWM)模式,此外模块4还可作为看门狗定时器WDT使用,如图5-4所示。,2018/1/19,单片机原理与应用,图5-4 可编程计数器阵列PCA,2018/1/19,单片机原理与应用,5.4.1 PCA结构及控制,在P89C51RX中,为简化硬件结构,PCA单元电路内五个计数模块共用一个16位加法计数器(CH和CL)作为记时基准,计数脉冲来源由PCA模式寄存器CMOD的CPS1、CPS0位决定,允许/禁止PCA计数器计数由PCA控制寄存器CCON的CR位控制,如图5-5所示。,2018/1/19,单片机原理与应用,图5-5 PCA计数器及控制,2018/1/19,单片机原理与应用,PCA中断控制逻辑如图5-6所示。当某一模块产生捕捉(将PCA计数器捕捉到相应模块捕捉/比较寄存器)或匹配(PCA计数器与相应模块捕捉/比较寄存器相等)时,CCON寄存器相应模块匹配/捕捉标志位CCFn置1,能否产生PCA中断请求由相应模块的ECCFn位控制。,2018/1/19,单片机原理与应用,图5-6 PCA中断控制逻辑,1. PCA模式寄存器CMOD,PCA模式寄存器CMOD各位含义如下:,(1) CPS1、CPS0用于选择PCA计数器计数脉冲来源。PCA内五个模块共用一个16位加法计数器(CH和CL),计数脉冲来源由CMOD寄存器的CPS1、CPS0位决定:CPS1、 CPS1、CPS0 计数脉冲源00 0 0内部时钟信号fosc/6(6时钟模式)或fosc/12(12时钟模式)01 0 1内部时钟信号fosc/2(6时钟模式)或fosc/4(12时钟模式)( (可见,PCA模块最高计数频率比T0、T1、T2高了3倍)10 1 0 定时器T0的溢出脉冲。 1 1 来自ECI/P1.2引脚的外部脉冲。在6时钟模式下,外部脉冲最高频率为fosc/4;在12时钟模式下,外部脉冲最高频率为fosc/8。,2018/1/19,单片机原理与应用,(2)ECFPCA计数器CH/CL溢出中断允许。当PCA计数器溢出时,PCA控制寄存器CCON的溢出标志CF有效。如果ECF=1,且中断允许寄存器IE的EC、EA位为1,则CPU将响应PCA计数器溢出中断。,(3)CIDL节电状态下PCA运行控制。当CIDL=0时,在节电状态下,PCA计数器继续计数(图5-5中的与非门输出恒为1,与PCON寄存器节电运行控制位IDL内容无关);反之,当CIDL=1时,在节电状态下,PCA计数器停止计数(由于CIDL位为1,图5-5中与非门输出状态由PCON寄存器节电运行控制位IDL决定,当IDL位为1时,与非门输出为0,PCA计数器停止计数)。(4)WDTE禁止/允许模块4看门狗工作。,2018/1/19,单片机原理与应用,2. PCA计数器(CH和CL),16位加法计数器,计数脉冲由CMOD寄存器的CPS1、CPS0位定义,每来一个脉冲,计数器加1,当CH溢出时,CCON寄存器内的溢出标志CF置位。,2018/1/19,单片机原理与应用,3. PCA控制寄存器CCON(具有位地址,(1)CCF4CCF0分别是模块40的中断标志位。当产生匹配(比较)或捕捉时由硬件置1。但CPU响应PCA中断请求后,不能自动清除,需要软件清0。(2)CRPCA计数器启动控制位。在正常状态下,CR=1时,计数脉冲开关闭合,每来一个计数脉冲,计数器加1;当CR=0时,PCA计数器停止计数。(3) CFPCA计数器溢出标志。当PCA计数器溢出时,CF自动置1(不自动清除,需要软件清0)。,4. 模块比较/捕捉寄存器(CCAPnH和CCAPnL)和模块 模式寄存器CCAPMn,每一模块对应一个16位比较/捕捉寄存器(即高8位CCAPnH和低8位CCAPnL)、模块工作方式寄存器CCAPMn。 每一模块的工作方式由对应模块的工作方式寄存器CCAPMn决定,如模块0的工作方式由模块0的工作方式寄存器CCAPM0决定、模块1的工作方式由模块1的工作方式寄存器CCAPM1决定,依此类推,模块4的工作方式由模块4的工作方式寄存器CCAPM4决定。模块工作方式寄存器CCAPM0CCAPM4结构、各位含义相同,如下所示:,2018/1/19,单片机原理与应用,表5-4 PCA模块工作方式,2018/1/19,单片机原理与应用,5.4.2 PCA模块初始化步骤,PCA模块初始化步骤包括:(1) 初始化PCA模式寄存器CMOD,选择PCA计数器计数脉冲源、允许/禁止节电状态下PCA计数器计数、禁止/允许PCA计数器溢出中断。(2) 计数初值送CH/CL,完成PCA计数器CH/CL的初试化。(3) 初始化相应模块工作方式寄存器CCAPMn,选择所需的工作模式。(4) 初始化相应模块的比较/捕捉寄存器(CCAPnL、CCAPnH)。注意:必须先初始化低8位CCAPnL,后初始化CCAPnH,否则会关闭模式寄存器CCAPMn的ECOMn位(或者说完成CCAPnH寄存器初始化后,比较器使能控制ECOMn位自动置1)。(5) 启动PCA计数器(即执行“SETB CR”命令,将CCON寄存器的CR位置1)。,2018/1/19,单片机原理与应用,5.4.3 PCA模块工作模式,1. 捕捉模式,当CCAPMn寄存器的CAPP(上升沿捕捉)、CAPN(下降沿捕捉)之一为1,而其他位为0时,相应的PCA模块就工作于捕捉模式,如图5-7所示。,图5-7 捕捉模式,2018/1/19,单片机原理与应用,2. 软件定时器,当PCA模式寄存器CMOD的WDTE位为0;而模块模式CCAPMn寄存器的MAT位为1(否则匹配时相应CCFn位不置1,无法通过查询或中断方式确定定时时间到),其他位为0时,相应PCA模块工作于定时器状态,定时时间由CH/CL初值、模块比较/捕捉寄存器CCAPnH、CCAPnL决定,如图5-8所示。完成比较/捕捉寄存器高8位CCAPnH装入后,ECOM位置1,比较即处于允许状态。当PCA计数器等于模块比较/捕捉寄存器(即发生匹配)时,CCON寄存器相应标志位CCFn即有效,如果ECCFn位为1,将产生PCA中断请求。,图5-8 PCA软件定时器模式,当PCA模块工作于软件定时模式时,不影响相关引脚的状态,即相应CEXn引脚依然可作为I/O引脚使用。,2018/1/19,单片机原理与应用,3. 高速输出模式,高速输出模式也是一种软件定时方式。在软件定时模式中,如果模块控制寄存器CCAPMn的TOG位为1,则匹配(定时时间到)时,将触发CEXn引脚状态翻转。当MATn、ECCFn位为1时,触发引脚翻转的同时,将产生PCA中断请求,如图5-9所示。使用高速PCA模式触发引脚状态获得的定时信号比用软件定时器在中断服务程序中通过SETB P1.X、CLR P1.X或CPL P1.X指令获得的定时信号要精确得多。,图5-9 高速输出模式,4. 8位PWM输出,8位PWM输出结构如图5-10所示。,图5-10 8位PWM输出方式,2018/1/19,单片机原理与应用,5. 看门狗模式,图5-14 PCA看门狗方式,2018/1/19,单片机原理与应用,如果PCA模式寄存器CMOD的WDTE位为1,且模块4的模式寄存器CCAMP4为01001x0xB时,则模块4工作于看门狗状态,如图5-14所示。将初值写入模块4比较/捕捉寄存器高8位后,模块4的模式寄存器CCAPM4的ECOM4位即为1(允许比较),看门狗定时器就开始工作:当PCA计数器等于模块4的比较/捕捉寄存器时,高电平的匹配输出信号将触发CPU内部复位操作(与硬件看门狗WDT不同,PCA模块4看门狗仅引起CPU内部复位,但不会将CPU的复位引脚RST置高电平)。,2018/1/19,单片机原理与应用,5.5 89C51RX系列中断控制系统,89C51RX系列中断控制系统与增强型MCS-51相同,但由于89C51RX系列内嵌了PCA计数阵列,因此89C51RX系列具有7个中断源(6个增强型MCS-51中断源+PCA中断源)。89C51RX系列使用增强型MCS-51中断控制寄存器IE、中断优先级控制寄存器IP和IPH中的保留位分别作为PCA中断允许位和优先级控制位,PCA中断入口地址规定为0033B。即在89C51RX系列中IE寄存器的b6位是PCA中断允许/禁止控制位,IP、IPH的b6位是PCA中断优先级控制位。如图5-15所示。,2018/1/19,单片机原理与应用,(a) 89C51RX中断控制寄存器IE,(b) 89C51RX中断优先级IP,(c) 89C51RX中断优先级高位IPH,2018/1/19,单片机原理与应用,在同优先级中断中,硬件查询顺序如下:中断源 入口地址外中断0003H定时器T0溢出中断 000BH外中断0013H定时器T1溢出中断 001BHPCA计数器中断0033H串行口中断0023H定时器T2中断002BH,5.7 P89C6XX2 系列,2002年4月,Philips公司推出了P89C6XX2系列芯片,该系列芯片实际上是P89C51RX芯片的简化版,功能介于P89C5XX2系列和P89C51RX系列之间。与P89C51RX系列相比,最大特征是去掉了PCA模块(相应地也就没有与PCA模块有关的特殊功能寄存器);而与P89C5XX2系列相比,片内程序存储器容量大(64KB),且集成了256B768B的片内扩展RAM(即ERAM),其中ERAM读写方法与P89C51RX相同。硬件资源、引脚排列、指令系统与 P89C5XX2保持100%兼容。该系列主要包括 P89C60X2 (64KB Flash ROM、256字节内部RAM+256字节的片内扩展RAM)、P89C61X2(64KB Flash ROM、256字节内部RAM+768字节的片内扩展RAM)芯片,非常适合需要少量数据存储器的单片机应用系统。,2018/1/19,单片机原理与应用,由于P89C60X2/61X2带有片内扩展RAM,与P89C5XX2系列相比,辅助寄存器AUXR各位含义与P89C51RX相同,也是通过EXTRAM控制位现实内部扩展RAM与外部RAM之间的切换,其他方面,如硬件资源、特殊功能寄存器(位)地址及各位含义与P89C5XX2系列完全相同,不再重复。,5.8 P89C66X系列简介,P89C66X系列芯片包括了P89C660、P89C662、P89C664、P89C668四款芯片,他们之间的差别仅仅是片内程序存储器、片内扩展RAM容量的不同,其中P89C660含有16KB的片内程序存储器,256字节片内扩展RAM;P89C662含有32KB的片内程序存储器,768字节片内扩展RAM;P89C664含有64KB的片内程序存储器,1792字节片内扩展RAM;P89C668含有64KB的片内程序存储器,7936字节片内扩展RAM。 P89C66X系列硬件资源与与P89C51RX系列基本相同,惟一区别是:加大了片内RAM的容量,其中P89C668片内RAM容量为8KB,扣除与标准80C52系列兼容的可直接寻址的256字节内部RAM后,片内扩展RAM容量高达7936字节;增加了I2C总线功能,因此增加了与I2C总线控制有关的特殊功能寄存器,相应地中断数量也增加到8个。,2018/1/19,单片机原理与应用,5.8.1 封装形式及引脚功能,P89C66x采用PLCC44、PQFP44两种封装形式,引脚排列与相同封装形式的P89C51RX系列兼容,惟一区别是P89C66X系列集成了I2C总线接口单元电路,因此P1.6、P1.7引脚具有复用功能,既可以作为P1口I/O引脚使用,也可以作为I2C总线时钟信号SCL和数据线SDA,如下所示: P1.6/SCL;漏极开路。P1口I/O引脚(输入/输出);I2C总线同步时钟信号(当处理器作为主器件时,输出;当处理器作为从器件时,输入)。P1.7/SDA;漏极开路。P1口I/O引脚(输入/输出);I2C总线数据/地址线,双向。,5.8.2 PCA模块,P89C66X系列内的PCA模块功能与P89C51RX系列兼容,惟一区别是PCA模块部分特殊功能寄存器地址不同,如表5-5所示。,5.8.3 中断系统,由于P89C66X系列增加了I2C总线接口单元电路,因此中断源的数量增加到8个,即多了I2C总线中断标志SI,需要9个中断允许/禁止控制位,因此P89C66X系列与中断控制有关的特殊功能寄存器比P89C51RX系列多,具体如下:,1. 中断允许控制寄存器(IEN0和IEN1)P89C66X系列中断允许控制寄存器(IEN0和IEN1)各含义如图5-16所示。,(a) 中断允许控制寄存器IEN0,2018/1/19,单片机原理与应用,在P89C66X系列中,中断控制寄存器IEN0相当于增强型MCS-51系列的IE寄存器,但I2C总线中断允许占用了定时器T2的中断允许位,而将定时器T2中断允许位ET2放在IEN1寄存器中。,2. 中断优先级控制寄存器IP和IPH,(a) P89C66X系列中断优先级IP,(b) P89C66X系列中断优先级高位,2018/1/19,单片机原理与应用,在同优先级中断源中,硬件查询顺序如下:中断源 入口地址外中断0003HI2C中断002BH定时器T0溢出中断000BH外中断0013H定时器T1溢出中断001BH串行口中断0023H定时器T2中断003BHPCA计数器中断0033H 可见,在P89C66X系列中,中断优先级控制寄存器IP、IPH与增强型MCS-51系列IP、IPH基本相同,但I2C总线中断优先级占用了原定时器T2的中断优先级,而将定时器T2中断优先级放在IP、IPH的b7位,2018/1/19,单片机原理与应用,5.9 SST公司SST89E(V)RD及SST89C5XRD2系列芯片,1. SST89E(V)系列芯片特点,SST(Silicon Storage Technology)公司SST89E(V)系列芯片包括了SST89E554RC、SST89V554RC、SST89E564RD、SST89V564RD、SST89E554A以及SST89E(V)5XRD2系列芯片,与Philips、Atmel公司的89C51RX系列兼容性好(内置的5模块可编程计数器阵列PCA与P89C51RX系列完全兼容),但功能更强(功能及技术指标与Philips公司的P89V51RD2、P89LV51RD2相似),价格更低,主要差别如下:(1)大部分型号集成了SPI总线接口。(2)硬件看门狗溢出时间可调(而P89C51RX系列内置的硬件看门狗属于“一次使能复位输出”,溢出时间不调)。(3)提供软件复位功能,并内置了掉电检测电路(而P89C51RX系列只有上电检测电路)。(4) 程序存储器结构略有不同,将程序存储器分为两大块,即Block0和Block1。支持ISP和单字节写入的IAP编程,理论上可作数据存储器使用。但由于程序存储器只支持扇区(容量为128字节)擦除,没有单字节擦除功能,因此当需要重写扇区内任一已编程字节时,先将该扇区内所有字节读到内部扩展RAM中修改,执行扇区擦除操作后,再整体写入。换句话说,需采用“读改擦除写入”方式完成。,2018/1/19,单片机原理与应用,(5)预置了ISP编程引导指令码,通过PC串行口即可实现代码写入,无须专用编程器。芯片出厂前已将ISP编程引导指令码写入Block1块的前4K(旧型号为前2KB)空间内。因此,最好不要擦除Bolck1的前4KB代码,以免失去ISP编程功能(意外删除ISP编程引导码后,只能通过并行编程器重新写入)。(6)SST89E系列所有型号芯片均集成了768字节的ERAM,读写方式与P89C51RX、P89C6XX2相同。,2018/1/19,单片机原理与应用,2. SST89E(V)系列不同型号芯片之间的差异,SST89E554A、SST89E(V)5XRD2系列(包括了SST89E(V)52RD2、SST89E(V)54RD2、SST89E(V)58RD2、SST89E(V)516RD2等芯片)与SST89E(V)564RD、SST89E(V)554RC完全兼容,可直接替换相同存储器容量的SST89E(V)系列芯片,彼此之间区别在于:PLCC及44-lead TQFP封装的SST89C5XRD2系列芯片提供了一个4位的P4口(P4.3P4.0)及两个外部输入端( 、 ),因此SST89C5XRD2系列芯片中断源总数为10个。 DIP、PLCC封装引脚排列如图5-18所示。,图5-18 SST89E(V)系列芯片引脚排列,2018/1/19,单片机原理与应用,2. SST89E(V)系列新增特殊功能寄存器(位),方便查阅、使用,表5-5列出SST89E(V)系列新增的特殊功能寄存器及寄存器位。表5-5 SST89E(V)系列新增特殊功能寄存器及寄存器位,2018/1/19,单片机原理与应用,说明:(1) 带“*”寄存器具有位寻址功能。(2) 带灰色背景寄存器是SST89E554A、SST89E5XRD2系列新增的特殊功能寄存器。(3) PCON寄存器中除新增的BOF位外,其他位含义与P89C51RX系列相同。(4) P89C51RX系列特殊寄存器(参见表5-3)相比,SST系列没有时钟控制寄存器CKCON(即SST时钟选择在Flash ROM存储器中)、看门狗复位寄存器WDTRST(因为SST89E系列看门狗计数器与P89C51RX系列不兼容,有自己专用的控制寄存器)。(5) SST89E系列辅助功能寄存器AUXR1的b5位没有定义。,2018/1/19,单片机原理与应用,5.9.1 SST89E(V)系列程序存储器结构及映像,SST89E(V)564RD、SST89E(V)554RC、SST89E554A、SST89E(V)5XRD2芯片Flash ROM程序存储器由Block0 (64KB/32KB/16KB/8KB)和Block1(8KB)组成,支持ISP及单字节写入的IAP编程方式,可作数据存储器使用。每个存储器块被分成若干扇区,每扇区容量为128字节。,2018/1/19,单片机原理与应用,对SST89E(V)564RD、SST89E(V)516RD2芯片来说,程序存储器实际容量为72KB,其中Block0容量为64KB,物理地址空间为0000FFFFH;Block1容量为8KB,物理地址空间为1000011FFFH。但因PC指针只有16位,最大寻址范围为64KB,这就涉及存储器Block0、Block1重定位问题。 对SST89E(V)554RC、SST89E(V)554A、SST89E(V) 58RD2芯片来说,程序存储器实际容量为48KB,其中Block0容量为32KB,物理地址空间为00007FFFH;Block1容量为8KB,物理地址空间为E000FFFFH。,在SST89E(V)系列单片机芯片中,与程序存储器有关的特殊功能寄存器如表5-6所示。表5-6 与Flash ROM存储器有关特殊功能寄存器,2018/1/19,单片机原理与应用,2018/1/19,单片机原理与应用,其中:Flash ROM配置寄存器SFCF各位含义如下:IAPEN(Enable IAP operation)是IAP操作开关。当IAPEN为1时,允许IAP编程操作;反之禁止IAP操作。BSEL(Program memory block switching)是存储器块切换开关;SWR(Software Reset),即软件复位。当通过软件(如ORL SFCF, #02H)方式将SWR位置1时,将产生软件复位操作PC指针置为0000H、重新初始化除SFCF1 (SWR)、 WDTC2(WDTS)两位外所有特殊功能寄存器位(但不改变内部RAM)。复位后,Flash ROM配置寄存器SFCF的b1、b0(为叙述方便常用寄存器名位编号表示,如SFCF的b1、b0位用SFCF1,0)初值由硬件配置位SC1、SC0(这两位内容只能通过编程方式设置)决定,如表5-7、5-8所示:,2018/1/19,单片机原理与应用,表5-7 SST89E(V)544、SST89E554A、SST89E(V)52RD2、SST89E(V)54RD2、SST89E(V)58RD2复位后Flash ROM配置寄存器SFCF1,0内容,2018/1/19,单片机原理与应用,表5-8 SST89E(V)564、 SST89E(V)516RD2复位后Flash ROM配置寄存器SFCF1,0内容,2018/1/19,单片机原理与应用,由此可见,复位后SFCF0(即BESL)位内容由SC0硬件配置位确定;SFCF1(即SWR)位内容由SC1硬件配置位确定。当然也可以在运行中,重新设置SFCF0(即BESL)、SFCF1(即SWR)位内容。SFCF1,0 位状态编码决定了存储器块Block0、Block1在程序存储器地址空间分配,如图5-19、5-20、5-21、5-22所示:,2018/1/19,单片机原理与应用,图5-19 SST89E(V)564RD、SST89V516RD2存储器结构,2018/1/19,单片机原理与应用,图5-20 SST89E(V)554RC、SST89E(V)58RD2存储器结构,2018/1/19,单片机原理与应用,图5-21 SST89E(V)54RD2存储器结构,2018/1/19,单片机原理与应用,图5-22 SST89E(V)52RD2存储器结构,2018/1/19,单片机原理与应用,对32KB+8KB芯片来说,在 =1情况下,当Flash ROM配置寄存器SFCF1,0=00以及SFCF1,0=10或11时,与64KB+8KB芯片相同。而当SFCF1,0=01时,Block 0被定位在0000H7FFFH(即低32KB程序存储器空间内),而Block1位于程序存储器空间最后8KB,即E000HFFFFH。 SST89E(V)52RD2、SST89E(V)54RD2芯片存储器结构与SST89E(V)58RD2相似,只是Bolck0存储块容量小,分别为8KB、16KB。 尽管允许在运行中,通过软件方式修改SFCF1,0位信息。但SFCF1,0被修改后,Block0、Block1将立即重新定位,为避免混乱,尽量不要在PC指针小于2000H情况下修改SFCF1,0位信息。,2018/1/19,单片机原理与应用,5.9.2 Flash ROM状态寄存器与芯片加密设置位关系,Flash ROM状态寄存器SFST是只读寄存器,相当于Philips公司P89C51RX系列芯片的配置寄存器,只能通过编程方式(并行编程或IAP)方式修改。其中SB1SB3是存储器块Block0、Block1加密位映像信息,例如当加密位SB1被编程后,SFST7位为1,这样即可通过状态寄存器SFST了解存储器块加密的状况。EDC(Double Clock Status)是双时钟选择映象位,通过编程方式选择双时钟模式时,EDC为1,作用类似于P89C51RX系列的FX2位。FLASH BUSY是Flash ROM IAP编程操作状态指示位。当该位为1时,表示编程操作尚未完成,处于忙状态。Flash ROM状态寄存器(SFST)的SB1SB3位编码确定了Flash ROM中代码的安全状态,如表5-10所示。,2018/1/19,单片机原理与应用,由此可见:(1)SB1SB3中任一位被编程,就禁止外部程序存储器中的“MOVC”指令读Flash ROM中的代码。(2)处于硬件锁定状态下的存储器块(Bolck1或Block0)的IAP编程方式被禁止。(3)为保证程序代码不被非法读出,可将SB1SB3位编程为UPU状态(即Block1和Block0均处于软件锁定状态的安全级3),两块的IAP编程均处于允许状态,根据需要可对其中任一块进行IAP编程,灵活性大。当SB1SB3位编程为PPU或UUP状态时,Block1处于硬件锁定状态,而Block0处于软件锁定状态,允许通过IAP方式对Bolck0编程。这适合于关键程序代码位于Block1中,可根据需要对Block0进行IAP编程。,5.9.3 Flash ROM IAP编程 1. IAP编程操作初始化,在SST89E564RD、SST89E554RC及SST89E554A芯片中,允许通过IAP方式对芯片、块、扇区、字节、硬件配置位进行擦除及编程操作,其过程如下:(1)允许IAP操作,即通过“ORL SFCF, #40H”,将Flash ROM配置寄存器SFCF的IAP位置1。 允许IAP进入编程的条件是:对于PLCC及PQFP封装芯片来说,DISIAPL引脚处于悬空(对SST89E(V)564RD、SST89E(V)554RC)、对应存储器块不处于硬件锁定状态。(2) 初始化Flash ROM IAP编程地址寄存器SFAH和SFAL,即将Flash ROM单元高、低地址(即目标地址)送地址寄存器SFAH、SFAL。编程数据送Flash ROM数据寄存器SFDT。,2018/1/19,单片机原理与应用,(3) 控制命令及操作完成检测方式送Flash ROM命令寄存器SFCM。等待 中断或通过检测Flash ROM状态寄存器SFST的Flash Busy位状态,确定当前IAP操作是否完成。启动IAP操作后,Flash Busy位即刻变1,表示IAP编程操作尚未完成。当IAP操作结束后,Flash Busy位清0,表示IAP操作结束。(4) 通过校验操作,检查被擦除单元是否为0FFH(即空白);通过校验操作与写入数据比较,检查字节编程是否成功。(5) 关闭IAP操作。为防止代码意外丢失,IAP操作结束后,执行“ANL SFCF, #10111111B”指令,将IAPEN位清0,禁止IAP操作。,2018/1/19,单片机原理与应用,IAP编程命令及含义如表5-11所示。,2. IAP编程命令,2018/1/19,单片机原理与应用,说明:(1) 由于执行IAP操作的指令码与操作目标地址不能位于同一存储器块内,因此只能在Bolck1中对Block0进行IAP编程操作,反之亦然。只有IAP操作指令码位于外部程序存储器时才能执行“整片擦除”操作。(2) 对包括加密位(即SB1SB3)、复位后存储器块映像地址控制位(即SC0、SC1)、X2时钟模式选择位Enable-Clock-Double等硬件配置位(即表中带背景命令)编程时,IAP编程操作指令码必须位于Block1或外部ROM中,否则无效。为此建议最好通过并行编程器完成硬件配置位(bit)的编程。这些硬件配置位一旦被编程后只能通过整体擦除方式恢复为未编程状态。,2018/1/19,单片机原理与应用,(3)当命令寄存器SFCM的EIF位被初始化为0时,可通过读Flash ROM状态寄存器SFST的Flash Busy位确定IAP操作是否结束。反之,当命令寄存器SFCM的EIF位为1时,将借用下降沿触发的中断作为IAP操作结束标志,在这种情况下,进行IAP操作前,中断控制寄存器IE中的EA、EX1位必须为1,且需初始化为下降沿触发方式。在IAP操作期间P3.3引脚只能作为一般I/O引脚使用,而不能再作为外部中断使用。(4)可通过字节校验命令(Byte-Verity)读出指定单元内容,不过当Block1与Block0地址空间不重叠,且均位于64KB寻址空间内时,通过“MOVC A,A+DPTR”指令读出指定单元内容更方便(但会给芯片升级带来隐患)。(5) 由于没有单字节擦除操作,因此当需要重写扇区内任一已编程(内容不是FFH)单元时,可先将该扇区内所有单元读到扩展RAM中保存后,再执行扇区擦除操作,然后整体写入。即只能采用“读改擦除写入”方式完成。,3. IAP编程应用举例,(1) 块擦除操作ORL SFCF, #40H;IAP位置1,允许IAP操作MOV SFAH, #XXH;块地址高位送SFAH寄存器。SFAH寄存器内容可以是目标;块内任一单元的高8位地址。MOV SFDT, #55H;块擦除特征字送数据寄存器SFDTMOV SFCM, #0DH;块擦除命令码送SFCM。当采用查询方式检测块擦除操作是;否结束时,SFCM.7为0。WAIT:MOV A, SFSTJB ACC.2, WAIT;如果Flash Busy为1,就等待当通过 中断检测IAP操作是否结束时,上述程序段可改为:ORL TCON, #04H; 定义为下降沿触发ORL IE, #84H;EA、EX1位置1ORL SFCF, #40H;IAPEN位置1,允许IAP操作MOV SFAH, #XXH;块地址高位送SFAH寄存器,SFAH寄存器内容可以是;目标块内任一单元的高8位地址MOV SFDT, #55H;块擦除特征字送数据寄存器SFDTMOV SFCM, #8DH;块擦除操作码送SFCM,采用 中断检测操作是否结束,2018/1/19,单片机原理与应用,(2) 扇区擦除操作ORL SFCF, #40H;IAP位置1,允许IAP操作MOV SFAH, #XXH;扇区地址高8位送SFAH寄存器MOV SFAL, #XXH;扇区地址低位送SFAL寄存器;SFDT寄存器没有定义MOV SFCM, #0BH;扇区擦除操作码送SFCM寄存器。;当采用查询方式检测擦;除操作是否结束时,SFCM.7为0或;MOV SFCM, #8BH ; 当采用 中断检测操作是否完成时,SFCM.7为1,2018/1/19,单片机原理与应用,(3)字节编程操作ORL SFCF, #40H;IAPEN位置1,允许IAP操作MOV SFAH, #XXH;单元地址高8位送SFAH寄存器MOV SFAL, #XXH;单元地址低位送SFAL寄存器MOV SFDT, #XXH;写入信息送数据寄存器SFDTMOV SFCM, #0EH;字节编程操作命令码0EH送SFCM6-0,;当采用查询方式检测块擦除操作是否结束时,;SFCM.7为0或MOV SFCM, #8EH;当采用 中断检测操作是否完成时,;SFCM.7为1,(1) 字节校验操作(读操作) ORL SFCF, #40H;IAPEN位置1,允许IAP操作MOV SFAH, #XXH;待读出单元地址高8位送SFAH寄存器MOV SFAL, #XXH;待读出单元地址地址低位送SFAL寄存器MOV SFCM, #0CH;字节校验操作码0CH送SFCM。在校验操作中,无须查询;Flash Busy位状态或等待 中断有效;指定单元信息出现在数据寄存器SFDT中当然,当IAP编程操作的目的地址PC可以访问时,也可以用“MOVC A, A+DPTR”指令直接读出。但考虑到程序升级的方便,最好使用如下程序段从指定单元中读取数据。;从Flash ROM单字节读程序段;入口参数:DPTR指向读出单元地址;出口参数:A存放读出的数据SF_READ: ORL SFCF, #40H;将IAPEN位置1,允许IAP操作 MOV SFAH, DPH;待读出单元地址高8位送SFAH寄存器 MOV SFAL, DPL;待读出单元地址低8位送SFAL寄存器 MOV SFCM, #0CH;字节校验操作码0CH送SFCM。在校验操作中,无须查询 MOV A, SFDT ;单元信息送Acc ;关闭IAP编程,防止数据意外丢失 ANL SFCF, #10111111B;IAPEN位清0,禁止IAP操作,防止数据以外丢失,2018/1/19,单片机原理与应用,4. 软件复位,当Flash ROM配置寄存器SFCF的SWR(b1)位置1时,将触发软件复位操作:初始化特殊功能寄存器,程序计数器PC置为0000H(但内部RAM保持不变)。,2018/1/19,单片机原理与应用,5.9.4 SPI串行总线,SST89E(V)系列内置了SPI(Serial Peripheral Interface,即串行外设接口)部件。SPI是一种高速、全双工、同步串行通信方式,数据传输率比I2C串行总线高,通讯协议简单,是单片机应用系统常用的一种串行通讯方式之一。SPI总线有主、从两种工作模式,使用MOSI(即Master Out/Salve In的简称)引脚、MISO(即Master In/Salve Out的简称)引脚、输入/输出同步时钟信号SPICLK、 片选信号来完成两个SPI接口设备之间的数据传输。,2018/1/19,单片机原理与应用,1. SPI总线控制,SST89E564RD/V564RD SPI总线最大数据传输率为10Mb/s,与SPI总线通信有关的特殊功能寄存器包括了SPI总线控制寄存器SPCR(即SPI Control Register的简称)、SPI总线状态寄存器SPSR(即SPI Status Register的简称)、SPI数据寄存器SPDR(即SPI Data Register的简称)。 (1) SPI控制寄存器SPCRSPI总线工作方式由SPI总线控制寄存器SPCR控制,各位含义如图5-23所示。,2018/1/19,单片机原理与应用,图5-23 SPI总线控制寄存器SPCR各位含义,2018/1/19,单片机原理与应用,SPIESPI中断允许。当SPIE=1时,允许SPI中断;反之禁止SPI中断。在SST89E(V)系列芯片中,UART串行发送结束中断TI/串行接收有效中断RI以及SPI传送结束中断SPIF相或后作为一个中断源,共用同一中断入口地址,由串行中断允许ES位控制。SPESPI总线使能位。当SPE=0时,SPI总线被禁止,SPCR寄存器其他位没有定义;MOSI(P1.5)、MISO(P1.6)、SCK(P1.7)、 (P1.4)可作一般I/O引脚使用。MSTR主从设备选择位。当SPE为1时,由MSTR位决定SST89E(V)系列芯片SPI总线是主设备(MSTR=1),还是从设备(MSTR=0)。由于主设备不需片选信号,因此当MSTR位为1(作主机)时,(P1.4)引脚可作一般I/O引脚使用。当从设备片选信号 (P1.4)为低电平时,从设备处于选中状态,MOSI(P1.5)、SCK(P1.7)引脚处于输入状态,MIS0(P1.6)处于输出状态;反之,当 (P1.4)引脚为高电平时,从设备处于非选中状态,MOSI(P1.5)引脚处于高阻态。,2018/1/19,单片机原理与应用,DORD数据传输顺序。当DORD=0时,先发送数据寄存器的b7位;反之,当DORD=1时,先发送数据寄存器的b0位。CPOLSPI时钟极性选择。当CPOL=0时,空闲时SCK输出低电平,时钟前沿对应SCK的上升沿,时钟后沿对应SCK的下降沿,即采用正极性同步脉冲;当CPOL=1时,刚好相反,空闲时SCK输出高电平,时钟前沿对应SCK的下降沿,时钟后沿对应SCK的上升沿,即采用负极性同步脉冲。CPHASPI时钟相位选择。当CPHA=0时,SPI总线在SCK时钟前沿读输入数据,在SCK时钟后沿输出数据;而当CPHA=1时,SPI总线在SCK时钟前沿输出数据,在SCK时钟后沿读输入数据。,2018/1/19,单片机原理与应用,SPR1、SPR0SPI总线时钟SCK频率选择位,当SPR1、SPR0=00时,SCK=fOSC/4(即4分频)。SPR1、SPR0=01时,SCK= fOSC/16(即16分频)。SPR1、SPR0=10时,SCK= fOSC/64(即64分频)。SPR1、SPR0=11时,SCK= fOSC/128(即128分频)。在SPI通信协议中,同步时钟信号SCK由主设备提供(频率高低受从设备SPI接口限制),因此当SPI接口作从设备使用时,SPR1、SPR0位无效,总是按最高速度输出数据。对于SPI主设备来说,当SPI总线使能时,对SPI总线数据寄存器SPDR执行写操作将触发SPI总线数据传输过程。,SPI总线数据传输格式如图5-24所示。,2018/1/19,单片机原理与应用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论