具BDM界面之8位控制器:以Motorola HCS08系列组件为例-(II)
本文作者:admin
点击:
2003-10-01 00:00
前言:
HCS08系列的组成部分
9S08GB/GT微控制器是HCS08系列的首款产品,这些通用型MCU适合许多应用。它们的特性在图4中有所表述。除了CPU,RTI、IRQ、监控程序、LVD/LVW和除错模块都被集成到了HCS08核心中。每一个HCS08产品都将具有此项功能。其中,RTI可采用外部时脉或内部1KHz的RC振荡器作为时脉信号源。这意味着RTI可与MCU的时脉系统相互独立,即使系统内所有的其它时钟都关闭时,它也能做为系统时钟的作用。内部1KHz时脉振荡器的精度是+/-30 %,可设定7个不同的时间:8、32、64、128、256、512和1024 ms。RTI可使MCU从Wait、Stop2和Stop3等省电模式中切换出来,也可作为周期性的中断定时器来使用。如果对它输入一个精确的外部时脉信号源,它就能产生一个精确的实时时脉。低电压检测(LVD)和低电压示警(LVW)监控着供应电压。当低于电压标准时,LVD就产生一个中断或复位信号。LVW则能建立早期的示警标志,以通知程序电压正低于设定值。
LVD和LVW都可设定两个电压值做为触发电平,它们分别为LVD的VLVDH与VLVDL,以及LVW的VLVWH与VLVWL。对一个电源改动重制(Power-On Reset; POR),LVD电路保持了内部的重置活动,直到供应的电压超出触发电平。随后,重置针脚的启动状态又将被保持72个总线周期,使得振荡器能够得到稳定。表2列出了各触发电平的电压值。IRQ针脚为low-active针脚,具有自己的中断向量,能够使MCU跳出省电模式。
HCS08定时器是一个重要的模块。该TPM模块是在68HC08微控制器的定时器的基础上发展而来的。当然它也增加了一些有用的功能。比如,此定时器包括了一个16位的递增量计数器和一个16位比较器。因而在模式缓存器的帮助下,能够产生灵活的溢出中断。
定时器的每个通道都还包含了一个比较器,一个比较缓存器和一个锁存器。因此,开发者可以对输入和输出扑捉功能进行编程,以确定信号时间或生成各种输出信号格式。PWM脉冲格式也可以此作为表征。如果定时器被配置为PWM定时器,就可得到中间对齐和边站对齐edge-aligned的PWM信号。如果将两个通道合并为一个,就可以执行缓冲的PWM。每个通道都有两个中断源:定时器溢出和通道中断。定时器可以利用总线时钟(BUS CLK),或直接使用外部时钟(XCLK)作为时钟源。在定时器前还可设定除频器,除频值介于1~128之间。计数器的最高精度分别为50 ns(采用总线时脉)或25ns(采用外部时脉)。
9S08GB/GT系列具有4个内建的串行接口,这些接口也是在68HC08微控制器的接口模块的基础上发展而来的,它们分别为:两个异步SCI、一个异步SPI和一个I2C总线接口。SCI可用于LIN网络及PC通信,或与其它的嵌入式控制器进行通信。一个模分频器允许灵活的波特率。该波特率可由如下的计算公式计算:
串行传输 =
当总线时钟为20 MHz时,最大串行传输率(baud rate)为1.25 Mbit/s。SCI通信是相当可靠的,因为每一个位都会被采样16次。如果16次采样的数据段没有显示出相同的条件,将会建立相应的错误标志,以提供程序评估。SCI是中断驱动的,接收和发送都有不同的中断源,因此开发者不必首先在中断服务程序中了解中断发生的原因。SPI和I2C总线模块都可以用来与外部内存或其它器件进行通信,或者组成多处理器系统。SPI是主-从模式,I2C模块则可以是多主机模式。
另外还带有两个可中断的针脚(KBI),这两个针脚可分享同一个中断向量。它们可配置为上升缘或下降缘模式,或者配置为各种条件识别(等级)模式。埠脚数量的变化取决于封装。许多针脚具有两个功能。一方面是数字输入和输出,另一方面被分配给周边模块。埠F的全部针脚和埠C的部分引脚作为输入/输出针脚,具有增强的驱动能力。这些端口脚可驱动25mA(低端驱动器,电流输出)和-25mA(高端驱动器,电流输入),相反其它针脚允许+15~-15mA的电流。如果端口脚已经被配置为输入的话,内部上拉电阻对任一埠脚都适用。如果这些针脚需要对上升缘起反应的话,也有针对KBI接脚的下拉电阻。
所有的9S08GB/GT系列产品都内建有闪存。每页(page)空间为512字节时,60KB的闪存包括120页(page),32KB的闪存包含有64页。MCU还提供一个指令接口供开发者对闪存进行烧录,使得烧录和清除变得容易。表4中给出了烧录和拭除时间。闪存烧录的状态机制由FLCK时脉驱动,这一时钟最高可达200KHz。烧录可以以字节的方式进行,而清除则以页的方式进行。在分区烧录模式下,烧录电压不会被关闭。MCU在一次传输通道(pass-through)可烧录64个字节。闪存还可用来作为资料EEPROM。在制造后期,焊接好的MCU可通过板上的BDM接口进行烧录。另外,闪存还可在应用系统中通过系统提供的通信接口进行烧录。闪存可被烧录和清除达10万次,数据保持的时间可长达40年。
评估板和示范板为9S08GB/GT微控制器提供了硬件支持(图5)。评估板与一个BDM接口一起使用,具有LCD显示单元。示范板是评估板的简化版本,没有LCD显示和BDM模块。这就是监控软件被放置于展示板当中的原因,展示板可以通过板上的串行接口连接到PC上的CodeWarrior除错器[4]。几乎所有的芯片内建除错模式功能都可被该监控软件所监控。唯一的差别在于,应用程序的SCI不能被利用,而且该监控软件需要占用大约1KB左右的闪存空间。
总结
Motorola的嵌入式MCU。HC08和HCS08具有的8位架构,是以低阶应用为主;其16位的HCS12和DSP56F8xx等系列则针对中阶应用;32位MCU的Mcore、ColdFire和PowerPC等则面向高阶应用。
HCS08系列MCU定位于8位的HC08和16位的HCS12之间。该系列微控制器与HC08架构兼容,因而确保了用户此前在软件方面和技术经验方面的投资。相比于HC08系列,HCS08系列的9S08GB/GT是HCS08家族的第一个成员,从而扩展了HC08系列的应用范围。
全文参考数据
[1] 特别版 – 信息与下载网址:
http://www.metrowerks.com/MW/Develop/Embedded/HC08/Default.htm
[2] 有关COSMIC开发工具的信息:
http://www.cosmic-software.com
[3] HCS08调试支持信息:
www.hitex.de, www.hitex.com
[4] 对MC9S08GB/GT的连续监控, Jim Sibigtroth, AN2140/D, www.motorola.com/mcu/
作者简介
Harald Kreidl是Motorola慕尼黑分公司的一名应用工程师。他在MCU领域工作了17年,不论是软硬件或是应用层面,都有着非常丰富的经验。自1988年以来,他先后为客户提供了8位、16位、32位MCU的设计支持。他也是嵌入式网络技术领域(CAN、LIN、TCP/IP和UHF)和高级语言编程方面的专家。他具有物理技术学位,也是职业学校的认证教师(教授物理、电机工程/电子学)。他还是Motorola各种8位和16位MCU手册的作者。