CN114615353B - 一种基于axi总线的rmap目标方ip核及其命令响应方法 - Google Patents

一种基于axi总线的rmap目标方ip核及其命令响应方法 Download PDF

Info

Publication number
CN114615353B
CN114615353B CN202210121266.6A CN202210121266A CN114615353B CN 114615353 B CN114615353 B CN 114615353B CN 202210121266 A CN202210121266 A CN 202210121266A CN 114615353 B CN114615353 B CN 114615353B
Authority
CN
China
Prior art keywords
packet
rmap
protocol
module
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210121266.6A
Other languages
English (en)
Other versions
CN114615353A (zh
Inventor
柳萌
安军社
祝平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Space Science Center of CAS
Original Assignee
National Space Science Center of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National Space Science Center of CAS filed Critical National Space Science Center of CAS
Priority to CN202210121266.6A priority Critical patent/CN114615353B/zh
Publication of CN114615353A publication Critical patent/CN114615353A/zh
Application granted granted Critical
Publication of CN114615353B publication Critical patent/CN114615353B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/4028Bus for use in transportation systems the transportation system being an aircraft

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及SpaceWire航天总线网络领域,特别涉及一种基于AXI总线的RMAP目标方IP核及其命令响应方法,本发明通过协议解复用模块解析来自SpW节点控制器的不同类型的SpW数据包,并按类型分别发送至目标方处理器、发起方处理器或上位机中,协议复用模块并采用轮询仲裁方法,决定发送至SpW节点控制器的发送缓存模块的协议包类型,并控制复用过程。本申请提供的基于AXI总线的RMAP目标方IP及其响应方法,使得具有本申请的IP核的SpaceWire网络远程终端设备对RMAP命令能产生高效快速的响应,同时,具备良好的扩展性能,方便后续增加发起方功能。

Description

一种基于AXI总线的RMAP目标方IP核及其命令响应方法
技术领域
本发明涉及SpaceWire航天总线网络领域,特别涉及一种基于AXI总线的RMAP目标方IP核及其命令响应方法,本发明提供的IP核易于功能扩展。
背景技术
在航天器上,特定的数据系统之间可以使用不同类型的数据子网络。在轨接口业务(Spacecraft Onboard Interface Services)提供了标准模型内存访问服务SOIS-MAP,以使在轨应用程序不必关心这些子网的性质。考虑到不同数据链路层支持的功能的差异,SOIS子网服务为上层应用程序提供了聚合的公共接口和公共服务(汇聚),以便通过任何单个数据链路进行通信。应用程序与SOIS子网服务一起,共同提供了航天器几乎全部组件之间通信的标准方式。
SOIS-MAP模型内存本身或其管理器不被视为服务的用户,而是嵌入在子网中的资源,这意味着被访问的内存是子网的一部分,而不是子网的用户。RMAP则是提供一个管道,内存存取请求和响应通过子网在用户和实现对内存的访问的内存管理器之间透明地传输。RMAP允许访问未嵌入子网的内存,即内存是子网的用户,而不是子网的一部分,具体表现就是RMAP模型里远端存在与用户对等的实体,在SOIS-MAP模型里不存在。通过RMAP协议可以从SpaceWire网络节点的存储器映射寄存器或存储器中读写数据。协议具体的实现应具有三种功能之一:发起方功能、目标方功能、同时包含发起方和目标方功能,RMAP较SOIS-MAP使用更灵活,但实现难度更高。
目前RMAP协议尚处于研究阶段,国内关于RMAP的研究较少,尚未有相关IP核及其响应方法。
发明内容
本发明的目的在于,克服目前尚无RMAP目标方IP核及其命令响应方法的问题,从而提供一种基于AXI总线的RMAP目标方IP核及其命令响应方法。本发明提供的基于AXI总线的RMAP目标方IP核及其命令响应方法,用于提供SpaceWire网络中远程终端设备(节点、路由器等)中的寄存器、FIFO、内存或其存储单元等对RMAP协议命令的响应。该IP核实现对RMAP协议读、写和读改写命令操作的解析和执行,具体地,该IP可以解析RMAP协议命令包包头;支持向上位机申请存储单元操作权限并进行存取操作;数据的读写采取DMA(DirectMemory Access直接存储器访问)方式,脱离CPU束缚,以支持非智能终端;IP核实现RMAP协议回复包编码和发送,可对非RMAP协议数据旁路处理;IP核预留RMAP发起方功能扩展接口;支持IP核状态实时检测功能。
为实现上述目的,本发明提供的基于AXI总线的RMAP目标方IP核,包括:与AXI总线接口连接的协议处理器和目标方处理器;
所述协议处理器模块包括:协议复用模块和协议解复用模块;
所述协议解复用模块,用于读取并接收SpW节点控制器的接收缓存模块中的SpW数据包,并判断所述SpW数据包的类型;其中,所述SpW数据包的类型的类型包括:无效SpW数据包、RMAP协议目标方命令包、RMAP协议发起方回复包和非RMAP协议SpW数据包;所述协议解复用模块还用于将所述RMAP协议目标方命令包解复用至目标方处理器;用于将所述RMAP协议发起方回复包解复用至发起方处理器,以进行后续处理;用于在AXI总线接口与上位机连接时,将所述非RMAP协议SpW数据包解复用至上位机,以进行后续处理,用于在所述AXI总线接口与非智能终端连接时,将所述非RMAP协议SpW数据包自动泄放;
所述目标方处理器,用于对所述RMAP协议目标方命令包依次进行包头解码、包头校验和数据校验处理,并用于检查所述SpW数据包中内存操作命令事务的有效性;还用于提出相应的内存操作授权申请,待所述相应的内存操作授权申请授权后,执行所述内存操作命令,组织RMAP协议目标方回复包,并提出RMAP协议目标方回复包发送申请信号;还用于将RMAP协议目标方回复包写入SpW节点控制器的发送缓存模块;
所述协议复用模块,用于接收来自目标方处理器的RMAP协议目标方回复包发送申请信号、来自所述发起方处理器的RMAP协议发起方命令包发送申请信号和来自所述上位机的非RMAP协议包发送申请信号;用于采用轮询仲裁调度,判断发送至SpW节点控制器的发送缓存模块的协议包类型;用于将非RMAP协议包写入SpW节点控制器的发送缓存模块。
作为上述系统的一种改进,所述目标方处理器包括:包头解码模块、检查控制模块、目标方主控逻辑单元、回复包编码模块和目标方DMA控制器(Direct Memory Access)模块;其中,
所述包头解码模块,基于所述目标方主控逻辑单元控制,用于对所述RMAP协议目标方命令包的包头进行解码;
所述检查控制模块,基于所述目标方主控逻辑单元控制,用于校验所述RMAP协议目标方命令包的包头和数据;用于将所述RMAP协议目标方命令包的数据写入所述数据校验缓存模块;还用于判断所述RMAP协议目标方命令包中的内存操作命令事务的有效性;
所述目标方主控逻辑单元,在所述AXI总线接口与上位机连接时,用于将有效的所述内存操作命令信息提交至上位机,并向上位机提出与所述内存操作命令信息相应的内存操作授权申请;用于接收所述上位机发来的授权信息;用于提出RMAP协议目标方回复包发送申请信号;
所述目标方主控逻辑单元,在所述AXI总线接口与非智能终端连接时,用于提出与所述内存操作命令信息相应的内存操作授权申请,并自动授权;用于提出RMAP协议目标方回复包发送申请信号;用于发送RMAP协议目标方回复包发送申请信号至所述协议复用模块;
所述目标方DMA控制器模块,基于所述目标方主控逻辑单元控制,用于执行所述相应的内存操作;
所述回复包编码模块,基于所述目标方主控逻辑单元控制,用于组织RMAP协议目标方回复包;还用于将RMAP协议目标方回复包写入SpW节点控制器的发送缓存模块。
作为上述系统的一种改进,所述IP核还包括:与APB接口连接的状态配置模块和时间码处理器;
所述状态和配置模块,用于接收所述APB接口发来的配置信息,并配置所述IP核各模块的参数;用于监控所述IP核各模块的运行状态,并将运行状态信息发送至APB接口;
所述时间码处理器模块,用于维护和更新内部时间码;用于接收外部时间码;还用于输出更新的内部时间码。
作为上述系统的一种改进,所述协议处理器模块还包括:SpW数据回环模块;其中,
所述SpW数据回环模块用于控制回环功能的开启和关闭;当所述回环功能开启时,SpW节点控制器中的接收缓存模块发送的SpW数据包,通过所述SpW数据回环模返回至所述SpW节点控制器中的发送缓存模块;当所述回环功能关闭时,所述SpW节点控制器中的接收缓存模块发送的SpW数据包由协议解复用模块接收。
为实现本发明的再一目的,本发明提供一种基于AXI总线的RMAP目标方IP核命令响应方法,上述IP核实现,其特征在于,包括以下步骤:
步骤1)通过协议解复用模块,读取并接收SpW节点控制器的接收缓存模块中的SpW数据包,并判断所述SpW数据包的类型;
当所述SpW数据包为无效SpW数据包时,停止接收本次SpW数据包;
当所述SpW数据包的类型为RMAP协议目标方命令包,将其解复用至目标方处理器,并执行步骤2);
当所述SpW数据包的类型为RMAP协议发起方回复包时,将其解复用至发起方处理器;并执行步骤5);
当所述SpW数据包的类型为非RMAP协议SpW数据包且所述AXI总线接口与上位机连接时,将其解复用至上位机,停止接收本次SpW数据包,并执行步骤6);当所述SpW数据包的类型为非RMAP协议SpW数据包且所述AXI总线接口与非智能终端连接时,或将其自动泄放后,停止接收本次SpW数据包;
步骤2)通过所述目标方处理器,对所述SpW数据包依次进行包头解码、包头校验和数据校验处理,并检查所述SpW数据包中内存操作命令事务的有效性;执行步骤3);
步骤3)通过所述目标方处理器,针对有效的内存操作命令,提出相应的内存操作授权申请;待所述相应的内存操作授权申请授权后,执行所述内存操作命令;并组织RMAP协议目标方回复包,执行步骤4);
步骤4)通过所述目标方处理器,向协议复用模块提出RMAP协议目标方回复包发送申请信号,执行步骤7);
步骤5)通过所述发起方处理器对RMAP协议发起方回复包进行处理,生成RMAP协议发起方命令包,并向协议复用模块提出所述RMAP协议发起方命令包发送申请信号,执行步骤7);
步骤6)通过所述上位机对所述非RMAP协议SpW数据包进行处理,生成非RMAP协议包,并向所述协议复用模块提出非RMAP协议包发送申请信号,执行步骤7);
步骤7)通过所述协议复用模块接收RMAP协议目标方回复包发送申请信号、RMAP协议发起方命令包发送申请信号和非RMAP协议包发送申请信号,并基于轮询仲裁调度,决定发送至所述SpW节点控制器的发送缓存模块的协议包类型,并发送。
作为上述方法的一种改进,所述方法还包括预处理步骤:关闭所述SpW数据回环模块的回环功能。
作为上述方法的一种改进,所述步骤1)中,判断所述SpW数据包的类型的具体步骤包括:
通过所述协议解复用模块,在首字直通型FIFO非空时,判断所述SpW数据包的第一个码字是否是EOP或者EEP,如果第一个码字是EOP或者EEP则认为接收到无效SpW数据包,读取后结束本次接收;如果不是则读取第一个码字后待FIFO再次非空,判别第二个码字是否是EOP或者EEP,如果第二个码字是EOP或者EEP,则认为接收到无效SpW数据包,读取后结束本次接收;如果不是则继续判断第二个码字是否是RMAP协议字,其中,所述RMAP协议字为:9’h001,如果第二个码字不是RMAP协议字则认为接收到所述非RMAP协议SpW数据包;如果第二个码字是RMAP协议字,则读取第二个码字后待FIFO再次非空,判别第三个码字是否是EOP或者EEP,如果第三个码字是EOP或者EEP则认为接收到无效SpW数据包,如果不是则认为接收到RMAP协议包,并继续判断第三个码字的控制字的命令/回复位;其中,EOP表示正常包结束符,EEP表示错误包结束符;
如果控制字的命令/回复位是1’b1,则认为接收到RMAP协议目标方命令包;
如果控制字的命令/回复位是1’b0,则认为接收到RMAP协议发起方回复包。
作为上述方法的一种改进,所述步骤2)具体包括:
步骤2-1)通过所述目标方处理器的包头解码模块,对所述RMAP协议目标方命令包的包头进行解码;如果所述RMAP协议目标方命令包包括:读改写命令或/和写前校验命令,则通过所述目标方处理器的检查控制模块将所述RMAP协议目标方命令包的数据事先写入所述目标方处理器的数据校验缓存模块,再通过所述检查控制模块,基于所述目标方处理器的目标方主控逻辑单元的控制,开始依次对所述RMAP协议目标方命令包的包头和数据进行校验;否则,直接通过所述检查控制模块,基于目标方主控逻辑单元的控制,开始依次对所述RMAP协议目标方命令包的包头和数据进行校验;其中,所述检查控制模块通过并行CRC校验计算电路进行包头校验和数据校验处理;
步骤2-2)通过所述检查控制模块,检查经过包头和数据校验后的所述RMAP协议目标方命令包中内存操作命令事务的有效性。
作为上述方法的一种改进,所述步骤3)中授权所述内存操作授权申请的具体包括:
所述AXI总线接口与上位机连接时,通过所述目标方处理器的目标方主控逻辑单元,向所述上位机提出内存操作授权申请,并由所述上位机进行授权;
所述AXI总线接口与非智能终端连接时,所述目标方主控逻辑单元提出内存操作授权申请后,自动授权。
作为上述方法的一种改进,所述步骤3)中执行所述内存操作命令的具体步骤包括:所有命令(写、读或者读改写)操作的地址不需要区分是上位机还是非智能终端,内存操作时,IP本身是总线主设备(Master),操作地址空间是从RMAP IP视角的。存在上位机时,上位机可以是总线主设备,但是不执行RMAP内存操作。一般情况下,上位机视角下的存储空间和RMAP IP核视角下的存储空间是不一样的。
所述RMAP协议目标方命令包是RMAP协议目标方读命令包时,如果所述RMAP协议目标方读命令包的数据长度为0,则通过所述目标方处理器的目标方主控逻辑单元控制所述目标方处理器的回复包编码模块组织RMAP协议目标方读回复包,否则通过所述目标方主控逻辑单元,基于RMAP协议目标方读命令包中的读操作命令,设置并启动DMA控制器,等待DMA控制器读取通过AXI总线接口读取内存地址映射空间的数据后,控制所述回复包编码模块开始组织RMAP协议目标方读回复包;
所述RMAP协议目标方命令包是RMAP协议目标方写命令包时,如果所述RMAP协议目标方命令包的数据长度为0,通过所述目标方主控逻辑单元,根据控制码回复位决定是否控制所述回复包编码模块组织RMAP协议目标方写回复包;如果所述RMAP协议目标方写命令包的数据长度非0,则通过所述目标方主控逻辑单元,基于所述RMAP协议目标方写命令包的写操作命令,设置并启动DMA控制器,DMA控制器通过AXI总线接口向命令包中指定的地址写入数据后,通过所述目标方主控逻辑单元,根据控制码回复位,决定是否控制所述回复包编码模块组织RMAP协议目标方写回复包;
所述RMAP协议目标方命令包是RMAP协议目标方读改写命令包时,如果RMAP协议目标方读改写命令包的数据长度为0,则所述目标方主控逻辑单元控制所述回复包编码模块,组织RMAP协议目标方读改写回复包,否则在AXI总线接口与上位机连接时,通过所述目标方主控逻辑单元,基于RMAP协议目标方读改写命令包中的读改写操作命令,配置并开启DMA控制器,读取指定地址的数据,读取完成后,等待上位机改写;在所述上位机改写完成后,再次配置DMA控制器,通过AXI总线接口向原指定地址写入改写后的数据,最后通过所述目标方主控逻辑单元控制所述回复包编码模块,组织RMAP协议目标方读改写回复包。
作为上述方法的一种改进,所述步骤3)中组织RMAP协议目标方回复包的具体步骤包括:
所述RMAP协议目标方命令包是RMAP协议目标方读命令包且所述RMAP协议目标方命令包的数据长度不为0时,通过所述回复包编码模块组织RMAP协议目标方读回复包的包头,并通过所述检查控制模块计算所述RMAP协议目标方读回复包的包头CRC和读取数据CRC;再通过所述回复包编码模块将所述RMAP协议目标方读回复包的包头、包头CRC、读取数据和读取数据CRC组成RMAP协议目标方读回复包;
所述RMAP协议目标方命令包是RMAP协议目标方读命令包且所述RMAP协议目标方命令包的数据长度为0时,通过所述回复包编码模块组织所述RMAP协议目标方读回复包的包头,并通过所述检查控制模块计算RMAP协议目标方读回复包的包头CRC,再通过所述回复包编码模块将RMAP协议目标方读回复包的包头和包头CRC组织成RMAP协议目标方读回复包;
所述RMAP协议目标方命令包是RMAP协议目标方写命令包时,通过所述回复包编码模块,组织RMAP协议目标方写回复包的包头,并通过所述检查控制模块计算所述RMAP协议目标方写回复包的包头CRC,通过回复包编码模块将所述RMAP协议目标方写回复包的包头和包头CRC组织成RMAP协议目标方写回复包;
所述RMAP协议目标方命令包是RMAP协议目标方读改写命令包且所述RMAP协议目标方命令包的数据长度不为0时,通过所述回复包编码模块,组织RMAP协议目标方读改写回复包的包头,并通过所述检查控制模块计算RMAP协议目标方读改写回复包的包头CRC和和读取到的数据CRC;通过所述回复包编码模块将RMAP协议目标方读改写回复包的包头、包头CRC、读取到的数据和读取到的数据CRC组织成RMAP协议目标方读改写回复包;
所述RMAP协议目标方命令包是RMAP协议目标方读改写命令包且所述RMAP协议目标方命令包的数据长度为0时,通过所述回复包编码模块组织所述RMAP协议目标方读改写回复包的包头,并通过所述检查控制模块计算RMAP协议目标方读改写回复包的包头CRC,再通过所述回复包编码模块将RMAP协议目标方读改写回复包的包头和包头CRC组织成RMAP协议目标方读改写回复包。
读改写操作回复包中的数据来自“读”,具体的操作如下:源方将命令(含包头+数据段)发送给目标方,目标方读取对应地址中的数据B(这个数据B用于回复包),上位机获取源方命令发来的数据段,其中包含数据A和掩码,利用这两者加上自己内部的规则处理得到新的数据C(这个数据C用于写回目标方相应地址),C先返给IP核,由IP核完成写回操作。回复包中数据段用的是数据B,也是用B计算CRC。数据A和掩码数量相同,也和数据B数量相同。作为上述方法的一种改进,所述步骤7)具体包括:
步骤7-1)通过所述协议复用模块接收三种发送申请信号,并发送至仲裁器进行仲裁;
步骤7-2)通过所述仲裁器决定发送的至所述SpW节点控制器的发送缓存模块的协议包,并输出对应的发送许可信号;
步骤7-3)发送对应的协议包至所述SpW节点控制器的发送缓存模块;其中,
如果发送的协议包是RMAP协议目标方回复包,则通过所述目标方处理器的回复包编码模块将其写入所述SpW节点控制器的发送缓存模块;
如果发送的协议包是RMAP协议发起方命令包,则通过所述发起方处理器将其写入所述SpW节点控制器的发送缓存模块;
如果发送的协议包是非RMAP协议包,则通过所述协议复用模块将其写入所述SpW节点控制器的发送缓存模块。
作为上述方法的一种改进,所述协议解复用模块和AXI总线接口之间以及所述协议复用模块和AXI总线接口之间,采用DMA数据传输模式或PIO数据传输模式;所述目标方处理器与所述AXI总线接口之间采用DMA数据传输模式。
本发明的优点在于:
1、本发明提供的基于AXI总线的RMAP目标方IP核及其命令响应方法,可使SpaceWire网络中远程终端设备(节点、路由器等)中的寄存器、FIFO、内存或其存储单元等对RMAP协议命令的响应,还实现了RMAP协议读、写和读改写命令操作的解析和执行,数据的读写采取DMA(Direct Memory Access直接存储器访问)方式,脱离CPU束缚,以支持非智能终端;2、本发明提供的IP核和命令响应方法使用首字直通型FIFO,降低码字访问延迟,可根据所述SpW数据包内容节流,较应用常规FIFO具有更高的性能;
3、本发明提供的IP核和命令响应方法支持三种配置模式,包括:仅配置RMAP目标方、仅配置RMAP发起方和同时配置RMAP目标方和RMAP发起方,利于后期扩展发起方功能;
4、本发明提供的IP核和命令响应方法在进行RMAP协议数据包的数据读写操作时采用DMA数据传输方式,非RMAP协议数据包的数据读写操作时,配置为DMA或PIO传输模式;在处理RMAP协议数据包的基础上,还可对非RMAP协议数据包进行旁路处理;
5、本发明提供的IP核和命令响应方法可以处理数据长度为0的RMAP协议目标方命令包,即RMAP协议空载命令包,RMAP协议空载命令包可用于测试命令是否被IP核所接受;
6、本发明提供的IP核和命令响应方法中,所述检查控制模块通过并行CRC校验计算电路进行包头校验和数据校验处理,校验速度快。
附图说明
图1为本发明提供的基于AXI总线的RMAP目标方IP核的命令响应方法的系统结构示意图;
图2为本发明的包头解码模块工作流程图;
图3(a)为常规FIFO组合逻辑读操作时序图;图3(b)为首字直通型FIFO时序逻辑读操作时序图;
图4为首字直通型FIFO时序读取流程图;
图5为本发明的仲裁器的结构示意图;
图6为本发明的仲裁器中固定优先级编码器的功能示意图;
图7为本发明的协议复用模块的流程图;
图8为本发明的应用场景示意图;
图9为本发明的目标处理器的工作流程图;
图10为本发明的并行CRC校验计算电路的示意图。
具体实施方式
以下结合实施例进一步说明本发明所提供的技术方案。
本发明的目的在于提供一种基于AXI总线且易于功能扩展的RMAP目标方IP,用于提供SpaceWire网络中远程终端设备(节点、路由器等)中的寄存器、FIFO、内存或其存储单元等对RMAP命令的响应。该IP实现对RMAP读、写和读改写命令操作的解析和执行。具体地,该IP可与解析RMAP命令包包头;支持向上位机申请存储单元操作权限并进行存取操作;数据的读写采取DMA方式,脱离CPU束缚,以支持非智能终端;IP实现RMAP回复包编码和发送,可对非RMAP协议数据旁路处理;IP预留RMAP发起方功能扩展接口;支持IP状态实时检测功能。
一、协议数据格式类型的描述
1、SpW链路数据包格式
SpaceWire协议规定的链路数据字符格式有以下三种:
项目 存储格式
正常数据 9’b0_xxxx_xxxx
EOP 9’b1_xxxx_xxx0(实际使用9’b1_0000_0000)
EEP 9’b1_xxxx_xxx1(实际使用9’b1_0000_0001)
Spacewire协议规定的链路数据包格式有两种,一种是以EOP(end of packet)正常结束的数据包,一种是以EEP(error end of packet)异常结束的数据包。
2、RMAP协议数据包格式
RMAP协议是基于SpaceWire标准的一种传输层协议,因此其链路传输包在格式上也符合SpaceWire包格式,但是有自己的特点,以支持RMAP三种命令——写命令、读命令和读改写命令。三种命令类型对应三种不同格式的数据包,加上各自回复时候组织的共三种回复包,总共有六种包格式;以下是对数据包内各字段的解释。
字段、缩写与含义
Figure BDA0003498562010000101
二、基于AXI总线的RMAP目标方IP核
RMAP目标方IP核可以是一个独立的节点功能,可以进行单独设计,本发明设计划分结构时将目标方IP和发起方IP作为一个整体考虑,以便后期扩展发起方功能。本发明为RMAP目标方IP,主要涉及了状态和配置模块、时间码处理器模块、协议处理器模块和目标方处理器模块。协议处理器模块又可以划分为SpW数据回环模块、协议复用模块和协议解复用模块,目标方处理器模块又可以划分为包头解码模块、检查控制模块、目标方主控逻辑单元、回复包编码模块和目标方DMA控制器模块。系统结构图如图1所示,图1中虚线框内为RMAP目标方IP核逻辑方案。
1.1状态和配置模块
本模块是RMAP目标方和发起方可以共用的模块,增加发起方功能时可通过扩充状态和配置模块的发起方功能项实现。IP核状态和配置模块通过APB总线功能访问,上位机读取各模块的状态寄存器数据,获取节点实时运行状态,或者向各模块的参数寄存器数据写配置数据。系统上电或者软复位时候,各参数寄存器自动配置为缺省默认值,系统初始化时,通过各个命令寄存器将用户要求的配置数据写到各模块参数寄存器。
1.2时间码处理器模块
本模块是RMAP IP中的独立功能模块,内部维护一个时间码计数值(内部时间码),一方面可以将具备网络中唯一时间主身份的上位机软件中的定时脉冲转换为时间码并通过SpW链路发送出去,另一方面判断SpW节点控制器从链路中获取的时间码有效性并将有效的时间码输出。为避免网络时间码的回环碰撞,时间码的维护和输出规则如下:如果接收到的时间码比内部时间码大1,则更新内部时间码为接收到的时间码并对外输出(tick_out)新时间码;如果接收到的时间码和内部时间码相等,则既不更新内部时间码也不对外输出时间码;如果接收到的时间码比内部时间码既不大1也不相等,则更新内部时间码,但是不对外输出新时间码。
1.3协议处理器模块
本模块是RMAP目标方和发起方可以共用的模块,是协议数据包复用/解复用的前置模块,具有识别链路RMAP和非RMAP数据包的功能,解决非RMAP包的收发操作和实现SpW数据回环功能。
1.3.1SpW数据回环模块
本模块提供了一种将SpW数据字符、EOP和EEP回送的方法,时间码不受环回块的影响。启用回环功能后,链路接收的SpW数据包将不会被送给目标方/发起方处理器继续处理,而是被直接返回给链路发送方发送。
1.3.2协议复用模块
本模块负责对目标方回复包编码数据、发起方命令包编码数据或来自非RMAP接口的数据进行复用,复用后的数据通过回环模块写入SpW接口。
1.3.3协议解复用模块
本模块负责接收到的SpW数据包解复用,解复用模块根据解析SpW包的前几个字节确定数据包的类型,并决定数据包的目的地,对RMAP协议包从包头解析到命令控制字结束,对非RMAP协议包解析到协议控制字结束。解复用模块可能收到三种合法的数据包类型:发起方回复包、目标方命令包和非RMAP协议SpW包。发起方回复包解复用给发起方处理器进一步处理,目标方命令包解复用给包头解码模块处理,非RMAP协议的SpW包解复用给上位机处理。
1.4目标方处理器模块
相对于发起方处理器模块而言,本模块专门负责处理RMAP目标方IP特有功能。
1.4.1包头解码模块
如图2所示,本模块负责解码RMAP命令包包头,从授权控制字解析到头部CRC校验字结束。包头解码模块的流程图如下,它解析目标方命令包的包头各字段:首先解析Key字段,然后根据包头控制码判断是否存在返回地址,存在时先解析返回地址Rep_addr,再解析发起方逻辑地址,随后依次解析事务标识号Tid、扩展地址Ext_addr、地址Addr、数据长度Data_len和头部CRC校验码,最后进行CRC检查。
1.4.2检查控制模块
本模块提供对RMAP包头和数据部分进行CRC校验的功能,同时对RMAP命令事务进行有效性检查,在回复包组包时,对包头和数据部分进行CRC计算生成校验码。写前校验或者读改写命令时,RMAP命令包数据部分事先被写入数据校验缓存,同时进行CRC校验;写前不校验或者非读改写命令的其它命令时,仍然需要进行数据部分校验计算,校验命令包数据部分的正确性,并作为IP的状态反馈;
1.4.3目标方主控单元
本单元主要控制RMAP目标方命令事物的接收、授权和回复,它控制并与目标方处理器内其它功能模块协同工作。当接收到协议解复用模块传来的命令包到来消息,使能包头解码模块,当包头解码完成并通过检查控制模块命令事物有效性检查(包括CRC检查)后,主控单元将解析出来的命令事物信息提交给上位机,向其提出内存操作(写/读/读改写)申请,上位机授权通过后(不存在上位机的情况下,根据配置自动授权),由IP进行相应的存储读写操作。数据移动操作完成后,如果要求回复,主控单元控制回复包编码模块组织回复包并发送。
1.4.4回复包编码模块
本模块负责发送带有命令状态和数据的RMAP回复包,状态信息包括RMAP命令包的有效性、上位机的授权请求信息和总线执行命令的出错信息,数据来自DMA控制器从映射存储区读取到的读回复数据或读改写命令时读取的回复数据。回复包编码模块将包头信息和数据部分的信息组织成为回复包并通过协议复用模块发送。
1.4.5目标方DMA控制器模块
本模块负责RMAP读写数据移动操作。DMA控制器的参数受IP控制,读数据时数据的移动方向是从地址映射的存储到IP核的DMA控制器缓存,写数据时数据的移动方向则相反。
三、基于AXI总线的RMAP目标方IP核命令响应方法中,一次命令事物的判断和执行如下:
(1)协议解复用功能模块从接收缓存中取出少数几个字节(Tla、Pid和Ins)同时判断正确性,如果发生错误或特殊情况(如非RMAP协议)需要进行相应的处理。正确情况下,协议解复用模块解析出了Tla、Pid和Ins,且Pid为8’h01(即RMAP命令标识符),这里不判断Ins为有效性。如果非RMAP协议包(无上位机时可配置为连续泄放至EOEP)则通过APB桥向上位机申请中断,由上位机处理非RMAP包。
(2)如果是RMAP协议包,则需要根据Ins选择下一步处理模块。
(3)当协议解复用模块解析到了Ins,就可以根据指示字段得知接收到的是命令包类型还是回复包类型,是写、读或者读改写中的哪一种事物,是否是保留类型、写前是否校验、读写时地址是否增长以及回复路径字段长度等。目标方处理器负责处理命令包的后续解析和命令功能的执行,并负责组织相应回复包。当协议解复用模块解析前三个字节认为是RMAP命令包,目标方主控单元就使能包头解码模块,继续解析命令包的后续部分,从key到hCrc。
(4)当包头解码功能模块解析到hCrc码字后(本模块不负责hCrc校验,校验功能集中在检查控制模块),目标方主控单元控制整个包头的校验过程,包头校验由检查控制模块实现,在协议解复用和包头解码时同步进行包头部的校验,主控单元根据命令类型的不同,执行不同的检查控制功能,写前校验或者读改写命令时,RMAP命令包数据部分事先被写入数据校验缓存,同时进行CRC校验;写前不校验或者非读改写命令的其它命令时,仍然需要进行数据部分校验计算,校验命令包数据部分的正确性,但是不需要事先将数据写入校验缓存,校验结果作为IP的状态反馈,在需要回复包的情况下,接收数据校验出错用作回复包的状态之一。
(5)目标方主控单元控制包头校验的流程,包头校验完成后(可能正确也可能错误),需要判断命令事物的有效性,根据有效性不同执行不同的流程。
(6)如果事物有效,则进行内存操作授权申请,根据命令事物的不同执行不同的子流程——写、读或者读改写。
读改写命令时,如果数据长度为0则下一步组织读改写回复包,否则根据解析的命令配置DMA控制器,通过AXI-master接口读取指定地址的数据,读取完成后,等待上位机改写,改写完成后,再次配置DMA控制器,通过AXI-master接口向原指定地址写入改写后的数据,最后进行读改写回复。
读命令时,如果数据长度为0则下一步组织读回复包,否则目标方主控单元根据解析的命令设置好DMA控制器并启动,等待DMA读操作结束后开始组织读回复包。
写命令时,如果数据长度为0,写前不校验情况,检查命令包的完整性后,根据控制码回复位决定是否组织回复包,如果是写命令不需回复则本次事物结束。如果数据长度为0,写前校验情况,事物有效性已事先检查,可以直接根据控制码回复位决定是否组织回复包。如果数据长度非0,则目标方主控单元根据解析的命令设置好DMA控制器并启动,DMA写操作结束时,根据控制码回复位决定是否组织回复包。
(7)协议复用模块接收目标方主控单元的组织回复包申请信号,并接收发起方处理器发来的组织命令包申请信号,上位机发来的组织NRMAP申请信号,并仲裁。使用轮询仲裁调度决定具体发送那一种数据包。仲裁后回复包的发送操作由目标方使能包头解码模块进行。
(8)目标方主控单元通过AXI-master使用DMA模式完成内存写操作、读操作或者读改写操作。内存操作结束时(正常完成或者异常终止),根据命令事物的不同执行不同操作。
读改写命令时,总是需要组织回复包,读改写内存操作结束时,目标方主控单元使能回复包编码模块,组织包头并通过检查控制模块计算包头CRC、数据CRC,回复包编码模块将包头(含status字段)、包头CRC、数据、数据CRC写入SpW节点控制器发送缓存,对于0长度数据,没有数据部分和数据CRC,最后写EOP。
读命令时,读内存操作结束时,目标方主控单元使能回复包编码模块,组织包头并通过检查控制模块计算包头CRC、数据CRC,回复包编码模块将包头(含status字段)、包头CRC、数据、数据CRC写入SpW节点控制器发送缓存,对于0长度数据,没有数据部分和数据CRC,最后写EOP。
写命令时,写内存操作结束时,目标方主控单元是使能回复包编码模块,组织包头并通过检查控制模块计算包头CRC,回复包编码模块将包头(含status字段)、包头CRC写入SpW节点控制器发送缓存,最后写EOP。
(9)协议复用模块接收目标方主控单元的组织回复包申请信号,并接收发起方处理器发来的组织命令包申请信号,上位机发来的组织NRMAP包申请信号,并仲裁。使用轮询仲裁调度决定具体发送那一种数据包,仲裁后,如果组织回复包被授权,则由目标方主控单元使能包头解码模块进行相关的读、写或读改写回复包发送操作。
(10)写命令需要回复包,读命令包、读改写命令包在回复包EOP写入SpW节点控制器发送缓存后,本次事物结束。
四、本发明主要创新点
1.1使用首字直通型FIFO,降低码字访问延迟,根据内容节流
如图3所示,SpW节点控制器接收缓存的读取受多个功能模块控制,即可以使用常规FIFO又可以使用首字直通型FIFO,具体使用那种缓存将影响到各功能模块的设计。使用首字直通型FIFO相比于常规的FIFO,可以降低数据访问延迟,根据内容节流以提高RMAP IP核的性能。
使用常规FIFO情况下,码字需要先读取才能出现在FIFO_dout端口上。如果使用FIFO_empty构成组合形式的信号FIFO_rden,对于任意一个模块来说,除了第一个码字根据非空状态可直接读取外,后续码字读取与否与前一码字的具体内容有关,比如在协议解复用时,如果包头解码模块在CRC码字段读取到EOP,则下一个码字不能被包头解码模块立即读取,而应由协议解复用模块读取。因此,两个FIFO_rden置位间,至少需要一个清零周期,如图3(a)所示,FIFO_rden在T0~T1间因为FIFO_empty非空置位,T1时刻进行码字读取操作,T1~T2间FIFO_rden需要清零,码字的再次读取至少应等到T2时刻以后。如果使用FIFO_empty构成时序形式的信号FIFO_rden,同理,后续码字是否读取与前一码字的具体内容有关,两个FIFO_rden置位间也至少需要一个清零周期。
使用首字直通型FIFO情况下,FIFO非空时下一码字已预先出现在FIFO_dout端口上。尽管可以使用FIFO_empty构成组合形式的信号FIFO_rden,这样做对时序的要求比较高,不容易达到更高的速度,且可能产生毛刺。综合考虑,使用FIFO_empty构成的时序形式的信号FIFO_rden如图3(b)所示,FIFO_empty在T0时刻非空置位,有效码字同时出现在FIFO_dout端口,T1时刻相关的处理模块可以根据FIFO_dout的码字判断是否需要进行读取,如果需要读取FIFO_rden在T1时刻置位,并在T2时刻完成D0数据读取。如果在T1时刻读取后FIFO中还有不止一个码字,T2时刻可以根据D0码字内容决定是否进行连续读取,图3(b)中T2时刻置位FIFO_rden在T3时刻完成了D1码字的读取。使用时序的FIFO_rden信号需要防止读FIFO“临界空”状态的读取,如图3(b)所示,T3时刻FIFO中最后的一个数据完成读出,FIFO_empty信号由于T2时刻产生的读信号置位,FIFO_rden信号需要在T3时刻清零,这可以通过增加判断FIFO“将空”信号是否有效(是否是最后一个数据)进行读取,读信号判断的流程如图4所示,特点是将空时读一次停一次,可以避免在FIFO为空时发生误读。
1.2设计了协议复用和解复用模块,预留接口便于扩展
提取目标方和发起方的公共功能部分,结构划分时设计了协议复用和解复用模块,预留了后期扩展发起方功能的接口,可以方便地在后期扩展发起方功能;可以单独设计RMAP目标方逻辑,但是将来设计的RMAP发起方和RMAP目标方的整合将会遇到问题,不利于代码重复利用。
1.2.1协议复用模块
协议复用模块控制向SpW节点控制器发送缓存内写入SpW包的类型,可能发送的包类型有:非RMAP协议包、RMAP协议包,其中RMAP协议包又可以分为命令包和回复包。同一时刻最多可能有三种类型的包都需要发送,使用固定优先级仲裁可能造成“饿死”现象,故这里使用轮询仲裁决定协议复用模块具体处理非RMAP协议包、命令包和回复包中的哪一种,它只执行非RMAP协议包向SpW节点控制器发送缓存的写操作,RMAP返回包发送的写缓存操作由目标方处理器中回复包编码模块执行,RMAP命令包发送的写缓存操作由发起方处理器模块执行,本发明中不含发起方处理器模块,但是协议复用模块仲裁考虑发起方发送命令包功能设计,以便后期可以扩展发起方功能。
如图6所述,本发明采用了易扩展的三输入仲裁器,其中三路输入分别为发送非RMAP协议包、命令包和回复包的申请信号。仲裁器输出某路信号的发送许可信号即表示协议复用模块可处理对应类型包的发送。采用一种快速易扩展的轮询仲裁器实现仲裁功能,结构图5所示,图5中的DFF为D型触发器,FPE为固定优先级编码器,其功能如如6所示,图5中N=3。
1.2.2协议解复用模块
协议解复用模块将SpW节点控制器接收缓存内码字读出并解析。接收缓存内可能存储的包类型有:无效字符、超短SpW包、非RMAP协议包、RMAP协议包,其中RMAP协议包又可以分为命令包、回复包、保留包(控制字保留位为1’b1)和非法包。如图7所示,解复用模块将最多可取出包头部前三个码字,具体的判别和处理如下:根据FWFT型FIFO非空,可判断第一个码字是否是EOP或者EEP,总是要读取第一个码字,如果第一个码字是EOP或者EEP则认为接收到无效字符,读取后结束本次接收,如果不是则读取第一个码字后待FIFO再次非空判别第二个码字是否是EOP或者EEP,这种情况下总是要读取第二个码字,如果第二个码字是EOP或者EEP则认为接收到超短SpW包,读取后结束本次接收,如果不是则继续判断第二个码字是否是RMAP协议字(码字9’h001),如果第二个码字不是RMAP协议则认为接收到非RMAP协议包,读取后,通知上位机继续处理,上位机读取到EOP或者EEP以结束本次接收,如果第二个码字是RMAP协议字,则读取第二个码字后待FIFO再次非空判别第三个码字是否是EOP或者EEP,这种情况下总是要读取第三个码字,如果第三个码字是EOP或者EEP则认为接收到超短SpW包,读取后结束本次接收,如果不是则认为接收到RMAP协议包,继续判断第三个码字——控制字的命令/回复位,根据IP核的配置执行不同的操作:
(1)配置为仅RMAP目标方功能,如果控制字的命令/回复位是1’b1,则读取该码字后续码字解析交由目标方处理器的包头解码模块处理,如果是1’b0则读取该码字,报告目标方收到回复包类型的错误,接着泄放RMAP协议包(读取RMAP包的剩余部分直到第一个EOP/EEP被读出)。
(2)配置为仅RMAP发起方功能,如果控制字的命令/回复位是1’b1,则读取该码字,报告发起方收到命令包类型的错误,接着泄放RMAP协议包(读取RMAP包的剩余部分直到第一个EOP/EEP被读出),如果是1’b0则读取该码字后续码字解析交由发起方处理器的回复包解码模块处理。
(3)配置为RMAP目标放和发起方功能,如果控制字的命令/回复位是1’b1,则读取该码字后续码字解析交由目标方处理器的包头解码模块处理,如果是1’b0则读取该码字后续码字解析交由发起方处理器的回复包解码模块处理。
本发明仅实现RMAP目标方功能,但是为了后期可以扩展发起方功能,协议解复用模块同时具有上述三种配置要求的功能,解复用模块的状态机如图,目标方处理和发起方处理为复合状态。
1.3RMAP目标方IP进行RMAP数据包的数据读写操作时采用DMA数据传输方式,非RMAP数据包的数据读写操作可配置为DMA或PIO传输模式。
RMAP目标方IP完成包头解析并校验检查正确、向上位机申请授权获得许可后,数据的读、写或者读改写操作才可以进行,在非智能终端上(没有上位机存在时),可以配置为自动授权。同时支持非RMAP数据DMA和PIO传输模式,非RMAP数据传输可以配置为使用DMA或PIO之一,使用DMA传输RMAP数据包时,由目标方IP在数据传输前完成配置DMA控制器并启动。另外一种可能是的实现是由上位机在数据传输前完成配置DMA控制器并启动,这种实现依赖于上位机的存在,限制了IP的应用范围。
系统采用AXI总线连接,RMAP目标方IP对外接口为AXI和APB,应用时一方面连接在AXI总线上,另一方面连接在APB总线上,本发明的典型应用场景如图8所示:
APB接口作为RMAP目标方配置功能使用,RMAP目标方IP在执行RMAP命令数据读写时,DMA控制器是AXI总线上的主设备,数据传输使用AXI4数据传输协议。对于非RMAP数据包,非智能终端条件下可配置为自动泄放处理,智能终端条件下由上位机程序选择通过DMA或PIO数据传输方式读/写非RMAP数据包。
1.4可以在特殊情况下回复发起方,支持空载包,便于测试。
协议定义的回复功能都是发生在数据读或者写完成之后,发明的RMAP目标方IP支持在EEP码字紧接头部校验码字或者接收到控制码字保留位为1的保留类型命令包时对发起方进行回复的功能。本发明增加在上述两种特殊情况下,回复发起方的功能。另外支持数据部分长度为零的命令包,这种包可以用于测试命令是否被IP所接受。
如图9所示,目标方主控单元在接收协议解复用模块传来RMAP命令包消息后,解析包头直至头部CRC校验码字,CRC校验正确时,还需要检查事物有效性:检查包头控制码的保留位、写前校验位有效的情况下要检查完整的命令包到包尾EOP,读改写命令情况下检查数据长度是否为不大于8的偶数等。如果是有效事物则进行下一步授权申请,如果是无效事物,EEP紧接着头部CRC或者保留类型则根据配置需求选择是否进行回复。授权通过后,目标方主控单元根据解析出来的命令不同执行不同的操作:
读改写命令时,如果数据长度为0则下一步组织读改写回复包,否则根据解析的命令配置AXI主接口,读取指定地址的数据,读取完成后,等待上位机改写,改写完成后,再次配置AXI主接口,向指定地址写入改写后的数据,最后进行读改写回复。
读命令时,如果数据长度为0则下一步组织读回复包,否则目标方主控单元根据解析的命令设置好DMA控制器并启动,同时可以开始组织读回复包。
写命令时,如果数据长度为0,写前不校验情况,检查命令包的完整性后,根据控制码回复位决定是否组织回复包。如果数据长度为0,写前校验情况,事物有效性已事先检查,可以直接根据控制码回复位决定是否组织回复包。如果数据长度非0,则目标方主控单元根据解析的命令设置好DMA控制器并启动,DMA写操作结束时,根据控制码回复位决定是否组织回复包。
1.5硬件CRC校验计算,自动计算速度更快。
命令包数据CRC校验计算功能,既可以用软件实现也可以通过硬件实现。使用上位机通过软件方法计算校验码,由IP插入校验码或由上位机完成校验,速度和效率低下,影响上位机性能,而且需要上位机的存在,限制了IP的应用范围。
CRC经常使用有串行数据输入的反馈移位寄存器(LFSR)实现,在很多情况下,这种CRC是实现是次优的。本设计具有8位数据通路,每个时钟CRC功能都必须计算8位数据上的CRC,如果使用串行CRC,LFSR时钟要求为8倍数据通路的时钟,增加了复杂性,如果使用并行CRC校验计算,计算出8位数据的CRC值只需要一个时钟周期。
本发明的目标方IP设计了8位并行CRC校验计算电路,可以自动进行CRC校验计算,生成多项式为G(x)=x8+x2+x1+1,数据部分和命令头部分使用相同的8位CRC校验多项式,在发送事务时同步自动地完成校验码计算和插入,在接收事务时也可以同步自动地进行校验码的验证。
图10是并行CRC的简化原理框图,本发明中M和N均为8。
1.6IP对外接口基于AXI4的数据传输方式,基于APB的状态和配置的控制方式。
使用标准的AXI4协议和APB协议的对外接口,便于目标方IP的连接使用。AXI4-master接口两个,其中一个用于IP核执行读改写命令或通过DMA模式执行RMAP数据包的读或者写命令,另一个用于上位机通过DMA模式执行非RMAP数据包的读写操作;AXI-slave接口一个,用于上位机通过PIO模式读写非RMAP数据包;APB-slave接口一个,用于上位机配置本IP参数以及监控IP的运行状态。
本申请提供的基于AXI总线的RMAP目标方IP及其响应方法,使得具有本申请的IP核的SpaceWire网络远程终端设备对RMAP命令能产生高效快速的响应。同时,IP核具备良好的扩展性能,方便后续增加发起方功能。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (12)

1.一种基于AXI总线的RMAP目标方IP核,其特征在于,所述IP核包括:与AXI总线接口连接的协议处理器和目标方处理器;
所述协议处理器模块包括:协议复用模块和协议解复用模块;
所述协议解复用模块,用于读取并接收SpW节点控制器的接收缓存模块中的SpW数据包,并判断所述SpW数据包的类型;其中,所述SpW数据包的类型包括:无效SpW数据包、RMAP协议目标方命令包、RMAP协议发起方回复包和非RMAP协议SpW数据包;所述协议解复用模块还用于将所述RMAP协议目标方命令包解复用至目标方处理器;用于将所述RMAP协议发起方回复包解复用至发起方处理器,以进行后续处理;用于在AXI总线接口与上位机连接时,将所述非RMAP协议SpW数据包解复用至上位机,以进行后续处理,用于在所述AXI总线接口与非智能终端连接时,将所述非RMAP协议SpW数据包自动泄放;
所述目标方处理器,用于对所述RMAP协议目标方命令包依次进行包头解码、包头校验和数据校验处理,并用于检查所述SpW数据包中内存操作命令事务的有效性;还用于提出相应的内存操作授权申请,待所述相应的内存操作授权申请授权后,执行所述内存操作命令,组织RMAP协议目标方回复包,并提出RMAP协议目标方回复包发送申请信号;还用于将RMAP协议目标方回复包写入SpW节点控制器的发送缓存模块;
所述协议复用模块,用于接收来自目标方处理器的RMAP协议目标方回复包发送申请信号、来自所述发起方处理器的RMAP协议发起方命令包发送申请信号和来自所述上位机的非RMAP协议包发送申请信号;用于采用轮询仲裁调度,判断发送至SpW节点控制器的发送缓存模块的协议包类型;用于将非RMAP协议包写入SpW节点控制器的发送缓存模块;
判断所述SpW数据包的类型的具体步骤包括:
通过所述协议解复用模块,在首字直通型FIFO非空时,判断所述SpW数据包的第一个码字是否是EOP或者EEP,如果第一个码字是EOP或者EEP则认为接收到无效SpW数据包,读取后结束本次接收;如果不是则读取第一个码字后待FIFO再次非空,判别第二个码字是否是EOP或者EEP,如果第二个码字是EOP或者EEP,则认为接收到无效SpW数据包,读取后结束本次接收;如果不是则继续判断第二个码字是否是RMAP协议字,其中,所述RMAP协议字为:9’h001,如果第二个码字不是RMAP协议字则认为接收到所述非RMAP协议SpW数据包;如果第二个码字是RMAP协议字,则读取第二个码字后待FIFO再次非空,判别第三个码字是否是EOP或者EEP,如果第三个码字是EOP或者EEP则认为接收到无效SpW数据包,如果不是则认为接收到RMAP协议包,并继续判断第三个码字的控制字的命令/回复位;其中,EOP表示正常包结束符,EEP表示错误包结束符;
如果控制字的命令/回复位是1’b1,则认为接收到RMAP协议目标方命令包;
如果控制字的命令/回复位是1’b0,则认为接收到RMAP协议发起方回复包。
2.根据权利要求1所述的基于AXI总线的RMAP目标方IP核,其特征在于,所述目标方处理器包括:包头解码模块、检查控制模块、目标方主控逻辑单元、回复包编码模块和目标方DMA控制器模块;其中,
所述包头解码模块,基于所述目标方主控逻辑单元控制,用于对所述RMAP协议目标方命令包的包头进行解码;
所述检查控制模块,基于所述目标方主控逻辑单元控制,用于校验所述RMAP协议目标方命令包的包头和数据;用于将所述RMAP协议目标方命令包的数据写入所述数据校验缓存模块;还用于判断所述RMAP协议目标方命令包中的内存操作命令事务的有效性;
所述目标方主控逻辑单元,在所述AXI总线接口与上位机连接时,用于将有效的所述内存操作命令信息提交至上位机,并向上位机提出与所述内存操作命令信息相应的内存操作授权申请;用于接收所述上位机发来的授权信息;用于提出RMAP协议目标方回复包发送申请信号;
所述目标方主控逻辑单元,在所述AXI总线接口与非智能终端连接时,用于提出与所述内存操作命令信息相应的内存操作授权申请,并自动授权;用于提出RMAP协议目标方回复包发送申请信号;用于发送RMAP协议目标方回复包发送申请信号至所述协议复用模块;
所述目标方DMA控制器模块,基于所述目标方主控逻辑单元控制,用于执行所述相应的内存操作;
所述回复包编码模块,基于所述目标方主控逻辑单元控制,用于组织RMAP协议目标方回复包;还用于将RMAP协议目标方回复包写入SpW节点控制器的发送缓存模块。
3.根据权利要求1所述的基于AXI总线的RMAP目标方IP核,其特征在于,所述IP核还包括:与APB接口连接的状态配置模块和时间码处理器;
所述状态和配置模块,用于接收所述APB接口发来的配置信息,并配置所述IP核各模块的参数;用于监控所述IP核各模块的运行状态,并将运行状态信息发送至APB接口;
所述时间码处理器模块,用于维护和更新内部时间码;用于接收外部时间码;还用于输出更新的内部时间码。
4.根据权利要求1所述的基于AXI总线的RMAP目标方IP核,其特征在于,所述协议处理器模块还包括:SpW数据回环模块;其中,
所述SpW数据回环模块用于控制回环功能的开启和关闭;当所述回环功能开启时,SpW节点控制器中的接收缓存模块发送的SpW数据包,通过所述SpW数据回环模返回至所述SpW节点控制器中的发送缓存模块;当所述回环功能关闭时,所述SpW节点控制器中的接收缓存模块发送的SpW数据包由协议解复用模块接收。
5.一种基于AXI总线的RMAP目标方IP核命令响应方法,基于权利要求1-4任一所述的IP核实现,其特征在于,包括以下步骤:
步骤1)通过协议解复用模块,读取并接收SpW节点控制器的接收缓存模块中的SpW数据包,并判断所述SpW数据包的类型;
当所述SpW数据包为无效SpW数据包时,停止接收本次SpW数据包;
当所述SpW数据包的类型为RMAP协议目标方命令包,将其解复用至目标方处理器,并执行步骤2);
当所述SpW数据包的类型为RMAP协议发起方回复包时,将其解复用至发起方处理器;并执行步骤5);
当所述SpW数据包的类型为非RMAP协议SpW数据包且所述AXI总线接口与上位机连接时,将其解复用至上位机,停止接收本次SpW数据包,并执行步骤6);当所述SpW数据包的类型为非RMAP协议SpW数据包且所述AXI总线接口与非智能终端连接时,或将其自动泄放后,停止接收本次SpW数据包;
步骤2)通过所述目标方处理器,对所述SpW数据包依次进行包头解码、包头校验和数据校验处理,并检查所述SpW数据包中内存操作命令事务的有效性;执行步骤3);
步骤3)通过所述目标方处理器,针对有效的内存操作命令,提出相应的内存操作授权申请;待所述相应的内存操作授权申请授权后,执行所述内存操作命令;并组织RMAP协议目标方回复包,执行步骤4);
步骤4)通过所述目标方处理器,向协议复用模块提出RMAP协议目标方回复包发送申请信号,执行步骤7);
步骤5)通过所述发起方处理器对RMAP协议发起方回复包进行处理,生成RMAP协议发起方命令包,并向协议复用模块提出所述RMAP协议发起方命令包发送申请信号,执行步骤7);
步骤6)通过所述上位机对所述非RMAP协议SpW数据包进行处理,生成非RMAP协议包,并向所述协议复用模块提出非RMAP协议包发送申请信号,执行步骤7);
步骤7)通过所述协议复用模块接收RMAP协议目标方回复包发送申请信号、RMAP协议发起方命令包发送申请信号和非RMAP协议包发送申请信号,并基于轮询仲裁调度,决定发送至所述SpW节点控制器的发送缓存模块的协议包类型,并发送。
6.根据权利要求5所述的基于AXI总线的RMAP目标方IP核的命令响应方法,其特征在于,所述方法还包括预处理步骤:关闭所述SpW数据回环模块的回环功能。
7.根据权利要求5所述的基于AXI总线的RMAP目标方IP核的命令响应方法,其特征在于,所述步骤2)具体包括:
步骤2-1)通过所述目标方处理器的包头解码模块,对所述RMAP协议目标方命令包的包头进行解码;如果所述RMAP协议目标方命令包包括:读改写命令或/和写前校验命令,则通过所述目标方处理器的检查控制模块将所述RMAP协议目标方命令包的数据事先写入所述目标方处理器的数据校验缓存模块,再通过所述检查控制模块,基于所述目标方处理器的目标方主控逻辑单元的控制,开始依次对所述RMAP协议目标方命令包的包头和数据进行校验;否则,直接通过所述检查控制模块,基于目标方主控逻辑单元的控制,开始依次对所述RMAP协议目标方命令包的包头和数据进行校验;其中,所述检查控制模块通过并行CRC校验计算电路进行包头校验和数据校验处理;
步骤2-2)通过所述检查控制模块,检查经过包头和数据校验后的所述RMAP协议目标方命令包中内存操作命令事务的有效性。
8.根据权利要求5所述的基于AXI总线的RMAP目标方IP核的命令响应方法,其特征在于,所述步骤3)中授权所述内存操作授权申请的具体包括:
所述AXI总线接口与上位机连接时,通过所述目标方处理器的目标方主控逻辑单元,向所述上位机提出内存操作授权申请,并由所述上位机进行授权;
所述AXI总线接口与非智能终端连接时,所述目标方主控逻辑单元提出内存操作授权申请后,自动授权。
9.根据权利要求5所述的基于AXI总线的RMAP目标方IP核的命令响应方法,其特征在于,所述步骤3)中执行所述内存操作命令的具体步骤包括:
所述RMAP协议目标方命令包是RMAP协议目标方读命令包时,如果所述RMAP协议目标方读命令包的数据长度为0,则通过所述目标方处理器的目标方主控逻辑单元控制所述目标方处理器的回复包编码模块组织RMAP协议目标方读回复包,否则通过所述目标方主控逻辑单元,基于RMAP协议目标方读命令包中的读操作命令,设置并启动DMA控制器,等待DMA控制器读取通过AXI总线接口读取内存地址映射空间的数据后,控制所述回复包编码模块开始组织RMAP协议目标方读回复包;
所述RMAP协议目标方命令包是RMAP协议目标方写命令包时,如果所述RMAP协议目标方命令包的数据长度为0,通过所述目标方主控逻辑单元,根据控制码回复位决定是否控制所述回复包编码模块组织RMAP协议目标方写回复包;如果所述RMAP协议目标方写命令包的数据长度非0,则通过所述目标方主控逻辑单元,基于所述RMAP协议目标方写命令包的写操作命令,设置并启动DMA控制器,DMA控制器通过AXI总线接口向命令包中指定的地址写入数据后,通过所述目标方主控逻辑单元,根据控制码回复位,决定是否控制所述回复包编码模块组织RMAP协议目标方写回复包;
所述RMAP协议目标方命令包是RMAP协议目标方读改写命令包时,如果RMAP协议目标方读改写命令包的数据长度为0,则所述目标方主控逻辑单元控制所述回复包编码模块,组织RMAP协议目标方读改写回复包,否则在AXI总线接口与上位机连接时,通过所述目标方主控逻辑单元,基于RMAP协议目标方读改写命令包中的读改写操作命令,配置并开启DMA控制器,读取指定地址的数据,读取完成后,等待上位机改写;在所述上位机改写完成后,再次配置DMA控制器,通过AXI总线接口向原指定地址写入改写后的数据,最后通过所述目标方主控逻辑单元控制所述回复包编码模块,组织RMAP协议目标方读改写回复包。
10.根据权利要求9所述的基于AXI总线的RMAP目标方IP核的命令响应方法,其特征在于,所述步骤3)中组织RMAP协议目标方回复包的具体步骤包括:
所述RMAP协议目标方命令包是RMAP协议目标方读命令包且所述RMAP协议目标方命令包的数据长度不为0时,通过所述回复包编码模块组织RMAP协议目标方读回复包的包头,并通过所述检查控制模块计算所述RMAP协议目标方读回复包的包头CRC和读取数据CRC;再通过所述回复包编码模块将所述RMAP协议目标方读回复包的包头、包头CRC、读取数据和读取数据CRC组成RMAP协议目标方读回复包;
所述RMAP协议目标方命令包是RMAP协议目标方读命令包且所述RMAP协议目标方命令包的数据长度为0时,通过所述回复包编码模块组织所述RMAP协议目标方读回复包的包头,并通过所述检查控制模块计算RMAP协议目标方读回复包的包头CRC,再通过所述回复包编码模块将RMAP协议目标方读回复包的包头和包头CRC组织成RMAP协议目标方读回复包;
所述RMAP协议目标方命令包是RMAP协议目标方写命令包时,通过所述回复包编码模块,组织RMAP协议目标方写回复包的包头,并通过所述检查控制模块计算所述RMAP协议目标方写回复包的包头CRC,通过回复包编码模块将所述RMAP协议目标方写回复包的包头和包头CRC组织成RMAP协议目标方写回复包;
所述RMAP协议目标方命令包是RMAP协议目标方读改写命令包且所述RMAP协议目标方命令包的数据长度不为0时,通过所述回复包编码模块,组织RMAP协议目标方读改写回复包的包头,并通过所述检查控制模块计算RMAP协议目标方读改写回复包的包头CRC和读取到的数据CRC;通过所述回复包编码模块将RMAP协议目标方读改写回复包的包头、包头CRC、读取到的数据和读取到的数据CRC组织成RMAP协议目标方读改写回复包;
所述RMAP协议目标方命令包是RMAP协议目标方读改写命令包且所述RMAP协议目标方命令包的数据长度为0时,通过所述回复包编码模块组织所述RMAP协议目标方读改写回复包的包头,并通过所述检查控制模块计算RMAP协议目标方读改写回复包的包头CRC,再通过所述回复包编码模块将RMAP协议目标方读改写回复包的包头和包头CRC组织成RMAP协议目标方读改写回复包。
11.根据权利要求5所述的基于AXI总线的RMAP目标方IP核的命令响应方法,其特征在于,所述步骤7)具体包括:
步骤7-1)通过所述协议复用模块接收三种发送申请信号,并发送至仲裁器进行仲裁;
步骤7-2)通过所述仲裁器决定发送的至所述SpW节点控制器的发送缓存模块的协议包类型,并输出对应的发送许可信号;
步骤7-3)发送对应的协议包至所述SpW节点控制器的发送缓存模块;其中,
如果发送的协议包是RMAP协议目标方回复包,则通过所述目标方处理器的回复包编码模块将其写入所述SpW节点控制器的发送缓存模块;
如果发送的协议包是RMAP协议发起方命令包,则通过所述发起方处理器将其写入所述SpW节点控制器的发送缓存模块;
如果发送的协议包是非RMAP协议包,则通过所述协议复用模块将其写入所述SpW节点控制器的发送缓存模块。
12.根据权利要求5所述的基于AXI总线的RMAP目标方IP核的命令响应方法,其特征在于,所述协议解复用模块和AXI总线接口之间以及所述协议复用模块和AXI总线接口之间,采用DMA数据传输模式或PIO数据传输模式;所述目标方处理器与所述AXI总线接口之间采用DMA数据传输模式。
CN202210121266.6A 2022-02-09 2022-02-09 一种基于axi总线的rmap目标方ip核及其命令响应方法 Active CN114615353B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210121266.6A CN114615353B (zh) 2022-02-09 2022-02-09 一种基于axi总线的rmap目标方ip核及其命令响应方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210121266.6A CN114615353B (zh) 2022-02-09 2022-02-09 一种基于axi总线的rmap目标方ip核及其命令响应方法

Publications (2)

Publication Number Publication Date
CN114615353A CN114615353A (zh) 2022-06-10
CN114615353B true CN114615353B (zh) 2022-11-01

Family

ID=81858287

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210121266.6A Active CN114615353B (zh) 2022-02-09 2022-02-09 一种基于axi总线的rmap目标方ip核及其命令响应方法

Country Status (1)

Country Link
CN (1) CN114615353B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114968865B (zh) * 2022-07-22 2022-09-27 中科声龙科技发展(北京)有限公司 总线传输结构及方法、芯片
CN116193113B (zh) * 2022-12-07 2024-06-14 辉羲智能科技(上海)有限公司 数据解压和压缩方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218333A (zh) * 2013-03-20 2013-07-24 山东大学 一种uhf多协议rfid读写器基带信号处理ip核及其工作方法
CN105187227B (zh) * 2015-06-12 2018-08-17 北京航空航天大学 一种应用rmap协议实现can总线设备即插即用的装置
CN105137864A (zh) * 2015-07-31 2015-12-09 上海卫星工程研究所 空间飞行器下位机协控制SoC芯片

Also Published As

Publication number Publication date
CN114615353A (zh) 2022-06-10

Similar Documents

Publication Publication Date Title
CN114615353B (zh) 一种基于axi总线的rmap目标方ip核及其命令响应方法
CN106612141B (zh) 一种光纤通道协议通用仿真测试卡及其数据交互方法
US5832310A (en) Serial I/O channel having dependent and synchronous sources of control data and user defined data
US4551721A (en) Method for initializing a token-passing local-area network
US5553302A (en) Serial I/O channel having independent and asynchronous facilities with sequence recognition, frame recognition, and frame receiving mechanism for receiving control and user defined data
KR100982145B1 (ko) 구성가능 어드레스 매핑의 방법
EP3542276B1 (en) Flow control in remote direct memory access data communications with mirroring of ring buffers
US20040199630A1 (en) State processor for pattern matching in a network monitor device
JP2010140127A (ja) データ転送処理装置及び方法
CN114047712B (zh) 一种基于反射内存网的半实物仿真系统的数据通信方法
CN115145492A (zh) 一种raid控制器下物理盘管理的方法和系统
JP2009502072A (ja) FlexRay通信モジュール及びFlexRay通信制御装置、並びにFlexRay通信接続とFlexRay加入者装置との間でメッセージを伝送する方法
CN102394720A (zh) 一种信息安全校验处理器
US20140164647A1 (en) Management Data Input/Output (MDIO) Protocol Including Checksum Mode
KR20170117326A (ko) 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치
CN113411198B (zh) 基于双通道和rssp-i的通信方法、装置、电子设备及存储介质
US7213180B2 (en) Bus bridge circuit, bus connection system, and data error notification method for bus bridge circuit
JP2993728B2 (ja) プロトコル高速処理装置
CN101228743A (zh) FlexRay通信组件、FlexRay通信控制器和用于在FlexRay通信连接和FlexRay用户之间传输消息的方法
JP4207323B2 (ja) データ転送装置及びデータ転送方法
US6125407A (en) System for flushing high-speed serial link buffers by ignoring received data and using specially formatted requests and responses to identify potential failure
Naik et al. Modeling and verification of a real life protocol using symbolic model checking
JPH07123134A (ja) 通信処理装置およびそのデバッグ方法
JPH07154451A (ja) システム相互接続用の走査プログラマブルチェックマトリクス
US8635392B1 (en) Media access control security (MACsec) management with a layer management interface (LMI) configured to communication over management data input/output (MDIO) protocol

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant