1553B总线协议

1553B总线协议概述1553B总线组成包括总线控制端(BC:BusControl)、远程终端(RT:RemoteTerminal)和总线监视端(MT:MonitorTerminal)。总线控制端(BC:Bu

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

概述

1553B总线组成包括总线控制端(BC:Bus Control)、远程终端(RT:Remote Terminal)和总线监视端(MT:Monitor Terminal)。

总线控制端(BC:Bus Control)

BC作为总线通讯的发起者和组织者,负责总线调度、管理。

远程终端(RT:Remote Terminal)

RT表示总线网络中的各个通讯节点,最多支持31个RT。

总线监视端(MT:Monitor Terminal)

MT用于监视总线的运行。

 消息结构

1553B协议规定消息组成的最小单位为字,即在总线上传输的消息都是由一个个的字组成,按照种类可分为指令字,数据字和状态字。这里的字和计算机中常见的字并不一致,一个字由连续的20bits组成,包括3bits的同步头,1bit的奇偶校验位和16bits的特定位段,每种字的特定位段定义在下面详细介绍。

指令字

bit 0 1 2 3 4 5 6 7        8 9 10 11 12 13 14 15 16 17 18      19
       同步头         远程终端地址段 发送/接收位             子地址/方式字段       数据字计数/方式代码字段 奇偶校验位

 

同步头

数据字同步头应是一个无效的曼彻斯特波形,其宽度为三个位时,前1.5位时的波形为负,后1.5位时的波形为正。如果该同步头的前后位为逻辑 1,那么同步头的表观宽度将增加到四个位时。

远程终端地址段

紧跟在同步头后面的5位为远程终端地址段,每个远程终端都被指定一个专有的地址,最多可标识31个,地址范围为00000B(0)到11110B(30)。二进制11111为所有远程终端的公用地址,供系统采用广播操作时使用。

发送/接收位

紧接远程终端地址后的一位应为发送/接收位。它应表示BC要求RT做的操作,逻辑0指定远程终端做接收操作,逻辑1指定远程终端做发送操作。

子地址/方式字段

紧接发送/接收位后的五位,用来区分远程终端的子地址,或者用作总线系统进行方式控制时的标记。如果该字段为00000B或11111B时的,表示此指令字为方式控制指令,若该字段不为00000或11111则表示为RT终端的子地址。所以BC可以通过配置该段来决定指令字的方式,能访问对应RT0x01—0x1E子地址的数据。

奇偶校验位

1553B采用奇校验的方式,即前面19位的数据用二进制表示,1的个数如果为偶数,则该位设置为1保证一个字二进制表示中1的个数为奇数个,相反如果前面19位的数据二进制表示后,1的个数为奇数,则该位设置为0,保证整个字二进制表示后1的个数为奇数。

数据字

bit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
        同步头                                                              数据字段 奇偶校验位

数据字由3bits的同步头、16bits的数据字段和1bit的奇偶校验位组成。数据字用于BC或RT实现具体的数据传输。

状态字

bit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
        同步头         远程终端地址段 消息出错位 测试手段位 服务请求位       备用字段

广播指令接收位

忙位

子系统

标识位

 动态总线

控制接收位

终端标志位 奇偶校验位

消息出错位

该位在状态字的第8位,用来表示RT在已收到的消息中,是否存在一个字或多个字没有通过规定的有效性测试。逻辑1表示消息有差错,逻辑0表示消息无差错。所有的终端应提供消息差错位。

测试手段位

状态字的第9位作为测试手段位。它在所有条件下总置为逻辑0。该位为可选位,如果使用,指令字中的相应位置为逻辑1,用来区分指令字和状态字。

服务请求位

状态字的第10位置是服务请求位。表示本RT需要服务。要求BC启动与本RT或子系统有关的预定操作。当与单一RT相连的多个子系统分别请求服务时,RT应将它们各自的服务请求信号逻辑“或”成状态字中的单一服务请求。逻辑“或”完成后设计者必须准备好一个数据字,并以相应位置1来标志具体的请求服务子系统。状态字中的“服务请求位”,应维持到几个请求信号都处理完为止。该位仅用来激发随机发生的数据传输操作。

备用字段

状态字的第11、12、13位是备用的状态位。应将它们置为逻辑0,这些位留作今后使用。

广播指令接收位

状态位的第14位置为逻辑1,表示本RT接收到的上一有效指令字是广播指令字。当系统中未采用广播方式,置该位为逻辑0。

忙位

状态字的第15位时置位为逻辑1表示远程终端处于忙状态,表示它不能按照总线控制器的指令要求将数据移入子系统或从子系统取数据。如果远程终端在响应发送、指令时置忙位,那么只发出它的状态字。该位为可选位,逻辑0表示空闲状态或者非忙状态。

子系统标识位

状态字的第16位用来向总线控制器指出子系统故障状态,且警告总线控制器本远程终端提供的数据可能无效。如果与一个远程终端相连的几个子系统都呈现故障状态时,应将它们各自的信号逻辑“或”,形成状态字中的子系统标志位,并将事先准备好的一个数据字中的相应位置1,记录它们的故障报告,用于进一步检测、分析。该位为可选位。逻辑1表示有标志,逻辑0表示无标志。

动态总线控制接收位

状态字的第17位时若置为逻辑 1,用来表示本RT接受符合协议本身规定的动态总线控制的授命。逻辑 0 表示不接受。该位为可选位。

终端标志位

状态字的第18位时留作终端标志功能。逻辑1表示本RT内部存在故障,请求总线控制器干预。逻辑0表示不存在故障。该位为可选位。

通讯方式

1553B消息传输为半双工通信,采用指令应答方式实现系统通讯,消息传输形式有10种,但对于应用层常用的就3种,即BC向RT消息传输,RT向BC消息传输和RT之间的消息传输。

BC向RT消息传输

BC向RT发送一个表示发送数据的控制字和数据字,指令字与数据字连续发送。RT回送一个状态字。

RT向BC消息传输

BC向RT发送一个表示接收数据的控制字,RT回送一个状态字后,紧接着连续发送指定数据的数据字。

RT向RT消息传输

BC向RT1发送一个表示接收数据的控制字,紧接着向RT2发送一个表示发送数据的控制字,随后RT2发出状态字和对应的数据字,RT1接收到数据字后,给BC回送一个状态字。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166447.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Software Model – 软件架构模式和设计模式「建议收藏」

    Software Model – 软件架构模式和设计模式「建议收藏」什么是架构?  软件体系结构通常被称为架构,指可以预制和可重构的软件框架结构。架构尚处在发展期,对于其定义,学术界尚未形成一个统一的意见,而不同角度的视点也会造成软件体系结构的不同理解,以下是一些主流的标准观点。 ANSI/IEEE610.12-1990软

    2022年10月9日
    4
  • jmeter性能测试步骤入门_jmeter接口性能测试

    jmeter性能测试步骤入门_jmeter接口性能测试原文转自:https://blog.csdn.net/lovesoo/article/details/78579547ApacheJMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一。本文为JMeter性能测试完整入门篇,从Jmeter下载安装到编写一个完整…

    2022年10月4日
    1
  • Android MediaCodec踩坑笔记

    Android MediaCodec踩坑笔记关于编解码 FFMpeg 不香吗 为什么要吊死在 Android 的 MediaCodec 上 对于这个问题 我也很无奈 FFMpeg 很香 但是因为包体积 效率等问题引发的工作业务的需要 使我不得不在 AndroidMedia 的摧残下苟且偷生 MediaCodec 的 api 比较简单 用来写 demo 毫无难度 让人痛不欲生的是它的兼容性问题 使用 MediaCodec 遇到的问题 往往都是和机型 版本 某类媒体文件相关的问题 从开始使用 MediaCodec 到现在 遇到了许多问题 很多解决了后过了许久又忘记了 这篇博客

    2025年8月20日
    3
  • RANSAC算法理解

    最早应该是十四讲上见过,在第九章的project中src中的visual_odometry.cpp中,最核心的求解3d-2d的变换中://整个核心就是用这个cv::solvePnPRansac()去求解两帧之间的位姿变化cv::solvePnPRansac(pts3d,pts2d,K,Mat(),rvec,tvec,false,100,4.0,0.99,in

    2022年4月5日
    204
  • 沪市和深市有什么区别?

    沪市和深市有什么区别?1、板块不同:沪市只有主板与B股;深市有主板、中小板、创业板和B股。2、股票代码不同:沪市主板是60开头,B股是900开头;深市主板是000开头,中小板是002开头、创业板是300开头、B股是200

    2022年8月3日
    7
  • 设计模式-工厂模式

    设计模式-工厂模式

    2021年5月25日
    120

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号