MC9S12单片机的内核及片上资源.ppt_第1页
MC9S12单片机的内核及片上资源.ppt_第2页
MC9S12单片机的内核及片上资源.ppt_第3页
MC9S12单片机的内核及片上资源.ppt_第4页
MC9S12单片机的内核及片上资源.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

Freescale单片机发展历程,Freescale公司单片机的发展演变概况,MC9S12XS128片上资源,MC9S12XS单片机是以CPU12的V2内核为核心的单片机系列。 最高总线速度从25MHz提高到40MHz。 电源简化供电,不在需要外部的PLL滤波电路器件。 以闪存代替EEPROM,编程简化。 128K Flash,8K RAM,2K EEPROM、2个SCI、2个SPI、1个IIC、2个CAN、16路12位ADC、8路PWM、8路16位定时/计数器、一个16位脉冲累加器,支持单线BDM调试。,MC9S12xs128片上资源,内核,外设,内部结构及引脚,内核结构存储器,以MC9S12XS为例 128K FLASH 8K RAM 8K EEPROM,MC9S12DG128拥有128K的FLASH,8K的RAM,2K的EEPROM。,内部存储器基本内存空间,内部存储器基本内存空间,S12X CPU是16位的,它的寻址操作都是16位的,所以最大的寻址空间就是 =64K。 S12X系列单片机采用了分页管理的方式来怎增加寻址空间,扩大存储能力。 为此增加了以下寄存器来管理: 全程寄存器 GPAGE 闪存分页管理寄存器 PPAGE RAM页面管理寄存器 RPAGE EEPROM页面管理寄存器 EPAGE,I/O寄存器,EEPROM,RAM,16KB,固定Flash,$3E,16KB,分页Flash,$30,16KB,固定Flash,$3F,中断向量区,$0000,$0400,$1000,$4000,$8000,$C000,$FF00,$FFFF,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3F,Block3,Block2,Block1,Block0,由PPAGE寄存器(地址$30)决定某一页在$8000$BFFF。,xs256片内有256KFlash,分16页,每页16K,一般定位:$4000$7FFF 16K(页面编号$3E) $C000$FF00 16K(页面编号$3F),内存以页面方式扩展,$8000$BFFF永远只能看到某一页,存储器优先级,若地址分配出现重叠,按优先级自动屏蔽级别较低的资源 存储器分配优先级:,高,低,电压调整模块及相关引脚,电压调整模块 给内核供电1.8V 给电压调整模块及I/O供电3.3v-5V。 单片机内部有电压调整模块,产生单片机 内部需要的电压。 3.3v-5v宽电压范围供电。,输入: VDDR: 5V 给内部电压调整器供电。 VDDX1: 5V 给一部分I/O模块供电。 VDDX2: 5V 给另外一部分I/O模块供电。 VDDA: 5V A/D模块供电。 VRH 5V A/D变换参考电压输入端。,电压调整模块及相关引脚,输出: VDDF: 2.8V 内部电压调整器的输出端,给片内闪存供电。 VDD: 1.8V 内部电压调整器的输出端,给CPU内核供电。 VDDPLL:1.8v 内部电压调整器的输出端,给锁相环供电。 对于电压输出引脚,我们需要加上去耦电容,尤其是锁相环输出电路VDDPLL。,时钟和锁相环及相关引脚,EXTAL、XTAL:接外部振荡器 RESET:接外部复位,低电平有效 VDDPLL、VSSPLL:锁相环供电引脚。该引脚需要接去耦电容。,VDDPLL VSSPLL,去耦电容,模式选择及相关引脚,R/W:读写信号,指示总线上数据方向 LSTRB:总线模式下低位字节(奇地址)选通 ECLK:内部总线时钟输出,一般在宽扩展模式下地址锁存用 BKGD(MODC)、MODB(PE6)、MODA(PE5):模式选择 NOACC/XCLKS:当前外部总线操作无效,模式选择和PORTE复用 TEST:保留脚,接地 XIRQ:非屏蔽中断 IRQ:可屏蔽中断,模式选择,MCU片上集成了十余个I/O接口,其中有通用并行I/O口(一般每口8个外部引脚)以及SCI、PWM、ADC、I2C、CAN等专用子系统。 PTA、PTB、PTE、PTH、PTJ、PTS、PTP、PTK、AD接口。 复位后所有I/O引脚默认设置为通用I/O输入,当专用子系统激活后,自动变更为专用功能。,A/B:在扩展方式下为地址数据分时复用总线;在单芯片模式下为通用I/O。,I/O模块及相关引脚,ATD模块及相关引脚,VDDA、VSSA:A/D模块电源引脚。一般5V。 VRH、VRL:参考高压和参考低压,一般接5V(隔离)和GND(单点共地)。,PTAD0-PTAD15:模拟量输入引脚,16个通道。,A/D的精度可是8位、10位、12位。,定时器及相关引脚,IOC0-7: 输入捕获:捕获外部有效边沿 输出比较:输出一定宽度的脉冲 PT7 可以做16位脉冲累加器。,作为普通I/O口时,为PORTT,输入输出。,SPI、PWM及相关引脚,2个SPI口 MISO:主机输入/从机输出 MOSI:主机输出/从机输入 SCK:同步时钟 SS:从机选择,PWM0-7:PWM模块8个通道 XS128的PWM引脚是可以选择的,通过PTTRR可以把PWM引脚定义到PP口或者PT口。默认是在PP口上。 作为普通I/O:PORTP,异步串行口及相关引脚,2个SCI: RXD:数据接收 TXD:数据发送 1个SPI 1个BDLC,4(5)个CAN:RXCAN接收、TXCAN发送 作为普通I/O使用:PORTS,PORTM,中断I/O口,作为普通并行I/O口:PORTJ、PORTH,PJ口和PH口可以作为中断口:可选择上升或者下降沿中断; PJ6和PJ7与I2C和CAN4模块复用引脚。( I2C:SDA数据引脚、SCL时钟引脚),堆栈,堆栈在单片机中有着极其重要的作用。堆栈是一块连续的存储空间,主要用于保存临时数据、局部变量、中断或子程序的返回地址以及核心寄存器的内容。 在CPU中有一个堆栈指针寄存器(Stack Pointer),简称SP寄存器,用来指明堆栈当前栈顶的位置。,子程序调用时,程序指针PC内容自动压栈,子程序返回时,将压栈的地址返回到PC中,恢复主程序运行。 中断响应后,除PC内容自动压栈外,CPU寄存器Y、X、A、B、CCR也依次自动压栈;执行中断返回指令时,将堆栈中保存的现场信息按照入栈时相反的顺序依次自动出栈,原程序从中断的下一条指令处恢复运行。,在子程序调用和中断操作中,堆栈是CPU自动进行的。 堆栈由高地址向低地址生成,SP总是指向最后进入堆栈的一个字节 实栈顶 压栈时先调整堆栈指针(SP(SP1),后保存数据。 出栈时先弹出数据,后修改栈顶(SP(SP1),栈区必须在程序开始部分在内部RAM区指定,即SP的初始化。,中断进栈举例:执行到$80F0处的程序时,CPU响应中断,且此时SP的内容(栈顶)为$3F00,则,自动压栈的内容和顺序,中断返回时,自动出栈的内容和顺序,3-5 复位及时钟复位,上电复位 单片机自动检测VDD端的正跳变,启动自动工作。 外部复位 通过RESET引脚加一低电压,拉低超过一定时间 后可实现复位。 看门狗复位 帮助系统在软件跑飞后自动复位。软件必须定期复位看门狗定时器,否则溢出,导致MCU复位。 时钟监视器复位 利用内部的RC电路来保证时钟频率满足要求。如果时钟频率跌落到预定值以下,产生复位。,振荡器和时钟电路,EXTAL是外部时钟输入或石英振荡放大器的输入 XTAL是石英振荡放大器的输出,串联方式(PE7悬空),并联方式(PE7引脚要拉低),任何CPU都离不开时序逻辑电路,没有时钟脉冲无法运行。,利用锁相环可以提高总线频率 若晶振为4M 不使用锁相环:总线频率为2M 使用锁相环:总线频率可为40MHz 可通过以下锁相环模块的寄存器设置提高总线频率 锁相环控制寄存器(PLLCTL) 时钟合成寄存器(SYNR) 时钟分频寄存器(REFDV) 时钟产生模块的标志寄存器(CRGFLG) 时钟选择寄存器(CLKSEL),时钟初始化寄存器共5个,(1)锁相环控制寄存器(PLLCTL),锁相环电路允许位 1允许 0禁止,时钟监控允许位 1允许 0禁止,注:其余各位的描述见教材57页。,时钟分频寄存器REFDV,前两位REFFRQ10和参考时钟有关: 1-2M 00 2-6M 01 6-12M 10 12以上 11 后六位是分频系数。,时钟合成寄存器SYNR,VCOFRQ10是和压控振动器有关的: VCO频率 32-48M 00 VCO频率 48-80M 01 VCO频率 80-120M 10 VCO频率 120M以上 11 后六位锁相环时钟倍频数(063),时钟产生模块的标志寄存器 CRGFLG,LOCK位:锁相环锁定标志,当锁相环输出稳定后lock位置1.从外部晶振切换到VCO时钟时需要查看该位,预分频寄存器POSTDIV(默认时),例如:选用12MHz的外部晶振,若将SYNR设为19 ,REFDV设为05,通过公式计算可得 PLLCLK80MHz。fbus=40M,POSTDIV 为默认时(后四位全0) fvoc =fpll,注:其余各位的描述 见教材57页和58页。,(5)时钟选择寄存器(CLKSEL),选定锁相环 1表示Bus ClockPLLCLK/2 0表示Bus ClockOSCCLK/2,PLL例子,REFDV=5; 设置分频系数 SYNR=0X53; /设置倍频参数 while(0=(CRGFLG-LOCK);/等待稳定 POSTDIV=0;/预分频系数默认fpll=fvoc CLKSEL=0x80; /选择PLL作为时钟 /若晶振为12M,则PLLCLK=2*12*(19+1)/(5+1)=80MHz,则总线频率是40MHz,所谓中断就是指CPU在执行程序的过程中,当出现了某些异常事件或请求时,CPU暂时中止正在执行的程序,而转去执行对异常事件或某种请求的服务子程序。当处理完毕后,CPU再回到被暂时中止的程序继续执行。 中断既与硬件有关也和软件有关。,3-6 中断系统,MC9S12XS128大约有50个中断源,(1)外部中断2个: XIRQ IRQ 其余均为内部中断 外部和内部中断实现机制完全相同,在中断中,提出中断请求的一方为中断源,(2)非可屏蔽中断3个: 软件中断(SWI):实际上是一条指令 非法指令陷阱:系统混乱时,无法取到正确的操作码,操作码无法辨识。 XIRQ 其余均为可屏蔽中断,CPU为每个中断源指定一个标号,这个标号就叫做中断向量号。 每个中断的中断服务子程序的入口地址都按照中断向量号的顺序保存成一张表,这个表就叫中断向量表,中断向量表通常放置在一个固定的区域。 CPU可以根据发出中断请求的中断的向量号,通过中断向量表迅速跳转到相应的中断服务子程序。,中断向量,中断向量存放在FLASH的最后的128B($FF80-$FFFF)。 每个中断向量占用2个字节。 中断向量表中存放的是相应中断子程序的入口地址。 各个中断源、中断向量表以及优先级见教材64页表2-8。,I/O寄存器,EEPROM,RAM,16KB,固定Flash,$3E,16KB,分页Flash,$30,16KB,固定Flash,$3F,中断向量区,$0000,$0400,$1000,$4000,$8000,$C000,$FF00,$FFFF,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D,$3E,$3F,Block3,Block2,Block1,Block0,由PPAGE寄存器(地址$30)决定某一页在$8000$BFFF。,xs256片内有256KFlash,分16页,每页1

温馨提示

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

评论

0/150

提交评论