公务员期刊网 论文中心 正文

输送机控制器在线程序升级方案设计

前言:想要写出一篇引人入胜的文章?我们特意为您整理了输送机控制器在线程序升级方案设计范文,希望能给你带来灵感和参考,敬请阅读。

输送机控制器在线程序升级方案设计

摘要:针对目前煤矿井下用带式输送机控制器现场程序升级不方便、操作繁琐等问题,提出了一种基于IAP和CAN总线的在线远程程序升级方案。建立了基于CAN总线的网络结构,首先由防爆计算机将程序文件通过CAN总线下传到带式输送机控制器,再通过控制器内部的Bootloder启动程序将目标代码写入指定的存储器区域。介绍了升级网络的整体结构;分别介绍了升级程序结构以及流程;通过实验验证功能完全可行,为矿井同类型控制器的程序更新提供了思路。

关键词:IAP;带式输送机控制器;CAN

0引言

随着自动控制技术的不断发展,煤矿井下以单片机为CPU的带式输送机控制器越来越多。随着矿井下工况的不断变化或者是使用环境的不同,需要对矿井带式输送机控制器进行程序改进。但是矿井下环境复杂,所有的控制器都安装在防爆外壳内。井下设备在上电时是不允许开启外壳的,所以传统的程序升级方式例如JTAG和ISP等是无法在井下使用的,因此采用在线的方式对程序进行升级。针对此问题本文设计了一种利用CAN总线远程对嵌入式处理器进行程序升级的方法。整体的程序更新流程是将程序存储到U盘中,通过防爆计算机将程序读出然后通过CAN总线远程传输到目标CPU上,CPU在接收到程序数据后利用自带的IAP功能程序将目标程序存储到指定位置,然后启动目标程序。

1系统结构和IAP实现原理

1.1控制系统结构

控制系统由两级结构构成。上层为防爆计算机,主要功能是远程控制、参数显示以及程序升级等;底层是带式输送机控制器,其主要功能是将传感器采集到的信号收集处理后上传,同时发出控制命令,或者是接收上位机发送的控制命令并执行。这两级结构之间是通过CAN通信的方式实现信息交互的。1.2IAP实现原理在应用编程(IAP),其功能特点是能够利用预先下载好的启动程序对控制器的Flash区域进行在线编程。带式输送机控制器CPU的Flash区域是由2部分组成的,分别是RWW(可以同时读写的区域)以及NRWW(不可以同时读写的区域)。IAP的工作原理是首先由用户编写引导程序,然后利用JTAG或者是ISP方式将其下载到微控制器的BootLoader中。而根据BootLoader特点可知其位于不可以同时读写的区域中。在BootLoader区域中不存在引导程序则系统上电后是按照方式1进行启动的。方式2是BootLoader总存在引导程序,并触发时的系统启动过程。对于产品来说,BootLoader中的引导程序必须在出厂前下载到存储器中。

2带式输送机控制器硬件结构

带式输送机控制器使用的CPU为NXP公司设计生产的LPC1788微控制器。该CPU为32位处理器,主频120MHz具有优秀的处理能力,经过多年的工业应用系统级的BUG基本没有,微控制器设计的最小系统采用JTAG接口作为下载接口。预留的BootLoader区域大小为45kB。同时由于其内部集成了IAP和CAN通信接口完全支持CANV2.0B技术规范,最高通信速率能够达到1Mbps,所以非常适合本设计使用。外部使用的CAN总线收发器芯片为TJA1050T,该芯片是由PHILIP公司研制生产的高性能、高集成度的CAN芯片。该芯片在本系统中的主要作用是协议控制和物理总线接口,能够提供差动的收发性能。为了更好地控制程序的升级,在硬件系统中加入了2个按键,1个用于控制系统复位,1个用于控制程序升级。

3IAP相关程序设计

3.1带式输送机控制器IAP程序设计

如前文所述,LPC1788微控制器的内核在启动时可以利用地址的不同实现从IAP程序到APP程序之间的跳转。IAP升级流程如图3所示。程序启动后如果没有升级的需求也就是控制程序升级的按键没有按下,则程序便跳转到APP程序中执行;如果有升级需求,则进入到IAP引导程序中,首先是将CAN通信初始化,然后开始程序数据的下载也就是Flash的擦除和写入。完全下载完毕后程序指针PC便跳入到APP程序中执行。为了防止程序更新失败,本设计中加入了判别方法,如果程序指针指向的地址是RAM地址,说明程序下载成功,可以继续执行。具体代码:if(((*(__IOuint32_t*)ApplicationAddress)&0x2FFE0000)==0x20000000);其中,ApplicationAssress指针变量地址里存放的是用户APP程序的入口地址。接收初始化程序:intReceive_Init(void){targetInit();/*初始化目标板,切勿删除*/pinInit();/*引脚初始化*/IAP_Init();CAN_Init();/*初始化CAN*/messageSend();/*发送提示信息*/memset(GucIapTmp,0,4096);/*缓冲区清零*/}当所有的程序初始化完成以后便可以接收目标程序,将其存放到指定的Flash区域里。本文设计使用的编程软件是KeilMDK5。由于MDK5自身编译生产的是HEX文件,所以需要调用fromelf.exe程序来使其转化为bin格式的文件。然后下载到U盘中。

3.2程序代码发送流程

程序升级时首先需要认证操作人员的权限,以免误操作造成事故的发生。升级代码时首先要在控制器上操作,使其处于升级状态。然后在防爆计算机相应软件中选择需要下载的bin文件。然后依据CAN总线的通信协议进行发送,为了避免发送错误,本系统设计了校验机制,每发送1帧数据必须在收到反馈信号后才发送第2帧,否则就重新发送直到发送成功为止。当发送完毕后将接收标志位取消。

4调试与验证

在实验室条件下对带式输送机控制器程序进行了调试。通过“选择程序”按钮从电脑硬盘中选中需要的bin文件,然后点击下载便可以将程序下载到目标控制器中。现场测试时升级1台控制器的程序仅需要7s,完全能够符合矿井生产的需求。

5结语

本文设计了一种基于IAP的矿井带式输送机控制器在线升级程序的方法。通过此方式可以在不打开防爆外壳的前提下远程对目标控制器进行程序升级,在提高安全性和可靠性的基础上降低了维护成本,为矿井同类型控制器设计提供了经验。

参考文献:

[1]汪俊,张彦林,张伟先.基于CAN网络的IAP在线更新研究与应用[J].技术与市场,2014,21(5):33,35.

[2]郭玲.基于STM32的IAP程序更新方式[J].黑龙江科技信息,2016(18):169-170.

[3]孙晓晔,王程,成彬.基于TFTP协议实现STM32的IAP[J].微型机与应用,2016,35(7):76-78.

[4]雷卫延,敖振浪,周钦强.基于STM32的在应用编程(IAP)开发[J].电子测量技术,2015,38(5):62-66.

[5]于亚运,宋建成,田慕琴,等.基于IAP的支架控制系统程序在线升级方案[J].工矿自动化,2016,42(2):12-15.

[6]蒋春悦,田慕琴,宋建成,等.自动化工作面液压支架控制器设计[J].工矿自动化,2014,40(9)1-5.

[7]杨世华,宋建成,田幕琴,等.基于双RS485总线的液压支架运行状态监测系统开发[J].工矿自动化,2014,40(8):1-5.

[8]孙继平,刘毅,樊京.煤矿井下高频电磁骚扰工程计算模型[J].煤炭学报,2012,37(12):2118-2122.

[9]刘根贤,龚雪容,生拥宏,等.基于高频RFID的微处理器IAP技术[J].电子技术应用,2013,39(4):29-31.

作者:武林海 单位:晋中市煤炭规划设计研究院