当前位置:首页 > 智能硬件 > 智能硬件
[导读]引 言 在线编程(In-Circuit Programming,ICP)是目前普遍应用的一种速度较快的MCU编程方式。对于笔者使用的Freescale半导体公司的8位MCU来讲,通过芯片本身的串行通信接口进行在线编程的速度比使用芯片自带的M

引 言
    在线编程(In-Circuit Programming,ICP)是目前普遍应用的一种速度较快的MCU编程方式。对于笔者使用的Freescale半导体公司的8位MCU来讲,通过芯片本身的串行通信接口进行在线编程的速度比使用芯片自带的MON08或BDM接口进行编程的速度要快得多。除了使用串行通信接口进行编程,由于自带USB 模块的芯片增多,使用USB接口进行在线编程速度更快。同时,由于可以使用USB供电,所以使用的电缆更少。
    但笔者也发现,大部分在线编程系统都包含了PC方程序和MCU方程序两部分,在线编程时需要运行PC方的程序方可进行,但很多时候会遇到因主机或操作系统平台更换而引起PC方程序无法运行的情况。针对此种问题,笔者尝试在Freescale半导体公司新推出的带有USB模块的MCF51JM128芯片上实现了类U盘方式的在线编程功能:像U盘一样直接将目标文件放入便可实现编程,省却了PC方程序,方便了用户实际使用。
    MCF51JM128(以下简称“JM128”)是Freescale半导体公司于2008年推出的一款Coldfire V1内核系列的微控制器,该芯片主要特点是内含一个集成的USB控制器,支持USB2.0全速主机、设备和On-The-Go。这种配置一般出现在高端微处理器中,在其他微处理器中很少出现,可以说是JM128非常有竞争力的特色。

1 设计思路
    实现类U盘方式的在线编程功能,主要的工作在于实现JM128的类U盘功能。笔者在学习期间参与过在线编程系统的开发,其中一些已有的功能模块可以借鉴使用。该设计的主要思路是,通过开发板上的某引脚状态判断是否进入在线编程状态,若进入则对USB模块进行初始化,完成与PC机的U盘枚举的交互工作。 JM128不断查询PC方对U盘的操作,用户此时可打开U盘将目标文件粘贴,JM128一边接收目标代码数据包一边对数据包进行分析,若符合要求则对 Flash编程操作,编程结束后再接收下一包数据。这种U盘可以称为“类U盘”而不是真正的U盘,因其并不具有与U盘相同的存储功能。

2 软件设计
    在线编程系统的软件部分主要包括Mass Storage类协议、FAT16文件系统、S19文件解析和Flash驱动模块的设计。Mass Storage类协议和FAT16文件系统用于实现U盘功能,是软件实现的重点。Flash驱动代码的编写可以参考JM128参考手册“Flash存储器”一节。
2.1 Mass Storage类协议的实现
    Mass Storage类协议需要实现以下部分:一是在设备枚举阶段,提供Mass Storage-类协议描述符,这样主机就可识别该设备为海量存储型设备;二是在数据传输阶段,实现Bulk-Only(批量传输)协议;三是实现SCSI命令集。
2.1.1 Mass Storage类协议描述符
    USB主机通过枚举过程获得的USB设备描述符来获得设备类型和其他信息,并根据这些信息建立通信。这些描述符包括:设备描述符、配置描述符、接口描述符和端点描述符。
    JM128芯片USB模块作为设备控制器时共有16个双向端点(endpoint),每个端点的每个方向都使用双缓冲区来达到最大的传输吞吐量。本设计中使用了3个端点。其中端点0为双向控制端点,用于控制传输,枚举过程中USB主机仅与该端点进行交互,获得信息。端点1和端点2用于Bulk-Only传输:端点1为IN端点,用来传输数据至PC方;端点2为OUT端点,用来接收PC方发送过来的数据。这些在描述符中都有体现。
2.1.2 批量传输协议的实现
    当设备被识别为Bulk-Only的海量存储设备后即进入批量传输方式。在此方式下,USB主机与设备间的所有数据均通过Bulk-In和Bulk-Out来进行传输,不再通过控制端点传输数据。
    在Bulk-Only传输方式中,USB主机和设备之间传送3种数据,CBW(Command Block Wrapper,命令块包)、CSW(Command Status Wrapper,命令状态包)和普通数据。CBW中的命令格式遵从SCSI传输命令集,USB设备需要分解CBW中包含的指令并执行相应命令,并向主机返回反映当前命令执行状态的CSW。USB设备方Bulk-Only传输流程如图1所示。

2.1.3 SCSI命令集的实现
    SCSI有3种字长的命令:6字节、10字节和12字节。Microsoft Windows环境支持12字节的命令。SCSI命令集包含了对多种存储设备的操作命令,对U盘而言,并不是所有的SCSI命令都要进行应答和处理,实际用到的SCSI命令如表1所列。

2.2 FAT16文件系统的实现
    当开发板插入USB总线并枚举成功后,USB主机会发送前面提到的SCSI命令。若这些命令的返回结果正确,主机接下来进入文件识别阶段;如果文件系统信息出错,则会导致USB总线复位,通信中止。
    本设计中采用的是FAT16文件系统。FAT即“文件分配表”,是用来记录存储器中文件所在位置的表格,一旦文件分配表丢失,存储器中的数据就会因为无法定位而不能使用。FAT16文件系统的磁盘可以分为保留区、FAT区、根目录区和数据区。其中保留区的第1个扇区称为引导扇区,包含对文件系统进行识别的关键信息;FAT区用来存放文件分配表,由于FAT表非常重要,所以通常在FAT区之后有1个相同内容的备份;根目录区中存放目录项,每个目录项为32字节,记录1个文件或目录的信息;在根目录区之后的数据区便是真正意义上的存放文件数据或目录的位置,占据了存储器大部分数据空间。
    本设计功能相对固定,无需实现与普通U盘同样复杂的文件系统,如文件存储、动态创建/删除等功能都可以省略,在实现功能的同时也节省了代码空间。笔者利用常量数组定义了引导扇区、FAT区和根目录区。
    操作系统按簇来分配磁盘空间,FAT表是一一对应数据区簇号的列表,反映了所有簇的使用情况。FAT区结构如表2所列。在设计FAT区的数组时,笔者采取了简化措施,由于无需在Flash中存储目标S19文件和磁盘信息,所以仅仅设置了FAT表数组的表项O和表项1,其余表项做清零处理。

结 语
    MCF51JM128是集成了USB主机、设备和OTG功能的新款MCU,适合数据采集、数据交换等多个领域,是一款集成度非常高的芯片。利用其集成 USB模块的特点实现的类U盘方式在线编程系统时,提高了在线编程系统的平台适应性,提高了易用性,降低了在线编程系统的开发成本。开发其他任何带有 USB模块的MCU的在线编程系统时,都可借鉴本方法。同时,也可将本方法扩展到各种基于USB的编程器中,如笔者拟开发的基于MCF51JM128的 Freescale 56F8xxx系列DSP编程器。

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭