当前位置:首页 > 智能硬件 > 智能硬件
[导读]1 引言 固件是系统最底层的工作软件。便携式设备功能与固件密切相关。固件能够充分发挥硬件资源,弥补硬件缺陷与不足。因此。固件在便携式设备中具有极大重要性。固件升级能够进一步完善固件程序,增强便携式设

1 引言
    固件是系统最底层的工作软件。便携式设备功能与固件密切相关。固件能够充分发挥硬件资源,弥补硬件缺陷与不足。因此。固件在便携式设备中具有极大重要性。固件升级能够进一步完善固件程序,增强便携式设备功能。
    在系统开发和用户使用时.一旦系统提供设备固件更高版本。就要求设备通过固件升级程序对原有固件进行升级。因此,基于USB的即插即用、传输速率高的特点,设计一种通过USB接口升级设备固件的应用程序。该设计应用程序是基于便携式设备的USB驱动程序.包括固件文件结构定义、USB设备驱动程序与上层应用软件的I,0操作、USB Bulk0nly传输模式、USB通信命令规范、NAND Flash坏块信息表构建等问题。


2 系统结构
    该系统利用PC机通过USB总线与便携式设备进行通信,并在此通信基础上完成固件升级的各种操作,其基本结构如图l所示。系统开发人员或终端用户在获取最新版本固件后,利用固件升级程序实现PC机与便携式设备的通信,并实现固件生成、读取设备信息、USB-Boot二级代码下载、固件升级等功能。

3 固件升级程序的设计
    固件升级程序面向系统开发人员或终端用户。由于用户知识体系架构的差异,程序界面力求友好、简洁。功能要求:按预先定义的固件结构生成固件文件:自动检测设备是否连接,一旦设备连接,自动下载二级Boot loader并读取设备Flash信息、固件版本信息;将固件文件下载至NAND Flash,从而完成固件升级操作。
3.1 固件头的填充
    固件文件的固件头具有标识,索引功能。固件头结构决定后续固件升级工具扩展的难易。该设计的固件头主要包括固件的版本、生成日期、厂商信息、模块信息和资源文件在固件中的偏移、长度等信息。这些信息采用结构体将其组织,以便读取固件文件。同时在头尾部预留若干字节的保留区,以备后续升级扩展。
    固件头的填充需要严格按照结构体所定义的成员进行。函数GenerateHeader完成固件头的生成,其函数原型为:


   
3.2 生成固件文件
    固件文件主要由固件头,启动代码,系统代码,FONTl2,FONTl6,GBK字体和字库资源文件,菜单资源文件,图片资源文件等8个模块组成。其中系统代码、菜单资源文件、图片资源文件的路径由用户指定,其余文件存储于工程目录下。图2为固件生成流程。

   

 固件生成操作是由函数GenerateRfw完成。其原型为:


    执行该函数需获得文件当前工程下的路径.以及文件大小,因此需调用FileFulJLlName函数。FileFullName函数原型为:INT FileFullName(CString FileName,CString &FilePath—Name);其中FileName为存储在工程目录下的文件名,FilePathName为文件路径的引用。该函数返回值为文件大小。


4 获取USB设备路径
    便携式设备在进入固件升级模式时.向PC机枚举该设备的各类描述符,在成功应答最初的不完整的设备描述符请求后,PC机向设备分配一个新地址.该地址就是固件升级程序中需获取的设备路径。接着,PC机在得到完整的设备描述符、配置描述符、字符描述符后加载设备驱动程序。该过程完成后,通过驱动程序与设备通信。在开发应用软件中,通过API函数调用获取设备路径,该获取过程分为以下步骤:
    (1)调用Windows设备管理函数SetupDiGetClassDevs()获取设备信息集。函数SetupDiGetC1assDevs()是设备信息集的处理程序,包含所有与指定参数匹配的已安装设备。
    (2)利用函数SetupDiEnumDeviceInterfaces()返回设备信息集的一个设备接口元素的环境结构,每次调用该函数便返回一个设备接口信息,重复调用,直到获取设备信息集所有接口信息。函数SetupDiEnumDeviceInterfaces()调用成功返回“TRUE”且devicelnfoData指定一个与查找参数相符的接口。
    (3)调用函数SetupDiGetDeviceInterfaceDetail()获得该接口详细信息。用其获得接口详细信息,必须先得到所请求的缓冲区大小,再分配适当的缓冲区,并再次调用该函数以得到接口详细信息。此时返回的接口信息包含设备接口名称.用户可调用函数CreateFile()获取所要打开设备的句柄。


5 USB二级BOOt loader的下载
    该设计便携式设备在固件升级时.首先由第1级Bootloader引导进入USB Boot模式.并向PC枚举该设备。PC识别该USB设备,并加载相应驱动程序后。固件升级过程便获取设备系统路径。因为每一个USB设备有一个PID和VID,应用程序通过PID和VID定位到固件升级的USB设备。获取设备路径和句柄后,利用USB总线读取设备数据,从而为完成应用程序与USB设备通信做好准备。
    由于器件MASK ROM的空间限制,诸如USB命令解析、Flash设备驱动等应用代码,也就是USB模式下的二级Bootloader代码,需要通过PC机下载至器件IRAM。
    USB二级代码的下载过程创建子线程用于检测设备,只有确认设备已连接,才能下载二级代码,总的下载流程如图3所示,图中实线为主线程,虚线为子线程。

    在获取到设备路径后,系统便调用函数CreateFile()获取设备句柄。利用该设备句柄和获取的二级代码文件路径,便能够通过调用函数Boot_VendorRequest()将二级代码下载到设备IRAM中。
    Boot_VendorRequest函数原型为:B00L Boot_VendorRe-quest(HANDLE hDevice,DWORD requestCode,LPCTSTR str-FileName);其中hDevice是设备句柄,requestCode是请求控制码,strFileName是二级代码文件路径,返回值为“TRUE”,说明下载成功,否则下载失败。该函数主要调用系统函数DeviceIoControl(),将二级代码文件进行CRC校验后,传入设备IRAM。


6 固件升级
    在完成设备路径获取,并将二级引导代码下载至设备IRAM后,设备控制权交给这段应用代码。代码主要负责Nand Flash的驱动和USB命令解析。至此,固件升级前的所有工作已准备就绪。固件升级的核心任务是将固件文件无差错写入NAND Flash。由于NAND Flash存在坏块,故必须先对其进行坏块检测,然后形成坏块信息表。根据需要写入的固件各部分文件大小,结合坏块信息表,则生成固件各文件在Flash中的存放位置,进而将固件下载至Flash。最后填充ID Block,这样就完成了固件升级。图4为固件升级流程。

7 系统测试
    系统测试采用自行开发的便携式的网络通信平台。固件升级前需的准备:(1)保证设备电池充足,防止升级过程因电池不足而中断;(2)备份设备原有固件;(3)确保设备有足够存储容量;(4)检查IJSB接口可靠性。图5是固件生成及其下载演示。从图5中看出,升级过程向设备写入的菜单、图像等资源显示成功。

8 结束语
    随着嵌入式技术的发展,便携式设备已普及日常生活中。随着用户不断提出新功能要求,厂商通过更新固件使其产品增值。因此,该设计固件升级工具的设计方法可广泛应用于MP3、电子词典等便携式设备。测试结果表明,升级程序界面简洁友好,只需几个简单操作就能完成系统固件升级。

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

美国纽约州阿蒙克2022年10月20日 /美通社/ -- IBM(NYSE: IBM)发布 2022 年第三季度业绩报告。 IBM 董事长兼首席执行官 Arvind Kri...

关键字: IBM 软件 BSP 云平台

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

要问机器人公司哪家强,波士顿动力绝对是其中的佼佼者。近来年该公司在机器人研发方面获得的一些成果令人印象深刻,比如其开发的机器人会后空翻,自主爬楼梯等。这不,波士顿动力又发布了其机器人组团跳男团舞的新视频,表演的机器人包括...

关键字: 机器人 BSP 工业机器人 现代汽车

智能硬件

22182 篇文章

关注

发布文章

编辑精选

技术子站

关闭