一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于脉冲编码测量的通信波特率检测和地址分配的方法与流程

2022-04-14 00:57:20 来源:中国专利 TAG:


1.本发明涉及通信技术领域,具体涉及一种基于脉冲编码测量的通信波特率检测和地址分配的方法。


背景技术:

2.多节点通信总线,如何进行便捷的网络配置,一直以来都是困扰工程技术人员的基础问题之一。目前比较普遍与实用的解决方式,是在系统设计之初就对总线节点地址及数据通信内容进行定义,形成配置文件,每个节点拥有自身唯一的配置文件。像经典的canopen协议,以及基于canopen设计思想的ethercat工业以太网,均是这种网络配置方案。
3.但这种配置方案,适用于可以批量制造的固定网络拓扑系统,如汽车、轨道电车、大型工业设备等。对于集成上变化多样的应用,这种配置方案会带来诸多额外的维护问题。如维护过程中,需要维护的配置文件过多,板卡的版本众多等问题。
4.其他已有的自动地址配置类型,在实现方法上,则需要通信总线以外的信号线或者电路辅助实现。这些额外的设计同样带来实施的复杂、制造和维护成本增加等问题。


技术实现要素:

5.为克服上述背景技术中需要通信总线以外的信号线或者电路辅助、需要维护的配置文件过多,板卡的版本众多和增加制造和维护成本的缺点,本发明的目的在于提供一种基于脉冲编码测量的通信波特率检测和地址分配的方法。
6.为了达到以上目的,本发明采用的技术方案是:基于脉冲编码测量的通信波特率检测和地址分配的方法,包括按照顺序执行的设备发现阶段和地址分配阶段,所述设备发现阶段只要查询到大于1个通信子站,通过主站发送一个起始命令开始,通过变频脉冲测试,去执行地址分配阶段。
7.在一些可能的实施方式中,所述设备发现阶段包括以下步骤:s1:采用哈希表除留取余法,设定通信子站的唯一识别码为被除数,得到索引值;s2:设备发现索引值,接受通讯主站的查询命令,按索引值确定的时间片进行延时应答;s3:通信主站通过回复延时应答,识别出所有的通信子站;s4:根据不同的回复延时,使多个通信子站的应答处于不同的时间片,自动识别未初始化逻辑地址的通信子站。
8.在一些可能的实施方式中,所述地址分配阶段包括以下步骤:s5:采用变频脉冲测试的方式,预设频率区间,进行二分法筛选和分组,直到每组仅剩余一个通信子站,确定通信子站的频率适配区间;s6:检测差分信号衰减,确定所有通信子节点的拓扑顺序,获取整个总线正常通信的最高频率,按照这个顺序重新分配逻辑地址,根据整个总线正常通信的最高频率重新配置通信波特率。
9.在一些可能的实施方式中,每个通信子站的唯一识别码除以p会得到对应的余数,所述余数就是这个通信子站的回复延时,所述唯一识别码是一种约定好的不重复的数字信息;所述p为哈希表大小。
10.在一些可能的实施方式中,当哈希表碰撞而出现了偶发的应答冲突,通过通信协议的crc校验进行识别,然后更换除余法的质数再次进行设备查询,直到所有设备完成设备发现操作。
11.在一些可能的实施方式中,所述s5具体步骤为:基于“低频信号可以完整传输的距离最长,高频信号可以完整传输的距离最短”的原理,通过二分法不断细分信号频率区间,将接收结果正确和错误的通信子站分成两组,然后分别在两组中进行新一轮的脉冲测试,通过递归算法处理,直到每个分组中只有一个通信子站,确定通信子站的频率适配区间。
12.在一些可能的实施方式中,每个传输线上的通信子站,存在一个临界频率值,小于这个频率,脉冲可以被完整接收,大于这个频率,脉冲则会因为传输衰减而丢失。
13.在一些可能的实施方式中,在所述变频脉冲测试的过程中,应用只改变差分信号衰减负极的方法,降低驱动芯片的输入电压范围。
14.在一些可能的实施方式中,在采用本方法时,现场设备需要处于停止状态。
15.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本发明所述的基于脉冲编码测量的通信波特率检测和地址分配的方法的步骤。
16.本发明的有益效果是:1.使用通用的哈希表索引生成算法,实现通信子站回复主站设备发现命令的回复延时。具有非常一致的索引均匀分布特征,并且有明确的相同延时冲突的解决方案。
17.2.创新性的应用了脉冲编码测量方法,同时解决了距离测量和信号质量分析两大难题;实现了在不增加额外电路设计的前提下,仅通过软件设计,通过测试这个最大通信波特率,就可以实现按照通信线距离的拓扑关系,实现子节点的地址顺序分配。
附图说明
18.图1为本技术实施例基于脉冲编码测量的通信波特率检测和地址分配的方法中1k的索引空间示意图一;图2为本技术实施例基于脉冲编码测量的通信波特率检测和地址分配的方法中1k的索引空间示意图二;图3为本技术实施例基于脉冲编码测量的通信波特率检测和地址分配的方法中s4自动分配应答时间窗口示意图;图4为本技术实施例基于脉冲编码测量的通信波特率检测和地址分配的方法中设备发现阶段步骤流程图;图5为本技术实施例基于脉冲编码测量的通信波特率检测和地址分配的方法中地址分配阶段变频脉冲测试步骤流程图;图6为本技术实施例基于脉冲编码测量的通信波特率检测和地址分配的方法中中确定所有子节点先后位置的示意图。
具体实施方式
19.下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
20.基于脉冲编码测量的通信波特率检测和地址分配的方法,包括按照顺序执行的设备发现阶段和地址分配阶段,所述设备发现阶段只要查询到大于1个通信子站,通过主站发送一个起始命令开始,通过变频脉冲测试,去执行地址分配阶段。
21.所述设备发现阶段包括以下步骤:s1:采用哈希表除留取余法,设定通信子站的唯一识别码为被除数,得到索引值;每个通信子站的唯一识别码除以p会得到对应的余数,所述余数就是这个通信子站的回复延时,所述唯一识别码是一种约定好的不重复的数字信息;所述p为哈希表大小。哈希表长度就是m,是具体程序设计时,上位机软件和下位机软件约定的一个数值。因为这个数决定了回复查询命令的最大延时时间。所以不能取得太大。同时不能选取得太小,太小会造成余数相同的概率太高。参照附图1和附图2所示,取1024即1k的哈希表长度。p代表除数,p是质数,p,小于哈希表长度m,满足以上条件时,p尽量大,以保证余数的低重复概率。由于识别码不同,所以延时也大概率不同。当出现通信冲突,即计算出相同延时的多个子站,可以通过改变除数p解决冲突。如1k的索引空间中,推荐的取质数顺序为1021-》 1019-》 1013-》 1009-》 997-》 991,针对附图1选取1021,作为p值,此时四次计算的余数相同,出现了延时冲突,针对附图2选取1019作为p值,此时计算结果无延时冲突,更换p值解决了前步p取值1021的延时冲突问题。
22.所述唯一识别码是一种约定好的不重复的数字信息。唯一识别码可以是硬件序列号,也可以是唯一的写入flash的序列号串码。
23.s2:设备发现索引值,接受通讯主站的查询命令,按索引值确定的时间片进行延时应答。
24.s3:通信主站通过回复延时应答,识别出所有的通信子站。
25.s4:根据不同的回复延时,使多个通信子站的应答处于不同的时间片,自动识别未初始化逻辑地址的通信子站。这种自动分配应答时间窗口的方法,可以避免同时应答的总线冲突。当哈希表碰撞而出现了偶发的应答冲突,通过通信协议的crc校验进行识别,然后更换除余法的质数再次进行设备查询,直到所有设备完成设备发现操作。
26.参照附图2和附图3所示,被除数就是通信子站的唯一识别码,可以是产品出厂时烧写的唯一产品序列号,也可以是硬件的唯一序列号,如mcu的产品序号编码unique id。得到的索引结果就是时间片索引,具体为通信子节点在响应查询命令时的回复延时。各子站除以哈希表大小1019得到的余数分别为1010、1016、1018和732。由于总地址空间是1k,则将设备查询指令的最大超时时间设置为1.024秒。所有四个子站在接收到查询指令后开始计时,并分别于第732ms、第1010ms、第1016ms和第1018ms回复应答信息。
27.所述地址分配阶段包括以下步骤:s5:采用变频脉冲测试的方式,预设频率区间,进行二分法筛选和分组,采用二分法按照返回的脉冲读数值进行优化,当读数误差比较小时,减少下一次的频率变化幅度;当读书误差较大时,增加下一次的频率变化幅度,直到每组仅剩余一个通信子站,确定通信子站的频率适配区间;具体为:基于“低频信号可以完整传输的距离最长,高频信号可以完整
返回脉冲群测量结果逻辑地址0x1742bytes总脉冲个数2bytes脉冲群间隔平均值,单位ms返回确认
根据表1和表2,多节点通信总线,通信主站自动完成最高通信波特率检测和按照总线拓扑分配地址的方法包括:参照附图4所示,设备发现阶段:地址0xff被定义为广播地址,当命令使用这个地址发送时,所有设备都可以接收处理;设备发现指令为一条广播指令,根据所发送数据,有二种状态区别:第一种是,当查询范围是0xffff时,所有收到命令的设备均参与回复;第二种是查询范围时0时,只有未分配逻辑地址的设备参与回复。
33.参与回复的设备,将返回各自的唯一识别码,当多个通信子站出现哈希表索引冲突,在相同时间片返回识别码信息时,数据会在总线上出现叠加,从而发生crc校验失败,通信主站将标识crc失败的时间片为可疑的冲突时间片,其他crc校验正确的设备,通信主站将进行逻辑地址的分配,通信子站得到逻辑地址后,以自身逻辑地址返回确认;处于冲突时间片的设备会以新质数再次进行设备发现操作,直到所有设备都分配到逻辑地址,此轮的逻辑地址为临时地址,在第二阶段地址分配中会替换为最终的实际地址。
34.地址分配阶段:变频脉冲测试的过程参照附图5所示,具体的频率调整将按照二分法进行,首先确定一个系统可实现的最大频率,这里可以参考20mhz,系统时钟在100mhz以上的mcu是可以实现的。然后确定一个系统可实现的最小频率,可以取10khz,因为9600是串口通信常选取的最小通信波特率。
35.首先以10khz进行脉冲测量,正常情况下所有通信子站都能返回正确的测量结果,测量错误的通信子站将被视为故障通信子站。
36.然后以20mhz进行脉冲测量,由于频率过高,此时可能所有通信子站的结果都是错误的。
37.然后取10khz和20mhz的中间频率9.995mhz测量,这时会有三种结果:全部通信子站测量正确、全部错误、部分正确,将测量正确的通信子站分为一组,错误的通信子站分为一组。
38.正确的一组继续按照9.995mhz和20mhz取中间频率进行测量,错误的一组继续按照9.995mhz和10khz取中间频率进行测量。这样的频率段分组进行过程中,当一个分组内只有1个通信子站时,则这个分组可以停止测量。
39.参照附图6所示,a-f的6个通信子站,经过8轮频率测试最终确定所有子节点先后位置的过程。为了提高效率,测试中跳过了20mhz和10khz两个端点频率的测试。实际的测试频率,将以mcu系统时钟下,可以生成最接近二分法计算结果的频率进行。
40.第1轮测试以10mhz进行,a-f全部失败。
41.第2轮测试以5mhz进行,c节点成功,abdef失败。
42.第3轮测试以2.5mhz进行,e节点成功,abdf失败。
43.第4轮测试以1.2mhz进行,abdf全部失败。
44.第5轮测试以0.6mhz进行,abf成功,d失败。
45.第6轮测试以300khz进行,d成功,abf成功但忽略。
46.第7轮测试以0.9mhz进行,af成功,b失败。
47.第8轮测试以1.15mhz进行,a成功,f失败。
48.这个测试获取了两个关键信息,首先确定了通信子站的拓扑顺序由近及远是ceafbd,其次是整个总线正常通信的最高频率是300khz,按照这个顺序重新分配逻辑地址,根据整个总线正常通信的最高频率重新配置通信波特率。
49.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现本发明所述的基于脉冲编码测量的通信波特率检测和地址分配的方法的步骤。
50.以上实施方式只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人了解本发明的内容并加以实施,并不能以此限制本发明的保护范围,凡根据本发明精神实质所做的等效变化或修饰,都应涵盖在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献