CN116627879A - 一种应用于多处理器的spi通信系统、方法及车载终端 - Google Patents
一种应用于多处理器的spi通信系统、方法及车载终端 Download PDFInfo
- Publication number
- CN116627879A CN116627879A CN202310578321.9A CN202310578321A CN116627879A CN 116627879 A CN116627879 A CN 116627879A CN 202310578321 A CN202310578321 A CN 202310578321A CN 116627879 A CN116627879 A CN 116627879A
- Authority
- CN
- China
- Prior art keywords
- data
- line
- master
- node
- processor
- 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.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 74
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000005540 biological transmission Effects 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 10
- 230000000977 initiatory effect Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 8
- 230000002457 bidirectional effect Effects 0.000 claims description 2
- 235000015429 Mirabilis expansa Nutrition 0.000 claims 4
- 244000294411 Mirabilis expansa Species 0.000 claims 4
- 235000013536 miso Nutrition 0.000 claims 4
- 239000002699 waste material Substances 0.000 abstract description 5
- 230000000737 periodic effect Effects 0.000 abstract description 4
- 230000001360 synchronised effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4286—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a handshaking protocol, e.g. RS232C link
-
- 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/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI 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)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请适用于通信技术领域,公开了一种应用于多处理器的SPI通信系统、方法及车载终端,通过在SPI通信协议加入Master_REQ线和Slave_REQ线,以使Master节点和Slave节点在任意时刻均能够发起数据交换请求,而无需周期性轮询Master节点和Slave节点是否需要发送数据,有效解决周期性轮询导致的系统资源浪费问题,降低了系统资源占用;并通过Master_CS线、CLK线、MOSI线和MSIO线实现多处理器的片选、同步时钟控制和数据交换控制,从而完成多处理器间的数据交换。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种应用于多处理器的SPI通信系统、方法及车载终端。
背景技术
车载座舱系统通常由微控制单元(Microcontroller Unit,MCU)和系统级芯片(SOC)组成,MCU与SOC间采用同步串行(Serial Peripheral Interface,SPI)总线作为通信协议。
目前,应用于车载座舱系统的SPI通信协议需要周期性轮询MCU和SOC是否有数据发送,当MCU或SOC有数据请求发送时,再拉起CS片选线、MISO (Master Input SlaveOutput ,主机输入从机输出)从设备输出线和MOSI(Master Output Slave Input,主机输出从机输入)主设备输出线等信号线进行通信。然而,周期性轮询需要占用大量系统资源,造成系统资源浪费。
发明内容
本申请提供了一种应用于多处理器的SPI通信系统、方法及车载终端,以解决应用于车载座舱系统的SPI通信存在系统资源浪费的技术问题。
为了解决上述技术问题,第一方面,本申请提供了一种应用于多处理器的SPI通信系统,包括Master节点(即主机节点)和至少一个Slave节点(即从机节点),Master节点与Slave节点间采用基于SPI通信协议的多条信号线进行通信,信号线包括:
Master_REQ线,用于触发数据交换请求,数据交换请求用于通知Slave节点,Master节点需要发送数据;
Slave_REQ线,用于启动全双工传输模式,全双工传输模式用于启动Master节点与Slave节点进行双向数据交换;
Master_CS线,用于选择与Master节点通信的目标Slave节点;
CLK线,用于产生时钟信号,以控制Master节点与Slave节点间的数据交换步调;
MOSI线,用于Master节点进行数据输出和Slave节点进行数据输入;
MISO线,用于Master节点进行数据输入和Slave节点进行数据输出。
本申请通过在SPI通信协议加入Master_REQ线和Slave_REQ线,以使Master节点和Slave节点在任意时刻均能够发起数据交换请求,而无需周期性轮询Master节点和Slave节点是否需要发送数据,有效解决系统周期性轮询导致的系统资源浪费问题,降低了系统资源占用;并通过Master_CS线、CLK线、MOSI线和MSIO线实现多处理器的片选、同步时钟控制和数据交换控制,从而完成多处理器间的数据交换。同时,由于车载系统的下方数据量很小,MCU上传数据量很大,所以本申请通过Master_REQ线,在SOC有数据发送的时候才会触发数据传输,以减少当mcu无数据发送时的数据空白帧交换,从而有效提高数据传输效率和降低资源浪费。
在一些实现方式中,当Master节点需要发送数据时,基于Master交换数据步骤,实现Master节点与Slave节点之间的数据交换,Master交换数据步骤包括:
通过Master_REQ线触发数据交换请求;
若Slave节点检测到数据交换请求,则通过Slave_REQ线启动全双工传输模式,再拉低Master_CS线,并通过MOSI线和/或MISO线,对Master节点与Slave节点进行数据交换;
若数据交换过程达到预设数据交换结束条件,则拉高Master_CS线,以停止全双工传输模式。
本实现方式通过控制Master_REQ线,以通知Slave节点启动全双工输出模式,使得Master节点能够在任意时刻主动发起数据交换请求,而无需Slave节点周期性轮询Master节点是否需要发送数据,有效降低系统资源占用和提高数据传输效率。
在一些实现方式中,Master节点满足Master接收数据约束,Master接收数据约束包括:
当Master节点接收到Slave节点发送的报文数据时,解析报文数据的帧类型;
若报文数据为数据帧类型,则解析报文数据的数据内容,并每次以预设字节数读取数据内容,直至数据内容被完整读取。
由于每次SPI数据传输会使报文变长,Master节点在预读报文帧头信息时每次都要判定帧头长度,导致数据读取速度慢,所以本实现方式通过以预设字节数进行数据读取,能够减少报文帧头长度的判定次数,从而提高数据读取效率;并且在Slave节点并发量较小时,其打包数据通常小于预设字节数,所以可以一次性完成传输,而对于数据变长,也能够提高传输效率和为上层用户提供更友好的接口。
在一些实现方式中,以第一处理器作为Master节点,第二处理器作为Slave节点,Master节点与Slave节点进行数据交换前,基于预设握手策略,对第一处理器与第二处理器进行握手,预设握手策略包括:
通过第一处理器发起握手请求,通过第二处理器响应于握手请求反馈握手信息;
若第一处理器与第二处理器握手成功,则建立第一处理器与第二处理器之间的通讯。
由于SPI通信协议依靠时序控制实现数据交换,其本身不存在握手机制,而在第一处理器或第二处理器向对方发起数据交换请求时,其应用层无法确定对方是否准备好在同一时刻进行数据交换,所以为保证第一处理器和第二处理器双方准备好在同一时刻进行数据交换,本实现方式通过第一处理器与第二处理器进行数据交换前进行握手,以建立双方通讯。
在一些实现方式中,Master节点与Slave节点之间交换的每个数据帧包括多个数据包。
本实现方式将多个数据包组成一个数据帧,能够减少交互帧数,从而减少通信算力消耗和提高有效传输带宽。
在一些实现方式中,Master节点向Slave节点定时发送心跳信息,若Slave节点未检测到心跳信息,则重启SPI通信系统。本实现方式通过心跳检测机制保证通信鲁棒性。
第二方面,本申请还提供一种SPI通信方法,应用于第一方面的SPI通信系统,方法包括:
通过目标请求线触发数据交换流程,其中若Master节点需要发送数据,则目标请求线为Master_REQ线,若Slave节点需要发送数据,则目标请求线为Slave_REQ线;
基于数据交换流程,拉低Master_CS线,并通过MOSI线和/或MISO线,对Master节点与Slave节点进行数据交换;
若数据交换过程达到预设数据交换结束条件,拉高Master_CS线,以停止数据交换。
在一些实现方式中,通过目标请求线启动数据交换流程,包括:
若Master节点需要发送数据,则通过Master_REQ线触发数据交换请求;
若Slave节点检测到数据交换请求,则通过Slave_REQ线启动全双工传输模式,以触发数据交换流程。
在一些实现方式中,以第一处理器作为Master节点,第二处理器作为Slave节点,基于数据交换流程,拉低Master_CS线,并通过MOSI线和/或MISO线,对Master节点与Slave节点进行数据交换之前,还包括:
通过第一处理器发起握手请求,通过第二处理器响应于握手请求反馈握手信息;
若第一处理器与第二处理器握手成功,则建立第一处理器与第二处理器之间的通讯。
第三方面,本申请还提供一种车载终端,包括多个处理器,处理器间基于第二方面的SPI通信方法进行通信。
需要说明的是,上述第二方面至第三方面的有益效果请参照第一方面的相关描述,在此不再赘述。
附图说明
图1为本申请实施例示出的SPI通信系统的结构示意图;
图2为本申请实施例示出的Slave数据交换步骤的信号线变化示意图;
图3为本申请实施例示出的Master数据交换步骤的信号线变化示意图;
图4为本申请实施例示出的预设握手策略的流程示意图;
图5为本申请实施例示出的SPI通信方法的流程示意图;
图6为本申请实施例示出的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参照图1,图1为本申请实施例提供的一种SPI通信系统的架构示意图。本申请实施例的SPI通信系统可应用于多处理器通信,SPI通信系统包括Master节点和至少一个Slave节点,以多处理器中的一个处理器作为Master节点,以多处理器中的其他处理器作为Slave节点。应理解,Master节点和Slave节点的具体处理器类型可根据应用该SPI通信系统的计算机设备进行调整,例如应用于车载终端的SPI通信系统,其Master节点可以是SOC,Slave节点可以是车载终端中的任意一个MCU。
所述Master节点与所述Slave节点间采用基于SPI通信协议的多条信号线进行通信,所述信号线包括:
Master_REQ线,用于触发数据交换请求,所述数据交换请求用于通知所述Slave节点,所述Master节点需要发送数据;
Slave_REQ线,用于启动全双工传输模式,所述全双工传输模式用于启动所述Master节点与所述Slave节点进行双向数据交换;
Master_CS线,用于选择与所述Master节点通信的目标Slave节点;
CLK线,用于产生时钟信号,以控制所述Master节点与所述Slave节点间的数据交换步调;
MOSI线,用于所述Master节点进行数据输出和所述Slave节点进行数据输入;
MISO线,用于所述Master节点进行数据输入和所述Slave节点进行数据输出。
在本实施例中,SPI通信协议通常采用4根线进行Master节点与Slave节点的通信,4根线分别为设备片选线(CS线)、时钟线(CLK线)、主设备输出线(MOSI线)和从设备输出线(MISO线)。SPI通信协议根据设备片选线选择与Master节点数据交换的Slave节点,根据时钟线的时序控制MOSI/MISO进行主从节点的数据交换。
然而,如背景技术记载,数据交换的发起过程需要系统周期性轮询Master节点和Slave节点是否有数据发送,导致系统资源占用率高。因此,本实施例在原始SPI通信协议的基础上,针对Master节点的数据交换请求,引入Master_REQ线,以在Master节点需要发送数据时,通过Master_REQ触发数据交换请求,并通过Slave_REQ线启动全双工传输模式进行数据交换;针对Slave节点的数据交换请求,引入Slave_REQ线,以在Slave节点需要发送数据时,通过Slave_REQ线启动全双工传输模式进行数据交换。从而使Master节点与Slave节点能够在任意时刻主动发起数据交换,有效解决系统周期性轮询导致的系统资源占用率高的问题。
可选地,可以通过拉低或拉高Master_REQ线的信号触发数据交换请求,通过拉低或拉高Slave_REQ线的信号启动全双工传输模式。可以理解的是,信号线拉高或拉低的有效性可根据实际应用场景进行配置,本申请的Master_REQ线和Slave_REQ线在其他实例中可以是其他命名方式,对此不做限定。
在一些实施例中,当所述Slave节点需要发送数据时,基于Slave交换数据步骤,实现所述Slave节点与所述Master节点之间的数据交换,所述Slave交换数据步骤包括:
通过所述Slave_REQ线启动所述全双工传输模式,再拉低所述Master_CS线,并通过所述MOSI线和/或所述MISO线,对所述Master节点与所述Slave节点进行数据交换;
若数据交换过程达到预设数据交换结束条件,则拉高所述Master_CS线,以停止所述全双工传输模式。
在本实施例中,Slave_REQ线由Slave节点控制,Slave_REQ线信号拉低有效。可选地,将Slave_REQ线配置为中断模式,当拉低Slave_REQ线信号时,中断触发一次SPI通信传输。
示例性地,以SOC作为Master节点,MCU作为Slave节点,如图2使出的Slave数据交换步骤的信号线示意图,当MCU需要发送数据时,通过MCU拉低MCU_REQ线(即Slave_REQ线)的信号;若SOC检测到MCU_REQ线的信号变低,则SOC拉低SOC_CS线(即Master_CS线)的信号,并通过MISO/MOSI线,实现SOC与MCU之间的数据交换;当SOC与MCU数据交换结束(即数据交换过程达到预设数据交换结束条件),则拉高SOC拉低SOC_CS线的信号;若MCU检测到SOC_CS线的信号拉高,则停止全双工传输模式。
在一些实施例中,当所述Master节点需要发送数据时,基于Master交换数据步骤,实现所述Master节点与所述Slave节点之间的数据交换,所述Master交换数据步骤包括:
通过所述Master_REQ线触发所述数据交换请求;
若所述Slave节点检测到所述数据交换请求,则通过所述Slave_REQ线启动所述全双工传输模式,再拉低所述Master_CS线,并通过所述MOSI线和/或所述MISO线,对所述Master节点与所述Slave节点进行数据交换;
若数据交换过程达到预设数据交换结束条件,则拉高所述Master_CS线,以停止所述全双工传输模式。
在本实施例中,Master_REQ线由Master节点控制,Master_REQ线信号拉低有效。示例性地,以SOC为Master节点,MCU为Slave节点,如图3示出的Master数据交换步骤的信号线示意图,当SOC需要发送数据时,通过SOC拉低SOC_REQ线(即Master_REQ线)的信号;若MCU检测到SOC_REQ线的信号变低,则通过MCU拉低MCU_REQ线(即Slave_REQ线)的信号;若SOC检测到MCU_REQ线的信号变低,则SOC拉低SOC_CS线(即Master_CS线)的信号,并通过MISO/MOSI线,实现SOC与MCU之间的数据交换;当SOC与MCU无数据交换或者数据交换次数达到预设阈值(即数据交换过程达到预设数据交换结束条件),则拉高SOC拉低SOC_CS线的信号;若MCU检测到SOC_CS线的信号拉高,则停止全双工传输模式。
可选地,Master节点与Slave节点在数据交换时,Master节点和Slave节点满足数据交换约束,即所述Master节点与所述Slave节点之间交换的每个数据帧包括多个数据包,每次只交换一帧数据,若不足一帧则补0。其中,Slave节点以预设周期(如10ms)将多个数据包组成一个数据帧,每个数据帧的长度最大值为预设值(如1024Bytes)。
可选地,Master节点还满足Master接收数据约束,Slave节点还满足Slave接收数据约束。
在一些实施例中,Slave接收数据约束包括:Slave节点以Master_CS线的信号拉低,开启全双工传输模式,即开始全双工数据交换;以Master_CS线的信号拉高,结束全双工数据交换。同时,Slave节点接收到DATA FRAME时,根据当前帧头信息的ID,向Master节点反馈ACK。
在一些实施例中,所述Master节点满足Master接收数据约束,所述Master接收数据约束包括:
当所述Master节点接收到所述Slave节点发送的报文数据时,解析所述报文数据的帧类型;
若所述报文数据为数据帧类型,则解析所述报文数据的数据内容,并每次以预设字节数读取所述数据内容,直至所述数据内容被完整读取。
在本实施例中,报文数据的帧类型包括但不限于数据帧类型(DATA FRAME)、应答帧类型(ACK FRAME)和空白帧类型(DUMMY RRAME)。当Master节点接收到Slave节点发送的报文数据时,需要优先解析帧头,并分析当前报文数据的帧类型;若报文数据为DATAFRAME,则Master节点根据当前帧头信息的ID向Slave节点反馈ACK信号,同时需要根据帧头信息解析出数据内容的长度,并每次以预设字节数读取所述数据内容,直至数据内容被完整读取后,拉高CS线的信号,即确保一帧数据能够被完整交换。
示例性地,Master节点每次至少交互预设字节数(如128Bytes)的数据,若报文数据的数据内容长度大于128Bytes,则在Master节点读取完128Bytes数据后,继续读取数据内容。
在一些实施例中,以第一处理器作为Master节点,第二处理器作为Slave节点,所述Master节点与所述Slave节点进行数据交换前,基于预设握手策略,对所述第一处理器与所述第二处理器进行握手,所述预设握手策略包括:
通过所述第一处理器发起握手请求,通过所述第二处理器响应于所述握手请求反馈握手信息;
若所述第一处理器与所述第二处理器握手成功,则建立所述第一处理器与所述第二处理器之间的通讯。
在本实施例中,为保证第一处理器和第二处理器双方准备好在同一时刻进行数据交换,本实施例通过第一处理器与第二处理器进行数据交换前进行握手,以建立双方通讯。示例性地,以SOC作为第一处理器以及MCU作为第二处理器为例,如图4示出的预设握手策略的流程示意图,在SOC与MCU进行数据交换前,第1次数据交换由SOC发起握手请求,包括SOC发送握手帧,MCU交换空白帧;第2次数据交换由MCU反馈握手信息,包括MCU发送握手帧,SOC交换空白帧;若SOC判定握手失败,则再次发起握手请求,直至握手成功或达到预设握手次数;若SOC判定握手成功,则建立通讯,并开始第3次至第n次的有效数据交换。
需要说明的是,握手帧的数据交换时序遵循Master数据交换步骤的交换时序以及Slave数据交换步骤的交换时序。
在一些实施例中,所述Master节点向所述Slave节点定时发送心跳信息,若所述Slave节点未检测到所述心跳信息,则重启所述SPI通信系统。
在本实施例中,Master节点可采用应用层心跳机制,根据应用层心跳机制,在应用层协议中实现心跳检测,向Slave节点定时发送心跳信息,若Slave节点在预设时间内未接收到心跳信息,则判定未检测到心跳信息,并重启SPI通信系统,以保证SPI通信的鲁棒性。
在一些实施例中,SPI通信系统采用校验重传提高通信可靠性,校验重传采用采用CRC循环校验码实现,包括:数据接收端(Master节点或Slave节点)对接收到的报文数据计算校验和,如校验和与校验码不匹配,则数据接收端不返回ACK,若数据发送端未收到ACK,则重发报文数据,直至超时。可选地,若Slave节点未收到ACK超时,则Slave节点重启SPI通信系统;若Master节点收不到ACK, 则Master节点停止向Slave节点发送ACK,以使Slave节点的ACK超时,从而使Slave节点重启SPI通信系统。
可选地,对于数据帧(DATA FRAME)的FRAME_ID描述如下:1个字节(0x00~0xFF),帧同步ID,发送端成功发送一包数据后ID加1,出错后重发此帧数据ID不变,收到一包数据后,ACK应答的ID与收到的ID一致。
对于应答帧(ACK FRAME)的FRAME_ID描述如下:一个字节,0~0xFF,帧同步ID,发送端成功发送一包数据后ID加1,出错后重发此帧数据ID不变,收到一包数据后,ACK应答的ID与收到的ID一致。
对于空白帧(DUMMY FRAME)的FRAME_ID描述如下:固定为0x00。
请参照图5,图5为本申请实施例提供的一种SPI通信方法的流程示意图。本申请实施例的SPI通信方法可应用于如图1所示的SPI通信系统,该SPI通信系统搭载于计算机设备,该计算机设备包括但不限于车载终端、智能网关、智能手机、笔记本电脑、平板电脑、桌上型计算机、物理服务器和云服务器等设备。如图5所示,本实施例的SPI通信方法包括步骤S101至步骤S103,详述如下:
步骤S101,通过目标请求线触发数据交换流程,其中若Master节点需要发送数据,则目标请求线为Master_REQ线,若Slave节点需要发送数据,则目标请求线为Slave_REQ线;
步骤S102,基于所述数据交换流程,拉低Master_CS线,并通过MOSI线和/或MISO线,对所述Master节点与所述Slave节点进行数据交换;
步骤S103,若数据交换过程达到预设数据交换结束条件,拉高所述Master_CS线,以停止数据交换。
在一些实施例中,所述步骤S101,具体包括:
若所述Master节点需要发送数据,则通过所述Master_REQ线触发所述数据交换请求;
若所述Slave节点检测到所述数据交换请求,则通过所述Slave_REQ线启动所述全双工传输模式,以触发所述数据交换流程。
在一些实施例中,以第一处理器作为所述Master节点,第二处理器作为所述Slave节点,所述步骤S102之前,还包括:
通过所述第一处理器发起握手请求,通过所述第二处理器响应于所述握手请求反馈握手信息;
若所述第一处理器与所述第二处理器握手成功,则建立所述第一处理器与所述第二处理器之间的通讯。
上述SPI通信方法可实施于上述系统实施例的SPI通信系统。上述系统实施例中的可选项也适用于本实施例,这里不再详述。本申请实施例的其余内容可参照上述系统实施例的内容,在本实施例中,不再进行赘述。
图6为本申请一实施例提供的计算机设备的结构示意图。如图6所示,该实施例的计算机设备6包括:多个处理器60、存储器61以及存储在所述存储器61中并可在所述处理器60间运行的计算机程序62,所述处理器60执行所述计算机程序62时实现上述任意方法实施例中的步骤。
所述计算机设备6可以是车载终端、智能网关、智能手机、平板电脑、桌上型计算机和云端服务器等计算设备。该计算机设备可包括但不仅限于处理器60、存储器61。本领域技术人员可以理解,图6仅仅是计算机设备6的举例,并不构成对计算机设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器60可以是中央处理单元(Central Processing Unit,CPU),该处理器60还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路 (Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器61在一些实施例中可以是所述计算机设备6的内部存储单元,例如计算机设备6的硬盘或内存。所述存储器61在另一些实施例中也可以是所述计算机设备6的外部存储设备,例如所述计算机设备6上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器61还可以既包括所述计算机设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
另外,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机设备上运行时,使得计算机设备执行时实现上述各个方法实施例中的步骤。
在本申请所提供的几个实施例中,可以理解的是,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意的是,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步的详细说明,应当理解,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围。特别指出,对于本领域技术人员来说,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种应用于多处理器的SPI通信系统,其特征在于,包括Master节点和至少一个Slave节点,所述Master节点与所述Slave节点间采用基于SPI通信协议的多条信号线进行通信,所述信号线包括:
Master_REQ线,用于触发数据交换请求,所述数据交换请求用于通知所述Slave节点,所述Master节点需要发送数据;
Slave_REQ线,用于启动全双工传输模式,所述全双工传输模式用于启动所述Master节点与所述Slave节点进行双向数据交换;
Master_CS线,用于选择与所述Master节点通信的目标Slave节点;
CLK线,用于产生时钟信号;
MOSI线,用于所述Master节点进行数据输出和所述Slave节点进行数据输入;
MISO线,用于所述Master节点进行数据输入和所述Slave节点进行数据输出。
2.如权利要求1所述的应用于多处理器的SPI通信系统,其特征在于,当所述Master节点需要发送数据时,基于Master交换数据步骤,实现所述Master节点与所述Slave节点之间的数据交换,所述Master交换数据步骤包括:
通过所述Master_REQ线触发所述数据交换请求;
若所述Slave节点检测到所述数据交换请求,则通过所述Slave_REQ线启动所述全双工传输模式,再拉低所述Master_CS线,并通过所述MOSI线和/或所述MISO线,对所述Master节点与所述Slave节点进行数据交换;
若数据交换过程达到预设数据交换结束条件,则拉高所述Master_CS线,以停止所述全双工传输模式。
3.如权利要求1所述的应用于多处理器的SPI通信系统,其特征在于,所述Master节点满足Master接收数据约束,所述Master接收数据约束包括:
当所述Master节点接收到所述Slave节点发送的报文数据时,解析所述报文数据的帧类型;
若所述报文数据为数据帧类型,则解析所述报文数据的数据内容,并每次以预设字节数读取所述数据内容,直至所述数据内容被完整读取。
4.如权利要求1所述的应用于多处理器的SPI通信系统,其特征在于,以第一处理器作为Master节点,第二处理器作为Slave节点,所述Master节点与所述Slave节点进行数据交换前,基于预设握手策略,对所述第一处理器与所述第二处理器进行握手,所述预设握手策略包括:
通过所述第一处理器发起握手请求,通过所述第二处理器响应于所述握手请求反馈握手信息;
若所述第一处理器与所述第二处理器握手成功,则建立所述第一处理器与所述第二处理器之间的通讯。
5.如权利要求1所述的应用于多处理器的SPI通信系统,其特征在于,所述Master节点与所述Slave节点之间交换的每个数据帧包括多个数据包。
6.如权利要求1所述的应用于多处理器的SPI通信系统,其特征在于,所述Master节点向所述Slave节点定时发送心跳信息,若所述Slave节点未检测到所述心跳信息,则重启所述SPI通信系统。
7.一种SPI通信方法,其特征在于,应用于权利要求1至6任一项所述的SPI通信系统,所述方法包括:
通过目标请求线触发数据交换流程,其中若Master节点需要发送数据,则目标请求线为Master_REQ线,若Slave节点需要发送数据,则目标请求线为Slave_REQ线;
基于所述数据交换流程,拉低Master_CS线,并通过MOSI线和/或MISO线,对所述Master节点与所述Slave节点进行数据交换;
若数据交换过程达到预设数据交换结束条件,拉高所述Master_CS线,以停止数据交换。
8.如权利要求7所述的SPI通信方法,其特征在于,所述通过目标请求线启动数据交换流程,包括:
若所述Master节点需要发送数据,则通过所述Master_REQ线触发所述数据交换请求;
若所述Slave节点检测到所述数据交换请求,则通过所述Slave_REQ线启动所述全双工传输模式,以触发所述数据交换流程。
9.如权利要求7所述的SPI通信方法,其特征在于,以第一处理器作为所述Master节点,第二处理器作为所述Slave节点,所述基于所述数据交换流程,拉低Master_CS线,并通过MOSI线和/或MISO线,对所述Master节点与所述Slave节点进行数据交换之前,还包括:
通过所述第一处理器发起握手请求;
通过所述第二处理器响应于所述握手请求反馈握手信息;
若所述第一处理器与所述第二处理器握手成功,则建立所述第一处理器与所述第二处理器之间的通讯。
10.一种车载终端,其特征在于,包括多个处理器,所述处理器间基于权利要求7至9任一项所述的SPI通信方法进行通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310578321.9A CN116627879A (zh) | 2023-05-22 | 2023-05-22 | 一种应用于多处理器的spi通信系统、方法及车载终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310578321.9A CN116627879A (zh) | 2023-05-22 | 2023-05-22 | 一种应用于多处理器的spi通信系统、方法及车载终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116627879A true CN116627879A (zh) | 2023-08-22 |
Family
ID=87641167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310578321.9A Pending CN116627879A (zh) | 2023-05-22 | 2023-05-22 | 一种应用于多处理器的spi通信系统、方法及车载终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116627879A (zh) |
-
2023
- 2023-05-22 CN CN202310578321.9A patent/CN116627879A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018127228A1 (zh) | 一种随机接入反馈、处理方法、基站及终端 | |
JP2022046614A (ja) | Ttiバンドリングによるアップリンク送信の強化 | |
CN111857838B (zh) | 用于管理ufs装置与ufs主机之间的通信的方法和系统 | |
CN108132896B (zh) | 数据传输方法和装置 | |
WO2019154005A1 (zh) | 一种进行业务传输的方法和终端 | |
JP2007089174A (ja) | 無線通信システムにおける信号の伝送速度を改善する方法及び装置 | |
US9197373B2 (en) | Method, apparatus, and system for retransmitting data packet in quick path interconnect system | |
WO2017065923A1 (en) | Methods to avoid i2c void message in i3c | |
CN110958088B (zh) | 一种通信方法及装置 | |
CN112261142B (zh) | 一种rdma网络的数据重传方法、装置及fpga | |
WO2011137640A1 (zh) | 文件传输方法、文件发送装置和文件接收装置 | |
US11770212B2 (en) | Data transmission methods, data transmission device, and data transmission apparatuses | |
JP6523995B2 (ja) | 情報処理装置、送信装置、受信装置及び方法 | |
CN111480308A (zh) | 一种数据传输的方法、设备及计算机存储介质 | |
CN115276920A (zh) | 音频数据处理方法、装置、电子设备及存储介质 | |
CN103650401A (zh) | 一种移动终端内部通信方法 | |
CN116627879A (zh) | 一种应用于多处理器的spi通信系统、方法及车载终端 | |
US20210173808A1 (en) | Early parity error detection on an i3c bus | |
WO2021092859A1 (zh) | 建立iso链路的方法和ble设备 | |
CN116909977A (zh) | 一种多机通信方法及系统 | |
US11917543B2 (en) | Bluetooth-based data transmission method and data receiving method, communicating apparatus and computer storage medium | |
JP3077750B2 (ja) | デジタルデータのシリアル転送システムおよび方法 | |
JP2001086141A (ja) | Usbファンクションの評価装置及びその方法 | |
JP2004260562A (ja) | パケット送受信方法、及び装置 | |
CN116627869B (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 |