FC-AE-1553 协议

FC-AE-1553 协议

    • MIL-STD-1553B总线协议
      • 总线结构
      • 字格式
      • 消息传输方式
    • FC协议
      • FC协议栈
      • 拓扑结构
      • 服务类型
      • 帧/序列/交换
      • FC帧格式
    • FC-AE-1553
      • 网络构成
      • 帧类型
        • 命令帧
        • 状态帧
        • 数据帧
      • Information Units
        • NC1
        • NC2
        • NC3-4
        • NC5-7
        • NT1-7
      • 传输模式
        • 1. NC-NT
        • 2. NT-NC
        • 3. NT-NT
        • 4. 无数据字的模式命令
        • 5. 带数据字的发送模式命令
        • 6. 带数据字的接收模式命令
        • 7. NC-NTs
        • 8. NT-NTs
        • 9. 无数据字的多NT模式命令
        • 10. 带数据字的多NT接收模式命令
      • 定时器
    • MIL-STD-1553B 与FC-AE-1553比较

MIL-STD-1553B总线协议

总线结构

MIL-STD-1553B总线由BC(总线控制器),RT(远程终端),BM(总线监视器)以及总线自身四部分组成。一个MIL-STD-1553B总线网络中,有且只有一个总线控制器BC在工作,远程终端RT的个数不多于31,而总线监视器BM的数量则可根据需要设置,它并不参与总线通信。总线具备冗余备份能力,能增加MIL-STD-1553B总线网络信息传输的可靠性,当一条总线断开时,网络会自动切换到其他冗余的总线上,保证了消息的传递。

  • BC主要管理和控制MIL-STD-1553B总线上消息的传输,网络中只有总线控制器才能发送指令字,它总共包括字控制器、消息控制器和帧控制器三个类型。
  • RT的工作主要是响应来自总线控制器的命令,并实施数据的传递。一个MIL-STD-1553B总线网络可以接入多个远程终端,不同的终端通过RT地址来进行区分。
  • BM主要监视与记录MIL-STD-1553B总线上传递消息的终端,它能够接收总线控制器的指令而工作,但不参与总线消息的传输。

字格式

MIL-STD-1553B总线上消息传输的最小单位为字,它包括命令字、数据字和状态字三种类型,这三种类型的字经过曼彻斯特编码调制组成一条条消息,每条消息由1~32个字组成。每一种类型的字格式都是唯一的,但三种类型的字数据结构是相同的。

每个字的字长为20比特(bit),其中,有效数据位为16比特(bit)。每个字最前面3比特是同步字头,标志一个新字的开始;第20位是奇偶校验位。可以用同步字段来将命令字和状态字与数据字区分开。

在这里插入图片描述


命令字

  • RT地址

    即远程终端的地址,指示网络控制器发起的该命令字的目的地址。每个RT的地址是唯一存在的。由于该字段包含5比特,所以总线上一共可以有31个RT地址,当该字段全为1时,表示广播地址。由于总线监控器不具有与RT和BC通信的功能,所以它没有总线地址。

  • T/R

    用于指示接收该命令字的远程终端执行接收数据还是发送数据,该位为0,RT发送数据,反之则接收数据。

  • 子地址/模式

    • 当该字段的值被设为1-30时,它表示子地址,此时数据字计数/模式码中的内容为数据字的计数。子地址用来表示需要交互的数据在内存中的位置。
    • 当该字段被设为0或31时,它表示模式,此时数据字计数/模式码字段中的内容代表模式码,该命令字是模式命令,传输方式属于模式命令传输。
  • 数据字计数/模式码
    功能取决于子地址/模式字段。一是作为数据字计数使用,该字段的内容表示需要交换的数据字的数量;二是作为模式码使用,该字段的内容则用于区分不同类型的模式命令。


状态字

状态字包含5bit的RT地址和其他用于指示不同状态的状态位。此处的RT地址和命令字中的RT地址类似,不再累述。状态字段标识发出该状态字的RT的状态信息,包括服务请求、忙、消息错误等。除了消息错误位是必须使用的之外,其他所有状态位都是根据具体需求可以选择的。


数据字

数据字除了同步字段和校验字段之外的16bit都用于存放需传送的数据。

消息传输方式

MIL-STD-1553B总线的消息传输格式总共有10种,这10种格式又分为非广播传输格式和广播传输格式两大类。


常用的为非广播传输格式中的三种,即BCtoRT(总线控制器向远程终端发送信息)、RTto BC(远程终端向总线控制器发送信息)、RTtoRT(远程终端向远程终端发送信息)。

  1. BC to RT:总线控制器BC先发送一个接收命令字给其中一个远程终端RT,告诉RT准备接收数据,然后BC继续发送数据字,RT接收数据后返回一个状态字给BC,以说明数据的接收情况。
  2. RT to BC:总线控制器BC先发送一个发送命令字给一个远程终端RT,告诉RT发送数据,RT收到发送命令字后返回一个状态字,并按照要求发送数据字给BC。
  3. RT to RT:总线控制器BC发送一个接收命令字给一个远程终端RT1,让其接收数据。然后,该BC发送一个发送命令字给另一个远程终端RT2,让其发送数据给RT1。接收到发送命令字的RT2向BC返回一个状态字并按要求向RT1发送数据字,RT1接收到数据字后向BC返回一个状态字。


  1. BC to RTs:总线控制器BC向所有远程终端RT发送一个接收命令字,其后发送一连串数据字给所有的RT。RT收到数据后,不需要向BC发送状态字,只需要把状态字中的第15位设置为1即可。
  2. RT to RTs:总线控制器BC发送一个接收命令字给各远程终端RTn,让其接收数据,然后发送一个发送命令字给远程终端RT3,让其向各终端RTn发送数据。RT3接收到命令后向BC发送一个状态字,并向各RTn发送指定的数据字。各个RTn收到数据后不需要向BC发送状态字,只需要把状态字中的第15位设置为1即可。

FC协议

FC协议栈

类似OSI七层模型,光纤通道协议也分为五层模型。

  • FC-0层定义的是物理接口的相关规范,其中包括物理特性、光学特性、电气特性、传输速率和其他与传输介质相关的接口特性以及发射机和接收机]。
  • FC-1层是传输协议层。主要描述8B/10B的传输码和传输协议,其中包括串行编码和解码规则、传输和接收错误检测机制、端口操作状态以及特殊字符的检测机制。
  • FC-2层是信令协议层。它的主要内容有FC帧结构的定义、数据层定义和划分(包括帧、序列和交换)、N端口和F端口、三种拓扑类型、包括Class 1、Class2、Class3、Class4和Class6的五种服务类别、分段重组、链路管理和控制、流量监控、检错与恢复等。
  • FC-3层是公共服务层。主要处理多个N端口上的公用业务,如多播、分段管理或查寻组等。
  • FC-4层是高层协议映射层。对于FC-AE-1553协议来说,就是在FC协议的FC-4层映射MIL-STD-1553B协议。

拓扑结构

根据通信性能以及有没有交换机,光纤通道协议一共定义了三种基本拓扑结构:点到点、交换式结构和仲裁环,在不同的运用环境下,根据具体需求来使用不同的拓扑结构。

根据端口所处的拓扑结构不同,有不同的名称:在网络节点上的端口为N_Port(N端口);在仲裁环内各个节点的端口为L_Port(L端口);在交换机上的端口为F_Port(F端口);在交换机上,并且用来连接两个交换机的端口为E_Port(E端口);在交换机上,同时隶属于仲裁环的端口为FL_Port(FL端口);最后,有一种全能端口叫做G_Port(G端口)。


点到点拓扑结构
点到点的拓扑结构是这三种拓扑结构中最简单的一种模式,无须使用交换机,直接将网络上的两个端口(N端口)相连,实现它们之间的通信。其结构图如图2-6所示。在这种简单的结构下,可以实现两网络节点的高速全双工通信,传输带宽极高,但不具备可扩张性。


交换式拓扑结构
交换式拓扑结构通过将接收方N端口的ID作为目的地址植入传输数据的帧头,经过一个交换机来达到向目的N端口发送数据。图2-7展示了多个N端口通过一个交换机互联的结构。交换式拓扑使用方便,可扩展性高,而且网络容量较大,但是交换机的开发成本较为昂贵。


仲裁环拓扑结构
在没有交换机参与的情况下,仲裁环拓扑结构允许三个及其以上的L端口之间进行通信。在该结构里面,同一时刻最多只支持一组点到点的传输,而其他的L端口均处在某种等待状态下。

服务类型

根据不同的应用场合和传输环境,光纤通道定义了六种服务类型回来满足各种需求。

  • 第一类服务:专线连接服务。该服务用于建立专用链路,一旦建立,在规定的时间内该链路将会一直保持并会受到交换机的保护。通过该服务,可以实现两个N端口之间建立高带宽的专线数据通信,传输的信息序列将会被交换机保持原有的顺序从源端口发送到目的端口。如果交换机不存在了,该服务将变成一种特殊的点到点的链接。
  • 第二类服务:多路复用服务。该服务通过交换机无需建立专门的链路,支持多路复用的功能,使多个端口间可以相互共享带宽。如果交换机不存在,这种服务也变成了一种特殊的点到点的连接。在进行传输的时候,发送机会按照给定的序列顺序来发送数据帧,但是交换机并不能保证数据序列按照原先的顺序抵达接收方。同时,该服务为有确认的服务,即接收方在接收以后要给发送方一个确认帧反馈是否接收正确。
  • 第三类服务:数据报服务。该服务也是无链路的,同第二类服务类型一样,在没有交换机的时候也可以视为一种特殊的点到点连接。同时,该服务为无需确认的服务,接收N端口在接收到有效的数据时,无需反馈确认信息。在本服务下,有很高的发送效率,而就算目的N端口无法接收数据也无须发送busy或者reject帧给源N端口。
  • 第四类服务:虚拟连接服务。在该类服务下,不会把所有的带宽像第一类服务一样用于一对端口通信,而是虚拟建立起一个N端口与多个N端口之间的数据链路。
  • 第五类服务:在最新协议中已被废弃。
  • 第六类服务:多播服务。在本服务下,允许一个N端口跟多个N端口专用链路,一旦建立成功,在规定的时间内,该链路被交换机保持和保护。在数据传输过程中,数据只能是从源N端口向目的N端口传输,各个目的N端口在接受完成以后都会向多播服务器反馈一个链路响应帧,服务器在把接收到的响应帧整理成一个帧再反馈给源N端口。这种服务必需要有交换机的参与。

帧/序列/交换

FC-FS协议中规定光纤通道中传输三个级别的数据结构:交换、序列和帧。在传输的工程中,最基本的单位是帧;一个或者多个帧可以组成一个传输序列;而一个或者多个的传输序列构成了一次交换。它们三者的结构关系如图2-9所示。

FC帧格式

帧作为传输中最基本的单位,光纤通道标准帧类型有三种:命令帧、数据帧和状态帧,它们拥有相同的结构,包括帧起始标记(SOF)、帧内容和帧结束标记(EOF),其标准的帧结构如图2-10所示。其中帧内容里面包含了帧头、数据区域和CRC校验。帧内容中的最大容量为2140Bytes,其中帧头包含了24Bytes,数据区最大容量为2112Bytes,CRC校验字包含了4Bytes。数据区域又分为了有效载荷和填充字节,有效载荷中包含了纯有效数据,填充字节是为了将最后的发送数据填充为32bit字所用的。

  • R_CTL:包含了Routing和Information两个字段,其中Routing区域用于标识当前帧的类型。
  • Destination ID:当前帧应该传输到的目的端口的ID。
  • CS_CTL:配合F_CTL使用,用于表示当前帧在交换机内是否具有优先转发的级别。
  • Source ID:当前帧来源端口的ID。
  • Type:用于表示当前顶层映射的协议类型,FC-AE-1553协议此域值为0x48。
  • F_CTL:用于对帧的控制,里面包含了与序列交换相关的控制信息。
  • SEQ_ID:序列标识符,用于区分识别交换中的各个序列,每个序列拥有唯一的数值。
  • DF_CTL:用于对可选帧头的使用进行标识,告知接收方使用了何种可选帧头。
  • SEQ_CNT:用于序列计数,随着交换的进行,该值会一直递增,直到完成整个交换。
  • OX_ID:表示交换发起端口ID。
  • RX_ID:表示交换响应端口ID。
  • Parameter Field:参数域。

FC-AE-1553

网络构成

FC-AE-1553的网络主要由网络控制器(Network Controller,NC)、网络终端(Network Terminal,NT)和光纤通道网络组成。当FC-AE-1553需要兼容MIL-STD-1553B总线时,网络中会增加FC-AE-1553协议桥、MIL-STD-1553B总线本身和其终端节点RT。FC-AE-1553的网络结构如图2-5所示。


网络控制器(NC)

网络控制器是FC-AE-1553网络中发出命令的节点。网络控制器在整个数据交互过程中起相当重要的作用,只有当网络控制器发出命令序列,才能发起一次数据交互,网络控制器也控制着网络中的所有数据传输过程。网络控制器的功能与MIL-STD-1553B中的总线控制器类似,不同的是在MIL-STD-1553B中只能有一个总线控制器存在,但在FC-AE-1553网络中可以存在多个网络控制器。


网络终端(NT)

网络终端是接收网络控制器的命令并执行命令的一种终端节点,它一般是连接到FC网络上的传感器接口或其他子系统接口。网络终端的主要功能是按照网络控制器的命令完成相应的数据传送或接收。在FC-AE-1553网络中,网络控制器不再处于活跃期时可以被当成网络终端来使用,即该节点同时具有网络终端和网络控制器的功能。


协议桥设备

协议桥是实现MIL-STD-1553B网络与FC-AE-1553网络的设备之间通信的设备。协议桥使得FC-AE-1553中的网络终端能与MIL-STD-1553B总线上的远程终端RT进行数据交互。它主要完成FC-AE-1553的三种帧格式和MIL-STD-1553B的三种字格式之间的相互转换问题。

帧类型

FC-AE-1553与MIL-STD-1553B相对应,定义了三种帧格式,分别为命令帧、状态帧和数据帧。

命令帧

每个FC-AE-1553交换都是由网络控制器发出的命令序列发起的。在NC发出的命令序列和NT-NT传输模式中发送NT发出的状态序列中可能存在FC-AE-1553的命令头。FC-AE-1553的命令帧头是在6个字的FC帧头的基础上,再扩展了6个字的FC-AE-1553的相关帧头组成了,其中扩展帧头相当于是前面6个字的数据载荷。

FC-AE-1553的命令帧可以携带数据也可以不携带数据,具体情况根据帧头的相关字段的设置决定。命令帧携带数据时,其数据载荷部分最大为2048个字节,如果需要传送的数据超过2048个字节则需要在命令帧后以数据帧的形式进行传送。

  • R-CTL(路由控制)字段
    路由控制字段和TYPE字段一样,被用于归类帧。该字段由两部分组成:一是路由比特子字段,二是信息类比特子字段。

    • 路由比特为0时代表设备数据,为2时代表扩展链路服务,为8时代表基本链路服务。
    • 信息类比特为6时代表命令帧,为7时代表状态帧,为1时代表数据帧。
  • D-ID(目的标识符)字段
    D-ID字段作为目的标识符,其携带的信息指示了目的端口即接收端口的网络终端地址、多播地址以及被熟知的地址,如广播地址0XFFFFFF等。

  • CS_CTL(类型特殊控制)字段

    类型特殊控制字段指示了帧的优先级,帧的优先级是一个7bit的值。优先级的值可以在0到127之间,其中127级最高。当优先级使能被设为0时,不使用优先级,相当于帧的优先级为0级,即CS_CTL的值为0。

  • SID(源标识符)字段
    源标识符是发出该命令帧的源端口的地址标识,此处就是指发出该命令帧的NC的地址,此地址是唯一存在的。

  • TYPE(数据结构类型)字段
    该字段是用来区分不同数据结构类型的。对于所有传输中的FC-AE-1553序列来说,此字段的值应该为十六进制的48。

  • 参数
    此字段对于所有FC-AE-1553序列来说是被用来指定相对偏移量的。在命令序列和状态序列中,此字段被设为十六进制的0.

  • NT突发请求
    该字段只在两种传输模式中被使用:一种是NC-NT模式,在该模式中,此字段在NC发出的命令序列中被设置;另一种是NT-NT模式,此时该字段在发送NT向接收NT发出的命令序列中被设置。NT突发请求字段和延迟NT突发请求字段结合使用,它们不能同时为1,但可以同时为0.当NT突发请求字段为1时,延迟NT突发请求字段须被置0,此时命令序列中不能携带数据,并且数据序列的传输必须等到NT或接收NT传回NT包含其可接收的数据大小信息的状态序列后才能进行。

  • 延迟NT突发请求
    与NT突发请求相对应,该字段也在NC-NT模式中NC发出的命令序列和NT-NT模式中发送NT发出的命令序列中被设置。当延迟NT突发请求字段为1时,命令序列中可以携带小于2048字节的数据,并且随后可接着发送一个数据序列,但后续的数据序列都需要等待相应的状态响应被接收后才能继续发送。

  • 接收RDMA和发送RDMA

    接收RDMA或发送RDMA字段的设置和子地址字段以及其他子地址字段的意义解读相关.

    • 在NC-NT和NT-NC传输模式中,如果接收RDMA或发送RDMA字段的值被设为1,则子地址字段分别指示NT和NC用来存放接收到或需要发送的数据帧的内存起始地址。
    • 在NT-NT传输模式中,网络控制器发出的命令序列中接收RDMA或发送RDMA字段为1表示其他子地址字段指示的是接收/发送NT的内存起始地址,在发送NT发出的命令序列中接收RDMA被置为1则表示该命令序列中的子地址字段指示的是接收NT接收数据帧的内存起始地址。
    • 在所有的传输模式中,如果接收RDMA或发送为0,子地址字段无意义。
  • 状态抑制
    该字段的设置情况与交互完成后NT是否向NC返回状态响应相关。

    • 当在NC发出的命令序列中,状态抑制位为1,则表示状态抑制有效,NT在数据交互完成后无需对NC返回状态响应。
    • 当状态抑制位为0时,状态抑制无效,NT在最后需向NC发出状态序列。
    • 在NT-NT模式中,网络控制器发出的命令序列和发送NT发出的命令序列对该字段的设置应该一致。
  • NT-NT传输标志
    此字段指示传输模式是否是NT-NT模式,当该位为1时表示传输模式为NT-NT传输模式,相反为其他传输模式。在NT-NT传输模式中的发送NT发出的命令序列和网络控制器发出的命令序列中,该字段都应该为1.

  • T/R*
    此字段用来指示数据传输方向。

    • 为1时表示接受到该命令序列的NT执行发送数据命令
    • 为0时表示接受到该命令序列的NT执行接受数据命令
  • NT-NT模式的NC监控
    该字段只在NT-NT或NT-多NT的传输模式中有效。该位置0,NC不对数据交互进行监控,置1,则发送NT在向接收NT发送数据序列的同时也需向NC发送相同的数据序列。

  • 多播
    顾名思义,多播字段指示的是数据交互是否为多播,当该字段为0时,目的标识符字段指示的是目的RT的地址,为1时,目的标识符字段指示的是多播地址。

  • 子地址/模式
    该字段与数据大小/模式码字段相关联。

    • 当该字段不为全0或全1时,此字段指示子地址,子地址在不同模式下的意义不同,此时数据大小/模式码字段指示的是数据大小。
    • 当该字段为全1或全0时,该字段表示模式,数据大小/模式码字段指示的是模式码,模式码指示不同的模式码命令。
状态帧

FC-AE-1553状态帧在标准光纤通道帧头的基础上,扩展了两个字的设备头。如果被传输,状态序列始终是NT发送的第一个序列,并且其中可能携带数据信息。FC-AE-1553状态帧帧头如图2-7所示。

由图2-7可知,状态帧帧头的前6个字和命令帧帧头相同,其意义也相同。字6和字7是扩展的设备头。

  • 字6表示发起该状态序列的网络终端的状态信息。
  • 字7有两种解读:
    • 当该状态序列是对命令序列或数据序列做出的响应,且该NT处于“闲”状态,要求进行突发大小请求响应时,字7代表的是网络终端接下来可以接收的数据序列的最大字节数;
    • 当该状态序列是在NT-NT模式中的发送NT发出并传送给NC的状态序列时,字7表示接收NT的状态信息。

  • MIL-STD-1553RT无响应
    该字段只有在FC-AE-1553网络桥接有MIL-STD-1553B总线时有效。当NT向RT发送数据后,RT未在规定时间内对NT作出相应响应,则BC向网络控制器发出的状态帧中,此字段将被置1,由NC要求NT不再对该RT发送任何数据。
    相反,若RT有反应,则该字段被置为0.当FC-AE-1553网络不兼容MIL-STD-1553B总线时,该字段始终被置0.

  • MIL-STD-1553格式错误
    同MIL-STD-1553RT无响应字段类似,在FC-AE-1553网络不兼容MIL-STD-1553B总线时,该字段始终被置0.只有在FC-AE-1553网络桥接有MIL-STD-1553B总线时此字段才有效。若该字段为1表示虽然RT对NT传送的数据作出相应反应但反应不符合协议要求,此时NT仍不能再向该RT发送数据。

  • Burst Size Acknowledge

    该字段是对NC发出的命令序列中的NT突发请求和延迟NT突发请求字段的响应。如果忙字段被置为0,此字段置1,则该状态帧头的字7表示下一个可接收的数据的最大字节数。

  • 端口登录要求
    由于本文中FC-AE-1553协议采用隐式登录,所有登录参数都在软件中设置,所以该位始终设置为0,表示该位不起作用。

  • 消息错误
    此字段用于表示消息是否错误。

  • 服务请求
    服务请求位指示NC是否需要服务请求,如果被置1,则NC必须执行定义好的某种特定操作。

  • 广播命令接收
    此字段用于表示接受到的由总线控制器发出的交换命令是否为广播交换。


  • 该字段用于指示NT是否在进行其他的数据交互,是否能执行NC所发出的命令。只有当NT有没空闲执行命令时该位为1,其他情况都被置为0.

  • 子系统标志
    子系统标志字段指示子系统是否能正常工作。只有当子系统出现故障时,该位被置1,其他情况都被置为0.

  • 动态网络控制
    因为一个FC-AE-1553网络节点即可做NC也可做NT,动态网络控制位就是用于NT和NC的切换中的。此字段是在NT接受到NC发出的网络控制的模式命令后返回的状态响应,如果该位被置1,表示NT接受模式命令,开始执行NC的功能。其他情况该字段为0.

  • 终端标志
    如果网络终端NT出现故障,该位被置1,其他情况为0。

数据帧

FC-AE-1553的数据帧的帧头只有6个字,与命令帧和状态帧相比,没有扩展帧头的部分。数据帧的帧头格式与光纤通道的帧头格式相同,如图2-8所示。数据帧帧头的各个字段意义与命令帧头的前6个字的意义相同。

Information Units

信息单元指FC-AE-1553网络中一次交换NC或NT发送的一个序列。对于不同的交换模式下,FC-AE-1553网络上的不同节点设备所使用的信息单元也有差别。根据协议中的规定,可将信息单元划分为NC系列和NT系列。FC-AE-1553协议定义了NC1-NC7七种NC序列以及NT1-NT7七种NT序列。不同类型的数据单元适用与不同的应用环境,并且有着不同的作用。

若在命令序列或状态序列后有数据序列,则在命令或状态序列中的字节数必须为4的倍数。如果传输多个数据序列,则除去最后一个序列外,所有数据序列的字节数必须是4的倍数。

NC1

NC1:使用NC1信息单元的情况如下:

  • NC-to-NT写模式交换中的命令序列,序列中包含最多2048字节数据并将状态抑制位置为0,序列后不能跟随数据序列。
  • NC-to-NT写模式交换中的命令序列,不包含数据字节,NT突发位为1且延迟NT突发位为0。
  • NT-to-NC读模式及NT-to-NT(s)交换中的交换发起命令,由NC发送。
  • NT-to-NT第三者交换模式下由发送NT发送的命令序列,NT突发位为1且延迟NT突发位为0。

NC2

NC2:使用NC2序列的情况如下:

  • NC-to-NT写模式交换中的命令序列,由帧头及最多2048字节数据组成,序列后由一串数据序列跟随。
  • 由NC发送的不包含数据的命令序列,NT突发位为1且延迟NT突发位为0。
  • NT-to-NT第三方传输模式中发送NT发送的命令序列,用来发起与接收NT间的数据通信。
  • NT-to-NT模式中由发送NT发送的不包含数据的NC命令序列。

NC3-4

NC3、NC5、NC6、NC7:均为数据序列。

NC4:使用NC4的情况如下

  • NC-to-NTs交换模式下的命令序列,状态抑制位须置为1,序列中包含FC-AE-1553命令帧帧头和命令帧内最多2048字节的数据,序列后不允许有数据序列跟随。
  • 在NC发起NT-to-NT第三者传输模式交换或者NT-to-NTs传输模式时使用,抑制状态设为1。
  • 在NT被临时授权执行NC功能时使用,如NT-to-NT交换模式及NT-to-NTs交换模式下的发送NT,抑制状态置1。
  • 在除广播模式以外的方式代码中使用的NC命令序列,序列中可带数据也可不带数据,抑制状态位置1。

NC5-7

NT1-7
  • NT1:使用状态序列NT1的情况如下:

    • NC-to-NT写模式交换中,NT用来响应收到的NC命令的状态序列,序列只包含状态帧帧头,不携带任何数据载荷。

    • NT-to-NC读模式交换中NT端用来响应NC的状态序列,序列内可携带最多2048字节数据传输给NC,其后不允许有NT系列数据帧跟随。

    • NT-to-NT第三者传输模式情况下,接收NT用来响应发送NT的状态序列,序列中只由FC-AE-1553状态帧头组成。

    • NT-to-NT第三者传输模式情况下,发送NT用来响应NC的状态序列,序列中只由FC-AE-1553状态帧头组成

    • NT-to-NTs交换模式中收到发送NT发送的命令序列的NITs用来响应的状态序列,序列中不携带任何数据字节。

  • NT2:使用情况如下:
    NT-to-NC读模式交换中,NT用来响应NC的第一个序列,可包含最多2048字节数据,其后可跟随NT系列的数据序列向NC传输数据。

  • NT3:使用情况如下:
    NT数据序列的最后一个序列,其后不可再有数据序列传输,NT-to-NC写模式数据传输中最后一个数据序列使用NT3。

  • NT4:保留

  • NT5:使用NT5的情况如下:
    一次交换中只有一个序列组成时NT端可用NT5序列。

  • NT6:使用情况如下:
    不携带数据字节,用来响应NC或由NC授权的发送NT发送的命令序列。

  • NT7:使用情况如下:
    作为NT-to-NC读模式交换中除最后一个数据序列外的任意位置的数据序列使用。

传输模式

  • 在所有情况下,NT在接收到它确定为无效的任何命令序列、数据序列或状态序列后,不回复状态序列。
  • 如果NC或者发送NT检测到交换无效或超时,可以停止发送以终止交换,并忽略从NT接收到的所有数据和状态,此外,NC也可以调用ABTS-LS基本链接服务
  • 如果NT(非发送NT)检测到交换无效或超时,NT不回复任何状态序列,并终止交换。

与MIL-STD-1553B相对应,FC-AE-1553总线协议也规定了数据的十种传输模式,分别是:

  1. 网络控制器到网络终端(NC-NT)
  2. 网络终端到网络控制器(NT-NC)
  3. 网络终端到网络终端(NT-NT)
  4. 无数据字的模式命令传输
  5. 带数据字的模式命令传输,命令网络终端发送数据
  6. 带数据字的模式命令传输,命令网络终端接收数据
  7. 网络控制器到多个网络终端的广播或多播模式(NC-NTs)
  8. 网络终端到多个网络终端(NT-NTS)
  9. 发送到多个网络终端的没有数据字的模式命令
  10. 发送到多个网络终端的带有数据字的模式命令传输,命令接收数据

下面选择几种常见的模式进行介绍。

1. NC-NT
  • NT突发请求=0,延迟NT突发请求=0

    在这种传输模式中,NC首先发送一个命令序列用来发起此次数据交互。该命令序列中可能携带数据信息,最多可携带2048个字节的数据。根据其后是否跟随数据序列以及状态抑制位的设定,NC发出的命令序列可能是以下三种信息单元:NC1,不跟随数据序列,且状态抑制位置0;NC2,跟随数据序列;NC4,不跟随数据序列,且状态抑制位置1。

    若需要发送的数据信息大于2048个字节,则NC还需向NT发送一定的数据序列,此处NC发出的信息单元可能是NC6(不是最后一个数据序列)、NC3(最后一个数据序列且状态抑制位置0)或NC5(最后一个数据序列且状态抑制位置1)。数据发送完成后,NT根据状态抑制位的设置选择是否向NC发出状态序列。

    • NT应在NT_C/S_TOV时间内向NC发送一个状态序列(NT1)并终止交换。
    • 命令序列结束与第一个数据序列开始之间的最长时间,以及数据序列之间的最长时间,为C/S_D_TX_TOV。
  • NT突发请求=1,延迟NT突发请求=0

    NC依然首先发出一个命令序列来开始此次数据交互,该命令序列属于NC1信息单元。NT收到命令序列后向NC回复信息单元为NT6的携带可接收数据字节数的状态序列。此后,NC开始发送数据序列,这些数据序列可能的信息单元是:NC3(不为最后一个数据序列,或最后一个数据序列但状态抑制位置0);NC5(最后一个数据序列且状态抑制位置1)。最后NT根据状态抑制位的设置决定是否回复状态序列。

  • NT 突发请求=0,延迟NT突发请求=1

    在这种传输模式中,NC在发出命令序列后,无需等待NT回复状态序列,在一定时间间隔后可随后向NT发送数据序列,但除第一个数据序列之外,后续需要发送的数据序列都需要根据NT回复的状态序列中指示的可接受数据字节数来设置数据大小。各中序列的信息单元与当NT突发请求为1时的情况相同。

2. NT-NC

在这种传输模式中,NC发送一个命令序列要求NT向NC传输数据。NT接收到命令序列后在规定时间间隔内向NC回应一个状态序列,此状态序列可能的信息单元为:NT1(不携带数据);NT2(携带数据信息)。如果需要传送的数据大小大于状态序列中携带的数据字节数,则NT还会向NC发送信息单元为NT3的数据序列,直到数据发送完成。

3. NT-NT

和NC-NT传输模式一样,NT-NT传输模式也和NT突发请求和延迟NT突发请求字段相关。此外,由于FC-AE-1553的网络节点即可以作为NC使用又可以作为NT使用,所以在NT-NT模式中向发送NT发出命令序列的NC可以当作接收NT使用。下面只介绍NC作为接收NT使用的情况。


  • NC作为接收NT使用时,且NT突发请求置1,延迟NT突发请求置0

    如图2-13所示,NC首先作为网络控制器向发送NT发出一个发送命令序列,此后NC就作为接收NT使用。发送NT向接收NT发出一个接收命令序列,该命令序列不携带数据,接收NT根据自己的状态和可接收的数据大小返回状态序列。发送NT开始向接收NT发送数据,接收NT再返回状态,以此类推,直到最后一个数据发送完成。数据发送完成后接收NT根据状态抑制位的设置决定是否向发送NT返回状态。最后接收NT又作为NC使用,发送NT根据状态抑制位的设置决定是否向NC返回状态。


  • NC作为接收NT使用,且延迟NT突发请求置1,NT突发请求置0

    如图2-14所示,这种情况和当NT突发请求置1的情况类似,只是此时的接收命令序列中可能携带数据,如果数据并没有在命令序列中全部发送,则发送NT直接在接收命令之后直接发出第一个数据序列而无需等到接收NT返回状态序列后再发送,其后的传输过程都与第二种情况一样。


4. 无数据字的模式命令

这种传输模式比较简单,在这种模式下,NC发出的是一个模式命令,命令序列中的模式码字段规定了具体的模式命令。NT收到该模式命令后执行该命令并根据状态抑制位的设置决定是否向NC返回状态序列。

在这里插入图片描述

5. 带数据字的发送模式命令

NC在这种传输模式下发出一个模式命令,该模式命令除了模式码字段中规定的具体命令之外还要求NT返回数据,所以无论状态抑制位如何设置,NT在收到NC发出的模式命令后都要向NC发出一个写带数据字的状态序列。

6. 带数据字的接收模式命令

与数据发送的模式命令相似,此时模式命令不仅要求NT执行相关的命令请求,还要求NT接收一定的数据字,这些数据字被携带与命令序列中,最后NT根据状态抑制位的设置决定是否向NC返回状态序列。

7. NC-NTs

8. NT-NTs

9. 无数据字的多NT模式命令

10. 带数据字的多NT接收模式命令

定时器

MIL-STD-1553B 与FC-AE-1553比较

项目MIL-STD-1553BFC-AE-1553
术语Bus Controller(BC)Network Controler(NC)
Remote Terminal (RT)Network Terminal(NT)
RT AddressNetwork Terminal Address
RT SubaddressNT Subaddress(NT_SA)
MIL-STD-1553 MessageFC-AE-1553 Exchange
Command WordCommand Sequence
Status WordStatus Sequence
位宽RT Address (5 bits)NT Address(D_ID/S_ID)(24 bits)
Subaddress (5 bits)NT Subaddress(NT_SA)(32 bits)
Word Count/Mode Code (5 bits)Byte Count/Mode Code(32 bits)
拓扑结构总线型点对点、仲裁环路、交换
允许的BC/NC个数有且仅有1个有1个或多个
允许的RT/NT个数不多余25不多余224
允许的子地址数小于25小于232
消息字计数小于25小于232
字宽度16bit32bit
传输编码方式曼切斯特码8b/10b编码
传输介质双绞屏蔽电缆光纤
传输速率1Mb/s大于1Gb/s

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/434591.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android开发必须要会,android性能优化面试

前言 前一段时间和一些大牛们交流了一下,据反馈现在Android岗位也没有以前那么多了,没这么好找了,寒冬季节,大量公司模仿O2O模式导致死掉企业的很多,导致供大于求,当然这不意味着饱和,只是市场…

中文版国产Figma简单好上手

在过去的两年里,国内外协同办公室发展迅速。一方面,它是由突如其来的疫情推动的,另一方面,它是科学技术不断进步的必然结果。在市场的推动下,市场上出现了越来越多的协同办公软件,使工作场所的工作更加高效…

门电路加法器乘法器

前言 大家好我是jiantaoyab,这是我所总结作为学习的笔记第六篇,在这里分享给大家,还有一些书籍《深入理解计算机系统》《计算机组成:结构化方法》《计算机体系结构:量化研究方法》《程序员的自我修养》,今天我们来了解门电路,加法…

保留数据的重装系统教程!(win10系统)

上车警告!!! 本教程无需思考,跟着操作一步一步来就能完成系统的重装。原理是将C盘系统重装,其他盘符数据保存。适用于系统盘重装数据或更改系统版本。 重要提示!!! C盘有重要学习资…

【OpenAI Triton】理解矩阵乘法中的super-grouping 21a649eddf854db5ad4c7753afb7cb72

【OpenAI Triton】理解矩阵乘法中的super-grouping 前言 最近做推理加速,会涉及一些底层算子的工作,老早就听说triton写算子比较方便,最近正好有一些应用场景,就根据官方文档和大佬们的见解记录一下自己的所学所得; …

CMake-深入理解find_package()的用法

前言: CMake给我们提供了find_package()命令用来查找依赖包,理想情况下,一句find_package()命令就能把一整个依赖包的头文件包含路径、库路径、库名字、版本号等情况都获取到,后续只管用就好了。但实际使用过程可能会出现这样那样…

#微信小程序创建(获取onenet平台数据)

1.IDE:微信开发者工具 2.实验:创建一个小程序(http get获取onenet平台数据) 3.记录: 百度网盘链接:https://pan.baidu.com/s/1eOd-2EnilnhPWoGUMj0fzw 提取码: 2023 (1)新建一个工…

【工具相关】zentao用例管理平台部署实践

文章目录 一、备份还原1、数据备份1.1、前言1.2、版本备份1.3、数据备份 2、数据恢复2.1、版本恢复2.2、数据恢复 二、问题处理1、ERROR: SQLSTATE[HY000] [2002] Connection refused 一、备份还原 1、数据备份 1.1、前言 禅道系统从10.6版本以后,新增数据备份设…

lv20 QT进程线程编程

知识点&#xff1a;启动进程 &#xff0c;线程 &#xff0c;线程同步互斥 1 启动进程 应用场景&#xff1a;通常在qt中打开另一个程序 process模板 QString program “/bin/ls"; QStringList arguments; arguments << "-l" << “-a";QPro…

Java进阶-IO(4)

前面几篇介绍了java IO的基础部分&#xff0c;现在进入核心内容的学习&#xff0c;如File类、动态读取和序列化等&#xff0c;如下。 一、File类 1、概述 是 java.io 包中唯一代表磁盘文件本身的对象&#xff08;可以通过 File 类操作文件和目录&#xff09;&#xff0c;定义…

【Flutter 】get-cli init报错处理

报错内容 get init 命令跳出,报错内如下 Select which type of project you want to creat Synchronous waiting using dart:cli waitFor Unhandled exceotion . Dart WaitforEvent is deprecated and disabled by default. This feature will be fully removed in Dart 3.4 …

Docker安装MySQL镜像实战分享

今天我们对Docker安装MySQL镜像进行实战分享&#xff0c;以更深入的了解容器的使用场景。我们在云付服务器Ubuntu环境上已经安装好了Docker&#xff0c;接下来我们开始安装mysql5.7版本&#xff0c;安装mysql有两种思路&#xff0c;直接拉取mysql镜像和自己做mysql镜像&#xf…

【python基础学习10课_面向对象、封装、继承、多态】

一、类与对象 1、类的定义 在类的里面&#xff0c;称之为方法。 在类的外面&#xff0c;称之为函数。类&#xff1a;人类&#xff0c;一个族群&#xff0c;是一个群体类的语法规则&#xff1a;class 自定义的类名():属性 -- 变量方法 -- 函数类&#xff0c;首字母大写&#x…

软考-中级-系统集成2023年综合知识(五)

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 软考中级专栏回顾 专栏…

阿里云服务器配置选择哪个比较好?看花眼了

阿里云服务器配置怎么选择&#xff1f;CPU内存、公网带宽和系统盘怎么选择&#xff1f;个人开发者或中小企业选择轻量应用服务器、ECS经济型e实例&#xff0c;企业用户选择ECS通用算力型u1云服务器、ECS计算型c7、通用型g7云服务器&#xff0c;阿里云服务器网aliyunfuwuqi.com整…

Java常用笔试题,面试java对未来的规划

最重要的话 2021年&#xff0c;真希望行业能春暖花开。 去年由于疫情的影响&#xff0c;无数行业都受到了影响&#xff0c;互联网寒冬下&#xff0c;许多程序员被裁&#xff0c;大环境格外困难。 我被公司裁掉后&#xff0c;便着急地开始找工作&#xff0c;一次次地碰壁&#…

微信jsSDK前端签名错误,巨坑; 前后端分离的一大失误。

微信 JS 接口签名校验工具 1. 确保你后端生成的签名是正确&#xff0c;这个是第一步。否则后面都是白扯。 以用上面微信自带的验证签名工龄进行验证。 确保生成的签名和你的签名是一致的。 2. timestamp需要是字符串类型. 3. 切记&#xff0c;URL不要encode&#xff0c;如果…

9.12零钱兑换(LC518-M)(开始完全背包,与01背包的不同仅在于遍历顺序)

算法&#xff1a; 这是一道典型的背包问题&#xff0c;一看到钱币数量不限&#xff0c;就知道这是一个完全背包。 但本题和纯完全背包不一样&#xff0c;纯完全背包是凑成背包最大价值是多少&#xff0c;而本题是要求凑成总金额的物品组合个数&#xff01; 动规五步曲&#…

剑指offer--c++--n个骰子的点数

目录 题目&#xff1a; 题目分析&#xff1a; 最后编写代码&#xff1a; 输出结果 题目&#xff1a; 把n个骰子扔在地上&#xff0c;所有骰子朝上一面的点数之和为s。输入n&#xff0c;打印出s的所有可能的值出现的概率。 感谢大佬的帮助&#xff1a;https://www.cnblogs.c…

人人都写过的6个bug

大家好&#xff0c;我是知微。 程序员写bug几乎是家常便饭&#xff0c;也是我们每个人成长过程中难以避免的一部分。 为了缓解这份“尴尬”&#xff0c;今天想和大家分享一些曾经都会遇到过的bug&#xff0c;让我们一起来看看这些“经典之作”。 1、数组越界 #include <…