APP下载

多回路无线照明控制器MCU脱机下载器的设计与实现

2017-01-09刘雪兰田宏伟

网络安全与数据管理 2016年24期
关键词:飞思脱机低电平

刘雪兰, 田宏伟

(1.江苏农牧科技职业学院 信息工程系,江苏 泰州 225300;2.苏州大学 应用技术学院,江苏 苏州 215325)

多回路无线照明控制器MCU脱机下载器的设计与实现

刘雪兰1, 田宏伟2

(1.江苏农牧科技职业学院 信息工程系,江苏 泰州 225300;2.苏州大学 应用技术学院,江苏 苏州 215325)

目前MCU的下载器以在线下载器为主,在室外环境下携带不便,便携式的脱机下载器比较缺乏且价格昂贵,因此根据多回路无线照明控制器实际需求设计了针对AW系列MCU的便携式脱机下载器。通过对HCS08内核CPU及背景调试控制器的深入理解,设计了使用SD卡和EEPROM双重存储器的下载器硬件和软件,精心设计了能保证程序下载可靠性的软件。该下载器已在实际项目中应用,运行稳定,效果较好。

MCU下载器; 背景调试技术; 脱机下载; 控制器

0 引言

嵌入式产品中MCU的程序下载是指将固件程序下载到目标芯片中,同时提供对目标芯片Flash的擦除和校验等功能的过程。目前针对飞思卡尔MCU的程序下载器一般以在线编程为主,常用的有P&E公司、飞思卡尔公司等生产的调试器,这些调试器功能复杂、价格昂贵,就脱机下载器而言目前仅P&E公司提供一款Cyclone脱机下载器,价格更高。

AW系列MCU是飞思卡尔半导体公司推出的针对电机控制、自动化控制以及汽车应用等场合的工业级MCU,外围模块丰富,存储器容量大,且抗干扰能力强,因此选择其中的MC9S08AW60作为多回路无线照明控制器的核心MCU。实际运行中,由于用户功能需求的变化,需要到现场对MCU进行程序升级,但现场下载程序必须携带笔记本电脑和在线下载器才能进行,携带不便。

本文在分析了HCS08系列CPU内核基础上,设计了BDM调试器硬件电路,设计了多回路无线照明控制器MCU便携式脱机下载器,同时给出在下载器软件方面保证整个下载过程可靠性所采取的措施。

1 设计思路

便携式下载器使用SD卡作为待烧写的十六进制目标文件的存储载体,带有液晶显示功能,通过按键选择MCU的型号及目标文件,选定后对目标MCU执行程序烧写操作,下载器使用9 V镍氢充电电池作为供电电源,外部的EEPROM用来存储配置参数,同时为了可靠起见,EEPROM还用来存储待烧写的目标文件,下载器的模块构成如图1所示。

图1 编程器各模块构成示意图

便携式下载器的设计需要深入理解HCS08内核、背景调试控制器模块以及目标文件格式的解析等。

1.1 S19记录文件

S19记录文件[1]是飞思卡尔HC08、HCS08、HCS12系列微控制器的机器码文件,是使用字符记录的具有固定格式的目标代码文件,S19文件中每条记录占用1行,每行由5部分数据段组成,其数据段定义如表1所示。

表1 S19记录格式

1.2 背景调试模式BDM

背景调试模式[2]BDM(Background Debug Mode)是由飞思卡尔半导体公司推出的单线调试方式,是S08、S12及Coldfire系列MCU支持的调试方式。这些芯片内部都具有背景调试控制器(Background Debug Controller,BDC)[3],负责接收和解析下载器发送的命令,通过操作该控制器,开发人员可以实现底层调试、Flash擦除和编程、加密处理等功能。

BDM接口为单线接口,使用的通信引脚为BKGD,其他的为2个供电引脚以及复位引脚RESET,下载器为双排6芯接口,占用空间小,方便制作。

2 载器硬件设计

便携式下载器以AW60为主控MCU,下载器硬件设计围绕功能需求进行,包括BDM接口模块、液晶显示模块、按键输入模块、使用SPI接口通信的SD卡模块和EEPROM模块等,此处主要介绍BDM接口电路,电路示意如图2所示。

图2 编程器BDM接口电路

主控芯片输出信号与目标MCU之间接入三态缓冲器74HC125,在保证信号的驱动能力的同时可以适应目标芯片3.3 V或者5 V的信号电压[4]。从图2中可以看出,需要向目标MCU发送BKGD数据时,下载器BKGD_DRV首先输出低电平信号,75HC125-3由高阻态转换为工作状态,此时即可通过BKGD_OUT引脚输出0或1的信号,目标MCU的BKGD引脚即接收该信号,其他引脚的工作方式类似。

需要注意的是,图2中BKGD_IN引脚对应的是MCU的两个引脚PTC6和PTF0,而且在软件中将PTF0配置为定时器1通道2的输入捕捉引脚,这么做并不是为了增加驱动能力,而是为了配合BDM指令集提供的一条用于解决下载器与目标MCU速率不匹配的指令——SYNC指令。在实现SYNC指令功能时,PTF0处于输入捕捉的工作模式,用于捕捉目标MCU发送的电平跳变信号,通过测量目标MCU发送的128个低电平周期从而计算出该芯片BDM控制器的运行频率,实现自适应的通信。

3 下载器软件设计要点

BDM通信是单线通信,其最基本的底层操作是读/写一个数据位的操作,而对应的指令集的基本单位为1 B,因此软件设计的要点就是深入了解BDM指令以及编写稳定可靠的读/写字节数据函数,同时为提高下载器下载的可靠性给出了三种措施。

使用SPSS17.0统计学,计数资料用(n/%)表示,采用χ2检验,P<0.05表差异具有统计学意义。

3.1 BDM指令介绍

HCS08内核的BDM指令分为两类[5]:一类是在任何运行模式下都可以执行的指令,用于对存储器的读写访问及设置断点等功能,称为硬指令,硬指令不影响CPU运行。另一类指令称为软指令,需要在BDM模式下由CPU执行(用户程序无法运行),固件指令主要提供对CPU内部寄存器的读取和修改操作。表2列出了BDM常用的指令。

表2 BDM常用指令

3.2 读写汇编子程序

下载器主控芯片第一步操作是测量目标MCU的频率,该操作是通过发送长度足够的低电平来同步请求SYNC指令,主控芯片通过测量目标MCU发送的128个低电平周期所使用的时间,从而换算出目标MCU的BDM控制器的工作频率,此处用到的便是PTF0作为输入捕捉用来计算两次跳变间用时的功能[6]。

在此基础上,接下来就是比较关键的读/写字节子程序的实现,为了保证通信的时序完全按照BDM的要求,该子程序必须使用汇编语言编写,限于篇幅不再列出具体汇编程序,程序设计时需要仔细计算出每个语句及循环操作所占用的周期,发送数据的过程及占用周期如下:

(1)主控芯片写位0到目标芯片BKGD引脚的操作:拉低目标芯片的BKGD引脚不少于12个时钟周期,目标芯片在检测到低电平后的第10个周期对BKGD进行采样,读入该位。

(2)主控芯片写位1的操作:拉低目标芯片BKGD引脚2~4个时钟周期后释放BKGD端,使之为高电平,目标MCU在探测到低电平以后的第10个周期对BKGD进行采样,读入该位。

3.3 程序下载的可靠性

对于下载器而言,下载的完整性和可靠性是第一位的,脱机下载器在软件方面做了以下几个方面的工作:

(1)程序下载回滚功能:为防止用户下载程序后发现下载的代码文件有误,但目标MCU已被擦除无法恢复原有程序,在下载器的软件中加入了一个操作,即在烧写目标芯片前首先将目标MCU中的程序读出,程序读出后,存储在下载器外置的EEPROM中,若用户选择程序回滚,则下载器软件重新读入之前读出的目标文件,并进行回滚编程。

EEPROM选用容量为128 KB的25LC1024,内部划分为三个区域,分别用来存储配置参数、目标MCU内部原有固件程序以及待烧写的目标文件。

(2)防SD卡故障功能:为防止在下载过程中出现SD卡被拔出等误操作引起的无法读取目标文件下载的错误,下载器软件首先把待烧写的目标文件S19存入EEPROM中,在对拷贝到EEPROM的目标文件进行重新校验后才对目标MCU进行擦除和编程操作。

(3)程序下载校验功能:目标芯片烧写成功后,偶尔也会遇到运行不正常的情况,而且可能很难被发现,因此程序下载完毕后必须进行程序校验操作。具体过程是读出下载后芯片的程序,并按字节与存储在EEPROM中的S19文件进行对比,若出现不一致则提示用户校验错误,需要重新下载。

4 结论

本文针对飞思卡尔下载器以在线编程为主,市场中缺乏MCU脱机下载器的问题,在深入理解HCS08型CPU内核中BDC模块的功能、指令的基础上,设计了针对多回路无线照明控制器MCU的脱机下载器,并成功用于实际产品的程序下载中。通过进一步的改进,可以适应更多型号的HCS08系列MCU的芯片编程。

[1] 王超艺,王宜怀.飞思卡尔S08系列机器码文件下载软件的开发[J].计算机应用与软件,2011,28(12):256-258.

[2] Freescale. HCS08 Family Reference Manual Rev.2[Z].2007.

[3] Freescale. Introduction to HCS08 Background Debug Mode[Z]. 2006. [4] 徐清,王宜怀.嵌入式微控制器MC68HC912B32背景调试模式设计与实现[J].电子技术应用,2006,32(6):61-64.

[5] 王宜怀,张书奎,王林.嵌入式技术基础与实践(第2版)[M].北京:清华大学出版社,2011.[6] 邵贝贝.单片机嵌入式应用的在线开发方法[M].北京:清华大学出版社,2004.

Design and implementation of portable off-line programmer of wireless multi-circuit lighting controller

Liu Xuelan1, Tian Hongwei2

(1. Department of Information Engineering, Jiangsu Agri-animal Husbandry Veterinary College,Taizhou 225300, China;2. Applied Technical School, Soochow University, Suzhou 215325, China)

Programmers for HCS08 series MCU are almost in-line programmer at present and inconvenient to carry in out-door environment. There are only few brand off-line programmers and they are too expensive. The portable off-line programmer of AW series MCU is designed here according to the actual demand. Based on the understanding of HCS08 CPU core and background debug controller, the programmer with SD card and EEPROM storage is designed, with its software designed to guarantee program-burning reliability, which is also the highlight. The programmer has been used in some projects and runs well in stability and translatability.

MCU programmer; background debug mode; off-line downloading; controller

TP393

A

10.19358/j.issn.1674- 7720.2016.24.028

刘雪兰, 田宏伟. 多回路无线照明控制器MCU脱机下载器的设计与实现[J].微型机与应用,2016,35(24):98-100.

2016-07-28)

刘雪兰(1979-),通信作者,女,硕士,讲师,主要研究方向:智能信息处理及嵌入式系统应用。E-mail:liuxl79311@sohu.com

田宏伟(1981-),男,硕士,高级工程师,主要研究方向:嵌入式系统应用。

猜你喜欢

飞思脱机低电平
浅快呼吸指数相关指标预测脱机结局的价值分析
改良程序化脱机在老年患者呼吸机撤离中的应用
中心静脉血氧饱和度监测在机械通气患者脱机过程中的意义※
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
数字电子技术的应用
浅谈物理电路与数字电路
飞思卡尔AC60锂电池管理系统设计
15-MeV电子直线加速器的低电平系统
两种不同脱机方法在ICU老年机械通气患者拔管中的应用
物联网改变生活