当前位置:首页 > 单片机 > 单片机
[导读]摘要:为了实现飞思卡尔公司HCS12系列MCU的在线编程,通过软件架构和可移植性的方法设计了一个通用编程器。通过早期做的很多HCS12系列MCU芯片的编程实验,获得了它们的共性和差异性,通过软件设计的方法实现了对HCS1

摘要:为了实现飞思卡尔公司HCS12系列MCU的在线编程,通过软件架构和可移植性的方法设计了一个通用编程器。通过早期做的很多HCS12系列MCU芯片的编程实验,获得了它们的共性和差异性,通过软件设计的方法实现了对HCS12微控制器的在线编程,并侧重于研究编程器的通用性和高速下载特性。编程器具有通用性和使用便捷性。
关键词:BDM;HCS12;编程器;通用性;Flash擦除;Flash写入

引言
    随着Flash技术在微处理器上的广泛应用,单片机在开发和应用手段上有了革命性的变化,从传统的仿真器(ICE)到目前流行的JTAG等。设计人员仍然在不断地寻找一种移植性更高、更易操作、费用更低的开发手段。随着微处理器制造工艺的提高,一些高端微处理器(如CPU12/16/32、PowerPC、ColdFire等)内部已经包含了用于调试的微代码,都可以通过BDM等进行调试。由于这种方法省去了仿真器,因此避免了高频操作、交直流电的不匹配等问题,而且随着BDM标准的不断规范和普及,用BDM调试模式进行嵌入式开发已经成为首选。
    Freescale公司HCS12系列MCU通用编程器是支持Freescale公司MC9S12系列、MC9S12X系列单片机的BDM调试工具,它可以用于对Freescale公司所有16位MCU的写入和擦除操作。

1 编程器概述
    Freescale公司16位MCU通用编程器是用于Freescale公司16位MCU的BDM调试工具,编程器采用MC68HC908JB8为主控芯片,与目标板以BDM方式进行通信,与PC方则采用USB接口通信,由USB提供电源。编程器系统框图如图1所示。编程器的主要功能是实现对目标芯片Flash的擦除和写入。


    编程器采用M68HC908JB8为主控芯片。与PC方通过USB进行通信,与目标板则通过BDM驱动模块以BDM方式进行通信,系统由USB提供电源。

2 系统软件设计
   
软件系统的设计主要包括:通信程序接口设计、PC方用户程序设计、MCU方擦写程序设计。系统在对目标芯片Flash进行擦除和写入操作时,首先由PC方程序获取用户操作指令,然后调用相应的MCU方擦写程序。通过通信程序接口将需要执行的擦除或写入程序写入目标芯片的RAM区,最后在PC方程序的控制下转向擦写程序所在RAM区的地址执行程序以完成对应操作。
    编程器使用USB方式与目标板进行通信。PC方的用户程序与底层MCU方程序进行通信时,通信程序使用Freescale公司提供的相应动态链接库来实现。
    BDM通信程序动态链接库主要包含的函数如表1所列。具体实现时只需要直接在PC方用户程序中调用动态链接库的函数即可。



3 PC方用户程序设计
3.1 程序主流程
   
PC方用户程序界面如图2所示,主程序流程如图3所示。S19是编程器生成的可下载的文件格式。


    启动程序后首先检测设备是否已经连接,如果没有连接则返回错误信息,禁止以下的擦除和写入操作。
    初始化过程结束,成功进入BDM模式后,系统开始等待用户的操作指令,根据相应的指令作出操作。用户在完成所需操作后按退出,关闭设备并退出主程序。
    为了实现编程器对HCS12系列MCU的通用性,“选择芯片芯号”模块的设计致关重要。要详细分析HCS12系列MCU的特性,提取共性和相区别的信息,特别是RAM和ROM区的首尾地址信息,这些信息都需要存放到系统的相应数据库中,以供编程器系统运行时根据所选芯片型号进行读取,作为擦写程序的起始地址数据。
3.2 擦除操作
   
PC方擦除操作程序流程如图4所示。在取得擦除命令后,程序首先载入对应芯片的擦除程序,然后将擦除程序的S19数据写入目标芯片的RAM区中,最后执行GO PC指令,转向芯片中擦除程序所在RAM区中的地址,执行擦除程序。


3.3 打开和分析S19操作
   
执行该操作,首先按行读入打开的S1 9文件,并将S19数据保存到字符串数组中,每读入一行同时验证该行的校验和,数组中一个单元就是S19一行的数据。然后对数据以页为单位进行重新组合,并重新保存到新的字符串数组中,释放先前的数组空间。
3.4 写入操作
   
PC方写入操作程序流程如图5所示。在取得写入命令后,程序首先取一页数据,将数据写入RAM区相应区域,接着判断写入程序是否已经写入RAM区中,若没有则再将对应芯片的写入程序写入RAM区。然后执行GOPC指令转向目标芯片写入程序所在RAM区中的地址处,开始执行写入。写入程序则进入等待写入完成状态,如果等待超时则中途退出;否则,若一页写入完成,则接着进行下一页的写入操作,直到最后一页。



4 MCU方擦写程序设计
    MCU方的擦写程序用于完成对目标芯片Flash的擦除和写入操作。由于在Flash的擦除和写入过程中,Flash是不能读的,故擦除和写入Flash的程序要放在RAM中,也就是说,在Flash的擦除和写入前,要把擦除或写入的可执行代码复制到RAM中去,并让程序在RAM中执行,这一部分操作是由PC方程序完成的。
    Flash的擦除和写入操作应按以下步骤进行:
    ①清除Flash状态寄存器FSTAT中的出错标志位ACCERR和PVIOL,这是由于如果过去的Flash操作中如果有过出错的情况,上面提到的出错标志位将被锁存。与其检查这些标志位是否需要清零,不如清零这两个标志。方法是向状态寄存器FSTAT的这两位写零。
    ②写Flash配置寄存器FCNFG的b1和b0。以MC9S12DP256为例,这两位表示选择256 KB的Flash中的哪一个64 KB。这里0x00表示PPAGE号为0x3F、0x3E、0x3D、0x3C这64KB,0x01表示PPAGE号为0x3B、0x3A、0x39、0x38这64 KB,0x02表示PPAGE号为0x37、0x36、0x35、0x34这64 KB,0x03表示PPAGE号为0x33、0x32、0x31、0x30这64 KB。
    ③写PPAGE寄存器。
    ④检查上一次Flash处理的命令是否执行完成,能否写入新的命令。这是通过Flash状态寄存器FSTAT中的命令缓冲区的标志位CBEIF是否为1,即命令缓冲区是否可以使用来实现的。若不能使用,则等待,直到可以使用。
    ⑤将要写入的数据字写到相应的地址中,地址必须为偶数地址。对于擦除操作,则被擦除段的任意地址都可以。
    ⑥向FCMD命令寄存器写命令字0x41表示整体擦除,0x20表示单字节写入。
    ⑦向Flash状态寄存器FSTAT中的命令缓冲区的标志位CBEIF写1清零。这时状态寄存器中的CCIF位将置位,说明操作成功。

结语
   
利用MC68HC908JB8作为主控芯片,通过USB与PC方交互通信,以BDM方式与目标芯片进行通信,实现了一种用于Freescale HCS12系列MCU的通用编程器。系统选用MC68HC908JB8 MCU进行设计,不仅是因为这款芯片性价比高,而且在于其USB模块使操作更加方便和可靠,本文所提出的16位通用编程器工作可靠,成本低。读者可以以本系统为蓝本,设计自己的应用于其他系列芯片的编程器,应用到支持BDM标准的其他系列微控制器中。

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

本届年会将在上海(11月13-14日)、北京(11月19-20日)和深圳(11月27-28日)举行,面向嵌入式设计工程师推出25门技术课程

关键字: 嵌入式 MCU 模拟

中国北京(2025年9月2日)—— 业界领先的半导体器件供应商兆易创新GigaDevice(股票代码 603986)受邀出席2025智能汽车基础软件生态大会暨第四届中国汽车芯片大会,并与国内领先的AUTOSAR车用操作系...

关键字: 汽车电子 MCU 智能汽车

2025年8月26日,‌Elexcon深圳国际电子展‌在‌深圳会展中心(福田)1号馆‌(展台号:1L30)盛大举行。作为全球电子产业链的重要盛会,展会汇聚创新技术与行业解决方案。米尔电子MYIR携RZ系列核心板、开发板等...

关键字: 核心板 开发板 MCU

针对HMI应用所需的段码式LCD和电容式触控进行优化,为电磁炉提供精准控制;支持通过双区闪存实现便捷、安全的OTA

关键字: MCU 智能家电 电磁炉

聚焦工业4.0及能源管理应用对主控MCU的高性能需求,极海正式发布APM32F425/427系列高性能拓展型MCU,集合运算性能、ADC性能、Flash控制器性能与通信接口四大维度革新,进一步增强了EMC性能,重新定义C...

关键字: MCU 工业应用 极海

MarketsandMarkets预测,到2027年,全球嵌入式AI市场规模将超过200亿美元,年复合增长率高达30%。这一增长背后,是对高算力、低功耗、实时性和安全性的迫切需求,以及技术碎片化与跨界融合的复杂挑战。在这...

关键字: Renesas AI 瑞萨电子 嵌入式AI MCU MPU

全新产品满足DLMS Suite2表计应用安全法规,提供丰富的通信选项、电容式触摸界面,以及支持软件更新的双区闪存

关键字: MCU 闪存 恒温器

由于边缘AI是指在边缘设备上部署和运行AI模型,而不是将数据传输到中央服务器进行处理。这种方式具有低延迟、高响应速度、保护隐私和降低数据传输成本等优势。微控制器(MCU)作为电子设备的主控制芯片,在边缘AI的发展中扮演着...

关键字: MCU AI

随着在线会议、直播和游戏语音交流的普及,高质量的音频输入设备变得越来越重要。为此,边缘AI和智能音频专家XMOS携手其全球首家增值分销商飞腾云科技,利用其集边缘AI、DSP、MCU和灵活I/O于一颗芯片的xcore处理器...

关键字: AI DSP MCU

【2025年8月19日, 德国慕尼黑讯】全球功率系统和物联网领域的半导体领导者英飞凌科技股份公司(FSE代码:IFX / OTCQX代码:IFNNY)近日宣布,其AIROC™ CYW20829低功耗蓝牙® 微控制器(MC...

关键字: 蓝牙 人机接口 MCU
关闭