基于CAN通讯的上位机与下位机的通信方法及系统技术方案

技术编号:27222197 阅读:12 留言:0更新日期:2021-02-04 11:42
本发明专利技术实施例公开了一种基于CAN通讯的上位机与下位机的通信方法及系统,所述方法包括:步骤S1:上位机从选择一下位机作为令牌管理者,并给令牌管理者发送配置信息;步骤S2:上位机广播启动命令并等待下位机反馈的数据;步骤S3:各下位机收到启动命令后开始采样;步骤S4:令牌管理者根据配置信息进行初始化,令牌管理者先查找总线上所有下位机,并进行排序;按照顺序向其他下位机发送令牌命令;步骤S5:接收到令牌命令的下位机发送数据至上位机;步骤S6:上位机收到数据后,根据所述协议来解包数据,完成通信。本发明专利技术可以使得上位机的通讯逻辑得到较大程度上的简化,减轻了上位机的工作负担和代码的复杂程度。作负担和代码的复杂程度。作负担和代码的复杂程度。

【技术实现步骤摘要】
基于CAN通讯的上位机与下位机的通信方法及系统


[0001]本专利技术涉及新能源汽车通信
,尤其涉及一种基于CAN通讯的上位机与下位机的通信方法及系统。

技术介绍

[0002]在汽车领域内CAN能够实现分布式实时控制。能够将多种智能机器进行网络连接,并进行统一控制,特别是在上位机与下位机通信时,可以通过连续帧来进行大量数据的传输,提高效率。
[0003]一般多帧报文会根据协议的内容,进行连续的发送,因此需要上位机下发多帧报文发送命令,下位机才会响应,但是因为上位机系统运行的过程中有着各种逻辑需要处理,什么时候给下位机发送命令需要考虑各种因素,导致通讯模块的逻辑一般会比较复杂,特别是总线上搭载多台下位机的时候,上位机不仅要处理各种功能的逻辑,还要考虑给多台下位机发送命令的顺序,因为上位机不能同时接收多台下位机发送的多帧数据,必须一台一台进行接收,再加上数据的解析,导致多台下位机多帧通讯的管控逻辑一般都较为复杂。

技术实现思路

[0004]本专利技术实施例所要解决的技术问题在于,提供一种基于CAN通讯的上位机与下位机的通信方法及系统,以简化上位机的管控逻辑,让上位机有更多的资源分配给其他功能逻辑。
[0005]为了解决上述技术问题,本专利技术实施例提出了一种基于CAN通讯的上位机与下位机的通信方法,包括:步骤S1:上位机从多台下位机中选择一下位机作为令牌管理者,并给令牌管理者发送配置信息;步骤S2:上位机广播启动命令并等待下位机反馈的数据;步骤S3:各下位机收到启动命令后开始采样;步骤S4:令牌管理者根据配置信息进行初始化,令牌管理者先查找总线上所有下位机,并进行排序;排序完毕后按照顺序向其他下位机发送令牌命令;步骤S5:接收到令牌命令的下位机根据帧的数据和预设的协议内容来发送数据至上位机;步骤S6:上位机收到数据后,根据所述协议来解包数据,完成通信。
[0006]相应地,本专利技术实施例还提供了一种基于CAN通讯的上位机与下位机的通信系统,包括上位机及多台下位机,上位机:从多台下位机中选择一下位机作为令牌管理者,并给令牌管理者发送配置信息;广播启动命令并等待下位机反馈的数据;收到下位机反馈的数据后,根据预设的协议来解包数据,完成通信;各下位机收到启动命令后开始采样;
令牌管理者根据配置信息进行初始化,令牌管理者先查找总线上所有下位机,并进行排序;排序完毕后按照顺序向其他下位机发送令牌命令;接收到令牌命令的下位机根据帧的数据和预设的协议内容来发送数据至上位机。
[0007]本专利技术的有益效果为:本专利技术可以使得上位机的通讯逻辑得到较大程度上的简化,因为有某台下位机在进行发送顺序的管控,上位机只需接收即可,在每个程序循环的时候进行数据的读取并根据协议内容加以解析,减轻了上位机的工作负担和代码的复杂程度。
附图说明
[0008]图1是本专利技术实施例的基于CAN通讯的上位机与下位机的通信方法的流程示意图。
具体实施方式
[0009]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合,下面结合附图和具体实施例对本专利技术作进一步详细说明。
[0010]本专利技术实施例中若有方向性指示(诸如上、下、左、右、前、后
……
)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
[0011]另外,在本专利技术中若涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
[0012]请参照图1,本专利技术实施例的基于CAN通讯的上位机与下位机的通信方法包括步骤S1~步骤S6。
[0013]步骤S1:上位机从多台下位机中选择一下位机作为令牌管理者,并给令牌管理者发送配置信息。配置信息包括令牌管理者是谁,被令牌管理的下位机有哪些,每台下位机要采样什么数据,采样频率,令牌发送间隔等。
[0014]步骤S2:上位机广播启动命令并等待下位机反馈的数据。
[0015]步骤S3:各下位机收到启动命令后开始采样。
[0016]步骤S4:令牌管理者根据配置信息进行初始化,令牌管理者先查找总线上所有下位机,并进行排序;排序完毕后按照顺序向其他下位机发送令牌命令。令牌命令为一帧CAN数据,令牌是协议定的,上位机给令牌管理者配置的时候会配置清楚。
[0017]步骤S5:接收到令牌命令的下位机根据帧的数据和预设的协议内容来发送数据至上位机。
[0018]步骤S6:上位机收到数据后,根据所述协议来解包数据,完成通信。
[0019]作为一种实施方式,步骤S4包括:子步骤S41:令牌管理者根据设置好的时间间隔开始计时,在时间到后,令牌管理者给需要发送数据的下位机发送令牌命令;子步骤S42:该下位机接收到令牌命令后,将采样数据通过连续帧发送给上位机。
[0020]作为一种实施方式,步骤S6之后还包括:步骤S7:上位机根据用户设置广播停止命令,各下位机采样结束并等待新命令。一般使
用的时候,上位机给出开始的命令之后,下位机会不停给上位机数据,这个过程会持续较长的时间,然后用户认为要停下来,才会操控上位机发停止指令。
[0021]一般来说,总线上有较多的机器且需要进行多帧通讯的时候,因连续帧的发送需要接收方持续接收,上位机必须要控制下位机数据发送的顺序。本专利技术通过将多帧数据发送顺序的管控逻辑集成到下位机的软件系统里,通过下位机自己给自己和总线上的其他机器发送令牌命令来进行数据顺序的管控。每台下位机都有令牌发送和接收的逻辑,让上位机对总线上某一台机器发送令牌管控的命令,该机器(令牌管理者)会先查找总线上所有机器,并进行排序,排序完毕后按照顺序发送令牌命令,接收到令牌命令的机器根据帧的数据和预先定义好的协议内容来发送数据至上位机,而上位机只需根据协议来解包数据即可。
[0022]示例1,本专利技术实施例应用于软件示波器:上位机将令牌管理者和各示波器通道的配置信息下发到下位机之后,等待下位机反馈的信息,而下位机什么时候将数据反馈到上位机,由下位机中的令牌管理者决定,这就不需要在每个循环里调度上位机去询问数据,上位机只管接收并按协议解析各种数据即可,让上位机有更多的资源去管理其他逻辑。
[0023]本专利技术实施例的通讯协议:帧的定义,具体如表1所示。
[0024]表1示例1具体步骤为:步骤S1,上位机选择令牌管理者,并给令牌管理者发送配置信息(总线上哪些机器需要给上位机发送数据和这些机器各自的数据的发送周期)。
[0025]设置令牌管理者:1F3001xx(CANID) 01 98 00 10(令牌管理寄存器)00 01 00 01(下位机ID);
设置被令牌管理的下位机:1F3001xx(CANID)01 98 00 10(令牌管理寄存器)00 01 00 02(下本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于CAN通讯的上位机与下位机的通信方法,其特征在于,包括:步骤S1:上位机从多台下位机中选择一下位机作为令牌管理者,并给令牌管理者发送配置信息;步骤S2:上位机广播启动命令并等待下位机反馈的数据;步骤S3:各下位机收到启动命令后开始采样;步骤S4:令牌管理者根据配置信息进行初始化,令牌管理者先查找总线上所有下位机,并进行排序;排序完毕后按照顺序向其他下位机发送令牌命令;步骤S5:接收到令牌命令的下位机根据帧的数据和预设的协议内容来发送数据至上位机;步骤S6:上位机收到数据后,根据所述协议来解包数据,完成通信。2.如权利要求1所述的基于CAN通讯的上位机与下位机的通信方法,其特征在于,步骤S4包括:子步骤S41:令牌管理者根据设置好的时间间隔开始计时,在时间到后,令牌管理者给需要发送数据的下位机发送令牌命令;子步骤S42:该下位机接收到令牌命令后,将采样数据通过连续帧发送给上位机。3.如权利要求1所述的基于CAN通讯的上位机与下位机的通信方法,其特征在于,步骤S6之后还包括:步骤S7:上位机根据用户设置...

【专利技术属性】
技术研发人员:姜富文李浩
申请(专利权)人:深圳市法拉第电驱动有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1