一种基于RS485总线集中器外接传感器的自动识别方法与流程

文档序号:33283842发布日期:2023-02-24 21:45阅读:129来源:国知局
一种基于RS485总线集中器外接传感器的自动识别方法与流程
一种基于rs485总线集中器外接传感器的自动识别方法
技术领域
1.本发明涉及物联网技术领域,具体为一种基于rs485总线集中器外接传感器的自动识别方法。


背景技术:

2.目前在集中器的rs485端口通常会接入不同类型和型号的传感器,不同的传感器采用的通讯协议也不尽相同,因此驱动这些传感器的逻辑也不相同。因此必须提前了解接入传感器的通讯协议,才能够选择恰当的驱动程序完成驱动。
3.物联网集中器是在物联网体系中,负责将传感器数据转发至数据中心的通信结点。目前在市面上应用的物联网集中器通常只能适配某一型号或某一类具有相同通讯协议传感器,见本技术的说明书附图1。其主要原因是,集中器默认只能支持某一种特定类型的基于rs485总线的通讯协议。当具有其他类型通讯协议的传感器时,集中器无法实现自动的识别和切换。只能通过刷新集中器固件或者重写配置文件来完成对于具有其他通讯协议rs485传感器的支持。为此,本技术提出一种基于rs485总线集中器外接传感器的自动识别方法。


技术实现要素:

4.本发明的目的在于提供一种基于rs485总线集中器外接传感器的自动识别方法,解决了集中器如何能够自动识别传感器通讯协议的问题,该方法可以完成对传感器通讯协议的识别(适用于集中器可以支持的铜须协议),并适配相应的驱动程序。
5.为实现上述目的,本发明提供如下技术方案:一种基于rs485总线集中器外接传感器的自动识别方法,包括如下步骤:
6.步骤一:集中器外接传感器自动识别由集中器内置的软件完成,各种传感器按照硬件接口规则接入集中器,集中器上电/复位并完成软硬件系统初始化后,启动外接传感器的自动识别程序;
7.步骤二:该程序使用自识别算法,依次对各端口所接入传感器通讯协议进行检查,记录识别的结果,并将对应该通讯协议的驱动程序与该接口绑定;
8.步骤三:当集中器完成对外接传感器的自动识别后,进行常规的数据转发工作,在进行数据转发时,程序会使用自动识别程序中绑定的驱动程序对相关接口进行驱动,以实现和响应传感器的通讯;
9.步骤四:如果某个端口没有接入传感器,或所接入传感器不在自识别程序所支持的通讯协议范围内,则在绑定驱动程序时对这些端口不进行绑定,在数据转发程序中,这些传感器由于无法驱动,因此数据也不会进行转发。
10.优选的,所述集中器可支持多个rs485总线端口,采用半双工模式工作。由于rs485总线具有一主多从的连接特性,因此一个端口可以连接多个传感器设备,在本方法中,具备相同通讯协议的传感器可以共享一个rs485端口。每个端口包含4个物理引脚:rs485 a、
rs485 b、vcc、gnd,rs485a和rs485
11.b是rs485总线通讯的数字信号;vcc是各端口相互独立供电引脚,用于为传感器供电,且每个端口的vcc引脚都可以由软件独立控制,实现传感器供电的通断;gnd为接地引脚。
12.优选的,所述外接传感器自动识别算法过程如下:
13.步骤一:加载配置文件,在配置文件中记录了自动识别算法所支持的通讯协议,以及识别方法;
14.步骤二:读取配置文件中全部的协议识别序列,并按照优先级从高到低的顺序对识别序列进行排序(1为最高优先级);
15.步骤三:选择一个尚未进行识别过的端口,开启识别操作;如果不存在尚未被识别过的端口,则识别过程结束;
16.步骤四:切断端口的vcc电源,延时3s后,重新开启vcc的电源;
17.步骤五:选择在当前端口中,尚未使用过的优先级最高的识别序列
18.步骤六:按照识别序列中的顺序读取发送控制字,并通过该端口的rs485总线发送至传感器;
19.步骤七:从该端口的rs485总线读取响应信息,与配置文件中的期望响应进行比对;
20.步骤八:当期望响应与预期响应一致时:如果当前选择的识别序列中还有其他的控制字需要发送,则进入步骤六,继续发送后续的控制字并进行响应比对;如果当前选择的识别序列中没有需要发送的控制字,则说明识别成功,并根据识别序列中提供的驱动信息选择相应的驱动程序并与该端口进行绑定,并进入步骤三;
21.如果期望相应与预期响应不一致,或在规定的接受时间内,没有收到任何期望相应,表示当前识别序列所对应的驱动不能适配当前端口,如果尚有未对该端口适配的序列,则进入步骤五;如果没有剩余的识别序列,则说明当前端口识别失败,不会为当前端口绑定驱动,在后续的数据传输中也不会使用当前端口,并进入步骤三。
22.优选的,所述自动识别算法配置文件格式如下:
23.配置文件使用xml格式编写,当自动识别算法启动时被加载;
24.根标签sequences,
25.sequences是根标签,用于描述识别序列的集合,可以包含多个sequenc e标签;
26.标签sequence,
27.根标签sequences的子标签,用于描述一个识别序列;
28.标签name,
29.sequence的子标签,标签内容为字符串类型,用于描述当前识别序列的名称,标签内容也是匹配驱动的唯一依据,因此name标签中的内容必须全局唯一,不能重复;
30.标签timeout,
31.sequence的子标签,标签内容为整数类型,用于描述控制字发送后至响应接收的最大延迟时间,如果超出这个时间仍未收到响应,则认为没有响应收到,单位为毫秒;
32.标签priority,
33.sequence的子标签,标签内容为整数类型,用于描述当前识别序列的优先级;
34.标签comms,
35.sequence的子标签,用于描述识别序列的所需的通讯集合,可以包含多个comm标签。
36.标签comm,
37.comms的子标签,用于描述识别序列中的一次通讯;
38.标签request,
39.comm的子标签,标签内容为十六进制字符串类型,用于描述发送控制字报文内容,格式为“xx xx xx
……
xx”,其中x的取值为0-9或a-f,每两个x描述一个字节;
40.标签response,
41.comm的子标签,标签内容为十六进制字符串类型,用于描述期望传感器响应,格式与request标签相同。
42.与现有技术相比,本发明的有益效果如下:
43.本发明通过自动识别外设,可以避免对集中器配置的人工干预,提高了集中器应用的灵活性和扩展性,解决了集中器如何能够自动识别传感器通讯协议的问题,该方法可以完成对传感器通讯协议的识别(适用于集中器可以支持的通讯协议),并适配相应的驱动程序。
附图说明
44.图1为现有技术中集中器与传感器结点的拓扑结构。
具体实施方式
45.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
46.一种基于rs485总线集中器外接传感器的自动识别方法,包括如下步骤:
47.步骤一:集中器外接传感器自动识别由集中器内置的软件完成,各种传感器按照硬件接口规则接入集中器,集中器上电/复位并完成软硬件系统初始化后,启动外接传感器的自动识别程序;
48.步骤二:该程序使用自识别算法,依次对各端口所接入传感器通讯协议进行检查,记录识别的结果,并将对应该通讯协议的驱动程序与该接口绑定;
49.步骤三:当集中器完成对外接传感器的自动识别后,进行常规的数据转发工作,在进行数据转发时,程序会使用自动识别程序中绑定的驱动程序对相关接口进行驱动,以实现和响应传感器的通讯;
50.步骤四:如果某个端口没有接入传感器,或所接入传感器不在自识别程序所支持的通讯协议范围内,则在绑定驱动程序时对这些端口不进行绑定,在数据转发程序中,这些传感器由于无法驱动,因此数据也不会进行转发。
51.所述集中器可支持多个rs485总线端口,采用半双工模式工作。
52.由于rs485总线具有一主多从的连接特性,因此一个端口可以连接多个传感器设
备,在本方法中,具备相同通讯协议的传感器可以共享一个rs485端口,每个端口包含4个物理引脚:rs485 a、rs485 b、vcc、gnd,rs485a和rs485
53.b是rs485总线通讯的数字信号;vcc是各端口相互独立供电引脚,用于为传感器供电,且每个端口的vcc引脚都可以由软件独立控制,实现传感器供电的通断;gnd为接地引脚。
54.所述外接传感器自动识别算法过程如下:
55.步骤一:加载配置文件,在配置文件中记录了自动识别算法所支持的通讯协议,以及识别方法;
56.步骤二:读取配置文件中全部的协议识别序列,并按照优先级从高到低的顺序对识别序列进行排序(1为最高优先级);
57.步骤三:选择一个尚未进行识别过的端口,开启识别操作;如果不存在尚未被识别过的端口,则识别过程结束;
58.步骤四:切断端口的vcc电源,延时3s后,重新开启vcc的电源;
59.步骤五:选择在当前端口中,尚未使用过的优先级最高的识别序列
60.步骤六:按照识别序列中的顺序读取发送控制字,并通过该端口的rs485总线发送至传感器;
61.步骤七:从该端口的rs485总线读取响应信息,与配置文件中的期望响应进行比对;
62.步骤八:当期望响应与预期响应一致时:如果当前选择的识别序列中还有其他的控制字需要发送,则进入步骤六,继续发送后续的控制字并进行响应比对;如果当前选择的识别序列中没有需要发送的控制字,则说明识别成功,并根据识别序列中提供的驱动信息选择相应的驱动程序并与该端口进行绑定,并进入步骤三;
63.如果期望相应与预期响应不一致,或在规定的接受时间内,没有收到任何期望相应,表示当前识别序列所对应的驱动不能适配当前端口,如果尚有未对该端口适配的序列,则进入步骤五;如果没有剩余的识别序列,则说明当前端口识别失败,不会为当前端口绑定驱动,在后续的数据传输中也不会使用当前端口,并进入步骤三。
64.所述自动识别算法配置文件格式如下:
65.配置文件使用xml格式编写,当自动识别算法启动时被加载;
66.根标签sequences,
67.sequences是根标签,用于描述识别序列的集合,可以包含多个sequenc e标签;
68.标签sequence,
69.根标签sequences的子标签,用于描述一个识别序列;
70.标签name,
71.sequence的子标签,标签内容为字符串类型,用于描述当前识别序列的名称,标签内容也是匹配驱动的唯一依据,因此name标签中的内容必须全局唯一,不能重复。
72.标签timeout,
73.sequence的子标签,标签内容为整数类型,用于描述控制字发送后至响应接收的最大延迟时间,如果超出这个时间仍未收到响应,则认为没有响应收到,单位为毫秒;
74.标签priority,
75.sequence的子标签,标签内容为整数类型,用于描述当前识别序列的优先级;
76.标签comms,
77.sequence的子标签,用于描述识别序列的所需的通讯集合,可以包含多个comm标签。
78.标签comm,
79.comms的子标签,用于描述识别序列中的一次通讯;
80.标签request,
81.comm的子标签,标签内容为十六进制字符串类型,用于描述发送控制字报文内容,格式为“xx xx xx
……
xx”,其中x的取值为0-9或a-f,每两个x描述一个字节;
82.标签response,
83.comm的子标签,标签内容为十六进制字符串类型,用于描述期望传感器响应,格式与request标签相同。
84.本发明通过自动识别外设,可以避免对集中器配置的人工干预,提高了集中器应用的灵活性和扩展性,解决了集中器如何能够自动识别传感器通讯协议的问题,该方法可以完成对传感器通讯协议的识别(适用于集中器可以支持的通讯协议),并适配相应的驱动程序。
85.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1