1 / 51

第 2 章 S12X 单片机的结构与组成

第 2 章 S12X 单片机的结构与组成. 2.1 MC9S12XS128 的主要功能和结构 2.2.1 功能特性. 16 位 S12XS CPU 内核: CPU12X ( V2) 。兼容 S12 , CCRW 内部容错 , 纠错 ECC ,最大 8M 内存 . 时钟和复位发生器, CM 、 COP 。简化了电源及 PLL 电路 中断控制管理模块( INT ) , 中断源细分为 7 级 带中断功能的 8 位和 4 位端口 2 个 8 通道 12 位 A/D 转换模块 ( 3μs )、 8 个 PWM 通道

leo-valdez
Download Presentation

第 2 章 S12X 单片机的结构与组成

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第2章 S12X单片机的结构与组成

  2. 2.1 MC9S12XS128的主要功能和结构2.2.1 功能特性 • 16位S12XS CPU内核:CPU12X(V2) 。兼容S12,CCRW • 内部容错,纠错ECC,最大8M 内存. • 时钟和复位发生器,CM 、COP。简化了电源及PLL电路 • 中断控制管理模块(INT),中断源细分为7级 • 带中断功能的8位和4位端口 • 2个8通道12位A/D转换模块( 3μs)、8个PWM通道 • 2个SCI、1个SPI、1个CAN总线模块 • 增强型捕捉定时器TIM ,定时模块PIT • 80MHz系统频率(40MHz总线频率) • 128KB FLASH、8KB DFLASH、8KB RAM • 单线背景调试模块(BDM) • 输入/输出端口(I/O):多达91个通用输入输出端口。 • 温度性能:-40°C ~125°C的宽温度范围。

  3. 2.1.2 MC9S12XS128的结构

  4. 总结: • MCU核心 --- 左侧 E口可作为控制总线。 A口、B口、K口。 • MCU外设 --- 右 丰富的I/O接口,多功能复用: AD口、 H口、J口、M口、P口、S口和T口。 • P,J,H口有中断功能, 可以使MCU退出WAIT,STOP • 端口复用、多功能 • 外设模块,在功能上就是集成了微机原理的对应功能 。 • AD ,AN【0:15】, 可做PAD口的16位GPIO 不仅具有AD功能,还有通用输入口功能。 • 内部时钟根据需要设定

  5. 128K FLASH ,8K RAM , 8K EEPROM 比较丰富, 可以选择内存容量大的MCU. • 背景调试功能,方便、灵活

  6. 2.1.3封装与引脚 一.封装 LQFP-112引脚 QFP-80引脚 (薄)四方扁平 封装表面贴焊

  7. 双排直列封装

  8. 贴片封装

  9. 表2-l MC9S12XS MCU引脚功能一览表

  10. 二. 引脚功能描述 1.系统功能类引脚 EXTAL、XTAL:振荡器引脚 RESET:外部复位引脚,低电平有效 (外部电路应有上拉功能) TEST:厂家测试预留,须连至Vss BKGD/MODC:背景调试//模式选择引脚 (内部上拉) 2.电源类引脚 • 电压调整模块将+3.3 - +5V调整为3组独立电源供片内使用 • VDD、VSS2、VSS3:MCU核心的工作电源,1.8V; • VDDF、VSS1:片内闪存 , 2.8V; • VDDPLL、VSSPLL:PLL的电源供给端,1.8V; • 外部电源提供5组+5V电源:电压调整器、I/O、AD

  11. 3.I/O类引脚 共有91 个引脚,包括AD,A,B,E,H,J,K,M,P,S,T共11 组端口,每组端口不仅可设定为普通的I/O 端口,还可复用。 例如:AD端口可A/D转换的模拟输入,S端口可设置为SPI 和SCI 通讯接口,T 端口可设置为增强型捕捉定时器的输入,输出接口等。 • 3.1AD口 、 A口和B口 • ① PAD口:PAD15~8, 7~0 通用输入口/ 模拟量输; • ② PA、PB、PK:通用I/O口(PA7-0,PB7-0,PK7-0); 3.2 E口 系统启动控制口,用于开机时确定MCU的工作模式。通常使用缺省状况,尽量不作为普通输入/输出端口。

  12. 3.3 H口、J口、M口、P口、S口和T口 这些端口都有第二种功能,在不使用第二种功能的时候,可以作为通用输入/输出口 • T口(PT7~0) :作为定时器模块的IOC关联引脚; • S口(PS7~0) :与SCI、SPI模块关联作为通信引脚; • M口(PM7~0):与CAN模块关联作为通信引脚; • P口(PP7~0) :与PWM模块关联作为通信引脚,也做唤醒中断输入; • H口(PH7~0) :与唤醒中断输入模块关联引脚; • J口(PJ7、PJ6、PJ1、PJ0);与唤醒中断输入模块关联引脚;

  13. 2.2 运行模式 1.多种芯片模式 满足各种需要,共3种: • 普通单片模式: 最终产品正常运行应用程序; • 特殊单片模式: BDM可用,开发、调试; • 普通扩展宽模式:数据16位; • 普通扩展窄模式:数据8位; • 仿真宽模式: 接逻辑分析仪,看总线控制信号; • 仿真窄模式: 同上; • 特殊测试模式:生产; • 特殊设备模式; 同上;

  14. 2.芯片模式的配置 教学、实验、常规开发仅要求: • 普通单片模式:MODC(BKGD)=1 • 特殊单片模式:MODC(BKGD)=0 特殊单片模式(Special Single Chip) ----又称为背景调试模式(Background Debug Mode,BDM) 引脚BKGD有内部上拉,悬空时默认为高电平; 当插上BDM头时,由BDM调试工具的相应引脚给BKGD提供低电平,使MCU进入特殊单片模式;若不插BDM头,则进入普通单片模式。

  15. 芯片模式的时序 MODA MODB MODC/BKGD RESET HCS12 CLOCK /RESET MODA MODB MODC Sample Latch 在复位时,复位信号的上升沿锁存MODC的输入电平到运行模式寄存器。

  16. BKGD 1 2 GND NC 3 4 RESET NC 5 6 VDD 3.BDM接口电路 BDM---Background Debug Mode 是Freescal自定义的,方便下载程序、在线调试、监视等 BDM调试器 ---须另购或自制,通过USB接口接PC,插头接目标板。 插头引脚形式: 信号含义: BKGD---接单线背景调试引脚 GND---接地 VDD---接电源 RESET---接目标机复位引脚

  17. 4.低功耗模式 运行模式如下: 等待(Wait) 停止(Stop)、 伪停止(Pseudo) • 应用背景: • 电池供电; • 功能多,串行使用; • 处于等待事件情况; • 根据需要选择不同模式。

  18. 等待模式: 特点:CPU 停止执行指令,时钟运行,所有外 设处于激活状态。 • 唤醒等待模式的条件: • 外部复位; • 时钟监控复位; • 看门狗复位 • 实时中断; • 自时钟模式中断; • 其它中断。

  19. 2)停止模式: 特点: 停止所有时钟,保留初始化; 唤醒条件: 外部中断、外部复位。 3)伪停止模式 特点: 时钟继续 工作 ; 可以选择看门狗、实时时钟使能; 唤醒条件: 外部复位; 实时时中断; 看门狗中断。 唤醒时间:等待模式小于伪停止模式, 伪停止模式小于停止模式。 4)加密模式

  20. EXTAL CMOS兼容的外部时钟 MCU XTAL 悬空 C1 EXTAL C1 EXTAL 晶振 MCU RB MCU 晶振 C2 XTAL VSSPLL RS C2 XTAL VSSPLL 2.3 振荡器和电路 提供MCU工作的时钟基本脉冲。 XTAL---振荡器的输出引脚, EXTAL---振荡器的输入引脚。 XCLKS(PE7)=1时,因有内部上拉,复位默认 XCLKS(PE7)=0时的两种接法:(XS128) 左图中,RB、RS为保证起振,RB取1M,高频率时RS取小或短接 滤波电容C1、C2取22pF 右图中,一般为外接有源晶振 S12(X)的总线时钟频率=晶振频率的1/2 如晶振频率为16MHz,则总线时钟频率为8MHz

  21. CRG时钟复位发生器

  22. 时钟与功能模块关联关系

  23. 2.4 S12XS128的最小系统电路设计 BDM电路 电源电路 复位电路 晶振电路 PLL电路

  24. 2.5 系统复位、运行监视与时钟选择 1. 复位功能 • 目的:错误或故障恢复 • S12X MCU复位共有5种: • 上电复位 • 低电压复位 • 外部复位 • COP看门狗复位 (可选,默认无) • 时钟监视复位 (可选,默认有) 当上述事件触发复位时,MCU在程序计数器中放置一个复位向量,处理器执行启动例程。COP复位和时钟监视复位还有其各自的复位中断向量。

  25. 复位产生条件: • 上电复位 : 正向跳变 ; • 低电压复位: 电压监测<4.65V; • 外部复位 : 手动; • 时钟监视复位 : 时钟失效(内复位); 低于预期频率; • 看门狗复位: 计时到(内复位); 复位不会返回到复位前的地点!

  26. 2.系统运行监视 两种监视手段,以保证系统的正确运行,提高可靠性: • COP看门狗定时器(WDT)---程序跑飞或异常时,使MCU复位 (正常运行时“喂狗”) • 时钟监视器(CM) ---时钟异常时,使MCU复位 (1)看门狗 WDT 背景: 程序跑飞; 等待不可能信号; 死循环,不合理参数。 支持: 时钟定时产生溢出 处理: 上电或专用复位程序。 地点: 关键点;长循环出口。 关闭: 调试程序时

  27. (2)时钟监视 CM ---监视时钟异常 背景 : 恶劣环境,晶体振荡器失效; 特点:独立于MCU时钟; 支持:独立硬件; 处理:复位程序 ; 应用:系统时钟故障报警 。

  28. 3. 时钟选择 三种时钟: OSCCLK PLLCLK SCM: 内部自给时钟,MCU启动后默认是关闭,误差大。 ◆COP (WDT) ,RTI 时钟取自OSCCLK,除非进入自时钟 ◆系统时钟Sysclk由PLL和OSCCLK选择一个作为系统时钟; ◆CM检测的对象是针对OSCLLK的频率 ◆PLL的时钟源是来自OSCCLK ◆总线时钟频率=系统时钟频率/2

  29. fBUSCLK = fOSCCLK /2 fBUSCLK = fPLLCLK /2 • MCU工作的总线时钟可以使用默认的外部时钟,也可以选择使用来自内部锁相环的时钟,以获得更高的总线时钟频率。 • 此时需要在MCU最开始初始化时设置时钟合成寄存器和时钟分频寄存器以确定PLL时钟频率,然后设置时钟选择寄存器的控制位PLLSEL=1,从而选定PLL时钟,而不用复位默认的外部时钟。 锁相环产生的时钟频率可由下面的公式得到: fPLLCLK= 2 × fOSCCLK × (SYNR+1) / (REFDV+1) 式中:fOSCCLK为振荡器频率;SYNR为时钟合成寄存器的值;REFDV为时钟分频寄存器的值。 例如,当S12X16MHz外部晶振频率时,若将SYNR设为2,REFDV设为1,就可以得到48MHz的锁相环时钟频率和24MHz的总线频率 • S12(X)MCU的时钟、复位和WDT、CM的操作控制需要设置一些基本的寄存器,涉及到的各个寄存器描述见书。。。

  30. 2.6 存储器 ROM(Read Only Memory ):只读存储器 RAM(Random Access Memory ):随机存取存储器 MCU常用的存储器: • ROM---程序存储器;非易失;不能更改 • RAM---数据存储器;掉电丢失数据;可读/写 • EPROM---紫外线擦除。非易失;可反复擦写,擦写速度慢 • EEPROM---电擦除。非易失;可反复擦写,擦写速度稍慢 • FLASH ROM---闪存,更高级的EEPROM。非易失;可反复擦写并允许在线编程;更高速、更方便、容量大.简称Flash. 在Freescale S12X比较新出的MCU中,有DataFlash取代EEPROM的趋势

  31. 2.6.1 存储器空间组织与分配 XS128的存储器资源:8KB RAM、8KB DataFlash、128KB Flash。 Freescale单片机的存储器结构采用冯.诺依曼---RAM、ROM统一编址,不同于51单片机(哈佛结构)。 编址范围:64KB($0000~$FFFF,每存储单元存8位信息) 空间覆盖:I/O寄存器 1KB,RAM 8KB,DataFlash 8KB (EEPROM) FLASH 128KB(页面扩展机制) 地址分配重叠时,存储器优先级:

  32. $0000 2KB 寄存器 $0800 1KB 分页DataFlash $FE $FD $FC $FB …… 255个 $00 $0C00 1KB 保留 $FF $1000 …… 254个 4KB 分页RAM $FD $FC $FB $FA $00 $2000 $FE 8KB RAM $FF $4000 $FD 16KB Flash $8000 $FE 16KB 分页Flash $FC $FB $FA $00 …… 254个 $C000 $FF 16KB 闪存区 $FF00 复位、中断向量区 $FFFF $0000~$07FF(2KB):I/O寄存器区。用以安排S12X的众多不同I/O接口模块的几百个寄存器,I/O寄存器区可以映射到其它位置,但一般不予改变,就留给I/O寄存器使用。 $0800~$0BFF(1KB):分页Data Flash区。通过分页扩展的方法以达到管理256KB空间的Data Falsh,此区间对应$00~$FE共255个页面窗口,每个页面为1KB空间。其中本地地址空间固定占用$FE页面。 $0C00~$0FFF(1KB):保留未用。 $1000~$1FFF(4KB):分页RAM区。通过分页扩展的对应$00~$FD共254个页面窗口,每个页面为4KB空间,其中本地地址空间固定占用$FD页面。 $2000~$3FFF(8KB):固定RAM区。对应XS128实际的8KB RAM,固定占用$FE、$FF页面。如果使用复位默认地址分配($FD页面),RAM空间实际为$1000~$3FFF,因此,如果要使全部的8KB RAM都可见,就需要将RAM的地址空间映射到$2000~$3FFF这个区域,即须调整到$FE页面开始,才可访问到实际的连续8KB。 $4000~$FFFF(48KB):Flash区。分成3块,每块16KB。其中$8000~$BFFF是页面窗口,通过分页扩展管理超过64KB空间的Falsh。而$4000~$7FFF、$C000~$FFFF为2个16KB的固定Flash区,固定占用$FD、$FF页面。 $FF00~$FFFF(256B):复位、中断向量区。占用Flash的最后256字节的空间,BDM模式下能被BDM指令访问。其中地址$FFFE复位向量地址,该地址是S12X MCU整个程序的入口地址。 其中地址$FFFE是MCU整个程序的入口地址。

  33. 本地地址 全局地址 分页扩展: Data Flash------EPAGE寄存器 RAM------RPAGE寄存器 Flash------PPAGE寄存器 全局地址:GPAGE寄存器 7位+本地16位=23位---8MB

  34. 2.6.2 存储器地址映射管理 • 作为初学者或者默认存储器地址映射可以满足使用时,可以不改动默认的映射空间。当需要改变或者需要用到足量的RAM,或者是需要使用更大RAM、Flash、DataFlash容量时,必须重新配置相关的映射管理寄存器。 • 相关寄存器设置……

  35. 2.7 中断系统 中断概念:指某外部事件或异常发生时,CPU暂时停止执行当前的程序(保护断点),转向中断服务程序;中断处理完后返回原来的程序继续运行(恢复断点)。 中断是MCU的重要功能。一般须具有以下功能: ●能实现中断响应、中断服务和中断返回。 ●能实现中断优先级配置。 ●能实现中断嵌套。 ●能通过软件实现模拟中断,便于中断的调试。 S12(X)MCU具有一个功能强大的中断处理系统,并且有灵活的配置方式供使用者选择。

  36. 2.7.1 中断源 分3大类: 1. 复位中断 特殊的中断,不返回原来的程序,一切重新开始 任何时候都是不可屏蔽的,具有复位事件发生后强制执行的能力 S12(X)的复位向量有3个,但能触发复位的动作能有4个: 上电复位、外部复位、时钟监视复位、看门狗定时器溢出复位 2. 特殊中断 非法指令陷阱中断、软件中断(SWI)和外部中断(/XIRQ) 不可屏蔽中断。 稍不同:外部中断( /XIRQ )可以在系统复位初始化时通过设置CCR寄存器的中断屏蔽位X来进行屏蔽或开放设置。 3. 普通中断 大量的其它类型的中断,共有47个中断源: 如:外部中断以及时钟、定时器、并行I/O口、SCI/SPI/CAN接口、A/D等内部功能部件的中断。。。 可屏蔽中断,即可以通过设置CCR的I位进行打开和关闭。 注:I位---全局可屏蔽中断的打开/关闭控制,局部另设

  37. 2.7.2 中断向量 向量机制,实现对中断的管理和处理: 在$FF00~$FFFF地址空间(属于Flash空间)中设置了一个向量映射表,每一个向量对应一种中断的处理程序的入口地址。MCU在中断响应时,依据中断信号的来源在中断向量表中对应的位置取得中断向量的2个字节地址即读取中断处理程序的入口地址,进而依此地址转到相应的中断服务程序。 向量表中的每个向量占用2字节空间,$FF00~$FFFF共占近256个字节地址 S12X最大可有100多个中断向量 XS128实际只使用到50个左右向量地址,部分保留未用 向量地址的具体安排及其屏蔽情况、使能情况、优先级设定情况如表2-5 例如:上电复位和外部RESET复位中断的向量地址:$FFFE~$FFFF 外部中断IRQ的向量地址为$FFF2-$FFF3 定时器通道7中断的向量地址为$FFE0-$FFE1。 注:各组向量地址所对应的序号也称为中断向量号,中断向量号在CodeWarrior编程环境的C语言编程中需要用到。 另外,S12X单片机的中断向量地址也可以通过基地址+偏移地址的方式表达,并且基地址可以由用户改变,配置到Flash区域的任何地址,这可以通过配置中断向量基址(Interrupt Vector Based,IVB)寄存器予以实现。

  38. 2.7.3 中断处理 硬件+软件结合完成: (1)中断请求 在中断源未被屏蔽,且中断允许触发器被置位时,可以向CPU发出中断请求 (2)中断响应 中断请求随机,一般在现行指令结束时检测中断请求,如中断响应条件满足就进入中断响应周期,自动进行3件事: • 关中断,即将CCR的I位置1,以屏蔽其它中断干扰。 • 保护断点地址、寄存器和标志寄存器CCR的内容压入到堆栈,即现场保护。 • 跳转到中断服务程序的入口地址,即将中断向量地址的内容载入PC。 (3)中断处理程序 完成中断后要处理的功能。中断服务程序通常放在不分页FLASH区。 (4)中断返回 中断服务的最后一条指令必须是RTI,返回时自动将堆栈中的标志寄存器内容、寄存器内容和断点地址弹出,使程序回到中断前的地址继续运行原来的程序。 注:在中断发生时S12X自动将寄存器Y、X、D也压栈(自动出栈)

  39. 2.7.4 中断的使用与配置 1. 中断屏蔽----X、I位,外加各自的使能 2. 优先级 总体上,不可屏蔽中断 高于 可屏蔽中断,可以多级嵌套。 • 不可屏蔽中断的优先级---由硬件规定,按以下次序递减: • 上电复位或外部RESET引脚复位; • 时钟监视复位 • 看门狗复位 • 指令陷阱 • 软件中断SWI • 外部中断XIRQ • 可屏蔽中断的优先级 • 默认由中断向量在中断向量表的排序确定 • 可屏蔽中断的优先级也可通过中断请求配置数据寄存器(INT_CFDATA0~7)配合中断请求配置地址寄存器(INT_CFADDR)进行改变。

  40. 3. 中断使能及方式控制 设置寄存器 例:初始化设置外部中断IRQ控制寄存器------IRQCR IRQE:0=低电平触发,1=下降沿触发 IRQEN:0=禁止IRQ中断,1=使能 程序设计 • 主程序中进行中断初始化,并执行占用时间较多的程序; • 中断服务程序要求简短、高效,条件苛刻时尽量使用汇编语言; • 在整个源程序的末尾声明中断子程序的所对应的矢量地址 #define EnableInterrupts _asm{CLI} //宏定义 void main () { IRQCR= 0xC0; //1100 0000B EnableInterrupts; //开中断 for(;;) { } } 以上所有源程序会通过IDE集成开发环境自动进行编译、链接、定位,形成可执行机器代码。 void xxx_ISR(void) { …… }

More Related