煤矿安全监控系统设备程序升级方法讨论及实现

2013-01-26 04:24中国煤炭科工集团常州自动化研究院王启峰
电子世界 2013年5期
关键词:分站代码通讯

中国煤炭科工集团常州自动化研究院 王启峰

1.引言

目前,煤矿安全监控系统中的设备较多,一般会有分站、传感器、电源等,设备功能的增加、删除及更改绝大部分通过程序来实现性,即使通过硬件实现的也需要相应的进行程序的更改,所以不可避免的需要对系统设备的程序进行升级更换。传统的更新方式是由安装人员下到井下,将需要更新固件软件的监控主板带到井上进行程序更新,再返回到井下安装到监控点。监控分站一般距离井上监控中心十几公里,采用这种传统方式非常浪费时间,且在更换监控主板期间,由于没有监控系统煤矿作业不得不停止很长一段时间[1][2],实际上可以采取地面升级好主板,直接在进行更换的方式,可以减少监控系统停止运行的时间。但是,由于需要更换分站主板,仍然会导致控制设备的中断。另外,对传感器电源等设备的程序升级存在着同样的问题。

煤矿安全监控系统大部分设备均以单片机、ARM等微处理器为核心,都有ISP(in system programming)或IAP(in applicatin programming)接口,利用这两种接口可以对嵌入式设备灵活的进行程序升级。

2.芯片编程方式

随着科学技术的发展,多数公司新推出的单片机、ARM等处理器芯片均具有片内Flash存储器,Flash存储器具有电可擦除、无需后备电源保护数据、可在线编程等特点。其中最大的特点就是在线可编程,该特点允许处理器的内部程序可以修改Flash存储器的内容,利用这个特点,可以在设备运行过程中就可以对其内部运行参数进行修改[3]。

在线编程目前有两种实现方法:在系统编程(ISP)和在应用编程(IAP)。ISP一般是通过单片机专用的串行编程接口对单片机内部的Flash存储器进行编程,而IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将控制从一个存储体转向另一个。ISP的实现一般需要很少的外部电路辅助实现,而IAP的实现更加灵活,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件程序来编程内部存储器。

2.1 ISP

在没有应用ISP芯片烧写方法之前,向芯片内写入程序均需要把芯片从电路板上取下来,用专用的编程器写入,故芯片不能不脱离应用系统进行写入。ISP主要针对这个问题,使用JTAG或者串口(通过特定的方式激活芯片内部的Boot Loader,芯片便可以和PC或其它上位机通过串口通讯,在芯片不离开应用系统的情况下更新其内部的程序或设置)进行程序的写入操作。因此,具有ISP功能的微处理器可以不使用复杂的编程器,只通过简单的硬件电路便可以进行编程。

图1 硬件原理框图

图2 数据存储原理图

图3 按键及指示原理图

图4 电源及ISP接口原理图

图5 USB接口原理图

2.2 IAP

IAP是用户程序在运行过程中可对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通讯接口对产品中的固件程序进行更新升级。通常在用户需要实现IAP功能时,即用户程序运行中作自身的更新操作,需要在设计固件程序时编写两个项目代码,第一部分项目代码不执行正常的功能操作,只是通过某种通讯接口(如USB、UART)接收程序或数据,执行对第二部分代码的更改;第二个项目代码完成产品的所有正常功能。这两部分项目代码都同时烧录在User Flash中,当芯片上电后,首先是第一部分代码开始运行,正常运行后作出如下操作:1)检查是否需要对第二部分代码进行更新;2)如果不需要更新则转到4),如果需要更新则继续3);3)执行更新操作;4)跳转到第二部分代码执行。

图6 下载器主程序流程图

图7 软件基于VC++设计界面图

第一部分代码必须通过JTAG、ISP等手段烧写到芯片中;第二部分代码可以使用第一部分代码IAP功能烧入,也可以和第一部分代码一起烧入,之后需要更新程序时再通过第一部分IAP代码更新。

2.3 ISP与IAP的区别

ISP一般是固化到芯片中的,在设计中只要加入相关电路,通过某种触发方式即可烧写程序。在生产过程中,ISP功能是不可或缺的。但假如系统或者模块在一个非常难拆的位置或者是不可接触的位置(如藏于车身中的车载电子零部件),如果要对其升级,ISP不一定能够适用。这时需要运用IAP,编写适合的烧录程序,如使用CAN网络通信的车载电子一般都是通过CAN网络烧写升级程序的。

3.设备程序升级方式

3.1 远程升级

如果监控系统设备,使用RS-485总线、CAN总线或以太网等通信方式与计算机可以通讯,则可以利用其IAP接口实现设备程序的远程升级。《煤矿安全监控分站远程升级方案》及《矿用监控分站程序远程在线更新设计》等参考文献中均对该方法进行了描述与设计,以下将就该方法使用的场合作以解释。

正如文献1中所描述的,在通讯波特率设置为2400bps时,86KB的程序代码下载时间在12分钟左右。第一,该情况为实验室下的测试结果;第二,为了保证通讯距离的增加,部分系统的通讯波特率会调协到1200bps;第三,随着功能的增加,程序代码的大小会越来越大;第四,正常的监控系统巡检时间通讯通道不可能完全用来程序代码的升级。所以,在复杂的通讯环境、更低的波特率、更大的程序代码以及合理的通道安排的情况下,程序升级所占用的时间会大大增加。按照文献1的实验结果,在波特率为1200bps、代码86KB大小、10%的带宽用来升级代码,则设备完成程序升级所占用的时间约为12×2×10=240分钟。如此长的时间内,存在着设备由于电源原因而重启的情况,那么程序升级时间将会更加漫长。

所以,将远程升级用于具有低速率通讯接口设备的可行性不高,但是,将其应用于具有以太网等高速通讯接口的设备不失为一个好方案。

3.2 就地升级

对于不具备远程升级条件的系统设备,需要在线的就地升级,利用MCU、ARM等芯片提供的ISP功能可以完成程序的升级。此升级方法,除了设备上的硬件支持外,需要提供用于升级程序的接口设备,需要安装了配套软件的计算机,以上两点导致了不能对井下现场使用的设备进行快速灵活的升级。与在线进行程序升级相比,离线的程序下载器在将会更加适合煤矿现场。

4.离线程序下载器

4.1 下载器硬件选型及设计

处理器,由于ISP使用了设备的串口,下载器下载程序的过程即为下载通过串口与设备通讯的过程,为了下载器与设备的顺利通讯,下载器的处理器需要具有UART接口,同时具有连接程序存储的FLASH的接口,故选用体积小成本较低的51系列单片机C8051F430。由于需要存储多种设备的程序代码,FLASH芯片选用容量相对较大的串行存储芯片AT45DB321,该芯片具有32M bit的容量、SOIC8的小型 封装。为了方便、快速的将程序写入到离线下载器,下载器与计算机的接口选用了USB接口,接口芯片选用 CH372。其硬件原理框图及各部分原理图设计如图1~图5所示[4][5]。

4.2 下载器软件设计

为了达到自动下载的目的,下载器需要对目标设备进行自动识别,以完成设备对应程序的选择。下载器对设备的自动识别,可以有效的保证,下载器里的程序不会被下载到抄袭或仿制的设备里。下载器对设备的自动识别,通过程序下载前下载器与设备的通讯验证完成,当设备处理器的FLASH里没有下载过正确的程序时,设备与下载器无法通讯,即无法完成自动识别,则下载器里的程序将不会下载到设备里。为了能够在特殊情况下,对没有正确程序的设备进行升级,下载器同时设计手动升级程序功能,当上位机软件配置该下载器具有手动下载功能时,可能通过按键及指示灯的配合,手动完成设备的程序升级。下载器软件流程图如图6所示。

4.3 上位机软件设计

上位机软件主要通过USB接口与下载器的通讯,对下载器进行查询及配置,可查询及配置的内容主要包括:下载器是否有手动下载功能,设备的种类及其对应的程序,可下载的次数,ISP下载的波特率,下载器的登录密码等。软件基于VC++设计,其界面如图7所示。

5.结语

本文分析了ISP及IAP两种芯片Flash烧写方式的特点以及其使用场合,同时根据煤矿监控系统设备工作的特点,以及其程序升级常用方法,讨论了两种Flash烧写方法所适用的设备,总结出远程升级和就地升级两种升级方法。针对就地升级方法设计了离线编程器,并设计了配套的上位机软件,目前该离线编程器已经在现场多处使用,提高了监控系统设备程序升级的效率。

[1]方崇全,郭江涛,汤朝明.矿用监控分站程序远程在线更新设计[J].矿业安全与环保,2009(4):16-18,21.

[2]孙钢,朱忠常,景振兴.煤矿安全监控分站远程升级方案[J].工矿自动化,2012(3):58-60.

[3]梁睿,薛雪,王崇林,张栋梁.ISP技术在AT89SX单片机中的应用[J].工矿自动化,2005(2):47-48.

[4]张志柏,秦益霖.存储器AT45DB321C在“数字倾斜读数仪”中的应用[J].常州信息职业技术学院学报,2008(3):13-15.

[5]李兰,宁永海.基于CH372的USB数据采集系统的设计与实现[J].微计算机信息,2007(34):76-77,69.

猜你喜欢
分站代码通讯
《茶叶通讯》简介
《茶叶通讯》简介
通讯报道
佩雷兹获赛季个人首个分站冠军——2022 F1摩纳哥大奖赛
基于CAN 总线多主通信技术的监控分站设计
创世代码
创世代码
创世代码
创世代码
通讯简史