CN104486036B - 一种满足1394协议要求消息容错处理电路及方法 - Google Patents
一种满足1394协议要求消息容错处理电路及方法 Download PDFInfo
- Publication number
- CN104486036B CN104486036B CN201410753107.3A CN201410753107A CN104486036B CN 104486036 B CN104486036 B CN 104486036B CN 201410753107 A CN201410753107 A CN 201410753107A CN 104486036 B CN104486036 B CN 104486036B
- Authority
- CN
- China
- Prior art keywords
- data packet
- received
- message
- data
- link layer
- 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
Links
Landscapes
- Communication Control (AREA)
- Computer And Data Communications (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于计算机硬件控制领域,涉及一种基于1394协议消息容错处理电路。本发明电路包括链路层数据搬移接口电路模块,接收消息缓存双端口RAM,接收消息状态字FIFO和控制电路模块;所述链路层数据搬移接口电路模块分别与控制电路模块和接收消息缓存双端口RAM连接,接收消息状态字FIFO与控制电路模块连接。本发明可以用以实现在极端情况下1394总线数据传输的容错处理,避免故障蔓延。
Description
技术领域
本发明属于计算机硬件控制领域,涉及一种满足1394协议要求的消息容错处理电路及方法。
背景技术
1394协议是按照SAE AS5643标准(全称《SAE AS5643:用于军事和飞行器应用的1394b接口需求》)对1394b协议局部进行了限定,以满足航空领域对高可靠、低延迟、确定性要求。由于在航空极端情况下工作的1394总线需要具有容错处理能力,而现有资料并未公开任何相关技术,因此,亟需提供一种在航空极端情况下1394总线数据传输错误时的容错处理电路。
发明内容
为了填补现有技术空白,本发明提供一种满足1394协议要求消息容错处理电路及方法,用以实现在航空极端情况下1394总线数据传输的容错处理,避免故障蔓延。
本发明的技术方案是:
该满足1394协议要求消息容错处理电路包括链路层数据搬移接口电路模块,接收消息缓存双端口RAM,接收消息状态字FIFO模块和控制电路模块;所述控制电路模块用于计算接收数据包在接收消息缓存双端口RAM中存放的位置,链路层数据搬移接口电路模块用于从链路层芯片接收来自1394总线的数据包,并将该数据包保存至接收消息缓存双端口RAM中,接收消息缓存双端口RAM用于保存从链路层数据搬移接口电路模块传来的数据包,接收消息状态字FIFO用于保存接收数据包的状态信息,包括该数据包在接收消息缓存双端口RAM中存放的位置信息以及长度信息;所述链路层数据搬移接口电路模块分别与控制电路模块和接收消息缓存双端口RAM连接,接收消息状态字FIFO模块与控制电路模块连接。
接收消息缓存双端口RAM的深度最多缓存16个最大1394数据包,接收消息状态字FIFO模块的FIFO的深度为16,当存放的状态信息等于14个时,即报告“满”状态。
每次从链路层数据搬移接口电路模块接收到的数据包在接收消息缓存双端口RAM中采用固定位置缓冲,当发生接收数据包负载错误时,不保存该数据包的状态信息。新接收到的数据直接从本条错误数据区域起始位置覆盖原数据,接收正确完成后,才会保存该数据包的状态信息。接收消息状态字FIFO非“空”时,外围电路可从相应的固定位置开始,并根据接收数据包的实际长度,从接收消息缓存双端口RAM中读取对应个数的数据字。
该接收1394总线数据容错方法,利用到上述的容错电路,包括以下步骤:
1】链路层数据搬移接口电路模块从1394链路层芯片接收到数据包;
2】链路层数据搬移接口电路模块判断该数据包中是否为需要接收的数据包:若为需接收的数据包,则判断该数据包是否有错误,如无错误继续进行步骤3,如有错误则不再接收该数据包,继续等待下次接收数据包;若不为需接收的数据包,则不再接收该数据包,继续等待下次接收数据包;
3】判断接收消息状态字FIFO是否为“满”,如非“满”则将继续进行步骤4,如“满”则等待下次接收数据包,不再接收该数据包;
4】接收消息缓存双端口RAM缓存接收到的数据包,并在接收过程同时判断该数据包中是否有错误:(包括1394包头CRC校验错误、1394数据负载CRC校验错误、1394数据负载实际长度与包头指示长度不一致):若接收到的数据包发生错误,则不再填写该数据包,也不保存该数据包状态信息,不更新下一条数据包保存位置,(接收下一条数据包时覆盖该错误数据包);若接收的数据包完全正确,则在接收后续数据包完成时,更新下一条数据包保存位置(接收下一条数据包时保存至新位置),保存该数据包状态信息,完成一次数据包接收;
5】接收消息状态字FIFO非“空”时,外围消息获取电路按照保存的数据包状态信息,从接收消息缓存双端口RAM中读取正确的数据。
本发明的技术效果
本发明的一种满足1394协议要求消息容错处理电路及方法,可在航空极端情况下1394总线出现数据传输错误时,包括1394数据包头CRC校验错误、1394数据负载CRC校验错误、1394数据负载实际长度与数据包头指示长度不一致,可正确判断并丢弃该错误数据包,避免引起后续数据包接收错误,带来故障蔓延。
附图说明
图1为本发明的电路结构框图;
图2为本发明的方法流程图。
具体实施方式
下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得的所有其他实施例,都属于本发明的保护范围。
下面结合具体实施例和附图对本发明的技术方案做进一步详细描述,请参阅图1至2。
一种满足1394协议要求消息容错处理电路,包括链路层数据搬移接口电路模块,接收消息缓存双端口RAM,接收消息状态字FIFO模块和控制电路模块;所述链路层数据搬移接口电路模块和接收消息缓存双端口RAM与控制电路模块连接,接收消息缓存双端口RAM和链路层数据搬移接口电路模块连接,接收消息状态字FIFO和控制电路模块连接,控制电路模块和链路层数据搬移接口电路模块与接收消息状态字FIFO连接。
控制电路模块,在开始从1394总线接收数据时,用于计算接收数据包在接收消息缓存双端口RAM中存放的起始位置;在该数据包接收完成时,计算该数据包的状态信息,如接收消息状态字FIFO非“满”则将该状态信息写入FIFO中;在该数据包接收错误时(1394数据包头CRC校验错误、1394数据负载CRC校验错误、1394数据负载实际长度与包头指示长度不一致),不向接收消息状态字FIFO中写入该数据包的状态信息,在下次从1394总线接收数据时,仍输出前一个数据包的存放起始位置;
链路层数据搬移接口电路模块,用于从1394链路层芯片接收来自1394总线的数据包,并将该数据包保存至接收消息缓存双端口RAM中。当1394链路层芯片报告开始从1394总线接收数据包时,启动接收消息缓存双端口RAM的写操作,从控制电路模块计算的起始位置开始,将接收到的数据包写入双端口RAM中;当1394链路层芯片报告1394总线接收数据包完成/错误时,结束双端口RAM写操作,并向控制电路模块报告该数据包接收状态;
接收消息缓存双端口RAM用于保存从链路层数据搬移接口电路模块传来的数据包,数据宽度32位,深度为2048,即最多可以缓存16个长度为512B的1394数据包;
接收消息状态字FIFO用于保存接收数据包的状态信息,包括该数据包在接收消息缓存双端口RAM中存放的位置信息以及长度信息,深度为16,当存放的状态信息等于14个时,即报告“满”状态。
该接收1394总线数据容错方法,利用到上述的容错电路,包括以下步骤:
1】从1394链路层芯片接收到数据包,利用链路层数据搬移接口电路模块执行;
2】判断该数据包中的信息是否为需要接收的数据包:若为需接收的数据包,则判断该数据包是否有错误,如无错误继续进行步骤3,如有错误则不再接收该数据包,继续等待下次接收数据包;若不为需接收的数据包,则不再接收该数据包,继续等待下次接收数据包;利用链路层数据搬移接口电路模块进行判断;
3】判断接收数据包状态字FIFO是否为“满”,如非“满”则将继续进行步骤4,如“满”则等待下次接收数据包,不再接收该数据包;
4】在接收消息缓存双端口RAM中填写接收到的数据包,并在填写过程同时判断该数据包中是否有错误(包括1394包头CRC校验错误、1394数据负载CRC校验错误、1394数据负载实际长度与包头指示长度不一致):若接收到的数据包发生错误,则不再填写该数据包,也不保存该数据包状态信息,不更新下一条数据包保存位置,(接收下一条数据包时覆盖该错误数据包);若接收的数据包完全正确,则在接收后续数据包完成时,更新下一条数据包保存位置(接收下一条数据包时保存至新位置),保存该数据包状态信息,完成一次数据包接收;
5】接收消息状态字FIFO非“空”时,外围消息获取电路按照保存的数据包状态信息,从缓存中读取正确的数据;其具体是:接收消息状态字FIFO非“空”时,外围消息获取电路首先从FIFO中读取状态信息,再按照保存的数据包长度信息,从接收消息缓存双端口RAM中读取正确的数据。
最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (2)
1.一种满足1394协议要求消息容错处理电路,其特征在于,包括链路层数据搬移接口电路模块,接收消息缓存双端口RAM,接收消息状态字FIFO模块和控制电路模块;
所述控制电路模块用于计算接收数据包在接收消息缓存双端口RAM中存放的位置;
链路层数据搬移接口电路模块用于从链路层芯片接收来自1394总线的数据包,并判断该数据包是否为需要接收的数据包:若为需接收的数据包,则判断该数据包是否有错误,如无错误继续判断接收消息状态字FIFO是否为“满”,如“满”则不再接收该数据包;如非“满”则接收消息缓存双端口RAM缓存接收到的数据包,并将该数据包保存至接收消息缓存双端口RAM中;链路层数据搬移接口电路模块接收的来自1394总线的数据包中如有错误,则不再接收该数据包,继续等待下次接收数据包;若不为需接收的数据包,则不再接收该数据包,继续等待下次接收数据包;
接收消息缓存双端口RAM用于保存从链路层数据搬移接口电路模块传来的数据包,并在接收过程同时判断该数据包中是否有错误:若接收到的数据包发生错误,则不再接收该数据包,也不保存该数据包状态信息;若接收的数据包完全正确,则在接收后续数据包完成时,保存该数据包状态信息,完成一次数据包接收;
接收消息状态字FIFO模块用于保存接收数据包的状态信息,包括该数据包在接收消息缓存双端口RAM中存放的位置信息以及长度信息;所述接收消息缓存双端口RAM的深度最多缓存16个最大1394数据包,接收消息状态字FIFO模块的FIFO深度为16,当存放的状态信息等于14个时,即报告“满”状态;所述链路层数据搬移接口电路模块分别与控制电路模块和接收消息缓存双端口RAM连接,接收消息状态字FIFO模块与控制电路模块连接。
2.一种满足1394协议要求消息容错处理方法,利用到权利要求1所述的容错处理电路,其特征在于,包括以下步骤:1】链路层数据搬移接口电路模块从1394链路层芯片接收到数据包;2】链路层数据搬移接口电路模块判断该数据包是否为需要接收的数据包:若为需接收的数据包,则判断该数据包是否有错误,如无错误继续进行步骤3,如有错误则不再接收该数据包,继续等待下次接收数据包;若不为需接收的数据包,则不再接收该数据包,继续等待下次接收数据包;3】判断接收消息状态字FIFO是否为“满”,如非“满”则将继续进行步骤4,如“满”则不再接收该数据包;4】接收消息缓存双端口RAM缓存接收到的数据包,并在接收过程同时判断该数据包中是否有错误:若接收到的数据包发生错误,则不再接收该数据包,也不保存该数据包状态信息;若接收的数据包完全正确,则在接收后续数据包完成时,保存该数据包状态信息,完成一次数据包接收;5】接收消息状态字FIFO非“空”时,外围消息获取电路按照保存的数据包状态信息,从接收消息缓存双端口RAM中读取正确的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410753107.3A CN104486036B (zh) | 2014-12-09 | 2014-12-09 | 一种满足1394协议要求消息容错处理电路及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410753107.3A CN104486036B (zh) | 2014-12-09 | 2014-12-09 | 一种满足1394协议要求消息容错处理电路及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104486036A CN104486036A (zh) | 2015-04-01 |
CN104486036B true CN104486036B (zh) | 2018-10-26 |
Family
ID=52760549
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410753107.3A Active CN104486036B (zh) | 2014-12-09 | 2014-12-09 | 一种满足1394协议要求消息容错处理电路及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104486036B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105376129B (zh) * | 2015-12-09 | 2018-09-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种1394总线事务层-链路层数据包发送电路及方法 |
CN108614757B (zh) * | 2016-12-12 | 2021-10-15 | 中国航空工业集团公司西安航空计算技术研究所 | 监控1394总线复位的方法及实现电路 |
CN108073546A (zh) * | 2017-12-27 | 2018-05-25 | 西安奇维科技有限公司 | 一种基于fpga实现网络数据接收及读取控制方法 |
CN110082752B (zh) * | 2019-04-23 | 2020-11-03 | 四川九洲空管科技有限责任公司 | 一种基于二次雷达询问机点迹数据容错处理的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1266316A (zh) * | 1999-03-06 | 2000-09-13 | 德国汤姆森-布兰特有限公司 | 使用在集成电路中的存储器的总线接口及方法 |
CN101764794A (zh) * | 2008-12-23 | 2010-06-30 | 中国科学院空间科学与应用研究中心 | 一种可编程的ieee1394总线监测系统及监测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8639885B2 (en) * | 2009-12-21 | 2014-01-28 | Oracle America, Inc. | Reducing implementation costs of communicating cache invalidation information in a multicore processor |
-
2014
- 2014-12-09 CN CN201410753107.3A patent/CN104486036B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1266316A (zh) * | 1999-03-06 | 2000-09-13 | 德国汤姆森-布兰特有限公司 | 使用在集成电路中的存储器的总线接口及方法 |
CN101764794A (zh) * | 2008-12-23 | 2010-06-30 | 中国科学院空间科学与应用研究中心 | 一种可编程的ieee1394总线监测系统及监测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104486036A (zh) | 2015-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104486036B (zh) | 一种满足1394协议要求消息容错处理电路及方法 | |
US8281203B2 (en) | PCI.Express communication system and communication method thereof | |
CN105376129B (zh) | 一种1394总线事务层-链路层数据包发送电路及方法 | |
US9239808B2 (en) | Serial interface for FPGA prototyping | |
CN105556930A (zh) | 针对远程存储器访问的nvm express控制器 | |
US8156415B1 (en) | Method and system for command queuing in disk drives | |
CN105515926A (zh) | 一种基于fpga的二进制同步通信协议控制器 | |
CN103200130B (zh) | 一种leu中报文的安全存储和选择的方法及装置 | |
CN103838516B (zh) | 一种用于多核处理器高效访问iSCSI磁盘阵列的方法及系统 | |
CN112199309B (zh) | 基于dma引擎的数据读取方法、装置和数据传输系统 | |
TW201924305A (zh) | 資料處理方法及相關產品 | |
CN110297608A (zh) | 数据的处理方法、装置和存储介质 | |
CN105868136A (zh) | 处理多个命令/命令帧的电子装置及命令帧处理方法 | |
CN101771554B (zh) | 一种余度管理电路及其管理方法 | |
WO2012106874A1 (zh) | 内存备份过程中的系统命令的处理方法和装置 | |
CN105933325A (zh) | 一种基于NFSoRDMA的内核态RPC通信加速方法 | |
CN103034559B (zh) | 基于rdma架构设计的pq检验模块及检验方法 | |
EP2442500B1 (en) | Data transfer device and data transfer method | |
WO2014094529A1 (en) | Unified system networking with cee-pcie tunneling | |
CN106911530B (zh) | 一种基于串口冗余策略的关键测试指令传输系统及方法 | |
CN110851390B (zh) | 一种基于fpga实现4m 1553b总线协议的方法及系统 | |
CN104780123A (zh) | 一种网络包收发处理装置及其设计方法 | |
CN104461982A (zh) | 一种对1394总线事件消息定时发送的处理方法及电路 | |
CN110096456A (zh) | 一种高速率大容量缓存方法与装置 | |
WO2019015487A1 (zh) | 一种数据重传处理方法、rlc实体和mac实体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221206 Address after: Room S303, Innovation Building, No. 25, Gaoxin 1st Road, Xi'an, Shaanxi 710075 Patentee after: XI'AN XIANGTENG MICROELECTRONICS TECHNOLOGY Co.,Ltd. Address before: No.15, Jinye 2nd Road, Xi'an, Shaanxi 710119 Patentee before: 631ST Research Institute OF AVIC |
|
TR01 | Transfer of patent right |