飞思卡尔8位单片机MC9S08第08章 串行通信接口SCI与串行外设接口SPI

合集下载

飞思卡尔单片机调试接口说明

飞思卡尔单片机调试接口说明

飞思卡尔单片机调试接口说明1、监控模式(Monitor Mode):飞思卡尔HC(9)08系列单片机应用此种调试方式。

又称MON08。

其主要特点是单线双向异步串行通讯。

为了进入监控模式,在单片机上电复位时,该通讯线要处于高电平状态。

除了该通讯线外,还有一些辅助信号线要处于特定的电位状态。

如果单片机的复位矢量不是处于擦除状态(被烧录过,不是$FFFF),则复位信号线或中断信号线需要特定的监控高电压。

有些单片机还需要外加时钟信号以进入监控状态。

起初工业界并没有一定的接口引脚标准,在摩托罗拉在线模拟器(ICS)的基础上,PEMICRO其中NC表示不接任何信号。

MON4和MON5中的一个引脚为通讯线(MR8除外),另一个和MON6,MON7,MON8为辅助信号线,其使用与否和电平状态视芯片而定。

2、6针背景调试模式(BDM):飞思卡尔HC9S08,HC(S)12(X),RS08等系列单片机应用此种调试方式。

其主要特点是单线双向同步串行通讯。

单片机进入背景调试状态比较简单,在单片机复位时只要通讯线在一定时间内处于低电平即可。

但是背景调试模式对通讯信号的要求比较高,其通讯速度、每个命令的执行时间与单片机总线频率有着直接联系。

注意2:引脚4为RST复位信号,用户应为该信号提供上拉电阻。

注意3:RS08在对闪存进行擦除或烧录时要求引脚4提供12伏稳定电压。

3、10针背景调试模式(BDM):飞思卡尔HC16,68xxx系列单片机应用此种调试方式。

其主要特点是双向同步串行通讯。

同步串行通讯时钟由仿真器提供,并与单片机总线时钟同步。

飞思卡尔对10针BDM接口引脚定义:起初摩托罗拉定义了8针BDM接口引脚,与以上定义的后8针相同。

4、10针背景调试模式(BDM):飞思卡尔PowerPC MPC8xx和MPC5xx系列单片机应用此种调试方式。

其主要特点是双向同步串行通讯。

同步串行通讯时钟由仿真器提供,并与单片机总线时钟同步。

全球主流8位MCU芯片详细解剖No.1-飞思卡尔 MC9S08AC60

全球主流8位MCU芯片详细解剖No.1-飞思卡尔 MC9S08AC60

全球主流8 位MCU 芯片详细解剖No.1:飞思卡尔
MC9S08AC60
相信很多人在学习MCU(单片机)的时候,都是从最基本的8 位MCU 开始的。

如今,尽管32 位MCU 甚至更多功能强大的MCU 大有下探取代之势,但是在许多工程师的记忆里以及相当一部分应用领域,8 位单片机依然是不可磨灭的一代经典!本文将结合单片机的生产厂商,带你深入了解主流8 位单片机的功能结构,引脚说明,模块分析以及具体应用等等。

飞思卡尔MC9S08AC60
简介
MC9S08AC60 系列MCU 是低成本、高性能HCS08 系列8 位微处理器单元(MCU)的成员。

这个系列的单片机均由一对引脚兼容的8 位和32 位器件组成,是Flexis 系列器件的第3 个系列产品。

Flexis 系列控制器是飞思卡尔控制器联合体的连接点,使8 位与32 位兼容性成为现实。

模块结构图
系统时钟图
引脚图
通用引脚连接
重要引脚说明
电源(VDD,VSS,VDDAD,VSSAD)。

基于MC9S08QG8的SPI数字温度传感器的设计应用

基于MC9S08QG8的SPI数字温度传感器的设计应用

1引言 随着技 术发 展, 特别是 应对 复杂 功能设 计 的设备, 要求 尽可 能节 约芯片 管
脚 等资源 , 以提 高 集成度 和 系统 的可 扩充 性 。本文介 绍 了对 带有 s I 口的 P 接 L 9 0 1 字温度 传 感器 的单 线双 向数 据通 信 实例 。 M 57 数 2系统主 要 功能和 结构 利用 L 9 0 采 集温 度 并将 经过 A D转换 后 的温 度 值 由 S I传递 给 M 5 71 / P M 9 OQ 8 C S8 G 单片 机, 单片机 处理 后的 数据被 送至 4 经 位共 阳极 的八段 码 LD E 显 示 器 中显示 出来, 设计 的特 点 是利用 M 9 OQ 8 片机 的 S I 口以 草线双 本 C S 8G 单 P接 向方式数 据通 信而 非 般 单片机 为 实现 单线双 向模 式需 要额外 增 加硬件 设计 或 是 占用管脚 进行 模拟 , 以节约 管脚 并不 影 响数据 传输 效率 。它 由作 为 控 可 制核 心 M 9 0 Q 8单片机 、L 9 0 温度 传 感器 模块 、L D显示 模块 、和 CS 8G M 57 i E 电源 、时 钟 、 复 位 电 路 等共 同构 成 。 3硬件 设计 与 实现 3 1 O S 8 G 介 绍m M 9 O 0 8 M 9 O Q 8 以下 简称 为Q 8 , C SSG ( G ) 是美 国飞思卡 尔公 司新推 出的一 款8 单 片 位 机, 采用 高性 能 、低功 耗 的 H S 8内核, C0 具有 很高 集成 度 , 内有 8 F A H和 K LS lR M 用 于用 户数据 和程 序存储 编程 : 2A , 集成 了 S I I 、S I D 、K I P 、I C C 、A C B 、 M I 、AM 等 模块 , TM CP 复用两 路普通 输 入输 出 口 :6 中断 级, 1个 每个 模块 有 自己 的 中断, 设计采 用 的是P I 1 封 装 的 单片 机, G 的 S I有 5 8 寄 存器 , 本 DP6 Q8 P 个 位 其 中的 s I 2 制 寄存器 用于控 制仝 双工 或单 线双 向方 式工 作 。由 B D和 S C P O位 同 决定 是否 单线双 向和输 入输 出方 向。 3 2温 度传 感器 简介 L 9 0 1 度传 感器 是美 国国家 半 导体公 司推 出的一 款符 合A C Q O 标 M 57 温 E I0 准 的单通道 精确 二极管 温度 传感 器 。L 9 0 1 M 5 7 将温 度传 感与 数码 转换功 能相 结合 , L 90 1 M 5 7 可工 作于 正常模 式 与 s u d w h t o n模式下 。该款传 感器 拥有 1 4 个有效 位 ( 符 号位) 含l 的温 度值 寄存器 , 可有效 测量 并表 示 4 ℃~1 0C 间 0 5  ̄之 的温度 值 : 有很 高的灵 敏度 : 小分 辨温度 为 0 0 15C( 5 , 具 最 .3 2  ̄ 2 ) 可满足 较 高 使用要 求 。 M 5 7 适 用于 2 4 ~5 5 较 大 电压范 围, L901 .V .V 较低 的 电流要 求 :F 『 常 模 式下 电流 为 2 0u A s u d w 模 式 下仅 6 uA 带 有 S I M C O I E 口 8 , h t o n , P 和 I RW R 接 可 与 多种 设 备 相 连 。 3 3 电路构 成 在 本设计 中显 示功 能主要 由 4 位共 阳极 8 数码 管和 外 围电路 实现 。利 段 用两片 7 H 5 5 4 C 9 A芯片实 现 4位 串行 L D显示 控制 。 E 4软件 设计 与实现 本 设计 的 软件 部 分主要 由主 程序 、S I收 发 控制 子 程序 、温 度转 换 子 P

飞思卡尔MC9S08及MC9S12 单片机通过SCI口更新程序的一种方法

飞思卡尔MC9S08及MC9S12 单片机通过SCI口更新程序的一种方法

通过SCI口单片机通过飞思卡尔MC9S08及MC9S12 单片机更新程序的一种方法王佚(Freescale 8/16bit MCU FAE) 飞思卡尔的8/16 Bit 单片机内置FLASH可以通过单片机编程来进行擦除与编程,所以,理论上就可以通过SCI口接口实现软件的自我升级.在实际工作中,我们也遇到不少客户询问相关的实现方法,而我们也给了一些参考代码,但还是有不少工程师不能很好地理解,基于这些原因,我写了点东西来介绍一种比较简单的实现方法,供大家参考,如有不周,敬请批评与谅解.一,飞思卡尔MC9S08单片机内部存储器介绍MC9S08有很多系列单片机,一般程序空间均在64K以下,为了介绍方便,我们以MC9S08AW60一种为例进行介绍.上图为MC9S08AW60的数据空间分布图,对于大于64K空间的MC9S08单片机,其结构与MC9S12单片机类似,故先不做介绍.从图中我们不难看出,由于飞思卡尔单片机的数据存储器(RAM)与程序存储器(FLASH)是统一编址,所以,我们可以将程序引导到RAM里运行.二,飞思卡尔 8位单片机内部中断相量地址介绍飞思卡尔 8位单片机对中断处理是通过判断中断相量表的地址来判断程序的入口地址的.飞思卡尔 8位单片机的中断相量为16位,其放置在从0xFFFF地址向下按照中断号以此排放.三, 飞思卡尔MC9S08单片机FLASH操作简介飞思卡尔MC908及MC9S08系列单片机的FLASH都可以通过软件进行擦除与编程,不同的是MC908有相应的程序内置在单片机的ROM空间,而MC9S08没有,其需要用户自己编写.飞思卡尔的CodeWarrior for MC9(S)08软件在安装后,在\freescale\CodeWarrior for Microcontrollers V6.0\(CodeWarrior_Examples)\HCS08\Device Initialization C Examples\GB60_Modules\Sources\Flash_GB60目录下有响应的参考代码.MC9S08系列单片机的Flash有四种操作模式:Byte program, Byte program (burst), Page erase及Mass erase,其操作时间见下表.需要说明的是,在此操作其间,不可以使能任何中断.下图为操作流程图.需要说明的是,用来实现”Write a data value to an address in the FLASH array”的语句代码,表面上看是将一个数据写到一个Flash数据区去,但实际上是将所需要编程的Flash地址或是擦除的Flash的块地址及数据分别写入到单片机内类似地址积存器及数据寄存器里.CodeWarrior里自带的代码,是用机器码的方式来做的,其也给出了相应的代码,大家可以对应着看看,一般来说,只做Flash模拟EEPROM,该代码即可满足大家使用.在此,本文就不详细描述代码实现的方法.四,实现程序自我更新的两种常见方法及各自特点一般说来,我们有两种方法来,我们有两种常见方法实现程序自我更新.一种是将实现程序更新的部分的程序与应用程序融合在一起,系统在更新程序时甚至可以将整个程序包括更新程序一起更新掉,其优点是可以花费少的程序空间,缺点是数据及主程序空间分配比较麻烦,且在做更新程序时一旦掉电或是其它什么原因,可能无法进行程序的再次更新.另外一种是,将实现程序更新的程序写成是一个独立的程序,其缺点是要浪费部分程序空间,且中断相量无法更新所以要做程序的映射,类似引导(bootload)的概念.其优点是在编写应用程序时不用考虑数据空间地址分配的问题,同时不用担心下载过程出现任何异常情况.本文后面所涉及的内容,均以第二种方法为例,为描述方便,我们定义其为下载程序.五, 下载程序如何实现中断相量的映射由于我们无法预知究竟系统会用多少中断,所以对于应用程序的中断,都必须在更新程序中做映射,即,我们在单片机的某个程序空间建立一个程序跳转表,更新程序的中断相量表做一个固定的表,对应固定地址,我们只需在固定地址放相应的跳转指令,就可以实现中断相量的映射.例题如下:地址A: JMP 地址B. JMP地址B其实是个引导程序.中断相量<1>: 地址A.其中, “中断相量<1>”地址放的”地址A”由更新程序确定,而”地址A” 地址放的” JMP地址B”,JMP由计算机来添加,”地址B”则由应用程序确定.对于复位中断,其处理方法有点不同,其实现方法如下:中断相量<1>: Main.地址A:JMP 地址B.Main:If (a>b){goto地址B }中断相量表的定义参考方法如下:void (* const _vect[])() @0xFFCC = { /* Interrupt vector table */0xf998, /* Int.no. 25 Vrti (at FFCC) Unassigned */0xf99c, /* Int.no. 24 Viic1 (at FFCE) Unassigned */…_Startup /* Int.no. 0 Vreset (at FFFE) Reset vector */};六,单片机程序注意事项1,程序空间分配下载程序的空间应该从0xfff地址向下排放,具体大小需要根据实际的大小及单片机Flash的Block大小来同时决定.空间的安排,一定是Block的倍数.应用程序的空间是从程序的最低段开始排放,除了中断向量外,不可以有任何代码地址与下载程序重叠.在用CodeWarrior来写程序时,我们可以修改PRM文件来控制程序排放地址.下面是下载程序的PRM参考代码.NAMES ENDSEGMENTSROM = READ_ONLY 0xfA00 TO 0xFFAF;Z_RAM = READ_WRITE 0x0070 TO 0x00FF;RAM = READ_WRITE 0x0200 TO 0x086F;ROM2 = READ_ONLY 0xFFC0 TO 0xFFCB;ENDPLACEMENTDEFAULT_RAM INTO RAM;DEFAULT_ROM, ROM_VAR, STRINGS INTO ROM;_DATA_ZEROPAGE, MY_ZEROPAGE INTO Z_RAM;ENDSTACKSIZE 0x802,程序代码保护为了使下载程序在任何异常情况下不会被改写,其除了放置引导程序的空间外,均要做代码保护.其在C语言种的参考代码如下.const unsigned char NVPROT_INIT @0x0000FFBD = 0xFA;.3,计算机应用程序如何处理单片机应用程序的中断相量表计算机在应用程序处理该中断相量表时,应根据下载程序的映射关系,将两个字节的相量数据自动计算到对应引导地址,并变为JMP+地址(相量)的模式.下面是参考转变模式.单片机应用程序复位相量为0x8000,其变为跳转后的代码则为0xCC8000.如本文参考代码,其对应引导地址为0xf9fc,则计算机应用程序则应通知下载程序在0Xf9fc后写0XCC8000三个字节数据,运行完成后,反编译的代码如下:F9FC: JMP 0x80003,其它建议为保证应用程序的正确性,可以在下载程序里判断程序的校验码,可以用16位CRC码等.七,S19文件格式简介S-记录实际上是由五个部分组成的字符串的集合。

飞思卡尔8位单片机MC9S08JM60开发板实践教程

飞思卡尔8位单片机MC9S08JM60开发板实践教程

第一章搭建实验环境系统时钟设置#include "App\Include\App.h"#ifndef _MCG_C#define _MCG_C//oscillator 12MHZ 倍频为24MHZ()先8分频后16倍频void S_MCGInit(void){/* the MCG is default set to FEI mode, it should be change to FBE mode*//************************************************************************** ***********MCGC2[7:6] BDIV总线频率分频因子–选择由MCGC1寄存器中CLKS位决定的时钟源的分频。

这控制总线频率。

00 编码0 –时钟1分频01 编码1 –时钟2分频(复位后默认)10 编码2 –时钟4分频11 编码3 –时钟8分频[5] RANGE频率范围选择–选择外部振荡器或者外部时钟源的频率范围。

1 选择1MHz到16MHz外部振荡器的频率范围。

(1MHz到40MHz的外部时钟电源)的高频率范围0 选择32kHz到100kHz外部振荡器的频率范围。

(32kHz到1MHz的外部时钟电源)的低频率范围[4] HGO高增益振荡器选择–控制外部振荡器操作模式。

1 配置外部振荡器为高增益运行0 配置外部振荡器为低功耗运行[3] LP低功耗选择–控制在忽略模式中FLL(或者PLL)是否为无效1 FLL(或PLL)在忽略模式(低功耗)中为无效的。

0 FLL(或PLL)在忽略模式中为无效的。

[2] EREFS外部参考时钟选择–为外部参考选择时钟源1 选择振荡器0 选择外部时钟源[1] ERCLKEN外部参考时钟使能–使能外部参考时钟作为MCGERCLK1 MCGERCLK激活0 MCGERCLK 无效[0] EREFSTEN外部参考时钟停止使能MCGC2 0b0011 0110 激发外部时钟(晶振)(没有使能)*************************************************************************** ***********/MCGC2=MCGC2_RANGE_MASK|MCGC2_HGO_MASK|MCGC2_EREFS_MASK|MCGC2_ERCLK EN_MASK;while(!MCGSC_OSCINIT);//MCGSC寄存器中OSCINIT(第1位)为1,表示由EREFS位选择的晶振被初始化。

(整理)飞思卡尔8位单片机MC9S08JM60开发板实践教程

(整理)飞思卡尔8位单片机MC9S08JM60开发板实践教程

第一章搭建实验环境系统时钟设置#include "App\Include\App.h"#ifndef _MCG_C#define _MCG_C//oscillator 12MHZ 倍频为24MHZ()先8分频后16倍频void S_MCGInit(void){/* the MCG is default set to FEI mode, it should be change to FBE mode*//************************************************************************** ***********MCGC2[7:6] BDIV总线频率分频因子–选择由MCGC1寄存器中CLKS位决定的时钟源的分频。

这控制总线频率。

00 编码0 –时钟1分频01 编码1 –时钟2分频(复位后默认)10 编码2 –时钟4分频11 编码3 –时钟8分频[5] RANGE频率范围选择–选择外部振荡器或者外部时钟源的频率范围。

1 选择1MHz到16MHz外部振荡器的频率范围。

(1MHz到40MHz的外部时钟电源)的高频率范围0 选择32kHz到100kHz外部振荡器的频率范围。

(32kHz到1MHz的外部时钟电源)的低频率范围[4] HGO高增益振荡器选择–控制外部振荡器操作模式。

1 配置外部振荡器为高增益运行0 配置外部振荡器为低功耗运行[3] LP低功耗选择–控制在忽略模式中FLL(或者PLL)是否为无效1 FLL(或PLL)在忽略模式(低功耗)中为无效的。

0 FLL(或PLL)在忽略模式中为无效的。

[2] EREFS外部参考时钟选择–为外部参考选择时钟源1 选择振荡器0 选择外部时钟源[1] ERCLKEN外部参考时钟使能–使能外部参考时钟作为MCGERCLK1 MCGERCLK激活0 MCGERCLK 无效[0] EREFSTEN外部参考时钟停止使能MCGC2 0b0011 0110 激发外部时钟(晶振)(没有使能)*************************************************************************** ***********/MCGC2=MCGC2_RANGE_MASK|MCGC2_HGO_MASK|MCGC2_EREFS_MASK|MCGC2_ERCLK EN_MASK;while(!MCGSC_OSCINIT);//MCGSC寄存器中OSCINIT(第1位)为1,表示由EREFS位选择的晶振被初始化。

飞思卡尔8位单片机MC9S08 15 08系列MCU编程器的开发.ppt

飞思卡尔8位单片机MC9S08 15  08系列MCU编程器的开发.ppt

命令
格式
功能
READ $4A $4A 高字节 高字节 低字节 低字节 数据
读出指定单元内容(RAM或Flash)
WRITE IREAD
$49 $49 高字节 高字节 低字节 低字节 数据 数据 $1A $1A 数据 数据
向指定单元写数据(RAM)
读取上次访问的地址+1、+2处的 内容(RAM或Flash)
Start Bit0 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Stop
16.1 编程器技术基础
(2)监控模式的工作过程
MCU在进入监控模式时,需要接收8字节的保密字节,如果是空白 芯片,则8字节的保密字节全是$FF,然后就处于等待接收一个命令字节 状态。以GP32为例,进入监控模式的时序如下图所示。
In PC 主机 Out
串 3 In 行 口 2 Out PC
MAX 7 232 9
8
10
1
3
2 MC
5
74HC125 6
特定I/O
目标 MCU
(a)编程器内部器件连接图
7
10
6
VDD
VDD 5 10KΩ
4
8
9
2
3
MAX 232
1 74HC125
(b)编程器原理图
16.2 HC08系列MCU编程器的实现方法
16.1 编程器技术基础
16.1.3 HC08系列MCU在监控模式下的工作过程
(1)与主机通信的数据格式
当MCU上电复位时,如果满足进入监控模式的条件,MCU就会工作 于监控模式。监控模式下MCU主要是通过某个特定的I/O口(如:GP32是 PTA0,JL3是PTB0),以标准不归零(NRZ)的数据格式进行数据通信, 具体为:第一位起始位(0),随后为8个数据位(低位在前,高位在后),最 后一位为停止位(1)。NRZ的数据格式如下图所示。

飞思卡尔8位单片机-第9章 SPI

飞思卡尔8位单片机-第9章 SPI

1-SSOE
0-LSBFE
时钟模式
时钟模式
ss
SS的用法
MODFEN
0
SSOE
0
主机模式
通用 I/O (非SPI)
从机模式
从模式选择输入
0
1 1
1
0 1
通用 I/O (非SPI)
用于模式故障的 输入 自动 输出
从模式选择输入
从模式选择输入 从模式选择输入
对于Slave模式,SS管脚一定作为片选输入用; 对于Master模式,SS管脚是否被SPI控制,取决于MODFEN,当该位为“1” 表示SS被SPI使用,但其功能由SSOE决定,SSOE为“1”时,SS作为片选输 出;SSOE为“0”时SS作为总线冲突指示输入。 总线冲突检测功能: 当管脚 SS 作为总线冲突指示用时(此时MSTR = 1, MODFEN = 1且SSOE = 0).当 一个主器件的SS管脚变为低时,意味着还有其它Master器件试图将该主器件 作为Slave来控制,此时产生总线冲突事件, 标志位MODF被置“1”(读SPIS 然后写SPIC1清除该位),且被控制器件将更改模式为Slave(MSTR位被清 除),用户程序必须保证总线冲突解除才能重新恢复器件为主模式。
1. SPI总线系统的组成
• SPI总线系统典型结构示意图
图8-1 SPI外围扩展示意图
• 单片机与外围扩展器件在时钟线SCK、数据线MOSI 和MISO上都是同名端相连。带SPI接口的外围器件 都有片选端CS。
• 在扩展多个SPI外围器件时,单片机应分别通过I/O 口线来分时选通外围器件。
• 当SPI接口上有多个SPI接口的单片机时,应区别其 主从地位,在某一时刻只能由一个单片机为主器件。 • 图8-1中MCU(主)为主器件,MCU(从)为从器 件。

MC9S08QG8简介

MC9S08QG8简介
z 单线后台调试(BDM)接口 z 单断点在线调试(DBG 模块可另外扩展
出两个断点) z DBG 模块:片上实时在线仿真模块,包
括两个比较器,9 种触发模式。8 字节深 度的 FIFO 用于存储地址和数据信息。 调试模块支持紧随断点和强制断点。 z 可支持多达 32 个中断/复位源 存储器 z 8KB FLASH,在芯片工作电压 (1.8V~3.6V)范围内可擦除编程 z 512 字节片上 RAM 节电模式 z 等待模式和 3 种停止模式 时钟源 z ICS-内部时钟源模块,包含一个由内部 参考或外部参考时钟控制的锁频环 (FLL)。内部参考时钟精度可调,分辨率 0.2%;超温超压下工作时钟频率仅 2% 误差。总线频率 1MHz~10MHz。 z XOSC-低功耗晶体振荡模块,软件选 择晶体或陶瓷振荡器范围:
北京飞锐泰克科技有限公司 电话:010-58732518 传真:010-58732528
MC9S08QG8: 微控制器
MC9S08QG8 是采用高性能、低功耗的 HCS08 内 核的飞思卡尔 8 位微控制器系列中具有很高的集成 度的器件。MC9S08QG8 MCU 集成了那些通常较 昂贵的 8 位单片机才具有的性能,包括单线后台调 试模块以及可进行实时总线捕捉的内置在线仿真 (ICE)功能。该产品的特色还包括一个可编程的 16 位定时器/脉冲宽度调制(PWM)模块(TPM), 是同类产品中最灵活、最经济的单片机之一。 结构紧凑、高集成度的 MC9S08QG8 提供了飞思 卡尔丰富的外设,更长的电池寿命(即使工作电压 低至 1.8V,也能发挥最大效能),业界领先的 FLASH 技术以及创新的开发调试方式。 对于诸如无线通讯、手持式设备、小家电、玩具、 基于简化型媒体访问控制器(SMAC)的应用等对 功耗和尺寸要求较高的应用,MC9S08QG8 是出色 的解决方案。 芯片工作温度范围:-40 至 85 摄氏度。 MC9S08QG8 性能 8 位 HCS08 中央处理器(CPU)

飞思卡尔8位单片机实用教程说明书

飞思卡尔8位单片机实用教程说明书

图书基本信息书名:《飞思卡尔8位单片机实用教程》13位ISBN编号:978712108999210位ISBN编号:7121089998出版时间:2009-6出版社:曾周末、李刚、陈世利、 周鑫玲 电子工业出版社 (2009-06出版)页数:222版权说明:本站所提供下载的PDF图书仅提供预览和简介以及在线试读,请支持正版图书。

更多资源请访问:前言飞思卡尔原是全球领先的半导体公司,为汽车、消费电子、工业控制、网络和无线市场设计并制造嵌入式半导体产品。

飞思卡尔系列单片机由于其低成本和高性能的特点越来越受到用户的青睐。

本书介绍的MC9S08QG8单片机采用高性能、低功耗HCS208飞思卡尔8位微控制器为内核,是一款集成度很高、功能丰富、适用于各种应用的低价位单片机。

本书将给大家介绍它的一些主要功能及特性,包括灵活多样的低功耗模式、3.3V电压下的Flash编程、片内调试仿真器、高速ADC、IC总线、片内比较器等。

本书共12章,深入浅出地从一般单片机的基础知识人手,引出飞思卡尔8位单片机基础知识、最小系统设计,进而有步骤地、详略得当地介绍飞思卡尔8位单片机的寄存器与片内存储器、指令系统与汇编程序设计、中断系统等基本功能,并在之后的章节中,详细而又有针对性地一一介绍了集成在这款单片机内部的其他功能模块,比如定时器和比较器、异步串行通信、SPI、IC、模/数转换等功能模块。

本书还介绍了飞思卡尔单片机与MCS51单片机的区别,学过5l单片机的人会很快掌握其要点。

在本书最后一章里,有针对性地介绍了S08系列单片机c语言编程,并详细介绍了Code Warrior IDE调试软件的使用方法。

本书给出的所有例题都在实验板上运行验证过。

总之,本书力求通过最简洁的语言和表述方式、最通俗易懂的应用举例,向广大读者全面地介绍MC9S080G8单片机的功能及特性,以求能够为大专院校的学生及各相关领域的工作者提供一些帮助。

参加本书编写的还有天津大学精仪学院的薛彬、汤其剑、刘世廷、高雅彪、叶德超、黄邦奎、孙晔等研究生。

飞思卡尔8位单片机MC9S0802嵌入式应用技术硬件基础

飞思卡尔8位单片机MC9S0802嵌入式应用技术硬件基础
第二章 嵌入式应用技术的硬件基础
主要内容 ❖ 数字电路基础知识 ❖ 嵌入式应用的常用元器件 ❖ 嵌入式应用技术的常用术语
1
2.1 数字电路基础知识
2.1.1 嵌入式应用中常用的数制及其转换
(1)单片机中常用的进制
任意数S,(基数为N)均可展开为:S=∑KiNi 其中Ki是第i位的系 数,它可能是0~N-1共N个数码中的任意一个。不同的数制基数N不 同,数字码不同。
C 3 5 A• F E
↓ ↓ ↓ ↓ ↓↓
1100 0011 0101 1010.1111 1110
即C35A.FEH=11010.1111111B。
4
十六进制与十进制相互转换
十六进制→十进制: 按展开式计算即可。 十进制→十六进制: 整数部分与小数部分分别转换。整数部分:除 以16取余数,先为低位后为高位。小数部分:乘以16取整数,先为高 位后为低位。
0010 1111 1011.1101 1101 1000
↓↓↓↓ ↓ ↓
2 F B. D D 8
即1011111011.110111011B=2FB.DD8H。
十六进制→二进制 : 将每1位十六进制数用4位二进制数取代,若最
前面或最后面有0则去之。例如,将十六进制数C35A.FE转为二进制数,
方法如下:
与门逻辑真值表
AB Z 00 0 01 0 10 0 11 1
或门逻辑真值表
AB Z 00 0 01 1 10 1 11 1
非门逻辑真值表
A
Z
01
10
11
A•B
其它基本逻辑门
①与非门:与非门逻辑功能是:只有所有输入为1时,输出才是0, 否则输出为1。其表达式为:Z=A ·B。

飞思卡尔8位单片机MC9S08 15 程序 CAN通信接口 程序

飞思卡尔8位单片机MC9S08 15 程序 CAN通信接口 程序

15.4.2 控制寄存器(1)MSCAN08模式控制寄存器0 (Module Control Register 0,CMCR0)模式控制寄存器0(CMCR0)定义了MSCAN08模块的同步状态等有关工作方式。

地址:$0500SYNCH —Synchronized Status:同步状态。

SYNCH =1,MSCAN08与CAN总线同步;SYNCH =0,MSCAN08与CAN总线不同步。

TLNKEN —Timer Enable:时钟使能。

TLNKEN =1,MSCAN08时钟信号输出连接到片上时钟输入;TLNKEN =0,MSCAN08不连接到时钟输入。

SLPAK —Sleep Mode Acknowledge:睡眠模式确认。

SLPAK标志位指示MSCAN08是否处于睡眠模式,SLPAK =1,表示MSCAN08处于内部睡眠模式;SLPAK =0,不在内部睡眠模式。

SFTRES —Soft Reset:软复位。

SFTRES =1,MSCAN08处于软复位状态;SFTRES =0,MCAN08处于正常运行状态。

当SFTRES被置为1时,MSCAN08立即进入软复位状态。

此时,MSCAN08所有正在进行的收发操作都被中止,且不再与CAN总线保持同步。

只有在软复位状态下,才能对寄存器MCR1、BTR0、BTR1、IDAC、IDAR0-IDAR3、IDMR0-IDMR3进行写操作。

当该位清0时,MSCAN08将在11个隐性位后与总线保持同步。

(2)MSCAN08模式控制寄存器1 (Module Control Register 1,CMCR1)模式控制寄存器1定义了MSCAN08模块的时钟源、唤醒模式及工作方式。

地址:$0501LOOPB —Loop Back Self-Test Mode:回环自测模式位。

LOOPB =1,激活回环自测模式;LOOPB =0,正常运行模式。

当处于回环自测模式时,CAN RX引脚被忽略,CAN TX引脚输出隐性值,MSCAN08将自己发送的报文当成是从远程节点上发送过来的报文进行接收,并产生发送和接收中断。

单片机MCS串行通信接口SCI和串行外设接口SPI

单片机MCS串行通信接口SCI和串行外设接口SPI

《嵌入式应用技术基础教程》课件
8.1.2 RS-232C总线标准
RS-232接口,简称“串口”,
它主要用于连接具有同样接口的室内
6 78 9
设备。目前几乎所有计算机上的串行 口都是9芯接口。右图给出了9芯串 行接口的排列位置,相应引脚含义见
1 23 4 5 9芯串行接口排列
表8-1。
表8-1 9芯串行接口引脚含义表
《嵌入式应用技术基础教程》课件
第八章 串行通信接口SCI 与串行外设接口SPI
主要内容 ❖ 串行通信基本知识概要 ❖ SCI的外围硬件电路与基本编程原理 ❖ SCI模块的编程结构 ❖ 串行通信编程实例 ❖ SPI模块的编程结构及应用实例 ❖ SPI应用实例━━高位A/D扩展接口
《嵌入式应用技术基础教程》课件
8.1 串行通信基本知识概要
8.1.1 基本概念
(1)异步串行通信的格式
SCI 通 常 采 用 NRZ 数 据 格 式 , 即 : standard non-return-zero mark/space data format,译为:“标准不归零传号/空号数据格 式”。“不归零”的最初含义是:用正、负电平表示二进制值,不使 用零电平。“mark/space”即“传号/空号”分别是表示两种状态的物 理名称,逻辑名称记为“1/0”。下图给出了 8位数据、无校验情况的 传送格式。
《嵌入式应用技术基础教程》课件
(3)奇偶校验
字符奇偶校验检查(character parity checking)称为
垂直冗余检查( vertical redundancy checking,VRC),它是每个 字符增加一个额外位使字符中“1”的个数为奇数或偶数。
奇校验:如果字符数据位中“1”的数目是偶数,校验位应为“1”, 如果“1”的数目是奇数,校验位应为“0”。

8位飞思卡尔单片机

8位飞思卡尔单片机

飞思卡尔8位单片机概述----飞思卡尔8位单片机系列主要包括RS08类、HCS08类、HC08类、HC08汽车类、HCS08汽车类。

下面每个类型都将挑选一典型产品进行介绍,更多产品介绍敬请登陆飞思卡尔官方网站。

1、RS088位微控制器正逐渐向小型化应用发展。

在这些小型应用中,也许并不需要使用完整的HC08或S08所具备的丰富功能。

RS08内核是非常流行的SO8中央处理器(CPU)的精简版,它被精心打造为效率更高、成本更低并适合小容量内存的微控制器。

RS08是一些新兴应用的理想解决方案,例如完全用固态电路实现的简单机电设备,或小型便携设备甚至一次性便携设备。

飞思卡尔的工程师将小型化应用不需要的功能从S08内核中去除,而对其余的运算进行了增强,从而提高了超小型控制器的使用效率。

这些控制器的芯片面积非常小,您甚至可以将它们从胡椒罐中摇出来。

RS08内核的尺寸比S08小30%。

为了减小面积,RS08将计数器和地址总线宽度限制为14位,使用一个全局中断标志寄存器取代了矢量中断功能,同时还取消了以下功能:堆栈指针和H:X寄存器及其相关指令和寻址模式乘法、除法以及BCD码指令算术逻辑移位运算(保留了逻辑移位和旋转)条件码寄存器中的若干位以及相关条件分支指令这些被取消的功能由更为简单的结构所代替,这些结构保证了在内存低于16K且引脚数目很少的器件上,可以用非常简洁高效的代码实现大多数嵌入式应用。

为了进一步提高运算效率,飞思卡尔增加了如下内容:屏蔽程序计数器,用于更为高效的子程序调用简短微小的寻址模式,允许对最常用的变量和寄存器进行更为有效地访问和操作内存分页方案,能够更充分地利用直接寻址模式和新型的简短微小的寻址模式RS08内核深化了飞思卡尔8位产品系列,在发展可以共享外围设备和通用开发工具、并且引脚兼容的8位/32位器件的过程中,迈出了第一步。

它将使机械和电子产品开发者开发出史无前例、独具匠心、节约成本的电子应用产品和功能非常先进的一次性产品。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DMARE DMATE ORIE
发送位8 接收位8
DMA发送 允许位
接收器噪 声错误中 断允许位
接收器奇偶错 误中断允许位 接收器帧 错误中断 允许位
DMA接收 允许位
接收器溢出 中断允许位
8.3 SCI模块的编程结构
(5) SCI状态寄存器1(SCI Status Register 1,SCS1 )
8.3 SCI模块的编程结构
8.3.2 串行口初始化与收发编程的基本方法
(1)SCI初始化
对SCI进行初始化,最少由以下三步构成: 第一步:定义波特率。
LDA #%00000010 STA SCBR ;总线频率fBUS=2.4576MHz,定义波特率Bt=9600
第二步:写控制字到SCI控制寄存器1(SCC1)。
SCI 通 常 采 用 NRZ 数 据 格 式 , 即 : standard non-return-zero mark/space data format,译为:“标准不归零传号/空号数据格 式”。“不归零”的最初含义是:用正、负电平表示二进制值,不使 用零电平。“mark/space”即“传号/空号”分别是表示两种状态的物 理名称,逻辑名称记为“1/0”。下图给出了 8位数据、无校验情况的 传送格式。
SCC1的地址是:$0013 ,定义为:
数据位 定义 复位 D7 0 D6 0 D5 0 D4 0 D3 0 D2 0 D1 0 D0 0
LOOPS ENSCI TXINV M WAKE
ILTY PEN PTY
SCI允许位 循环模式 选择位
模式-字符 长度选择位
空闲线 类型位
奇偶校验类 型选择位 奇偶校验 允许位
MC68HC908GP32的SCI有7个寄存器,地址为$0013~$0019 。
(1)SCI波特率寄存器(SCI Baud Rate Register,SCBR)
SCBR的作用是设置串行通信的波特率 ,其地址是$0019。 D7、D6、D3:未定义; D5~D4 — SCP:波特率预分频位(SCI Baud Rate Prescaler Bits) SCP1、SCP0=00 01 10 11 PD= 1 3 4 13
LDA #%01000000 STA SCC1 ;设置允许SCI,正常码输出、8位数据、无校验
第三步:写控制字到SCI控制寄存器2(SCC2)。
LDA #%00001100 STA SCC2 ;设置允许发送、允许接收,查询方式收发
8.3 SCI模块的编程结构
(2)发送一个数据与接收一个数据
发送数据是通过判断状态寄存器SCS1的第7位(SCTE)进行 的,而接收数据是通过判断状态寄存器SCS1的第5位(SCRF)进 行的。不论是发送还是接收,均使用SCI数据寄存器SCDR。发送时, 将要发送的数据送入SCDR即可,接收时,从SCDR中取出的即是收 到的数据。
8.4 串行通信编程实例
8.4.2 08汇编语言串行通信测试实例
(1)查询方式MCU方主程序
MCU方的程序功能是:把通过串行口收到的数据发送回去。
8.1 串行通信基本知识概要
(3)奇偶校验 字符奇偶校验检查(character parity checking)称为
垂直冗余检查( vertical redundancy checking,VRC),它是每 个字符增加一个额外位使字符中“1”的个数为奇数或偶数。 奇校验:如果字符数据位中“1”的数目是偶数,校验位应为“1”, 如果“1”的数目是奇数,校验位应为“0”。 偶校验:如果字符数据位中“1”的数目是偶数,则校验位应为 “0”,如果是奇数则为“1”。
开始位 第0 位 第1 位 第2 位 第3 位 第 4 位 第5 位 第6 位 第7 位 停止位
SCI数据格式
8.1 串行通信基本知识概要
(2)串行通信的波特率 波特率(baud rate):每秒内传送的位数。
波特率单位是位/秒,记为bps。通常情况下,波特率的单位可以 省略。通常使用的波特率有300、600、900、1200、1800、2400、 4800、9600、19200、38400。
SCRIE ILIE
发送完成中 断允许位 发送中断 允许位
空闲线中 断允许位
接收器 允许位
发送终止位
接收中断 允许位
发送器允许位
接收器唤 醒位
8.3 SCI模块的编程结构
(4) SCI控制寄存器3(SCI Control Register 3,SCC3)
SCC3的地址是:$0015 ,定义为:
数据位 定义 复位 D7 R8 0 D6 T8 0 D5 0 D4 0 D3 0 D2 NEIE 0 D1 FEIE 0 D0 PEIE 0
接收引脚 RxD 接收移位寄存器 发送引脚 TxD 发送移位寄存器
SCI 数据寄存器
MCU 的 内 部 总 线 (Internal Bus)
SCI 控制寄存器
SCI状态寄存器 SCI编程模型
SCI波硬件电路与基本编程原理
8.3 SCI模块的编程结构
8.3.1 SCI的寄存器
数据位 定义 复位 D7 x 0 D6 x 0 D5 SCP1 0 D4 D3 D2 D1 D0 SCP0 x SCR2 SCR1 SCR0 0 0 0 0 0
8.3 SCI模块的编程结构
(1)SCI波特率寄存器(SCI Baud Rate Register,SCBR)
D2~D0 — SCR:波特率选择位(SCI Baud Rate Select Bits), 定义波特率另一分频值,记为:BD,定义如下: SCR2、1、0 =000 BD = 1 001 2 010 011 100 101 110 111 4 8 16 32 64 128
未定义 终止码标志位 接收进行 标志位
8.3 SCI模块的编程结构
(7) SCI数据寄存器(SCI Data Register ,SCDR )
SCDR为SCI系统最常用的寄存器,它的地址是:$0018。写入 时,为要发送的8位数据,记为:T7~T0;读出时,为接收的8位数 据,记为:R7~R0。不受复位影响。
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
MC68HC908GP32
1 0.1μ +5V PLL滤波 10K 0.47μ 0.01μ 2 3 4 5 6 9 10 11 12 13 14 15 16 17 18 19 20 0.1μ 复位电路 +5V RST 7 8 10K 0.1μ +5V 51Ω +5V
8.1 串行通信基本知识概要
8.1.2 RS-232C总线标准
MCU引脚一般输入/输出使用TTL电平,而TTL电平的“1” 和“0”的特征电压分别为2.4V和0.4V,适用于板内数据传输。为 了使信号传输得更远,美国电子工业协会EIA(Electronic Industry Association) 制订了串行物理接口标准RS-232C。 RS-232C采用负逻辑,-3V~-15V为逻辑“1”,+3V~+15V为逻 辑“0”。RS-232C最大的传输距离是30m,通信速率一般低于 20Kbps。
发送反转 标志位
唤醒条件位
8.3 SCI模块的编程结构
(3) SCI控制寄存器2(SCI Control Register 2,SCC2)
SCC2的地址是:$0014 ,定义为:
数据位 定义 复位 D7 SCTIE 0 D6 TCIE 0 D5 0 D4 0 D3 TE 0 D2 RE 0 D1 RWU 0 D0 SBK 0
接收器奇 偶错误标 志位 接收器帧错 误标志位
8.3 SCI模块的编程结构
(6) SCI状态寄存器2(SCI Status Register 2,SCS2 )
SCS2的地址是:$0017 ,定义为:
数据位 定义(只读) 复位 0 0 0 0 0 0 D7 D6 D5 D4 D3 D2 D1 BKF 0 D0 RPF 0
232电平 TTL电平
OUT IN
OUT IN
10K 32.768 150K 15P 20P 晶振电路
16 15 14 13 12 11 10 9 MAX232CPE 1 2 3 4 5 6 7 8 +5V 1μ×4
TTL电平 转为232电平
8.2 SCI的外围硬件电路与基本编程原理
8.2.2 SCI的基本编程原理
;串行发送A中的数 BRCLR 7,SCS1,* STA SCDR ;SCS1.7=0? 为0则等待 ;SCS1.7=1,可以发送数据
;查询方式接收一个串行数据,接收的数据放入寄存器A中 BRCLR 5,SCS1,* LDA SCDR ;SCS1.5=0? 为0则等待 ;SCS1.5=1,可以取出数据 返回
设fSCI为串行通信时钟源频率,fSCI= fBUS或CGMXCLK,取决于 CONFIG2的SCIBDSRC,一般设定SCIBDSRC=1,SCI用内部总线时 钟,则fSCI= fBUS,则波特率的定义公式为: Bt=fBUS /(64×PD×BD)
8.3 SCI模块的编程结构
(2) SCI控制寄存器1(SCI Control Register 1,SCC1)
6 1 2
7 3
8 4
9 5
9芯串行接口排列
8.1 串行通信基本知识概要
返回
8.2 SCI的外围硬件电路与基本编程原理
8.2.1 SCI的外围硬件电路
(1)电源供给与滤波 (2)晶振电路 (3)复位电路 (4)SCI电平转换电路
8.2 SCI的外围硬件电路与基本编程原理
具有串行通信功能的 MC68HC908G932最小系统电路原理图
8.1 串行通信基本知识概要
相关文档
最新文档