详细阐述UCD3xxx系列数字电源控制器烧写常用的两种十六进制文件格式:X0 和Intel Hex

最新更新时间:2012-08-28来源: chinaaet关键字:UCD3xxx  数字电源  控制器 手机看文章 扫描二维码
随时随地手机看文章

1 X0 Hex 文件格式

    X0 和Hex 文件是由一行行符合对应文件格式的文本所构成的ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)文本文件。在计算机中,所有的数据在存储和运算时都要使用二进制数表示,例如a、b、c、d 这样的52 个字母(包括大写),0、1 等数字,还有一些常用的符号(如*、#、@等)在计算机中存储时也要使用二进制数来表示。ASCII 码就是用来表示这些字母、数字以及符号的,它使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。而X0 和Hex 文件格式就利用ASCII 码来表示二进制信息。

    X0 格式的名称是“泰克扩展十六进制文件格式”(Tektronix Extended hexadecimal file format),具体格式参见图1。

1X0 文件格式

    X0 文件以百分号“%”为记录标志,表示一行的开始;记录长度指的是每一行除百分号外的字符数(不是字节数),占一个字节;记录类型占一个字符,共两种:6 -代表数据,8-代表结束;校验是整个一行字符除(注意不是字节)除校验自身和百分号外的校验和,占一个字节;地址共9 个字符,第一个字符是8,指的是地址共占8 个字符,后面8 个字符(4 个字节)是数据所要加载的地址;数据就是程序代码或其它信息。

以计算机常用的“Hello, Word!(加换行符)”为例,如果把它加载到地址0x006B,那么X0 文件如下

表示:

%2A6DE80000006B48656C6C6F2C20576F726C64210A

%09819800000000

    Hex 文件格式有很多种,本文主要介绍“英特尔十六进制目标文件格式”(Intel Hexadecimal object file format),具体格式如图2 所示。

2Hex 文件格式

     Intel Hex 文件以冒号“:”为记录标志,表示新的一行的开始;记录长度占一个字节,指的是每一行所包含实际数据或信息的字节数;加载偏置占两个字节,是相对地址(加载偏置加上扩展线性地址就是绝对地址);记录类型共有6 中,分别为:0 -数据记录,1 -文件记录结束,2 -扩展段地址记录,3 -起始段地址记录,4 -扩展线性地址记录,5 -起始线性地址记录;每一行记录的数据部分都是可变的,最多可以有255 个字节,也可能没有,取决于所记录的类型。最后一个是校验,它是除冒号和校验自身的校验和,具体做法是每个字节累加,然后取计算结果最后一个字节补码(取反加1)作为校验字节。

还是以“Hello, Word! (加换行符)”为例,把它加载到地址0x0000,Hex 文件如下:

:0F00000048656C6C6F2C20576F726C64210A7E

:00000001FF

2 UCD3xxx 存储结构

3UCD3xxx 存储结构

     介绍如何生成X0 和Hex 文件以前,需要先了解一下UCD3xxx 系列数字控制器存储结构,如图3 所示。UCD3xxx 三种模式:复位模式、ROM 模式以及Flash 模式。这三种状态对应的存储映射是不一样的。复位模式下,所有内存都映射为ROM;ROM 模式下,程序闪存(Program Flash)被映射在0x10000至0x17FFF,数据闪存(Data Flash)是从0x18800 至0x18FFF,随机存取存储(RAM)放在0x19000 至0x19FFF;Flash 模式下,数据和随机存取位置不变,程序闪存位置被重新映射到0 至0x7FFF。程序闪存最后4 个字节是保存整个程序闪存的校验和。

     UCD3xxx 起机过程是:上电开始进入复位模式;上电完成后进入ROM模式,此时芯片会自动跳转到0xA000 执行。在0xA000 至0xAFFF 这一段地址内,固化了一段ROM 程序,这段程序除了做一些芯片自身的初始化外,它还会计算程序闪存的校验和,然后和程序闪存最后4 个字节保存的校验和对比,如果不一致,此时程序会停下来,等待主机命令。如果对比结果一致,那么芯片就会进入Flash 模式,ROM 程序会执行跳转指令进入程序闪存中运行。

3 如何在CCS 集成开发环境下生成X0 Hex 文件

4CCS 编译器编译选项设置

    X0 和Hex 文件的生成离不开格式转换程序:Hex470.exe 和FusionX0ToHex.exe。Hex470.exe 是汇编语言工具包里面自带的程序。FusionX0ToHex.exe 是TI 数字电源设计(Fusion Digital Power Designer)图形用户界面(GUI)所带的转换程序。Hex470.exe 和FusionX0ToHex.exe 可以用命令行来调用,下面分别介绍各自的命令格式。

    Hex470.exe 的命令行格式为:Hex470 [选项] 文件名,hex470 是调用转换程序的命令,选项是控制转换过程的附加信息(具体信息可参考文献2),文件名是指输入文件的名称。Hex470 可以把CCS 编译生成的后缀为Out 的文件转换成各种格式的Hex 文件,如:

Hex470 –i sample.out

     这段命令是把生成的sample.out 文件转换成Intel Hex 格式文件,文件名称为sample.hex;

Hex470 –x sample.out

    这段命令是把生成的的sample.out 文件转换成X0 格式文件,文件名称sample.x0。

    既然Hex470 可以直接把Out 文件转换成Hex 文件,那为什么要先转成X0 再转换成Hex 文件呢?有两个原因:Hex470 不会计算程序闪存的校验和;Hex470 生成的Hex 文件地址是基于程序闪存模式,而烧写器需要的地址是ROM模式,也就是从0x10000 至0x17FFF,所以UCD3xxx 不支持Hex470 直接生成的Hex 文件,需要通过FusionX0ToHex.exe 转换程序把X0 文件转换成Hex 格式文件,具体命令格式是:

FusionX0ToHex       --infile x0-file

--format intel|srec|hexdump

--pflash-checksum calc|none|source

--export pflash|dflash|both|source

--outfile hex-file

--infile 主要指定输入X0 文件。

--format 主要指定生成哪种Hex 格式,分别为intel、srec(Motorola S-Record)和hexdump。

--pflash-checksum 主要指定程序闪存的校验模式,calc 模式-基于X0 文件计算校验位并写入相应位置;none 模式-校验位默认为0xFFFFFFFF;source 模式是使用X0 自己的校验位。

--export 指定输出哪一部分存储,pflash 指只输出程序闪存部分。dflash 指输出数据闪存部分。both 是输出程序和数据闪存。无论哪一部分,如果X0 文件中没有就用0xFF 填充。source 是直接把X0 输出。

--outfile 是指定输出Hex 文件名称。

    下面就介绍一下如何在CCS 编译环境中嵌入hex470 和FusionX0ToHex 命令行。

     在CCS(3.x 版本)编译环境中,进入工程(Project)菜单,然后选择编译选项(Build Options),然后点击通用标签(General),就会出现如图4 所示界面。在最后编译步骤(Final build steps)中,我们可以输入下面两条命令行:

hex470 -x -memwidth 8 .\debug\FB_48V_HS.out

FusionX0ToHex --infile FB_48V_HS.x0 --pflash-checksum calc --export both --format intel –outfile FB_48V_HS.hex

     第一条命令中:-x 选项就是指把.\debug\FB_48V_HS.out 转换成X0 文件,-memwidth 8 是定义系统存储字宽为8 位。

5:生成的X0 文件(UCD3xxx

6:生成的Hex 文件(UCD3xxx

    第二条命令中:输入待转文件是FB_48V_HS.x0,输出文件是FB_48V_HS.hex,计算程序闪存的校验位,同时输出程序和数据闪存内容,格式是intel 十六进制。

4 基于UCD3xxx 进一步了解X0 Hex 文件格式

    为了进一步了解X0 和Hex 格式,下面通过UCD3xxx 硬开关全桥评估板软件来看一下具体生成的X0和Hex 文件,如图5 和图6 所示。

    图5 的第一列统一是百分号开始;下面两列(一个字节)表示的是每一行除百分号外的字符长度,每行最多字符数是0x4E(78);然后一列表示后面数据类型,除最后一行是8(结束)外,其它都是6(数据);再有两列是整行的校验;地址占9 列,以8 开始,后面4 个字节代表实际地址;地址后面就都是数据了。从图中可以看出,X0 文件的程序闪存的地址都是从0 开始的,而且也没有整个程序闪存的校验。TI 烧写软件和工具主要使用X0 格式的文件,烧写软件自己会计算程序闪存的校验和,然后写到最后4 个字节,所以X0 不需要计算整个程序闪存的校验和。

    图6 的第一列都是冒号;后面依次一个字节指的是整行所含数据的字节数;两个字节是偏置地址;一个字节是指的记录类型;然后是字节数不等的数据。最后一个字节是每一行的校验。图6 的第一行指定扩展地址,为0x0001;最后一行标志文件结束。另外,在程序闪存最后4 个字节(粉红色区域)就是整个程序闪存的校验和。如果这个校验和不对,程序就不会跳到程序闪存中执行。

5 小结

    如果使用TI 提供的烧写软件(GUI)和工具(USB 适配器)烧写的话,只需要格式为X0 的文件;如果使用第三方烧写器在生产线烧写,那么就会需要Hex 格式文件。可以根据本文的介绍来生成所需的X0或者Hex 文件。

6 参考资料

1.SLUS868D - Digital Power Controllers, Texas Instruments Inc., 2012

2.SPNU118J - ARM Assembly Language Tools v4.9 User's Guide, Texas Instruments Inc., 2011

3.SRecord V1.59- Manipulate EPROM load files, 2012

4.Fusion Digital Power Designer, Texas Instruments Inc., 2012

关键字:UCD3xxx  数字电源  控制器 编辑:探路者 引用地址:详细阐述UCD3xxx系列数字电源控制器烧写常用的两种十六进制文件格式:X0 和Intel Hex

上一篇:ADIADP185125ADC-DC降压电源解决方案
下一篇:电流流动方向演示器(一)

推荐阅读最新更新时间:2023-10-17 15:02

可编程序控制器在我国的发展和应用
      1.引言   可编程序控制器是以微处理器为基础,综合计算机、通信、联网以及自动控制技术而开发的新一代工业控制装置。可编程序控制器在我国的发展与应用已有30多年的历史,现在它已经广泛应用于国民经济的各个工业生产领域,成为提高传统工业装备水平和技术能力的重要设备和强大支柱。随着全球一体化经济的发展,努力发展可编程序控制器在我国的大规模应用,形成具有自主知识产权的可编程序控制器技术,应该是广大技术人员努力的方向。   2.可编程序控制器的发展历程   可编程序控制器问世于20世纪60年代,当时的可编程序控制器功能都很简单,只有逻辑、定时、计数等功能;硬件方面用于可编程序控制器的集成电路还没有投入大规模工业化生产,CPU以分立元
[手机便携]
基于单片机的新型步进电机运动控制器
1 引言   数控技术是一种采用计算机对机械加工过程中各种控制信息进行数字化运算处理,并通过高性能的驱动单元对机械执行构件进行自动化控制的高新技术。现代机械加工业逐步向柔性化、集成化、智能化方向发展,因此新一代数控技术就必需强调具有开放式、智能化、网络化的特征 。本文采用新型微处理器、高性能集成电路,研究开发智能步进电机控制卡。 2 系统总体结构设计   通过对步进电机控制器关键技术进行分析、研究和比较,并综合国内外运动控制器产品智能化、集成化、开放化的发展趋势,我们提出的步进电机运动控制器总体结构如图1所示。 图1 系统总体结构 3 系统硬件电路设计   3.1 脉冲分频电路设计
[单片机]
Marvell第二代NVMe SSD控制器面世
Marvell在OCP峰会上首次推出第二代NVM Express SSD控制器88SS1092,突破数据中心传统磁介质的局限性...下面就随嵌入式小编一起来了解一下相关内容吧。 当SSD被首次引入数据中心时,还需要配合当时的总线技术(例如SATA和SAS工作,而这些总线技术都是针对磁介质开发的。即使最快的HDD也比不上SSD的速度,其对应总线的吞吐能力也成为阻碍充分发挥SSD技术优势的一大瓶颈。作为一种在网络,图形以及其他插入式设备上广泛应用的高带宽总线,PCIe 成为了可行的选择,但PCIe总线配合原本为HDD开发的存储协议(例如AHCI)仍然无法有效发挥易失性存储介质的性能优势。此后,NVMe工作组应运而生,旨在基于PCIe
[嵌入式]
数字电源管理架构的探讨
随着电源技术的发展, 数字电源 管理技术越来越多地应用于各类系统中。当今的大多数系统除了主要的CPU、逻辑电路FPGA、DDR等数字芯片外,就只剩下电源管理芯片了,因此电源管理芯片的可控性和集成度就显得极为重要了, 数字电源 管理正是顺应了市场的这种需求。 数字电源 管理的几种主要架构 随着电源管理技术的发展,数字电源管理逐步成为业界公认的发展方向,I2C/SMBus物理接口成为通用的标准数字电源管理接口,PMBus协议也成为通用数字电源管理协议。但是在不同的应用阶段和应用环境下,数字电源管理技术也衍化为几种不同的系统架构。 使用集中式的数字电源管理IC+ 模拟电源 产品, 这种架构多见于几年前的设计。由于系统厂商对于电源监测和
[电源管理]
<font color='red'>数字电源</font>管理架构的探讨
ADI旗下凌力尔特宣布推出反激式和SEPIC 控制器 LTC1871X
宽输入范围、No RSENSE 电流模式升压、反激式和 SEPIC 控制器可在高达 175ºC 工作 集微网消息,加利福尼亚州米尔皮塔斯 (MILPITAS, CA) 和马萨诸塞州诺伍德 (NORWOOD, MA) – 2017 年 4 月 20 日 – 亚德诺半导体 (Analog Devices, Inc.,简称 ADI) 旗下凌力尔特公司 (Linear Technology Corporation) 宣布推出宽输入范围、电流模式、升压、反激式或 SEPIC 控制器 LTC1871X,该器件驱动 N 沟道功率 MOSFET,需要极少的外部组件。LTC1871X 适用于低至中功率应用,通过利用功率 MOSFET 的导通电阻,而
[半导体设计/制造]
博通面向移动支付及交易应用推出业界最佳性能的 NFC 控制器
全新方案具备更强安全性、可实现更快交易及更广覆盖范围 全球有线及无线通信半导体创新解决方案博通(Broadcom) 公司(NASDAQ:BRCM)今天在国际消费电子展(CES 2016)上宣布,推出业界最佳性能的近场通信 (NFC)控制器。此次推出的 BCM20797 可提供更广的交易覆盖范围,更强的安全性能以及更快的交易速度,是移动支付及移动交易应用的理想选择。此款最新器件是博通在 NFC 市场为客户努力提供创新技术中的一部分,以推动技术的进一步发展,提高终端设备集成度。如欲了解有关国际消费电子展的更多新闻资讯,敬请访问博通公司新闻发布室。 凭借最具竞争力的 BOM 成本和最小的 PCB 封装,BCM
[网络通信]
基于dsPIC30F6014数字信号控制器的CAN节点设计
引言 CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。作为一种技术先进、可靠性高、功能完善、成本合理的远程网络通讯控制方式,CAN-bus已被广泛应用到各个自动化控制系统中,具有不可比拟的优越性。 新型16位dsPIC30F6014数字信号控制器结合单片机的控制优点及数字信号处理器(DSP)的高速运算特性,为嵌入式系统提供了单一芯片解决方案。 本篇论文以CAN协议为基础,结合dsPIC30F6014的突出性能,在设计通讯接口过程中,提出了基于dsPIC30F6014数字信号控制器的CAN节点设计方法。 1 dsPIC30F6
[单片机]
基于dsPIC30F6014数字信号<font color='red'>控制器</font>的CAN节点设计
伺服驱动器的作用与变频器区别
伺服驱动器是用来控制伺服电机的一种控制器,其作用类似于变频器作用于普通交流马达,属于伺服系统的一部分主要应用于高精度的定位系统。 伺服驱动器的作用 伺服电机控制器是数控系统及其他相关机械控制领域的关键器件,通过位置、速度和力矩三种方式对伺服马达进行控制,实现高精度的传动系统定位。属于伺服系统的一部分主要应用于高精度的定位系统。 主流的伺服驱动器均采用数字信号处理器作为控制核心,可以实现比较复杂的控制算法,实现数字化和网络化以及智能化。功率器件普遍采用以智能功率模块为核心设计的驱动电路,IPM内部集成了驱动电路,同时具有过电压、过电流以及过热和欠压等故障检测保护电路。 伺服驱动器是运动控制的重要组成部分,被广泛应用于工业
[嵌入式]
小广播
最新电源管理文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved