飞思卡尔单片机g_第1页
飞思卡尔单片机g_第2页
飞思卡尔单片机g_第3页
飞思卡尔单片机g_第4页
飞思卡尔单片机g_第5页
已阅读5页,还剩168页未读 继续免费阅读

下载本文档

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

文档简介

第一章嵌入式系统简介

§1.1嵌入式系统的含义与发展历史一、嵌入式系统与单片机

2001年中国单片机学会召开的年会上,将“单片机”和“嵌入式系统”联系在一起。

1.嵌入式系统的由来

在通信、测控与数据传输等领域,计算机技术的应用与单纯的高速计算要求不同。①直接面向控制对象;②潜入到具体应用体中;③在现场连续可靠运行;④体积小、应用灵活;⑤突出控制功能等。§1.1嵌入式系统的含义与发展历史将满足海量高速数值计算的计算机称为通用计算机系统。

将面向测控对象,嵌入到实际应用系统中,实现嵌入式应用的计算机称为嵌入式计算机系统,简称嵌入式系统。

总体上说,通用计算机系统主要用于数值计算、信息处理,兼顾控制功能;而嵌入式计算机系统主要用于控制领域,兼顾数据处理。在一个综合系统中,通用计算机系统和嵌入式计算机系统各自扮演不同的角色,共同完成系统任务。§1.1嵌入式系统的含义与发展历史

2.单片机

MCU内部总线(控制总线、数据总线、地址总线)CPURAMFlash存储器A/D转换接口工作支撑模块定时器接口串行通信接口其他I/O模块……一个典型的MCU内部框图

3.MCU与嵌入式系统的关系

嵌入式系统通常可分为4种:工控机通用CPU模块嵌入式微处理器嵌入式微控制器

MCU从体系结构到指令系统都是按照嵌入式系统的应用特点专门设计的,能很好地满足应用系统的嵌入、面向测控对象、现场可靠运行等方面的要求,故由MCU构成的系统是发展最快、品种最多、数量最大、应用最广的嵌入式应用系统。§1.1嵌入式系统的含义与发展历史§1.1嵌入式系统的含义与发展历史二、MCU的发展

§1.2嵌入式系统常用术语一、与硬件相关的术语

1.封装(Package)

2.印刷电路板(PCB)

3.动态随机存储器(DRAM)

4.静态随机存储器(SRAM)

5.只读存储器(ROM)

6.Flsah

存储器(FlashMemory)

7.模拟量模拟量

8.开关量§1.2嵌入式系统常用术语

1.封装(Package)

单列直插ZIP双列直插DIPZ字形直插ZIP小外形封装SOP紧缩小外形封装SSOP四方扁平封装QFP薄方封装LQFP球栅阵列封装BGA插针网格阵列封装CPGA塑料扁平组件式封装PFP带载封装TCP§1.2嵌入式系统常用术语§1.2嵌入式系统常用术语

2.印刷电路板(PCB)主要功能是提供集成电路等各种电子元件固定、装配的机械支撑;实现集成电路等各种电子元件之间的布线和电气连接(信号传输);为自动装配提供阻焊图形,为元器件插装、检查、维修提供识别字符和图形等。§1.2嵌入式系统常用术语

3.动态随机存储器(DRAM)

4.静态随机存储器(SRAM)

5.只读存储器(ROM)

6.Flsah

存储器(FlashMemory)简称闪存,比E2PROM的擦除速度更快,集成度更高。如Freescale公司的HC08芯片采用了第三代0.25µm的闪存技术,可擦写10万次,页擦写只需几十毫秒。可系统内编程,不需另外的器件。§1.2嵌入式系统常用术语

7.模拟量

8.开关量

§1.2嵌入式系统常用术语二、与通信相关的术语

1.并行通信

2.串行通信

3.串行外设接口SPI

4.集成电路互连总线I2C5.通用串行总线USB6.控制器局域网CAN7.背景调试模式BDM8.边界扫描测试协议JTAG§1.2嵌入式系统常用术语

1.并行通信

2.串行通信

3.串行外设接口SPI

也是一种串行通信方式,主要用于MCU扩展外围芯片。

4.集成电路互连总线I2C

是由PHILIPS公司开发的两线制串行总线,主要用于MCU与其外围电路的连接。

5.通用串行总线USB

是一种MCU与外界进行数据通信的方式。§1.2嵌入式系统常用术语

6.控制器局域网CANCAN总线(ControlAreaNetwork,控制局域网络)最早是由德国Bosch公司推出,用于汽车内部测量与执行部件之间的数据通信协议。其总线规范已被ISO国际标准组织制定为国际标准,广泛应用于离散控制领域,并得到了Philips、Intel、Siemens、Motorola、NEC等公司的支持。CAN协议是建立在国际标准组织的开放系统互连模型基础上,但只取OSI底层的物理层、数据链路层和顶层的应用层,通信介质可以是双绞线、同轴电缆或光纤,通信速率可达1Mbps(通信距离最长为40m),直接通信距离最长可达10km(通信速率5kbps以下),最多可挂接设备110个。§1.2嵌入式系统常用术语

7.背景调试模式BDM

背景调试模式BDM是Freescale公司提出的一种调试接口,主要用于嵌入式MCU的程序下载和程序调试。§1.2嵌入式系统常用术语§1.2嵌入式系统常用术语

8.边界扫描测试协议JTAG

边界扫描测试协议JTAG是由国际联合测试行动组开发的、对芯片进行测试的一种方式,可将其用于对MCU的程序进行载入和调试。

JTAG能获取芯片寄存器等内容,或者测试遵守IEEE规范的器件之间引脚连接情况。§1.2嵌入式系统常用术语三、与功能模块相关的术语

1.通用输入/输出GPIO2.A/D与D/A3.脉冲宽度调制器PWM4.看门狗

5.液晶显示器LCD6.发光二极管LED7.键盘§1.2嵌入式系统常用术语

1.通用输入/输出GPIO2.A/D与D/A3.脉冲宽度调制器PWM

是一个D/A转换器,可以产生一个高电平和低电平交替的输出信号。

4.看门狗

5.液晶显示器LCD

可分为字段型、点阵字符型和点阵图形3类。§1.2嵌入式系统常用术语

6.发光二极管LED7.键盘嵌入式系统中最常见的输入设备。

§1.2嵌入式系统常用术语四、与嵌入式软件相关的术语

1.中断

2.中断服务程序

3.实时操作系统RTOS4.µC/OS-II5.临界区§1.2嵌入式系统常用术语

1.中断

2.中断服务程序

3.实时操作系统RTOSRTOS是一种运行于嵌入式系统上的操作环境,在可预测的时间间隔内能对特定的事件做出反应。RTOS为每个任务建立一个可执行的环境,在任务之间传递消息,区分任务执行的优先级,并协调多个任务对同一个I/O设备的调用。一个规模大、结构复杂的嵌入式系统可以分解为一系列较小、较简单的并行任务来实现,各个任务之间互不干扰,使用RTOS排除并行任务中的人为因素,降低复杂度,增强模块化,使工程由更简易和标准化的模块组成,处理起来更加轻松、快捷。§1.2嵌入式系统常用术语

4.µC/OS-II

是一个可移植、可裁剪的抢占式多任务实时操作系统,在嵌入式系统中得到广泛应用。

5.临界区是RTOS中使用的一个术语,指一段必须按次序执行的代码,并且不能被中断,否则程序有可能无法正常运行。§1.3嵌入式系统开发方法导引一、嵌入式产品的一般构成一个以MCU为核心的、比较复杂的嵌入式应用系统,一般包含模拟量的输入/输出、开关量的输入/输出和数据通信等部分。放大器:将微弱电信号放大成MCU可接受的电信号传感器:将实际物理信号转换为微弱电信号实际模拟信号MCUD/A转换接口I/0接口A/D转换接口将实际开关信号转换成MCU可接受的电信号实际开关信号模拟量驱动机构:将MCU送出的信号放大模拟量执行机构通信接口开关量驱动机构:将MCU送出的信号放大开关量执行机构通信信号匹配电路其他通信设备一个典型的嵌入式应用系统框图MCU工作支撑电路其他输入信号其他输出信号§1.3嵌入式系统开发方法导引二、嵌入式产品的一般开发方法

1.基本输入/输出分析

2.选择MCU的基本方法

3.选择评估系统并对与MCU相关的硬件进行初步评估

4.设计并制作硬件系统

5.进行硬件系统的模块测试

6.软件系统设计

7.系统测试

8.进一步工作§1.3嵌入式系统开发方法导引

1.基本输入/输出分析

2.选择MCU的基本方法考虑的因素:处理性能、功耗、价格、封装形式、软硬件开发工具、设计者的熟悉程度等。①MCU的总I/O口个数应略多于系统功能所需的个数,以备功能扩展和调试时使用;②使用到的外设功能模块应尽可能集成在MCU内部,以简化系统硬件、降低系统功耗、提高系统的可靠性;③尽量选择较为熟悉和开发工具完备的芯片,以减少开发周期、提高开发效率。§1.3嵌入式系统开发方法导引

3.选择评估系统并对与MCU相关的硬件进行初步评估

4.设计并制作硬件系统

5.进行硬件系统的模块测试

6.软件系统设计

7.系统测试是系统开发中一个十分重要的过程,其根本任务是发现系统中的缺陷。

8.进一步工作§1.3嵌入式系统开发方法导引

第二章HCS12/HCS12X系列MCU简介与MC9S12DG128的最小系统

§2.1HCS12系列MCU概述一、HCS12系列MCU的命名规

MC

9

S12

Dx

256

B

x

xx

E①②③④⑤⑥⑦⑧⑨①产品状态:

MC-完全合格品;XC-部分合格品;PC-生产工程;KMC、KXC-样品包装。②存储器类型标志:“9”表示片内带Flash。③CPU标志:表示中央处理器为CPU12。§2.1

HCS12系列MCU概述④系列标志

Dx表示为D系列产品。⑤存储空间大小

256表示256KB。⑥Flash版本标志反映不同的擦写电压、时间等。⑦工作温度范围标志“无”表示温度范围为0~70℃;“C”表示温度范围为-40~85℃;“V”表示温度范围为-40~105℃;“M”表示温度范围为-40~125℃;§2.1

HCS12系列MCU概述⑧封装标志表示芯片的封装形式。⑨无铅组装标志§2.1

HCS12系列MCU概述二、HCS12各子系列MCU简介系列:A系列;B系列;C系列;D系列;E系列;GC系列;H系列;NE系列;Q系列;T系列;UF系列。相同点:工作电压一般为5V。不同点:ROM大小;RAM大小;EEPROM大小;Flash容量;I/O口数;串行借口;A/D转换器。

RAM容量最大可达14KB,最小为2KB;I/O口数最多有117个,最少只有25个;Flash容量最大可达512KB,最小只有16KB。§2.2

HCS12X系列MCU概述一、HCS12X系列MCU与HCS12系列MCU的主要差异

1.主要特点大容量的FlashEEPROM(32KB~1MB);

40MHz的增强CPU;

XGATE模块;

32KB的RAM;

4KB的EEPROM

控制器区域网络(CAN)

SCI/LIN;

SPI;

I2C;§2.2

HCS12X系列MCU概述高级中断功能;增强的捕捉定时器;

10位ADC;

8通道PWM;带有追踪缓存的片上单线背景调试模式(BDM);

-40~125℃的温度范围。

2.内部寄存器

6个16位寄存器D、IX、IY、SP、PC和CCRW,2个8位寄存器A、B。§2.2

HCS12X系列MCU概述

3.寻址方式基本的寻址方式有8种,具体的寻址方式有16种。直接寻址方式与HCS12有所不同,且增加了全局寻址方式。

4.指令集增加了两条与CCRW寄存器相关的堆栈操作指令PSHCW和PULCW。§2.2

HCS12X系列MCU概述二、典型HCS12X系列MCU简介

HCS12XE系列

HCS12XF系列

HCS12XS系列§2.2

HCS12X系列MCU概述三、HCS12X系列MCU中的新增模块简介

XGATE协处理器模块

FlexRay模块

§2.3MC9S12DG128MCU及其最小系统一、MCU性能概述

1.时钟和复位模块、存储器与封装形式时钟和复位模块(CRG):包括振荡器、锁相环时钟频率放大器、看门狗、实时中断和时钟监控器。存储器:128KB的FlashEEPROM、8KB的RAM、2KB的EEPROM。封装形式:80引脚的TQFP和112引脚LQFP。具有5V输入和驱动能力,CPU工作频率可达50MHz,支持BDM,可在线设置硬件断点。§2.3MC9S12DG128MCU及其最小系统

2.丰富的I/O接口通用I/O接口:29路独立的I/O接口,20路带中断和唤醒功能。

A/D转换接口:两个8通道的10位AD转换器,具有外部转换触发能力。

CAN总线接口:内部集成了3个CAN协议控制器—MSCAN12模块,符合CAN2.0A/B协议标准;可编程传输速率达1Mb/s;具有5个接收缓冲区和3个发送缓冲区;灵活的标识符滤波模式,可配置成2个32位过滤码,或4个16位过滤码,或8个8位过滤码;含有4个独立的中断输入引脚;内置低通滤波的唤醒功能。§2.3MC9S12DG128MCU及其最小系统输入捕捉/输出比较与PWM接口:具有8通道的输入捕捉/输出比较,还具有8个可编程PWM通道,可配置成8通道8位或4通道16位PWM。串行通信接口:2个串行异步通信接口SCI,2个同步串行外设接口SPI,I2C总线及SAEJ1850ClassB数据通信网络接口。§2.3MC9S12DG128MCU及其最小系统二、运行模式

DG128MCU的运行模式可分为单片运行模式、扩展运行模式和其它运行模式。单片运行模式包括普通单片模式和特殊单片模式。扩展运行模式包括普通扩展宽模式、普通扩展窄模式、仿真扩展宽模式和仿真扩展窄模式。其它运行模式包括测试模式和外设模块测试模式。

§2.3MC9S12DG128MCU及其最小系统

1.单片运行模式

是DG128MCU最常用的运行模式。系统复位时,若MODA(PE5)和MODB(PE6)引脚为低电平,MODC(BKGD)为高电平,则进入普通单片模式。普通单片模式是正常运行应用程序时使用的模式。系统复位时,若MODA(PE5)和MODB(PE6)引脚为低电平,MODC(BKGD)为低电平,则进入特殊单片模式。特殊单片模式又称为背景调试模式(BDM),是需要进行背景调试时应用的模式。§2.3MC9S12DG128MCU及其最小系统

2.扩展运行模式

DG128MCU的扩展运行模式允许通过CPU外部总线扩展RAM、Flash、I/O等。扩展运行模式分窄模式和宽模式,窄模式使用8位外部数据总线,宽模式使用16位外部数据总线。扩展运行模式又分为普通运行模式和特殊运行模式,区别在于有些寄存器只能在特殊模式下读/写。仿真扩展模式下,可以看到总线上的控制信号,可接逻辑分析仪用于调试。§2.3MC9S12DG128MCU及其最小系统

3.其它运行模式

DG128MCU的其它运行模式有测试模式、外设模块测试模式等,用于芯片生产中的测试,用户一般使用不到。

§2.3MC9S12DG128MCU及其最小系统三、内部结构简图、引脚图及引脚功能

MC9S12DG128MCU具有80引脚和112引脚的两种封装形式,

其中除了地址、数据、控制等三总线外,主要是I/O引脚,多数引脚具有两种或更多功能。§2.3MC9S12DG128MCU及其最小系统§2.3MC9S12DG128MCU及其最小系统§2.3MC9S12DG128MCU及其最小系统

1.电源引脚电源引脚共6组,分别满足器件内不同部分的电源要求。

(1)VDDR、VSSR:数字电源和接地引脚。

(2)VDDX、VSSX:I/O电源和接地引脚,为I/O接口驱动部分供电。

(3)VDD1、VSS1和VDD2

、VSS2:2.5V内部逻辑参考电压引脚。

(4)VDDA、VSSA:A/D转换电源引脚。

(5)VRH、VRL:A/D转换的参考电源引脚。

(6)VDDPLL、VSSPLL:2.5VPLL电路的电源引脚。§2.3MC9S12DG128MCU及其最小系统

2.控制引脚

(1)RESET:复位引脚。

(2)BKGD:背景调试引脚。

(3)VREGEN:片内电压调节模块的使能引脚。

3.时钟引脚

XTAL、EXTAL:晶体驱动输出和外部时钟输入引脚。若EXTAL引脚外接时钟,则XTAL引脚必须悬空。

4.I/O引脚§2.3MC9S12DG128MCU及其最小系统四、最小系统

最小系统是指MCU运行程序所必需的外围电路。

MC9S12DG128MCU的最小系统包括电源电路、PLL电路、复位电路、BDM调试接口电路等。§2.3MC9S12DG128MCU及其最小系统§2.3MC9S12DG128MCU及其最小系统

1.电源电路

HCS12MCU的芯片内部使用3V电压,I/O端口和外部供电电压为5V。

2.PLL电路

PLL电路具有频率放大和信号提纯的功能,可以使系统以较低的外部时钟信号获得较高的工作频率,以降低外部时钟的高频噪声。

fosc=4MHz,Cs=4.7nF,Cp=470pF,Rs=10kΩ时,总线时钟频率为25MHz。§2.3MC9S12DG128MCU及其最小系统

3.复位电路

共有4种操作可以触发系统复位:

(1)复位引脚复位:RESET引脚为低电平时,触发复位。

(2)上电复位:VDD引脚上电时,触发复位。

(3)看门狗复位:喂狗操作是向ARMCOP寄存器依次写入0x55、0xAA。

(4)时钟监控复位:当系统时钟不稳时,触发复位。§2.3MC9S12DG128MCU及其最小系统

4.晶振电路

有源晶振和无源晶振。科尔皮兹晶振皮尔兹晶振

XCKLS=0

XCKLS=1§2.3MC9S12DG128MCU及其最小系统

5.BDM接口电路§2.4MC9S12DG128的存储器映像

S12系列MCU的逻辑地址空间为64KB,地址为$0000~$FFFF 。

(1)$0000~$03FF(1KB):用于内部各模块寄存器的编址。

(2)$0400~$0FFF(3KB):EEPROM地址空间。

(3)$1000~$3FFF(12KB):RAM地址空间。

(4)$4000~$FFFF(48KB):Flash地址空间,分成3个16KB空间,其中中断向量区为$FF00~$FFFF。§2.4MC9S12DG128的存储器映像DG128存储空间及其扩展

(1)$0000~$03FF(1KB):用于内部各模块寄存器的编址。

(2)$0400~$0FFF(3KB):EEPROM地址空间。

DG128的内部EEPROM有2KB,地址空间为$0000~$07FF,默认设置的地址空间被内部RAM空间覆盖。

(3)$1000~$3FFF(12KB):RAM地址空间。

DG128的内部RAM有8KB,地址空间为$0000~$1FFF,但$0000~$03FF被内部各模块寄存器覆盖,所以实际编程时只能使用地址空间为$0400~$1FFF的7KB。

(4)$4000~$FFFF(48KB):Flash地址空间,分成3个16KB空间,其中中断向量区为$FF00~$FFFF。§2.4MC9S12DG128的存储器映像

DG128的Flash存储器由两个物理块组成(块0和块1),共128KB。DG128Flash存储器两个物理块的地址分配Block(块号)PPAGE(页号)未分页逻辑地址范围分页逻辑地址范围1$38不可见$388000-$38BFFF$39$398000-$39BFFF$3A$3A8000-$3ABFFF$3B$3B8000-$3BBFFF0$3C不可见$3C8000-$3CBFFF$3D$3D8000-$3DBFFF$3E$4000-$7FFF$3E8000-$3EBFFF$3F$C000-$FFFF$3F8000-$3FBFFF§2.4MC9S12DG128的存储器映像

DG128对Flash空间的访问有不启用分页机制的寻址方式和启用分页机制的寻址方式。

不启用分页机制的寻址方式:

适用于程序和数据(需要存放在Flash中的掉电保护数据)的长度小于32KB时。在这种方式下,除了第0块的$3E和$3F外,其它的Flash页均不可访问,$3E和$3F叫直接页;$3E在MCU中的逻辑地址范围为$4000~$7FFF,$3F在MCU中的逻辑地址范围为$C000~$FFFF;此时无须设置页寄存器PPAGE,直接使用这些逻辑地址即可。§2.4MC9S12DG128的存储器映像

启用分页机制的寻址方式:

每一页在MCU中的逻辑地址都是由页寄存器PPAGE中的页号和重叠范围($8000~$BFFF)内的地址组成的24位绝对地址。故通过设置页寄存器PPAGE可以使用全部的128KBFlash存储空间。注:在启用分页机制的寻址方式时,对于$3E页,有$4000~$7FFF和$3E8000~$3EBFFF两个逻辑地址范围映射到内部物理地址;对于$3F页,有$C000~$FFFF和$3F8000~$3FBFFF两个逻辑地址范围映射到内部物理地址。§2.4MC9S12DG128的存储器映像§2.5MC9S12DG128MCU的并行I/O接口

一、基本概念

I/O接口即输入/输出接口,是MCU与外界进行交互的重要通道。输入引脚有3种不同的连接方式:带上拉电阻的连接、带下拉电阻的连接和悬空连接。I/O口输入电路框图§2.5MC9S12DG128MCU的并行I/O接口对于输出引脚,MCU通过该引脚输出0(低电平)、1(高电平)的开关量输出。I/O口输出电路框图§2.5MC9S12DG128MCU的并行I/O接口

二、A口、B口、E口和K口

MC9S12DG128MCU有10个普通I/O口分别为A口、B口、E口、H口、J口、K口、M口、P口、S口和T口。引脚大部分具有多功能。

作为普通I/O口,每一个引脚均可通过相应的数据方向寄存器独立地设置为输入或输出。对于A口、B口、E口和K口中被定义为输入的引脚,可以通过相应的上拉电阻允许寄存器独立地设置为内部有无上拉电阻。被定义为输出地引脚,一律为内部无上拉电阻。§2.5MC9S12DG128MCU的并行I/O接口

1.A口寄存器

A口作为普通I/O时,具有两个寄存器:A口数据方向寄存器(DDRA)和A口I/O寄存器(PORTA)。

1)A口数据方向寄存器(DDRA)

地址为$0002。

DDRA0~DDRA7分别定义引脚PA0~PA7是输入还是输出引脚。若DDRAx设置为0,则对应地引脚PAx定义为输入引脚;若DDRAx设置为1,则对应地引脚PAx定义为输出引脚。§2.5MC9S12DG128MCU的并行I/O接口

2)A口I/O寄存器(PORTA)

地址为$0000。若A口的某一引脚被定义为输出引脚,则PORTAx定义对应输出引脚PAx的输出电平。0表示输出低电平,1表示输出高电平。若A口的某一引脚被定义为输入引脚,则PORTAx为对应输入引脚PAx的输入电平。0表示输入低电平,1表示输入高电平。§2.5MC9S12DG128MCU的并行I/O接口

2.B口、E口和K口寄存器作为普通I/O时,B口、E口和K口的功能和用法与A口类似。

数据方向寄存器:

DDRB:地址为$0003DDRE:地址为$0009DDRK:地址为$0033

数据方向寄存器:

PORTB:地址为$0001PORTE:地址为$0008PORTK:地址为$0032§2.5MC9S12DG128MCU的并行I/O接口

3.上拉电阻控制寄存器

A口、B口、E口和K口都有上拉电阻,共用一个控制寄存器(PUCR)。

PUCR寄存器的地址为$000C。

PUCR寄存器的D0位称为PUPAE,当PUPAE=1时,A口的8个引脚中被定义为输入的引脚有内部上拉电阻。

PUCR寄存器的D1位称为PUPBE,当PUPBE=1时,B口的8个引脚中被定义为输入的引脚有内部上拉电阻。

PUCR寄存器的D4位称为PUPEE,当PUPEE=1时,E口的8个引脚中被定义为输入的引脚有内部上拉电阻。

PUCR寄存器的D7位称为PUPKE,当PUPKE=1时,K口的8个引脚中被定义为输入的引脚有内部上拉电阻。§2.5MC9S12DG128MCU的并行I/O接口

三、H口、J口、M口、P口、S口和T口

1.端口寄存器

除J口拥有4个引脚外,H口、M口、P口、S口和T口都拥有8个引脚。当它们作为普通I/O口时,都具有6个寄存器:数据方向寄存器、I/O寄存器、输入寄存器、低功耗驱动寄存器、上拉下拉使能寄存器和上拉下拉选择寄存器。§2.5MC9S12DG128MCU的并行I/O接口I/O名称寄存器名缩写地址引脚H口数据方向寄存器DDRH$026252~49、35~32I/O寄存器PTH$0260输入寄存器PTIH$0261低功耗驱动寄存器RDRH$0263上拉下拉使能寄存器PERH$0264上拉下拉选择寄存器PPSH$0265J口数据方向寄存器DDRJ$026A22、21、99、98I/O寄存器PTJ$0268输入寄存器PTIJ$0269低功耗驱动寄存器RDRJ$026B上拉下拉使能寄存器PERJ$026C上拉下拉选择寄存器PPSJ$026DI/O名称寄存器名缩写地址引脚M口数据方向寄存器DDRM$0252105~100、88、87I/O寄存器PTM$0250输入寄存器PTIM$0251低功耗驱动寄存器RDRM$0253上拉下拉使能寄存器PERM$0254上拉下拉选择寄存器PPSM$0255P口数据方向寄存器DDRP$025A4~1、112~109I/O寄存器PTP$0258输入寄存器PTIP$0259低功耗驱动寄存器RDRP$025B上拉下拉使能寄存器PERP$025C上拉下拉选择寄存器PPSP$025D§2.5MC9S12DG128MCU的并行I/O接口I/O名称寄存器名缩写地址引脚S口数据方向寄存器DDRS$024A96~89I/O寄存器PTS$0248输入寄存器PTIS$0249低功耗驱动寄存器RDRS$024B上拉下拉使能寄存器PERS$024C上拉下拉选择寄存器PPSS$024DT口数据方向寄存器DDRT$02429~12、15~18I/O寄存器PTT$0240输入寄存器PTIT$0241低功耗驱动寄存器RDRT$0243上拉下拉使能寄存器PERT$0244上拉下拉选择寄存器PPST$0245§2.5MC9S12DG128MCU的并行I/O接口§2.5MC9S12DG128MCU的并行I/O接口

1)数据方向口寄存器

设置相应口的某一引脚是输入引脚还是输出引脚。

0—输入引脚,1—输出引脚。

2)I/O寄存器若相应口的某一引脚被定义为输出引脚,则该寄存器定义对应输出引脚的输出电平。

0—输出低电平,1—输出高电平。若相应口的某一引脚被定义为输入引脚,则读出的是该寄存器的值,而不是对应输入引脚的输入电平。§2.5MC9S12DG128MCU的并行I/O接口

3)输入寄存器

只读寄存器。若相应口的某一引脚被定义为输入引脚,则该寄存器的值为对应输入引脚的输入电平。

0—输入低电平,1—输入高电平。若相应口的某一引脚被定义为输出引脚,则该寄存器的值反应对应引脚是否负荷超载或电路短路。

0—输出引脚工作正常,1—引脚工作超载或电路短路。§2.5MC9S12DG128MCU的并行I/O接口

4)低功耗驱动寄存器该寄存器的值反应对应的引脚的输出功耗情况。

0—输出功耗正常,1—输出功耗为正常的1/6。

5)下拉上拉使能寄存器

0—禁用上拉或下拉电阻,1—允许上拉或下拉电阻。

6)下拉上拉选择寄存器若相应口的某一引脚被定义为输入引脚,且下拉上拉使能寄存器设置为允许上拉或下拉电阻(对应位设置为1),则通过下拉上拉选择寄存器相应位设置为下拉或上拉。

0—上拉,1—下拉。

2.端口的复用功能

T口还具有接收输入捕捉功能,每个引脚作为一个输入捕捉端口。系统复位时,引脚置为高阻态。

S口还作为SCI模块和SPI模块的通信接口。系统复位时,引脚置为带上拉电阻的输入状态。

M口还作为ByteFlight模块、BDLC(J1850)模块、CAN模块、SPI模块的通信接口。系统复位时,引脚置为高阻态。

P口还作为PWM模块、SPI模块的通信接口。另外,作为输入/输出端口时,还具有中断功能。系统复位时,引脚置为高阻态。§2.5MC9S12DG128MCU的并行I/O接口

H口还作为SPI模块的通信接口。另外,作为输入/输出端口时,还具有中断功能。系统复位时,引脚置为高阻态。

J口还作为CAN模块和I2C模块的通信接口。另外,作为输入/输出端口时,还具有中断功能。系统复位时,引脚置为带上拉电阻的输入状态。§2.5MC9S12DG128MCU的并行I/O接口

四、其它I/O口

A/D口作为AD转换模块的模拟量输入口和外界触发脉冲的输入口,也可以做为普通输入口。

A/D口没有数据方向寄存器,故A/D口只能作为输入口,不能作为输出口。I/O名称寄存器名缩写地址A/D口AD端口数据寄存器0PORTAD0$008FAD端口数据寄存器1PORTAD1$021F§2.5MC9S12DG128MCU的并行I/O接口

第三章CPU12核

§3.1CPU12基本构成

一、CPU12的结构

CPU12是高速的16位处理器单元,内设五个16位寄存器和一个8位的状态寄存器,内部采用16位数据总线,外部数据总线8位/16位可选。

CPU12主要包括寄存器、控制电路和算术/逻辑单元(ALU)和指令队列等四个部分。控制逻辑同一协调各部分逻辑,ALU部件完成指令所要求的算术/逻辑运算等操作,寄存器用于存储操作数或运算结果。§3.1CPU12基本构成

二、CPU12内部寄存器

CPU12中有6个寄存器:16位累加器D(或8位累加器A、B)、16位变址寄存器X、16位变址寄存器Y、16位堆栈指针SP、16位程序计数器PC和8位状态寄存器CCR。

1.累加器D(A、B)累加器A、B是8位通用寄存器,累加器D是由累加器A和B首尾相连后形成的16位寄存器联合体(A为高位)。或者说A、B分别是累加器D的高8位和低8位的别名,它们可保存操作数及运算结果,或用于数据处理。§3.1CPU12基本构成

2.变址寄存器X和Y16位变址寄存器X和Y用于变址寻址,即X、Y的内容加上一个常数或者某个累加器中的值,最终形成的结果为操作数的有效地址。X和Y也可以用作计数器或暂存器,还可参与运算,尤其是乘除运算、模糊运算、查表、插值等运算。

3.堆栈指针SPCPU12支持自动堆栈,用于子程序调用或中断现场保护、数据暂存等。堆栈指针指向下一个栈地址的16位寄存器,采用递减的结构,即入栈时减一,出栈时加一。§3.1CPU12基本构成

4.程序计数器X和YPC是16位寄存器,用于保存要执行的下一条指令的地址,可寻址范围达64KB。

5.程序状态字CCR

程序状态字CCR为8位寄存器。SXHINZVCD7D6D5D4D3D2D1D0§3.1CPU12基本构成

1)C(D0)

进位/借位标志位。当运算过程中产生进位或借位对,进位/借位标志位C置1,否则清0。

2)V(D1)

溢出标志位。

主要用于反映两个有符号数运算结果是否有效,如果运算结果超出了有符号数的表示范围,则发生溢出,V标志置1,否则清0。§3.1CPU12基本构成

3)Z(D2)

全0标志位。当运算结果为0时,Z位置1,否则清0。

4)N(D3)

符号标志位。在CPU运算过程中,若结果为负,则N位置1,否则清0。在CPU12中,除了算术运算以外,寄存器加载、存储、传送也影响N标志,因此寄存器数和存储器数装入累加器时,然后通过测试N标志位即可知正负。§3.1CPU12基本构成

5)I(D4)

可屏蔽中断使能位。用于可屏蔽中断的允许或禁止。I=1时,禁止可屏蔽中断;I=0时,允许可屏蔽中断。CPU复位后,I自动置1,禁止可屏蔽中断,使用前必须通过软件(CLI)将I清0开中断。

CPU响应中断时,自动将I置1,以禁止响应后续中断,中断返回时,执行RTI指令,I位自动清0,以开放可屏蔽中断。若在中断响应期间通过将将I位清0来允许可屏蔽中断,即允许中断嵌套。§3.1CPU12基本构成

6)H(D5)

半进位标志。在加法运算中,如果bit3向bit4产生了进位,则H位置1,否则清0。这位主要用于BCD调整指令。

7)X(D6)非屏蔽中断使能位。复位时,一般将X位置为1,屏蔽XIRQ的中断请求。清零X位将使能非屏蔽中断,只要X位被清0,就不能通过写CCR重设该位,只有当复位或响应XIRQ中断时,硬件自动将X位置1。§3.1CPU12基本构成

8)S(D7)

停止模式(STOP)禁止位。若S=1,执行STOP指令将使CPU进入待机状态,振荡器停振,CPU及多数集成外设部件也停止工作,以降低功耗。若S=0

,STOP指令相当于空操作(NOP)指令,程序继续运行。复位将设置S位为1。§3.1CPU12基本构成

三、指令队列为了提高执行速度,CPUl2内置了两级的指令队列,每一级宽度为1个字。队列前端还设置了一个保持锁存器,宽度也是1个字。取指操作时,指令代码不直接进入解码部分,而是进入指令队列,如果队列不能行进即代码不能进入指令队列,则暂时寄存在保持锁存器中,当队列行进时再正式进入队列。CPU执行的所有指令代码都来自指令队列,一条指令正在执行时,指令队列可以补充后续代码,从而实现了取指与指令执行操作的并行,加快了整个CPU的运行速度。§3.1CPU12基本构成必须指出,指令队列只能使取指与指令执行同时进行,但是并不能使两条或更多的指令同时执行。此外在发生跳转时,指令队列自动清除,然后重新装填。尽管指令代码长度并非全是双数字节,但指令队列的装填总是按字进行。§3.1CPU12基本构成

四、指令执行过程

CPU运行过程中,不断进行取指、运算、结果存储等工作,取指操作通过指令队列进行,结果存储则通过内/外部总线直接送到目的地。具体过程如下:首先将PC所指的指令代码不断读入指令队列,并从队首进入执行部分进行分析,控制逻辑根据指令要求进行操作,操作结果送到目的地并设置CCR中的标志位。

CPU12支持加、减、乘、除运算,并支持浮点除法运算及其它各种逻辑运算,甚至模糊逻辑运算等。外部存储器或内部寄存器既可以提供参与运算的源操作数也可以保存运算结果。。§3.1CPU12基本构成

五、CPU12的堆栈管理规则及使用堆栈是按照后进先出原则组织的一个存储区,CPU12使用堆栈指针SP管理堆栈。SP为16位寄存器,因此堆栈可以开在64KB内存空间的任何区间。复位不改变SP的值,因此应用程序必须在开始部分对堆栈指针进行初始化,使其指向一个有效的RAM区。

CPU12的堆栈是向下生成的,将一个字节压人堆栈时,堆栈指针自动减1,从堆栈中弹出一个字节时,堆栈指针自动加1,若操作数为双字节则SP每次加减2。§3.1CPU12基本构成

SP总是指向最后进入堆栈的一个字节,这一般称为实栈顶,因此压栈操作时先调整堆栈指针,后保存数据,出栈时正相反。初始化时一般将SP指向与栈底相邻的单元,它不属于堆栈,因此表示堆栈为空。堆栈主要用于子程序调用、中断和临时保存数据。一、汇编指令格式

HCS12汇编语言源程序的格式:

标号:操作码操作数;注释

1.标号

1)

可以组成标号的字符有字母(a~z,A~Z)、数字(0~9)、?、_、$及点号(.),但开头的第一个字符不能为数字;

2)标号后必须带“:”;

3)标号长度通常不超过16个字符;

4)标号在程序中只能定义一次。§3.2

寻址方式

2.操作码不区分字母大小写。

3.操作数操作数可以是地址、标号或指令码定义的常数,也可以是由运算符构成的表达式。操作数多于1个时,操作数间要用“,”分隔。

1)常数数制前缀标号十六进制$八进制@二进制%十进制&或无§3.2

寻址方式§3.2

寻址方式

2)“#”标识一个常数前添加“#”标识表示一个立即数,不加“#”标识时表示一个地址。

3)“.”和“*”标识当字符“.”和“*”标识单独用在表达式时,表示当前指令的地址。

4.注释§3.2

寻址方式

二、寻址方式确定指令中所需操作数的方式。

1.隐含寻址(INH)格式:INST

说明:指操作数隐含在指令的操作码中。指令的操作数部分空白。例如:INX;操作数是寄存器X的内容

CLRA;操作数是寄存器A的内容§3.2

寻址方式

2.立即寻址(IMM)格式:INST#opr8/#opr16

说明:指操作数由指令直接给出的寻址方式。操作数带“#”号。

例如:LDAA#$0D;$0D→累加器ALDS

#$02FF;$02FF→栈指针SP§3.2

寻址方式

3.直接寻址(DIR)直接寻址为绝对地址寻址,其有效地址紧随操作码之后。格式:INSTopr8a

说明:直接寻址的操作数为地址的低8位,高8位默认为$00,可对存储器的$0000~$00FF的256B地址范围进行寻址。操作数为绝对地址,不带“#”号。例如:LDAA$3D;($003D)→累加器A§3.2

寻址方式

4.扩展寻址(EXT)扩展寻址也为绝对地址寻址,其有效地址紧随操作码之后。格式:INSTopr16a

说明:扩展寻址的操作数为16位地址,可对存储器的64KB地址范围进行寻址。例如:LDAA$203D;($203D)→累加器A§3.2

寻址方式

5.相对寻址(REL)用于转移和子程序调用指令。格式:INSTrel8/rel16

说明:当执行程序时,将当前PC指针的内容与指令中的偏移量(相对地址)相加,求得转移操作的目的地址。指令中的偏移量有8位带符号数和16位带符号数两种,分别可实现-128~+127B和-32768~+32767B范围的转移操作。例如:BRAL1;无条件转移至标号L1处

BSRL2;调用标号L2处的子程序§3.2

寻址方式

6.变址寻址

CPU12有三种不同的变址寻址。

CPU12变址寻址方式都汇编成1个操作码字节、1个后置字节和0到2个附加字节。操作码指示指令和变址寻址方式;后置字节提供变址寻址方式的具体信息;当偏移量大于5时,需用附加字节。§3.2

寻址方式

1)带有偏移量的变址寻址

即在变址寄存器的基础上,再加上一个5位、9位、或16位的带符号偏移量,也可用累加器A、B、或D的内容作为偏移量,形成操作数的有效地址。

(1)5位偏移量变址寻址(IDX)

格式:INSToprx5,xysp

说明:X、Y、SP、PC加上5位带符号常数偏移量形成操作数地址。偏移范围为-16~+15B。例如:LDAA2,X;(2+X)→累加器A§3.2

寻址方式

(2)9位偏移量变址寻址(IDX1)

格式:INSToprx9,xysp

说明:X、Y、SP、PC加上9位带符号常数偏移量(1个扩展字节中)形成操作数地址。偏移范围为-256~+255B。例如:LDAA$F2,Y;($F2+Y)→累加器A§3.2

寻址方式

(3)16位偏移量变址寻址(IDX2)

格式:INSToprx16,xysp

说明:X、Y、SP、PC加上16位带符号常数偏移量(2个扩展字节中)形成操作数地址。偏移范围为-32768~+32767B。例如:LDAA$1200,PC;($1200+PC)→累加器A§3.2

寻址方式

(4)累加器偏移变址寻址(IDX)

格式:INSTabd,xysp

说明:X、Y、SP、PC加上8位(A、B)或16位(D)偏移量形成操作数地址。偏移范围分别为-128~+127B或-32768~+32767B。例如:LDAAA,Y;(A+Y)→累加器A§3.2

寻址方式

2)自动递增/递减的变址寻址

有4种方式自动改变基址寄存器(X、Y、SP)的值,适用于数组等连续数据区的操作,调整步距可在1~8之间变化,故适合字节、字、双字和四字变量类型。

(1)先自增变址寻址(IDX)

格式:INSToprx3,+xys

说明:先将基址寄存器(X、Y、SP)加上一个指定的值(1~8),然后作为操作数的地址执行指令。例如:STAA1,+X;先执行X+1→X,再执行STAA§3.2

寻址方式

(2)先自减变址寻址(IDX)

格式:INSToprx3,-xys

说明:先将基址寄存器(X、Y、SP)减去一个指定的值(1~8),然后作为操作数的地址执行指令。例如:STAA1,-X;先执行X-1→X,再执行STAA(3)后自增变址寻址(IDX)

格式:INSToprx3,xys+

说明:先作为操作数的地址执行指令,然后将基址寄存器(X、Y、SP)加上一个指定的值(1~8)。例如:STAA1,X+;先执行STAA,再执行X+1→X§3.2

寻址方式

(4)后自减变址寻址(IDX)

格式:INSToprx3,xys-

说明:先作为操作数的地址执行指令,然后将基址寄存器(X、Y、SP)减去一个指定的值(1~8)。例如:STAA1,X-;先执行STAA,再执行X-1→X§3.2

寻址方式

3)间接变址寻址

采用变址寄存器(X、Y、SP、PC)加16位偏移量或累加器D的内容,形成操作数存放单元的有效地址。

(1)16位间接变址寻址([D,IDX])

格式:INST[oprx16,xysp]

说明:指向操作数的指针的地址由X、Y、SP、PC加上一个16位常数偏移量来确定。例如:LDAA[$1200,X];((X+$1200))→A§3.2

寻址方式

(2)累加器D间接变址寻址([IDX2])

格式:INST[oprx16,xysp]

说明:指向操作数的指针的地址由X、Y、SP、PC加上累加器D来确定。例如:LDAA[D,X];((X+D))→A§3.3

指令系统一、数据传送类指令

1.寄存器加载指令指令共有6条,实现将立即数或内存操作数加载到寄存器的功能。源操作数支持8种寻址方式,目的操作数为除了CCR和PC以外的所有寄存器。影响标志位的N、Z、V三位。助记符操作寻址方式CCRINHIMMDIREXTRELIDXIDX1IDX2[D,IDX][IDX2]SXHINZVCLDAA(M)→A-√√√-√√√√√----√√0-LDAB(M)→B-√√√-√√√√√----√√0-LDD(M:M+1)→A:B-√√√-√√√√√----√√0-LDS(M:M+1)→SP-√√√-√√√√√----√√0-LDX(M:M+1)→X-√√√-√√√√√----√√0-LDY(M:M+1)→Y-√√√-√√√√√----√√0-§3.3

指令系统§3.3

指令系统

2.寄存器存储指令指令共有6条,实现将寄存器内容送入内存单元的功能。源操作数为除了CCR和PC以外的所有寄存器,目的操作数支持7种寻址方式。影响标志位的N、Z、V三位。§3.3

指令系统助记符操作寻址方式CCRINHIMMDIREXTRELIDXIDX1IDX2[D,IDX][IDX2]SXHINZVCSTAAA→M--√√-√√√√√----√√0-STABB→M--√√-√√√√√----√√0-STDA:B→(M:M+1)--√√-√√√√√----√√0-STSSP→(M:M+1)--√√-√√√√√----√√0-STXX→(M:M+1)--√√-√√√√√----√√0-STYY→(M:M+1)--√√-√√√√√----√√0-§3.3

指令系统

3.寄存器间传送指令指令实现将源寄存器内容送入目的寄存器的功能。源操作数和目的操作数为除了PC以外的所有寄存器。实际上该类指令只有三条:TAB、TBA和TFR,其余指令是为了兼容HC11而保留的伪指令,由汇编程序自动转换成对应的TFR指令。

TFR指令的突出特点是可以在8位寄存器和16位寄存器之间传送:

8位到8位或16位到16位,直接传送。

8位到16位,通过符号扩展变为16位再传送。

16位到8位,舍弃高8位,只传送低8位。助记符操作寻址方式CCRINHIMM

温馨提示

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

评论

0/150

提交评论