CN117955828A - 一种控制器局域网络通信方法、装置、控制器及存储介质 - Google Patents
一种控制器局域网络通信方法、装置、控制器及存储介质 Download PDFInfo
- Publication number
- CN117955828A CN117955828A CN202410126591.0A CN202410126591A CN117955828A CN 117955828 A CN117955828 A CN 117955828A CN 202410126591 A CN202410126591 A CN 202410126591A CN 117955828 A CN117955828 A CN 117955828A
- Authority
- CN
- China
- Prior art keywords
- signal
- message
- communication
- controller
- configuration
- 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
- 230000006854 communication Effects 0.000 title claims abstract description 211
- 238000004891 communication Methods 0.000 title claims abstract description 201
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000012986 modification Methods 0.000 claims abstract description 49
- 230000004048 modification Effects 0.000 claims abstract description 49
- 238000012545 processing Methods 0.000 claims description 40
- 230000005540 biological transmission Effects 0.000 claims description 31
- 238000013507 mapping Methods 0.000 claims description 23
- 238000012795 verification Methods 0.000 claims description 17
- 230000008054 signal transmission Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 abstract description 20
- 230000006870 function Effects 0.000 description 20
- 230000007246 mechanism Effects 0.000 description 9
- 230000003993 interaction Effects 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000009191 jumping Effects 0.000 description 3
- 238000012827 research and development Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 241000976924 Inca Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- 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
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Small-Scale Networks (AREA)
Abstract
本申请涉及控制器技术领域,特别涉及一种控制器局域网络通信方法、装置、控制器及存储介质,方法包括获取CAN信号配置数据库,CAN信号配置数据库包括若干CAN信号的信号配置信息;根据CAN信号配置数据库中的每个CAN信号的信号配置信息,生成CAN通信配置代码及特性文件;在控制器中配置所有CAN信号的信号配置信息后进行通信;特性文件用于修改控制器中配置的信号配置信息,以使控制器根据修改后的信号配置信息进行通信。本申请实施例利用特性文件实现在通信过程中直接修改控制器中配置的信号配置信息的功能,无需开发人员修改代码后再进行重新配置,修改过程简单,避免了代码冗余的问题。
Description
技术领域
本申请涉及控制器技术领域,具体是涉及一种控制器局域网络通信方法、装置、控制器及存储介质。
背景技术
近几年来,随着汽车智能化技术的不断发展,汽车上电子控制单元(ECU)的数量越来越多,当前一个典型的整车电子电气架构涉及到的ECU数量超过60个,为了协调所有的ECU配合工作,ECU之间需要点对点通信,为此汽车厂家在整车内部构建了一个复杂的整车通信网络。CAN是控制器局域网络(Controller Area Network)的简称,具备传输可靠,实时性高,传输距离长,扩展性强,干扰小,误差率低的优势,是汽车计算机控制系统和嵌入式工业控制局域网广泛采用的通信总线。
现有技术中是通过代码将CAN信号中的信号配置信息配置在控制器中,以实现控制器局域网络通信,在配置完成后,若需要对CAN信号中的信号配置信息进行修改,则需要由开发人员先对代码进行修改,再基于修改后的代码重新在控制器中配置CAN信号的信号配置信息,完成信号配置信息的修改,修改过程繁琐,灵活性较差,也导致了代码冗余的问题。
因此,现有技术还有待改进和提高。
发明内容
本申请提供了一种控制器局域网络通信方法、装置、控制器及存储介质,以解决相关技术中对控制器中的信号配置信息进行修改时修改过程繁琐、代码冗余的技术问题。
为实现上述目的,本申请采用了以下技术方案:
本申请第一方面实施例提供一种控制器局域网络通信方法,包括以下步骤:
获取预先构建的CAN信号配置数据库,所述CAN信号配置数据库包括若干CAN信号的信号配置信息;
根据所述CAN信号配置数据库中的每个CAN信号的信号配置信息,生成CAN通信配置代码及特性文件;
基于所述CAN通信配置代码,在控制器中配置所述CAN信号配置数据库中所有CAN信号的信号配置信息后进行通信;
其中,所述特性文件用于修改控制器中配置的信号配置信息,以使控制器根据修改后的信号配置信息进行通信。
根据上述技术手段,本申请实施例通过利用预先构建的CAN信号配置数据库自动生成CAN通信配置代码及特性文件,生成的特性文件能够实现在通信过程中直接修改控制器中配置的信号配置信息的功能,因此,无需由开发人员修改代码后再进行重新配置,修改过程简单,避免了代码冗余的问题。
可选地,在本申请的一个实施例中,每个CAN信号对应的信号配置信息的配置项包括:CAN网段标识符、CAN报文标识符、CAN信号名称、CAN报文长度、CAN信号开关、CAN信号传输方向、CAN信号传输周期、CAN信号起始位、CAN信号长度、CAN信号符号标志、CAN信号E2E标志位、CAN信号E2E配置信息以及CAN信号初始值中的至少一个。
根据上述技术手段,本申请实施例通过预先设置控制器的每个CAN信号对应的信号配置信息,使得CAN信号配置数据库中的信号数量较少,不同整车项目变动较少,同时有严格的格式检查,可以用于代码自动生成。
可选地,在本申请的一个实施例中,根据所述CAN信号配置数据库中的每个CAN信号的信号配置信息,生成CAN通信配置代码及特性文件,包括:
将所述CAN信号配置数据库中每个CAN信号的信号配置信息转换为对应的结构体变量,每个所述信号配置信息的配置项对应所述结构体变量中的一个字段;
各个所述结构体变量形成配置结构体数组,以使所述配置结构体数组中包括所述CAN信号配置数据库中所有CAN信号的信号配置信息;
根据所述配置结构体数组生成CAN通信配置代码和特性文件。
根据上述技术手段,本申请实施例将信号配置信息存储在配置结构体数组中,然后再生成CAN通信配置代码和特性文件,在进行信号配置信息修改时,可以变得更加简单和直观,而不必深入代码逻辑进行修改。
可选地,在本申请的一个实施例中,根据所述配置结构体数组生成CAN通信配置代码和特性文件,包括:
获取所述CAN信号配置数据库中的CAN信号配置数量,根据所述配置结构体数组和CAN信号配置数量得到具有接收信号处理逻辑和发送信号处理逻辑的CAN通信配置代码;
确定所述配置结构体数组中的各个字段在控制器的数据类型、在控制器的保存地址以及修改取值范围,并对各个字段分配对应的标识信息;
建立所述标识信息与对应的所述数据类型、保存地址及修改取值范围之间的映射关系,根据各个所述映射关系生成特性文件。
根据上述技术手段,本申请实施例对各个字段进行了标识,并建立了标识与数据类型、保存地址及修改取值范围的映射关系,以便于在修改时根据映射关系查找待修改字段的各个信息,提高了字段查找的准确性。
可选地,在本申请的一个实施例中,建立所述标识信息与对应的所述数据类型、保存地址及修改取值范围之间的映射关系,根据各个所述映射关系生成特性文件之后,还包括:
当接收到对目标字段的修改指令时,根据所述特性文件确定所述目标字段对应的目标标识信息;
查找所述映射关系,得到与所述目标标识信息对应的目标数据类型、目标保存地址及目标修改取值范围;
根据所述目标数据类型、目标保存地址及目标修改取值范围对控制器中信号配置信息的目标字段进行修改;
其中,所述特性文件为A2L文件。
根据上述技术手段,本申请实施例利用CAN信号配置数据库生成对应的特性文件,特性文件中的标识信息、数据类型、保存地址及修改取值范围能够用于对控制器中的字段进行修改,提高了修改灵活性和方便性。
可选地,在本申请的一个实施例中,根据所述CAN信号配置数据库中的每个CAN信号的信号配置信息,生成CAN通信配置代码及特性文件之前,还包括:
按照预设校验项目对所述CAN信号配置数据库进行校验;
其中,所述预设校验项目包括:CAN信号所属报文长度有效性校验、CAN信号起始位有效性校验、CAN信号长度有效性校验、CAN信号传输周期校验、CAN信号E2E配置有效性校验、CAN报文传输周期一致性校验、CAN报文长度一致性校验、CAN报文传输方向一致性校验以及CAN报文信号定义一致性校验。
根据上述技术手段,本申请实施例对CAN信号配置数据库进行校验,进而提高了通信的准确性。
可选地,在本申请的一个实施例中,基于所述CAN通信配置代码,在控制器中配置所述CAN信号配置数据库中所有CAN信号的信号配置信息后进行通信,包括:
在通信时处理当前待处理接收报文,根据所述当前待处理接收报文中各个CAN信号对应的CAN信号开关确定当前待处理接收报文的CAN报文开关;
若当前待处理接收报文的CAN报文开关为打开,则调用CAN驱动层的CAN报文接收标志位读取接口,更新CAN报文超时标志位;
调用CAN驱动层的CAN报文原始数据读取接口,获取CAN报文原始数据;
对所述CAN报文原始数据进行CAN信号E2E校验,并更新CAN报文通信状态标志位;
遍历解析所述CAN报文原始数据中的所有CAN信号,根据CAN报文通信状态标志位对应的CAN信号通信状态,对CAN信号数据缓存区进行填充,以供应用层使用。
根据上述技术手段,本申请实施例通过在接收报文处理流程中增加报文级开关和信号级开关,实现了上层实时调整报文开关的开闭,进而实现适配不同的控制器;并且,本申请实施例可以实时更新CAN报文通信状态标志位,无需手动增加CAN报文通信状态标志位对应的代码。
可选地,在本申请的一个实施例中,基于所述CAN通信配置代码,在控制器中配置所述CAN信号配置数据库中所有CAN信号的信号配置信息后进行通信,还包括:
在通信时处理当前待处理发送报文,根据所述当前待处理发送报文中各个CAN信号对应的CAN信号开关确定当前待处理发送报文的CAN报文开关;
若当前待处理发送报文的CAN报文开关为打开,则当达到发送周期时,遍历当前待处理发送报文对应的所有CAN信号数据缓存区,根据CAN信号数据缓存区对应的CAN信号起始位和CAN信号长度填充CAN报文缓存区;
根据当前待处理发送报文的E2E配置信息填充E2E信息,并调用CAN驱动层的CAN报文原始数据设置接口进行报文发送。
根据上述技术手段,本申请实施例通过在发送报文处理流程中增加报文级开关和信号级开关,实现了上层实时调整报文开关的开闭,进而实现适配不同的控制器;并且,本申请实施例可以填充E2E信息,用于在发送报文前进行校验,即,通过增加CAN通信端到端校验机制,实现CAN通信异常处理,并且无需手动增加填充E2E信息对应的代码。
本申请第二方面实施例提供一种控制器局域网络通信装置,包括:
获取模块,用于获取预先构建的CAN信号配置数据库,所述CAN信号配置数据库包括若干CAN信号的信号配置信息;
生成模块,用于根据所述CAN信号配置数据库中的每个CAN信号的信号配置信息,生成CAN通信配置代码及特性文件;
通信模块,用于基于所述CAN通信配置代码,在控制器中配置所述CAN信号配置数据库中所有CAN信号的信号配置信息后进行通信;
其中,所述特性文件用于修改控制器中配置的信号配置信息,以使控制器根据修改后的信号配置信息进行通信。
可选地,每个CAN信号对应的信号配置信息的配置项包括:CAN网段标识符、CAN报文标识符、CAN信号名称、CAN报文长度、CAN信号开关、CAN信号传输方向、CAN信号传输周期、CAN信号起始位、CAN信号长度、CAN信号符号标志、CAN信号E2E标志位、CAN信号E2E配置信息以及CAN信号初始值中的至少一个。
可选地,所述生成模块包括:
转换单元,用于将所述CAN信号配置数据库中每个CAN信号的信号配置信息转换为对应的结构体变量,每个所述信号配置信息的配置项对应所述结构体变量中的一个字段;
数组形成单元,用于各个所述结构体变量形成配置结构体数组,以使所述配置结构体数组中包括所述CAN信号配置数据库中所有CAN信号的信号配置信息;
生成单元,用于根据所述配置结构体数组生成CAN通信配置代码和特性文件。
可选地,所述生成单元包括:
代码生成子单元,用于获取所述CAN信号配置数据库中的CAN信号配置数量,根据所述配置结构体数组和CAN信号配置数量得到具有接收信号处理逻辑和发送信号处理逻辑的CAN通信配置代码;
确定子单元,用于确定所述配置结构体数组中的各个字段在控制器的数据类型、在控制器的保存地址以及修改取值范围,并对各个字段分配对应的标识信息;
文件生成子单元,用于建立所述标识信息与对应的所述数据类型、保存地址及修改取值范围之间的映射关系,根据各个所述映射关系生成特性文件。
可选地,所述控制器局域网络通信装置还包括:
接收单元,用于当接收到对目标字段的修改指令时,根据所述特性文件确定所述目标字段对应的目标标识信息;
查找单元,用于查找所述映射关系,得到与所述目标标识信息对应的目标数据类型、目标保存地址及目标修改取值范围;
修改单元,用于根据所述目标数据类型、目标保存地址及目标修改取值范围对控制器中信号配置信息的目标字段进行修改;
其中,所述特性文件为A2L文件。
可选地,所述控制器局域网络通信装置还包括:
校验单元,用于按照预设校验项目对所述CAN信号配置数据库进行校验;
其中,所述预设校验项目包括:CAN信号所属报文长度有效性校验、CAN信号起始位有效性校验、CAN信号长度有效性校验、CAN信号传输周期校验、CAN信号E2E配置有效性校验、CAN报文传输周期一致性校验、CAN报文长度一致性校验、CAN报文传输方向一致性校验以及CAN报文信号定义一致性校验。
可选地,所述通信模块包括:
报文接收单元,用于在通信时处理当前待处理接收报文,根据所述当前待处理接收报文中各个CAN信号对应的CAN信号开关确定当前待处理接收报文的CAN报文开关;
第一调用单元,用于若当前待处理接收报文的CAN报文开关为打开,则调用CAN驱动层的CAN报文接收标志位读取接口,更新CAN报文超时标志位;
原始数据获取单元,用于调用CAN驱动层的CAN报文原始数据读取接口,获取CAN报文原始数据;
校验单元,用于对所述CAN报文原始数据进行CAN信号E2E校验,并更新CAN报文通信状态标志位;
第一填充单元,用于遍历解析所述CAN报文原始数据中的所有CAN信号,根据CAN报文通信状态标志位对应的CAN信号通信状态,对CAN信号数据缓存区进行填充,以供应用层使用。
可选地,所述通信模块还包括:
报文发送单元,用于在通信时处理当前待处理发送报文,根据所述当前待处理发送报文中各个CAN信号对应的CAN信号开关确定当前待处理发送报文的CAN报文开关;
第二填充单元,用于若当前待处理发送报文的CAN报文开关为打开,则当达到发送周期时,遍历当前待处理发送报文对应的所有CAN信号数据缓存区,根据CAN信号数据缓存区对应的CAN信号起始位和CAN信号长度填充CAN报文缓存区;
第二调用单元,用于根据当前待处理发送报文的E2E配置信息填充E2E信息,并调用CAN驱动层的CAN报文原始数据设置接口进行报文发送。
本申请第三方面实施例提供一种控制器,所述控制器包括存储器、处理器及存储在所述存储器中并可在所述处理器上运行的控制器局域网络通信程序,所述处理器执行所述控制器局域网络通信程序时,实现如上所述的控制器局域网络通信方法的步骤。
本申请第四方面实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有控制器局域网络通信程序,所述控制器局域网络通信程序被处理器执行时,实现如上所述的控制器局域网络通信方法的步骤。
本申请的有益效果:
(1)本申请实施例通过预先构建的CAN信号配置数据库自动生成CAN通信配置代码及特性文件,生成的特性文件能够实现直接修改控制器中配置的信号配置信息的功能,因此,无需由开发人员修改代码后再进行重新配置,修改过程简单,避免了代码冗余的问题。
(2)本申请实施例通过在接收报文处理流程中增加报文级开关和信号级开关,实现了上层实时调整报文开关的开闭,进而实现适配不同的控制器;并且,本申请实施例可以实时更新CAN报文通信状态标志位,无需手动增加CAN报文通信状态标志位对应的代码。
(3)本申请实施例通过在发送报文处理流程中增加报文级开关和信号级开关,实现了上层实时调整报文开关的开闭,进而实现适配不同的控制器;并且,本申请实施例可以填充E2E信息,用于在发送报文前进行校验,即,通过增加CAN通信端到端校验机制,实现CAN通信异常处理,并且无需手动增加填充E2E信息对应的代码。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例提供的一种控制器局域网络通信方法的流程图;
图2为本申请实施例中CAN通信配置代码及A2L文件生成流程;
图3为本申请实施例中CAN信号配置数据库校验流程;
图4为本申请实施例中CAN通信核心系统状态机制;
图5为本申请实施例中CAN通信核心系统初始化流程;
图6为本申请实施例中CAN报文接收处理流程;
图7为本申请实施例中CAN报文发送处理流程;
图8为本申请实施例的控制器局域网络通信装置的结构示意图;
图9为本申请实施例提供的控制器的内部结构原理框图。
具体实施方式
下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的控制器局域网络通信方法、装置、控制器及存储介质。针对上述背景技术中提到的对控制器中的信号配置信息进行修改时修改过程繁琐、代码冗余的问题,本申请提供了一种控制器局域网络通信方法,在该方法中,获取预先构建的CAN信号配置数据库,CAN信号配置数据库包括若干CAN信号的信号配置信息;根据CAN信号配置数据库中的每个CAN信号的信号配置信息,生成CAN通信配置代码及特性文件;基于CAN通信配置代码,在控制器中配置CAN信号配置数据库中所有CAN信号的信号配置信息后进行通信;其中,特性文件用于修改控制器中配置的信号配置信息,以使控制器根据修改后的信号配置信息进行通信。本申请实施例通过预先构建的CAN信号配置数据库自动生成CAN通信配置代码及特性文件,生成的特性文件能够实现在通信过程中直接修改控制器中配置的信号配置信息的功能,因此,无需由开发人员修改代码后再进行重新配置,修改过程简单,避免了代码冗余的问题。
具体而言,图1为本申请实施例所提供的一种控制器局域网络通信方法流程示意图。
如图1所示,该控制器局域网络通信方法包括以下的步骤:
步骤S100、获取预先构建的CAN信号配置数据库,CAN信号配置数据库包括若干CAN信号的信号配置信息。
控制器获取预先构建的CAN信号配置数据库。可以理解的是,在车辆上可以存在多个控制器,每个控制器均可以使用本申请实施例的方法进行通信,每个控制器均对应有CAN信号配置数据库,因此,只需一个版本的软件就能够支持不同版本的控制器。
具体地,研发人员根据当前控制器的CAN通信核心系统代码接口需求及内部数据结构确认CAN信号配置数据库字段内容,并开发Simulink TLC脚本实现以下功能:解析CAN信号配置数据库,校验CAN信号配置数据库,CAN通信配置代码生成,特性文件生成。CAN通信核心系统代码为了能够迭代处理所有CAN信号,需要从CAN通信配置代码读取CAN信号定义,接口需求具体指两部分代码如何传递CAN信号定义信息。内部数据结构是指为了能够由CAN通信核心系统代码迭代处理CAN通信配置代码中所有的CAN信号,由本申请实施例实现的能够完整定义一个CAN信号的结构体,CAN信号配置数据库的字段定义是这个结构体字段的子集。
在本申请实施例中,每个CAN信号对应的信号配置信息的配置项包括:CAN网段标识符、CAN报文标识符、CAN信号名称、CAN报文长度、CAN信号开关、CAN信号传输方向、CAN信号传输周期、CAN信号起始位、CAN信号长度、CAN信号符号标志、CAN信号E2E标志位、CAN信号E2E配置信息以及CAN信号初始值。
具体地,CAN网段标识符、CAN报文标识符、CAN信号名称、CAN信号E2E标志位和CAN信号初始值由研发人员填写,CAN报文长度、CAN信号开关、CAN信号传输方向、CAN信号传输周期、CAN信号起始位、CAN信号长度、CAN信号符号标志、CAN信号E2E配置信息都可以通过检索CAN通信矩阵自动生成。即,CAN信号配置数据库是研发人员根据需求从CAN通信矩阵中提取需要的CAN信号定义,而CAN通信矩阵包含整车所有控制器CAN信号定义,信号数量较多,不同整车项目区别较大,且往往存在格式不统一问题,无法用于代码自动生成。
本申请实施例可以使用Excel表格保存CAN信号配置数据库,CAN信号配置数据库以行为单位,一行代表一个具体的CAN信号,可以自由增减。CAN信号配置数据库校验确保CAN信号定义无冲突,CAN通信配置代码及特性文件自动生成提供了CAN通信配置数据的可标定功能。
本申请实施例通过预先设置当前控制器的每个CAN信号对应的信号配置信息,使得CAN信号配置数据库中的信号数量较少,不同整车项目变动较少,同时有严格的格式检查,可以用于代码自动生成。
本申请实施例的控制器局域网络通信方法还包括:
步骤S200、根据CAN信号配置数据库中的每个CAN信号的信号配置信息,生成CAN通信配置代码及特性文件。
CAN通信配置代码用于配置整车控制器与CAN总线进行通信的参数和规则,包括发送和接收消息的设置、消息ID的定义、数据格式的规定等,用于确保整车控制器能够正确地与其他模块或设备进行CAN通信。
按照图2所示流程图,运行Simulink TLC脚本,包括:步骤A1、解析CAN信号配置数据库;步骤A2、校验CAN信号配置数据库,步骤A3、生成CAN通信配置代码;步骤A4、生成A2L文件;步骤A5、格式化生成文件。
本申请实施例通过自动生成CAN通信配置代码和A2L文件,当CAN信号数量较多(往往超过一千个)时显著节约了时间,同时降低了对研发人员能力要求,无需了解CAN通信原理、C代码,只需了解CAN通信配置数据库填写规则即可进行开发。针对不同CAN通信矩阵,结合A2L文件,可在同一版本软件上直接修改CAN信号定义,无需重新开发软件,研发人员维护一版软件即可应用于不同的控制器,提高了开发效率。
在本申请实施例中,步骤S200具体包括:
步骤S210、将CAN信号配置数据库中每个CAN信号的信号配置信息转换为对应的结构体变量,每个信号配置信息的配置项对应结构体变量中的一个字段;
步骤S220、各个结构体变量形成配置结构体数组,以使配置结构体数组中包括CAN信号配置数据库中所有CAN信号的信号配置信息;
步骤S230、根据配置结构体数组生成CAN通信配置代码和特性文件。
具体地,生成配置结构体数组后再生成代码,可以使得配置数据与代码逻辑分离,这样,本申请实施例将信号配置信息存储在配置结构体数组中,然后再生成CAN通信配置代码和特性文件,在进行信号配置信息修改时,可以变得更加简单和直观,而不必深入代码逻辑进行修改。
在本申请实施例中,步骤S230具体包括:
步骤S231、获取CAN信号配置数据库中的CAN信号配置数量,根据配置结构体数组和CAN信号配置数量得到具有接收信号处理逻辑和发送信号处理逻辑的CAN通信配置代码;
步骤S232、确定配置结构体数组中的各个字段在控制器的数据类型、在控制器的保存地址以及修改取值范围,并对各个字段分配对应的标识信息;
步骤S233、建立标识信息与对应的数据类型、保存地址及修改取值范围之间的映射关系,根据各个映射关系生成特性文件。
具体地,读取配置数据库Excel文件中所有行,逐行转换为结构体变量,包含所有信号配置信息,所有行处理完成后输出CAN信号配置结构体数组。本申请实施例确定配置结构体数组中的各个字段在控制器的数据类型、在控制器的保存地址以及修改取值范围,并分配唯一的标识信息,例如名称、编号等,这是由于保存地址在特定的情况下有可能会有变化,因此,利用标识信息对字段进行标识。在软件运行过程中,即在车辆上即可实现实时修改CAN信号的信号配置信息,进而实现一版软件灵活支持多个版本的CAN信号配置数据库。
本申请实施例对各个字段进行了标识,并建立了标识与数据类型、保存地址及修改取值范围的映射关系,以便于在修改时根据映射关系查找待修改字段的各个信息,提高了字段查找的准确性。
在本申请实施例中,步骤S250之后还包括:当接收到对目标字段的修改指令时,根据特性文件确定目标字段对应的目标标识信息;查找映射关系,得到与目标标识信息对应的目标数据类型、目标保存地址及目标修改取值范围;根据目标数据类型、目标保存地址及目标修改取值范围对控制器中信号配置信息的目标字段进行修改;其中,特性文件为A2L文件。
具体地,A2L(ASAP2 Library)文件是一种描述ECU(Electronic Control Unit)参数和测量值的文件格式,通常用于描述整车控制器软件中的标定参数、测量值、数据结构等信息,具有标定功能,因此通过A2L文件提供了标定功能,不同项目可共用软件。本申请实施例利用A2L文件对控制器中的字段进行的修改是临时修改,不需要改变CAN通信配置代码,因此,可以由工程师在实车上进行临时修改。当临时修改完成后,在断电之前会一直保持修改后的信号配置信息。若需要永久修改,则可以上报至研发人员进行代码修改。可以使用INCA或CANape等常用的汽车标定工具解析A2L文件,以及修改当前控制器中的信号配置信息。
另外,对当前控制器中的信号配置信息进行修改包括:修改已有CAN信号的信号配置信息的字段,以及增加新的CAN信号的信号配置信息的字段。具体地,在CAN信号配置数据库中预留有无效CAN信号对应的无效配置项,对这些配置项进行无效数据占位,因此,在控制器中也具有无效CAN信号的信号配置信息的无效字段占位,在增加CAN信号的信号配置信息时,将无效字段修改为待增加CAN信号的各个字段,实现CAN信号的增加功能。
本申请实施例利用CAN信号配置数据库生成对应的特性文件,特性文件中的标识信息、数据类型、保存地址及修改取值范围能够用于对控制器中的字段进行修改,提高了修改灵活性和方便性。
在本申请实施例中,步骤S200之前还包括:按照预设校验项目对CAN信号配置数据库进行校验;其中,预设校验项目包括:CAN信号所属报文长度有效性校验、CAN信号起始位有效性校验、CAN信号长度有效性校验、CAN信号传输周期校验、CAN信号E2E配置有效性校验、CAN报文传输周期一致性校验、CAN报文长度一致性校验、CAN报文传输方向一致性校验以及CAN报文信号定义一致性校验。
具体地,如图3所示,各个预设校验项目进行串行校验,校验不通过,则直接停止并输出错误提示供研发人员进行问题排查。本申请实施例对CAN信号配置数据库进行校验,进而提高了通信的准确性。
本申请实施例的控制器局域网络通信方法还包括:
步骤S300、基于CAN通信配置代码,在控制器中配置CAN信号配置数据库中所有CAN信号的信号配置信息后进行通信;其中,特性文件用于修改控制器中配置的信号配置信息,以使控制器根据修改后的信号配置信息进行通信。
本申请实施例按照图4所示进行CAN通信核心系统状态跳转,主要分为以下状态:初始化,就绪,运行,故障。其中初始化为默认状态,完成所有初始化流程后跳转至就绪状态,应用层通过接口实现就绪、运行状态的双向跳转,初始化过程中若检测到故障将跳转至故障状态,并记录详细故障信息。
具体地,结合CAN通信配置代码,人工实现CAN通信核心系统代码,实现以下功能:CAN通信接口代码初始化,CAN驱动层数据交互接口,应用层数据交互接口,CAN通信异常检测机制,CAN信号数据处理机制。其中,CAN通信配置代码是由代码存储的具体CAN信号定义,是CAN信号配置数据库的代码体现,代码结构相对简单,不同控制器有所区别,是CAN通信核心系统代码的输入。CAN通信核心系统代码是由人工实现的CAN通信接口代码,负责CAN通信接口的核心功能,用于迭代处理CAN通信配置代码中定义的所有CAN信号,不同的控制器之间内容一致。
CAN驱动层数据交互接口规范了CAN通信核心系统与CAN驱动层的接口,当CAN驱动层发生变更或整体替换时,只需重新实现相应接口,无需修改上层代码即可正常工作,主要包括:CAN报文接收标志位读取接口,CAN报文接收标志位清除接口,CAN报文原始数据读取接口,CAN报文原始数据设置接口。应用层数据交互接口规范了CAN通信核心系统与应用层的接口,使得应用层与具体的CAN通信矩阵解耦,主要包括:CAN信号数据读取接口,CAN信号数据设置接口,CAN信号通信状态标志位读取接口。CAN通信异常检测机制规范了CAN通信异常检测内容:报文超时,报文丢帧,报文数据错误;CAN信号数据处理机制规范了通信异常处理机制:针对不同类型的错误,对CAN信号数据做不同的处理。
本申请实施例基于CAN通信配置代码和A2L文件对控制器的通信功能进行初始化,进而实现针对性的优化。
在一种实施例中,预设初始化项目包括:CAN通信核心系统全局配置初始化、CAN信号初始化、CAN报文初始化、CAN网络初始化、CAN驱动层初始化以及E2E校验初始化。如图5所示,初始化步骤包括:步骤B1、CAN通信核心系统全局配置初始化;步骤B2、CAN信号初始化;步骤B3、CAN报文初始化;步骤B4、CAN网络初始化;步骤B5、CAN驱动层初始化;步骤B6、E2E校验初始化。
CAN通信核心系统全局配置初始化的字段包括:CAN网段数量上限、CAN报文数量上限、CAN信号数量上限以及CAN报文E2E校验异常计数阈值。CAN报文E2E校验异常计数阈值的作用是校验异常计数达到阈值后才对外输出校验异常标志位,此机制是为了降低误报概率。
CAN信号初始化步骤将迭代处理CAN通信配置代码中所有的CAN信号,CAN信号配置数据库中所有CAN信号均有唯一对应的CAN信号状态。CAN信号初始化的字段包括:CAN信号开关、CAN信号数据缓存区、CAN信号通信状态标志位、CAN信号E2E校验异常计数以及CAN信号配置数据库索引。CAN信号开关、CAN信号数据缓存区字段数据来源于对应的CAN信号配置字段;为了提高CAN通信接口代码运行效率,CAN信号初始化将根据CAN信号的CAN网段标识符、CAN报文标识符、CAN信号传输方向、CAN信号传输周期、CAN信号起始位、CAN信号长度、CAN信号符号标志属性进行排序。为了保证CAN信号配置数据库的正确性,初始化代码将按图3所示进行CAN信号配置数据库校验,并提供标定开关关闭此功能以缩短初始化时间。
CAN报文初始化步骤将所有CAN信号按所属报文分组,并初始化CAN报文状态。CAN报文初始化的字段包括:CAN网段标识符、CAN报文标识符、CAN报文长度、CAN报文开关、CAN报文传输方向、CAN报文传输周期以及CAN信号集合。
CAN网络初始化步骤将所有CAN报文按照CAN网段ID、CAN报文传输方向分组,并初始化CAN网段状态,CAN网络初始化的字段包括:CAN网段标识符和CAN报文集合。
本申请实施例通过对控制器的通信功能进行各个项目的依次初始化,进而实现针对性的优化。
在本申请实施例中,基于CAN通信配置代码,在控制器中配置CAN信号配置数据库中所有CAN信号的信号配置信息后进行通信,包括:在通信时处理当前待处理接收报文,根据当前待处理接收报文中各个CAN信号对应的CAN信号开关确定当前待处理接收报文的CAN报文开关;若当前待处理接收报文的CAN报文开关为打开,则调用CAN驱动层的CAN报文接收标志位读取接口,更新CAN报文超时标志位;调用CAN驱动层的CAN报文原始数据读取接口,获取CAN报文原始数据;对CAN报文原始数据进行CAN信号E2E校验,并更新CAN报文通信状态标志位;遍历解析CAN报文原始数据中的所有CAN信号,根据CAN报文通信状态标志位对应的CAN信号通信状态,对CAN信号数据缓存区进行填充,以供应用层使用。
在一个实施例中,如图6所示,CAN报文接收处理流程包括:
步骤C1、是否为运行态;若是,则执行步骤C2;若否,则结束流程;
步骤C2、获取当前待处理接收报文;
步骤C3、判断报文开关是否打开;若是,则执行步骤C4;若否,则跳转至步骤C11;
步骤C4、更新CAN报文超时标志位;
步骤C5、获取CAN报文原始数据;
步骤C6、更新CAN报文通信状态标志位;
步骤C7、解析CAN报文CAN信号;
步骤C8、判断CAN是否有效;若是,则执行步骤C9;若否,则执行步骤C10;
步骤C9、原始数据填充CAN信号数据缓存区;
步骤C10、默认数据填充CAN信号数据缓存区;
步骤C11、判断是否为最后一帧报文;若是,则结束流程;若否,则返回步骤C2。
具体地,首先检测系统状态是否为运行态,否则直接退出流程,若为运行态则迭代处理所有CAN网段的所有接收CAN报文。其中单帧报文接收处理流程如下:确认当前CAN报文状态中的CAN报文开关是否打开,若打开则继续,否则跳过当前CAN报文;若需要处理,则调用CAN驱动层CAN报文接收标志位读取接口更新CAN报文超时标志位;调用CAN驱动层CAN报文原始数据读取接口获取CAN报文原始数据,获取CAN报文原始数据后进行CAN信号E2E校验,并更新CAN报文通信状态标志位;最后遍历解析当前CAN报文所有CAN信号,解析后综合考虑AN信号通信状态,对CAN信号数据缓存区进行填充,供应用层使用。
本申请实施例通过在接收报文处理流程中增加报文级开关和信号级开关,实现了上层实时调整报文开关的开闭,进而实现适配不同的控制器;并且,本申请实施例可以实时更新CAN报文通信状态标志位,无需手动增加CAN报文通信状态标志位对应的代码。
在本申请实施例中,基于CAN通信配置代码,在控制器中配置CAN信号配置数据库中所有CAN信号的信号配置信息后进行通信,还包括:在通信时处理当前待处理发送报文,根据当前待处理发送报文中各个CAN信号对应的CAN信号开关确定当前待处理发送报文的CAN报文开关;若当前待处理发送报文的CAN报文开关为打开,则当达到发送周期时,遍历当前待处理发送报文对应的所有CAN信号数据缓存区,根据CAN信号数据缓存区对应的CAN信号起始位和CAN信号长度填充CAN报文缓存区;根据当前待处理发送报文的E2E配置信息填充E2E信息,并调用CAN驱动层的CAN报文原始数据设置接口进行报文发送。
在一个实施例中,如图7所示,CAN报文发送处理流程包括:
步骤D1、是否为运行态;若是,则执行步骤D2;若否,则结束流程;
步骤D2、获取当前待处理发送报文;
步骤D3、判断报文开关是否打开;若是,则执行步骤D4;若否,则跳转至步骤D8;
步骤D4、是否达到发送周期;若是,则执行步骤D5;若否,则跳转至步骤D8;
步骤D5、填充CAN报文缓存区;
步骤D6、填充E2E信息;
步骤D7、发送报文;
步骤D8、判断是否为最后一帧报文;若是,则结束流程;若否,则返回步骤D2。
具体地,首先检测系统状态是否为运行态,否则直接退出流程,若为运行态则迭代处理所有CAN网段的所有发送CAN报文;其中单帧报文接收处理流程如下:确认当前CAN报文状态中的CAN报文开关是否打开,若打开则继续,否则跳过当前CAN报文;若需要处理,继续判断当前报文是否达到发送周期,若未达到发送周期则跳过当前报文,达到发送周期后,遍历所有CAN信号数据缓存区,根据对应的CAN信号起始位、CAN信号长度填充CAN报文缓存区;信号处理完成后根据当前报文E2E配置信息填充E2E信息;最后调用CAN驱动层CAN报文原始数据设置接口进行报文发送。
本申请实施例通过在发送报文处理流程中增加报文级开关和信号级开关,实现了上层实时调整报文开关的开闭,进而实现适配不同的控制器;并且,本申请实施例可以填充E2E信息,用于在发送报文前进行校验,即,通过增加CAN通信端到端校验(E2E)机制,实现CAN通信异常处理,并且无需手动增加填充E2E信息对应的代码。
如图8所示,本申请实施例对应提供一种控制器局域网络通信装置10,包括:
获取模块100,用于获取预先构建的CAN信号配置数据库,CAN信号配置数据库包括若干CAN信号的信号配置信息;
生成模块200,用于根据CAN信号配置数据库中的每个CAN信号的信号配置信息,生成CAN通信配置代码及特性文件;
通信模块300,用于基于CAN通信配置代码,在控制器中配置CAN信号配置数据库中所有CAN信号的信号配置信息后进行通信;
其中,特性文件用于修改控制器中配置的信号配置信息,以使控制器根据修改后的信号配置信息进行通信。
可选地,每个CAN信号对应的信号配置信息的配置项包括:CAN网段标识符、CAN报文标识符、CAN信号名称、CAN报文长度、CAN信号开关、CAN信号传输方向、CAN信号传输周期、CAN信号起始位、CAN信号长度、CAN信号符号标志、CAN信号E2E标志位、CAN信号E2E配置信息以及CAN信号初始值中的至少一个。
可选地,生成模块包括:
转换单元,用于将CAN信号配置数据库中每个CAN信号的信号配置信息转换为对应的结构体变量,每个信号配置信息的配置项对应结构体变量中的一个字段;
数组形成单元,用于各个结构体变量形成配置结构体数组,以使配置结构体数组中包括CAN信号配置数据库中所有CAN信号的信号配置信息;
生成单元,用于根据配置结构体数组生成CAN通信配置代码和特性文件。
可选地,生成单元包括:
代码生成子单元,用于获取CAN信号配置数据库中的CAN信号配置数量,根据配置结构体数组和CAN信号配置数量得到具有接收信号处理逻辑和发送信号处理逻辑的CAN通信配置代码;
确定子单元,用于确定配置结构体数组中的各个字段在控制器的数据类型、在控制器的保存地址以及修改取值范围,并对各个字段分配对应的标识信息;
文件生成子单元,用于建立标识信息与对应的数据类型、保存地址及修改取值范围之间的映射关系,根据各个映射关系生成特性文件。
可选地,控制器局域网络通信装置还包括:
接收单元,用于当接收到对目标字段的修改指令时,根据特性文件确定目标字段对应的目标标识信息;
查找单元,用于查找映射关系,得到与目标标识信息对应的目标数据类型、目标保存地址及目标修改取值范围;
修改单元,用于根据目标数据类型、目标保存地址及目标修改取值范围对控制器中信号配置信息的目标字段进行修改;
其中,特性文件为A2L文件。
可选地,控制器局域网络通信装置还包括:
校验单元,用于按照预设校验项目对CAN信号配置数据库进行校验;
其中,预设校验项目包括:CAN信号所属报文长度有效性校验、CAN信号起始位有效性校验、CAN信号长度有效性校验、CAN信号传输周期校验、CAN信号E2E配置有效性校验、CAN报文传输周期一致性校验、CAN报文长度一致性校验、CAN报文传输方向一致性校验以及CAN报文信号定义一致性校验。
可选地,通信模块包括:
报文接收单元,用于在通信时处理当前待处理接收报文,根据当前待处理接收报文中各个CAN信号对应的CAN信号开关确定当前待处理接收报文的CAN报文开关;
第一调用单元,用于若当前待处理接收报文的CAN报文开关为打开,则调用CAN驱动层的CAN报文接收标志位读取接口,更新CAN报文超时标志位;
原始数据获取单元,用于调用CAN驱动层的CAN报文原始数据读取接口,获取CAN报文原始数据;
校验单元,用于对CAN报文原始数据进行CAN信号E2E校验,并更新CAN报文通信状态标志位;
第一填充单元,用于遍历解析CAN报文原始数据中的所有CAN信号,根据CAN报文通信状态标志位对应的CAN信号通信状态,对CAN信号数据缓存区进行填充,以供应用层使用。
可选地,通信模块还包括:
报文发送单元,用于在通信时处理当前待处理发送报文,根据当前待处理发送报文中各个CAN信号对应的CAN信号开关确定当前待处理发送报文的CAN报文开关;
第二填充单元,用于若当前待处理发送报文的CAN报文开关为打开,则当达到发送周期时,遍历当前待处理发送报文对应的所有CAN信号数据缓存区,根据CAN信号数据缓存区对应的CAN信号起始位和CAN信号长度填充CAN报文缓存区;
第二调用单元,用于根据当前待处理发送报文的E2E配置信息填充E2E信息,并调用CAN驱动层的CAN报文原始数据设置接口进行报文发送。
需要说明的是,前述对控制器局域网络通信方法实施例的解释说明也适用于该实施例的控制器局域网络通信装置,此处不再赘述。
根据本申请实施例提出的控制器局域网络通信装置,本申请通过获取预先构建的CAN信号配置数据库,CAN信号配置数据库包括若干CAN信号的信号配置信息;根据CAN信号配置数据库中的每个CAN信号的信号配置信息,生成CAN通信配置代码及特性文件;基于CAN通信配置代码,在控制器中配置CAN信号配置数据库中所有CAN信号的信号配置信息后进行通信;其中,特性文件用于修改控制器中配置的信号配置信息,以使控制器根据修改后的信号配置信息进行通信。本申请实施例通过预先构建的CAN信号配置数据库自动生成CAN通信配置代码及特性文件,生成的特性文件能够实现在通信过程中直接修改控制器中配置的信号配置信息的功能,因此,无需由开发人员修改代码后再进行重新配置,修改过程简单,避免了代码冗余的问题。
图9为本申请实施例提供的控制器的结构示意图。该控制器可以包括:
存储器501、处理器502及存储在存储器501上并可在处理器502上运行的计算机程序。
处理器502执行程序时实现上述实施例中提供的控制器局域网络通信方法。
进一步地,控制器还包括:
通信接口503,用于存储器501和处理器502中的通信。
存储器501,用于存放可在处理器502上运行的计算机程序。
存储器501可能包含高速RAM存储器,也可能还包括非易失性存储器 (non -volatile memory),例如至少一个磁盘存储器。
如果存储器501、处理器502和通信接口503独立实现,则通信接口503、存储器501和处理器502可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连 (Periphera lComponent,简称为PCI)总线或扩展工业标准体系结构(Extended Industry StandardArchitecture,简称为EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
可选地,在具体实现上,如果存储器501、处理器502及通信接口503,集成在一块芯片上实现,则存储器501、处理器502及通信接口503可以通过内部接口完成相互间的通信。
处理器502可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上的控制器局域网络通信方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或N个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“N个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或N个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备读取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或N个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM), 可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器 (CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,N个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (11)
1.一种控制器局域网络通信方法,其特征在于,包括以下步骤:
获取预先构建的CAN信号配置数据库,所述CAN信号配置数据库包括若干CAN信号的信号配置信息;
根据所述CAN信号配置数据库中的每个CAN信号的信号配置信息,生成CAN通信配置代码及特性文件;
基于所述CAN通信配置代码,在控制器中配置所述CAN信号配置数据库中所有CAN信号的信号配置信息后进行通信;
其中,所述特性文件用于修改控制器中配置的信号配置信息,以使控制器根据修改后的信号配置信息进行通信。
2.如权利要求1所述的控制器局域网络通信方法,其特征在于,每个CAN信号对应的信号配置信息的配置项包括:CAN网段标识符、CAN报文标识符、CAN信号名称、CAN报文长度、CAN信号开关、CAN信号传输方向、CAN信号传输周期、CAN信号起始位、CAN信号长度、CAN信号符号标志、CAN信号E2E标志位、CAN信号E2E配置信息以及CAN信号初始值中的至少一个。
3.如权利要求1所述的控制器局域网络通信方法,其特征在于,根据所述CAN信号配置数据库中的每个CAN信号的信号配置信息,生成CAN通信配置代码及特性文件,包括:
将所述CAN信号配置数据库中每个CAN信号的信号配置信息转换为对应的结构体变量,每个所述信号配置信息的配置项对应所述结构体变量中的一个字段;
各个所述结构体变量形成配置结构体数组,以使所述配置结构体数组中包括所述CAN信号配置数据库中所有CAN信号的信号配置信息;
根据所述配置结构体数组生成CAN通信配置代码和特性文件。
4.如权利要求3所述的控制器局域网络通信方法,其特征在于,根据所述配置结构体数组生成CAN通信配置代码和特性文件,包括:
获取所述CAN信号配置数据库中的CAN信号配置数量,根据所述配置结构体数组和CAN信号配置数量得到具有接收信号处理逻辑和发送信号处理逻辑的CAN通信配置代码;
确定所述配置结构体数组中的各个字段在控制器的数据类型、在控制器的保存地址以及修改取值范围,并对各个字段分配对应的标识信息;
建立所述标识信息与对应的所述数据类型、保存地址及修改取值范围之间的映射关系,根据各个所述映射关系生成特性文件。
5.如权利要求4所述的控制器局域网络通信方法,其特征在于,建立所述标识信息与对应的所述数据类型、保存地址及修改取值范围之间的映射关系,根据各个所述映射关系生成特性文件之后,还包括:
当接收到对目标字段的修改指令时,根据所述特性文件确定所述目标字段对应的目标标识信息;
查找所述映射关系,得到与所述目标标识信息对应的目标数据类型、目标保存地址及目标修改取值范围;
根据所述目标数据类型、目标保存地址及目标修改取值范围对控制器中信号配置信息的目标字段进行修改;
其中,所述特性文件为A2L文件。
6.如权利要求1所述的控制器局域网络通信方法,其特征在于,根据所述CAN信号配置数据库中的每个CAN信号的信号配置信息,生成CAN通信配置代码及特性文件之前,还包括:
按照预设校验项目对所述CAN信号配置数据库进行校验;
其中,所述预设校验项目包括:CAN信号所属报文长度有效性校验、CAN信号起始位有效性校验、CAN信号长度有效性校验、CAN信号传输周期校验、CAN信号E2E配置有效性校验、CAN报文传输周期一致性校验、CAN报文长度一致性校验、CAN报文传输方向一致性校验以及CAN报文信号定义一致性校验。
7.如权利要求1所述的控制器局域网络通信方法,其特征在于,基于所述CAN通信配置代码,在控制器中配置所述CAN信号配置数据库中所有CAN信号的信号配置信息后进行通信,包括:
在通信时处理当前待处理接收报文,根据所述当前待处理接收报文中各个CAN信号对应的CAN信号开关确定当前待处理接收报文的CAN报文开关;
若当前待处理接收报文的CAN报文开关为打开,则调用CAN驱动层的CAN报文接收标志位读取接口,更新CAN报文超时标志位;
调用CAN驱动层的CAN报文原始数据读取接口,获取CAN报文原始数据;
对所述CAN报文原始数据进行CAN信号E2E校验,并更新CAN报文通信状态标志位;
遍历解析所述CAN报文原始数据中的所有CAN信号,根据CAN报文通信状态标志位对应的CAN信号通信状态,对CAN信号数据缓存区进行填充,以供应用层使用。
8.如权利要求1所述的控制器局域网络通信方法,其特征在于,基于所述CAN通信配置代码,在控制器中配置所述CAN信号配置数据库中所有CAN信号的信号配置信息后进行通信,还包括:
在通信时处理当前待处理发送报文,根据所述当前待处理发送报文中各个CAN信号对应的CAN信号开关确定当前待处理发送报文的CAN报文开关;
若当前待处理发送报文的CAN报文开关为打开,则当达到发送周期时,遍历当前待处理发送报文对应的所有CAN信号数据缓存区,根据CAN信号数据缓存区对应的CAN信号起始位和CAN信号长度填充CAN报文缓存区;
根据当前待处理发送报文的E2E配置信息填充E2E信息,并调用CAN驱动层的CAN报文原始数据设置接口进行报文发送。
9.一种控制器局域网络通信装置,其特征在于,包括:
获取模块,用于获取预先构建的CAN信号配置数据库,所述CAN信号配置数据库包括若干CAN信号的信号配置信息;
生成模块,用于根据所述CAN信号配置数据库中的每个CAN信号的信号配置信息,生成CAN通信配置代码及特性文件;
通信模块,用于基于所述CAN通信配置代码,在控制器中配置所述CAN信号配置数据库中所有CAN信号的信号配置信息后进行通信;
其中,所述特性文件用于修改控制器中配置的信号配置信息,以使控制器根据修改后的信号配置信息进行通信。
10.一种控制器,其特征在于,所述控制器包括存储器、处理器及存储在所述存储器中并可在所述处理器上运行的控制器局域网络通信程序,所述处理器执行所述控制器局域网络通信程序时,实现如权利要求1-8任一项所述的控制器局域网络通信方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有控制器局域网络通信程序,所述控制器局域网络通信程序被处理器执行时,实现如权利要求1-8任一项所述的控制器局域网络通信方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410126591.0A CN117955828A (zh) | 2024-01-30 | 2024-01-30 | 一种控制器局域网络通信方法、装置、控制器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410126591.0A CN117955828A (zh) | 2024-01-30 | 2024-01-30 | 一种控制器局域网络通信方法、装置、控制器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117955828A true CN117955828A (zh) | 2024-04-30 |
Family
ID=90801063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410126591.0A Pending CN117955828A (zh) | 2024-01-30 | 2024-01-30 | 一种控制器局域网络通信方法、装置、控制器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117955828A (zh) |
-
2024
- 2024-01-30 CN CN202410126591.0A patent/CN117955828A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108279916B (zh) | 电子控制单元程序更新方法和装置 | |
CN111488165B (zh) | 车辆ecu通过脚本升级的方法及其系统 | |
WO2021203604A1 (zh) | 车辆组件的升级检测方法、装置、计算机设备及存储介质 | |
CN111273931B (zh) | 一种车载行车电脑并行升级方法及装置 | |
CN113608518B (zh) | 数据生成方法、装置、终端设备及介质 | |
CN115657521A (zh) | 解析can报文数据的方法、装置、车辆及存储介质 | |
CN116578319A (zh) | 固件升级方法及装置、文件生成方法及装置 | |
CN112596447B (zh) | Ecu刷写数据长度的确定方法、装置、电子设备及介质 | |
CN117955828A (zh) | 一种控制器局域网络通信方法、装置、控制器及存储介质 | |
CN111988194B (zh) | 汽车线路的诊断方法及装置 | |
CN113872971B (zh) | 新能源车联网通讯协议的升级方法、装置及云端平台 | |
CN113359657A (zh) | Ecu诊断配置码校验方法及其系统、电子控制单元 | |
CN115225481B (zh) | 网关诊断路由配置方法、装置、车载网关、车辆和介质 | |
CN112835598A (zh) | 一种汽车ecu刷写方法及其系统、计算机可读存储介质 | |
CN114488997B (zh) | Ecu刷写的方法、装置、电子设备及存储介质 | |
CN115080085A (zh) | 一种用以解决oem中eol标定的方法及系统 | |
CN115291907A (zh) | 车辆升级方法、装置及系统 | |
CN115470108A (zh) | 车辆的网关路由测试方法、装置、电子设备及存储介质 | |
CN115118577A (zh) | 远程升级异常原因确定方法、装置、电子设备及存储介质 | |
CN107438048B (zh) | 车载控制器信号的分配策略生成方法、装置及车辆 | |
CN116723124A (zh) | 车联网平台测试方法、装置、电子设备及存储介质 | |
US20230254322A1 (en) | Verification of message patterns for vehicle ecus | |
WO2024109535A1 (zh) | 通信交互方法、装置、设备及存储介质 | |
CN116909609B (zh) | 车载智能设备的软件升级方法、装置及车载智能设备 | |
CN116094531B (zh) | Sent信号接收系统、芯片 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |