一种数据帧结构和数据通信方法与流程

文档序号:33372469发布日期:2023-03-08 02:48阅读:36来源:国知局
一种数据帧结构和数据通信方法与流程

1.本技术涉及汽车的数据通信技术领域,特别是涉及一种数据帧结构和数据通信方法。


背景技术:

2.目前,汽车主要利用统一诊断服务(unified diagnostic service,uds)来提供诊断服务,其中,诊断服务包括故障诊断、数据传输、通信管理以及输入输出控制等服务类别。例如,诊断仪或上位机等诊断设备向车身控制器或整车控制器等控制器发送诊断服务请求,控制器接收并响应该诊断服务请求,将诊断服务请求所需的数据传输至诊断设备中,以使诊断设备执行诊断服务操作。
3.在诊断设备和控制器的数据通信过程中,若使用现有的通信协议,则存在以下问题:基础软件内部数据和执行功能较多,现有的通信协议难以完全满足需求;在开发阶段的需求变更频繁,涉及多个模块的修改,降低修改效率;影响应用软件对诊断服务功能的聚焦。但若开发全新的通信协议,则存在协议的传输层和业务层的开发耗时耗力,且稳定性难以得到保证的问题。
4.因此,现有技术中数据通信的稳定性还有待提高。


技术实现要素:

5.基于此,提供一种数据帧结构和数据通信方法,以提高现有技术中数据通信的稳定性。
6.第一方面,提供一种数据帧结构,所述数据帧结构包括:
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.所述诊断设备执行待执行命令;
35.所述控制器响应所述待执行命令,以使所述控制对象响应所述待执行命令所指示的操作。
36.上述数据帧结构和数据通信方法,其中,所述数据帧结构包括用于指示读数据请求的第一数据帧,所述第一数据帧包括第一数值、读数据命令以及待读数据长度,其中,所述第一数值用于与物理地址进行区别,所述第一数值、所述读数据命令以及所述待读数据长度按照从前到后的时序分布。通过应用包括上述数据帧结构的通信协议进行数据通信,数据通信系统在执行所述读数据命令时,可以读取到所述待读数据长度对应长度的待读数据。由于第一数据帧是在标准uds协议的数据帧结构的基础上进行修改得到的,因此可根据实际的场景需求对读数据命令以及待读数据进行修改,提高场景适应性,且修改方式较为简单;另外,命令和地址仅占数据帧中的特定地址段,不会影响应用软件对诊断服务功能的聚焦。因此,通过包括上述数据帧结构的通信协议能够提高现有技术中数据通信的稳定性。
附图说明
37.图1为包括第一实施例的通信协议的应用环境图;
38.图2为第一实施例的数据结构示意图;
39.图3为一种实施方式的数据结构示意图;
40.图4为第二实施例的数据结构示意图;
41.图5为一种实施方式的数据结构示意图;
42.图6为一种实施方式的数据结构示意图;
43.图7为一种实施方式的数据结构示意图;
44.图8为一种实施方式的数据结构示意图;
45.图9为一种实施方式的数据结构示意图;
46.图10为一种实施方式的数据结构示意图;
47.图11为数据通信方法中建立安全通信通道的信令图;
48.图12为第三实施例数据通信方法中读数据的信令图;
49.图13为第四实施例数据通信方法的信令图。
具体实施方式
50.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
51.需要说明的是,本实施例中所提供的图示仅以示意方式说明本技术的基本构想,遂图式中仅显示与本技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
52.本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本技术可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本技术所能产生的功效及所能达成的目的下,均应仍落在本技术所揭示的技术内容得能涵盖的范围内。
53.本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”、“纵向”、“横向”、“水平”、“内”、“外”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,亦仅为了便于简化叙述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本技术的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
54.目前,诊断设备和控制器之间在实现诊断服务的数据通信过程中,若使用现有的标准通信协议,例如标准的统一诊断服务(unified diagnostic service,uds)协议,则存在usd协议难以完全满足需求,需求变更会涉及多个模块的修改,导致开发效率低,还影响应用软件对诊断服务功能的聚焦等问题;若采用全新的通信协议,则存在协议的传输层和业务层开发耗时耗力,且稳定性难以得到保证等问题,因此,导致诊断设备和控制器之间的数据传输的稳定性还有待提高。
55.为此,本技术提出了一种数据帧结构和数据通信方法,其中,所述数据帧结构包括用于指示读数据请求的第一数据帧,所述第一数据帧包括按照从前到后的时序分布的第一数值、读数据命令以及待读数据长度,其中,第一数值用于与物理地址进行区分。
56.通过应用包括上述数据帧结构的通信协议进行数据通信,可以实现读数据服务。由于第一数据帧是在标准uds协议的数据帧结构的基础上进行修改得到的,因此可根据实际的场景需求对读数据命令以及待读数据进行修改,提高场景适应性,且修改方式较为简单;另外,命令和地址仅占数据帧中的特定地址段,不会影响应用软件对诊断服务功能的聚焦。因此,通过包括上述数据帧结构的通信协议能够提高现有技术中数据通信的稳定性。
57.需要说明的是,包括上述数据帧结构的通信协议可以应用于诊断设备与控制器的应用环境中,其中,诊断设备可以包括诊断仪或上位机等,控制器可以包括车身控制器或整车控制器等;也可以应用于如图1所示的终端与服务器的应用环境中,实现上述数据通信方
法的步骤。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本技术对此不再进行赘述,后文将以诊断设备和控制器之间的应用环境为例,对本技术所述的数据通信方法进行详细说明。
58.如图2所示,在第一实施例中,提供了一种数据帧结构,以包括该数据帧结构的通信协议应用于数据通信方法中为例进行说明,所述数据帧结构包括:
59.用于指示读数据请求的第一数据帧,所述第一数据帧包括第一数值、读数据命令以及待读数据长度,其中,所述第一数值用于与物理地址进行区别,所述第一数值、所述读数据命令以及所述待读数据长度按照从前到后的时序分布。
60.示例性的说明,如图3所示,所述第一数据帧还包括读数据服务和第一格式,其中,所述第一格式用于指示所述第一数值、所述读数据命令和所述待读数据长度分别在所述第一数据帧中所占的字节长度,所述读数据服务、所述第一格式、所述第一数值、所述读数据命令以及所述待读数据长度按照从前到后的时序分布。
61.举例来说,字节0为读数据服务,用于指示第一数据帧在读取数据服务中进行传输;字节1为第一格式,用于指示在其后面的第一数值、读数据命令和待读数据长度所占字节数,例如,第一数值和读数据命令的字节长度分别为2个,待读数据长度的字节长度为4个。又由于第一数值、读数据命令以及待读数据长度按照从前到后的时序分布,即字节2和字节3为第一数值,字节4和字节5为读数据命令,字节6、字节7、字节8和字节9为待读数据长度。其中,由于第一数据帧是在标准uds协议的数据帧结构的基础上进行修改得到的,因此字节2和字节3对应的第一数值可以选择不与标准uds协议中实际的物理地址冲突的数值。
62.在诊断设备和控制器之间应用数据通信方法时,应用包括第一数据帧的通信协议,可以实现数据的获取,具体的:所述诊断设备向所述控制器发出读数据请求;所述控制器响应所述读数据请求,以确定待读数据;所述诊断设备执行读数据命令;所述控制器响应所述读数据命令,输出所述待读数据,以使所述诊断设备获取所述待读数据。
63.如图4所示,在第二实施例中,所述数据帧结构包括:用于指示待执行请求的第二数据帧,所述第二数据帧包括第二数值、待执行命令、待执行数据长度以及待执行数据,其中,所述第二数值用于与物理地址进行区别,所述第二数值、所述待执行命令、所述待执行数据长度以及所述待执行数据按照从前到后的时序分布。
64.示例性的说明,如图5所示,所述第二数据帧还包括待执行服务和第二格式,其中,所述第二格式用于指示所述第二数值、待执行命令和所述待执行数据长度分别在所述第二数据帧中所占的字节长度,所述待执行服务、所述第二格式、所述第二数值、所述待执行命令、所述待执行数据长度以及所述待执行数据按照从前到后的时序分布。
65.举例来说,字节0为待执行服务,用于指示第二数据帧在待执行服务中进行传输;字节1为第二格式,用于指示在其后面的第二数值、待执行命令和待执行数据长度所占字节数,例如,第二数值和待执行命令的字节长度分别为2个,待执行数据长度的字节长度为4个。又由于第二数值、待执行命令以及待执行数据长度按照从前到后的时序分布,即字节2和字节3为第二数值,字节4和字节5为待执行命令,字节6、字节7、字节8和字节9为待执行数据长度。其中,由于第二数据帧是在标准uds协议的数据帧结构的基础上进行修改得到的,因此字节2和字节3对应的第二数值可以选择不与标准uds协议中实际的物理地址冲突的数
值。字节10及其之后为待执行数据,本技术对待执行数据所占字节长度不做限制,待执行数据所占字节长度根据实际的待执行请求进行调整,且通过待执行数据长度来指示待执行数据所占的字节长度,以满足待执行请求的通信服务。
66.在诊断设备和控制器之间应用数据通信方法时,应用包括第一数据帧的通信协议,可以实现各种待执行请求。具体的:
67.结合图6,当所述待执行请求包括写数据请求时,所述待执行服务包括写数据服务,所述待执行命令包括写数据命令,所述待执行数据包括第一标识号和至少一个待写数据,所述待执行数据长度用于指示所述第一标识号和各个所述待写数据整体在所述第二数据帧中所占的字节长度,其中,所述第一标识号用于确定接收各个所述待写数据的第一对象。
68.此时,诊断设备可以实现将各个待写数据写入控制器中,具体的:所述诊断设备向所述控制器发出写数据请求;所述控制器响应所述写数据请求,以根据第一标识号确定接收至少一个待写数据的第一对象;所述诊断设备执行写数据命令,输出至少一个待写数据;所述控制器响应所述写数据命令,接收各个所述待写数据,并将各个所述待写数据存储至所述第一对象中。
69.结合图7,当所述待执行请求包括擦除数据请求时,所述待执行服务包括擦除数据服务,所述待执行命令包括擦除数据命令,所述待执行数据包括第二标识号和至少一个待擦除数据,所述待执行数据长度用于指示所述第二标识号和各个所述待擦除数据在所述第二数据帧中所占的字节长度,其中,所述第二标识号用于确定擦除各个所述待擦除数据的第二对象。
70.此时诊断设备可以控制控制器将自身内部的各个待擦除数据擦除,具体的:所述诊断设备向所述控制器发出擦除数据请求;所述控制器响应所述擦除数据请求,根据第二标识号确定擦除至少一个待擦除数据的第二对象;所述诊断设备执行擦除数据命令;所述控制器响应所述擦除数据命令,以使所述第二对象擦除所述擦除数据请求所指示的至少一个待擦除数据。
71.结合图8,当所述待执行请求包括控制开关状态请求时,所述待执行服务包括控制开关状态服务,所述待执行命令包括控制开关状态命令,所述待执行数据包括第三标识号和开关状态数据,所述待执行数据长度用于指示所述第三标识号和所述开关状态数据整体在所述第二数据帧中所占的字节长度,所述第三标识号用于确定根据所述开关状态数据改变开关状态的第三对象。
72.此时,诊断设备可以控制控制器的某个开关改变状态,具体的:所述诊断设备向所述控制器发出控制开关状态请求;所述控制器响应所述控制开关状态请求,根据第三标识号确定执行改变开关状态操作的第三对象;所述诊断设备执行控制开关状态命令;所述控制器响应所述控制开关状态命令,以使所述第三对象根据所述控制开关状态请求所指示的开关状态数据改变自身的开关状态。其中,开关状态数据可以是0或1,0表示关闭状态,1表示开启状态。
73.结合图9,当所述待执行请求包括控制接口输出数据请求时,所述待执行服务包括控制接口输出数据服务,所述待执行命令包括控制接口输出数据命令,所述待执行数据包括第四标识号和至少一个待输出数据,所述待执行数据长度用于指示所述第四标识号和各
个所述待输出数据整体在所述第二数据帧中所占的字节长度,所述第四标识号用于确定输出各个所述待输出数据的接口。
74.此时,诊断设备可以控制控制器的某个接口输出数据,具体的:所述诊断设备向所述控制器发出控制接口输出数据请求;所述控制器响应所述控制接口输出数据请求,根据第四标识号确定输出至少一个待输出数据的接口;所述诊断设备执行控制接口输出数据命令;所述控制器响应所述控制接口输出数据命令,以使所述接口输出所述控制接口输出数据请求所指示的至少一个待输出数据。
75.结合图10,当所述待执行请求包括控制芯片复位请求时,所述待执行服务包括控制芯片复位服务,所述待执行命令包括控制芯片复位命令,所述待执行数据包括第五标识号和复位操作码,所述待执行数据长度用于指示所述第五标识号和所述复位操作码整体在所述第二数据帧中所占的字节长度,所述第五标识号用于确定执行复位操作的芯片。
76.此时,诊断设备可以控制控制器的某个芯片复位,具体的:所述诊断设备向所述控制器发出控制芯片复位请求;所述控制器响应所述控制芯片复位请求,根据第五标识号确定执行复位操作的芯片;所述诊断设备执行控制芯片复位命令;所述控制器响应所述控制芯片复位命令,以使所述芯片根据所述控制芯片复位请求所指示的复位操作码进行复位。
77.需要说明的是,本说明书未对数据帧结构的所有可实施方式进行举例,本技术的数据帧结构是在标准uds协议的数据帧结构上进行修改提出的,即将标准uds协议的数据帧结构中的数据地址修改为第一数值和读数据命令,或,第二数值和待执行命令,只要满足该修改方式,都应当认为是在本说明书记载的范围内。因此,相比于标准的uds协议,可以根据不同的场景需求对本技术的数据帧结构进行修改和扩展,以适应性满足场景需求,提高本通信协议的普适性,使得包括本技术数据帧结构的通信协议的功能更加灵活以及更具可扩展性。示例性的说明,待执行请求除了包括前述枚举的写数据请求、擦除数据请求、控制开关状态请求、控制接口输出数据请求以及控制芯片复位请求中的至少一种,还可以是恢复默认状态请求、禁止输出/接收等,在此不再一一列举。
78.在应用包括该数据帧结构的通信协议提供数据通信服务时,可以根据实际的应用场景对数据帧的读数据命令,或待执行命令以及对应的待执行数据进行修改,且其修改方式简单,不会涉及多个模块的修改,降低了修改效率,也不会影响应用软件对诊断服务功能的聚焦;也无需全新开发新的通信协议。因此,应用包括本技术数据帧结构的通信协议,能够提高数据通信的稳定性。
79.在第三实施例中,提供了一种数据通信方法,应用包括上述第一实施例中所述数据帧结构的通信协议,并应用于诊断设备和控制器之间,所述方法包括:
80.所述诊断设备向所述控制器发出读数据请求;
81.所述控制器响应所述读数据请求,以确定待读数据;
82.所述诊断设备执行读数据命令;
83.所述控制器响应所述读数据命令,输出所述待读数据,以使所述诊断设备获取所述待读数据。
84.在第四实施例中,提供了一种数据通信方法,应用包括上述第二实施例中所述数据帧结构的通信协议,并应用于诊断设备和控制器之间,所述方法包括:
85.所述诊断设备向所述控制器发出待执行请求;
86.所述控制器响应所述待执行请求,以根据待执行数据确定控制对象;
87.所述诊断设备执行待执行命令;
88.所述控制器响应所述待执行命令,以使所述控制对象响应所述待执行命令所指示的操作。
89.在一种实施方式中,结合图6,当所述待执行请求包括写数据请求时,所述待执行服务包括写数据服务,所述待执行命令包括写数据命令,所述待执行数据包括第一标识号和至少一个待写数据。此时,诊断设备可以实现将各个待写数据写入控制器中,具体的:所述诊断设备向所述控制器发出写数据请求;所述控制器响应所述写数据请求,以根据第一标识号确定接收至少一个待写数据的第一对象;所述诊断设备执行写数据命令,输出至少一个待写数据;所述控制器响应所述写数据命令,接收各个所述待写数据,并将各个所述待写数据存储至所述第一对象中。
90.在一种实施方式中,结合图7,当所述待执行请求包括擦除数据请求时,所述待执行服务包括擦除数据服务,所述待执行命令包括擦除数据命令,所述待执行数据包括第二标识号和至少一个待擦除数据。此时诊断设备可以控制控制器将自身内部的各个待擦除数据擦除,具体的:所述诊断设备向所述控制器发出擦除数据请求;所述控制器响应所述擦除数据请求,根据第二标识号确定擦除至少一个待擦除数据的第二对象;所述诊断设备执行擦除数据命令;所述控制器响应所述擦除数据命令,以使所述第二对象擦除所述擦除数据请求所指示的至少一个待擦除数据。
91.在一种实施方式中,结合图8,当所述待执行请求包括控制开关状态请求时,所述待执行服务包括控制开关状态服务,所述待执行命令包括控制开关状态命令,所述待执行数据包括第三标识号和开关状态数据。此时,诊断设备可以控制控制器的某个开关改变状态,具体的:所述诊断设备向所述控制器发出控制开关状态请求;所述控制器响应所述控制开关状态请求,根据第三标识号确定执行改变开关状态操作的第三对象;所述诊断设备执行控制开关状态命令;所述控制器响应所述控制开关状态命令,以使所述第三对象根据所述控制开关状态请求所指示的开关状态数据改变自身的开关状态。其中,开关状态数据可以是0或1,0表示关闭状态,1表示开启状态。
92.在一种实施方式中,结合图9,当所述待执行请求包括控制接口输出数据请求时,所述待执行服务包括控制接口输出数据服务,所述待执行命令包括控制接口输出数据命令,所述待执行数据包括第四标识号和至少一个待输出数据。此时,诊断设备可以控制控制器的某个接口输出数据,具体的:所述诊断设备向所述控制器发出控制接口输出数据请求;所述控制器响应所述控制接口输出数据请求,根据第四标识号确定输出至少一个待输出数据的接口;所述诊断设备执行控制接口输出数据命令;所述控制器响应所述控制接口输出数据命令,以使所述接口输出所述控制接口输出数据请求所指示的至少一个待输出数据。
93.在一种实施方式中,结合图10,当所述待执行请求包括控制芯片复位请求时,所述待执行服务包括控制芯片复位服务,所述待执行命令包括控制芯片复位命令,所述待执行数据包括第五标识号和复位操作码。此时,诊断设备可以控制控制器的某个芯片复位,具体的:所述诊断设备向所述控制器发出控制芯片复位请求;所述控制器响应所述控制芯片复位请求,根据第五标识号确定执行复位操作的芯片;所述诊断设备执行控制芯片复位命令;所述控制器响应所述控制芯片复位命令,以使所述芯片根据所述控制芯片复位请求所指示
的复位操作码进行复位。
94.需要说明的是,在数据通信系统的诊断设备和控制器之间正式进行数据通信之前,还包括一些准备工作,具体的:诊断设备向控制器发出通信类型切换的请求,控制器接收到该请求后进行响应,指示控制器同意切换通信类型;诊断设备向控制器发出建立安全通信通道的请求,控制器接收到该请求后进行响应,指示控制器同意建立安全通信通道。
95.示例性的说明,如图11所示,建立安全通信通道的具体步骤包括:诊断设备发出身份认证请求;控制器接收并响应所述身份认证请求,得到并发送身份认证信息;诊断设备接收并响应所述身份认证信息,得到并发送身份信息以及数字签名,其中,所述数字签名是根据预存的私钥对所述身份信息的摘要进行加密得到的;控制器根据接收的身份信息获得对应的身份信息摘要,并通过预存的公钥对接收的数字签名进行验证,得到所述数字签名所对应的待验证信息摘要;将所述身份信息摘要与所述待验证信息摘要进行对比;在所述身份信息摘要与所述待验证信息摘要一致的情况下,检查所述身份信息的格式是否正确,若是,通过身份认证。
96.其中,检查所述身份信息的格式是否正确的步骤,包括:控制器根据所述身份信息,获得设备类型、设备序列号和访问权限请求中的至少一种;检查所述设备类型和/或设备序列号的格式是否正确,并在获得所述访问权限请求的情况下,响应所述访问权限请求,以对诊断设备分配所述访问权限请求所指示的权限。
97.如图11所示,通过身份认证后,诊断设备获取随机数,并根据随机数生成通信密钥,对通信密钥进行循环冗余校验,得到校验数据,合并所述通信密钥和所述校验数据,通过预存的公钥对合并后的通信密钥和校验数据进行加密,得到密钥信息,输出所述通信密钥和所述密钥信息;控制器通过所述私钥对接收的密钥信息进行解密,得到会话密钥,根据接收的通信密钥,验证所述会话密钥是否有效,若是,则输出所述会话密钥;在控制器接收到所述会话密钥的情况下,认为诊断设备和控制器之间建立安全通信通道,以使所述待读数据被诊断设备读取之前,控制器通过所述会话密钥对其进行加密,和/或,所述待执行数据被控制器执行之前,诊断设备通过所述通信密钥对其进行加密。后续将在此安全通信通道中应用包括上述数据帧结构的通信协议来实现数据通信过程,且通过密钥对传输的数据进行加密,以保证数据通信的安全性。需要说明的是,会话密钥有效指的是,会话密钥与通信密钥相同,使得进行数据通信的诊断设备和控制器可以共享同一个密钥。
98.如此,诊断设备和控制器在建立安全通信通道后,如图12所示,诊断设备向控制器发出读数据请求,控制器响应该读数据请求,以确定待读数据,通过会话秘钥对待读数据进行加密,诊断设备执行读数据操作,控制器响应读数据操作,并输出加密后的待读数据,控制器接收到加密后的待读数据后,通过通信密钥对加密后的待读数据进行解密,以获得解密后的待读数据。如图13所示,诊断设备在发出待执行命令之前,通过通信密钥对待执行请求中的待执行数据进行加密,获得加密后的待执行数据;诊断设备向控制器发出待执行请求,控制器响应该待执行请求,通过会话密钥对加密后的待执行数据进行解密,获得解密后的待执行数据,以根据待执行数据确定控制对象,诊断设备执行待执行命令所指示的操作,以使控制器的控制对象响应所述待执行命令所指示的操作。
99.示例性的说明,结合图6,若待执行请求为写数据请求时,诊断设备将加密后的第一标识号和各个待写数据输出,控制器接收加密后的第一标识号和各个待写数据后,通过
会话密钥对其进行解密,获得解密后的第一标识号和各个待写数据,并将解密后的各个待写数据存储至第一标识号对应的第一对象中。
100.结合图7,若待执行请求为擦写数据请求时,诊断设备将加密后的第二标识号和各个待擦除数据输出,控制器接收加密后的第二标识号和各个待擦除数据,通过会话密钥对其进行解密,获得解密后的第二标识号和各个待擦除数据,并控制第二标识号对应的第二对象擦除各个待擦除数据。
101.结合图8,若待执行请求为控制开关状态请求时,诊断设备将加密后的第三标识号和开关状态数据输出,控制器接收加密后的第三标识号和开关状态数据,通过会话密钥对其进行解密,获得解密后的第三标识号和开关状态数据,并控制第三标识号对应的第三对象处于开关状态数据所指示的开启或关闭状态。
102.结合图9,若待执行请求为控制接口输出数据请求时,诊断设备将加密后的第四标识号和各个待输出数据输出,控制器接收加密后的第四标识号和各个待输出数据,通过会话密钥对其进行解密,获得解密后的第四标识号和各个待输出数据,并控制第四标识号对应的第四对象输出各个待输出数据。
103.结合图10,若待执行请求为控制芯片复位请求时,诊断设备将加密后的第五标识号和复位操作码输出,控制器接收加密后的第五标识号和复位操作码,通过会话密钥对其进行解密,获得解密后的第五标识号和复位操作码,并控制第五标识号对应的第五对象按照复位操作码执行复位操作。
104.上述步骤中涉及到的预存的公钥和私钥为车辆出厂时,通过ras算法生成的密钥对,其中,公钥存储在控制器中,私钥存储在诊断设备中。在完成数据传输后,且短时间内不需要进行数据传输,为了提高诊断设备和控制器内部数据的安全性,避免泄露,诊断设备向控制器发出退出身份认证请求,控制器接收该请求后进行响应,指示同意退出身份认证,此时,诊断设备和控制器完成身份认证的退出,诊断设备和控制器之间的通信状态恢复为默认状态。
105.在第五实施例中,提供了一种数据通信方法,应用包括上述第一和第二实施例中所述数据帧结构的通信协议,并应用于诊断设备和控制器之间,所述方法包括:
106.所述诊断设备向所述控制器发出读数据请求;
107.所述控制器响应所述读数据请求,以确定待读数据;
108.所述诊断设备执行读数据命令;
109.所述控制器响应所述读数据命令,输出所述待读数据,以使所述诊断设备获取所述待读数据;
110.所述诊断设备向所述控制器发出待执行请求;
111.所述控制器响应所述待执行请求,以根据待执行数据确定控制对象;
112.所述诊断设备执行待执行命令;
113.所述控制器响应所述待执行命令,以使所述控制对象响应所述待执行命令所指示的操作。
114.需要说明的是,在本实施例中,诊断设备和控制器之间实现的读数据请求和待执行命令与前述第三实施例和第四实施例的相同,相关描述请参阅前文,在此不再赘述。另外,上述数据通信方法的实施例中涉及的数据帧结构的第一数据帧或第二数据帧的内容,
可以参考前述对数据帧结构实施例的描述内容,在此不再赘述。
115.本技术的数据帧结构是在标准uds协议的数据帧结构的基础上进行修改提出的,因此,相比于标准的uds协议,可以根据不同的场景需求对本技术的数据帧结构进行修改和扩展,使得包括本技术数据帧结构的通信协议的功能更加灵活以及更具可扩展性,以适应性满足场景需求,提高本通信协议的普适性。因此相比于标准的uds协议,本技术的通信协议更具可扩展性,其功能更加灵活。另外,其修改方式简单,不会涉及多个模块的修改,降低了修改效率,也不会影响应用软件对诊断服务功能的聚焦;也无需全新开发新的通信协议。因此,通过应用包括上述数据帧结构的通信协议的数据通信方法,能够提高数据通信的稳定性;且通过身份认证和经密钥加密后的数据在通信过程中,也确保了数据通信的安全性,一定程度上避免数据的泄露。
116.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
117.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
118.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1