基于USB-JTAG接口转换的嵌入式系统Flash编程
时序向特定地址写入特定的指令序列,即可启动内部状态及,使其自动完成要求的内部操作。其部分指令序列如下表所示。
3.2 软件设计
对Flash 的编程包括读、写、擦除等操作,根据写入不同的指令序列实现相应的功能。程序首先要初始化USB-JTAG 接口转换模块,然后使JTAG 进入Run-Test-Idle 状态。分别读取并校验JTAG 芯片和Flash 芯片的ID,再将指定的指令序列写入Flash 完成操作。根据PowerPC 405GP 的BSDL 描述文件,该处理器有357 个扫描链单元,包括地址单元,数据单元和一些控制单元等,应分别控制每一个单元,使其工作在正常的状态下,为了操作方便,需要对这部分函数进行必要的封装。以进行读操作为例,部分的程序算法如下。
3.3 性能
影响Flash 编程性能的主要因素有边界扫描链的长度、JTAG 的时钟频率、数据宽度,Flash 的操作周期数等。以本设计为例,嵌入式处理器IBM PowerPC 405GP 的边界扫描长度为357,Intel 28F320J3A110 Flash 的位宽为16 bit,容量为32 Mbit,采用两片Flash 进行位宽扩展,则数据宽度为32 bit,容量为64 Mbit,JTAG 时钟为6 MHz,对整片Flash 编程的性能如下表所示:
4 结论
在嵌入式系统的开发过程中,使用 JTAG 接口对Flash 进行在线编程不需要其它附加设备的支持,降低了系统开发的成本,而且简单可行,速度较快,程序扩展简单,符合嵌入式发展的趋势。而且随着USB 接口越来越广泛的应用,研究基于USB-JTAG 接口转换的嵌入式系统Flash 编程对嵌入式产品的开发和调试具有重要意义。
- Linux嵌入式系统开发平台选型探讨(11-09)
- 嵌入式系统中文输入法的设计(03-02)
- 基于MPC755的嵌入式计算机系统设计(05-10)
- WinCE下光电编码器的驱动程序设计(04-12)
- 为什么嵌入式开发人员要使用FPGA(05-13)
- VxWorks几种常用的延时方法介绍(05-16)