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

下载本文档

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

文档简介

第三章MC9S12单片机的内核及片上资源

§3-1内核结构及引脚

§3-2内部寄存器§3-3堆栈§3-4内部存储器§3-5复位及时钟§3-6中断§3-7最小系统设计内容提要:§3-1内核结构及引脚Freescale单片机的命名规则

①产品状态。MC—FullyQualified(合格);PC—ProductEngineering(测试品);XC表示部分合格品,有限质量保证,用于性能评估的器件。②存储器类型标志。“无”表示片内带ROM或片内没有程序存储器;7表示片内带EPROM或一次可编程ROM(onetimeprogrammableROM,OTPROM);8表示片内带EEPROM(ElectricallyErasableProgrammableRead-OnlyMemory);9表示片内带闪存FlashEEPROM。③芯片内核类型。如08表示HC08内核、S08表示HCS08内核、RS08表示RS08内核等。④子系列型号标志。如GP、GB、GZ等。⑤存储器大小。如2表示2KB、32表示32KB、60表示60KB等。⑥Flash版本标志,反映不同的擦写电压、时间等。⑦工作温度范围标志。“无”表示商用温度范围0℃~70℃;C表示-40℃~85℃;V表示-40℃~105℃;M表示-40℃~125℃。⑧封装形式。如:P为双列直插DIP封装。FU表示80引脚QFP封装。PV表示112引脚LQFP封装。选用某款芯片制作电路板时要特别注意封装形式。⑨E表示leadfreepackaging,即无铅封装。

在⑨之后有些还有一个可选项,例如MC68HC912B32ACFUE8,此处的“8”表示总线速度为8MHz。注:由于历史原因,飞思卡尔(前身为Motorola半导体部)的微控制器类产品常冠以68。内核结构—存储器以MC9S12DP256为例256KFLASH12KRAM4KEEPROMMC9S12DG128拥有128K的FLASH,8K的RAM,2K的EEPROM。电压调整模块及相关引脚电压调整模块给内核供电2.5VVDD1/2和VSS1/2:内核供电引脚,之间要接去耦电容VREGEN引脚上拉使能电压调整模块,VDD1/2,VDDPLL使用内部2.5V电源VREGEN引脚接地禁止模块,VDD1/2,VDDPLL接外部2.5V电源VDDR、VSSR:电压调整模块及I/O供电,分别接电源和地,之间要接去耦电容时钟和锁相环及相关引脚EXTAL、XTAL:接外部振荡器RESET:接外部复位,低电平有效XFC:接锁相环滤波电容VDDPLL、VSSPLL:锁相环供电引脚。使能电压调整模块(VREGEN上拉)时,该引脚直接去耦电容。模式选择及相关引脚模式选择和PORTE复用TEST:保留脚,接地XIRQ:非屏蔽中断IRQ:可屏蔽中断R/W:读写信号,指示总线上数据方向LSTRB:总线模式下低位字节(奇地址)选通ECLK:内部总线时钟输出,一般在宽扩展模式下地址锁存用BKGD(MODC)、MODB、MODA:模式选择NOACC/XCLKS:外部振荡电路方式选择(当使用串行振荡电路时,该引脚要拉高;当使用并行振荡电路时,该引脚要接地。)串联方式(引脚要拉高)并联方式(引脚要接地)模式选择地址数据总线PORTA和PORTB作为扩展模式下的数据和地址复用总线,寻址达到64K范围窄模式下:PORTA为8位数据总线宽模式下:PORTA、PORTB为16位数据总线PTK为扩展存储器超过64K时用,不扩展时作为普通I/O口。扩展窄模式地址线接法扩展宽模式地址线接法ATD模块及相关引脚VRH、VRL:参考高压和参考低压,一般接5V(隔离)和GND(单点共地)。VDDA、VSSA:A/D模块电源引脚。AN0-AN7:模拟量输入引脚,8个通道。作普通I/O时,只能输入,不能输出。定时器及相关引脚IOC0-7:输入捕获:捕获外部有效边沿输出比较:输出一定宽度的脉冲作为普通I/O口时,为PORTT,输入输出。SPI、PWM及相关引脚2个SPI口MISO:主机输入/从机输出MOSI:主机输出/从机输入SCK:同步时钟(主机提供,从机接受)SS:从机选择(1-主机,0-从机)PWM0-7:PWM模块8个通道作为普通I/O:PORTP异步串行口及相关引脚2个SCI:RXD:数据接收TXD:数据发送1个SPI1个BDLC4(5)个CAN:RXCAN接收、TXCAN发送作为普通I/O使用:PORTS,PORTM中断I/O口作为普通并行I/O口:PORTJ、PORTHPJ口和PH口可以作为中断口:可选择上升或者下降沿中断;PJ6和PJ7与I2C和CAN4模块复用引脚。(I2C:SDA数据引脚、SCL时钟引脚)电源引脚*VDD1、2,VSS1、2:内部逻辑供电*VDDPLL,VSSPLL:锁相环供电*-使能电压调整模块(VREGEN上拉)。VDDX,VSSX:I/O供电电源引脚VDDR,VSSR:电压调整器及I/O供电电源引脚VDDA,VSSA:A/D模块供电电源引脚§3-2内部寄存器累加器A、B:保存操作数和操作结果,组成16位累加器D。变址寄存器X、Y:寻址操作、临时数据、参与运算。堆栈指针SP:中断、子程序调用,暂存数据。堆栈由高地址向低地址生成,栈顶为实栈顶。程序计数器PC:存放下一条要执行的指令地址。条件码寄存器CCR:包括5个状态指示器、两个中断屏蔽位、STOP指令控制位。1-CPU不可执行STOP;0-反之1-屏蔽XIRQ中断;0-反之1-产生了半进位1-屏蔽所有可屏蔽中断1-运算结果有负数1-运算结果有01-运算结果溢出1-运算产生进/借位溢出标志和进位标志是两个意义不同的标志。进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;溢出标志表示有符号数(以补码形式表示)运算结果是否超出范围,运算结果已经不正确。正数和负数相加不会溢出

两个正数相加,如果结果为负数(符号位为1),表明发生溢出;

两个负数相加,如果结果为正数(符号位为0),表明发生溢出。处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志;同时,根据是否超出有符号数的范围设置溢出标志。按无符号数对待按带符号数对待000001004(+)4+

00001011

+

11

+

(+)110000111115(+)15按无符号数对待按带符号数对待000001117(+)7+

11111011

+

251

+

(-)51C00000010258(+)2

C=1V=0按无符号数对待按带符号数对待000010019(+)9+

01111100

+

124

+

(+)124

10000101133(+)133

C=0V=1按无符号数对待按带符号数对待10000111135(-)121+

11110101

+

245

+

(-)11

1C

01111100380(-)132C=1V=1§3-3堆栈堆栈由高地址向低地址生成,SP总是指向最后进入堆栈的一个字节实栈顶

——压栈时先调整堆栈指针(SP←(SP-1)),后保存数据。

——出栈时先弹出数据,后修改栈顶(SP←(SP+1))子程序调用时,程序返回地址自动压栈、中断响应后,除断点地址自动压栈外,CPU寄存器Y、X、A、B、CCR也依次自动压栈;执行中断返回指令时,断点地址和CPU寄存器按照和入栈时相反的顺序依次自动出栈。栈区必须在程序开始部分在内部RAM区指定,即SP的初始化。中断进栈举例:执行到$80F0处的程序时,CPU响应中断,且此时SP的内容(栈顶)为$3F00,则SPSP自动压栈的内容和顺序中断返回时,自动出栈的内容和顺序§3-4内部存储器—基本内存空间MC9S12系列单片机片内有RAM、EEPROM和Flash,不同型号单片机有不同的存储器配置。程序存储器和数据存储器统一编址,其地址空间可以通过设置相关寄存器重新定义。以MC9S12DT128为例:8KBRAM;2KBEEPROM;128KBFlash。存储器容量寄存器1=寄存器空间为2KB0=寄存器空间为1KB存储器容量寄存器0-MEMSIZ0只读(默认值由芯片的型号决定)详见下页表EEPROM空间分配00=0KB01=2KB10=4KB11=8KB例如:DG128复位时MEMSIZ0的值为$13,即表示有1KB的寄存器、2KB的EEPROM、8KB的RAM空间。存储器容量寄存器RAM_SW2-RAM_SW0:分配系统RAM存储空间寄存器区映射寄存器-INITRG指定内部寄存器区基址的高5位。则最小基址是$0000,最大基址为$7FFF(D7=0决定)。

使用时,一般定位在$0000开始的1K中。 因为前256个字节可以用直接地址(8bit地址)访问,如果定位在其它地方,应用扩展地址(16bit地址码)访问。RAM映射寄存器-INITRM0=RAM和内部地址空间最低端对齐1=RAM和内部地址空间最高端对齐9S12DG128有8KRAM空间,默认$0000~$1FFF,若定位在$2000~$3FFF,则INITRM值可为$39。例:EEPROM映射寄存器-INITEE0=禁用EEPROM1=使能EEPROM指定EEPROM基址的高5位。例:DG128有2K的EEPROM。若给INITEE赋值为$09,则EEPROM区域就是$0800~$0FFF。内部寄存器EEPROMRAM16KB固定Flash$3E16KB分页Flash$3016KB固定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$3FBlock3Block2Block1Block0

由PPAGE寄存器(地址$30)决定某一页在$8000~$BFFF。DP256片内有256KFlash,分16页,每页16K,一般定位:$4000~$7FFF16K($3E)$C000~$FFFF16K($3F)内存以页面方式扩展存储器优先级上述三个寄存器INITRG、INITRM、INITEE负责将内部资源重新映射若地址分配出现重叠,按优先级自动屏蔽级别较低的资源存储器分配优先级:BDMROM寄存器区RAMEEPROMFlash/ROM外部扩展存储器高低说明:单片机内部有不同的I/O接口模块,对应的寄存器有几百个,这些存储器占用1KB的地址空间,这一I/O寄存器空间可以由用户任意定义到前32KB空间的任何一个2KB空间的前半部分。但是从$0000~$00FF这256个字节可以使用直接寻址方式。EEPROM默认情况下也是从$0000开始的,因为优先级没有寄存器区高,所以复位以后有1KB的区域会被寄存器区覆盖,如果要使用全部的EEPROM,可以将其重新定义到其它空间,或将I/O寄存器移到其它空间。说明:3.不同型号的单片机有不同容量的片内RAM,有2KB、4KB、8KB、12KB等。例如MC9S12DP256有12KB的RAM,可配置INITRM寄存器使RAM占据$1000~$3FFF的全部空间。如果单片机有8KB的RAM,可以定义到$2000~$3FFF。4.$4000~$FFFF的48KB为Flash存储器空间,分成3块,每块16KB。最后16KB空间的最后256B($FF00~$FFFF)是中断向量表空间。

§3-5复位及时钟—复位上电复位单片机自动检测VDD端的正跳变,启动自动工作。外部复位通过RESET引脚加一低电压,拉低超过一定时间后可实现复位。看门狗复位帮助系统在软件跑飞后自动复位。时钟监视器复位利用内部的RC电路来保证时钟频率满足要求。振荡器和时钟电路EXTAL是外部时钟输入或石英振荡放大器的输入XTAL是石英振荡放大器的输出振荡电路注:DG128可用串联振荡电路和并联振荡电路两种连接方式。

9S12X系列单片机只可用并联振荡电路。使用串行振荡电路时,PE7引脚要拉高,而使用并联振荡电路或外部有源振荡器时,该引脚要接地。PE7悬空则为串联方式。时钟初始化寄存器-共5个(1)锁相环控制寄存器(PLLCTL)锁相环电路允许位1=允许0=禁止时钟监控允许位1=允许0=禁止注:其余各位的描述见教材49页。(2)时钟合成寄存器(SYNR)-低6位有效,有效值0~63。(3)时钟分频寄存器(REFDV)-低4位有效,有效值0~15。由锁相环来产生时钟频率的公式:例如:选用16MHz的外部晶振,若将SYNR设为

2,REFDV设为1,通过公式计算可得

PLLCLK=48MHz。锁相环频率锁定标志1=表示时钟频率已稳定,且锁定了锁相环频率。(4)时钟产生模块的标志寄存器CRGFLG注:其余各位的描述见教材49页和50页。(5)时钟选择寄存器(CLKSEL)选定锁相环1表示BusClock=PLLCLK/20表示BusClock=OSCCLK/2实时中断标志位1=RTI发生了超时中断,向该位写1清除该中断标志位。PLL例子CLKSEL=0x00;//禁止PLLPLLCTL=0xe1;//PLL电路允许

SYNR=2;REFDV=1;//设置倍频参数

PLLCTL=0x60;//时钟监控禁止

while(0==(CRGFLG&0x08));//等待稳定

CLKSEL=0x80;//选择PLL作为时钟//若晶振为16M,则PLLCLK=2*16*3/2=48MHz,则总线频率是24MHz实时中断使能位1=在RTIF置位时申请中断0=不申请来自于RTI模块的中断实时中断RTI相关寄存器(1)中断使能寄存器(CRGINT)自给时钟模式使能位1=在SCMIF置位时申请中断0=不申请SCMLOC中断锁定中断使能位1=在LOCKIF置位时申请中断0=不申请LOCK中断注:RTIF、LOCKIF、SCMIF见CRGFLG寄存器。RTR[6:4]——实时中断预分频选择位RTR[3:0]——实时中断分频系数选择位时钟源是外部振荡器RTI超时周期设置参照表:(具体见S12CRGV4.pdf的第23页)(2)RTI控制寄存器(RTICTL)RTI程序举例RTICTL=0x7e;//4M/15*2^16近似等于4HzCRGINT=0x80;//中断使能得到大约每秒4次的中断COP(看门狗)相关寄存器COP窗口模式位1=看门狗复位的写操作必须在看门狗溢出周期的最后1/4时间内0=看门狗复位的写操作可以在整个溢出周期内发生(1)COP控制寄存器(COPCTL)BDM模式下,1=COP和RTI停止运行0=COP和RTI继续运行看门狗溢出周期选择位(2)COP复位寄存器(ARMCTL)——向该寄存器先写$55,然后写

温馨提示

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

评论

0/150

提交评论