CN107291645B - 双控制器的数据传输方法 - Google Patents
双控制器的数据传输方法 Download PDFInfo
- Publication number
- CN107291645B CN107291645B CN201610200959.9A CN201610200959A CN107291645B CN 107291645 B CN107291645 B CN 107291645B CN 201610200959 A CN201610200959 A CN 201610200959A CN 107291645 B CN107291645 B CN 107291645B
- Authority
- CN
- China
- Prior art keywords
- controller
- packet
- party
- receiving
- transmitting
- 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
- 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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种双控制器的数据传输方法,其包括以下步骤:侦测插入状态脚位的电信号获取第一控制器与第二控制器的插入状态;若侦测到已插入,则侦测第二脚位的电信号获取第一控制器与第二控制器的心跳信号,以用来得知对方是否正常运作或是否当机;若侦测到心跳信号是正常的,则侦测位置侦测脚位的电信号获取第一控制器与第二控制器的位置状态;根据位置状态的侦测结果决定第一控制器与第二控制器之一为传送方,另一为接收方,传送方传送第一封包时,接收方等待接收第一封包,当接收方接收到第一封包后,接收方会结合自身的信息进行数据整合并将整合后的第二封包回传至传送方,再由传送方接收第二封包;并不断重复传送与接收的动作,直至收到停止传送讯息。
Description
【技术领域】
本发明涉及一种双控制器的数据传输方法,尤指一种可避免读写失败的双控制器的数据传输方法。
【背景技术】
在储存装置产品中(如:Just Bunch of Disks,JBOD),若有冗余(redundant)的设计,就会有两个控制器的数据与状态需互相交换的需求,而最常采用的方式便是将两个控制器透过一组对接的IIC接口做数据交换,例如控制器的系统环境信息、电压值、硬盘剩余空间、以及硬盘配置信息的数据。一般而言,一条IIC bus上可以挂多个IIC装置。这些IIC装置有的是IIC master,其余的则是IIC slave。运作方式就是由IIC master向IIC slave做读写的动作。然而在一条IIC bus上,若有多个IIC master同时对同一个IIC slave做读写的动作时,就有可能造成读写失败。IIC protocol本身虽有设计避免这种状况的机制,但是各家chip vendor的实作不一定有100%达到IIC protocol的要求,而又不一定可以做出相对应的调校。
【发明内容】
本发明的主要目的在于提供一种可避免读写失败的双控制器的数据传输方法。
本发明提供一种双控制器的数据传输方法,其用于实现第一控制器与第二控制器内的数据同步,且第一控制器上的第一GPIO连接接口与第二控制器的第二GPIO连接接口通过若干组连接线连接,其中,第一组连接线分别连接第一控制器与第二控制器的插入状态脚位,第二组连接线分别连接第一控制器与第二控制器的第二脚位,第三组连接线分别连接第一控制器与第二控制器的位置侦测脚位;且双控制器的数据传输方法包括以下步骤:
步骤S10:侦测插入状态脚位的电信号获取第一控制器与第二控制器的插入状态;若侦测到已插入,则执行步骤S20;否则,结束流程;
步骤S20:侦测第二脚位的电信号获取第一控制器与第二控制器的心跳信号,以用来得知对方是否正常运作或是否当机;若侦测到心跳信号是正常的,则执行步骤S30;否则,结束流程;
步骤S30:侦测位置侦测脚位的电信号获取第一控制器与第二控制器的位置状态;
步骤S40:根据位置状态的侦测结果决定第一控制器与第二控制器之一为传送方,另一为接收方,传送方传送第一封包时,接收方等待接收第一封包,当接收方接收到第一封包后,接收方会结合自身的信息进行数据整合并将整合后的第二封包回传至传送方,再由传送方接收第二封包;
步骤S50:是否收到停止传送讯息,若是,则结束流程;若否,则重复步骤S40。
特别地,所述若干组连接线为IIC bus。
特别地,第一封包与第二封包包括header、data、checksum。
特别地,第一封包的header包含的封包种类信息为ping,而第二封包的header包含的封包种类信息为pong。
与现有技术相比较,本发明双控制器的数据传输方法让同一个IIC bus上,同一时间,第一控制器与第二控制器之一为传送方,另一为接收方,每个控制器都必须经历「先传出一第一封包,并接收一回复的第二封包」的循环,才能再次进入下一个「传出,再接收」的循环,传出与接收动作有序进行,从而避免读写失败。
【附图说明】
图1为整合型装置的示意图。
图2为双控制器的连接架构图。
图3为本发明双控制器的数据传输方法的流程图。
【具体实施方式】
请参阅图1-3所示,本发明双控制器的数据传输方法应用于一整合型装置10中,所述整合型装置10中设有第一部件11与第二部件12。第一控制器40设于第一部件11上,第一控制器50设于第一部件11上,且第一控制器40上的第一GPIO连接接口与第二控制器50的第二GPIO连接接口通过若干组连接线连接,其中,第一组连接线分别连接第一控制器40与第二控制器50的插入状态脚位,第二组连接线分别连接第一控制器40与第二控制器50的第二脚位,第三组连接线分别连接第一控制器40与第二控制器50的位置侦测脚位;于本实施例中,若干组连接线为IIC bus。通过本发明双控制器的数据传输方法,实现第一控制器40与第二控制器50内的工作数据与工作状态的同步。于本实施例中,第一控制器40与第二控制器50为一SAS扩展器(SAS Expander)。第一控制器40与第二控制器50之间所传递的工作数据(信息)为一装配版本信息(MFG Version Info)、一串行地址(SAS Address)、一物理层配置数据(PHY Config Data)、一物理层连接信息(PHY Connector Info)、一系统环境信息、一电压值、一硬盘剩余空间、一硬盘配置信息;第一控制器40与第二控制器50之间所传递的工作状态包括SAS cable是否有插上,温度是否过高,风扇转速,是否所有的组件都有安装。
本发明双控制器的数据传输方法包括以下步骤:
步骤S10:侦测插入状态脚位的电信号获取第一控制器40与第二控制器50的插入状态;若侦测到已插入,则执行步骤S20;否则,结束流程;
步骤S20:侦测第二脚位的电信号获取第一控制器40与第二控制器50的心跳信号,以用来得知对方是否正常运作或是否当机;若侦测到心跳信号是正常的,则执行步骤S30;否则,结束流程;
步骤S30:侦测位置侦测脚位的电信号获取第一控制器40与第二控制器50的位置状态;
步骤S40:根据位置状态的侦测结果决定第一控制器40与第二控制器50之一为传送方,另一为接收方,传送方传送第一封包时,接收方等待接收第一封包,当接收方接收到第一封包后,接收方会结合自身的信息进行数据整合并将整合后的第二封包回传至传送方,再由传送方接收第二封包(PONG包);
步骤S50:是否收到停止传送讯息,若是,则结束流程;若否,则重复步骤S40。
于本实施例中,第一封包与第二封包的格式可以自定义,即,是指封包要传送的那些数据可依各项目的需求而定;第一封包与第二封包包括「header」「data」「checksum」,其中,「checksum」是指校验信息,校验信息是为了防止数据在传送过程中有毁损。若有毁损会直接丢掉,不会要求对方重送。且第一封包的header包含「封包种类信息」为「ping」,而第二封包的header包含「封包种类信息」为「pong」。
假设第一控制器40为传送方,第二控制器50为接收方,PING-PONG机制下每一个循环下的完整流程如下所示:
第一控制器40传送第一封包(PING包)时,第二控制器50等待接收第一封包(PING包),当第二控制器50接收到第一封包(PING包)后,第二控制器50会结合自身的信息进行数据整合并将整合后的第二封包(PONG包)回传至第一控制器40,再由第一控制器40接收第二封包(PONG包);
当一个循环完成后,会进入下一个循环,以此类推。
于本实施例中,可将第一控制器40第二控制器50视为同时为IIC master与IICslave,当第一控制器40扮演IIC master,送资料给第二控制器50(IIC slave)后,第二控制器50才又扮演IIC master,把资料送给第一控制器40(IIC slave),进而避免同一个IICbus上有2个IIC master,造成资料传送失败的状况发生。
本发明双控制器的数据传输方法让同一个IIC bus上,同一时间,第一控制器与第二控制器之一为传送方,另一为接收方,每个控制器都必须经历「先传出一第一封包(PING包),并接收一回复的第二封包(PONG包)」的循环,才能再次进入下一个「传出,再接收」的循环,传出与接收动作有序进行,从而避免读写失败。因此,在有redundant设计的系统中,即使控制器的状态随时都在改变,这些变化可藉由ping-pong模式的peer-to-peer数据交换机制,告知另一个控制器,透过本发明的机制,两个控制器都可以得到对方最新的数据与状态。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (4)
1.一种双控制器的数据传输方法,其用于实现第一控制器与第二控制器内的数据同步,第一控制器与第二控制器位于同一个IIC bus上,且第一控制器上的第一GPIO连接接口与第二控制器的第二GPIO连接接口通过若干组连接线连接,其中,第一组连接线分别连接第一控制器与第二控制器的插入状态脚位,第二组连接线分别连接第一控制器与第二控制器的第二脚位,第三组连接线分别连接第一控制器与第二控制器的位置侦测脚位;其特征在于包括以下步骤:
步骤S10:侦测插入状态脚位的电信号获取第一控制器与第二控制器的插入状态;若侦测到已插入,则执行步骤S20;否则,结束流程;
步骤S20:侦测第二脚位的电信号获取第一控制器与第二控制器的心跳信号,以用来得知对方是否正常运作或是否当机;若侦测到心跳信号是正常的,则执行步骤S30;否则,结束流程;
步骤S30:侦测位置侦测脚位的电信号获取第一控制器与第二控制器的位置状态;
步骤S40:根据位置状态的侦测结果决定第一控制器与第二控制器之一为传送方,另一为接收方,传送方传送第一封包时,接收方等待接收第一封包,此时传送方扮演IICmaster,当接收方接收到第一封包后,此时则改由接收方扮演IIC master,接收方会将第一封包结合自身的信息进行数据整合并将整合后的第二封包回传至传送方,再由传送方接收到第二封包;
步骤S50:是否收到停止传送讯息,若是,则结束流程;若否,则重复步骤S40。
2.根据权利要求1所述的双控制器的数据传输方法,其特征在于:所述若干组连接线为IIC bus。
3.根据权利要求1所述的双控制器的数据传输方法,其特征在于:第一封包与第二封包包括header、data、checksum。
4.根据权利要求3所述的双控制器的数据传输方法,其特征在于:第一封包的header包含的封包种类信息为ping,而第二封包的header包含的封包种类信息为pong。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610200959.9A CN107291645B (zh) | 2016-04-01 | 2016-04-01 | 双控制器的数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610200959.9A CN107291645B (zh) | 2016-04-01 | 2016-04-01 | 双控制器的数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107291645A CN107291645A (zh) | 2017-10-24 |
CN107291645B true CN107291645B (zh) | 2020-05-01 |
Family
ID=60087406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610200959.9A Active CN107291645B (zh) | 2016-04-01 | 2016-04-01 | 双控制器的数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107291645B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1988537A (zh) * | 2006-12-08 | 2007-06-27 | 上海广电(集团)有限公司中央研究院 | 一种数据传输协议 |
CN101296183A (zh) * | 2008-04-29 | 2008-10-29 | 北京泰得思达科技发展有限公司 | 一种双控制器系统的数据传输系统 |
GB2457147A (en) * | 2008-02-08 | 2009-08-12 | Ibm | Reading back data on an I2C bus to detect transmission errors |
CN101661454A (zh) * | 2009-10-16 | 2010-03-03 | 首都师范大学 | 一种可动态重构的高速串行总线系统及控制方法 |
-
2016
- 2016-04-01 CN CN201610200959.9A patent/CN107291645B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1988537A (zh) * | 2006-12-08 | 2007-06-27 | 上海广电(集团)有限公司中央研究院 | 一种数据传输协议 |
GB2457147A (en) * | 2008-02-08 | 2009-08-12 | Ibm | Reading back data on an I2C bus to detect transmission errors |
CN101296183A (zh) * | 2008-04-29 | 2008-10-29 | 北京泰得思达科技发展有限公司 | 一种双控制器系统的数据传输系统 |
CN101661454A (zh) * | 2009-10-16 | 2010-03-03 | 首都师范大学 | 一种可动态重构的高速串行总线系统及控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107291645A (zh) | 2017-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10417167B2 (en) | Implementing sideband control structure for PCIE cable cards and IO expansion enclosures | |
US10108578B2 (en) | Single wire communications interface and protocol | |
US10552366B2 (en) | Method of communication for master device and slave device on synchronous data bus wherein master and slave devices are coupled in parallel | |
US7861110B2 (en) | System, method, and adapter for creating fault-tolerant communication busses from standard components | |
US8954813B2 (en) | Memory system and test method thereof | |
CN110580235B (zh) | 一种sas扩展器通信方法及装置 | |
US20070234136A1 (en) | Method and apparatus for detecting the presence of errors in data transmitted between components in a data storage system using an I2C protocol | |
US20080062897A1 (en) | Time division multiplexed communication bus and related methods | |
US20110193579A1 (en) | Determination of physical connectivity status of devices based on electrical measurement | |
US20160134553A1 (en) | Flexible scheduling method and apparatus in lin communication | |
CN109245950B (zh) | 一种链路失效位置确定的方法以及相关装置 | |
US7685442B2 (en) | Method and systems for a radiation tolerant bus interface circuit | |
US6715019B1 (en) | Bus reset management by a primary controller card of multiple controller cards | |
EP2940935B1 (en) | Controller area network (CAN) device and method for controlling CAN traffic | |
US20080168302A1 (en) | Systems and methods for diagnosing faults in a multiple domain storage system | |
CN107291645B (zh) | 双控制器的数据传输方法 | |
CN105700986A (zh) | 用于监控运作信息的服务器系统 | |
JP2016141200A (ja) | 車載ネットワーク | |
JP6134720B2 (ja) | 接続方法 | |
US9742654B1 (en) | Communication interface testing | |
US20040162927A1 (en) | High speed multiple port data bus interface architecture | |
JP5174784B2 (ja) | 処理装置、処理制御システム、およびその制御方法 | |
US11012195B2 (en) | Method, sensor, and controller for transmitting a data packet from a sensor to a controller | |
US20050220122A1 (en) | Methods and systems for a data processing system having radiation tolerant bus | |
EP4432091A1 (en) | Single signal debug port |
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 |