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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux时间戳转换日期格式_shell脚本获取时间戳

    linux时间戳转换日期格式_shell脚本获取时间戳Linux时间戳、日期转换函数:#include#include#include#includeusingnamespacestd;time_tdate_to_timestamp(char*date,char*pfmt){structtmt;strptime(date,pfmt,&t);time_ttt=mktime(&t);returntt;}…

    2022年10月2日
    0
  • java-封装及其this 指针

    java-封装及其this 指针

    2021年9月29日
    43
  • 推荐几个SQL在线学习网站

    推荐几个SQL在线学习网站适合的群体:SQL初学者,想要复习一下SQL基础知识的朋友,能无障碍阅读基础英文的朋友。SQL算是声明式的数据操纵语言,基本上感觉是对着数据库管理系统在喊:给我什么样的数据!似乎大部分人都不认为SQL十分困难。的确,入门十分简单。这里整理推荐几个我自己学习时用过的在线学习网站,可以帮助初学者快速入门SQL,在交互式的环境里学习,不用自己劳神搭建一个数据库,也不用担心损坏别人的数据库,就可…

    2022年8月20日
    8
  • 有哪些域名可以提交备案

    有哪些域名可以提交备案

    2021年9月21日
    82
  • PHP的反射类ReflectionClass、ReflectionMethod使用实例

    PHP的反射类ReflectionClass、ReflectionMethod使用实例简介PHPReflectionAPI是PHP5才有的新功能,它是用来导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。用得比较多的就只有两个ReflectionClass与ReflectionObject,两个的用法都一样,只是前者针对类,后者针对对象,后者是继承前者的类;然后其中又有一些属性或方法能返回对应的Reflection对象反射是什么?它是指在PHP运行状态中,扩展分析PH…

    2025年6月11日
    0
  • Java getinstance(java如何实现输入)

    1.背景实际中经常使用getInstance()方法返回一个对象,对于工厂模式,传入对应的参数返回与之相对应的对象.但是,问题来了,返回的对象需要被强制转换,很麻烦.importjava.lang.reflect.*;publicclasstest{publicstaticvoidmain(String[]args){test1t1=factory.getInstance(“…

    2022年4月14日
    49

发表回复

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

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