CN109344113B - 一种芯片间通讯的数据派发方法及系统 - Google Patents
一种芯片间通讯的数据派发方法及系统 Download PDFInfo
- Publication number
- CN109344113B CN109344113B CN201811131528.7A CN201811131528A CN109344113B CN 109344113 B CN109344113 B CN 109344113B CN 201811131528 A CN201811131528 A CN 201811131528A CN 109344113 B CN109344113 B CN 109344113B
- Authority
- CN
- China
- Prior art keywords
- data
- control node
- node
- received data
- sending
- 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
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种芯片间通讯的数据派发方法及系统,通过本发明所提供的方法,通过控制节点可以对每个节点进行排位,并连续的将N笔数据发送至整串传输节点,从而实现了串行派发协议,用串行的方式实现芯片间数据的派发以及数据的反馈,同时实现芯片级的同步行为。
Description
技术领域
本申请涉及通讯技术领域,尤其涉及一种芯片间通讯的数据派发方法及系统。
背景技术
作为片上系统(SOC),芯片间的通讯常用的方式是 I2C/UART 等等;这些协议往往只满足一对一或少量器件间的通讯,如果是一对多或者器件相对有时间要求的话,比如芯片级的同步,就力不从心,满足不了实际应用场景的需求。
发明内容
本发明提供了一种芯片间通讯的数据派发方法及系统,用以解决现有技术中芯片间的通讯较为单一,不能满足芯片之间的通讯要求的问题。
其具体的技术方案如下:
一种芯片间通讯的数据派发方法,所述方法包括:
在控制节点获取整串传输节点的节点总数目以及每个传输节点的排位值时,接收控制节点发送的连续的 N 笔连续的数据,其中,N为整串传输节点的总数,N 为大于等于1的正整数;
在 N笔连续的数据中确定出排位值,并根据所述排位值在连续的 N 笔数据中确定出接收数据;
在 N笔连续的数据中提取出接收数据,保存接收数据,并将剩余数据发送至下一个传输节点。
可选的,在接收控制节点发送的连续的 N笔连续的数据之前,所述方法还包括:
接收控制节点发送的广播数据;
根据所述广播数据中的总数低电平循环数来确定排位值,并将排位值写入寄存器。
可选的,在 N笔连续的数据中提取出接收数据,保存接收数据,并将剩余数据发送至下一个传输节点之后,所述方法还包括:
根据排位值,计算出当前需要执行的延时计数;
根据所述延时计数进行延时处理,发出中断,并将工作状态调整为空闲状态。
可选的,在 N笔连续的数据中提取出接收数据,保存接收数据,并将剩余数据发送至下一个传输节点之后,所述方法还包括:
检测当前接收到的数据是否协议定的数据匹配;
若是不匹配,则生成错误状态,将错误状态保存在寄存器中,并在接收到控制节点发起的查询指令时,将所述错误状态发送至所述控制节点。
可选的,在 N笔连续的数据中提取出接收数据,保存接收数据,并将剩余数据发送至下一个传输节点之后,所述方法还包括:
检测当前接收到的数据中的奇偶校验位是否通过;
若是未通过,则生成错误状态,将错误状态保存在寄存器中,并在接收到控制节点发起的查询指令时,将所述错误状态发送至所述控制节点。
可选的,在 N笔连续的数据中提取出接收数据,保存接收数据,并将剩余数据发送至下一个传输节点之后,所述方法还包括:
在接收到控制节点发送的检查指令时,将输入接口以及输出接口进行对换; 在检测响应数据的对应排位位置添加错误标志数据。
一种芯片间通讯的数据派发系统,所述系统包括:
接收端口,用于在控制节点获取整串传输节点的节点总数目以及每个传输节点的排位值时,接收控制节点发送的连续的 N笔连续的数据,其中,N为整串传输节点的总数,N为大于等于1的正整数;
控制模块,用于在 N笔连续的数据中确定出排位值,并根据所述排位值在连续的N笔数据中确定出接收数据;在 N笔连续的数据中提取出接收数据,保存接收数据,并将剩余数据发送至下一个传输节点。
可选的,所述控制模块,还用于接收控制节点发送的广播数据;根据所述广播数据中的总数低电平循环数来确定排位值,并将排位值写入寄存器。
可选的,所述控制模块,还用于根据排位值,计算出当前需要执行的延时计数;根据所述延时计数进行延时处理,发出中断,并将工作状态调整为空闲状态。
可选的,所述控制模块,还用于检测当前接收到的数据是否协议定的数据匹配;若是不匹配,则生成错误状态,将错误状态保存在寄存器中,并在接收到控制节点发起的查询指令时,将所述错误状态发送至所述控制节点。
通过本发明实施例所提供的方法,通过控制节点可以对每个节点进行排位, 并连续的将 N 笔数据发送至整串传输节点,从而实现了串行派发协议,用串行的方式实现芯片间数据的派发以及数据的反馈,同时实现芯片级的同步行为。
附图说明
图1为本发明实施例中一种芯片间通讯的数据派发方法的流程图;
图 2 为本发明实施例中 SDP 协议下的芯片使用一对对外引脚的示意图; 图 3为本发明实施例中 SDP 协议下传输节点的排位示意图;
图 4 为本发明实施例中 SDP 协议下数据派发的示意图之一;
图 5 为本发明实施例中 SDP 协议下数据派发的示意图之一;
图 6 为本发明实施例中 SDP 协议下 SDPI/SDPO 反转示意图; 图 7 为本发明实施例中 SDP 协议下数据查询示意图;
图 8 为本发明实施例中 SDP 协议下一种芯片间通讯的数据派发系统结构示意图。
具体实施方式
下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解, 本发明实施例以及实施例中的具体技术特征只是对本发明技术方案的说明,而不是限定,在不冲突的情况下,本发明实施例以及实施例中的具体技术特征可以相互组合。
如图 1 所示为本发明实施例中一种芯片间通讯的数据派发方法的流程图, 该方法包括:
S10,在控制节点获取整串传输节点的节点总数目以及每个传输节点的排位值时,接收控制节点发送的连续的 N 笔连续的数据;
首先来讲,在通讯系统中包含一个控制节点Master 以及N 个传输节点Slave。Master 作为一次传输的发起者,Slave 一次传输的接收者,当应用系统采用 SDP 协议的时候,系统中总有一个 Master 节点和若干个 Slave 节点。Master 和所有Slave 工作在同样的频率下。SlaveN 表示第 N 个Slave,SlaveM 表示第M 个Slave。
Master 可以向Slave 下发命令,命令表征控制属性的数据,SDP 通讯的启动可以做成命令 CMD0;其中查询是可选的,单独做成命令 CMD1;反馈做成命令 ACKCMD。命令实际是事先定义好的二进制数列,比如我们可以定义如下, CMD0:010101;CMD1:011100;ACKCMD:010011 等等。
SDP 协议下的芯片使用一对对外引脚(双向IO引脚),这里称为 SDPI 和 SDPO,如图 2 所示,它们分别用来接收前序节点的信号和输送给后续节点的信号。如图2各节点串联起来,组成整个 SDP 系统。在系统工作过程中,SDPI 和 SDPO 都处于上拉状态。
在执行步骤 S10 之前,首先需要对系统中的各个传输节点进行排位,控制节点会发送广播数据,该广播数据中包含了每个 Slave 节点在整串的节点数目N(该值作为数据包,且包含奇偶校验位)和在当前串中的排位,具体如如图 3所示。
由于每个节点都有整串的节点数目 N,每个节点的状态机的跳转依赖 N 值作计数,因此各个节点的时间长度一致。
每个 Slave 节点会将最近一次接收到的在整串的排位值和节点数目的信息保存在寄存器中。
在排位完成之后,Master 节点从最近的第 1 个 Slave 节点的数据开始,将 N笔连续的数据连续发送出来。
S11,在 N 笔连续的数据中确定出排位值,并根据排位值在连续的 N 笔数据中确定出接收数据;
S12,在 N 笔连续的数据中提取出接收数据,保存接收数据,并将剩余数据发送至下一个传输节点。
举例来讲,接收数据的节点为 SlaveM,也就是第M 个传输节点 Slave 接收到数据时,如图 4 所示,Slave 节点会根据获得的节点总数目 N,和本节点所处的排位值 M,将从 SDPI 接收到的数据直接从 SDPO 传送出去,其中第 M 笔数据保存到自己的数据寄存器中,该第M 笔数据就为接收数据。
当然,在本发明实施例中,除了可以从第 1个开始发送数据之外,还可以从 N 个Slave 开始发送数据,这种方式下 SlaveN 会最先收到数据,如图 5所示。
进一步,在本发明实施例中,检测当前接收到的数据是否协议定的数据匹配;若是不匹配,则生成错误状态,将错误状态保存在寄存器中,并在接收到控制节点发起的查询指令时,将所述错误状态发送至所述控制节点。
具体来讲,如果数据派发完成后如果不需要查询,系统将进入 End 状态处理一些延时问题。因为,数据传输过程中会收到外界的干扰,为了减少这些影响,我们需要对输入数据做 Debounce(去抖)处理,这样会有1个单位时间(假设为 UDLY,此时间与 Debounce的做法相关)的延时。因此,从 Master 到第 N 个slave,理论上存在最大 N 个 UDLY 的延迟。这样每个收下自己数据的节点 M(Master 可以当作节点 0),需要再延时计数 N-M 个UDLY 时间,之后发出中断表示已经接受完数据开始执行其它相关操作,并将状态跳回Idle。到此一次从Master 到 N 个 Slave 的派发完成。
进一步,在本发明实施例中,在接收到控制节点发送的检查指令时,将输入接口以及输出接口进行对换;在检测响应数据的对应排位位置添加错误标志数据。检测当前接收到的数据中的奇偶校验位是否通过;若是未通过,则生成错误状态,将错误状态保存在寄存器中,并在接收到控制节点发起的查询指令时,将所述错误状态发送至所述控制节点。
具体来讲,如果不需要查询,状态机就直接跳到 End;反之将执行查询。之所以我们前面需求SDPI/SDPO 为双向IO引脚,就是因为查询模式下此两个引脚需交换I/O 状态,如图 6 所示。
若 Master 需要查询整串节点的状态时,在数据派发完成后发送查询命令CMD1,表示要进行后续查询过程,发完命令的 Master 进入 hold 状态等待接收Error。命令会被传递,直到最后的 Salve 收到。第 N 个 Slave 节点收到 CMD1 命令后,就将 SDPI 和SDPO 的 I/O 状态交换,进入 CHECK 模式,此时 SalveN 才是整个CHECK 过程的发起者,它主动发送命令ACKCMD,之后可以认为是排位的再现。其它 Salve(包括 Master)收到ACKCMD 命令后,也将 SDPI 和SDPO 的 I/O 状态反转(图 6 所示),也进入 CHECK 模式。CHECK 会传递回N 个数据,每个 Salve 在对应排位位置附加自己保存的Error 信息。如果一个 Salve 排位位置是M,则其 Error 信息(Error 有效,数据值为 0,否则为 1)位于第M位。Master 节点会接收最后的数据,只要有 Error 都将存入 Master 对应寄存器。CHECK完成后各节点同样会回到 Idel 状态。
查询的过程如图 7。这里假设 SlaveN-1、SlaveN-1 和 Slave2 三个节点 Error,其他节点没有产生Error 的情况下的查询过程。
为了防止传递过程中未知干扰,系统建议采用 timeout 机制,比如每个节点检测到自身SDPI/SDPO 信号高电平持续 1024 个 cycle,则自行回到 IDEL 状态。
通过本发明实施例所提供的方法,通过控制节点可以对每个节点进行排位, 并连续的将 N 笔数据发送至整串传输节点,从而实现了串行派发协议,用串行的方式实现芯片间数据的派发以及数据的反馈,同时实现芯片级的同步行为。
对应本发明实施例中一种芯片间通讯的数据派发方法,本发明实施例中还提供了一种芯片间通讯的数据派发系统,如图 8 所示为本发明实施例中一种芯片间通讯的数据派发系统的结构示意图,该系统包括:
接收端口 801,用于在控制节点获取整串传输节点的节点总数目以及每个传输节点的排位值时,接收控制节点发送的连续的 N 笔连续的数据,其中,N 为整串传输节点的总数,N 为大于等于 1 的正整数;
控制模块 802,用于在 N 笔连续的数据中确定出排位值,并根据所述排位值在连续的N 笔数据中确定出接收数据;在 N 笔连续的数据中提取出接收数据, 保存接收数据,并将剩余数据发送至下一个传输节点。
进一步,在本发明实施例中,所述控制模块 801,还用于接收控制节点发送的广播数据;根据所述广播数据中的总数低电平循环数来确定排位值,并将排位值写入寄存器。
进一步,在本发明实施例中,所述控制模块 801,还用于根据排位值,计算出当前需要执行的延时计数;根据所述延时计数进行延时处理,发出中断,并将工作状态调整为空闲状态。
进一步,在本发明实施例中,所述控制模块 801,还用于检测当前接收到的数据是否协议定的数据匹配;若是不匹配,则生成错误状态,将错误状态保存在寄存器中,并在接收到控制节点发起的查询指令时,将所述错误状态发送至所述控制节点。
尽管已描述了本申请的优选实施例,但本领域内的普通技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改,包括采用特定符号、标记确定顶点等变更方式。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (5)
1.一种芯片间通讯的数据派发方法,其特征在于,所述方法包括:
在控制节点获取整串传输节点的节点总数目以及每个传输节点的排位值时,接收控制节点发送的连续的 N 笔连续的数据,其中,N 为整串传输节点的总数,N 为大于等于 1 的正整数;
在 N 笔连续的数据中确定出排位值,并根据所述排位值在连续的 N 笔数据中确定出接收数据;
在 N 笔连续的数据中提取出接收数据,保存接收数据,并将剩余数据发送至下一个传输节点;
在接收控制节点发送的连续的N 笔连续的数据之前,所述方法还包括: 接收控制节点发送的广播数据;
根据所述广播数据中的总数低电平循环数来确定排位值,并将排位值写入寄存器;
在 N 笔连续的数据中提取出接收数据,保存接收数据,并将剩余数据发送至下一个传输节点之后,所述方法还包括:
根据排位值,计算出当前需要执行的延时计数;
根据所述延时计数进行延时处理,发出中断,并将工作状态调整为空闲状态;
在 N 笔连续的数据中提取出接收数据,保存接收数据,并将剩余数据发送至下一个传输节点之后,所述方法还包括:
在接收到控制节点发送的检查指令时,将输入接口以及输出接口进行对换; 在检测响应数据的对应排位位置添加错误标志数据。
2.如权利要求 1 所述的方法,其特征在于,在 N 笔连续的数据中提取出接收数据,保存接收数据,并将剩余数据发送至下一个传输节点之后,所述方法还包括:
检测当前接收到的数据是否协议定的数据匹配;
若是不匹配,则生成错误状态,将错误状态保存在寄存器中,并在接收到控制节点发起的查询指令时,将所述错误状态发送至所述控制节点。
3.如权利要求 1 所述的方法,其特征在于,在 N 笔连续的数据中提取出接收数据,保存接收数据,并将剩余数据发送至下一个传输节点之后,所述方法还包括:
检测当前接收到的数据中的奇偶校验位是否通过;
若是未通过,则生成错误状态,将错误状态保存在寄存器中,并在接收到控制节点发起的查询指令时,将所述错误状态发送至所述控制节点。
4.一种用于实现权利要求1所述方法的芯片间通讯的数据派发系统,其特征在于,所述系统包括:
接收端口,用于在控制节点获取整串传输节点的节点总数目以及每个传输节点的排位值时,接收控制节点发送的连续的 N 笔连续的数据,其中,N 为整串传输节点的总数,N 为大于等于 1 的正整数;
控制模块,用于在 N 笔连续的数据中确定出排位值,并根据所述排位值在连续的 N笔数据中确定出接收数据;在 N 笔连续的数据中提取出接收数据,保存接收数据,并将剩余数据发送至下一个传输节点;
所述控制模块,还用于接收控制节点发送的广播数据;根据所述广播数据中的总数低电平循环数来确定排位值,并将排位值写入寄存器;
所述控制模块,还用于根据排位值,计算出当前需要执行的延时计数;根据所述延时计数进行延时处理,发出中断,并将工作状态调整为空闲状态。
5.如权利要求 4所述的系统,其特征在于,所述控制模块,还用于检测当前接收到的数据是否协议定的数据匹配;若是不匹配,则生成错误状态,将
错误状态保存在寄存器中,并在接收到控制节点发起的查询指令时,将所述错误状态发送至所述控制节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811131528.7A CN109344113B (zh) | 2018-09-27 | 2018-09-27 | 一种芯片间通讯的数据派发方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811131528.7A CN109344113B (zh) | 2018-09-27 | 2018-09-27 | 一种芯片间通讯的数据派发方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109344113A CN109344113A (zh) | 2019-02-15 |
CN109344113B true CN109344113B (zh) | 2022-11-11 |
Family
ID=65306977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811131528.7A Active CN109344113B (zh) | 2018-09-27 | 2018-09-27 | 一种芯片间通讯的数据派发方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109344113B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569211B (zh) * | 2019-09-02 | 2022-09-13 | 飞腾信息技术有限公司 | 片上系统内部通讯方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459675A (zh) * | 2008-12-29 | 2009-06-17 | 南京南瑞继保电气有限公司 | 一种实时多路复用同步高速传输串行总线协议 |
CN102237997A (zh) * | 2011-07-08 | 2011-11-09 | 山东大学 | 一种链状以太网节点间的实时同步及动态补偿方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2562682B2 (ja) * | 1988-12-05 | 1996-12-11 | 株式会社小松製作所 | シリアルデータ通信システムにおけるエラー検出方式 |
US20050163151A1 (en) * | 2003-08-12 | 2005-07-28 | Omnitek Partners Llc | Projectile having a casing and/or interior acting as a communication bus between electronic components |
KR20100101449A (ko) * | 2009-03-09 | 2010-09-17 | 삼성전자주식회사 | 메모리 장치, 그것의 마스크 데이터 전송 방법 및 입력 데이터 정렬 방법 |
CN102970761A (zh) * | 2011-09-01 | 2013-03-13 | 华为技术有限公司 | 数据发送方法和用户设备 |
CN207166528U (zh) * | 2017-08-25 | 2018-03-30 | 重庆步航科技有限公司 | 韦根协议转换控制装置 |
-
2018
- 2018-09-27 CN CN201811131528.7A patent/CN109344113B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459675A (zh) * | 2008-12-29 | 2009-06-17 | 南京南瑞继保电气有限公司 | 一种实时多路复用同步高速传输串行总线协议 |
CN102237997A (zh) * | 2011-07-08 | 2011-11-09 | 山东大学 | 一种链状以太网节点间的实时同步及动态补偿方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109344113A (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9229897B2 (en) | Embedded control channel for high speed serial interconnect | |
US20220045922A1 (en) | Slave-to-master data and out-of-sequence acknowledgements on a daisy-chained bus | |
CN106462516A (zh) | 由多协议设备共享的可动态地调节的多线总线 | |
US8290103B2 (en) | Method for transmitting parallelization signals of uninterruptible power supplies | |
CN107209739A (zh) | 电压模式和电流模式设备枚举 | |
TWI516942B (zh) | 分配位址至互連上之裝置 | |
CN102073611B (zh) | 一种i2c总线控制系统及方法 | |
WO2022161244A1 (zh) | 多主机仲裁方法、装置和可读存储介质 | |
US20130346656A1 (en) | Providing A Serial Protocol For A Bidirectional Serial Interconnect | |
CN114286992A (zh) | 菊花链复杂命令 | |
CN109344113B (zh) | 一种芯片间通讯的数据派发方法及系统 | |
CN112269749A (zh) | I2c通信系统 | |
US9990027B2 (en) | Status switching method | |
CN109154925A (zh) | 通信设备、通信方法、程序和通信系统 | |
CN111427806A (zh) | 一种双核amp系统共用串口的方法、存储介质及智能终端 | |
CN101464844B (zh) | 一种ram使用权的控制方法及总线接口 | |
CN116185936A (zh) | 一种spi通信数据收发异常检测控制系统及检测方法 | |
CN113900985B (zh) | Io和spi复用芯片、复用辅助芯片和数据交互方法 | |
CN104615573A (zh) | 一种通信方法及装置 | |
WO2010050957A1 (en) | Bit inversion for communication interface | |
CN113268443A (zh) | Smi总线通信方法、装置、电子设备和介质 | |
CN101344876B (zh) | 主从式扩充板系统的操作方法 | |
CN101324873B (zh) | 兼容型非标准位宽串行周边接口及接口间的数据传输方法 | |
CN114880270B (zh) | Spi设备及其数据传输方法 | |
CN112363962B (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 |