你的位置:首页 > 新闻资讯 > 行业动态

嵌入式系统中的 Flash 编程技术初探

2018.06.27      点击: 76

21 世纪是数字化和信息化的时代,数字化产品和信息网络技术被广泛应用于社会生产和生活的方方面面。其中,嵌入式系统正凭借着应用场景定制性强、实现成本低、可靠性高等优点,在包括移动通信、消费电子以及自动化控制等领域取得了广泛应用。在嵌入式系统的开发过程,为了提升系统的运行效率和缩小系统体积,一般都会在系统中内置处理器和存储器芯片,这与传统控制系统需要外置存储介质的方式有着很大的差别。而为了确保系统中程序可以被反复载入,要求嵌入式系统中内置的存储器需要满足较高的技术要求,现实中比较常见的存储器芯片有 ROMFlash 等。在这些芯片中,Flash 具有应用成本低、存储速度快以及可重复擦写次数多等优点,因而在嵌入式系统中应用地比较多。本文对嵌入式系统中的 Flash 编程方法进行了介绍,并在此基础上探讨了一种新型的基于多层结构的 Flash 编程模式,希望对相关工作能够有所借鉴。

2 嵌入式系统中的 Flash 编程方法

 

现实中,比较主流的 Flash 编程方法包括以下三种:1.编程器编程编程器是专门为实现 Flash 编程而设计开发的,它通过对配套程

 

序的使用,就可以实现对指令或数据的写入。这种方式比较原始,要求必须在芯片焊接到电路板上之前就进行,待编程操作结束后再完成焊接操作。实际中常见的编程器有 SUPERPRO/VLABTOOL-48 等。该方法的优势是使用比较方便,而且编程效率较高,尤其适合 DIP 封装的 Flash 芯片。

2.用普通接口编程

 

现实中,嵌入式系统为了实现其功能,往往需要在硬件中设计一些外围接口,这些接口主要包括 USB、串口和网络接口等。而 Flash

 

编程就可以通过直接使用串口或网络接口来实现。该方法相比后续即将要介绍的 JTAG(Joint Test Action Group)编程方法而言,省略了对特殊接口的要求。

3. JTAG 编程

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1   通过 JTAG 的读芯片 ID 子程序

 

JTAG 是一种嵌入式调试技术,它的接口标准是 IEEE1149.1,主要被用于对端口进行测试和对边界进行扫描。同时,利用 JTAG 接口不光可以完成测试操作,还能对嵌入式系统的 Flash 进行编程。现实中,在用 JTAG 进行编程操作的过程中,要通过接口仿真器将目标机和宿主机进行连接。目标机上的 Flash 总线直接与处理器相连,然后


通过运行宿主机上的既定程序,将指令、数据以及控制信号输送到 JTAG 接口芯片上。此时目标机上的处理器会接收 JTAG 传送过来的信息,并依据 Flash 芯片的编程时序将这些信息进行写入,进而最终完成编程操作,如图 1 所示。与前两种方法相比,这种方法最为简便,它不要求在 Flash 芯片焊接前就必须完成编程操作,仅仅只需借助 JTAG 接口线和一个仿真器就可以顺利完成测试,在嵌入式系统的 Flash 编程中取得了广泛的应用。

3 新型 Flash 编程模式探讨

 

现实中,考虑到 Flash 芯片的使用场景众多,所以不同应用场合的 Flash 往往会支持不同的命令集。实际中使用较多的 M28  M29

 

两个系列在管脚定义和支持的命令集方面就区别很大,这就造成了针对一种应用场景开发的程序往往不能在其他器件上直接应用。鉴于此,可以考虑将整个编程模式划分为从下到上的四个层次。

 

位于最底层的是硬件适配层,主要为上层提供可调用的读和写等最基本的操作,目的是为了解决所开发的软件程序与具体硬件总线之间的协调问题。此外,这一层还要考虑如何实现处理器地址空间与 Flash 地址空间的映射。当实现上述功能后,就可以通过处理器达成在指定的 Flash 地址位置中读出或写入指令、数据等操作。从底层向上的第二层为 Flash 适配层,作用是向上层提供 Flash 支持的命令集,并由公共接口进行解释,同时发出一定的响应。该层主要解决与 Flash

 

程序相关的各种功能的支持作用和指令时序,同时还要完成对各种事件的响应操作和模式转移。第二层的设计合理性将直接影响到实际读写擦除的效率指标。第二层之上的第三层为功能适配层,该层可以完成对指令或数据的读写操作。功能适配层的运行独立于具体的 Flash,它既可以实现对 Flash 命令集的封装操作,还可以隔离最上层与具体 Flash 之间的联系。这样做的好处是方便了开发人员的编程操作,开发人员不需要对 Flash 的具体细节进行详细掌握就能实现对各种功能的调用和操作。最上层是应用适配层,该层主要为用户提供高级功能和友好的交互接口。

 

这种分层的 Flash 芯片编程模式为编程操作提供了极大的便利性,它通过构建层次和逻辑清晰的多层结构,进而实现了高层应用和底层器件间的隔离,使得程序软件的开发周期和质量大大提升,同时也利于为用户提供更丰富的功能模块和更友好的交互界面。

4 结束语

 

本文对嵌入式系统的 Flash 编程方法进行了介绍,然后在此基础上探讨了一种新型的基于多层结构的 Flash 编程模式,目的是希望提升 Flash 的编程质量和效率,从而促使其能够在嵌入式系统中得到更好的应用。