基于CAN总线实现多控制器同步写入标定数据的系统及方法转让专利

申请号 : CN201210083224.4

文献号 : CN102621955B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张宗哲陈晓青沈准

申请人 : 东风电子科技股份有限公司

摘要 :

本发明涉及一种基于CAN总线实现多控制器同步写入标定数据功能的系统,包括多个控制器、上位机和电源网络,上位机和各控制器均连接于CAN总线,电源网络连接并向各控制器提供彼此不同的供电电压,且各控制器均具电压检测功能。本发明还涉及基于CAN总线实现多控制器同步写入标定数据功能的方法,该方法中,各控制器检测各自的电源电压,并将各自的电源电压设置为CAN通信ID;上位机基于各个CAN通信ID确定CAN总线上各控制器的连接情况;并保证上位机和各控制器之间的通信相互协调有序,进而实现多个控制器标定数据的同时写入,且本发明的基于CAN总线实现多控制器同步写入标定数据功能的系统结构简单,方法应用简便,实现成本低廉,应用范围也较为广泛。

权利要求 :

1.一种基于CAN总线实现多控制器同步写入标定数据功能的系统,其特征在于,所述的系统包括多个控制器、上位机和电源网络,所述的各控制器均连接于所述的CAN总线,并通过该CAN总线连接至所述的上位机,所述的各控制器还连接至所述的电源网络,所述的电源网络用以向所述的各控制器提供彼此不同的供电电压,且所述的各控制器均具有电压检测功能,所述的各控制器均具有电压检测单元,以及与所述的电压检测单元连接的存储单元和数模转换单元,所述的电压检测单元还连接所述的电源网络,所述的存储单元通过CAN总线连接至所述的上位机。

2.根据权利要求1所述的基于CAN总线实现多控制器同步写入标定数据功能的系统,其特征在于,所述的电源网络为电阻分压电源网络,所述的电阻分压电源网络根据所述的各控制器的供电范围以及静态消耗电流确定电源网络中分压电阻的功率范围,并确定所述的各控制器的电源分压值。

3.一种利用权利要求1所述的系统实现基于CAN总线的多控制器同步写入标定数据的方法,其特征在于,所述的方法包括以下步骤:(1)所述的各控制器检测各自的电源电压;

(2)所述的各控制器根据各自的电源电压设置各自的CAN通信ID;

(3)所述的上位机通过CAN总线向所述的各控制器发送连接命令;

(4)所述的各控制器接收到所述的连接命令后,通过所述的CAN总线向所述的上位机返回所述的CAN通信ID;

(5)所述的上位机根据获得的各个CAN通信ID确定CAN总线上各控制器的连接情况;

(6)所述的上位机通过CAN总线向所述的各控制器同时发送标定数据;

(7)所述的上位机通过CAN总线向所述的各控制器发送数据发送完毕命令及校验码;

(8)所述的各控制器接收到数据发送完毕命令后,根据所述的校验码对所述的标定数据进行校验,并通过CAN总线向所述的上位机返回状态信息;

(9)所述的上位机接收到所述的状态信息后,确定各个控制器的状态。

4.根据权利要求3所述的基于CAN总线实现多控制器同步写入标定数据功能的方法,其特征在于,所述的各控制器均具有电压检测单元,以及与所述的电压检测单元连接的存储单元和数模转换单元,所述的电压检测单元还连接所述的电源网络,所述的存储单元通过CAN总线连接至所述的上位机,所述的步骤(2)具体包括以下步骤:(21)所述的各控制器通过各自的电压检测单元检测各自的供电电压;

(22)所述的数模转换单元将所述的供电电压转换为数字量;

(23)所述的各控制器将所述的数字量设置为各自的CAN通信ID。

5.根据权利要求4所述的基于CAN总线实现多控制器同步写入标定数据功能的方法,其特征在于,CAN通信ID的长度为标准帧长度或是扩展帧长度。

6.根据权利要求3所述的基于CAN总线实现多控制器同步写入标定数据功能的方法,其特征在于,所述的步骤(5)具体包括以下步骤:(51)所述的上位机根据CAN总线ID仲裁优先级机制以及重发机制接收各控制器通过CAN总线返回的CAN通信ID并计数;

(52)所述的上位机根据所述的计数和所接收的各CAN通信ID确定CAN总线上各控制器的连接情况。

7.根据权利要求3所述的基于CAN总线实现多控制器同步写入标定数据功能的方法,其特征在于,所述的校验码为CRC校验码。

8.根据权利要求7所述的基于CAN总线实现多控制器同步写入标定数据功能的方法,其特征在于,所述的步骤(8)具体包括以下步骤:(81)所述的各控制器接收到数据发送完毕命令和CRC校验码;

(82)所述的各控制器对接收到的标定数据进行CRC校验,并判断校验结果是否和CRC校验码一致,若一致,则进入步骤(83),若不一致,则进入步骤(84);

(83)所述的控制器存储标定数据,并通过所述的CAN总线向所述的上位机返回接收数据成功命令;

(84)所述的控制器通过所述的CAN总线向所述的上位机返回接收数据失败命令。

说明书 :

基于CAN总线实现多控制器同步写入标定数据的系统及方

技术领域

[0001] 本发明涉及网络技术领域,特别涉及CAN总线技术领域,具体是指一种基于CAN总线实现多控制器同步写入标定数据的系统及方法。

背景技术

[0002] 标定数据的写入在控制器生产流水线中扮演着重要的角色,由于控制器的功能、性能不同,每种控制器中写入的标定数据的参数也有所不同。但对于同一种控制器,写入的数据是一样的。目前流水线中的标定数据写入方式还是以人力手工逐个控制器写入数据的方式为主,这样的方式需要人为不断手动更换每个控制,工作繁琐,容易引起疲劳导致生产事故。同时对每一种控制器而言,写入数据又是相同的,逐个的去写入数据非常浪费时间。随着工厂对效益的要求的提高,更多的生产流水线越来越依赖自动化设备,这些设备对改善员工工作环境及提高生产效率有着很大的帮助。但是在控制器标定数据写入方面,现有技术中没有一种比较可行的多个控制器同时写入标定数据的方法。

发明内容

[0003] 本发明的目的是克服了上述现有技术中的缺点,提供一种利用控制器电源电压检测技术区分每个控制器在总线上的ID,并利用CAN总线中ID仲裁优先级机制以及重发机制保证总线上上位机和各个控制器之间的通信能够相互协调有序,进而实现多个控制器标定数据的同时写入,且结构简单,使用简便,成本低廉,应用范围广泛的基于CAN总线实现多控制器同步写入标定数据功能的系统及方法。
[0004] 为了实现上述的目的,本发明的基于CAN总线实现多控制器同步写入标定数据功能的系统具有如下构成:
[0005] 该系统包括多个控制器、上位机和电源网络,所述的各控制器均连接于所述的CAN总线,并通过该CAN总线连接至所述的上位机,所述的各控制器还连接至所述的电源网络,所述的电源网络用以向所述的各控制器提供彼此不同的供电电压,且所述的各控制器均具有电压检测功能。
[0006] 该基于CAN总线实现多控制器同步写入标定数据功能的系统中,所述的各控制器均具有电压检测单元,以及与所述的电压检测单元连接的存储单元和数模转换单元,所述的电压检测单元还连接所述的电源网络,所述的存储单元通过CAN总线连接至所述的上位机。
[0007] 该基于CAN总线实现多控制器同步写入标定数据功能的系统中,所述的电源网络为电阻分压电源网络,所述的电阻分压电源网络根据所述的各控制器的供电范围以及静态消耗电流确定电源网络中分压电阻的功率范围,并确定所述的各控制器的电源分压值。
[0008] 本发明还提供一种利用所述的系统实现基于CAN总线的多控制器同步写入标定数据的方法,该方法包括以下步骤:
[0009] (1)所述的各控制器检测各自的电源电压;
[0010] (2)所述的各控制器根据各自的电源电压设置各自的CAN通信ID;
[0011] (3)所述的上位机通过CAN总线向所述的各控制器发送连接命令;
[0012] (4)所述的各控制器接收到所述的连接命令后,通过所述的CAN总线向所述的上位机返回所述的CAN通信ID;
[0013] (5)所述的上位机根据获得的各个CAN通信ID确定CAN总线上各控制器的连接情况;
[0014] (6)所述的上位机通过CAN总线向所述的各控制器同时发送标定数据;
[0015] (7)所述的上位机通过CAN总线向所述的各控制器发送数据发送完毕命令及校验码;
[0016] (8)所述的各控制器接收到数据发送完毕命令后,根据所述的校验码对所述的标定数据进行校验,并通过CAN总线向所述的上位机返回状态信息;
[0017] (9)所述的上位机接收到所述的状态信息后,确定各个控制器的状态。
[0018] 该基于CAN总线实现多控制器同步写入标定数据功能的方法中,所述的各控制器均具有电压检测单元,以及与所述的电压检测单元连接的存储单元和数模转换单元,所述的电压检测单元还连接所述的电源网络,所述的存储单元通过CAN总线连接至所述的上位机,所述的步骤(2)具体包括以下步骤:
[0019] (21)所述的各控制器通过各自的电压检测单元检测各自的供电电压;
[0020] (22)所述的数模转换单元将所述的供电电压转换为数字量;
[0021] (23)所述的各控制器将所述的数字量设置为各自的CAN通信ID。
[0022] 该基于CAN总线实现多控制器同步写入标定数据功能的方法中,CAN通信ID的长度为标准帧长度或是扩展帧长度。
[0023] 该基于CAN总线实现多控制器同步写入标定数据功能的方法中,所述的步骤(5)具体包括以下步骤:
[0024] (51)所述的上位机根据CAN总线ID仲裁优先级机制以及重发机制接收各控制器通过CAN总线返回的CAN通信ID并计数;
[0025] (52)所述的上位机根据所述的计数和所接收的各CAN通信ID确定CAN总线上各控制器的连接情况。
[0026] 该基于CAN总线实现多控制器同步写入标定数据功能的方法中,所述的校验码为CRC校验码。
[0027] 该基于CAN总线实现多控制器同步写入标定数据功能的方法中,所述的步骤(8)具体包括以下步骤:
[0028] (81)所述的各控制器接收到数据发送完毕命令和CRC校验码;
[0029] (82)所述的各控制器对接收到的标定数据进行CRC校验,并判断校验结果是否和CRC校验码一致,若一致,则进入步骤(83),若不一致,则进入步骤(84);
[0030] (83)所述的控制器存储标定数据,并通过所述的CAN总线向所述的上位机返回接收数据成功命令;
[0031] (84)所述的控制器通过所述的CAN总线向所述的上位机返回接收数据失败命令。
[0032] 采用了该发明的基于CAN总线实现多控制器同步写入标定数据功能的系统和方法,其系统包括多个控制器、上位机和电源网络,所述的各控制器均连接于所述的CAN总线,并通过该CAN总线连接至所述的上位机,所述的各控制器还连接至所述的电源网络,所述的电源网络用以向所述的各控制器提供彼此不同的供电电压,且所述的各控制器均具有电压检测功能。所述的方法中,各控制器检测各自的电源电压,并根据各自的电源电压设置各自的CAN通信ID;上位机基于各个CAN通信ID确定CAN总线上各控制器的连接情况;并利用CAN总线中ID仲裁优先级机制以及重发机制保证总线上上位机和各个控制器之间的通信能够相互协调有序,进而实现多个控制器标定数据的同时写入,且本发明的基于CAN总线实现多控制器同步写入标定数据功能的系统结构简单,方法应用简便,实现成本低廉,应用范围也较为广泛。

附图说明

[0033] 图1为本发明的基于CAN总线实现多控制器同步写入标定数据功能的系统的结构示意图。
[0034] 图2为本发明的基于CAN总线实现多控制器同步写入标定数据功能的方法的步骤流程图。
[0035] 图3为本发明的基于CAN总线实现多控制器同步写入标定数据功能的方法在实际应用中的流程示意图。

具体实施方式

[0036] 为了能够更清楚地理解本发明的技术内容,特举以下实施例详细说明。
[0037] 请参阅图1所示,为本发明的基于CAN总线实现多控制器同步写入标定数据功能的系统的结构示意图。
[0038] 在一种实施方式中,该基于CAN总线实现多控制器同步写入标定数据功能的系统包括多个控制器、上位机和电源网络,所述的各控制器均连接于所述的CAN总线,并通过该CAN总线连接至所述的上位机,所述的各控制器还连接至所述的电源网络,所述的电源网络用以向所述的各控制器提供彼此不同的供电电压,且所述的各控制器均具有电压检测功能。
[0039] 利用该实施方式所述的系统实现基于CAN总线的多控制器同步写入标定数据的方法,如图2所示,所述的方法包括以下步骤:
[0040] (1)所述的各控制器检测各自的电源电压;
[0041] (2)所述的各控制器根据各自的电源电压设置各自的CAN通信ID;
[0042] (3)所述的上位机通过CAN总线向所述的各控制器发送连接命令;
[0043] (4)所述的各控制器接收到所述的连接命令后,通过所述的CAN总线向所述的上位机返回所述的CAN通信ID;
[0044] (5)所述的上位机根据获得的各个CAN通信ID确定CAN总线上各控制器的连接情况;
[0045] (6)所述的上位机通过CAN总线向所述的各控制器同时发送标定数据;
[0046] (7)所述的上位机通过CAN总线向所述的各控制器发送数据发送完毕命令及校验码;
[0047] (8)所述的各控制器接收到数据发送完毕命令后,根据所述的校验码对所述的标定数据进行校验,并通过CAN总线向所述的上位机返回状态信息;
[0048] (9)所述的上位机接收到所述的状态信息后,确定各个控制器的状态。
[0049] 在一种较优选的实施方式中,所述的各控制器均具有电压检测单元以及与该电压检测单元连接的存储单元和数模转换单元,所述的电压检测单元还连接所述的电源网络,所述的存储单元通过CAN总线连接至所述的上位机。
[0050] 在利用该较优选的实施方式所述的系统实现基于CAN总线的多控制器同步写入标定数据功能的方法中,所述的步骤(2)具体包括以下步骤:
[0051] (21)所述的各控制器通过各自的电压检测单元检测各自的供电电压;
[0052] (22)所述的数模转换单元将所述的供电电压转换为数字量;
[0053] (23)所述的各控制器将所述的数字量设置为各自的CAN通信ID,该CAN通信ID的长度可以为标准帧长度或是扩展帧长度。
[0054] 在另一种优选的实施方式中,所述的步骤(5)具体包括以下步骤:
[0055] (51)所述的上位机根据CAN总线ID仲裁优先级机制以及重发机制接收各控制器通过CAN总线返回的CAN通信ID并计数;
[0056] (52)所述的上位机根据所述的计数和所接收的各CAN通信ID确定CAN总线上各控制器的连接情况。
[0057] 在一种进一步优选的实施方式中,所述的校验码为CRC校验码。所述的步骤(8)具体包括以下步骤:
[0058] (81)所述的各控制器接收到数据发送完毕命令和CRC校验码;
[0059] (82)所述的各控制器对接收到的标定数据进行CRC校验,并判断校验结果是否和CRC校验码一致,若一致,则进入步骤(83),若不一致,则进入步骤(84);
[0060] (83)所述的控制器存储标定数据,并通过所述的CAN总线向所述的上位机返回接收数据成功命令;
[0061] (84)所述的控制器通过所述的CAN总线向所述的上位机返回接收数据失败命令。
[0062] 在更优选的实施方式中,所述的电源网络为电阻分压电源网络,所述的电阻分压电源网络根据所述的各控制器的供电范围以及静态消耗电流确定电源网络中分压电阻的功率范围,并确定所述的各控制器的电源分压值。
[0063] 在实际应用中,CAN总线应用越来越广泛,而且在很多控制器中都有电源电压的检测功能,尤其是在汽车电子产品中占有主流地位。因此可以利用上述优势,实现基于CAN总线的多个控制器同时写入标定数据的方法。
[0064] 控制器一般都具有对本身电源电压的检测功能,数据存储、擦除、写入功能,以及CAN总线通信功能。在应用中,本发明的方法,如图3所示,包括以下步骤:
[0065] 首先将多个控制器接入到一个由电阻分压并能保证每个控制器都能正常运行的电源网络中,每个控制器的供电的电压需不同,具体而言,电阻分压电源网络根据控制器的数量,最大和最小供电范围,以及控制器静态消耗的电流,通过欧姆定律初步计算出电源分压电阻的功率范围。并且根据控制器的数量,电源供电情况,以及设计希望各个控制器电压上的分压情况,通过欧姆定律计算出电阻的精确值及每个控制器电源分压值。
[0066] 而后,每个控制器根据采集自己的电源电压,并通过AD采集把电源电压信号转化为数字量,填入CAN的ID中。CAN的ID长度可根据要求设为标准帧或者是扩展帧。根据CAN总线本身的ID仲裁优先级机制,ID越小的控制器发送的优先级越高,但必须保证上位机设定的ID优先级最高。
[0067] 然后,上位机通过CAN总线上发送连接命令,上位机接收回复的ID并计数,并根据根据CAN总线本身的ID仲裁优先级机制以及重发机制,同时根据计数情况和接收的ID情况可以判断出哪个控制器没有通信上,便于检查问题。
[0068] 在确认连接情况正常后,上位机向所有的控制器同时发送标定数据,所有控制器接收标定数据,在此期间每个控制器只接收,不向总线上发送任何数据。
[0069] 在上位机向所有的控制器同时发送标定数据的同时,上位机自己根据数据内容计算CRC校验码。标定数据发送完毕后上位机发送数据发送完毕命令及CRC校验码。
[0070] 当校验完毕后,控制器对接收的数据进行CRC校验,同时和上位机发送的CRC校验码进行比较,如果相同则把数据存入存储器,同时往总线上不断发送接收数据成功命令,直到接收上位机回复;如果CRC校验码不同则数据不存入存储器,同时往总线上不断发送接收数据失败命令,直到接收上位机回复。上位根据总线上数据的情况判断各个控制的数据接收情况,并回复各个控制器,同时发情况反映给操作人员。
[0071] 采用了该发明的基于CAN总线实现多控制器同步写入标定数据功能的系统和方法,其系统包括多个控制器、上位机和电源网络,所述的各控制器均连接于所述的CAN总线,并通过该CAN总线连接至所述的上位机,所述的各控制器还连接至所述的电源网络,所述的电源网络用以向所述的各控制器提供彼此不同的供电电压,且所述的各控制器均具有电压检测功能。所述的方法中,各控制器检测各自的电源电压,并根据各自的电源电压设置各自的CAN通信ID;上位机基于各个CAN通信ID确定CAN总线上各控制器的连接情况;并利用CAN总线中ID仲裁优先级机制以及重发机制保证总线上上位机和各个控制器之间的通信能够相互协调有序,进而实现多个控制器标定数据的同时写入,且本发明的基于CAN总线实现多控制器同步写入标定数据功能的系统结构简单,方法应用简便,实现成本低廉,应用范围也较为广泛。
[0072] 在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。