当前位置:首页 > 嵌入式 > 嵌入式硬件


从8位单片机诞生至今,已近30年,由于芯片技术的发展使得单片机处理速度越来越快。 MPU发展中表现出来的速度是以时钟频率越来越高为标志的,而单片机则有所不同,为提高单片机抗干扰能力,降低噪声,降低时钟频率而不牺牲运算速度是单片机技术发展的追求。一些8051单片机兼容厂商改善了单片机的内部时序,在不提高时钟频率的条件下,使运算速度提高了很多,Motorola单片机则使用了锁相环技术或内部倍频技术使内部总线速度大大高于时钟产生器的频率。 例如MC68HC08单片机使用4.9 MHz外部振荡器而内部时钟达32 MHz,而M68K系列32位单片机使用32 kHz的外部振荡器频率可实现内部时钟达16 MHz以上。Motorola单片机突出的特点之一是在同样速度下所用的时钟频率较Intel类单片机低很多,因而使得高频噪声低,抗干扰能力强,更适合用于工控领域及恶劣的环境。而作为8位单片机家族中的一员,MC68HC908KX2提供了ICG(内部时钟发生器)模块,无需外接任何时钟产生器件的情况下,通过软件设置即可实现所需的时钟信号。

1 ICG模块的特点及设置方法

在无需任何外部元件情况下,MC68HC908KX2芯片的ICG模块能够给微控制器提供稳定的时钟源,ICG模块通过CGMXCLK引脚为系统监控模块、低电压禁止模块和其他模块提供振荡时钟输出。ICG模块产生的时钟信号也提供给系统集成模块,用于产生总线时钟。此外,ICG模块还产生时基时钟,该信号被用于时基模块。

1.1 ICG模块的特点

a) 可选的外部时钟信号发生器,一个引脚接外部时钟源或两个引脚接晶振,端口引脚可实现多路转换。

b) ICG以正常频率(307.2±25%)kHz的整数倍输出可编程的频率。

c) 频率调整寄存器可以2%变化量对频率进行调整。

d) 总线时钟通过软件选择内部或外部时钟源,总线频率范围是:(76.8±25%)kHz~(9.75±25%)MHz,增加率为76.8 kHz。

e) 对内部和外部时钟源都可实现时钟监控。

1.2 ICG模块的设置方法

ICG模块通过设置可产生(307.2±25%)kHz的低频时基时钟信号IBASE,然后通过设定ICG模块的频率倍数寄存器(ICGMR)的数值,得到系统所需的时钟信号ICLK。

使用内部时钟模块通过以下步骤进行:

1) 转换时钟源

在两个时钟源都处于使能和稳定状态时,可以从一个时钟源转到另一个时钟源。转换过程为:使能所要采用的时钟源;等待该时钟源稳定;转换时钟;禁止前一个时钟源。该实现过程的汇编代码为(以从内部时钟源转到外部为例):

2) 使能时钟监控电路

在许多应用中,需要时钟监控电路在某个时钟源未激活的状态下通知系统自动使用另一个已经激活的时钟源,避免使系统运行发生故障。使用时钟监控模块的前提是ECGON和ICGON位都置1,其设置过程为:使能可用的时钟源;等待两个时钟源稳定;如果需要,转换时钟源;使能时钟监控;使能时钟监控中断。具体实现的代码如下:

3) 量化数控振荡器的误差

数控振荡器主要包括二进制权值分配器、可变延迟时间的振荡环、振荡环精确调整电路3个子模块。以上每个模块都影响内部时钟的时钟周期,因为这些模块受数字滤波器的输出寄存器DDIV和DSTG的控制。通过对这两个寄存器的设置,可实现对输出时钟信号ICLK的值进行相应的调整。

4) 改变内部时钟频率

某些情况下可能需要改变内部时钟频率。例如,如果系统复位时不能提供正确的频率,或者在低电压模式下系统时钟变慢,必须通过变程修改内部时钟倍频因子N的值改变内部时钟的频率。这时需注意,改变内部时钟频率之前必须先禁止时钟监控模块。改变内部时钟频率的步骤如下:通过读CMF位的值确定是否存在时钟监控中断;关闭时钟监控模块;如果需要,转换到外部时钟源;改变N值;如果需要,转换回到内部始时钟源;如果需要,打开时钟监控模块。

5) 开始正确频率设置的时间

由于ICLK的值取决于DCO的输出值,当某些操作条件发生改变时,内部时钟不能马上稳定下来,ICLK将暂时以不正确的时钟工作。ICLK需要一定的调整时间才能达到正确时钟周期。达到正确时钟周期所需要的时间为:

式中:τ1,τ2分别为调整前、后的时钟周期值,令τ15=|44N(τ1-τ2)| ,则常见的时钟周期调整表见表1。

6) 调整内部时钟发生器的频率

由于数据处理、电压和温度等原因未经过调整的低频时基时钟信号IBASE将会发生±25%的频率波动,通过改变内部时钟电路的比较电容器的值可以将频率波动值限定在±2%的范围内。设置TRIM寄存器的值就可以改变比较电容器的值,TRIM寄存器的默认值是$80即128个单位,对应的默认电容值为512,每增加或减少1个单位,可对未调整频率实现±0.195%的调整。

2 宝马汽车故障诊断与复位子系统设计

由于本系统检测范围包括对宝马汽车大部分部件的检测及故障恢复,整个系统构成较复杂,因此,在本文中为了说明MC68HC68HC908KX2单片机ICG模块的应用,选择本系统的一个子系统加以说明。

2.1 硬件设计

本子系统实现的功能为机油保养归零、气囊故障修复及运行时间归零。硬件主控电路如图1所示。

控制核心采用8位单片机MC68HC908KX2芯片,通过串行接口线与汽车内的CPU进行通信,并用通用I/O口PTA和PTB分别实现键盘输入和输出显示功能。由于该单片机采用5 V供电,而汽车电路工作电压为12 V,所以本子系统需要设计专门的接口电路实现与汽车的通信,电路见图2。图中,RXD和TXD分别连接单片机的串行输入与输出端,汽车的串行输入、输出数据通过单K线传送给单片机。

2.2 软件设计

利用指令不断扫描键盘接口线(PTA1,PTA2),若按下的是通信键则从固定存储区取固定的oil resct编码发送出去,同时在发送数据期间通信指示灯不停闪烁3 s,如果按下的是功能选择键,则time inspection,odo inspection,oil reset指示灯依次循环点亮,选择相应功能,等待通信键按下,如果按下了通信键,就发送相应清故障数据。

在程序中,根据本系统的实际需要设置:ICGCR、ICGMR、ICGTR及系统配置寄存器CONFIG的值。系统主要源代码为:

3 结束语

本文介绍了新型单片机芯片MC68HC908KX2内部时钟模块在宝马汽车诊断控制系统中的应用,由于采用了内部时钟模块,省略了外部时钟电路,从而大大简化了系统的硬件设计。实践证明,在恶劣电磁环境中系统工作正常,抗干扰性能力得到很大提高,测得的汽车故障代码数据准确可靠。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭