一种高效可靠的双SOC间的通信方法与流程

文档序号:33482728发布日期:2023-03-15 13:04阅读:143来源:国知局
一种高效可靠的双SOC间的通信方法与流程
一种高效可靠的双soc间的通信方法
技术领域
1.本发明涉及soc通讯技术领域,具体的说,是一种高效可靠的双soc间的通信方法。


背景技术:

2.在车载电子产品中,往往有多个处理器芯片,如tbox 产品中个,会有一颗在soc的modem模组,和一颗mcu控制芯片。modem负责4g网络数据通讯和应用处理,mcu主要负责can接口通讯,对外io口及板内电路控制电路的处理。在液晶仪表产品中往往也会有一颗soc做大量算法的处理,驱动液晶显示,同事还有一颗mcu处理can通讯及io控制。
3.所以在soc和mcu之间仍然有许多信息要交互及保持同步,如mcu把can 接口的数据转发到soc等。soc 也会把一些数据及处理结果通知mcu 并进行控制。如tbox产品中,升级包需要从4g网络下经过modem soc处理后转发给mcu进行处理在通过can发送给整车其它ecu。
4.那么就需要一个可靠的通讯接口机通讯机制来保证连个处理器之间的数据传输和状态传输。


技术实现要素:

5.本发明的目的是针对上述问题,提供一种高效可靠的双soc间的通信方法,以决两种不同处理器soc 和mcu间的可靠通讯问题,通过设计合理的接口定义及通讯协议,以保证两个处理器之间能可靠通讯,保持同步。
6.为了实现上述目的,本发明采用如下技术方案。
7.一种高效可靠的双soc间的通信方法,包括以下步骤:步骤s1.车辆上电或唤醒soc后进入“初始化状态”,对串口和spi接口进行初始化设置;步骤s2.初始化完成后,判断对方soc的active 信号是否有效进行操作,若为长0或长1,则需发送一个wake脉冲信号给对方,唤醒对方,直到对方的active 信号正常,进入“串口握手状态”;步骤s3.进入“串口握手状态”后,首先发送握手请求报文,并得到对发正确认反馈报文后则进入“串口通信状态”,双方能够互发数据信息。
8.具体地,步骤s1所述对串口和spi接口进行初始化设置,初始化设置为设置active 输出心跳波形,wake 信号保持0电平。
9.具体地,步骤s2中所述进入“串口握手状态”,采用自定义的特殊帧格式发送报文,具体为:串口间的通讯协议帧定义;帧头用3字节表示,当连续搜到3字节特征数据则表示帧头;接着的数据就是1字节的控制字节;最高2bit表示数据类型,01表示是控制命令,10表示通讯数据;后6bit表示控制命
令或者本帧的数据长度;若是数据帧,则后6bit表示本帧数据净负荷的数据长度,单位是字节,最多是63字节;最后1个字节为对本帧的奇偶校验字节,校验范围包括控制字节和数据字节内容。
10.具体地,步骤s3中所述进入“串口通信状态”,双方能够互发数据信息,具体过程如下:在“串口通信状态”时,双方需要保持一定的间隔互发心跳报文,若心跳报文超时,则退回到“串口握手状态”;在“串口通信状态”时,双方可以互发数据信息,接受方需对每个帧报文进行反馈确认;在“串口通信状态”时,当需要进行大数据高速传输时,则通过串口给对方发射“spi通信请求”报文并等待答复,在协商成功后,进入“spi通信状态”;由于spi通信有主从角色之分,一般把mcu 的spi接口定义为主,modem的spi接口定义为从;进入“spi通信状态”后,若是主设备,则主动初始化spi接口,并输出spi工作时钟,开始发送spi通信状态确认,等待从设备初始化完成,并正确响应状态确认报文后,开始进行数据传输;若是spi从设备,则初始化后,等待主设备的clk时钟有效,并接收到spi通信状态确认报文,然后答复正确响应,准备进行数据传输;当spi 数据传输完成后,再发起结束spi通信请求,双方协商一致后,退出spi通信,回到到串口通讯状态。主spi接口关闭clk时钟;在所有状态中,若收到休眠指令后,则都会退出,并进入到“休眠状态”。
11.本发明的有益效果是:1、本发明方法实现简单,利用两处理器将普通的串口及spi接口及少量io,通过设计合理的接口定义及通讯协议,以保证两个处理器之间能可靠通讯,保持同步,实现了灵活可靠、可适配性高的通讯场景。
12.2、本发明方法利用串口的双向通行,简单易用特点,结合可靠的通讯协议,进行低速数据传输和控制指令交互及双方状态同步,在利用spi 的高速特点进行大数据测试,弥补了串口速率低的缺点,同时利用3个io和一个中断口,双soc之间的状态同步和休眠唤醒,可满足低功耗工况。
附图说明
13.图1为本发明两个soc之间的通信硬件接口示意图;图2为本发明一种高效可靠的双soc间的通信方法的示意图;图3为本发明实施例中所述特殊帧格式的示意图。
具体实施方式
14.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。
15.如图1所示为本实施例中两个soc之间的通信硬件接口示意图,如图所示uart串口的tx和rx信号,uart通讯速率是115200dbps;spi 接口:时钟clk,片选cs,主到从的数据线mosi,从到主的数据线miso;定义soc1(mcu)为主设备,soc2(modem)为从设备;spi 之间的通讯时钟频率可以根据两个soc 的spi通讯接口共同最高时钟来设定;一般spi接口的时钟可达10mhz;还有两根心跳指示信号,分别是soc1到soc2的m2s_active和反向的s2m_active信号,分别表示soc1和soc2的通信接口工作状态;用不同的电平状态表示不同的工作状态。长0表示未准备好,长1表示忙,以10hz波形翻转表示工作正常。
16.再有两个中断信号,用于唤醒对发设备;当设备都进入休眠待机状态后,其中一个先唤醒后,若需要发起通讯,则就在m2s_wake 线上输出一个脉冲信号来唤醒对发。
17.具体地,如图2所示,两个soc之间的通讯方法如下:步骤s1.上电或唤醒soc后,进入“初始化状态”,对串口和spi接口进行初始化设置:设置active 输出心跳波形如10hz 信号,wake 信号保持0电平;步骤s2.初始化完成后,再判断对方soc的active 信号是否有效进行操作,若为长0或长1,则需发送一个wake脉冲信号给对方,唤醒对发,直到对发的active 信号正常;则进入“串口握手状态”。
18.步骤s3.在“串口握手状态”过程中,需要用自定义的特殊帧格式发送报文;首先发送握手请求报文,并得到对发正确认反馈报文后则进入“串口通信状态”;在“串口通信状态”时,双方需要保持一定的间隔互发心跳报文,若心跳报文超时,则退回到“串口握手状态”;在“串口通信状态”时,双方可以互发数据信息,接受方需对每个帧报文进行反馈确认;在“串口通信状态”时,当需要进行大数据高速传输时,则通过串口给对方发射“spi通信请求”报文并等待答复,在协商成功后,则进入“spi通信状态”;由于spi通信有主从角色之分,一般把mcu 的spi接口定义为主,modem的spi接口定义为从,进入“spi通信状态”后,若是主设备,则主动初始化spi接口,并输出spi工作时钟,开始发送spi通信状态确认,等待从设备初始化完成,并正确响应状态确认报文后,开始进行数据传输;若是spi从设备,则初始化后,等待主设备的clk时钟有效,并接收到spi通信状态确认报文,然后答复正确响应,准备进行数据传输;当spi数据传输完成后,再发起结束spi通信请求,双方协商一致后,退出spi通信,回到到串口通讯状态,主spi接口关闭clk时钟;在所有状态中,若收到休眠指令后,则都会退出,并进入到“休眠状态”;进入soc进入“休眠状态”后,则需要唤醒源进行唤醒,在车载电子设备上唤醒源很多,如acc,can,rtc等;唤醒后则会出现返回步骤s1的“初始化状态”。
19.进一步地,如图3所示,串口间的特殊通讯协议帧定义为:帧头用3字节表示,当连续搜到3字节特征数据则表示帧头;接着的数据就是1字节的控制字节;最高2bit表示数据类型,01表示是控制命令,10表示通讯数据;后6bit表示控制命
令或者本帧的数据长度;关键命令有:心跳命令:101010;请求串口握手:000001;响应串口握手:000010;请求spi通讯:010001;同意spi通讯:010010;拒接spi通讯:010011;请求对方工作状态:100000。
20.反馈当前工作状态:100001 表示在串口通讯状态中;100010 表示在spi 通讯状态中;100011 表示忙;111111表示异常状态。
21.若是数据帧,则后6bit表示本帧数据净负荷的数据长度,单位是字节,最多是63字节;最后1个字节为对本帧的奇偶校验字节,校验范围包括控制字节和数据字节内容。
22.以上对本发明的较佳实现方法进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可作出种种的等同变型或替换,这些等同的变型或替换均包含在本技术权利要求所限定的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1