基于ARM Cortex-M4的PLC结构化框架研究

2022-02-28 04:14陈占标
电子元器件与信息技术 2022年12期
关键词:主程序子程序文件夹

陈占标

泉州市天志智能科技有限公司,福建 泉州 362000

0 引言

ARM Cortex-M4主要应用于传感、决策、中断驱动等领域,具有功耗低、成本低、性能高、扩展性好等特征[1]。但与C语言相比,基于ARM Cortex-M4的PLC结构化框架不够直观,编程难度较大,对基于ARM Cortex-M4的PLC结构化框架应用发展产生不利影响。对此,本文构建PLC结构化汇编框架模型,根据框架设计原则,设计具有可移植性,包括CAN模块扩展站点分配功能和PID功能的框架,并对PLC框架进行测试分析,旨在为学习者有效学习及提升编程效率提供借鉴与参考。

1 PLC结构化汇编框架模型构建

PLC结构化汇编框架可应用于汇编编程,在具体编程时,可以应用硬件抽象层、软件构件层、应用层三层逻辑架构[2],具体如图1所示。

图1 结构化汇编框架

硬件抽象层应用嵌入式系统,该系统可以将硬件与软件系统融合,有利于明确硬件与软件之间的关系[3]。在具体应用中,硬件层应用于芯片上电后复位启动与编译链接中,可以对设备外设的硬件寄存器地址和异常进行自整定处理。

软件构件层具有可重复性、规范性、嵌入性特征,是组织嵌入式系统的功能单位[4]。需要注意的是,应用构建是封装而成的,所以在编程过程中,需要调用底层驱动构件。应用层包括中断服务例程、用户主程序等。

2 PLC结构化汇编框架设计原则

基于软件工程理论的分析可知,保证结构的清晰性是PLC结构化汇编框架设计的基本点。在文件内容安排方面,应保证其具有合理性、易修改性、可扩展性等特征[5]。为保证软件开发效率与质量,在设计PLC结构化汇编框架过程中,

应遵循以下几点原则,即可复用、可维护、可移植等基本思想原则。

每款芯片都有其自身的初始化文件,为保证框架汇编的有效性,可以将这些芯片的初始文件组织在一起,避免在对某款芯片开发过程中,特意修改某一文件[6]。

PLC结构化汇编框架设计需要对芯片相关程序框架文件、软件构件文件、主程序文件等进行汇编。为提升汇编效率,提升阅读清晰度,需要将这些文件分类,并将分类号的文件组织放在统一的文件夹下,实现目录结构的合理分类。

不同的开发环境需要不同的配置,在设计PLC结构化汇编框架时,需要将所有工程配置文件,如链接文件等,组织在一起,避免在同一开发环境下,进行重复配置,并提升不同环境下查找配置文件的便利性[7]。

在设计PLC结构化汇编框架时,应根据软件商的分层思想,将软件构件分为底层驱动构件、应用构件、高层软件构件[8]。同时,在设计过程中,可以将不同层次的构件存放在不同文件夹中,保证文件的功能明确,结构清晰。另外,在制作构件过程中,应对构件的共性、特征进行分析,在提取构件属性的基础上,使构件移植到不同的环境中,最大程度避免源程文件的修改。

在编译链接过程中,源程序将产生机器码文件,用户可以通过下载该文件的方式,在目标板中运行,经过重新编译后,文件极有可能发生改变,这些新文件需要单独存储[9]。

3 PLC结构化汇编框架结构与设计

3.1 框架的结构组织

PLC结构化汇编框架的技术参数如表1所示。基于技术参数分析,根据框架模型中的相应顺序,对框架中的文件夹进行编号,为明确程序的运行情况,通常设置LED闪烁功能,加入了LED闪烁相关指示文件[10]。当主机功能不够用的情况,增加了CAN扩展功能,当主机与扩展模块通信正常时:主机处于STOP时,扩展的RUN灯间隔1.5s闪烁一次;当主机处于RUN时,扩展的RUN灯基本与主机闪烁一致;当主机与扩展模块通信当通信中断时:扩展的RUN灯熄灭,并关闭所有输出。在此基础上,添加了CAN模块扩展站点分配功能(表2)和PID功能(功能选择见表3)。

表1 PLC结构化汇编框架的技术参数

表2 CAN模块扩展站点分配

表3 PID功能选择说明

3.2 框架设计分析

在框架设计过程中,需要注重分析工程文件夹的内容情况,文件夹内除基础编程环境需要保留的文件夹外,添加编号的子文件夹的个数、名称应固定[11]。同时,框架设计应保证框架能够在不同的CPU、芯片与开发环境中移植,并对移植时修改的内容进行说明。

3.3 主程序文件设计

整体而言,PLC结构化汇编要包含名为main.s的汇编主程序文件,同时要保证汇编程序具有简洁性和清晰性。主程序文件main.s包括以下几点。

(1)工程描述:工程名、版本、日期等。若在调试过程中有新的添加内容,可以在原有基础上进行补充,目的在于便于使用,且能够提供备忘信息。

(2)总头文件:对头文件、宏定义(主程序文件中)等进行声明[11]。

(3)主程序:本框架中,将主程序设计为初始化与主循环两部分。其中,主循环代表的是程序工作循环。在实际运行中,可以根据实际需求进行设计,但程序段不宜过长,具体功能需要在调试后实现。

(4)内部直接调用子程序:若存在不能单独存RAM的子程序,可以存放在内部直接调用子程序中[11]。若有多个子程序,需要单独存在外部Flash,并进行独立校验。

(5)外部子程序:若外部子程序使用的是独立存RAM的子程序,可以使用“.include”包含[12]。

(6)程序加密:下载程序时自动读取ARM Cortex-M4芯片与外部Flash自带的ID号,并且进行无序打散,从二进制转换成十六进制,无序存放在ARM 芯片与Flash的某些位置,再次上电后,系统自动验证该配套ID号。

4 PLC结构化汇编框架测试

首先,在开发环境中导入汇编框架,创建需要测试的工程内容,并调用GPIO构件,实现LED灯闪烁功能[12]。其次,根据上述主程序的设计方法编制主程序。最后,将测试工程编译链接后,下载到目标板上,重新通电运行,能够观察到LED灯间隔闪烁,RS485、RS232、CAN通信正常,且运行稳定。通过测试结果分析可知,PLC结构化汇编框架规范、有效,能够为微处理器深层次的应用开发和汇编语言研究提供便利途径。

5 结语

本研究主要介绍了基于ARM Cortex-M4的PLC结构化汇编框架,设计了层次性框架模型,阐述了框架设计原则,并对设计进行详细分析。通过框架测试,结果表明框架具有实用性,可以提升汇编程序的可移植性,并能够降低相关人员学习基于ARM Cortex-M4-PLC结构化汇编程序的难度,具有现实应用价值。

猜你喜欢
主程序子程序文件夹
自动升级程序在船舶监测系统中的应用
Fast Folders,让你的文件夹四通八达
浅谈数控铣削技术代码程序的嵌套方式研究
电控冰箱软件模块化设计
摸清超标源头 大文件夹这样处理
调动右键 解决文件夹管理三大难题
时光倒流 换回PotPlayer老图标
浅谈子程序在数控车编程中的应用
不容忽视的空文件夹
子程序在数控车加工槽中的应用探索