嵌入式系统Flash编程技术研究论文

时间:
管理员
分享
标签: 研究论文 嵌入式 编程 系统

管理员

摘要:

嵌入式系统Flash编程技术研究论文  摘要:Flash存储器具有应用成本较低、存储速度较快、支持重复擦写功能,是目前很多嵌入式系统开发中不可缺少的重要内容。Flash编程方法的应用与系统开发进度、成本息息相关,因此,本研究主要以嵌入式系统为例,对Flash的编程方式进行分析……

嵌入式系统Flash编程技术研究论文

  摘要:Flash存储器具有应用成本较低、存储速度较快、支持重复擦写功能,是目前很多嵌入式系统开发中不可缺少的重要内容。Flash编程方法的应用与系统开发进度、成本息息相关,因此,本研究主要以嵌入式系统为例,对Flash的编程方式进行分析,并介绍了新型Flash模式,力求编程质量与水平能够得到显著提升,使该技术在更多系统中得到广泛应用。

  关键词:嵌入式系统;Flash编程;Flash存储器

  21世纪作为信息时代,网络技术、智能产品层出不穷,渗透到社会生产与生活的方方面面。其中,嵌入式系统应用范围较广、可靠性较高、应用成本较低,在移动通信、自动化控制领域中得到普遍应用。在系统开发过程中,为保障系统程序可以反复载入,对内置存储器的要求较高,而Flash具有成本低、存储快、可重复擦写特征,因此,成为嵌入式系统中不可缺少的重要部分。

  1嵌入式系统的Flash编程方法

  在现实应用中,应用频率较高的Flash编程方法包括编辑器编程、普通接口编程与JTAG编程三种。

  1.1编辑器编程

  为实现Flash编程,专门开发和设计了编辑器,通过配套使用,便能将指令或数据写入其中。该方式较老旧,对实施条件的要求也较严格,必须保障芯片在焊接到电路板之前进行,等到编程结束以后再进行焊接。目前,较常见的编辑器类型有LABTOOL-48、SUPERPRO/V等。编程器编程的主要优势在于使用较便利,且编程效率较理想,十分适宜DIP封装的Flash芯片。

  1.2普通接口编程

  在实际应用过程中,嵌入式系统为充分发挥作用,通常会在硬件设计中加入一些外围接口,这些接口包括串口、USB、网络接口等。而在Flash编程中,便可以借助这些接口、串口直接实现。接口编程的方式与JTAG编程相比,没有对特殊接口进行要求。

  1.3JTAG编程

  JTAG作为嵌入式调试技术,其接口标准为IEEE1149.1,主要应用于边界扫描与端口测试中。同时,采用JTAG接口不但能够完成测试操作,还可以实现对嵌入式系统中的Flash编程。在实际应用过程中,对JTAG进行编程操作应借助接口仿真器,将目标机与宿主机联系起来。在目标机上,将处理器与Flash总线相互连接,再借助宿主机中的既定程序,将数据、指令与控制信号均传送到JTAG接口芯片中。这时,处理器中将会接收到JTAG传递过来的信息,并按照Flash芯片进行编程,将接收到的信息写入其中,完成最终编程操作。与编辑器编程、普通接口编程方式相比,JTAG编程技术更为简便,无需对芯片焊接流程进行严格规定,只需借助JTAG借口线与仿真器便能完成测试,因此,嵌入式系统中Flash编程得到了广泛应用[1]。

  2通过JTAG接口实施Flash编程的实例分析

  在某项目开发设计过程中,采用JTAG接口完成Flash编程。在该设计过程中,JTAG的电缆与主机并口相互连接,另一侧连接到电路板中的JTAG插座上,再与处理器PowerPC405EP相连,Flash需要经过总线与处理器相连。在上述连接完毕以后,Flash无需具备JTAG接口,使用范围也更加广阔。在对Flash进行编程的过程中,PowerPC405EP由主机软件进行控制,利用其模拟Flash的编程时序,便能对Flash进行编程。

  2.1硬件配置

  第一,JTAG下载电缆设计。在JTAG接口标准的基础上,对信号逻辑电平中传输要求、数据、传输方向等进行综合考虑,最终选择采用并口标准与接口并行的模式,二者间关系如下:PC并口中管脚2的功能为D0;管脚3的功能为D1;管脚4的功能为D2;管脚5的功能为D3;在JTAG接口中,管脚TDI的功能为数据输入;TCK的功能为时钟;TMS的功能为模式选择;TRST的功能为复位;TDO的功能为数据输出。第二,嵌入式处理器PowPC405EP。在本系统设计中,采用的处理器为IBMPowPC405EP,属于一款32位、RISC指令集处理器,其性能较为良好,集嵌入式软核、外围设备系统SOC于一体。通过数据手册进行描述,得知BSR的长度与指令代码等内容,具体如下:指令Bypass,代码1111111;指令Extest,代码0000000;指令Sample,代码1111010。第三,Flash。在本系统设计中,使用的Flash为富士通SPANSIONMBM29DL,工作电压为3V,用户在使用之前,需要将特定地址写入到对应的指令序列中,便可以将其启动,使其在自动化下完成指令,包括复位、自动选择、擦除、编程等[2]。

  2.2软件配置

  编程算法可以划分为两个内容,一是写入编程命令序列,二是数据验证,本文只对前者进行研究。写入编程命令序列需要经过四个周期完成,前两个周期属于解锁周期,将AAh写入到55h中,再将55h写入到地址2AAh中,在第三个周期中,将A0h写入到0555h中,在第四周期中对地址与数据进行编程,Flash将自动完成编程命令。在第一周期中,使用的Flash数据线为AAh,也就是与Flash相连接的PowerPC405EP中的AAh,这时PerData0位为“0”。从PowerPC405EP的描述中能够看出,与之相对应的BSC单元号为24,部分源程序为:#definepinTDI1//输出端口位地址UnsignedcharOutport_State=0xF5//保存并口输出端口状态的全局变量writePort(pinTMS,0x00);sclk();//进入Run-Test-Idle状态;writePort(pinTMS,0x01);sclk();//进入Select-IR-Scan状态;writePort(pinTMS,0x00);sclk();//进入Shift-IR状态;writePort(pinTMS,0x01);sclk();//开始数据串行输入,将“0”输入到24号BSC中;writePort(pinTMS,0x01);sclk();//进入Update-DR状态,在TCK的下降沿,对24号BSC中的“0”进行驱动,使其传输到PerData当中,同时//flash也为“0”。

  3新型的Flash编程模式分析

  在实际应用过程中,由于Flash芯片在很多场景中均可使用,因此,命令集往往不尽相同,对此通常将整个编程模式划分为四个部分:最下层为硬件适配层,能够为上层提供读与写等基本功能,能够有效解决软件程序与硬件总线协调问题。第二层属于Flash适配层,主要作用是为上层提供Flash支持命令集,并通过公共接口发出响应。该层能够良好解决与Flash相关功能的指令时序与支持作用问题,且还应实现对各类事件与模式的转移。第三层为功能适配层,具有数据或指令读写作用,能够对Flash命令集进行封装操作,还可与上层之间相互联系。最上层便是适配层,与用户端相互连接,为用户提供高级交互接口。此种分层方式能够为编程操作提供极大便利,通过多层结构使高层与底层应用相互隔离,极大提高了程序开发质量,也为用户带来了更多功能与丰富的体验[3]。

  4结语

  本研究对Flash编程方式进行分析,借助嵌入式系统对Flash进行编程,编程速度较快、操作简单、复用率良好,充分符合嵌入式系统的发展趋势,同时也使系统开发投入成本降低,系统价值得到显著提高。另外,本文还介绍了一种新型的Flash编程方式,希望能够使其在系统开发中获得更广阔的发展空间。

  参考文献

  [1]高辉辉.基于PC-MBI模块的Flash编程技术研究[J].单片机与嵌入式系统应用,2015,15(9):7-10.

  [2]吴延军.基于FLASH芯片的加密存储技术研究[D].广州:暨南大学,2016.

  [3]康向艳.嵌入式路由器中基于NANDFlash启动技术研究[D].西安:西安电子科技大学,2014.