基于1553B总线的ARINC 661指令传输(一)--1553B的一些要点

5 篇文章 0 订阅
5 篇文章 0 订阅

来自www.hoopercao.com

 

 

    1553B(MIL-STD-1553B)数据总线标准是20世纪70年代由美国公布的一种串行多路数据总线标准。它最初 是为飞机提出的内部电子系统连网标准,后来由于其可靠性高、传输率较高、技术成熟、易于扩展等优点而得到广泛应用,尤其在航空、航天测控网络中更加受到关注。

1553B的一些特点:

     1.1553B总线是一种广播式分布处理的计算机网络,网络上可挂接32个终端,所有的终端共享一条消息通路,任一时刻网 络中只有一个终端在发送消息,传送中的消息可以被所有终端接收,实际接收的终端通过地址来识别。网络结构简单,终端的扩展十分方便,任一终端(除总线控制 器外)的故障都不会造成整个网络的故咸总线控制器则可以通过备份来提高可靠性。但网络对总线本身的故障比较敏感,因此通常采用双冗余度总线。
   2.强调了整个系统的实时性,即传输一个固定不变的消息所需的时间要短。
   3.1553B总线按指令/响应的方式异步操作,即总线上所有消息传输都由总线控制器发出的指令来控制。这种方式非常适合集中控制的分布式处理系统。
   4.为保证数据传输的完整性,在兼顾实时性的条件下,采用了合理的差错控制措施,即反馈重传纠错(ARQ)方法。
   5.1553B通信协议中反映了支持电子系统中同步/异步通信的特性。
   6.除了完成1553B总线电子综合系统间的数据通信的任务,而且还具有调查故障情况以及进行容错管理的功能。



对基本传输格式说明如下:
   1.BC-RT传输在此情况下,总线控制器发出一个指令字到它要寻址的远程终端,指令字中RT场指明被寻址的终端地址。T/ R为0时表示被寻址的终端接受数据,分地址场表明终端接受传输数据的存储空间地址,字计数场表示此命令要求该终端的数据字字数。在此消息得到RT确认后, 终端将响应一个状态字供BC判断此 次传输是否成功,这样就完成了一次BC-RT传输。


   2.RT-BC传输在这种情况下总线控制器发出一个指令字到它寻址的终端,指示该终端发送一个由指令字中的字计数场定义的1~32个数据字。在指令字得到确认后,RT将返回状态字,并跟随相应数目的数据字,总线控制器将确认返回的消息,完成了RT-BC的传输。


    3.RT-RT传输在这种情况下,总线控制器将发送两个指令字,第一个指令字是对接收消息的终端寻址,第二个指令字寻址发送消息的终端。两个指令字包含同 样的计数场。在指令字得到验证后,发送RT将发送状态字并紧随相应数目的数据字。在消息得到接收终端确认后,接收端也要发回一个状态字,这样便完成了 RT-RT传输。


1553B方式指令(方式代码)
   1553B方式指令专门用于BC通信或终端(或子系统)错误故障的监控,诊断和控制管理。当总线控制器发出的指令字中的分地址全为0或全为1时,此指令即 是方式指令,而具体是哪一种方式命令,则由数据字字数场中的5位码具体表示,方式指令的方式代码主要有以下一些:动态总线控制(00000);同步 (00001);发送上一状态字(00010);启动自测试(00011);发送器关闭(00100);取消发送器关闭(00101);禁止终端标志位 (00110);取消禁止远程标志位(00111);复位远程终端(01000);发送矢量字(10000);不带数据字的同步(10001);带数据字 的同步(10010);发送字检测字(10011);选定的发送器关闭(10100);取消选定的发送器关闭(10101)。

 

 

以上是一些关于1553B的特性,我使用的是天津英贝特的HT-6306板卡,PCI插槽,自带了C函数库,能够实现基本的操作。由于在设计初期,我并不了解1553B的具体协议内容,在编写程序时以为函数库帮我能够处理一切出错信息或者重传等等。这也是我凭借自己的经验得到的一个想法,通常购买这种板卡的用户大多为不想了解1553B细节的用户,对于他们来讲1553B可能是一块空白,我就属于这一的一个用户。可是当我真正开始设计程序的时候发现,并不是那么回事,函数库的使用并不是像socket那样方便,大量陌生奇怪的词语出现在技术说明书中,却不做任何解释,让人看的一头雾水:(。

按照技术说明的方法,简单的实现了一个传输系统,可是速率始终上不去,一旦提高发送速度,就会出现丢失数据帧的现象。我开始重头检查程序,没错,完全按照它的要求来,奇怪了,难道是函数库的效率不高?可是我还是有点怀疑自己的程序,毕竟我对1553B不是很懂,光凭直观去编程是不行的,这可不是socket哦~

于是我又看了1553B的协议内容,将数据字、状态字、命令字搞懂了,知道什么叫做方式代码,后来才发现,可能真的是自己的程序问题,因为我从来不检查消息发送的正确性,我想当然的认为,板卡的API应当帮我搞定一切,不然我还要买他的板卡作甚?但是我想错了,而且也远远高估了国有研究所的技术服务。

或许我找到原因了,但是我还没有尝试,准备明天在程序中自己检查消息发送状态,并编写相关出错重传的机制。

看来,我是真的不懂1553B,把它当作TCP/IP来用了。。。

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值