一种基于1553B总线的矢量字操作方法与流程


一种基于1553b总线矢量字操作方法
技术领域
1.本发明属于航空总线技术领域,涉及矢量字操作,具体涉及一种基于1553b总线的矢量字操作方法。


背景技术:



2.mil-sts-1553b是一种分布式处理、集中式控制的数据总线,为应对总线系统物理网络可能发生的故障提高总线系统容错性,总线结构采用双冗余或者多冗余的结构设计。在1553b总线系统中,总线网络由一个总线控制器(bus controller,bc)、若干个远程终端(remote terminal,rt)、一个总线监视器(bus monitor,bm)、一个备份总线控制器(backup bus controller,bbc)和若干线缆组成。1553b总线的基本拓扑结构如下图1所示。
3.1.总线控制器(bc)
4.在总线网络中,总线控制器主要负责启动以及控制总线上的消息传输,通过读取上位机配置的命令字列表,对系统的通信进行相应的管理与调度。因此,在总线系统中所有命令字都由总线控制器控制发送。在正常情况下,1553b总线网络系统只会配置一个总线控制器,但是为了进一步提高总线系统的稳定性、可靠性以及容错性,防止总线控制器因发生故障而使得整个系统无法工作。因此,在总线系统中设计了备份总线控制器。此外,在任何情况下总线系统中只会有一个总线控制器bc处于正常工作状态。
5.2.远程终端(rt)
6.在总线系统中,远程终端作为连接不同机载设备子系统和总线系统通信网络之间的接口,它的主要功能是对从总线网络中收到的有效命令字做出相应的响应—回应相应的状态字或数据字。在总线系统中,由于总线控制器负责控制所有命令字的调度与发送,因此远程终端均是被动地回复相应的消息。在1553b总线网络中,最多能够有31个远程终端,每个远程终端都有一个唯一的地址。
7.3.总线监视器(bm)
8.总线监视器主要负责监听和记录总线网络中传输的命令字、数据字和状态字。记录是为了方便进行脱机分析,监听是为了实时掌握系统的工作状态并为备份总线控制器提供相应的信息以便在必要时能够接替原来的总线控制器,从而使系统能够继续稳定地工作。
9.4.备份总线控制器(bbc)
10.备份总线控制器主要负责监控总线控制器的工作状态。在总线控制器突发故障而无法正常控制总线系统的通信调度时,它将自动切换成总线控制器的工作模式,以维持总线系统的正常运行。
11.在传统的1553b总线系统中,远程终端(rt)通过1553b总线向总线控制器(bc)发送数据过程如下。
12.步骤1、设置双口ram(随机存取存储器)。在远程终端设置一个双口ram,空间不小于16bit x 32k,双口ram的两端能够被远程终端的主机和mbi从机访问。在双口ram上定义
16个缓存空间用来存放将要被发送给总线控制器的数据。具体如下图2所示。
13.步骤2、设置矢量字寄存器。在远程终端设置一个16位位宽的矢量字寄存器reg_vector_word[15:0]。矢量字的16位分别对应双口ram的16个缓存空间。即矢量字的[0]、[1]、[2]、
……
[15]一一对应双口ram的缓存空间0、空间1、空间2、
……
空间15。
[0014]
步骤3、主机写ram。在远程终端(rt)系统中主机将需要发送的数据写入双口ram的缓存空间,主机写地址为host_waddr[15:0],host_waddr[6:3]=x(0《=x《=15)中x为10进制数。
[0015]
步骤4、主机读矢量字寄存器。在步骤3描述的远程终端(rt)中,主机从矢量字寄存器中读取矢量字的当前数值。
[0016]
步骤5、主机置矢量字寄存器。将步骤4读出的矢量字数值与一个16位常数进行按位或运算,该常数第x位为1其余位为0。
[0017]
步骤3和步骤5具体如图4所示。
[0018]
步骤6、mbi从机读ram。在远程终端(rt)中从机将需要发送的数据从双口ram的缓存空间读出通过1553b总线发送给总线控制器(bc),读地址为slave_raddr[15:0],slave_raddr[6:3]=x(0《=x《=15)中x为10进制数。
[0019]
步骤7、mbi从机读矢量字寄存器。在步骤6描述的远程终端(rt)中,mbi从机从矢量字寄存器中读取矢量字的当前数值。
[0020]
步骤8、mbi从机清零矢量字寄存器。将步骤7读出的矢量字数值与一个16位常数进行按位与运算,该常数第x位为0其余位为1。具体如图5所示。
[0021]
上述传统的1553b总线系统中,远程终端(rt)通过1553b总线向总线控制器(bc)发送数据过程针对矢量字的操作有两个,分别是主机置矢量字和mbi从机清矢量字。
[0022]
就具体步骤而言,主机置矢量字的操作步骤为主机读取矢量字、主机置矢量字;mbi从机清矢量字的操作步骤为读取矢量字和mbi从机清矢量字;如果这两个操作交叉在一块,会产生下面两种情况的问题。
[0023]
情况1:主机读取矢量字、mbi从机读取矢量字、主机置矢量字a位、mbi从机清除矢量字b位,在这种情况主机置矢量字a位不成功。
[0024]
情况2:mbi从机读取矢量字、主机读取矢量字、mbi从机清除矢量字b位、主机置矢量a位,在这种情况mbi从机清除矢量字b位不成功。


技术实现要素:



[0025]
针对现有技术存在的不足,本发明的目的在于,提供了一种基于1553b总线的矢量字操作方法,解决现有技术中传统1553b总线远程终端中的置矢量字错误和清矢量字错误的技术问题问题。
[0026]
为了解决上述技术问题,本发明采用如下技术方案予以实现:
[0027]
一种基于1553b总线的矢量字操作方法,该方法中远程终端的处理芯片为fpga芯片,该方法具体包括如下步骤:
[0028]
步骤1,在远程终端的fpga芯片上建立双口ram、建立远程终端的矢量字寄存器、矢量字置位匹配寄存器和矢量字清零匹配寄存器;
[0029]
步骤2,远程终端的主机将待发送的数据写入双口ram同时逻辑置位矢量字寄存
器;
[0030]
步骤3,远程终端的mbi从机从双口ram读取待发送的数据同时逻辑清零矢量字寄存器。
[0031]
本发明还具有如下技术特征:
[0032]
具体的,步骤1具体包括如下子步骤:
[0033]
步骤1.1,在远程终端的fpga上建立一个16bit x 32k的双口ram,ram的一端接入主机另一端接入mbi从机;在ram上设置16个缓存空间,主机将要发送的数据写入16个缓存空间,从机从16个缓存空间读取待发送数据;
[0034]
步骤1.2,为远程终端建立矢量字寄存器reg_vector_word[15:0],主机和从机能够读取该矢量字的数值,逻辑能够写该矢量字寄存器,即主机能够置位矢量字,从机能够清零矢量字;该寄存器有16位,每一位对应一个双口ram的一个缓存空间;
[0035]
步骤1.3,为远程终端建立矢量字置位匹配寄存器reg_vector_word_match_set[15:0],该寄存器由从机设置,用来与主机的写地址匹配使用;
[0036]
步骤1.4,为远程终端建立矢量字清零匹配寄存器reg_vector_word_match_clear[15:0],该寄存器由从机设置,用来与从机的读地址匹配使用。
[0037]
具体的,步骤2中具体包括如下子步骤:
[0038]
步骤2.1,mbi从机配置远程终端中的矢量字置位匹配寄存器reg_vector_word_match_set[15:0],reg_vector_word_match_set[15:7]决定了待缓存空间在双口ram中的位置,reg_vector_word_match_set[6:0]配置为0即可;
[0039]
步骤2.2,当远程终端的主机需要发送数据给总线控制器时,主机将待发数据写入双口ram缓存空间中;
[0040]
步骤2.3,逻辑监控步骤2.2中主机写ram的地址host_waddr[15:0],当主机写地址host_waddr[15:7]和host_waddr[1:0]分别与矢量字置位匹配寄存器reg_vector_word_match_set[15:7]和reg_vector_word_match_set[1:0]相等,则逻辑将矢量字寄存器的第x位置1,x为主机写地址host_waddr[5:2]的十进制数。
[0041]
具体的,步骤3中具体包括如下子步骤:
[0042]
步骤3.1,mbi从机配置远程终端中的矢量字清零匹配寄存器reg_vector_word_match_clear[15:0],reg_vector_word_match_clear[15:7]决定了缓存空间在双口ram中的位置,reg_vector_word_match_clear[6:0]配置为0即可;
[0043]
步骤3.2,当远程终端的mbi从机需要发送数据给总线控制器时,mbi从机将待发数据从双口ram缓存空间读出来,通过1553b总线发给总线控制器;
[0044]
步骤3.3,逻辑监控步骤3.2中从机读ram的地址slave_raddr[15:0],当从机读地址slave_raddr[15:7]和slave_raddr[1:0]分别与矢量字清零匹配寄存器reg_vector_word_match_clear[15:7]和reg_vector_word_match_clear[1:0]相等,则逻辑将矢量字寄存器的第x位清零,x为从机读地址slave_raddr[5:2]的十进制数。
[0045]
本发明与现有技术相比,具有如下技术效果:
[0046]
(ⅰ)本发明给出一种新型矢量字操作解决方案,解决了现有技术中主机和mbi从机访问缓存空间出现的置矢量字错误和清矢量字错误问题。
[0047]
(ⅱ)本发明的步骤2中逻辑将读矢量字和置矢量字两个操作合并为单一的原子操
作,而不是由主机进行读矢量字和置矢量字两个操作。更不会出现逻辑读矢量字和逻辑置矢量字之间有从机插入读矢量字的操作。
[0048]
(ⅲ)本发明步骤3中逻辑将读矢量字和清矢量字两个操作合并为单一的原子操作,而不是由mbi从机进行读矢量字和清矢量字两个操作。更不会出现逻辑读矢量字和逻辑清矢量字之间有主机插入读矢量字的操作。
[0049]
(ⅳ)本发明中,步骤2的读矢量字和置矢量字与步骤3的读矢量字和清矢量字都是由逻辑独自完成,并且分别将两个操作合并为单一的原子操作。避免了传统1553b系统中矢量字置位和清零由不同主体操作,矢量字的2次读取、置位和清零等4个操作顺序混乱带来的置位错误和清零错误问题。
附图说明
[0050]
图1为1553b总线基本结构。
[0051]
图2为远程终端向总线控制器发送数据示意图。
[0052]
图3为矢量字寄存器与缓存空间对应示意图。
[0053]
图4为矢量字置位示意图。
[0054]
图5为矢量字清零示意图。
[0055]
图6为逻辑置位矢量字寄存器。
[0056]
图7为逻辑清零矢量字寄存器。
[0057]
以下结合实施例对本发明的具体内容作进一步详细解释说明。
具体实施方式
[0058]
需要说明的是,本发明中的所有设备,在没有特殊说明的情况下,均采用本领域已知的设备,例如测试设备采用本领域已知的测试设备。
[0059]
需要说明的是,本发明中:
[0060]
主机:指远程终端系统中的上位机。
[0061]
mbi从机:指远程终端系统中板卡上处理器。
[0062]
缓存空间:双口ram上的16个空间,当远程终端向总线控制器发送数据时,主机先将待发送的数据写到缓存空间上,然后mbi从机读出缓存空间上的数据发送到1553b总线上。
[0063]
逻辑:指代fpga(现场可编程门阵列)芯片上的逻辑。
[0064]
本发明的整体技术构思为:为了解决传统1553b总线矢量字操作的种种弊端,本发明针对1553b总线系统矢量字操作进行了重大改进。
[0065]
首先,原来由主机读矢量字、主机置矢量字改为逻辑被动读矢量字并同时置矢量字,操作主体由主机改为逻辑被动执行,并且将两个操作合二为一。
[0066]
其次,原来由mbi从机读矢量字、mbi从机清矢量字改为逻辑被动读矢量字并同时清矢量字,操作主体由mbi从机改为逻辑被动执行,并且将两个操作合二为一。
[0067]
最后,置矢量字和清矢量字的主体都是逻辑,无论置矢量字或清矢量字都是顺序执行,不会出现置矢量字或清矢量字错误情况。
[0068]
以下给出本发明的具体实施例,需要说明的是本发明并不局限于以下具体实施
例,凡在本技术技术方案基础上做的等同变换均落入本发明的保护范围。
[0069]
实施例:
[0070]
本实施例给出一种基于1553b总线的矢量字操作方法,该方法中远程终端(rt)的处理芯片为fpga芯片,该方法具体包括如下步骤:
[0071]
步骤1,在远程终端(rt)的fpga芯片上建立双口ram、建立远程终端(rt)的矢量字寄存器、矢量字置位匹配寄存器和矢量字清零匹配寄存器。
[0072]
具体的,步骤1具体包括如下子步骤:
[0073]
步骤1.1,在远程终端(rt)的fpga上建立一个16bit x 32k的双口ram,ram的一端接入主机另一端接入mbi从机;在ram上设置16个缓存空间,主机将要发送的数据写入16个缓存空间,从机从16个缓存空间读取待发送数据。
[0074]
步骤1.2,为远程终端(rt)建立矢量字寄存器reg_vector_word[15:0],矢量字相关寄存器列表如表1所示,主机和从机能够读取该矢量字的数值,逻辑能够写该矢量字寄存器,即主机能够置位矢量字,从机能够清零矢量字;该寄存器有16位,每一位对应一个双口ram的一个缓存空间,如图2所示;矢量字寄存器与缓存空间对应示意图如图3所示。
[0075]
表1矢量字相关寄存器列表
[0076][0077]
步骤1.3,为远程终端(rt)建立矢量字置位匹配寄存器reg_vector_word_match_set[15:0],该寄存器由从机设置,用来与主机的写地址匹配使用。
[0078]
步骤1.4,为远程终端(rt)建立矢量字清零匹配寄存器reg_vector_word_match_clear[15:0],该寄存器由从机设置,用来与从机的读地址匹配使用。
[0079]
步骤2,远程终端(rt)的主机将待发送的数据写入双口ram同时逻辑置位矢量字寄存器(此处的逻辑指fpga芯片上的逻辑),如图4和图6所示。
[0080]
具体的,步骤2中具体包括如下子步骤:
[0081]
步骤2.1,mbi从机配置远程终端(rt)中的矢量字置位匹配寄存器reg_vector_word_match_set[15:0],reg_vector_word_match_set[15:7]决定了待缓存空间在双口ram中的位置,reg_vector_word_match_set[6:0]配置为0即可。
[0082]
步骤2.2,当远程终端(rt)的主机需要发送数据给总线控制器(bc)时,主机将待发数据写入双口ram缓存空间中。
[0083]
步骤2.3,逻辑监控步骤2.2中主机写ram的地址host_waddr[15:0],当主机写地址host_waddr[15:7]和host_waddr[1:0]分别与矢量字置位匹配寄存器reg_vector_word_match_set[15:7]和reg_vector_word_match_set[1:0]相等,则逻辑将矢量字寄存器的第x位置1,x为主机写地址host_waddr[5:2]的十进制数。
[0084]
进一步的,步骤2.3中逻辑将读矢量字和置矢量字两个操作合并为单一的原子操作,而不是由主机进行读矢量字和置矢量字两个操作。更不会出现逻辑读矢量字和逻辑置矢量字之间有从机插入读矢量字的操作。该步骤是本发明的重要创新点之一。
[0085]
步骤2的技术效果:步骤2中逻辑将读矢量字和置矢量字两个操作合并为单一的原子操作,而不是由主机进行读矢量字和置矢量字两个操作。更不会出现逻辑读矢量字和逻辑置矢量字之间有从机插入读矢量字的操作。该步骤是本发明的第一个创新点。
[0086]
步骤3,远程终端(rt)的mbi从机从双口ram读取待发送的数据同时逻辑清零矢量字寄存器(此处的逻辑指fpga芯片上的逻辑),如图5和图7所示。
[0087]
具体的,步骤3中具体包括如下子步骤:
[0088]
步骤3.1,mbi从机配置远程终端(rt)中的矢量字清零匹配寄存器reg_vector_word_match_clear[15:0],reg_vector_word_match_clear[15:7]决定了缓存空间在双口ram中的位置,reg_vector_word_match_clear[6:0]配置为0即可。
[0089]
步骤3.2,当远程终端(rt)的mbi从机需要发送数据给总线控制器(bc)时,mbi从机将待发数据从双口ram缓存空间读出来,通过1553b总线发给总线控制器(bc)。
[0090]
步骤3.3,逻辑监控步骤3.2中从机读ram的地址slave_raddr[15:0],当从机读地址slave_raddr[15:7]和slave_raddr[1:0]分别与矢量字清零匹配寄存器reg_vector_word_match_clear[15:7]和reg_vector_word_match_clear[1:0]相等,则逻辑将矢量字寄存器的第x位清零,x为从机读地址slave_raddr[5:2]的十进制数。
[0091]
进一步的,步骤3.3中逻辑将读矢量字和清矢量字两个操作合并为单一的原子操作,而不是由mbi从机进行读矢量字和清矢量字两个操作。更不会出现逻辑读矢量字和逻辑清矢量字之间有主机插入读矢量字的操作。该该步骤是本发明的重要创新点之一。
[0092]
步骤3的技术效果:步骤3中逻辑将读矢量字和清矢量字两个操作合并为单一的原子操作,而不是由mbi从机进行读矢量字和清矢量字两个操作。更不会出现逻辑读矢量字和逻辑清矢量字之间有主机插入读矢量字的操作。该步骤是本发明的第二个创新点。
[0093]
步骤2和步骤3连续操作的技术效果:步骤2的读矢量字和置矢量字与步骤3的读矢量字和清矢量字都是由逻辑独自完成,并且分别将两个操作合并为单一的原子操作。避免了传统1553b系统中矢量字置位和清零由不同主体操作,矢量字的2次读取、置位和清零等4个操作顺序混乱带来的置位错误和清零错误问题。步骤2和步骤3连续操作是本发明的第三个创新点。

技术特征:


1.一种基于1553b总线的矢量字操作方法,其特征在于,该方法中远程终端的处理芯片为fpga芯片,所述的方法具体包括如下步骤:步骤1,在远程终端的fpga芯片上建立双口ram、建立远程终端的矢量字寄存器、矢量字置位匹配寄存器和矢量字清零匹配寄存器;步骤2,远程终端的主机将待发送的数据写入双口ram同时逻辑置位矢量字寄存器;步骤3,远程终端的mbi从机从双口ram读取待发送的数据同时逻辑清零矢量字寄存器。2.如权利要求1所述的基于1553b总线的矢量字操作方法,其特征在于,步骤1具体包括如下子步骤:步骤1.1,在远程终端的fpga上建立一个16bit x 32k的双口ram,ram的一端接入主机另一端接入mbi从机;在ram上设置16个缓存空间,主机将要发送的数据写入16个缓存空间,从机从16个缓存空间读取待发送数据;步骤1.2,为远程终端建立矢量字寄存器reg_vector_word[15:0],主机和从机能够读取该矢量字的数值,逻辑能够写该矢量字寄存器,即主机能够置位矢量字,从机能够清零矢量字;该寄存器有16位,每一位对应一个双口ram的一个缓存空间;步骤1.3,为远程终端建立矢量字置位匹配寄存器reg_vector_word_match_set[15:0],该寄存器由从机设置,用来与主机的写地址匹配使用;步骤1.4,为远程终端建立矢量字清零匹配寄存器reg_vector_word_match_clear[15:0],该寄存器由从机设置,用来与从机的读地址匹配使用。3.如权利要求1所述的基于1553b总线的矢量字操作方法,其特征在于,步骤2中具体包括如下子步骤:步骤2.1,mbi从机配置远程终端中的矢量字置位匹配寄存器reg_vector_word_match_set[15:0],reg_vector_word_match_set[15:7]决定了待缓存空间在双口ram中的位置,reg_vector_word_match_set[6:0]配置为0即可;步骤2.2,当远程终端的主机需要发送数据给总线控制器时,主机将待发数据写入双口ram缓存空间中;步骤2.3,逻辑监控步骤2.2中主机写ram的地址host_waddr[15:0],当主机写地址host_waddr[15:7]和host_waddr[1:0]分别与矢量字置位匹配寄存器reg_vector_word_match_set[15:7]和reg_vector_word_match_set[1:0]相等,则逻辑将矢量字寄存器的第x位置1,x为主机写地址host_waddr[5:2]的十进制数。4.如权利要求1所述的基于1553b总线的矢量字操作方法,其特征在于,步骤3中具体包括如下子步骤:步骤3.1,mbi从机配置远程终端中的矢量字清零匹配寄存器reg_vector_word_match_clear[15:0],reg_vector_word_match_clear[15:7]决定了缓存空间在双口ram中的位置,reg_vector_word_match_clear[6:0]配置为0即可;步骤3.2,当远程终端的mbi从机需要发送数据给总线控制器时,mbi从机将待发数据从双口ram缓存空间读出来,通过1553b总线发给总线控制器;步骤3.3,逻辑监控步骤3.2中从机读ram的地址slave_raddr[15:0],当从机读地址slave_raddr[15:7]和slave_raddr[1:0]分别与矢量字清零匹配寄存器reg_vector_word_match_clear[15:7]和reg_vector_word_match_clear[1:0]相等,则逻辑将矢量字寄存器
的第x位清零,x为从机读地址slave_raddr[5:2]的十进制数。

技术总结


本发明提供了一种基于1553B总线的矢量字操作方法,包括:步骤1,在远程终端的FPGA芯片上建立双口RAM、建立远程终端的矢量字寄存器、矢量字置位匹配寄存器和矢量字清零匹配寄存器;步骤2,远程终端的主机将待发送的数据写入双口RAM同时逻辑置位矢量字寄存器;步骤3,远程终端的MBI从机从双口RAM读取待发送的数据同时逻辑清零矢量字寄存器。步骤2的读矢量字和置矢量字与步骤3的读矢量字和清矢量字都是由逻辑独自完成,并且分别将两个操作合并为单一的原子操作。避免了传统1553B系统中矢量字置位和清零由不同主体操作,矢量字的2次读取、置位和清零等4个操作顺序混乱带来的置位错误和清零错误问题。和清零错误问题。和清零错误问题。


技术研发人员:

王红春 王国栋 纸少瑜 程德玉 刘晓平 李张军

受保护的技术使用者:

西安云维智联科技有限公司

技术研发日:

2022.08.19

技术公布日:

2022/12/12

本文发布于:2024-09-22 05:33:44,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/39840.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:矢量   寄存器   步骤   总线
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议