CN110134631B - 一种自恢复spi总线通讯接口及其自恢复方法 - Google Patents
一种自恢复spi总线通讯接口及其自恢复方法 Download PDFInfo
- Publication number
- CN110134631B CN110134631B CN201910386887.5A CN201910386887A CN110134631B CN 110134631 B CN110134631 B CN 110134631B CN 201910386887 A CN201910386887 A CN 201910386887A CN 110134631 B CN110134631 B CN 110134631B
- Authority
- CN
- China
- Prior art keywords
- channel
- self
- code
- output channel
- standby
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
Abstract
本发明属于数字电路技术领域,提出了一种自恢复SPI总线通讯接口及其自恢复方法。所述方法应用于主设备时包括:基于自测试自恢复机制检测输入通道、输出通道是否故障,且在检测到故障时,启用备用通道替换故障通道;配置故障编码;通过故障编码将检测的结果和备用通道的使用情况反映给上位机。
Description
技术领域
本发明提供一种自恢复SPI总线通讯接口,属于数字电路技术领域,涉及自测试机制、自恢复机制以及故障编码的设计,特别适用于具有高可靠性、高测试性要求的多可编程逻辑器件间通讯的情况。
背景技术
SPI串行总线是一种常用的标准总线接口,具有结构简单、占用资源少、灵活性高等特点,被广泛工业领域。典型SPI总线接口由时钟信号SCK、片选信号CSN、输入通道SDI和输出通道SDO组成,如果任意一个信号发生故障,都会导致数据无法正确解析,从而导致通讯失败。所以,在航空航天等具有高可靠要求的机载电子领域中,对SPI总线的串行数据通道进行自检测,根据故障信息自主恢复,并实时地向CPU行为层和上位机反馈故障信息和总线状态具有重要的应用价值。
发明内容
发明目的:
提供了一种适用于具有高可靠性要求的多CPLD、FPGA等可编程逻辑器件间通讯场景的自恢复SPI总线通讯接口及其自恢复方法。
技术方案:
第一方面,提供了一种自恢复SPI总线通讯接口,其特征在于,所述自恢复SPI总线通讯接口包括主通道和一条方向可配置的备用通道,当主通道故障时,备用通道可以被配置为与主通道方向相同的通道。
第二方面,提供了一种基于自恢复SPI总线通讯接口的自恢复方法,应用于主设备,其特征在于,所述方法包括:
基于自测试自恢复机制检测输入通道、输出通道是否故障,且在检测到故障时,启用备用通道替换故障通道;
配置故障编码;
通过故障编码将检测的结果和备用通道的使用情况反映给上位机。
可选地,所述方法还包括:
基于SPI总线协议构造SPI帧数据格式;
基于SPI帧数据格式构造自测试自恢复机制。
可选地,启用备用通道替换故障通道是当输出通道故障时,将备用通道配置成输出通道,当输入通道故障时,将备用通道配置成输入通道。
可选地,构造SPI帧数据格式包括将SPI帧数据设计成包括Q位的总线命令、M位的地址位、N位的数据位以及1位的校验位。
可选地,构造自测试自恢复机制包括:
从设备的自测试寄存器存储有输出通道正常码和输出通道故障码;
主设备从从设备的自测试寄存器读取握手码,并对测试次数进行计数;
主设备对读取的握手码的类型和所述计数的值进行判断;
若握手码是输出通道正常码,且所述计数的值为1,则输入通道和输出通道正常;
若握手码是输出通道故障码,且所述计数的值为1,则将备用通道切换为输出通道;
若握手码既不是输出通道正常码也不是输出通道故障码,且所述计数的值为1,则将备用通道切换为输入通道;
若握手码是输出通道正常码,且所述计数的值为2,则备用通道正常;
若握手码是输出通道故障码,且所述计数的值为2,则备用通道故障;
若握手码既不是输出通道正常码也不是输出通道故障码,且所述计数的值为2,则输入通道故障且备用通道故障。
可选地,故障编码包括输入通道故障信息、输出通道故障信息和备用通道的故障信息以及总线恢复情况。
可选地,将备用通道切换为输出通道是在从设备接收测试命令或地址非法时,将备用通道切换到输出通道,同时向主设备返回输出通道错误码,主设备接收到输出通道错误码后,将备用通道切换到输出通道。
可选地,将备用通道切换为输入通道是主设备将备用通道切换到输入通道,并向从设备发送切备用通道命令,从设备接收到切备用通道命令后,将备用通道切换为其输入通道。
有益效果:
本发明在SPI接口的基础上增加了方向可配置的备用通道,基于SPI协议构建了帧数据格式,设计接口自测试自恢复机制和故障编码,通过总线自测试操作,可有效检测到输入通道和输出通道故障情况,自主启用备用通道替换故障通道,并实时地通过故障编码向CPU行为层和上位机反馈故障信息和总线状态。本发明在仅增加一个备用通道的代价下,显著的提高了SPI总线接口的可靠性和测试性,可广泛应用于工业领域。
附图说明
图1是一种自恢复SPI总线通讯接口的自测试自恢复机制流程图。
具体实施方式
下面结合附图与具体实施方式对本发明做进一步的描述。
图1是本发明提供的一种自恢复SPI总线通讯接口及其自恢复方法的流程图。本发明在SPI总线的基础上增加了一个方向可配置的备用通道,并基于SPI协议设计了SPI帧数据格式,假设总线命令位宽Q为3,且包含总线自测试、读数据,写数据和切备用通道等四类操作,其总线命令分别为3'b000,3'b011,3'b110,3'b101,地址位宽M为12,数据位宽N为16,校验类型为奇校验。当主设备依据校验位检测到数据错误时,启动自测试操作,置总线命令为3'b000,读取从设备地址为12'hFFF的自测试寄存器,获得握手码Codehandshake。当从设备接收到的测试命令和地址均正确时,向主设备返回握手码Codehandshake等于输出通道正常码Codecorrent,否则,向主设备返回握手码Codehandshake等于输出通道错误码Codeerror。使用计数器Count对测试次数计数,每启动一次自测试Count加1。假设输出通道正常码Codecorrent等于16'h55AA,输出通道错误码Codeerror等于16'hAA55,主设备依据校验位对接收数据的正确性进行判断,并执行自测试自恢复流程,具体步骤如下:
步骤一:依据校验位判断数据的正确性,若正确,则结束流程,否则进行第二步;
步骤二:初始化SPI自测试,置自测试计数器Count为0;
步骤三:主设备启动自测试操作,置总线命令为3'b000,读取从设备的地址为12'hFFF的自测试寄存器,获得握手码Codehandshake,并测试计数器Count++;
步骤四:判断握手码Codehandshake的类型和Count的值。如果Codehandshake等于Codeerror并且Count等于1,启用备用通道替换输出通道,跳至步骤三;如果Codehandshake不等于Codecorrect且不等于Codeerror,并且Count等于1,启用备用通道替换输入通道,跳至步骤三;如果Codehandshake等于Codecorrect或者Count等于2时,则结束流程。
当自测试流程结束时,依据Count和Codehandshake的过程值,将自测试自恢复过程分为以下六种情况:
1.当Count等于1时,Codehandshake等于Codecorrect,测试结束。表明从设备能正确的接收到总线命令和地址,且主设备能正确的接收数据,输出通道和输入通道工作正常,总线通讯功能正常,且未启用备用通道;
2.当Count等于1时,Codehandshake不等于Codecorrect且不等于Codeerror;当Count等于2时,Codehandshake不等于Codecorrect且不等于Codeerror,测试结束。Count等于1时,Codehandshake不等于Codecorrect且不等于Codeerror,表明主设备不能正确的接收数据,即输入通道故障,主设备启用备用通道替换输入通道,并发送总线命令3'b101,指示从设备启用备用通道替换输入通道,并启动第二次自测试;Count等于2时,Codehandshake不等于Codecorrect且不等于Codeerror,表明主设备依然不能正确的接收数据,即备用通道替换输入通道失败,备用通道故障,已启用备用通道,总线通讯功能恢复失败;
3.当Count等于1时,Codehandshake等于Codeerror;当Count=2时,Codehandshake等于Codecorrent,测试结束。Count等于1时,Codehandshake等于Codeerror,表明从设备不能正确的接收总线命令或地址,但主设备能够正确的接收数据,即输出通道故障,而输入通道正常,此时从设备启用备用通道替换输出通道,并向主设备返回输出通道错误码Codeerror,当主设备接收到Codeerror时,也启用备用通道替换输出通道,并启动第二次自测试;Count等于2时,Codehandshake等于Codecorrent,表明从设备能正确的接收到总线命令和地址,且主设备能正确的接收数据,表明输入通道工作正常,且备用通道替换输出通道成功,备用通道正常,已启用备用通道,总线通讯功能恢复成功;
4.当Count等于1时,Codehandshake等于Codeerror;当Count=2时,Codehandshake等于Codeerror,测试结束。Count等于1时,Codehandshake等于Codeerror,表明从设备不能正确的接收总线命令或地址,但主设备能够正确的接收数据,即输出通道故障,而输入通道工作正常,此时从设备启用备用通道替换输出通道,并向主设备返回输出通道错误码Codeerror,当主设备接收到Codeerror时,也启用备用通道替换输出通道,并启动第二次自测试;Count等于2时,Codehandshake等于Codeerror,表明从设备依然不能正确的接收总线命令或地址,即备用通道替换输出通道失败,备用通道故障,已启用备用通道,总线通讯功能恢复失败;
5.当Count等于1时,Codehandshake不等于Codecorrect且不等于Codeerror;当Count等于2时,Codehandshake等于Codeerror,测试结束。Count等于1时,Codehandshake不等于Codecorrect且不等于Codeerror,表明主设备不能正确的接收数据,即输入通道工作异常,主设备启用备用通道替换输入通道,并发送总线命令3'b101,指示从设备启用备用通道替换输入通道,并启动第二次自测试;Count等于2时,Codehandshake等于Codeerror,表明从设备不能正确的接收总线命令或地址,但主设备能够正确的接收数据,即备用通道替换输入通道成功,备用通道工作,但是输出通道故障,虽然已启用备用通道,但是总线通讯功能恢复失败;
6.当Count等于1时,Codehandshake不等于Codecorrect且不等于Codeerror;当Count等于2时,Codehandshake等于Codecorrect,测试结束。Count等于1时,Codehandshake不等于Codecorrect且不等于Codeerror,表明主设备不能正确的接收数据,即输入通道故障,主设备启用备用通道替换输入通道,并发送总线命令3'b101,指示从设备启用备用通道替换输入通道,并启动第二次自测试;Count等于2时,Codehandshake等于Codecorrect,表明从设备能正确的接收到总线命令和地址,且主设备能正确的接收数据,即备用通道替换输入通道成功,备用通道正常,输出通道正常,已启用备用通道,总线通讯功能恢复成功;
在总线自测试过程中,主设备对故障信息及恢复情况进行编码记录,用于指示SPI总线的状态,增强总线接口的测试性和维修性。本方法可有效检测输出通道、输入通道和备用通道的故障情况,可对输入通道和输出通道的单点故障进行恢复,并可将故障信息和恢复情况上报给上位机,为上位机的行为决策提供依据。
Claims (4)
1.一种基于自恢复SPI总线通讯接口的自恢复方法,应用于主设备,其特征在于,所述自恢复SPI总线通讯接口包括主通道和一条方向可配置的备用通道,当主通道故障时,备用通道可以被配置为与主通道方向相同的通道,所述方法包括:
基于SPI总线协议构造SPI帧数据格式,具体包括将SPI帧数据设计成包括Q位的总线命令、M位的地址位、N位的数据位以及1位的校验位;
基于SPI帧数据格式构造自测试自恢复机制,具体包括:从设备的自测试寄存器存储有输出通道正常码和输出通道故障码;主设备从从设备的自测试寄存器读取握手码,并对测试次数进行计数;主设备对读取的握手码的类型和所述计数的值进行判断;若握手码是输出通道正常码,且所述计数的值为1,则输入通道和输出通道正常;若握手码是输出通道故障码,且所述计数的值为1,则将备用通道切换为输出通道;若握手码既不是输出通道正常码也不是输出通道故障码,且所述计数的值为1,则将备用通道切换为输入通道;若握手码是输出通道正常码,且所述计数的值为2,则备用通道正常;若握手码是输出通道故障码,且所述计数的值为2,则备用通道故障;若握手码既不是输出通道正常码也不是输出通道故障码,且所述计数的值为2,则输入通道故障且备用通道故障;
基于自测试自恢复机制检测输入通道、输出通道是否故障,且在检测到故障时,启用备用通道替换故障通道,启用备用通道替换故障通道是当输出通道故障时,将备用通道配置成输出通道,当输入通道故障时,将备用通道配置成输入通道;
配置故障编码;
通过故障编码将检测的结果和备用通道的使用情况反映给上位机。
2.根据权利要求1所述的基于自恢复SPI总线通讯接口的自恢复方法,其特征在于,故障编码包括输入通道故障信息、输出通道故障信息和备用通道的故障信息以及总线恢复情况。
3.根据权利要求1所述的基于自恢复SPI总线通讯接口的自恢复方法,其特征在于,将备用通道切换为输出通道是在从设备接收测试命令或地址非法时,将备用通道切换到输出通道,同时向主设备返回输出通道错误码,主设备接收到输出通道错误码后,将备用通道切换到输出通道。
4.根据权利要求1所述的基于自恢复SPI总线通讯接口的自恢复方法,其特征在于,将备用通道切换为输入通道是主设备将备用通道切换到输入通道,并向从设备发送切备用通道命令,从设备接收到切备用通道命令后,将备用通道切换为其输入通道。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910386887.5A CN110134631B (zh) | 2019-05-09 | 2019-05-09 | 一种自恢复spi总线通讯接口及其自恢复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910386887.5A CN110134631B (zh) | 2019-05-09 | 2019-05-09 | 一种自恢复spi总线通讯接口及其自恢复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110134631A CN110134631A (zh) | 2019-08-16 |
CN110134631B true CN110134631B (zh) | 2023-05-23 |
Family
ID=67577068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910386887.5A Active CN110134631B (zh) | 2019-05-09 | 2019-05-09 | 一种自恢复spi总线通讯接口及其自恢复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110134631B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000222294A (ja) * | 1999-01-29 | 2000-08-11 | Toshiba Corp | 計算機システム及びバス障害回復方法 |
CN2938598Y (zh) * | 2006-08-29 | 2007-08-22 | 中兴通讯股份有限公司 | 一种主备通讯接口 |
CN101247412A (zh) * | 2008-03-07 | 2008-08-20 | 中兴通讯股份有限公司 | 双通道检测物理层/介质访问控制层状态的装置及方法 |
CN103139060A (zh) * | 2013-03-01 | 2013-06-05 | 哈尔滨工业大学 | 基于双dsp的高容错性can总线数字网关 |
CN108566324A (zh) * | 2018-04-11 | 2018-09-21 | 武汉理工大学 | 一种基于隔离式双以太网和双can通信的系统及方法 |
-
2019
- 2019-05-09 CN CN201910386887.5A patent/CN110134631B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000222294A (ja) * | 1999-01-29 | 2000-08-11 | Toshiba Corp | 計算機システム及びバス障害回復方法 |
CN2938598Y (zh) * | 2006-08-29 | 2007-08-22 | 中兴通讯股份有限公司 | 一种主备通讯接口 |
CN101247412A (zh) * | 2008-03-07 | 2008-08-20 | 中兴通讯股份有限公司 | 双通道检测物理层/介质访问控制层状态的装置及方法 |
CN103139060A (zh) * | 2013-03-01 | 2013-06-05 | 哈尔滨工业大学 | 基于双dsp的高容错性can总线数字网关 |
CN108566324A (zh) * | 2018-04-11 | 2018-09-21 | 武汉理工大学 | 一种基于隔离式双以太网和双can通信的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110134631A (zh) | 2019-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8018837B2 (en) | Self-healing chip-to-chip interface | |
DE3687777T2 (de) | Verfahren und geraet zur sicherstellung eines datenuebertragungssystems. | |
US7848232B2 (en) | Time division multiplexed communication bus and related methods | |
CN104699576B (zh) | 串行通信测试装置、包括该装置的系统及其方法 | |
CN107704067B (zh) | 一种SoC芯片复位方法和复位系统 | |
CN113608720A (zh) | 一种抗单粒子翻转的星载数据处理系统及方法 | |
CN112526979A (zh) | 一种多重冗余架构的串行通信接口诊断系统及方法 | |
CN105487609A (zh) | 一种服务器 | |
CN110646723B (zh) | 总线接口测试电路和方法 | |
CN110134631B (zh) | 一种自恢复spi总线通讯接口及其自恢复方法 | |
CN113535618A (zh) | 用于通过串行接口收发器进行故障检测和报告的系统和方法 | |
CN116027986A (zh) | 一种数据存储校验方法、装置、设备及存储介质 | |
CN116226012A (zh) | 串行外设接口集成电路及其操作方法 | |
CN106354580A (zh) | 一种数据恢复方法及装置 | |
CN113722138A (zh) | 一种降低软错误敏感性的高可靠fpga系统和方法 | |
CN103984614A (zh) | 一种监控方法及监控装置、电子设备 | |
CN110907857B (zh) | 一种基于fpga的连接器自动检测方法 | |
US10031825B2 (en) | Electronic device having multiplexed input/output terminals | |
US20070283208A1 (en) | Systems, methods, and computer program products for providing a two-bit symbol bus error correcting code with bus diagnostic features | |
CN100472504C (zh) | 中央接口盘的冗余控制装置和方法 | |
CN115801540B (zh) | 一种PCIe设备降级检测方法、装置、终端及存储介质 | |
EP4428692A1 (en) | Functional safety display controller and functional safety display control system | |
US20130176050A1 (en) | Data interface having an intrinsically safe, integrated error detection | |
CN118535516B (zh) | 车规微处理器电路 | |
CN118394558B (zh) | 一种异常检测方法、计算机程序产品和存储介质 |
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 |