一种基于spi通讯的稳定数据传输系统
技术领域
1.本发明涉及自动驾驶技术领域,尤其涉及一种基于spi通讯的稳定数据传输系统。
背景技术:2.自动驾驶域控制器是实现汽车自动或者辅助驾驶功能的车载控制器(以下简称域控制器),域控制器上搭载有一个计算单元(cpu),用来处理接收到的感知结果,另外还有一个视觉处理单元(soc),用来视觉感知车辆周围环境,还有一个车辆控制单元(mcu),soc需要接收车辆底盘的横向加速度,纵向加速度,车辆横摆角和方向盘转角等信号,这些信号由车辆底盘通过can协议发出,mcu接收到这些信号后通过spi发送给soc,由于底盘数据信号周期短,数据量大,从而会出现传输给视觉处理单元的信号存在不稳定的问题。
技术实现要素:3.本发明意在提供一种基于spi通讯的稳定数据传输系统,其具有能够实现大数据量,高可靠性的数据传输的优点。
4.为达到上述目的,本发明的基本方案如下:一种基于spi通讯的稳定数据传输系统,包括主机端、从机端以及spi信号线,所述主机端与从机端通过spi信号线相互连接,所述从机端包括至少一个从设备,所述从机端配置有数据端口,所述数据端口为双向数据端口,所述双向数据端口支持数据的接收及发送;
5.所述spi信号线包括一条片选线和三条总线,所述片选线为片选信号线nss,所述主机端通过片选信号线nss选择从机端中的从设备;所述三条总线分别为时钟信号线sck、主机数据输出信号线mosi、从机数据输出信号线miso,所述时钟信号线sck用于同步通讯数据;所述主机数据输出信号线mosi用于传输主机端到从机端的数据;所述从机数据输出信号线miso用于传输从机端到主机端的数据;
6.还包括三根用于同步数据的gpio线,三根gpio线分别为ind线,rdy线以及ack线,所述主机端通过ind线向所述从机端输出发送数据通知信号,所述从机端收到来自主机端的通知信号后,通过rdy线发出做好接收数据准备的反馈信号;所述主机端接收到反馈信号后,开始发送数据,当从机端完整地接收到主机端发出的数据后,所述从机端通过ack线向主机端发出的应答信号。
7.进一步地,所述主机端与从机端之间设有握手线,所述主机端与从机端通过握手线同步通信,所述主机端通过ind线向所述从机端输出发送数据通知信号前预设有握手步骤,所述握手步骤包括以下步骤:
8.握手步骤一:从机端向主机端发送sync消息;
9.握手步骤二:主机端接收到sync信号后将sync信号和ack信号发出;
10.握手步骤三:从机端接收到主机端发出的sync信号和ack信号后发出自己的ack信号。
11.进一步地,
12.所述主机端通过主机数据输出信号线mosi向从机端发送数据,并配置有主机端数据传输策略,所述主机端数据传输策略配置有主机端数据传输步骤,所述主机端数据传输步骤包括以下步骤:
13.传输步骤一:主机端发出ind信号通知从机端;
14.传输步骤二:从机端接收到主机端发出的ind信号后,从机端做好接收数据准备并向主机端发出rdy信号;
15.传输步骤三:主机端接收到从机端发出的rdy信号后,开始发送数据,直到数据发送完成;
16.传输步骤四:从机端接收完主机端发出的数据后,从机端给主机端回复一个ack应答信号。
17.进一步地,所述从机端通过从机数据输出信号线miso向主机端发送数据,并配置有从机端数据传输策略,所述从机端数据传输策略配置有从机端数据传输步骤,所述从机端数据传输步骤包括以下步骤:
18.步骤一:从机端发出rdy信号,通知主机端接收数据;
19.步骤二:主机端接收到rdy信号后主动的拉低电平,发出时钟信号;
20.步骤三:主机端接收从机端发出的数据。
21.进一步地,每个从设备独立拥有一个片选信号线nss,并占据主机的一个引脚;各个从设备的其他总线并联到主机端的,当从设备上的nss引脚电平被拉低时,表明该从设备被主机选中。
22.进一步地,还包括主机唤醒从机信号线ap_sleep以及从机休眠状态信号线bp_sleep,所述主机端用于通过从机休眠状态信号线bp_sleep检测从机端的从设备的休眠状态,依据检测结果通过主机唤醒从机信号线ap_sleep唤醒从设备。
23.进一步地,还包括从机异常状态信号线bp_err;所述主机端用于通过从机异常状态信号线bp_err接收到所述从设备的工作状态,当主机端接收到所述从设备的工作异常信号后,结束主机端与从设备之间的数据通信。
24.进一步地,还包括主机控制从机复位信号线ap_reset,当所述主机端接收到所述从设备经所述从机异常状态信号线bp_err输出的工作异常信号后,主机端通过所述主机控制从机复位信号线ap_reset复位所述从设备。
25.进一步地,所述主机端为设置在车辆底盘的车辆控制单元mcu,所述车辆控制单元mcu用于处理车辆底盘数据。
26.进一步地,所述车辆控制单元mcu向视觉处理单元soc上报车辆底盘数据的时间周期为20ms。
27.与现有技术相比本方案的有益效果是:
28.本发明提供的一种基于spi通讯的稳定数据传输系统,在mcu和soc之间使用spi标准通讯线外加3根gpio线用作同步,整个的通讯流程是mcu按照周期20ms向soc上报车辆底盘数据,接收和发送的过程中使用ind,rdy,ack三根gpio信号线做数据同步,在主机接收从机的感知数据是从机主动发出rdy信号通知主机,然后开始发出感知数据,从而确保了数据接收的准确性,具有高可靠性的数据传输的优点。
附图说明
29.图1为本发明实施例的系统架构示意图;
30.图2为本发明实施例的握手步骤的流程示意图;
31.图3为本发明实施例的数据传输步骤的流程示意图。
具体实施方式
32.下面结合说明书附图,并通过具体实施方式对本发明作进一步详细的说明:
33.实施例:
34.一种基于spi通讯的稳定数据传输系统,如图1所示,包括主机端、从机端以及spi信号线,所述主机端为设置在车辆底盘的车辆控制单元mcu,所述车辆控制单元mcu用于处理车辆底盘数据,所述车辆控制单元mcu向视觉处理单元soc上报车辆底盘数据的时间周期为20ms。所述主机端与从机端通过spi信号线相互连接,所述从机端包括至少一个从设备,所述从机端配置有数据端口,所述数据端口为双向数据端口,所述双向数据端口支持数据的接收及发送。
35.所述主机端与从机端之间设有握手线、spi信号线、三根用于同步数据的gpio线、主机唤醒从机信号线ap_sleep、从机休眠状态信号线bp_sleep、从机异常状态信号线bp_err以及主机控制从机复位信号线ap_reset;
36.所述spi信号线包括一条片选线和三条总线,所述片选线为片选信号线nss,所述主机端通过片选信号线nss选择从机端中的从设备,每个从设备独立拥有一个片选信号线nss,并占据主机的一个引脚;各个从设备的其他总线并联到主机端的,当从设备上的nss引脚电平被拉低时,表明该从设备被主机选中。
37.所述三条总线分别为时钟信号线sck、主机数据输出信号线mosi、从机数据输出信号线miso,所述时钟信号线sck用于同步通讯数据;所述主机数据输出信号线mosi用于传输主机端到从机端的数据;所述从机数据输出信号线miso用于传输从机端到主机端的数据;
38.三根gpio线分别为ind线,rdy线以及ack线,所述主机端通过ind线向所述从机端输出发送数据通知信号,所述从机端收到来自主机端的通知信号后,通过rdy线发出做好接收数据准备的反馈信号;所述主机端接收到反馈信号后,开始发送数据,当从机端完整地接收到主机端发出的数据后,所述从机端通过ack线向主机端发出的应答信号。
39.所述主机端用于通过从机休眠状态信号线bp_sleep检测从机端的从设备的休眠状态,依据检测结果通过主机唤醒从机信号线ap_sleep唤醒从设备;所述主机端用于通过从机异常状态信号线bp_err接收到所述从设备的工作状态,当主机端接收到所述从设备的工作异常信号后,结束主机端与从设备之间的数据通信;当所述主机端接收到所述从设备经所述从机异常状态信号线bp_err输出的工作异常信号后,主机端通过所述主机控制从机复位信号线ap_reset复位所述从设备。
40.如图2所示,所述主机端与从机端通过握手线同步通信,所述主机端通过ind线向所述从机端输出发送数据通知信号前预设有握手步骤,所述握手步骤包括以下步骤:
41.握手步骤一:从机端向主机端发送sync消息;
42.握手步骤二:主机端接收到sync信号后将sync信号和ack信号发出;
43.握手步骤三:从机端接收到主机端发出的sync信号和ack信号后发出自己的ack信
号。
44.如图3所示,所述主机端通过主机数据输出信号线mosi向从机端发送数据,并配置有主机端数据传输策略,所述主机端数据传输策略配置有主机端数据传输步骤,所述主机端数据传输步骤包括以下步骤:
45.传输步骤一:主机端发出ind信号通知从机端;
46.传输步骤二:从机端接收到主机端发出的ind信号后,从机端做好接收数据准备并向主机端发出rdy信号;
47.传输步骤三:主机端接收到从机端发出的rdy信号后,开始发送数据,直到数据发送完成;
48.传输步骤四:从机端接收完主机端发出的数据后,从机端给主机端回复一个ack应答信号。
49.如图3所示,所述从机端通过从机数据输出信号线miso向主机端发送数据,并配置有从机端数据传输策略,所述从机端数据传输策略配置有从机端数据传输步骤,所述从机端数据传输步骤包括以下步骤:
50.步骤一:从机端发出rdy信号,通知主机端接收数据;
51.步骤二:主机端接收到rdy信号后主动的拉低电平,发出时钟信号;
52.步骤三:主机端接收从机端发出的数据。
53.本方案具体实施方式如下:
54.在数据进行传输之前,主机端用于通过从机休眠状态信号线bp_sleep检测从机端的从设备的休眠状态,依据检测结果通过主机唤醒从机信号线ap_sleep唤醒从设备;然后,主机端与从机端先进行握手,从机端向主机端发送sync消息;主机端接收到sync信号后将sync信号和ack信号发出;从机端接收到主机端发出的sync信号和ack信号后发出自己的ack信号。
55.握手成功后,主机端与从机端之间进行数据传输,主机端发出ind信号通知从机端;从机端接收到主机端发出的ind信号后,从机端做好接收数据准备并向主机端发出rdy信号,通知主机端接收数据;主机端接收到从机端发出的rdy信号后,主动的拉低电平并发出时钟信号;同时开始发送数据,直到数据发送完成;从机端接收完主机端发出的数据后,从机端给主机端回复一个ack应答信号,主机端接收从机端发出的应答信号,完成整个传输流程。
56.以上所述的仅是本发明的实施例,方案中公知的具体结构及特性等常识在此未作过多描述。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本申请要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。