一种CAN网络的数据通信方法和装置与流程

文档序号:32436493发布日期:2022-12-06 19:15阅读:44来源:国知局
一种CAN网络的数据通信方法和装置与流程
一种can网络的数据通信方法和装置
技术领域
1.本发明涉及车载设备通讯技术领域,具体涉及一种can网络的数据通信方法和装置。


背景技术:

2.can(controller area network,控制器域网)是一种总线式串行通信网络,其主要应用于众多车载电子控制单元(ecu)之间的数据通讯,目前,为了保证数据通讯的可靠性要求,can的技术规范中规定在can网络传输的数据报文均采用短帧结构,一般一帧报文的数据长度不超过8个字节,当需要发送的数据超过8个字节时,则需要将该数据拆分为多帧报文传输,而对于can网络中应用报文的多帧传输目前并没有统一的标准和规范,几乎都是各厂商自行定义的通讯协议,如通过设置.dbc文件对报文解析等,因此不利于后续的维护以及通信测试,并且在数据通讯的可靠性及兼容性方面也无法保证。
3.此外,现有的can网络在进行应用报文的传输时,直接通过将应用报文传输到各个节点,并通过应用报文中的标识去确定对此应用报文进行处理的节点,因此,现有方案中一般不对发送节点和接收节点进行握手步骤,也就是说,发送节点和接收节点都无法知道对方接收数据的能力如何,容易造成需要发送的数据过大或频率过高而导致通信异常。
4.因此,有必要提供一种can网络的数据通信方法和装置,以解决上述问题。


技术实现要素:

5.本发明的目的在于提供一种can网络的数据通信方法和装置,能够提前获知目标节点的数据接收能力,避免将超出目标节点的数据接收能力范围外的应用数据发送至目标节点,有利于降低目标节点发生异常的可能性。
6.为实现上述目的,本发明提供了一种can网络的数据通信方法,包括:
7.发送节点向若干接收节点发送通讯请求报文,所述通讯请求报文包括第一标识信息;
8.若干个所述接收节点中与所述第一标识信息匹配成功的为目标节点,所述目标节点根据所述通讯请求报文发送通讯响应报文至所述发送节点,所述通讯响应报文包括第二标识信息和第一限制信息,所述第一限制信息反映所述目标节点的数据接收能力;
9.所述发送节点识别所述第二标识信息以确定所述通讯响应报文为待处理的报文;
10.所述发送节点根据所述第一限制信息确定待传输的应用数据是否符合所述目标节点的数据接收能力的范围内,若符合,则将所述应用数据发送至所述目标节点。
11.可选地,当所述应用数据的数据长度小于或小于等于预设长度时,所述“将所述应用数据发送至所述目标节点”包括:
12.基于所述应用数据生成单帧报文,所述单帧报文包括所述第一标识信息、帧类型信息和第一数据信息;
13.将所述单帧报文发送至所述目标节点;
14.所述目标节点识别所述第一标识信息确定所述单帧报文为待处理的报文,以及识别所述帧类型信息确定所述单帧报文包括全部所述应用数据;
15.所述目标节点根据所述第一数据信息进行工作以及返回响应帧报文至所述发送节点,所述响应帧报文包括所述目标节点的接收状态信息。
16.可选地,当所述应用数据的数据长度大于预设长度时,所述“将所述应用数据发送至所述目标节点”包括:
17.根据数据拆分策略对所述应用数据进行数据拆分,并对拆分的数据分别封装成首帧报文和连续帧报文,所述首帧报文包括所述第一标识信息、帧类型信息和第二数据信息,所述连续帧报文包括所述第一标识信息、帧类型信息、编号信息和第三数据信息,所述编号信息反映所述连续帧报文对应所述应用数据中的顺序;
18.将所述首帧报文发送至所述目标节点;
19.所述目标节点识别所述第一标识信息确定所述首帧报文为待处理的报文,以及识别所述首帧报文的帧类型信息确定所述首帧报文包括部分所述应用数据;
20.所述目标节点基于所述首帧报文生成流控制帧报文并发送至所述发送节点,所述流控制帧报文包括时间间隔信息和所述第二标识信息,所述时间间隔信息反映所述目标节点接收所述连续帧报文的最短时间间隔;
21.所述发送节点按照大于等于所述最短时间间隔的时间依所述编号信息表示的顺序间隔发送所述连续帧报文至目标节点;
22.所述目标节点重组所述第二数据信息和所述第三数据信息生成第四数据信息,并根据所述第四数据信息进行工作以及返回响应帧报文至所述发送节点,所述响应帧报文包括所述目标节点的接收状态信息。
23.可选地,所述首帧报文还包括数据长度信息,所述数据长度信息反映所述应用数据的数据长度;
24.所述目标节点根据所述数据长度信息确定所述第四数据信息的数据长度是否完整。
25.可选地,所述通信方法还包括:
26.在所述发送节点和所述目标节点的通信过程中,每间隔预设时间所述发送节点发送一次所述通讯请求报文至所述目标节点;
27.若所述目标节点处于正常通信状态,则返回所述通讯响应报文至所述发送节点;
28.若间隔所述预设时间,所述目标节点未接收到来自所述发送节点的所述通讯请求报文,则确定所述发送节点异常。
29.可选地,所述通讯请求报文还包括第一连接信息,所述第一连接信息反映所述发送节点的通信意愿;所述通讯响应报文还包括第二连接信息,所述第二连接信息反映所述目标节点的通信意愿;
30.当所述发送节点发送所述通讯请求报文至所述目标节点,且所述第一连接信息表示为开启通信的意愿时,所述目标节点返回所述第二连接信息表示为开启通信的意愿的所述通讯响应报文至所述发送节点,以使所述发送节点和所述目标节点建立通讯连接;
31.当所述发送节点发送所述通讯请求报文至所述目标节点,且所述第一连接信息表示为关闭通信的意愿时,所述目标节点返回所述第二连接信息表示为断开通信的意愿的所
述通讯响应报文至所述发送节点,以使正处于通讯连接的所述发送节点和所述目标节点断开连接。
32.可选地,所述通讯请求报文还包括第二限制信息,所述第二限制信息反映所述发送节点的数据接收能力;
33.所述目标节点根据所述第二限制信息限制在所述发送节点的数据接收能力范围外的数据传输至所述发送节点。
34.为实现上述目的,本发明还提供了一种can网络的数据通信装置,包括:
35.通过can连接的发送节点和若干接收节点,所述发送节点包括请求模块、确定模块和发送模块;
36.所述请求模块用于向若干所述接收节点发送通讯请求报文,所述通讯请求报文包括第一标识信息;
37.若干个所述接收节点中与所述第一标识信息匹配成功的为目标节点,所述目标节点包括响应模块;
38.所述响应模块用于根据所述通讯请求报文发送通讯响应报文至所述发送节点,所述通讯响应报文包括第二标识信息和第一限制信息,所述第一限制信息反映所述目标节点的数据接收能力;
39.所述确定模块用于识别所述第二标识信息以确定所述通讯响应报文为待处理的报文;
40.所述发送模块用于根据所述第一限制信息确定待传输的应用数据是否符合所述目标节点的数据接收能力的范围内,若符合,则将所述应用数据发送至所述目标节点。
41.为实现上述目的,本发明还提供了一种电子设备,包括:
42.处理器;
43.存储器,其中存储有所述处理器的可执行指令;
44.其中,所述处理器配置为经由执行所述可执行指令来执行如上所述的can网络的数据通信方法。
45.为实现上述目的,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述的can网络的数据通信方法。
46.本发明还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述can网络的数据通信方法。
47.本发明通过发送节点发送的通讯请求报文中携带第一标识信息,使得若干个接收节点接收到通讯请求报文后,根据第一标识信息确定若干个接收节点中的目标节点,目标节点根据通讯请求报文返回通讯响应报文至发送节点,其中,通讯响应报文携带有第二标识信息和第一限制信息,第一限制信息反映目标节点的数据接收能力,当发送节点接收到通讯响应报文时根据第二标识信息确定该通讯响应报文为待处理的报文,并依据第一限制信息确定待传输的应用数据是否符合目标节点的数据接收能力的范围内,若符合,则将应用数据发送至目标节点。本发明的发送节点通过在发送应用数据之前,获取反映目标节点
的数据接收能力的通讯响应报文,只将在目标节点的数据接收能力范围内的应用数据发送至目标节点,有利于降低目标节点发生异常的可能性。
附图说明
48.图1是本发明can网络的数据通信方法的流程图。
49.图2是本发明实施例发送节点与目标节点建立通信通道的示意图。
50.图3是本发明实施例应用数据的数据长度小于或小于等于预设长度时的通信示意图。
51.图4是本发明实施例应用数据的数据长度大于预设长度时的通信示意图。
52.图5是一示例发送节点和目标节点之间的报文交互示意图。
53.图6是本发明实施例can网络的数据通信装置的示意框图。
54.图7是本发明实施例电子设备的示意框图。
具体实施方式
55.为了详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
56.请参阅图1,本发明公开了一种can网络的数据通信方法,包括:
57.s1、发送节点向若干接收节点发送通讯请求报文,通讯请求报文包括第一标识信息;
58.s2、若干个接收节点中与第一标识信息匹配成功的为目标节点,目标节点根据通讯请求报文发送通讯响应报文至发送节点,通讯响应报文包括第二标识信息和第一限制信息,第一限制信息反映目标节点的数据接收能力;
59.s3、发送节点识别第二标识信息以确定通讯响应报文为待处理的报文;
60.s4、发送节点根据第一限制信息确定待传输的应用数据是否符合目标节点的数据接收能力的范围内,若符合,则将应用数据发送至目标节点。
61.本发明通过发送节点发送的通讯请求报文中携带第一标识信息,使得若干个接收节点接收到通讯请求报文后,根据第一标识信息确定若干个接收节点中的目标节点,目标节点根据通讯请求报文返回通讯响应报文至发送节点,其中,通讯响应报文携带有第二标识信息和第一限制信息,第一限制信息反映目标节点的数据接收能力,当发送节点接收到通讯响应报文时根据第二标识信息确定该通讯响应报文为待处理的报文,并依据第一限制信息确定待传输的应用数据是否符合目标节点的数据接收能力的范围内,若符合,则将应用数据发送至目标节点。本发明的发送节点通过在发送应用数据之前,获取反映目标节点的数据接收能力的通讯响应报文,只将在目标节点的数据接收能力范围内的应用数据发送至目标节点,有利于降低目标节点发生异常的可能性。
62.具体来说,第一标识信息和第二标识信息为数据内容不同的can id信息,can id信息的数据结构如下表所示:
63.64.其中,header的值用于标识携带该can id信息的报文应用于何种通信协议,同一通信协议的报文携带的can id信息中的header相同;cd为channel direction缩写,表示携带此can id信息的报文在通信通道的方向,如从发送节点向目标节点发送的报文携带的can id信息中的cd为0,而从目标节点向发送节点发送的报文携带的can id信息中的cd为1;channel number表示携带该can id信息的报文在哪一通信通道上传输。
65.在本发明中,为了使发送节点和目标节点发出的报文被对方接收并处理,则双方发出的报文均需携带can id信息,发送节点发出的报文则需要携带表示为第一标识信息的can id信息,目标节点发出的报文则需要携带表示为第二标识信息的can id信息。
66.此外,通讯请求报文和通讯响应报文均包括cmf帧数据,cmf帧数据的数据结构如下表所示:
[0067][0068]
其中,n_pci type表示该帧数据的类型,第一字节的高四位为1111的数据帧为cmf帧;rps和ttmin皆为此cmf帧数据的发出方的数据接收能力,即是本发明中的第一限制信息,rps表示发出方所能接收的最大数据量,ttmin表示接收应用数据之间的时间间隔,即当发送完当前应用数据后,发送下一应用数据之间的时间间隔;m_cmd表示发出方的通信意愿,当m_cmd为01时,则表示发送方发起开启通道的通信请求,当m_cmd为10时,则表示发送方发起关闭通道的通信请求。
[0069]
进一步地,通讯请求报文还包括第一连接信息,第一连接信息反映发送节点的通信意愿;通讯响应报文还包括第二连接信息,第二连接信息反映目标节点的通信意愿;因此,第一连接信息和第二连接信息即为cmf帧数据中的m_cmd。
[0070]
当发送节点发送通讯请求报文至目标节点,且第一连接信息表示为开启通信的意愿时,目标节点返回第二连接信息表示为开启通信的意愿的通讯响应报文至发送节点,以使发送节点和目标节点建立通讯连接;
[0071]
当发送节点发送通讯请求报文至目标节点,且第一连接信息表示为关闭通信的意愿时,目标节点返回第二连接信息表示为断开通信的意愿的通讯响应报文至发送节点,以使正处于通讯连接的发送节点和目标节点断开连接。
[0072]
具体来说,发送节点和目标节点的通讯连接过程的建立如图2所示,在双方分别接收到表示为开启通信的通讯请求报文和通讯响应报文时,则分别配置节点,以使两者在建立的通信通道内相互通信。
[0073]
此外,在发送节点和目标节点的通信过程中,每间隔预设时间发送节点发送一次通讯请求报文至目标节点;
[0074]
若目标节点处于正常通信状态,则返回通讯响应报文至发送节点;
[0075]
若间隔预设时间,目标节点未接收到来自发送节点的通讯请求报文,则确定发送节点异常。
[0076]
通过通讯请求报文和通讯响应报文在发送节点和目标节点之间的往复可以确定双方的通信状况,避免一方掉线而导致通信异常,而无法通知到技术人员。
[0077]
在一些实施例中,通讯请求报文还包括第二限制信息,第二限制信息反映发送节点的数据接收能力;
[0078]
目标节点根据第二限制信息限制在发送节点的数据接收能力范围外的数据传输至发送节点。
[0079]
当目标节点接收到应用数据后,需要向发送节点返回一些数据,或者由目标节点发送应用数据至发送节点,此时需要对返回的数据也进行判断是否在发送节点的数据接收能力范围,以避免发送节点异常。
[0080]
请参阅图3,在一些实施例中,当应用数据的数据长度小于或小于等于预设长度时,“将应用数据发送至目标节点”包括:
[0081]
基于应用数据生成单帧报文,单帧报文包括第一标识信息、帧类型信息和第一数据信息;
[0082]
将单帧报文发送至目标节点;
[0083]
目标节点识别第一标识信息确定单帧报文为待处理的报文,以及识别帧类型信息确定单帧报文包括全部应用数据;
[0084]
目标节点根据第一数据信息进行工作以及返回响应帧报文至发送节点,响应帧报文包括目标节点的接收状态信息。
[0085]
具体来说,单帧报文包括的单帧数据结构如下表所示:
[0086]
[0087][0088]
其中,n_pci type表示为帧类型信息,单帧报文的帧类型信息为第一字节的高四位为0000;sf_dl表示基于应用数据生成的第一数据信息的数据长度;第一数据信息为单帧数据结构中的第二字节至第八字节;interrupt level表示此报文在接收方的处理优先级;mn表示消息序号,pn表示对应消息的数据包序号,即发送方可发送多条消息,每条消息可封装多个数据包,通过在报文上标识相应序号可使接收方获知报文属于哪一数据包以及哪一条消息;founction id、intelligent flag和op type共同表示接收方获取该报文后所需要进行的工作。
[0089]
目标节点在获取到单帧报文后,根据帧类型信息可确定单帧报文包括全部的应用数据,因此可直接对单帧报文进行处理。
[0090]
响应帧报文的响应帧数据结构如下表所示:
[0091][0092]
其中,n_pci type表示该帧数据的类型,第一字节的高四位为1110的数据帧为响应帧;ack status表示接收方是否成功接收应用数据,即是本发明中的节点的接收状态信息,当成功接收时,status为0,当未成功时,status为1;第二字节中的各个字段定义与上述单帧数据结构的一致,在此不再赘述。
[0093]
请参阅图4,在一些实施例中,当应用数据的数据长度大于预设长度时,“将应用数据发送至目标节点”包括:
[0094]
根据数据拆分策略对应用数据进行数据拆分,并对拆分的数据分别封装成首帧报文和连续帧报文,首帧报文包括第一标识信息、帧类型信息和第二数据信息,连续帧报文包括第一标识信息、帧类型信息、编号信息和第三数据信息,编号信息反映连续帧报文对应应用数据中的顺序;
[0095]
将首帧报文发送至目标节点;
[0096]
目标节点识别第一标识信息确定首帧报文为待处理的报文,以及识别首帧报文的帧类型信息确定首帧报文包括部分应用数据;
[0097]
目标节点基于首帧报文生成流控制帧报文并发送至发送节点,流控制帧报文包括时间间隔信息和第二标识信息,时间间隔信息反映目标节点接收连续帧报文的最短时间间隔;
[0098]
发送节点按照大于等于最短时间间隔的时间依编号信息表示的顺序间隔发送连续帧报文至目标节点;
[0099]
目标节点重组第二数据信息和第三数据信息生成第四数据信息,并根据第四数据信息进行工作以及返回响应帧报文至发送节点,响应帧报文包括目标节点的接收状态信息。
[0100]
可以理解的是,预设长度为单帧数据所能承载的最大数据长度。
[0101]
具体地,首帧报文的首帧数据结构如下表所示:
[0102][0103][0104]
其中,n_pci type表示该帧数据的类型,第一字节的高四位为0001的数据帧为首帧数据;ff_dl表示基于应用数据生成的第二数据信息和第三数据信息的数据长度之和,即是本发明的数据长度信息;第二数据信息为首帧数据结构中的第三字节至第八字节;第三字节至第五字节中的各个字段定义与上述单帧数据结构的一致,在此不再赘述。
[0105]
目标节点根据ff_dl可确定第四数据信息的数据长度是否完整。
[0106]
流控制帧报文的流控制帧数据结构如下表所示:
[0107][0108][0109]
其中,n_pci type表示该帧数据的类型,第一字节的高四位为0011的数据帧为流控制帧数据;fs表示发出方的数据接收状态,当fs为0时,则允许接收方向发出方发送连续帧报文,当fs为1时,则表示暂缓接收方向发出方发送连续帧报文,当fs为2时,则表示发出方无法接收来自接收方的连续帧报文;bs表示发送方所能够接收到来自接收方发出的连续帧报文的个数;stmin表示接收方发送两个连续帧报文之间的最小间隔时间,即本发明中的时间间隔信息。
[0110]
连续帧报文的连续帧数据结构如下表所示:
ff ff ff),表示接收数据成功;
[0121]
序号42报文为目标节点解析序号41报文后回复的首帧报文(10 32 70 42 2c 00 44 04),其表示为时间的状态数据;
[0122]
序号43报文为发送节点根据序号42报文返回的流控制帧报文(30 00 0a ff ff ff ff ff);
[0123]
序号44-50报文为目标节点根据序号43报文发送给发送节点的连续帧报文;
[0124]
序号51报文为发送节点接收到序号50报文后返回的响应帧报文(e0 70 ff ff ff ff ff ff),表示接收数据成功;
[0125]
序号52和序号53报文为周期发送的通讯请求报文和通讯响应报文。
[0126]
请参阅图6,本发明实施例还公开了一种can网络的数据通信装置,包括通过can连接的发送节点100和若干接收节点200,发送节点100包括请求模块500、确定模块400和发送模块600;
[0127]
请求模块500用于向若干接收节点200发送通讯请求报文,通讯请求报文包括第一标识信息;
[0128]
若干个接收节点200中与第一标识信息匹配成功的为目标节点300,目标节点300包括响应模块700;
[0129]
响应模块700用于根据通讯请求报文发送通讯响应报文至发送节点100,通讯响应报文包括第二标识信息和第一限制信息,第一限制信息反映目标节点300的数据接收能力;
[0130]
确定模块400用于识别第二标识信息以确定通讯响应报文为待处理的报文;
[0131]
发送模块600用于根据第一限制信息确定待传输的应用数据是否符合目标节点300的数据接收能力的范围内,若符合,则将应用数据发送至目标节点300。
[0132]
本发明的发送节点100通过在发送应用数据之前,获取反映目标节点300的数据接收能力的通讯响应报文,只将在目标节点300的数据接收能力范围内的应用数据发送至目标节点300,有利于降低目标节点300发生异常的可能性。
[0133]
请参阅图7,本发明实施例还公开了一种电子设备,包括:
[0134]
处理器40;
[0135]
存储器50,其中存储有处理器40的可执行指令;
[0136]
其中,处理器40配置为经由执行可执行指令来执行如上所述的can网络的数据通信方法。
[0137]
本发明实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上所述的can网络的数据通信方法。
[0138]
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行如上所述的can网络的数据通信方法。
[0139]
应当理解,在本发明实施例中,所述处理器可以是中央处理模块(centralprocessing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可
编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0140]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random accessmemory,ram)等。
[0141]
以上所揭露的仅为本发明的较佳实例而已,不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,均属于本发明所涵盖的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1