于亚运, 宋建成, 田慕琴, 许春雨, 耿泽昕, 宋鑫, 李新胜
(太原理工大学 煤矿电气设备与智能控制山西省重点实验室, 山西 太原 030024)
摘要:为了解决液压支架电液控制系统控制程序现场升级不便、操作复杂的问题,提出了一种基于IAP技术的系统程序在线升级方案,建立了基于三级网络通信结构的程序在线下载模式,由防爆计算机提取程序代码,并发送至端头控制器,再由端头控制器对每一台支架控制器进行程序升级。针对煤矿井下复杂的电磁环境,在IAP技术的基础上增加了XRAM存储环节和数据校验环节,避免了由于数据通信错误而造成软件升级失败的问题,提高了程序在线升级的可靠性,并基于PowerBuilder开发平台开发了一套HEX文件代码处理软件,实现了程序代码的自动提取。
关键词:液压支架; 支架控制器; IAP; 在线升级; RS485总线
液压支架控制系统作为综采工作面的核心设备,是煤矿高产高效开采的重要保障。有时由于生产工况或采煤工艺改变,要求控制程序也要有所改变,这就必须要对液压支架控制系统的软件进行升级。但是液压支架控制系统设备数量庞大,并且井下环境特殊、安全要求高,井下设备不允许带电开启外壳,从而使得通过下载器对设备的MCU一一进行程序更新已不再适用。因此,需要采用在线升级的方式对液压支架控制系统的设备程序进行自动更新。
德国的液压支架控制设备因其技术先进、产品普及性高等优点而被广泛应用,其设备的程序在线下载方式速度快、效率高,但技术保密,不对外公开。我国对液压支架电液控制技术的研究起步较晚,但近年来一些国内公司对该项技术的研究进展较快,在程序在线下载方面也有一定的研究,但是仍需要人工将特制的下载器带到井下才能对系统设备进行程序升级,操作依然很不方便。
常用的在线升级方式分为在系统编程(In System Program,ISP)和在程序编程(In Application Program,IAP)。ISP技术通过单片机内部的Boot程序和串行接口对单片机Flash进行编程,但是需要外部触发条件,仍需要拆开控制器外壳对其进行机械性操作,所以这种方式不适用于液压支架控制系统的程序升级[1-2]。IAP技术直接调用在线升级程序对单片机内部Flash进行编程,不需要进行机械性操作,也不需要开启控制器外壳[3-4]。因此,本文基于IAP技术设计了液压支架控制系统用户程序在线升级方案,并针对井下复杂的电磁环境,在IAP技术的基础上增加了抗干扰措施,以提高程序在线升级的稳定性和可靠性。
现代化综采工作面的自动化生产是煤矿自动化领域的发展方向,而液压支架控制系统的自动化是保证生产自动化的首要条件。参考文献[5]中研究的液压支架控制系统可实现生产过程自动化,它采用3级网络通信结构,从上到下依次为工作面巷道防爆计算机、端头控制器和支架控制器,3级网络之间的通信采用RS485总线。系统通信结构如图1所示。其中,防爆计算机作为中央监测层,通过RS485总线1与端头控制器进行一对一主从通信。端头控制器作为系统集控层,通过RS485总线2与支架控制器进行一对多主从通信[6-7]。
端头控制器和支架控制器均以C8051F020作为主控CPU,具有人机交互界面和通信模块,并且扩展了一个32 kB外部存储器。其电路结构如图2所示。
对系统程序进行升级,需要对端头控制器和所有支架控制器的主控CPU进行程序在线升级。虽然C8051F020是一款具有IAP能力的芯片,但内部没有Boot Loader程序,所以需要用户自己编写Flash装入程序。另一方面,C8051F020的程序编写软件环境为Silicon Laboratories IDE,生成的程序代码为Intel HEX file文件,但HEX文件中的数据并不完全是程序代码,不能够直接用于CPU升级。
图1 液压支架控制系统通信结构
图2 端头控制器和支架控制器电路结构
针对上述问题,本文提出了如下升级方案:首先,通过工作面巷道防爆计算机将HEX文件中的程序代码提取出来并进行整理;然后,工作面巷道防爆计算机通过RS485总线1将新的程序代码发送给端头控制器;接着,端头控制器对程序进行判断,若为端头控制器程序,则对其自身CPU进行升级,若为支架控制器程序,则由端头控制器通过RS485总线2将升级代码发送给各支架控制器,进而完成液压支架控制系统的软件在线自动升级。
2.1 HEX文件分析
Intel HEX file(文件名.hex)是由Silicon Laboratories IDE软件开发环境自动生成的程序代码文件,该文件由若干个具有固定格式的HEX记录组成。每个HEX记录包含6部分,依次为“:”, “LL”,“AAAA”,“TT”,“DD…”,“CC”。“:”表示一个记录的开始;“LL”表示一个记录中程序代码的数量;“AAAA”表示该记录中的程序代码写入Flash的起始地址;“TT”表示该记录的数据类型,00代表代码记录,01代表文件结束,02代表扩展段地址记录,04代表扩展线性地址记录;“DD…”表示记录中的程序代码,一个记录可以包含的16进制字节数即为“LL”中的值;“CC”表示该记录的校验域[8]。
虽然各条记录均有程序代码和代码存放地址,但相邻记录的地址有时不连续,且各记录中的有效数据长度也并不相同。若由单片机直接接收各条记录,然后按照记录的要求将程序代码存入Flash,处理起来比较复杂,而且对一些不必要的数据也需要进行传输,程序升级时还需要再次处理,影响了程序升级速度。为了解决该问题,本文首先通过防爆计算机提取出HEX文件中的程序代码,然后再将代码发送给端头控制器。
2.2 HEX文件代码提取
通过PowerBuilder软件开发平台编写了HEX文件处理软件,程序代码提取过程如下:
(1) 对HEX文件进行排序。防爆计算机按照HEX文件中各条记录的起始地址从低到高对记录进行排序。
(2) 补齐缺失的程序代码。通过数据长度(LL)计算出本条记录的数据结束地址,然后将结束地址与下一条记录的开始地址按16进制相减,如果结果为零,说明该条记录与下一条记录紧密连接;如果结果不为零,则说明2条记录之间无有效程序代码。由于Flash中无代码时默认为“FF”,所以将记录中缺失的“FF”补齐,相减结果即为需要补齐的个数。
(3) 提取下一条记录的程序代码,重复步骤(2),直到提取完所有记录中的程序代码。
(4) 将处理后的程序代码全部放入数据库中,准备向端头控制器发送程序代码。
端头控制器和支架控制器的程序代码数据量大约为15 kB,数据量大且数量不固定,需要采取措施保证代码传输稳定、可靠。
3.1 程序代码的检验
传统的IAP在线升级方式直接将串口接收到的程序代码写入Flash中,进而完成程序的升级。但是由于煤矿井下具有大量大功率机电设备,导致井下电磁环境恶劣,通信系统也经常受到电磁干扰的影响。如果在程序升级过程中,通信受到干扰,数据出现错误或数据传输中断,则会将错误的程序代码写入Flash中或引起程序升级中断,这都会造成旧程序擦除后新程序升级失败,从而引起全系统的瘫痪[9]。
为了解决这一问题,本文在传统的IAP升级方式的基础上增加了XRAM存储环节和数据校验环节。首先将接收的程序代码存储到XRAM中,然后对接收到的代码进行CRC校验,如果CRC校验正确,则进入Boot Loader程序;如果CRC校验失败,则不对CPU进行升级,保留原程序,避免造成系统瘫痪。
3.2 程序代码发送流程
防爆计算机与端头控制器发送程序类似,下面仅介绍防爆计算机发送程序流程,如图3所示。
图3 代码发送程序流程
首先需要对操作者进行权限认证,只允许具有权限的开发人员使用程序在线升级功能。发送程序代码时,防爆计算机首先向端头控制器发送升级命令代码和数据规模,端头控制器在接收完命令代码和数据规模后,向防爆计算机进行应答,告知防爆计算机已准备好接收程序代码;接着,防爆计算机开始下发程序代码;发送完所有的程序代码后,防爆计算机发送CRC校验码,端头控制器接收CRC校验码后与自身计算的校验码进行比较。若CRC校验正确,则进入Boot Loader子程序或支架代码发送子程序;如果CRC校验错误,则通过声光报警来提示通信错误,程序结束。
为了实现用户程序区Flash的重新装载,需要编写Boot Loader程序。由于程序升级时需要擦除旧的用户程序,而Boot Loader不能擦除,所以将Boot Loader程序与用户程序分离[10]。Boot Loader程序包括Flash擦除和Flash写入2个部分。
程序升级时,首先对原有用户程序进行擦除,然后才能写入新的用户程序,具体擦除步骤如下:
(1) 将FLSCL寄存器中的FLWE位置为1,允许IAP功能。
(2) 将PSCTL寄存器中的PSEE位置为1,允许Flash扇区擦除。
(3) 将PSCTL寄存器中的PSWE位置为1,允许Flash写入。
(4) 通过MOVX指令向指定扇区内的任一地址写入1个数据字节,擦除该扇区的内容。
(5) 将Flash高位地址加2,重复步骤(4),直到擦除完原有用户程序所在扇区。
擦除原有用户程序后,开始向Flash中写入新程序代码,写入步骤如下:
(1) 将代码从XRAM中取出,然后置位PSWE,允许Flash写入。
(2) 通过MOVX指令将读取的代码存入Flash的对应地址中。
(3) 改变XRAM地址和Flash地址。
(4) 重复以上3步,直到写完所有新程序代码。
(5) 程序进行软复位,程序升级完成。
在实验室对液压支架控制系统程序进行了调试。液压支架控制系统程序在线升级操作界面如图4所示。图4中代码为处理后的HEX各条记录,通过“添加程序”按钮来添加新的HEX文件。发送程序代码时,通过“发送(端头)”和“发送(支架)”按钮分别发送端头控制器新程序代码和支架控制器新程序代码。
图4 液压支架控制系统程序在线升级操作界面
在实验过程中,上位机软件提取代码速度快,15 kB代码只需2 s即可完成;数据传输高效、可靠,升级速度快,升级120台液压支架控制程序只需要15 min,平均每7.5 s升级1台,达到了设计方案的预期要求。
设计了一种基于IAP技术的液压支架电液控制系统程序在线升级方案,降低了设备调试和井下程序升级时的劳动强度,提高了系统软件升级速度。提出了一种HEX文件处理方法,并通过PowerBuilder开发了程序代码处理软件,能够简单、快速地提取程序代码,减少了中间环节,提高了代码传输效率。通过增加XRAM存储环节和数据校验环节,避免了传统IAP技术由于数据通信错误而造成软件升级失败,从而引起系统瘫痪的问题,提高了程序在线升级的可靠性。
参考文献:
[1] 万水明,强英. 基于ISP技术的可远程升级抄表模块的设计[J]. 微型机与应用,2004,23(7):43-45.
[2] 梁睿,薛雪,王崇林,等. ISP技术在AT89SX单片机中的应用[J]. 工矿自动化,2005,31(2):47-48.
[3] 唐洪富,张兴波.基于STC系列单片机的智能温度控制器设计[J]. 电子技术应用,2013,39(5):86-88.
[4] 林晓松,陈惠滨,林少芬,等.工程机械车载监测终端软件远程升级的实现[J].电子技术应用,2015,41(5):156-158.
[5] 赵龙,宋建成,田慕琴,等.综采工作面液压支架集中控制系统设计[J]. 工矿自动化,2015,41(2):9-13.
[6] 蒋春悦,田慕琴,宋建成,等.自动化工作面液压支架控制器设计[J].工矿自动化,2014,40(9):1-5.
[7] 杨世华,宋建成,田慕琴,等.基于双RS485总线的液压支架运行状态监测系统开发[J].工矿自动化,2014,40(8):1-5.
[8] 靳根,刘建忠,刘慧英,等. 用VC++实现MSC1210单片机Intel HEX文件的烧录[J]. 核电子学与探测技术,2009,29(4):825-827.
[9] 孙继平,刘毅,樊京. 煤矿井下高频电磁骚扰工程计算模型[J]. 煤炭学报,2012,37(12):2118-2122.
[10] 刘根贤,龚雪容,生拥宏,等. 基于高频RFID的微处理器IAP技术[J]. 电子技术应用,2013,39(4):29-31.
SONG Xin, LI Xinsheng
(Shanxi Key Laboratory of Mining Electrical Equipment and Intelligent Control,
Taiyuan University of Technology, Taiyuan 030024, China)
Abstract:It is very complex and inconvenient to update application software of hydraulic support control system in underground working face. In order to solve the problem, a scheme of online upgrade based on IAP was designed, and an online download mode of program source codes based on three-stage communication structure was proposed. The code is extracted by explosion-proof computer and sent to the server, then all the support controllers are upgraded by the server. For adapting to underground complex electromagnetic environment, the XRAM store link and data validation link are combined to improve reliability of online upgrade, which can avoid the problem of upgrade failure caused by communication error. A set of HEX file code processing software was developed based on PowerBuilder to achieve automatic code extraction of software.
Key words:hydraulic supports; support controller; IAP; online upgrade; RS485 bus
作者简介:于亚运(1990-),男,河北保定人,硕士研究生,现主要从事煤矿电气设备和智能控制技术研究工作,E-mail:247972639@qq.com。
基金项目:国际科技合作专项项目(2013DFA70750);山西省重大科技专项项目(20111101024)。
收稿日期:2015-10-08;修回日期:2015-11-25;责任编辑:胡娴。
中图分类号:TD355.4
文献标志码:A 网络出版时间:2016-01-26 15:40
文章编号:1671-251X(2016)02-0012-04
DOI:10.13272/j.issn.1671-251x.2016.02.003
于亚运,宋建成,田慕琴,等.基于IAP的支架控制系统程序在线升级方案[J].工矿自动化,2016,42(2):12-15.