基于IAP的支架控制系统程序在线升级方案.pdf
第 4 2 卷 第 2期 2 0 1 6年 2月 工矿 自 动化 I nd us t r y a nd M i ne Au t oma t i o n Vo 1 . 4 2 NO . 2 Fe b . 2 0 1 6 文 章编 号 1 6 7 1 2 5 1 X 2 0 1 6 0 2 0 0 1 2 0 4 D OI 1 0 . 1 3 2 7 2 / j . i s s n . 1 6 7 1 2 5 1 x . 2 0 1 6 . 0 2 . 0 0 3 于亚运 , 宋建成, 田慕琴 , 等. 基于 I AP的支架控制系统程序在线升级方案 [ J ] . 工矿 自动化 , 2 0 1 6 , 4 2 2 1 2 - 1 5 . 基于 l A P的支架控制系统程序在线升级方案 于亚运 , 宋建成 , 田慕琴 , 许春雨, 耿泽昕, 宋鑫, 李新胜 太原理工大学 煤矿 电气设备与智能控制山西省重点实验室,山西 太原0 3 0 0 2 4 摘 要 为 了解决 液压 支架 电液控 制 系统控 制程序 现 场 升级 不便 、 操 作 复 杂 的 问题 , 提 出 了一 种 基 于 I AP 技术的系统程序在线升级方案 , 建立 了基于三级 网络通信结构的程序在线下载模式, 由防爆计算机提取程序 代码 , 并发送 至端 头控 制 器 , 再 由端 头控制 器对 每一 台支架控 制 器进 行程 序 升级 。针 对煤矿 井 下复 杂的 电磁 环 境 , 在 I AP技 术 的基础 上增 加 了 X RAM 存 储 环节和 数据 校验 环 节 , 避 免 了由于数 据通 信错 误 而 造成 软 件 升级失败的问题 , 提高了程序在线升级的可靠性, 并基于 P o we r B u i l d e r 开发平台开发 了一套 HE X文件代码 处理软 件 , 实现 了程序 代码 的 自动提取 。 关键 词 液压 支架 ;支 架控 制 器 ; I AP;在线 升级 ; R S 4 8 5总 线 中图分类 号 TD3 5 5 . 4 文 献标 志码 A 网络 出版时 间 2 0 1 6 0 1 2 6 1 5 4 0 网络 出 版地址 h t t p / / ww w. c n k i . n e t / k c ms / d e t a i l / 3 2 . 1 6 2 7 . TP . 2 0 1 6 0 1 2 6 . 1 5 4 0 . 0 0 3 . h t ml Onl i n e up g r a de s c he me o f s o f t wa r e o f h y d r a u l i c s u pp o r t s c o n t r o l s y s t e m ba s e d o n I AP YU Ya y u n, S ONG J i a n c h e n g,TI AN Mu q i n ,XU C h u n y u , GENG Z e x i n, SONG Xi n,LI Xi ns he ng S h a n x i Ke y La b o r a t o r y o f Mi n i n g El e c t r i c a l E q u i p me n t a n d I n t e l l i g e n t C o n t r o l , Ta i y ua n Uni v e r s i t y of Te c hno l o gy,Ta i yu a n 0 3 00 2 4,Ch i na Ab s t r a c t I t i s v e r y c o mp l e x a n d i n c o n v e n i e n t t o u p d a t e a p p l i c a t i o n s o f t wa r e o f h y d r a u l i c s u p p o r t c o n t r o l s y s t e m i n u n d e r g r o u n d wo r k i n g f a c e .I n o r d e r t o s o l v e t h e p r o b l e m ,a s c h e me o f o n l i n e u p g r a d e ba s e d o n I AP wa s d e s i gn e d,a nd a n o nl i n e d o wnl o a d m o d e o f pr o g r a m s o ur c e c o de s b a s e d o n t h r e e s t a ge c o mmu n i c a t i o n s t r u c t u r e wa s p r o p o s e d.Th e c o d e i s e x t r a c t e d b y e x p l o s i o n - p r o o f c o mp u t e r a n d s e n t t o t h e s e r v e r ,t he n a l l t he s upp o r t c o nt r o l l e r s a r e upg r a d e d by t he s e r ve r .Fo r a da pt i n g t o u nde r gr o un d c o m p l e x e l e c t r o m a g ne t i c e nv i r o nme n t, t h e XRAM s t or e l i n k a nd d a t a v a l i d a t i on l i nk a r e c o mbi n e d t o i m p r ov e r e l i a bi l i t y o f onl i ne up gr a d e, wh i c h c a n a v o i d t he pr o bl e m of up gr a d e f a i l ur e c a u s e d b y c o mm u ni c a t i on e r r o r .A s e t o f HEX f i l e c o d e p r o c e s s i n g s o f t wa r e wa s d e v e l o p e d b a s e d o n P o we r Bu i l d e r t o a c h i e v e a ut o ma t i c c o de e x t r a c t i o n of s o f t wa r e. Ke y wo r d s h y d r a u l i c s u p p o r t s ;s u p p o r t c o n t r o l l e r ;I AP;o n l i n e u p g r a d e ;RS 4 8 5 b u s 0 引言 液压支架控制 系统作为综采 工作 面的核心设 备 , 是煤矿高产高效开采 的重要保 障。有 时由于生 产工况或采煤工艺改变 , 要求控制程序也要有所改 变 , 这就必须要对液压支架控制系统的软件进行升 级 。但是液压支架控制 系统设备数量庞大 , 并且井 下环境特殊 、 安全要求高, 井下设备不允许带电开启 外壳 , 从而使得通过下载器对设 备的 MC U 一一进 行 程序 更新 已不 再 适 用 。因此 , 需 要 采 用 在线 升级 收稿 日期 2 0 1 5 1 0 0 8 ; 修回 日期 2 0 1 5 1 1 2 5 ; 责任编辑 胡娴 。 基金项 目 国际科技合 作专项项 目 2 0 1 3 DF A7 0 7 5 0 ; 山西省重大科技专项项 目 2 0 1 1 1 1 0 1 0 2 4 。 作者简介 于亚运 1 9 9 0 -- , 男 , 河北保定人 , 硕士研究生 , 现主要从事煤 矿电气设备和智能控制技术研究工作 , E ma i l 2 4 7 9 7 2 6 3 9 q q . c o m。 2 0 1 6年第 2期 于亚运等 基 于 I AP的支架控制 系统程序在线升级方案 1 3 的方式对液压支架控制 系统的设备程序 进行 自动 更 新 。 德 国的 液压 支 架 控 制设 备 因其 技 术先 进 、 产 品 普及性高等优点而被广泛应用, 其设备的程序在线 下载方式速度快 、 效率高 , 但技术保密 , 不对外公开 。 我 国对液压支架 电液控制技术的研究起步较晚 , 但 近年来一些 国内公司对该项技术 的研究进展较快 , 在程序在线下载方面也有一定 的研究 , 但是仍需要 人工将特制 的下载器带到井下才能对系统设备进行 程序升级 , 操作依然很不方便 。 常用 的在 线 升 级 方 式 分 为 在 系 统 编 程 I n S y s t e m P r o g r a m,I S P 和 在 程 序 编 程 I n Ap p l i c a t i o n P r o g r a m, I AP 。I S P技 术 通 过 单 片 机 内部的 B o o t 程序和 串行接 口对单片机 F l a s h进行 编程 , 但是需要外部触发条件 , 仍需要拆开控制器外 壳对其进行机械性操作 , 所 以这种方式不适用 于液 压支架控制 系统 的程序升级_ 1 ] 。I AP技术直接调 用在线升级程序对单片机 内部 F l a s h进行编程 , 不 需 要 进 行 机 械 性 操 作 , 也 不 需 要 开 启 控 制 器 外 壳[ 3 ] 。因此 , 本文基 于 I AP技术设计 了液压支架 控 制 系统用 户程 序 在 线 升 级 方案 , 并 针 对井 下 复杂 的 电磁 环境 , 在 I AP技 术 的基 础上 增 加 了抗 干扰 措 施 , 以提高程序在线升级的稳定性和可靠性 。 1 液压 支 架控 制 系统 组成 现代化综采工作面的 自动化生产是煤矿 自动化 领 域 的发展 方 向 , 而 液 压 支 架 控 制 系 统 的 自动 化 是 保证生产 自动化 的首要条件 。参考文献E 5 ] 中研究 的液压支架控制系统可实现生产 过程 la动化 , 它采 用 3级 网络通信结构 , 从上到下依次为工作 面巷道 防爆计 算机 、 端 头控 制器 和支 架 控 制器 , 3级 网 络之 间的通信采 用 R S 4 8 5总线 。系统通信 结构如 图 1 所示。其 中, 防爆 计 算 机 作 为 中央 监 测 层 , 通 过 RS 4 8 5总线 1与端头控制器进行 一对一 主从通信 。 端头控制器作为系统集控层 , 通过 R S 4 8 5总线 2与 支 架控 制器 进行 一 对多 主从 通信 __ 6 。 ] 。 端头控制器 和支架控 制器均 以 C 8 0 5 1 F 0 2 0作 为主控 C P U, 具 有 人 机 交互 界 面 和通 信 模 块 , 并 且 扩展了一个 3 2 k B外部存储器 。其 电路结构如 图 2 所 示 。 对系统程序进行升级 , 需要对端头控制器 和所 有支架控制器的主控 C P U进行程序在线升级。虽 然 C 8 0 5 1 F 0 2 0是一款具有 I AP能力的芯片, 但 内部 没有 B o o t L o a d e r 程 序 , 所 以需 要 用 户 自 己编 写 工作面巷道防爆计算机 支架控制器 支架控制器 图 1 液压支架控制 系统通信结构 单片机最小系统 ◆ R S 4 8 5总线 1 键盘 电路 主控 C P U R S 4 8 5 总线 2 C8 0 5 1 F 0 2 0 显 示 电 路 “ -. -t 3 2 k B X R A M 图 2 端头控制器和支架控制器 电路结构 F l a s h装入程序 。另一方 面, C 8 0 5 1 F 0 2 0的程序 编 写软件环境 为 S i l i c o n L a b o r a t o r i e s I D E, 生成 的程 序代码为 I n t e l HE X f i l e文件 , 但 HE X文件中的数 据并不 完 全 是 程 序 代 码, 不 能 够 直 接 用 于 C P U 升级 。 针对 上 述 问题 , 本 文 提 出 了 如 下 升 级 方 案 首 先 , 通过工 作 面 巷 道 防爆 计 算 机 将 HE X文 件 中 的 程序代码提取出来并进行整理; 然后 , 工作面巷道防 爆计算机通过 RS 4 8 5总线 1将新 的程序代码 发送 给端头控制器 ; 接着 , 端头控制器对程序进行判断 , 若为端头控制器程序 , 则对其 自身 C P U 进行 升级 , 若为支架控制器程序, 则 由端头控制器通过 R S 4 8 5 总线 2 将升级代码发送给各支架控制器 , 进而完成 液压 支架 控制 系统 的软 件在 线 自动升级 。 2程序代 码 的 自动提 取 2 . 1 HEX 文件分 析 I n t e l HE X f i l e 文 件 名 .h e x 是 由 S i l i c o n L a b o r a t o r i e s I D E软件开发环境 自动生成 的程序代 码文件 , 该文件 由若干个具有 固定格式 的 HE X记 录组成。每个 HE X记 录包含 6部分 , 依次为“ ” , “ L L ” , “ AAAA” , “ TT ” , “ D D⋯” , “ C C ” 。“ ” 表 示一 个记录的开始 ; “ L L ” 表示一个记录中程序代码的数 量 ; “ AAAA” 表示该记录 中的程序代码写 入 F l a s h 的起始地址 ; “ T T” 表示该记录的数据类 型, O O代表 代码记录, 0 1 代表文件结束 , 0 2代表扩展段地址记 录 , O 4 代表扩展线性地址记录; “ D D⋯” 表示记录中 的程序代码 , 一个记录可以包含的 1 6进制字节数即 为“ L L ” 中的值 ; “ C C ” 表示该记录的校验域[ 8 ] 。 1 4 工矿 自动 化 2 0 1 6年 第 4 2卷 虽然各条记录均有程序代码和代码存放地址 , 但相邻记录的地址有时不连续 , 且各记 录中的有效 数据长度也并不相同。若 由单片机直接接收各条记 录 , 然后按照记录的要求将程序代码存入 F l a s h , 处 理起来 比较复杂 , 而且对一些不必要的数据也需要 进行传输 , 程序升级时还需要再次处理 , 影响了程序 升 级速度 。为 了解 决 该 问题 , 本 文 首先 通 过 防 爆 计 算机提取出 HE X文件 中的程序代码 , 然后 再将代 码 发送 给端 头控制 器 。 2 . 2 HEX 文件代 码提 取 通过 P o we r B u i l d e r 软件开发平 台编写了 HE X 文件处理软件 , 程序代码提取过程如下 1 对 HE X文 件 进 行 排序 。防爆 计 算 机 按 照 HE X文件 中各条记录的起始地址从低到高对记录 进 行排序 。 2 补 齐 缺 失 的 程 序 代 码 。 通 过 数 据 长 度 L L 计算出本条记录的数据结束地址 , 然后将结束 地 址与 下一 条记 录的开 始地 址按 1 6 进 制相 减 , 如果 结果为零 , 说明该条记录与下一条记录紧密连接 ; 如 果结果不为零 , 则说 明 2条记录之间无有效程序代 码 。由于 F l a s h中无代码时默认为“ F F ” , 所 以将记 录中缺失 的“ F F ” 补齐 , 相减结果 即为需要 补齐 的 个 数 。 3 提取 下一条 记 录的程 序代 码 , 重 复步骤 2 , 直 到提取 完所 有记 录 中的程 序代码 。 4 将处理后 的程序代码全部放人数据库 中, 准 备 向端 头 控制器 发送 程序 代码 。 3 程序 代码 在线 下载 模式 端头控制器和支架控制器的程序代码数据量大 约 为 1 5 k B, 数 据量 大且数 量 不 固定 , 需 要采 取 措 施 保证代码传输稳定 、 可靠 。 3 . 1 程 序代 码 的检 验 传统 的 I AP在线 升级方 式直接将 串 口接收到 的程序代码写入 F l a s h中, 进而完成 程序 的升级。 但是由于煤矿井下具有大量大功率机 电设备, 导致 井下电磁环境恶劣, 通信系统也经常受到电磁干扰 的影响。如果在程序升级过程中, 通信受到干扰 , 数 据出现错误或数据传输 中断 , 则会将错误 的程序代 码写入 F l a s h中或 引起程序升级 中断 , 这都会造成 旧程序擦除后新程序 升级失败 , 从而引起全系统 的 瘫 痪 。 为了解决这一问题 , 本文在传统的 I AP升级方 式 的基础上增加了 XR AM 存储环节和数据校验环 节 。首先将接收 的程序代码存储 到 XR AM 中, 然 后对接收到的代码进行 C RC校验 , 如果 C R C校验 正确, 则进入 B o o t L o a d e r程序 ; 如果 C R C校验失 败 , 则不 对 C P U 进 行 升 级 , 保 留原 程 序 , 避 免 造 成 系统瘫痪 。 3 . 2 程 序代 码发 送流程 防爆计算机与端头控制器发送程序类似 , 下面 仅介绍防爆计算机发送程序流程 , 如图 3所示 。 图 3代 码 发 送 程 序 流 程 首 先需要 对操 作 者 进 行权 限认 证 , 只允 许 具 有 权限的开发人员使用程序在线升级功能。发送程序 代码时 , 防爆计算机首先 向端头控制器发送升级命 令代码和数据规模 , 端头控制器在接收完命令代码 和数据规模后 , 向防爆计算机进行应答 , 告知防爆计 算机已准备好接收程序代码 ; 接着 , 防爆计算机开始 下发程序代码 ; 发送完所有的程序代码后, 防爆计算 机发送 C R C校验码 , 端头控制器接收 C R C校验码 后与 自身计算的校验码进行 比较。若 C R C校验正 确 , 则进人 B o o t L o a d e r 子程序 或支架代 码发送子 程序; 如果 C R C校验错误 , 则通过声光报警来提示 通信错误 , 程序结束。 4 用户程序升级步骤 为 了实 现用 户 程 序 区 F l a s h的重 新 装 载 , 需 要 编写 B o o t L o a d e r 程序。由于程序升级时需要擦除 旧的用户 程序 , 而 B o o t L o a d e r 不 能擦 除, 所 以将 B o o t L o a d e r 程序 与用 户程序 分离 】 。B o o t L o a d e r 程序包括 F l a s h擦除和 F l a s h写入 2个部分 。 程序升级时 , 首先对原有用户程序进行擦除 , 然 后才能写入新 的用户程序, 具体擦除步骤如下 1 将 F L S C L寄存 器 中的 F I WE位置 为 1 , 允