机载计算机RS422A通讯的软硬件设计与实现

分享到:
184
下一篇 >

摘要 RS422A、RS485等异步串行通讯技术广泛应用于机载计算机实时控制系统,提高了飞机的可维护性和可扩展性。为使其稳定工作,不仅需要可靠硬件平台,还需严密的软件算法°文中描述了某机载计算机为实现与多个设备进行实时异步串行通讯,设计了统一的硬件平台,并根据每个设备不同的通讯协议,给出了不同的软件算法,重点阐述了软件设计及原理。根据该原理研制的产品已经过试验、联试和用户使用,证明其工作可靠、性(1)通讯双方的传送控制方式,即主从命令响应方式或周期通讯方式等。(2)通讯周期。(3)通讯速率,即波特率。(4)通讯字格式。通讯的*小信息单位是UART字,每个UART字由11位二进制数组成,如图1所示。

    第1位:起始位(逻辑“0”状态为有效);第2~9位:信息位;第10位:奇偶校验位(约定为偶校验);第11位:停止位(逻辑“1”状态为有效)。每个UART字按低位到高位的先后顺序串行传送。对于16位二进制数据分成两个UART字,按由低到高的先后顺序传送。(5)通讯包格式。通讯传送的基本单位是通讯包,通讯包由包头、包状态、数据字和包尾组成,*后的包尾是校验和字,其结构如图2所示。

    校验和字为通讯包中除校验和字外所有字累加和的补码。校验和校验正确的依据为接收到的UART字块中所有字的累加和等于0。

    包头通常规定为0xAA55或0x55AA,与数据字相同的概率较小。包头一旦与数据字相同,则可

    (1)确认要接收的通道号是否合法。

    (2)在软件队列缓冲区中,当剩余字节数大于等于包长时,才有可能取得新的一包完整数据。剩余字节数小于包长则认为无新的一包完整数据,等到下个周期再组包接收。

    (3)在剩余字节数大于等于包长的条件下,按照通讯协议中规定的包头,从队列中依次查找,非包头则抛掉,直至找到包头。

    (4)以包头为起始,按包长取出一包数据,计算校验和。若校验和正确则得到一包有效数据。

    (5)软件队列缓冲区中若还有足够数据,则继续查找包头并组包,若有新的一包有效数据则采用*新数据,防止数据积压。

    用该算法,当有错误数据出现时,可检查出错误并丢弃出错的数据包,找出下一包正确的数据。不会因一包数据出错而影响后续多包数据。

    要接收的数据包长变化时,通讯协议需规定,根据包头后的包状态字明确该包数据的包长。先假定当前要接收的是*短包,以缓冲区中剩余字节数大于或等于*短包长,作为找包头的前提条件。找到包头后,根据包状态字确定该包包长,若缓冲区中剩余字节数小于该包包长,则认为数据未完成接收,将包头和包状态字仍留存在缓冲区中,等待下个周期补充新数据后再进行组包接收。包长变化时接收数据组包的流程较复杂,如图5所示。

5 结束语

    文中设计的算法充分考虑了传输过程可能出现的各种情况,分两步完成数据接收,小周期或中断仅进行硬件缓冲区的接收,满足实时性要求且保证数据不会因未及时接收而丢失;大周期进行数据组包,并以*快捷的方式找到有效数据包。系统与12个设备进行RS422A或RS485通讯,经验证,文中设计的算法综合机载计算机实时控制系统的实时性和可靠性要求。

你可能感兴趣: 设计应用 图片 硬件 软件
无觅相关文章插件,快速提升流量