基于串口的通用的单片机在系统编程设计及实现
0 引 言
一般来说,在系统编程(ISP)是指依靠某种外部工具(除了常规的并行编程器以外)直接给处理器内部集成的程序存储器编程。这里所指的外部工具常见的有很多种,不同的处理器供应厂商可能提供不同的方案。例如,根据编程接口的不同,就有JTAG、单线、串口、SPI口等多种方式。尽管编程方式有所不同,但其原理都是类似的,就是依靠外部条件触发处理器,令其脱离正常执行的内部常规用户应用程序代码的进程,转而执行保存在其程序存储空间内某个固定位置处的控制擦除程序存储器及给程序存储器编程的代码(或是处理器外部提供的执行代码),然后通过某种与PC计算机的通信方式,将用户指定的某个在PC上编译完成的嵌入式处理器可运行的二进制代码文件编程人嵌入式处理器内的程序存储器。这种编程方式只需要常规的硬件配置(某些处理器可能需要某些叫作下载线的简单硬件电路)支持,而不需要特别的编程器(指并行编程器)支持,所以即使处理器芯片已经焊接到了电路板上也可以实现编程,这也就是ISP的真实含义。
1 通用的在系统编程方法
随着嵌入式系统技术的发展,电可擦除的FLASH芯片以容量大,价格低,编程方便等优势得到了广泛的应用。用一片FLASH作为程序存储器的系统无法直接实现在系统编程(ISP),为了方便现场调试和程序升级,可以采用集成ISP功能的MCU(如AVR、部分ARM芯片等),或者采用双FLASH设计等方法实现ISP功能。但有不少系统仍然使用不具备直接ISP功能的MCU(如M68K、N80C196等),同时因印制版面积、成本等原因的考虑也没有采用双FLASH芯片,此类系统在程序升级时通常需要编程器、仿真器等特定工具,在现场调试时很不方便。
针对使用不具备ISP功能的MCU系统,只要满足以下四个条件,就可以按照本文的方法进行ISP设计。考虑自编程过程中文件出错、断电等特殊情况,此方案可实现故障保护。
(1)程序空间和数据空间统一编址,程序可以在RAM中运行;
(2)FLASH芯片正确连接了写信号;
(3)拥有能放下Update程序并让其正常工作的额外程序/数据空间;
(4)具备某种通信能力(例如以太网、串口、CAN、MODEM等)。
程序分布如图1所示。这种情况下需要把整个工作分为三部分完成。第一是引导程序(称为Boot程序);第二是升级程序(Update程序);第三是正常程序(Normal程序)。Boot程序负责控制程序的运行模式:升级模式、正常模式。如果进入升级模式,Boot程序需要将Update程序复制到指定的运行空间,并转入执行Update程序;如果进入正常模式,Boot需要做的工作就十分简单,可以直接把控制权交给正常程序。要注意Update在自编程时不能破坏Boot程序。此时Normal程序不再负有复制Update程序到指定运行空间的任务,完全按照正常的模式运行。
相关文章
- 2023-07-21可编程控制器在焙烧炉燃烧站中的应用
- 2024-02-01具有露霜判别能力的精密露点仪研制
- 2024-07-09基于GP-IB总线的加速度计测试系统研究
- 2023-01-19低功耗智能传感器系统的设计
- 2022-07-07Altivar38变频器在水处理系统中的应用
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。