MC9S12DG128的结构与工作原理.ppt
《MC9S12DG128的结构与工作原理.ppt》由会员分享,可在线阅读,更多相关《MC9S12DG128的结构与工作原理.ppt(73页珍藏版)》请在三一办公上搜索。
1、第2章 MC9S12DG128的结构与工作原理,本章内容 MC9S12DG128的内部结构 MC9S12DG128引脚功能 MC9S12DG128的运行模式 MC9S12DG128的存储器组织,概述,MC9S12DG128的内核是16位中央处理单元CPU12,有29个独立的数字I/O口(A、B、K和E),20个独立的数字I/O口(H、P、J)具有中断和唤醒功能。MC9S12DG128内部为16位数据通道,外部总线可以按照8位数据窄总线模式操作,允许与8位数据总线的存储器连接,以降低成本。根据系统需求,PLL电路允许调整电源功耗及性能。,概述,MC9S12DG128主要特性:16位 HCS12
2、CPU内部存储器128 KB Flash8 KB RAM2KB EEPROM,概述,外围设备2个增强型串行通信接口(SCI)2个串行外设接口(SPI)3个 MSCAN 模块1个I2C总线接口2个8通道10位 A/D8通道16位增强型捕捉定时器(ECT)8通道8位或4通道16位 PWM,2.1 MC9S12DG128的内部结构,MC9S12系列单片机的芯片主要有两种封装形式,即80脚的QFP(Quad Flat Pack)和112脚的LQFP(Low profile Quad Flat Pack),个别子系列还有其它封装形式,如48脚。由于各子系列中的存储器类型、容量和功能模块不完全相同,因此,
3、不同芯片之间引脚功能略有差异,引脚标号不一定兼容。但在每个子系列中,例如,所有128kB Flash的MC9S12D系列的单片机,功能相同的引脚都兼容。,2.1 MC9S12DG128的内部结构,图2.1 MC9S12DG128内部结构框图,2.1 MC9S12DG128的内部结构,图2.1为MC9S12DG128的内部结构框图,其中功能模块按照112引脚封装给出。MC9S12DG128单片机的112个引脚中,除了地址、数据、控制三总线外,主要是I/O引脚,多数引脚具有两种或两种以上的功能。图中左、右两部分分别是单片机的核心和接口部分,包括CPU12、存储器、通用I/O、电压调整模块、后台调试
4、模块、系统运行监视模块、时钟产生模块、系统集成模块、外部总线接口、A/D转换器、增强型捕捉定时器模块、脉宽调制模块、串行通信接口、CAN总线接口、Byteflight接口、字节数据链路通信接口和管脚中断逻辑。,2.1 MC9S12DG128的内部结构,2.1.1 CPU12内核(Star Core)CPU12内部结构【组成】算术逻辑运算单元ALU、CPU控制逻辑电路、CPU寄存器和指令队列。内部采用16位数据总线,各部件通过内部总线相连,外部数据总线8/16位可选。(1)20位的ALU部件完成指令所规定的算术/逻辑运算等操作。(2)控制逻辑负责解释指令和产生相应的控制信号,并统一协调各部件的工
5、作。(3)寄存器组用于存储操作数或运算结果。(4)3级指令队列用来缓冲程序信息。,2.1 MC9S12DG128的内部结构,2.1.1 CPU12内核(Star Core)CPU12内部寄存器CPU12的寄存器集基于累加器,包括5个16位的寄存器和一个8位的状态寄存器。其中,累加器D又可分成两个8位的寄存器A和B,16位寄存器D、X、Y通常用于暂存数据或存储器地址;SP为堆栈指针,用于指示堆栈的位置;PC为程序指针,用于寻址程序代码;条件码寄存器CCR用来反映运算结果的特征,也控制CPU的行为。,图2.6 编程模型(Programming Model),2.1 MC9S12DG128的内部结构
6、,2.1.1 CPU12内核(Star Core)(1)累加器D累加器D是一个16位寄存器,其高位和低位字节分别称为寄存器A和寄存器B,可分别作为两个8位寄存器进行访问。实际上,D和A、B指向同一个寄存器,只是名称不同而已,A、B、D均可称为累加器。在任何时刻都可以使用8位或16位方式对累加器进行访问。若把一个16位数据存入累加器D中,则高8位在A寄存器中,低8位在B寄存器中。与此相对应,若把D寄存器中的一个16位数据存入存储器,则高8位在存储器的低位地址,低8位在存储器的高位地址。注意,任何Motorola(Freescale)公司独立设计的16位、32位CPU中,寄存器与存储器字节的对应关
7、系都是高位数据存放于低位地址,低位数据占用高位地址,这与Intel公司的CPU数据存放格式正好相反。,2.1 MC9S12DG128的内部结构,2.1.1 CPU12内核(Star Core)(2)间址/变址寄存器(Index Register)X、YCPU12内部有两个16位地址寄存器IX和IY,称为间接寻址寄存器,简称间址寄存器或变址寄存器。一般情况下作为指针寄存器,用于多种寻址方式下的地址计算,也可用于临时存放数据或参与一些运算,只能按照16位方式访问。在汇编语言中,这两个寄存器进一步简称为寄存器X和寄存器Y。在数据块传送时,X和Y寄存器都可以自动加、减116,X寄存器常作为源地址指针,
8、Y寄存器常作为目的地址指针,故X和Y寄存器也称作指针寄存器。,2.1 MC9S12DG128的内部结构,2.1.1 CPU12内核(Star Core)(3)堆栈指针SP(Stack Pointer)堆栈在内存中专门开辟出来的、按照“先进后出,后进先出”原则进行存取的区域。堆栈指针SP用来专门指示堆栈位置。在使用堆栈之前,要先给SP赋值,以规定堆栈的起始位置,称为栈底。当数据存入堆栈后,堆栈指针的值将随之变化。最后一个入栈的数据所在的位置(单元)称为栈顶。通常,CPU的堆栈有两种类型:向上生长型和向下生长型。如图2.7所示。,图2.7堆栈的类型,2.1 MC9S12DG128的内部结构,2.1
9、.1 CPU12内核(Star Core)向上生长型堆栈栈底占用较低地址,栈顶占用较高地址。数据压入堆栈时,SP的内容自动加1,作为本次进栈的地址,然后再存入信息。随着数据的存入,SP的值越来越大。数据从堆栈弹出后,SP的内容自动减1。向下生长型堆栈栈底占用较高地址,栈顶占用较低地址。CPU12的堆栈属于向下生长型,将一个字节数据压入堆栈时,SP自动减1。从堆栈中弹出一个字节数据时,SP自动加1。若操作数为双字节,则SP每次加2或减2。因此,随着数据的存入,SP的值越来越小。SP总是指向最后压入堆栈的一个字节数据,称为实栈顶。压栈操作时,先调整指针(减1或减2),后保存数据。初始化时,一般将S
10、P指向与栈底相邻的单元,它不属于栈底,以此表示堆栈为空。,2.1 MC9S12DG128的内部结构,2.1.1 CPU12内核(Star Core)SP主要用于堆栈管理,用于中断和子程序调用时保存系统地址信息,也可以存储临时信息,一般不做他用。在不影响其内容的前提下,也可替补用作所有变址寻址方式下的变址寄存器,通常不参与运算。惟一例外的是,在符号扩展指令中用作目的寄存器。此外,还具有自身的加、减1指令。影响SP内容的指令有加载、目的操作数为SP的寄存器传送指令、压栈、退栈、加减1、中断和子程序调用等。使用堆栈前,用户程序必须对SP进行初始化设置。复位时SP=$00FF。,2.1 MC9S12D
11、G128的内部结构,2.1.1 CPU12内核(Star Core)(4)程序计数器PC(Program Counter)16位程序计数器PC的内容决定程序执行的顺序,用户可以读取,但不能直接写入。因为要自动寻址复位矢量,复位后PC自动回到默认状态。单片机工作时,PC始终指向指令序列中下一条要执行的指令,分支、调用或转移指令均能改变PC的值。PC是特殊的寄存器,它决定CPU的取指地址,因此不能挪作他用,但可以像SP一样,在大多数变址寻址方式下作为变址寄存器,只是不能用在自动增减地址的变址寻址操作中。PC主要是直接为CPU服务,对于用户程序来讲,PC不能参与任何运算,唯一的作用是辅助进行变址寻址
12、操作。,2.1 MC9S12DG128的内部结构,2.1.1 CPU12内核(Star Core)(5)条件码寄存器CCR(Condition Code Register)条件码寄存器是一个8位寄存器,相当于标志寄存器FR或程序状态字PSW(Program State Word),但不同的是,它还可以参与控制CPU的行为。条件码寄存器中各位的定义:,CCR中的各位包括两部分:5个算术特征位(Arithmetic Flag Bit),即H、N、Z、V、C,它们反映上一条指令执行结果的特征(状态);3个MCU控制位,即中断屏蔽位X、I和STOP指令控制位,这3位通常由软件设定,以控制CPU的行为。
13、复位后,X、I两位默认状态为1,屏蔽系统中断。CCR是真正的专用寄存器,除了C、H位以外,其他各位不参与任何运算。,2.1 MC9S12DG128的内部结构,2.1.1 CPU12内核(Star Core)CCR中各位的主要含义:C进位/借位标志(Carry/Borrow Flag)当加法运算产生进位或减法运算产生借位时,C=1,否则,C=0。V溢出标志(Overflow Flag)算术运算后,若出现2补码(twos-complement)溢出时,V=1;若无溢出,V=0。Z0标志(Zero Flag)当运算结果为0时,Z=1;结果不为0时,Z=0。N符号位(负标志)(Negative Fla
14、g)当运算结果为负时,N=1,否则,N=0。H辅助进位(半进位)标志(Half-carry Flag)在加法过程中,若累加器A中的D3向D4位产生进位,H=1;否则,H=0。,2.1 MC9S12DG128的内部结构,CCR中各位的主要含义:I可屏蔽中断控制位(Maskable Interrupt Bit)I位是全局中断屏蔽控制位(global interrupt mask),用于禁止或允许所有可屏蔽中断源,这些中断源包括来自IRQ引脚的中断和从片内资源来的中断请求。任何时候该控制位均可置位或清零。I=1,禁止可屏蔽中断请求;I=0,允许可屏蔽中断请求。复位时默认I=1。进行中断服务时,该位自
15、动置位。为了允许可屏蔽中断请求,软件必须清除该位。,2.1 MC9S12DG128的内部结构,CCR中各位的主要含义:X非屏蔽中断控制位(Non-maskable Interrupt Bit)X位用于屏蔽来自XIRQ引脚的中断请求。若X=1,禁止来自引脚XIRQ的中断请求;X=0,允许XIRQ来自引脚的中断请求。X位的复位默认值是1,为了允许来自XIRQ引脚的中断服务请求,必须通过软件将X位清零。X位一旦被清零,允许XIRQ中断,那么用软件的方法不能使X位再重新置位,除非来一次复位才能使它再次置1。SSTOP指令屏蔽位(STOP Mask Bit)S位用于禁止CPU执行STOP指令。S=1,屏
16、蔽STOP指令;S=0,允许执行STOP指令。STOP指令将关闭MCU所有时钟信号,片上振荡器停止工作,并使MCU处于低功耗工作模式。,2.1 MC9S12DG128的内部结构,2.1.2 存储器MC9S12DG128内部集成了三种存储器,包括8KB的RAM,2KB的EEPROM和128KB的Flash存储器。RAM可以用作堆栈、保存中间结果和动态数据,甚至可以在调试时存放程序。EEPROM可以保存设置的信息等半永久数据。Flash存储器主要用来存放程序和原始数据等,反复擦写次数可达10万次以上,无需外加编程电压,在正常工作时没有被改写的危险。,2.1 MC9S12DG128的内部结构,2.1
17、 MC9S12DG128的内部结构,2.1.3 I/O接口MC9S12DG128共有91个I/O口,包括8个8位并行口A、B、E、H、M、P、S、T,1个7位并行口K,1个16位并行口PAD,1个4位并行口J。这些并行I/O口除了作为通用I/O口GPIO(General Purpose Input Output Interface)外,其中大部分为复用引脚,即具有第二、第三、甚至第四功能。芯片处于扩展模式下,A、B、E、K口被用作外部总线信号。H、J、M、P、S、T接口被集成在端口集成模块PIM(Port Integrated Module)内,与片内其他功能模块的引脚复用。,2.1 MC9S
18、12DG128的内部结构,2.1.4 电压调整模块电压调整模块用于给单片机内部提供合适的电源电压。单片机外部供电电压为5V,I/O接口也按照5V供电的逻辑电平设计,但芯片内部却采用2.5V电压工作,因此,该模块实现5V2.5V的电压转换,产生片内所需要的2.5V电压。VREGEN端用于从外部禁止该模块,当使用外部2.5V电压给内部逻辑电路供电及使用外部有源振荡器提供时钟时,可以不使用该模块。,2.1 MC9S12DG128的内部结构,2.1.5 单线(Single Wire)后台调试模块BDM和时钟运行监视模块【后台调试模块BDM】BDM模块用于OCD(On-Chip-Development)
19、方式支持开发,可对片内Flash进行擦除和在线编程,通过该模块,可以在程序运行时,动态地获取CPU寄存器的状态和信息,用于应用程序的调试。BDM方式无需仿真器,可以实现硬件断点、条件断点、在线调试等全部功能,外部只需简单的接口和相应的软件即可。BDM调试工具与单片机的通信通过双向的BKGD引脚实现,复位时BKGD引脚的初始电平将影响单片机的运行模式。,2.1 MC9S12DG128的内部结构,(1)时钟产生电路CGM(Clock Generation Module)产生片内各模块所需要的各种时钟,需外加晶体振荡器。,2.1.6 时钟产生模块CGM和复位电路,图2.8 时钟连接,2.1 MC9S
20、12DG128的内部结构,2.1.6 时钟产生模块GCM和复位电路【时钟产生模块GCM】MC9S12DG128时钟发生器有以下三种:具有锁相环PLL频率合成器锁相环电路用于产生高于外部晶体振荡器频率的时钟,片内的压控振荡器VCO产生高于外部时钟频率数倍的振荡频率,通过锁相环电路将频率稳定在某一确定的数值上。例如,使用外部32kHz晶振,可以产生8MHz的总线频率。利用0.516MHz的低功耗晶振,构成锁相环电路的一部分,可产生高达25MHz的片内总线时钟。通过EXTAL引脚提供与CMOS电平兼容的外部时钟信号,其输入频率要求在016MHz之间。,2.1 MC9S12DG128的内部结构,2.1
21、.6 时钟产生模块CGM和复位电路(2)复位电路复位电路产生上电复位信号,使CPU进入复位状态,即将CPU和MCU芯片内资源初始化。大多数CPU只有一个复位源,即复位引脚,复位后开始运行的地址也是固定的。但MC68HC12/9S12单片机设置了多个复位源,也不直接转到某个地址执行,而是采用复位矢量,复位后可以通过矢量转向不同的程序入口。下列任何一个事件启动复位时序(1)时钟监视器使能,且时钟监视器检测到时钟变慢或停止。(2)COP看门狗使能,且看门狗定时器定时到(超时溢出)。(3)上电复位POR(Power-on Reset)。,2.1 MC9S12DG128的内部结构,2.1.7 系统集成模
22、块SIM(System Integration Module)【SIM模块功能】接收外部可屏蔽中断和非屏蔽中断的输入信号接收单片机复位后的模式选择信号根据复位时模式选择信号MODA、MODB和MODC(BKGD)引脚的电平状态,单片机可进入不同的工作模式。输出内部总线的时钟(E时钟)输出外部总线扩展时的读/写信号SIM模块与外部的连接通过端口E(PTE)实现。,2.1 MC9S12DG128的内部结构,2.1.7 系统集成模块SIM(System Integration Module),2.1 MC9S12DG128的内部结构,2.1.8 外部总线接口【三总线的形成】数据总线、地址总线与通用I
23、/O端口复用,即A口(PTA)和B口(PTB)兼作地址和数据总线,而控制总线则占用端口E的部分引脚。【扩展方式】宽总线扩展16位地址总线和16位数据总线窄总线扩展16位地址总线和8位数据总线,2.1 MC9S12DG128的内部结构,2.1.8 外部总线接口宽总线扩展方式端口A高8位地址线和高8位数据线端口B低8位地址线和低8位数据线需要由外部两个8位地址锁存器锁存地址信号。当扩展大于64KB的存储器时,由页面映射寄存器PPAGE对应的7位端口K(PTK)中的6个引脚PK5PK0产生高位地址A19A14,使地址空间扩展到1MB。窄总线扩展方式端口A高8位地址线A15A8与8位数据总线分时复用端
24、口B低8位地址线需要一个外部8位地址锁存器锁存高8位地址信号。,2.1 MC9S12DG128的内部结构,2.1.9 ATD模块采样保持和A/D转换对模拟电压进行采样,在时间上离散化,得到对应的离散电压信号,然后再用模/数转换器对电压幅值进行量化,得到数字信号。将模拟信号转换成数字信号的转换器称为模数转换器,即A/D转换器,简写为ADC。模数转换器的种类很多,分属于两大类,即直接转换和间接转换。【直接转换】将模拟电压直接转换成数字量,如并行式A/D转换、逐次比较式A/D转换等;【间接转换】将模拟电压先转变成中间量(时间或频率等),然后再将这些中间量转换成数字量,如双积分式A/D转换、V/F式A
25、/D转换等。单片机内集成的A/D转换器一般都是逐次比较型(逐次逼近型)。,2.1 MC9S12DG128的内部结构,2.1.9 ATD模块直接转换的基本思路:如果一个A/D转换器输入的电压与一个D/A转换器输出的电压相等,那么,D/A转换器输入的数据即可看成是A/D转换器所要求的数据。【A/D转换器组成】一个D/A转换器、数据寄存器和一个电压比较器。数据寄存器的输出数据作为D/A转换器的输入数据。D/A转换器输出的模拟电压与输入的模拟电压相比较。电压比较器用来控制数据寄存器数据的改变。当电压比较器的两个输入电压相等时,控制逻辑将使数据寄存器的数据停止改变,这时,数据寄存器的数据就是对应于模拟输
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MC9S12DG128 结构 工作 原理
链接地址:https://www.31ppt.com/p-5439600.html