嵌入式系统是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适用于系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统,是一种软硬件高度结合的产物,其系统功能实现的关键在于经过高效率设计的各类应用软件。和通用计算机软件不同,嵌入式系统中的软件一般都固化在只读存储器中,而不是以磁盘为载体可以随意更换,所以嵌入式系统的应用软件和嵌入式产品一样都具有较长的生命周期。另外,各个行业的应用系统和产品很少发生突然性的跳跃,嵌入式系统中的软件也因此更强调可继承性和技术衔接性,发展比较稳定。以上两点使得基于原有的硬件平台即可完成嵌入式系统的软件升级,从而节省用户的成本,提高系统供应商的产品竞争力和服务效率。软件注入就是能够实现这种软件升级方式的技术之一。
就嵌入式系统而言,软件注入是指将嵌入式系统中的软件模块使用在线可编程存储器存储,可在需要时通过外部注入设备的注入技术。它十分有利于机电一体化产品等需要严密封装的嵌入式系统的软件升级和完善。
1 软件注入的可行性分析
在各类嵌入式计算机中,微控制器 MCU ( Micro Controller Unit )以其低功耗、高可靠性、片内外设资源丰富且易于扩展的优势而成为各种控制应用的主流,这种用于控制的嵌入式系统也大量而广泛地应用于各个领域。由于结构特点、运算速度增快和存储容量增大,使得单片 MCU 不仅用于控制,也逐步用于各类运算等应用,因此在嵌入式系统中针对 MCU 的软件注入应用最为普遍,也最具代表意义。下面将讨论基于 C8051F023 的软件注入的实现。
要想实现软件注入,嵌入式系统所采用的 MCU 必须具有在系统可编程能力,即程序存储器支持应用程序的擦除和重新写入。此外,嵌入式系统应具有较大的程序存储空间和较快的运行速度,以便能够存储和运算比较复杂的软件算法。
C8051F023 属于 Cygnal 公司的 C8051F 系列。该芯片内核 CIP-51 采用了流水线指令结构,速度最高可达 25MIPS ( Million Instructions Per Second ,每秒百万条指令),且 70% 的指令可在 1~2 个系统时钟周期内完成,这为嵌入式设备采用复杂的算法提供了必要的条件。同时芯片内部集成了容量达 64KB 的 Flash 存储器,用于程序代码和非易失性数据的存储,可由软件使用 MOVX 指令对 Flash 存储器进行在系统编程。
由以上分析可知, C8051F023 完全具备软件注入的实现条件。
2 软件注入的技术措施和实现方案
通用计算机具有完善的人机接口界面,在上面增加一些开发应用程序和环境即可进行对自身的开发。而嵌入式系统本身不具备自举开发能力,因此必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。图 1 给出的就是一种基于通用计算机平台的软件注入实现方案。

由图 1 可以看出,为了实现软件注入,除了具备运行在通用计算机平台上的相关开发工具(例如 VC++ 、 VB 、 Delphi 等)外,还必须制订软件注入规程和研制软件注入设备。注入规程包括嵌入式系统和注入设备的物理接口的机械特性和电气特性、具有口令字校验功能和差错控制机制的通信协议等;注入设备分为注入卡和注入枪,前者采用通用计算机的标准接口如 RS232 、 USB 等与通用计算机互连,用于将软件程序输入到注入枪,也可直接对嵌入式设备注入,后者为移动式注入设备,便于为不在本地的嵌入式系统完成软件的升级服务。
论坛热门帖子:
[lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签:
技术 注入 软件 基于 系统 程序 嵌入式 模块 实现 代码
注册
个人空间
