基于单片机的CNG加气控制系统的抗干扰技术
2014-05-11崔凤新廖明燕
崔凤新,廖明燕
(1.集美大学诚毅学院,福建 厦门 361021;2.中国石油大学,山东 青岛 257061)
单片机的电气干扰可谓无所不在,例如电磁干扰、电源干扰、接插件接触不良干扰等等,要排除这些问题,最佳方案是提升单片机系统的抗干扰等级,不过在已经成型了的电路板中,通过软件方案提升抗干扰等级也是一个可行的和较好的解决方法。
1 CNG加气控制系统
CNG加气环境中的防爆等级要求非常高,人机交互控制系统必须做到本安级别,对电路板中的电容和电感都有严格的控制标准,要提升抗干扰等级显得非常困难。同时在众多的引线和人机交互设备 (键盘、CPU卡读卡器、液晶)等,都是干扰的来源地。
在中石化要求的CNG加气系统中,必须支持当前人民银行发布的PBOC金融CPU卡规范,在CPU卡操作中,灰锁之后的CPU卡如果没有计算出解扣签名GMAC,意味着这张卡就被灰锁了,然而在单片机受到干扰时,程序可能会获得一些错误数据,例如某些字节变化了,或者加气机单片机与卡机之间的通讯无法正常返回或者无法正常获取,因而系统就无法继续执行了,同时由于安全上的要求,GMAC无法重新计算,一旦这个时刻发生这样问题,意味着这张卡就无法被解灰,从而系统就无法正常运行。
2 解决方案
要解决这个问题,必须先做一个假设,把系统拆分为各个功能模块,相互之间没有关联的模块就必须认定其运行时可靠的可信任的,这个假设很重要,因为在软件层面解决问题是不能一锅端。也就是加气机控制系统分为电源、控制系统、CPU卡读写器、CPU卡、液晶、键盘、电磁阀等功能模块。
在受到干扰时,各个单元的表现各不一样,针对液晶显示来说,系统会不断刷新液晶,干扰过去了就正常了;针对键盘来说,受到干扰时键盘有可能失效,干扰后由人工重新操作即可,系统仅需要在逻辑上不怎么表现出来即可,另一方面是键盘操作的时候,一般都是系统空闲的时候,因此干扰产生的负面影响不大;单片机与卡机的通讯都是发生在有业务产生的时候,并且CPU卡的某些操作有着不可重复的限制,因此受到干扰的影响最大,解决干扰问题首要解决的问题就是这个问题。
3 交互式通讯协议
从软件层面解决单片机与卡机之间的通讯问题的办法就是制定一个完善的通讯协议。首先,每条通讯指令的CRC或者BCC校验已经是所有设备通讯中的必备,而且目前来说在不增加成本的前提下也没有见到比CRC或者BCC校验更加完善的校验机制。因此在假设中必须认定通过了CRC或者BCC校验的指令就是被完整接收了的指令。从系统与卡机之间的交互中,最敏感的问题是某些步骤被执行了没有返回,或者某些步骤没有被执行,而单片机对这个状态并不清楚,因此让卡机中增加查询指令是最佳选择。也就是系统在超时没有接收到卡机指令之时,通过查询卡机的状态来判断系统真正执行的步骤状态。
规划卡机状态查询涉及指令如下:
上位机发送本条指令,卡机接收到后,首先判断上次接收指令有没有执行,执行的对不对,如果没有执行,卡机返回状态字节0x6A;如果执行成功,返回0x59并上次指令执行的结果数据;如果执行错误,返回0x4E。
图1 卡机状态查询程序流程图
从系统与卡机之间的交互中,最敏感的问题是某些步骤被执行了没有返回,或者某些步骤没有被执行,而单片机对这个状态并不清楚,因此让卡机中增加查询指令是最佳选择。也就是系统在超时没有接收到卡机指令之时,通过查询卡机的状态来判断系统真正执行的步骤状态。卡机状态查询程序流程如图1所示。
重读之后返回的数据就是之前没接收到的数据,因此可以直接送入之前的程序处理流程继续运行。
4 结束语
通过系统日志分析,在使用本方法之前,通讯错误发生概率为千分之十五,使用本方法之后,通讯错误发生概率为万分之五,大大降低了锁卡的数量,系统稳定性得以提高。在工程实践中,在提高硬件系统抗干扰能力的同时,软件抗干扰设计灵活、节省硬件资源、可靠性好,细致周到地分析干扰源,硬件与软件抗干扰相结合,完善系统监控程序,设计一个稳定可靠的单片机系统是完全可行的。
[1]岳科峰.单片机控制系统的软件抗干扰技术[J].仪器仪表用户,2001,22(6):18 -19
[2]段仁君.单片机CPU抗干扰技术[J].微型机与应用,1996,(9):73 -74