微程序控制器实验启动程序运行作用是什么

2025年01月01日 阅读 (52)

传统机载电子设备的程序更新升级,大部分都是在其处理器对应的软件开发环境或第三方工具下通过外部编程器利用特定协议将程序烧写进处理器的内部存储器中。

微程序控制器实验启动程序运行作用是什么(1)

基于外部编程器的方法常用于设备的设计、调试及测试阶段,通常可以通过打开产品口盖、外壳或者预留维护口进行操作,该方法虽然易于操作,且方便调试,但经常受空间以及传输距离的限制。

由于外部编程器所使用的程序更新接口往往集成于设备或产品内部或者安装在复杂、封闭的环境下,并没有通过串口或者外部其他连接器连接到产品外部。

微程序控制器实验启动程序运行作用是什么(2)

因此在对其进行升级时往往需要拆开产品才能进行,有时甚至需要返厂才能进行升级,无法实现外场升级,使得产品的升级维护周期和成本大大增加,人力物力成本高昂。

随着现代航空机载系统高速发展,对新一代机载设备的控制器程序更新提出机上在线升级新要求,传统的离线程序升级方式已经不能满足当前机载设备的要求。

微程序控制器实验启动程序运行作用是什么(3)

因此实现通过外部总线总线等通信方式,无需打开产品口盖即可完成其内部软件升级的在线加载程序基本成了每种机载电子产品的基本功能要求。

微程序控制器实验启动程序运行作用是什么(4)

本文介绍一种基于微控制器的程序在线升级的方案,通过外部串行接口接收待升级程序的二进制码,并通过微控制器的加载程序将其自主更新进内部程序存储器,通过理论分析和试验验证其可行性及便携性。

微程序控制器实验启动程序运行作用是什么(5)

在线串行编程是对PIC 微控制器存储器进行读和写的一种特殊编程协议,该协议使用5根线完成编程协议。

微程序控制器实验启动程序运行作用是什么(6)

分别为编程通用时钟口、编程通用数据口、电源、接地以及编程使能引脚,通过对微控制器中执行程序存储区进行读取访问,可确定执行程序是否存在。

ICSP 功能通过使用数据线、时钟线向微控制器发送串行控制代码和指令实现。

微程序控制器实验启动程序运行作用是什么(7)

在 ICSP模式下,无论微控制器的时钟和振荡器的配置位如何设置,系统时钟都来自 PGC 时钟引脚。

ICSP 模式下一次送入一个24 位的指令,所有指令不像通常模式一样从微控制器的内部

存储器执行程序读取操作,而是将指令串行的移入内部缓存区,载入指令寄存器后执行。ICSP 模式下的 PGD 数据线的功能是移入数据,数据通过该信号移入微控制器。

微程序控制器实验启动程序运行作用是什么(8)

PGC 时钟有两重作用,既可当作处理器执行时钟,又可以作为串行移位时钟。PGC 时钟线的上升沿用于发送 PGD 数据,下降沿用于锁存该数据,且总是从发送数据的最低位开始传输。

1.1 ICSP 的 CPU 控制代码

ICSP 的 CPU 控制代码包含 SIX 串行指令执行和REGOUT 串行指令。SIX 串行指令执行见图 1,SIX 控制代码用于发送指令给 CPU 执行,而 REGOUT 控制代码用于从器件中读数据。

微程序控制器实验启动程序运行作用是什么(9)

SIX 控制代码可用来执行 PIC 单片机的汇编指令。CPU收到 SIX 控制代码时,会在 24 个时钟周期时间内将指令移入单片机内部缓存。

紧接着在接下来 4 个时钟周期内执行该指令,在执行指令的过程中,CPU 会并行的将下一条控制指令的 4 位命令移入。

微程序控制器实验启动程序运行作用是什么(10)

在 ICSP 模式下,REGOUT 控制代码用于从微控制器中读取数据。REGOUT 可将微控制器中 VISI 寄存器中的内容在 PGC 时钟控制下通过 PGD 数据引脚读取。REGOUT 串行指令执行见图 2。

微程序控制器实验启动程序运行作用是什么(11)

在接收到 REGOUT 控制代码后,处理该命令需要 8 个时钟周期,且在这 8 个时钟周期内处理器保持空闲状态,CPU 在 8 周期后额外的 16 个周期将数据移出。

REGOUT 指令不同于 SIX 指令之处在于 PGD 的状态需要多次转换,控制器发送指令时,PGD 数据引脚从为输入引脚,处理完控制代码后,PGD 引脚就会由输入变成输出状态,将VISI 寄存器中的数据移出。

微程序控制器实验启动程序运行作用是什么(12)

数据移出后,PGD 引脚又重新转换为输入状态,微控制器状态机保持CPU 空闲直到下一个 4位控制代码被移入。

1.2 进入 ICSP 模式

图 3 给出了进入 ICSP 编程模式的三个步骤:首先将编程使能 MCLR 引脚短暂地拉为高电平,然后再拉为低电平,也即产生一个高电平脉冲。

该高电平电压为VIH,也即器件的VDD,且对高电平脉冲的持续时间无要求。

微程序控制器实验启动程序运行作用是什么(13)

其次将32位密钥序列在PGC时钟控制下移入PGD,秘钥序列移入 PGD引脚必须在步骤1中移除VIH的高电平脉冲后经过至少40 ns 的时间间隔。

该密钥序列宽度为 32 位,只有当接收到该密钥序列 32 位数据完全正确时,微控制器才可以正常进入ICSP 模式,且必须总是从移入该密钥的高半字节的最高有效位开始传输。

微程序控制器实验启动程序运行作用是什么(14)

最后在指定的时间内将 MCLR拉为高电平并保持状态不变。成功进入ICSP模式后,就可以对微控制器程序存储器进行访问和编程。

微程序控制器实验启动程序运行作用是什么(15)

本文在线加载验证方案功能框图如图4所示,在线加载方案主要涉及2个平台共3个程序:上位机平台的加载程序、微控制器嵌入式平台的加载程序BootLoader和应用程序(下文简称App)。

微程序控制器实验启动程序运行作用是什么(16)

x86host加载程序通过PC宿主机开发环境生成,另外两个平台的程序需要分别由两个微控制器开发环境产生。

应用程序 App 即为待升级程序的目标码,它是将待升级的应用程序通过微控制器开发环境提供的链接文件重新生成的十六进制文件。

微程序控制器实验启动程序运行作用是什么(17)

除了在应用程序软件工程中新增加了链接文件外,其余程序代码、编译环境等工程文件与原应用软件工程完全一致,可以确保所生成的目标码相对原程序在功能上的一致性。

在线加载方案的整体流程步骤如下:

(1)上位机上运行微控制器开发环境工程,利用微控制器开发环境将 BootLoader加载程序工程生成可对微控制器进行烧写的 BootLoader.hex文件。

微程序控制器实验启动程序运行作用是什么(18)

(2)上位机控制外部编程器利用ICSP协议将 BootLoader.hex烧写进微控制器内。

闪存程序存储空间总大小为12 kB,地址范围为 0x0000~0x1FFF,每个地址对应一个16位字。

烧写完后其占用的闪存程序存储空间范围为0x0100~0x06FF。其中 0x0000~0x00FF是复位向量和所有的中断向量使用的地址,这段地址对每个程序都是固定的。

微程序控制器实验启动程序运行作用是什么(19)

(3)BootLoader 加载程序软件烧写完毕后对微控制器重新上电,开始运行 BootLoader 加载程序,等待 x86host 加载程序从串口发送指令。

(4)PC 宿主机运行 x86host 加载程序,x86host 将生成好的App.hex文件解析并打包;

(5)x86host 加载程序通过 RS232接口发送指令并将打包好的数据发送至 BootLoader 加载程序;

微程序控制器实验启动程序运行作用是什么(20)

(6)BootLoader 加载程序将接收到的数据(包括_reset、IVT/AIVT、Delay、App和配置寄存器数据)写入微控制器的闪存存储对应的空间,即可完成 App 程序的烧写。

其中,x86host 加载程序主要功能是将微控制器开发环境产生的应用程序十六进制文件读取解析并通过 RS232 串口通讯发送给微控制器。

微程序控制器实验启动程序运行作用是什么(21)

微控制器平台的 BootLoader 加载程序主要功能是利用串口接收 x86host发来的 APP.hex 文件,并将hex 文件中的机器码按照对应的地址写进微控制器的闪存程序存储器中,同时也会对微控制器的中断向量表、配置位寄存器等进行配置。

BootLoader 加载程序是固定不变的,可在产品出厂前通过外部编程器烧写固化在微控制器指定的程序存储器空间中。

微程序控制器实验启动程序运行作用是什么(22)

应用程序 App 是根据需求编写的可更新的特定功能代码,由加载程序将应用程序代码更新到应用程序所对应程序存储器空间中。

微程序控制器实验启动程序运行作用是什么(23)

本文针对机载系统各级控制器程序在线统一升级的要求,研究了基于微控制器的程序在线升级技术。

微程序控制器实验启动程序运行作用是什么(24)

介绍了基于微控制器程序存储器空间分配、程序烧写原理及在线加载方案。

通过实验通过 BootLoader加载程序烧写App应用程序的方式与通过微控制器开发环境自带编程器直接烧写App应用程序结果一致,均能通过验收测试程序。

微程序控制器实验启动程序运行作用是什么(25)

微控制器具备实现软件在线加载功能的基本条件,即支持用户编写的程序对程序存储空间进行擦写操作,也支持程序之间的相互跳转。

本加载方案能够实现程序代码的在线升级,可以大大提高软件维护和升级的效率,具备很好的可操作性。

微程序控制器实验启动程序运行作用是什么(26)

Niu Wensheng. Airborne Computer Technology . Beijing: Aviation Industry Press,2013.

Peng Degang, Zhou Huiling, Liu Miao. Embedded debugging technology based on JTAGResearch . Instrument Technology, 2008 : 24-26.

LUO Gang, PENG Hao, Chen Shanwu. Implementing TMS320C6X with emulator interfaceDSP FLASH writing and Application program self-guidance . Modern Electronic Technology,2005: 12-14.

Yang Guanghai, PENG Wenyuan, Zhang Chuan, et al. Implementation of micro-control using RS422 serial portMethod of online program upgrade . Electronic World, 2016 : 87-88.

Zhu Wei. Design of MCU remote system upgrade function based on RS-485 network. Electronic World, 2012 : 26-27.

Luo Chenge, Ren Haiqiang. Design and implementation of online upgrade system based on CAN busImplementation . Digital Communications, 2013, 40: 28-32.

Zhuang Haoyue. Implementation of DSP Remote Online Upgrade based on Network . Information Communication.2017 : 115-116.

郑重声明:玄微运势的内容来自于对中国传统文化的解读,对于未来的预测仅供参考。