上位机与同类can设备的通信方法

文档序号:9523464阅读:1266来源:国知局
上位机与同类can设备的通信方法
【技术领域】
[0001]本发明涉及一种工程机械与汽车CAN总线通信,更具体地说,涉及一种上位机与同类CAN设备的通信方法。
【背景技术】
[0002]工程机械或汽车上CAN总线设备很多,如果同一个总线上挂了同一个厂家的多个同类CAN设备,这些设备具有相同的通信协议与运行系统(例如传感器、运行系统相同但应用程序不同的控制器、显示器等),需要通过CAN总线在为该厂家的同类CAN设备中一个设备中更新参数和程序,需要先通过上位机软件扫描出总线上的所有这类设备,用户选择其中该设备后,再与该设备进行通信。
[0003]上位机发送请求扫描的CAN数据帧时,各设备都会对其发出应答帧。如果这些应答帧使用相同的ID,会出现相同ID同时发送的情况,这会产生应答帧冲突,导致总线数据错误。如果这些设备使用不同的ID,会占用很多ID资源,而且可能与其他厂家设备的ID冲突,而且使用多ID的方案还需要在装车之前对整个总线上的CAN设备ID进行分配,很不方便。

【发明内容】

[0004]本发明要解决的技术问题是针对现有上位机与CAN总线上CAN设备进行通信会产生帧冲突的问题,而提供一种上位机与CAN总线上CAN设备进行通信时避免CAN设备帧冲突的通?目方法。
[0005]本发明为实现其目的的技术方案是这样的:提供一种上位机与同类CAN设备的通?目方法,其包括以下步骤:
[0006]步骤S1上位机获取CAN总线上所有已经广播的ID ;在该步骤中,包括上位机直接连接在CAN总线上获取总线上广播的ID,也可以是上位机与直接连接在CAN总线上的无线通信设备如GPS进行无线通信,通过无线通讯设备获取CAN总线上已广播的ID。进一步地上位机通过无线通讯设备与CAN总线上的CAN设备进行通信。
[0007]步骤S2判断CAN总线上已广播的ID与上位机默认通信ID是否相同冲突,若有ID相同冲突,上位机修改其通信ID,并通过信息修改指令将上位机修改后的通信ID广播到CAN总线上,CAN总线上的同类CAN设备收到通信ID修改信息后修改自身的通信ID,各同类CAN设备修改后的通信ID与上位机修改后的通信ID相同;如果没有ID相同冲突,则上位机和同类CAN设备使用默认通信ID。
[0008]步骤S3上位机软件通过发送扫描指令扫描总线上同类CAN设备。
[0009]步骤S4同类CAN设备设定扫描指令应答延时时间T ;各同类CAN设备的扫描指令应答延时时间T各不相同,各同类CAN设备收到扫描指令后开始计时并在各自的扫描指令应答延时时间T后发送扫描指令应答帧。
[0010]步骤S5上位机收到总线上所有同类CAN设备的应答帧并通过应答帧的内容获取所有同类CAN设备的序列号生成同类CAN设备列表;
[0011]步骤S6从所述的同类CAN设备列表中选定一个同类CAN设备,上位机与该选定的同类CAN设备进行应答通信。
[0012]本发明的上位机与CAN设备间的通信方法,可用于对基于CAN总线通信的控制系统的调试与升级进行刷机,在应用时,上位机连接在CAN总线上,上电后,经过一定时长TB,上位机获取CAN总线上所有已经广播的ID,然后进行上述步骤中的S2至S4步骤,上位机收到总线上所有同类CAN设备的应答帧并通过应答帧的内容获取所有同类CAN设备的序列号生成同类CAN设备列表,供技术人员选择后上位机与其进行应答通信。本发明中,同类CAN设备是指具有相同通信协议的CAN设备,它们的通讯协议与上位机通信协议配套使用,可以实现数据通信。上位机与同类CAN设备基于通信ID进行通信,同类CAN设备具有相同的通信协议,在通信程序中都设定有它们默认的通信ID ;上位机的配套通信协议程序也设置有相同的默认通信ID。如果上位机和同类CAN设备在调试时将默认通信ID进行了修改,上位机和同类CAN设备在下一次上电复位后,它们的通信ID又恢复到程序中设置的默认通信ID。在上述上位机与同类CAN设备的通信方法中,步骤S4中,各同类CAN设备依据自身序列号或CPU芯片编码计算扫描指令应答延时时间T,CAN设备的序列号和CPU芯片编码通常是唯一的,基于此而计算出来的扫描指令应答延时时间T也基本上是唯一的,不会与其他的CAN设备的扫描指令应答延时时间T相同而导致通信冲突。各同类CAN设备可以在其上电后就读取其自身序列号或CPU芯片编码,当然也可以使用其他参数比如随机数来进行计算扫描指令应答延时时间T。各CAN设备计算出来的时间T不相同,各CAN设备不会在同一时刻发送数据,保证了上位机软件可以收到总线上所有同类CAN设备的应答,不会引起冲突。各CAN设备的扫描指令应答延时时间T中最长的为Tmax,那么上位机在发出扫描指令后,在Tmax时间内会受到CAN总线上所有同类CAN设备的应答帧。
[0013]在上述上位机与同类CAN设备的通信方法中,所述通信ID包括指令ID和数据ID。通信ID还可以包括其他用来通信的ID.
[0014]在上述上位机与同类CAN设备的通信方法中,步骤S4中各同类CAN设备所发扫描指令应答帧的内容为各同类CAN设备的序列号。
[0015]在上述上位机与同类CAN设备的通信方法中,在于所述各同类CAN设备的序列号长度不超过5字节。
[0016]在上述上位机与同类CAN设备的通信方法中,扫描应答帧的ID与指令ID相同,此举可节约ID资源。
[0017]本发明与现有技术相比,本发明解决了上位机与CAN设备进行通信时多个具有相同通信协议的设备节点同时发送应答报文导致总线错误的问题。
【附图说明】
[0018]图1是本发明上位机与同类CAN设备的通信方法的流程图。
【具体实施方式】
[0019]下面结合【附图说明】具体实施方案。
[0020]本发明中的上位机与CAN设备间的通信方法,可用基于CAN总线通信的控制系统的调试与升级,在应用时,上位机连接在CAN总线上,上电后,经过一定时长TB,上位机获取识别CAN总线上所有已经广播的ID,开始通信时,ID个数计数变量V = 0,上位机每收到一个ID就记录在内存的某个
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1