张宝升,王超,杨恒辉
(中国航空工业集团公司西安航空计算技术研究所,陕西西安,710065)
本文设计了一种基于SCI通讯的软件加载及校验方法,在加载/校验过程中对每一包数据的加载/校验地址都进行了合法性判断,保证了加载/校验的正确性;并且采用逐字校对的方法进行校验,防止了“单粒子翻转”效应和加载地址错误导致的产品工作异常。
本系统所使用的通讯协议见图1。其中S0为开始数据包,S2为加载/校验数据包,S5为结束数据包。

图1 通讯协议[1]
开始数据包表示“通讯开始”,接收数据可设置为固定字符。
加载/校验数据包的接收数据包括加载/校验地址和数据。
结束数据包的接收数据可设置为接收到的加载/校验数据包的总包数。
SCI接收处理的主要功能是接收上位机发送过来的数据包并进行合法性检查,如果合法,则将接收到的数据包进行转换保存。在接收数据时可设置计数器,对接收到的数据进行计数。
当以下条件都满足时,则判断接收到的数据包合法。
a.第0个字节为'S',且第1个字节为'0'、'2'或'5'[2]。
b.数据长度在合法范围内。
c.数据长度与计数器的计数值一致。
d.SCI状态寄存器不报错。
数据转换处理的主要功能是将SCI通讯接收到的合法数据包进行ASCII码到16进制机器码的转换,并将转换后的数据保存到加载/校验数据缓冲区中。
加载/校验数据缓冲区是一个类型为字,长度可设置的数组。当数据转换保存完成后,若加载/校验数据缓冲区未满,则不进行加载/校验,继续接收下一包数据并转换保存,直到加载/校验数据缓冲区满为止。……