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

下载本文档

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

文档简介

1、第5章 80C51内核衍生型单片机芯片及应用以增强型MCS-51作内核的衍生型嵌入式单片机芯片品种很多,如P8XC51RX、P89C66X、P89C6XX2、P8XC55X、P8XC59X、LPC76X、LPC900系列等。本章将简要介绍通用性较强、性价比高、硬件资源丰富的8XC51RX、P89C6XX2、P89C66X以及SST公司的SST89E(V)系列单片机芯片特点、新增硬件资源及其使用方法。在表达过程中,采用比照手法,着重,甚至仅仅介绍这些芯片新增功能及其用法,不介绍与8XC5X、8XC5XX2系列相同的硬件功能。 6/25/20225.1 89C51RX系列单片机概述 89C51RX

2、系列单片机以增强型MCS-51 CPU作内核,硬件资源、指令系统、引脚排列与相同封装形式的增强型80C51芯片保持100%兼容。与增强型MCS-51相比,89C51RX系列的最大特点是扩展了片内存储器的种类、容量,在89C51RX系列芯片中程序存储器容量最大为64KB,片内RAM存储器容量为5121024字节,并集成了可编程计数器阵列PCA(与Intel 8XC51FX系列内嵌的可编程计数器阵列兼容)、硬件看门狗计数器WDT。可见,89C51RX系列硬件资源丰富,一片89C51RX芯片即可构成一个功能相对较完善的单片机应用系统。6/25/2022 89C51RX系列包括Philips公司的P8

3、9C51RXXH系列(Philips公司第一代89C51RX系列芯片)、P89C51RXX (Philips公司第二代89C51RX系列芯片)和Atmel公司的89C51RX 系列包括AT89C51RX系列、T89C51RX、TS87C51RX以及SST公司的SST89E(V)554RC、SST89E(V)564RD和SST89E(V)5XRD2芯片。 6/25/20225.2 P89C51RX引脚功能 P89C51RX系列具有PDIP40、PLCC44CLCC44LQFP44三种封装形式,引脚排列与相同封装形式的增强型MCS-51芯片保持兼容,如图5-2所示。由于P89C51RX比增强型MC

4、S-51多了5模块可编程计数器阵列PCA,因此P1口的P1.2P1.7引脚具有复用功能,既可作为一般I/O引脚使用,也可作为5个PCA模块的计数脉冲输入端、捕获/比较模式外部输入/输出端。 6/25/20226/25/20226/25/2022图5-2 P89C51RX系列芯片封装形式及引脚排列 6/25/20225.3 P89C51RX系列片内存储器结构 在介绍89C51RX系列CPU内部资源前,先列出89C51RX系列芯片特殊功能存放器或存放器位,如表5-3所示。 6/25/20225.3.1 片内程序存储器 89C51RX系列采用Flash ROM作为片内程序存储器,容量从8KB64KB

5、,无须通过EPROM、Flash ROM芯片扩展外部程序存储器,因此 引脚一般通过2.0K4.7K电阻接电源Vcc。 可以在通用编程器上对89C51RX系列芯片编程,也可以用ISP、IAP方式进行编程。 6/25/20225.3.2 片内数据存储器 P89C51RX数据存储器包括片内RAM和外部RAM两大局部,其中片内RAM存储器由256字节的内部RAM与增强型MCS-51芯片相同和256768字节的内部扩展RAM组成,如图5-3所示。 图5-3 P89C51RX/87C51RX存储器结构 6/25/2022 256字节内部RAM、外部RAM读写方法与增强型MCS-51相同;内部扩展RAM地址

6、空间与外部RAM地址空间重叠,也是通过MOVX指令读写。为区别MOVX指令的读写对象是内部扩展RAM,还是外部RAM,在89C51RX系列辅助功能存放器AUXR中增加了EXTRAM选择位。当EXTRAM为0时,MOVX指令读写对象为内部扩展RAM;反之,当EXTRAM为1时,MOVX指令读写对象为外部RAM。由于复位时,AUXR存放器内容为xxxxxx00B,因此复位后,MOVX指令读写对象为内部扩展RAM。当需要读写外部RAM时,须通过如下指令,将EXTRAM位置1。 6/25/2022OR AUXR, #00000010B;由于AUXR寄存器不具有位寻址功能,只能通过或;指令将指定位置1。

7、MOV DPTR, #XXXXH;外部RAM地址送DPTR。MOVX A, DPTR;读外部RAM单元内容。在读写内部扩展RAM期间,P0、P2口及 、 引脚无效,因此当以R0或R1作间接寻址寄存器读写扩展RAM时,只能访问扩展RAM前256字节。 6/25/20225.4 可编程计数器阵列PCA及应用 P89C51RX系列可编程计数器阵列含有5个结构相同的16位捕捉/比较计数器,每个模块均可以编程为捕捉模式、软件定时器模式、高速输出模式、脉宽调制(PWM)模式,此外模块4还可作为看门狗定时器WDT使用,如图5-4所示。 6/25/2022图5-4 可编程计数器阵列PCA 6/25/20225

8、.4.1 PCA结构及控制 在P89C51RX中,为简化硬件结构,PCA单元电路内五个计数模块共用一个16位加法计数器CH和CL作为记时基准,计数脉冲来源由PCA模式存放器CMOD的CPS1、CPS0位决定,允许/禁止PCA计数器计数由PCA控制存放器CCON的CR位控制,如图5-5所示。 6/25/2022图5-5 PCA计数器及控制 6/25/2022 PCA中断控制逻辑如图5-6所示。当某一模块产生捕捉将PCA计数器捕捉到相应模块捕捉/比较存放器或匹配PCA计数器与相应模块捕捉/比较存放器相等时,CCON存放器相应模块匹配/捕捉标志位CCFn置1,能否产生PCA中断请求由相应模块的ECC

9、Fn位控制。 6/25/2022图5-6 PCA中断控制逻辑 6/25/20221. PCA模式存放器CMOD PCA模式存放器CMOD各位含义如下: (1) CPS1、CPS0用于选择PCA计数器计数脉冲来源。PCA内五个模块共用一个16位加法计数器CH和CL,计数脉冲来源由CMOD存放器的CPS1、CPS0位决定:CPS1、 CPS1、CPS0 计数脉冲源00 0 0内部时钟信号fosc/66时钟模式或fosc/1212时钟模式01 0 1内部时钟信号fosc/26时钟模式或fosc/412时钟模式( (可见,PCA模块最高计数频率比T0、T1、T2高了3倍)10 1 0 定时器T0的溢出

10、脉冲。 1 1 来自ECI/P1.2引脚的外部脉冲。在6时钟模式下,外部脉冲最高频率为fosc/4;在12时钟模式下,外部脉冲最高频率为fosc/8。6/25/2022(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计数器停止计

11、数由于CIDL位为1,图5-5中与非门输出状态由PCON存放器节电运行控制位IDL决定,当IDL位为1时,与非门输出为0,PCA计数器停止计数。(4)WDTE禁止/允许模块4看门狗工作。6/25/20222. PCA计数器CH和CL 16位加法计数器,计数脉冲由CMOD存放器的CPS1、CPS0位定义,每来一个脉冲,计数器加1,当CH溢出时,CCON存放器内的溢出标志CF置位。 6/25/20223. PCA控制存放器CCON(具有位地址 (1)CCF4CCF0分别是模块40的中断标志位。当产生匹配比较或捕捉时由硬件置1。但CPU响应PCA中断请求后,不能自动去除,需要软件清0。(2)CRPC

12、A计数器启动控制位。在正常状态下,CR=1时,计数脉冲开关闭合,每来一个计数脉冲,计数器加1;当CR=0时,PCA计数器停止计数。(3) CFPCA计数器溢出标志。当PCA计数器溢出时,CF自动置1不自动去除,需要软件清0。 6/25/20224. 模块比较/捕捉存放器CCAPnH和CCAPnL和模块 模式存放器CCAPMn 每一模块对应一个16位比较/捕捉存放器即高8位CCAPnH和低8位CCAPnL、模块工作方式存放器CCAPMn。 每一模块的工作方式由对应模块的工作方式存放器CCAPMn决定,如模块0的工作方式由模块0的工作方式存放器CCAPM0决定、模块1的工作方式由模块1的工作方式存

13、放器CCAPM1决定,依此类推,模块4的工作方式由模块4的工作方式存放器CCAPM4决定。模块工作方式存放器CCAPM0CCAPM4结构、各位含义相同,如下所示:6/25/2022CCAPMn(n=04) 寄存器位模块工作方式-ECOMnCAPPnCAPNnMATnTOGnPWMnECCFnX0000000无XX10000X16位捕捉(CEXn引脚上升沿触发)XX01000X16位捕捉(CEXn引脚下降沿触发)XX11000X16位捕捉(CEXn引脚上、下沿触发)X100100X16位软件定时器X100110X16位高速输出X10000108位PWM输出X1001X0X看门狗定时器(模块4)表

14、5-4 PCA模块工作方式 6/25/20225.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存放器初始化后,比较器

15、使能控制ECOMn位自动置1。(5) 启动PCA计数器即执行“SETB CR命令,将CCON存放器的CR位置1。 6/25/20225.4.3 PCA模块工作模式 6/25/20221. 捕捉模式 当CCAPMn存放器的CAPP上升沿捕捉、CAPN下降沿捕捉之一为1,而其他位为0时,相应的PCA模块就工作于捕捉模式,如图5-7所示。 图5-7 捕捉模式 6/25/20222. 软件定时器 当PCA模式存放器CMOD的WDTE位为0;而模块模式CCAPMn存放器的MAT位为1否那么匹配时相应CCFn位不置1,无法通过查询或中断方式确定定时时间到,其他位为0时,相应PCA模块工作于定时器状态,定时

16、时间由CH/CL初值、模块比较/捕捉存放器CCAPnH、CCAPnL决定,如图5-8所示。完成比较/捕捉存放器高8位CCAPnH装入后,ECOM位置1,比较即处于允许状态。当PCA计数器等于模块比较/捕捉存放器即发生匹配时,CCON存放器相应标志位CCFn即有效,如果ECCFn位为1,将产生PCA中断请求。 6/25/2022图5-8 PCA软件定时器模式 当PCA模块工作于软件定时模式时,不影响相关引脚的状态,即相应CEXn引脚依然可作为I/O引脚使用。 6/25/20223. 高速输出模式 高速输出模式也是一种软件定时方式。在软件定时模式中,如果模块控制存放器CCAPMn的TOG位为1,那

17、么匹配定时时间到时,将触发CEXn引脚状态翻转。当MATn、ECCFn位为1时,触发引脚翻转的同时,将产生PCA中断请求,如图5-9所示。使用高速PCA模式触发引脚状态获得的定时信号比用软件定时器在中断效劳程序中通过SETB P1.X、CLR P1.X或CPL P1.X指令获得的定时信号要精确得多。 6/25/2022图5-9 高速输出模式 6/25/20224. 8位PWM输出 8位PWM输出结构如图5-10所示。 图5-10 8位PWM输出方式 6/25/20225. 看门狗模式 图5-14 PCA看门狗方式 6/25/2022 如果PCA模式存放器CMOD的WDTE位为1,且模块4的模式

18、存放器CCAMP4为01001x0 xB时,那么模块4工作于看门狗状态,如图5-14所示。将初值写入模块4比较/捕捉存放器高8位后,模块4的模式存放器CCAPM4的ECOM4位即为1允许比较,看门狗定时器就开始工作:当PCA计数器等于模块4的比较/捕捉存放器时,高电平的匹配输出信号将触发CPU内部复位操作与硬件看门狗WDT不同,PCA模块4看门狗仅引起CPU内部复位,但不会将CPU的复位引脚RST置高电平。 6/25/20225.5 89C51RX系列中断控制系统 89C51RX系列中断控制系统与增强型MCS-51相同,但由于89C51RX系列内嵌了PCA计数阵列,因此89C51RX系列具有7

19、个中断源6个增强型MCS-51中断源+PCA中断源。89C51RX系列使用增强型MCS-51中断控制存放器IE、中断优先级控制存放器IP和IPH中的保存位分别作为PCA中断允许位和优先级控制位,PCA中断入口地址规定为0033B。即在89C51RX系列中IE存放器的b6位是PCA中断允许/禁止控制位,IP、IPH的b6位是PCA中断优先级控制位。如图5-15所示。 6/25/2022(a) 89C51RX中断控制存放器IE 6/25/2022(b) 89C51RX中断优先级IP (c) 89C51RX中断优先级高位IPH 6/25/2022在同优先级中断中,硬件查询顺序如下:中断源 入口地址外

20、中断0003H定时器T0溢出中断 000BH外中断0013H定时器T1溢出中断 001BHPCA计数器中断0033H串行口中断0023H定时器T2中断002BH6/25/20225.7 P89C6XX2 系列 2002年4月,Philips公司推出了P89C6XX2系列芯片,该系列芯片实际上是P89C51RX芯片的简化版,功能介于P89C5XX2系列和P89C51RX系列之间。与P89C51RX系列相比,最大特征是去掉了PCA模块相应地也就没有与PCA模块有关的特殊功能存放器;而与P89C5XX2系列相比,片内程序存储器容量大64KB,且集成了256B768B的片内扩展RAM即ERAM,其中E

21、RAM读写方法与P89C51RX相同。硬件资源、引脚排列、指令系统与 P89C5XX2保持100%兼容。该系列主要包括 P89C60X2 (64KB Flash ROM、256字节内部RAM+256字节的片内扩展RAM)、P89C61X2(64KB Flash ROM、256字节内部RAM+768字节的片内扩展RAM)芯片,非常适合需要少量数据存储器的单片机应用系统。 6/25/2022 由于P89C60X2/61X2带有片内扩展RAM,与P89C5XX2系列相比,辅助存放器AUXR各位含义与P89C51RX相同,也是通过EXTRAM控制位现实内部扩展RAM与外部RAM之间的切换,其他方面,如

22、硬件资源、特殊功能存放器(位)地址及各位含义与P89C5XX2系列完全相同,不再重复。 6/25/20225.8 P89C66X系列简介 P89C66X系列芯片包括了P89C660、P89C662、P89C664、P89C668四款芯片,他们之间的差异仅仅是片内程序存储器、片内扩展RAM容量的不同,其中P89C660含有16KB的片内程序存储器,256字节片内扩展RAM;P89C662含有32KB的片内程序存储器,768字节片内扩展RAM;P89C664含有64KB的片内程序存储器,1792字节片内扩展RAM;P89C668含有64KB的片内程序存储器,7936字节片内扩展RAM。 P89C6

23、6X系列硬件资源与与P89C51RX系列根本相同,惟一区别是:加大了片内RAM的容量,其中P89C668片内RAM容量为8KB,扣除与标准80C52系列兼容的可直接寻址的256字节内部RAM后,片内扩展RAM容量高达7936字节;增加了I2C总线功能,因此增加了与I2C总线控制有关的特殊功能存放器,相应地中断数量也增加到8个。 6/25/20225.8.1 封装形式及引脚功能 P89C66x采用PLCC44、PQFP44两种封装形式,引脚排列与相同封装形式的P89C51RX系列兼容,惟一区别是P89C66X系列集成了I2C总线接口单元电路,因此P1.6、P1.7引脚具有复用功能,既可以作为P1

24、口I/O引脚使用,也可以作为I2C总线时钟信号SCL和数据线SDA,如下所示: P1.6/SCL;漏极开路。P1口I/O引脚输入/输出;I2C总线同步时钟信号当处理器作为主器件时,输出;当处理器作为从器件时,输入。P1.7/SDA;漏极开路。P1口I/O引脚输入/输出;I2C总线数据/地址线,双向。6/25/20225.8.2 PCA模块 P89C66X系列内的PCA模块功能与P89C51RX系列兼容,惟一区别是PCA模块局部特殊功能存放器地址不同,如表5-5所示。 寄存器名功能描述P89C66X系列地址P89C51RX系列地址CCONPCA控制寄存器*C0HD8HCMODPCA模式寄存器C1

25、HD9HCCAPM0模块0模式寄存器C2HDAHCCAPM1模块1模式寄存器C3HDBHCCAPM2模块2模式寄存器C3HDCHCCAPM3模块3模式寄存器C5HDDHCCAPM4模块4模式寄存器C6HDEH6/25/20225.8.3 中断系统 由于P89C66X系列增加了I2C总线接口单元电路,因此中断源的数量增加到8个,即多了I2C总线中断标志SI,需要9个中断允许/禁止控制位,因此P89C66X系列与中断控制有关的特殊功能存放器比P89C51RX系列多,具体如下: 1. 中断允许控制存放器(IEN0和IEN1)P89C66X系列中断允许控制存放器(IEN0和IEN1)各含义如图5-16

26、所示。 (a) 中断允许控制存放器IEN0 6/25/2022(b) 中断允许控制寄存器IEN1 图5-16 中断允许控制 在P89C66X系列中,中断控制存放器IEN0相当于增强型MCS-51系列的IE存放器,但I2C总线中断允许占用了定时器T2的中断允许位,而将定时器T2中断允许位ET2放在IEN1存放器中。 6/25/20222. 中断优先级控制存放器IP和IPH (a) P89C66X系列中断优先级IP (b) P89C66X系列中断优先级高位 6/25/2022在同优先级中断源中,硬件查询顺序如下:中断源 入口地址外中断0003HI2C中断002BH定时器T0溢出中断000BH外中断

27、0013H定时器T1溢出中断001BH串行口中断0023H定时器T2中断003BHPCA计数器中断0033H 可见,在P89C66X系列中,中断优先级控制存放器IP、IPH与增强型MCS-51系列IP、IPH根本相同,但I2C总线中断优先级占用了原定时器T2的中断优先级,而将定时器T2中断优先级放在IP、IPH的b7位 6/25/20225.9 SST公司SST89E(V)RD及SST89C5XRD2系列芯片 1. SST89E(V)系列芯片特点 SST(Silicon Storage Technology)公司SST89E(V)系列芯片包括了SST89E554RC、SST89V554RC、S

28、ST89E564RD、SST89V564RD、SST89E554A以及SST89E(V)5XRD2系列芯片,与Philips、Atmel公司的89C51RX系列兼容性好内置的5模块可编程计数器阵列PCA与P89C51RX系列完全兼容,但功能更强功能及技术指标与Philips公司的P89V51RD2、P89LV51RD2相似,价格更低 6/25/2022主要差异如下:(1)大局部型号集成了SPI总线接口。(2)硬件看门狗溢出时间可调而P89C51RX系列内置的硬件看门狗属于“一次使能复位输出,溢出时间不调。(3)提供软件复位功能,并内置了掉电检测电路(而P89C51RX系列只有上电检测电路)。(

29、4) 程序存储器结构略有不同,将程序存储器分为两大块,即Block0和Block1。支持ISP和单字节写入的IAP编程,理论上可作数据存储器使用。但由于程序存储器只支持扇区(容量为128字节)擦除,没有单字节擦除功能,因此当需要重写扇区内任一已编程字节时,先将该扇区内所有字节读到内部扩展RAM中修改,执行扇区擦除操作后,再整体写入。换句话说,需采用“读改擦除写入方式完成。 6/25/2022 (5)预置了ISP编程引导指令码,通过PC串行口即可实现代码写入,无须专用编程器。芯片出厂前已将ISP编程引导指令码写入Block1块的前4K(旧型号为前2KB)空间内。因此,最好不要擦除Bolck1的前

30、4KB代码,以免失去ISP编程功能意外删除ISP编程引导码后,只能通过并行编程器重新写入。(6)SST89E系列所有型号芯片均集成了768字节的ERAM,读写方式与P89C51RX、P89C6XX2相同。6/25/20222. 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)系列芯片,彼此之间区别

31、在于:PLCC及44-lead TQFP封装的SST89C5XRD2系列芯片提供了一个4位的P4口(P4.3P4.0)及两个外部输入端( 、 ),因此SST89C5XRD2系列芯片中断源总数为10个。 DIP、PLCC封装引脚排列如图5-18所示。 6/25/2022图5-18 SST89E(V)系列芯片引脚排列 6/25/20222. SST89E(V)系列新增特殊功能存放器(位) 方便查阅、使用,表5-5列出SST89E(V)系列新增的特殊功能存放器及存放器位。表5-5 SST89E(V)系列新增特殊功能存放器及存放器位6/25/2022SFR寄存器名符号位地址/位定义名字节地址复位后初值

32、b7b6b5B4b3b2b1b0Flash ROM配置寄存器SFCF-IAPEN-SWRBSELB1Hx0 xxxxxxBFlash ROM命令寄存器SFCMFIEb6-b0(Flash ROM命令)B2H00HFlash ROM地址寄存器SFALFlash ROM存储器地址低8位(A7A0)B3H00HFlash ROM地址寄存器SFAHFlash ROM地址存储器高8位(A15A8)B4H00HFlash ROM数据寄存器SFDTB5H00HFlash状态寄存器SFSTSB1SB2SB3-EDCFLASH_BUSY-B6HXxxxx0 xxBSPI控制寄存器SPCRSPIE SPEDORD

33、MSTRCPOLCPHASPR1SPR0D5H00000100BSPI状态寄存器SPSRSPIF WCOLAAH00 xxxxxxBSPI数据寄存器SPDR86H00H看门狗控制寄存器WDTC*-WDOUTWDREWDTSWDTSWDTC0Hxxx00 x00b看门狗数据寄存器WDTD85H00H电源控制寄存器PCONSMOD1SMOD0BOFPOFGF1GF0PDIDL87H00010000中断控制寄存器AIEA*-EBO-E8Hxxxx0 xxxB中断优先级1低8位IP1*1-1PBOPX3PX21F8H1xx10001B中断优先级1高8位IP1H1-1PBOHPX3HPX2H1F7H1x

34、x10001B外中断2、3控制寄存器XICON-EX3IE3IT3-EX2IE2IT2AEH00HP4口寄存器P41111P4.3P4.2P4.1P4.0A5HFFH6/25/2022说明:(1) 带“*存放器具有位寻址功能。(2) 带灰色背景存放器是SST89E554A、SST89E5XRD2系列新增的特殊功能存放器。(3) PCON存放器中除新增的BOF位外,其他位含义与P89C51RX系列相同。(4) P89C51RX系列特殊存放器参见表5-3相比,SST系列没有时钟控制存放器CKCON(即SST时钟选择在Flash ROM存储器中)、看门狗复位存放器WDTRST(因为SST89E系列看

35、门狗计数器与P89C51RX系列不兼容,有自己专用的控制存放器)。(5) SST89E系列辅助功能存放器AUXR1的b5位没有定义。 6/25/20225.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字节。 6/25/2022 对SST89E(V)564R

36、D、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)系列单片机芯片中

37、,与程序存储器有关的特殊功能存放器如表5-6所示。表5-6 与Flash ROM存储器有关特殊功能存放器6/25/2022SFR寄存器名符号位地址/位定义名字节地址复位后初值b7b6B5B4B3B2b1b0Flash ROM配置寄存器SFCF-IAPEN-SWRBSELB1HX0 xxxxxxBFlash ROM命令寄存器SFCMFIEb6-b0(Flash ROM命令)B2H00HFlash ROM地址寄存器SFAL低8位地址A7A0B3H00HFlash ROM地址寄存器SFAH高8位地址A15A8B4H00HFlash ROM数据寄存器SFDTB5H00HFlash ROM状态寄存器SF

38、STSB1SB2SB3-EDCFLASH_BUSY-B6HXxxxx0 xxB6/25/2022其中:Flash ROM配置存放器SFCF各位含义如下:IAPEN(Enable IAP operation)是IAP操作开关。当IAPEN为1时,允许IAP编程操作;反之禁止IAP操作。BSELProgram memory block switching是存储器块切换开关;SWRSoftware Reset,即软件复位。当通过软件如ORL SFCF, #02H方式将SWR位置1时,将产生软件复位操作PC指针置为0000H、重新初始化除SFCF1 (SWR)、 WDTC2(WDTS)两位外所有特殊功

39、能存放器位但不改变内部RAM。复位后,Flash ROM配置存放器SFCF的b1、b0为表达方便常用存放器名位编号表示,如SFCF的b1、b0位用SFCF1,0初值由硬件配置位SC1、SC0这两位内容只能通过编程方式设置决定,如表5-7、5-8所示: 6/25/2022表5-7 SST89E(V)544、SST89E554A、SST89E(V)52RD2、SST89E(V)54RD2、SST89E(V)58RD2复位后Flash ROM配置存放器SFCF1,0内容存储器块定位配置位复位后SFCF1,0位内容外部复位、上电复位看门狗计数器溢出复位、掉电复位软件复位SC1SC01(未编程)1(未编

40、程)00(缺省值)X0101(未编程)0(已编程)01X1110(已编程)1(未编程)1010100(已编程)0(已编程)1111116/25/2022 表5-8 SST89E(V)564、 SST89E(V)516RD2复位后Flash ROM配置存放器SFCF1,0内容 存储器块地址定位配置复位后SFCF1,0位内容外部复位、上电复位看门狗计数器溢出复位、掉电复位软件复位SC01(未编程)00(缺省值)X0100(已编程)01X1116/25/2022由此可见,复位后SFCF0即BESL位内容由SC0硬件配置位确定;SFCF1即SWR位内容由SC1硬件配置位确定。当然也可以在运行中,重新设

41、置SFCF0即BESL、SFCF1即SWR位内容。SFCF1,0 位状态编码决定了存储器块Block0、Block1在程序存储器地址空间分配,如图5-19、5-20、5-21、5-22所示: 6/25/2022图5-19 SST89E(V)564RD、SST89V516RD2存储器结构 6/25/2022图5-20 SST89E(V)554RC、SST89E(V)58RD2存储器结构 6/25/2022图5-21 SST89E(V)54RD2存储器结构 6/25/2022图5-22 SST89E(V)52RD2存储器结构 6/25/2022 对32KB+8KB芯片来说,在 =1情况下,当Fla

42、sh 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指针小于

43、2000H情况下修改SFCF1,0位信息。 6/25/20225.9.2 Flash ROM状态存放器与芯片加密设置位关系 Flash ROM状态存放器SFST是只读存放器,相当于Philips公司P89C51RX系列芯片的配置存放器,只能通过编程方式(并行编程或IAP)方式修改。其中SB1SB3是存储器块Block0、Block1加密位映像信息,例如当加密位SB1被编程后,SFST7位为1,这样即可通过状态存放器SFST了解存储器块加密的状况。EDCDouble Clock Status是双时钟选择映象位,通过编程方式选择双时钟模式时,EDC为1,作用类似于P89C51RX系列的FX2位。F

44、LASH BUSY是Flash ROM IAP编程操作状态指示位。当该位为1时,表示编程操作尚未完成,处于忙状态。Flash ROM状态存放器(SFST)的SB1SB3位编码确定了Flash ROM中代码的平安状态,如表5-10所示。6/25/2022安全级别保密位SB1SB3状态(U-表示未编程;P-表示已编程)存储器块锁定状态说明SB1SB2SB3SFST7,5Block1Block01UUU000未锁未锁未加密,允许所有操作。2PUU100软件锁软件锁禁止外部程序通过MOVC指令读3UPU010软件锁软件锁禁止外部程序通过MOVC指令读及校验操作;在Block 0执行代码时,可通过IAP

45、方式对Block1编程,反之亦然。PPU110硬件锁软件琐禁止外部程序通过MOVC指令读及校验操作;在Block 1执行代码时,可通过IAP方式对Block0编程。Block1的IAP编程被禁止(因为Block1处于硬件锁定状态)UUP001UPP011硬件锁硬件锁禁止外部程序通过MOVC指令读及校验操作。禁止IAP编程(因为Block1、Block0均处于硬件锁定状态)。PUP1014PPP111硬件锁硬件锁安全级别最高,除了具备安全级别3的硬件锁定特征外,复位期间不理会EA引脚电平状态,只执行Flash ROM中代码。6/25/2022由此可见:(1)SB1SB3中任一位被编程,就禁止外部

46、程序存储器中的“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编程。 6/25/20225.

47、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

48、,即将Flash ROM单元高、低地址(即目标地址)送地址存放器SFAH、SFAL。编程数据送Flash ROM数据存放器SFDT。 6/25/2022(3) 控制命令及操作完成检测方式送Flash ROM命令寄存器SFCM。等待 中断或通过检测Flash ROM状态寄存器SFST的Flash Busy位状态,确定当前IAP操作是否完成。启动IAP操作后,Flash Busy位即刻变1,表示IAP编程操作尚未完成。当IAP操作结束后,Flash Busy位清0,表示IAP操作结束。(4) 通过校验操作,检查被擦除单元是否为0FFH(即空白);通过校验操作与写入数据比较,检查字节编程是否成功。(

49、5) 关闭IAP操作。为防止代码意外丢失,IAP操作结束后,执行“ANL SFCF, #10111111B”指令,将IAPEN位清0,禁止IAP操作。6/25/2022IAP编程命令及含义如表5-11所示。 2. IAP编程命令6/25/2022IAP编程命令SFCM 6:0SFDT 7:0SFAH 7:0SFAL 7:0说明Chip-Erase01H 55HX(忽略)X(忽略)(整片擦除)Block-Erase0DH55HAHX(忽略)块擦除,Sector-Erase(执行时间30ms)0BHXAHAL扇区擦除(1扇区容量为128字节,将忽略AL6,0)Byte-Program(执行时间50

50、us)0EH写入数据AHAL字节编程Byte-Verity(Read)0CH单元内容AHAL字节校验(读操作)Prog-SB10FHAAHX(忽略)X(忽略)对加密位SB1编程Prog-SB203HAAHX(忽略)X(忽略)对加密位SB2编程Prog-SB305HAAHX(忽略)X(忽略)对加密位SB3编程Prog-SC109HAAHAAHX(忽略)对硬件配置位SC1编程Prog-SC009HAAH5AHX(忽略)对硬件配置位SC0编程Enable-Clock-Double08HAAH55HX(忽略)对时钟配置位编程6/25/2022说明:(1) 由于执行IAP操作的指令码与操作目标地址不能位

51、于同一存储器块内,因此只能在Bolck1中对Block0进行IAP编程操作,反之亦然。只有IAP操作指令码位于外部程序存储器时才能执行“整片擦除操作。(2) 对包括加密位(即SB1SB3)、复位后存储器块映像地址控制位(即SC0、SC1)、X2时钟模式选择位Enable-Clock-Double等硬件配置位即表中带背景命令编程时,IAP编程操作指令码必须位于Block1或外部ROM中,否那么无效。为此建议最好通过并行编程器完成硬件配置位(bit)的编程。这些硬件配置位一旦被编程后只能通过整体擦除方式恢复为未编程状态。6/25/2022(3)当命令存放器SFCM的EIF位被初始化为0时,可通过读

52、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) 由

53、于没有单字节擦除操作,因此当需要重写扇区内任一已编程(内容不是FFH)单元时,可先将该扇区内所有单元读到扩展RAM中保存后,再执行扇区擦除操作,然后整体写入。即只能采用“读改擦除写入方式完成。 6/25/20223. IAP编程应用举例 (1) 块擦除操作ORL SFCF, #40H;IAP位置1,允许IAP操作MOV SFAH, #XXH;块地址高位送SFAH寄存器。SFAH寄存器内容可以是目标;块内任一单元的高8位地址。MOV SFDT, #55H;块擦除特征字送数据寄存器SFDTMOV SFCM, #0DH;块擦除命令码送SFCM。当采用查询方式检测块擦除操作是;否结束时,SFCM.7为

54、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,采用 中断检测操作是否结束6/25/2022(2) 扇区擦除

55、操作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为16/25/2022(3)字节编程操作ORL SFCF, #40H;IAPEN位置1,允许IAP操作MOV SFAH, #XXH;单元地址高8位送SFAH寄存器MOV SFAL, #XXH;单

56、元地址低位送SFAL寄存器MOV SFDT, #XXH;写入信息送数据寄存器SFDTMOV SFCM, #0EH;字节编程操作命令码0EH送SFCM6-0,;当采用查询方式检测块擦除操作是否结束时,;SFCM.7为0或MOV SFCM, #8EH;当采用 中断检测操作是否完成时,;SFCM.7为16/25/2022(1) 字节校验操作(读操作) ORL SFCF, #40H;IAPEN位置1,允许IAP操作MOV SFAH, #XXH;待读出单元地址高8位送SFAH寄存器MOV SFAL, #XXH;待读出单元地址地址低位送SFAL寄存器MOV SFCM, #0CH;字节校验操作码0CH送SF

57、CM。在校验操作中,无须查询;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

58、 SFCM, #0CH;字节校验操作码0CH送SFCM。在校验操作中,无须查询 MOV A, SFDT ;单元信息送Acc ;关闭IAP编程,防止数据意外丢失 ANL SFCF, #10111111B;IAPEN位清0,禁止IAP操作,防止数据以外丢失6/25/20224. 软件复位 当Flash ROM配置存放器SFCF的SWR(b1)位置1时,将触发软件复位操作:初始化特殊功能存放器,程序计数器PC置为0000H(但内部RAM保持不变)。6/25/20225.9.4 SPI串行总线 SST89E(V)系列内置了SPI(Serial Peripheral Interface,即串行外设接口)

59、部件。SPI是一种高速、全双工、同步串行通信方式,数据传输率比I2C串行总线高,通讯协议简单,是单片机应用系统常用的一种串行通讯方式之一。SPI总线有主、从两种工作模式,使用MOSI(即Master Out/Salve In的简称)引脚、MISO(即Master In/Salve Out的简称)引脚、输入/输出同步时钟信号SPICLK、 片选信号来完成两个SPI接口设备之间的数据传输。 6/25/20221. SPI总线控制 SST89E564RD/V564RD SPI总线最大数据传输率为10Mb/s,与SPI总线通信有关的特殊功能存放器包括了SPI总线控制存放器SPCR(即SPI Contr

60、ol Register的简称)、SPI总线状态存放器SPSR即SPI Status Register的简称、SPI数据存放器SPDR(即SPI Data Register的简称)。 (1) SPI控制存放器SPCRSPI总线工作方式由SPI总线控制存放器SPCR控制,各位含义如图5-23所示。6/25/2022图5-23 SPI总线控制寄存器SPCR各位含义 6/25/2022SPIESPI中断允许。当SPIE=1时,允许SPI中断;反之禁止SPI中断。在SST89E(V)系列芯片中,UART串行发送结束中断TI/串行接收有效中断RI以及SPI传送结束中断SPIF相或后作为一个中断源,共用同一

温馨提示

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

评论

0/150

提交评论