一种基于顺序链的CAN地址分配方法及通信系统与流程

文档序号:11879495阅读:1178来源:国知局

本发明涉及一种基于顺序链的CAN地址分配方法及通信系统,属于CAN通信技术领域。



背景技术:

众所周知,CAN网络节点在总线上必须拥有一个合法且唯一的网络地址,在CAN网络控制系统中,主节点对各个从节点的识别是依靠网络地址来实现的。在实际应用中,这种地址通常是通过设备生产厂家提供给用户的操作接口来设定的,如拨码开关、旋钮等。但是当节点需要防水、防尘或者工作在恶劣、远程的环境中时,为了提高节点的防护等级,节点本身就不能再保留类似的这种接口,此时节点的网络地址就只能通过软件来进行设定。无论采用何种方式配置CAN节点网络地址,都对现场维修人员的操作技能以及维护设备提出了较高的要求。目前CAN网络节点通过软件实现网络地址自动分配主要有以下两种:

一种是基于模块虚地址的方式,实现模块个体差异;各模块在上电时,通过一定的随机算法产生虚地址,主机在上电后逐个缩小范围搜索虚地址,并依据从机的响应,判断虚地址是否重复(重复后需重新产生虚地址),以此最终确定各模块的唯一虚地址,主机通过该虚地址的差异分配地址,从机的通信地址和该虚地址的算法的可靠性和效率不够,且根据虚地址无法快速定位到该模块的物理位置。

另外一种是基于物理地址的方式,按照一定规则,写入一个唯一的32位编码(掉电记忆),通过该编码的不同来实现各模块的个体差异,该32位编码的前29位作为节点的通讯地址(CAN通讯帧的29位标识符)。这种方式的缺点是:由于标准的CAN扩展帧中,29位标识符中的8位的PS为目的地址、8位的SA为源地址,其它位用于表示ID页,报文代码等,但是本方式下,由于32位编码的不确定性,导致29位标识符的任意数组组合都可能被作为节点地址,因此这种情况下,前29位作为节点的通讯地址的时候,地址长度可能会超过PS和SA的8位的要求,导致此CAN网络不能用于其他数据和命令处理,不具备通用性、兼容性,不能引入到其它的CAN网络。



技术实现要素:

本发明的目的是提供一种基于顺序链的CAN地址分配方法及通信系统,以解决目前CAN地址分配方式复杂、效率低、不具备通用性的问题。

本发明为解决上述技术问题而提供一种基于顺序链的CAN地址分配方法,该分配方法包括以下步骤:

1)将各待通信的模块通过CAN总线的方式级联,级联后的各模块通过地址线顺序连接,即前一级模块的地址输出端口通过地址线与后一级模块的地址输入端口连接,用于传输模块自动编写地址的辅助信号;

2)前一级模块根据收到的辅助信号将接收到由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总线传输,并由该模块通过地址线发送辅助信号给后一级模块,后一级模块根据收到的辅助信号将接收到由CAN总线传来的地址信息作为该模块的CAN地址,从而实现基于顺序链的各级联模块的CAN地址分配。本发明的CAN地址分配方式实现简单,组网灵活,便于扩展,能够很好的应用到级联的CAN通信系统中。

附图说明

图1是本发明实施例中的CAN通信系统的结构原理图。

具体实施方式

下面结合附图对本发明的具体实施方式做进一步的说明。

本发明的基于顺序链的CAN地址分配方法针对的是级联的CAN通信系统,通过将各待通信的模块通过CAN总线的方式级联,即前一级模块的CAN输出端口与后一级模块的CAN输入端口连接,并将级联后的各模块使用一根地址信号线连接,即前一级模块的地址输出端口通过地址信号线与后一级模块的地址输入端口连接,用于传输模块自动编写地址的辅助信号。前一级模块根据收到的辅助信号将接收到由CAN总线传来的地址信息作为该模块的CAN地址,同时将CAN地址加上设定数值作为后一级模块的CAN地址由CAN总线传输,并由该模块通过地址线发送辅助信号给后一级模块,后一级模块根据收到的辅助信号将接收到由CAN总线传来的地址信息作为该模块的CAN地址,从而实现基于顺序链的各级联模块的CAN地址分配。

如图1所示,本实施例中所针对的通信系统包括工控机以及7个模块,1#模块为协议转换模块,2#模块为数字输出模块,3#模块为模拟输入模块,4#模块为数字输入模块,5#模块为模拟输出模块,6#模块为数字输出模块,7#模块为模拟输入模块,工控机通过协议转换模块与1#模块的CAN IN端口相连,1#模块的CAN OUT端口与2#模块的CAN IN端口相连,2#模块的CAN OUT端口与3#模块的CAN IN端口相连,依次类推,实现7个模块之间的CAN级联,各模块的地址信息通过CAN总线传输,为了实现各级联模块间地址间的自动分配,各模块之间还连接有用于传输模块自动编写地址辅助信号的地址线,前一级模块的地址输出端口通过地址线与后一级模块的地址输入端口连接,即1#模块的地址输出端口通过地址线与2#模块的地址输入端口相连,2#模块的地址输出端口通过地址线与3#模块的地址输入端口相连,按照此方式连接,以实现各模块地址端口的顺序连接。本实施例中为了连线的方便,将CAN总线和地址线做成一根线束,该线束的接口为CAN总线接线端口和地址信号线接线端口的集成,相应的各模块的CAN端口和地址端口也可设计到一起,与线束的端口相适配。该系统CAN地址分配的过程如下:

1.系统首次上电后,工控机通过RS232转CAN协议模块发送首地址信号Add:#1至CAN总线,同时通过地址线发送辅助信号给#1号模块,这里的辅助信号可以是300Hz的频率信号。

2.1#号模块通过地址线收到辅助信号后从CAN总线上接收首地址Add:#1,并存储到地址存储器中作为其地址,然后将该地址Add:#1加上设定数值,本实施例中采用加1的方式,得到地址Add:#1+1,并将得到的地址Add:#1+1通过其CAN输出端口发送到CAN总线上,同时通过地址线发送辅助信号给#2号模块;

3.#2模块通过地址线收到辅助信号后从CAN总线上接收地址Add:#1+1,并存储到地址存储器中作为其地址,然后将该地址Add:#2加1,并通过其CAN输出端口发送到CAN总线上作为#3模块地址,同时#2模块通过地址线发送辅助信号给#3号模块;

4.以此类推,系统中的每个模块都会根据前一个模块发送的辅助信号从CAN总线上获取其对应CAN地址,该CAN地址会在模块内部存储,然后在这个地址上加1发送到下一个模块,每一次只有一个模块会收到辅助信号。通过上述过程,本发明能够快速实现基于顺序链的CAN地址分配。

当某一个模块在启动的时候没有成功的从上一个模块获得其网络地址,它会终止向下一个模块发送地址。如果最后一个模块成功的获得其网络地址,说明其前面的所有模块也都成功的获得其网络地址。RS232转CAN协议模块为整个CAN通信系统提供合适的起始,网络系统的终止在最后一个模块的CAN OUT端。

为了确认各模块的位置与工控机内部预设的模块类型位置是否匹配,本发明还根据每个模块的类型(数字输入、数字输出、模拟输入、模拟输出及协议转换等)在每个模块内部都存储一个对应类型识别码,在顺序链机制成功分配完地址后,工控机读取网络中各个模块的类型识别码,确定与工控机内部程序预设的模块类型位置是否匹配,如果不匹配,则显示模块类型错误信息,及时调整相应模块的位置,达到与预设的位置一致。

每个模块包含8到16个输入或输出接口,根据现场使用环境的需要,可以使用或者不使用其中的某些接口,或者接口的功能如何使用,都是由模块的应用程序决定的,工控机根据其内部网络系统程序的需要,通过CAN总线向系统中的各个模块下载相应的应用程序,完成其指定的任务。

本发明的通信系统基于安装和维护,结构简单,布线方便,组网灵活,两个或多个CAN通信系统可通过以太网进行通信,组成更广的通信网络,部分模块上又具有独立的CAN和RS232接口,便于扩展。且该通信系统适用范围广,可移植性强,在硬件组成基本不变的情况下,可移植到不同的设备上,只需根据需要对工控机软件做部分修改。抗干扰性强,安全、可靠,系统具有一定的容错和纠错能力,能够尽最大可能避免误操作,系统响应时间快,最高速度可达1Mbps。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1