CN114465844B - 一种高可靠的波特率自适应系统及方法 - Google Patents
一种高可靠的波特率自适应系统及方法 Download PDFInfo
- Publication number
- CN114465844B CN114465844B CN202210252686.8A CN202210252686A CN114465844B CN 114465844 B CN114465844 B CN 114465844B CN 202210252686 A CN202210252686 A CN 202210252686A CN 114465844 B CN114465844 B CN 114465844B
- Authority
- CN
- China
- Prior art keywords
- message
- baud rate
- state
- instruction
- instrument equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012545 processing Methods 0.000 claims abstract description 47
- 238000004891 communication Methods 0.000 claims abstract description 35
- 238000012986 modification Methods 0.000 claims abstract description 27
- 230000004048 modification Effects 0.000 claims abstract description 27
- 230000007246 mechanism Effects 0.000 claims abstract description 9
- 238000012216 screening Methods 0.000 claims description 42
- 238000012795 verification Methods 0.000 claims description 30
- 238000004519 manufacturing process Methods 0.000 claims description 15
- 230000003044 adaptive effect Effects 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 8
- 230000009471 action Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 5
- 238000005070 sampling Methods 0.000 claims description 4
- 230000006978 adaptation Effects 0.000 claims description 2
- 238000013461 design Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 10
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/4013—Management of data rate on the bus
- H04L12/40136—Nodes adapting their rate to the physical link properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0002—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40169—Flexible bus arrangements
- H04L12/40176—Flexible bus arrangements involving redundancy
- H04L12/40182—Flexible bus arrangements involving redundancy by using a plurality of communication lines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Small-Scale Networks (AREA)
- Communication Control (AREA)
Abstract
本发明属于仪器仪表通信技术领域,一种高可靠的波特率自适应系统及方法,其中自适应方法包括以下步骤:(1)正常通讯状态,(2)主仪表设备发送请求状态,(3)从仪表设备处理请求状态,(4)主仪表设备接收反馈报文状态,(5)可靠性判断状态,(6)主仪表设备的错误处理状态,(7)从仪表设备的错误处理状态。本发明具有以下优点(1)方法设计上具有高可靠性,误识别、误修改概率更低。(2)方法设计上具有灵活性,可任意修改从、主或总线中的所有设备的波特率。(3)方法设计上具有冗余性,当出现不可避免的错误时有良好的容错处理机制。(4)系统设计上仅通过串行总线通信两根线即可任意设置设备波特率,通信所使用的线同时也是波特率修改信号的接线,不需要额外电路或接线,不影响原有通信接线。
Description
技术领域
本发明涉及一种高可靠的波特率自适应系统及方法,属于仪器仪表通信技术领域。
背景技术
在多控制器的总线中,串行异步通信是一种常用的通信方法,这种方法需要通信的多方约定好,需使用相同的波特率才能正常通信,而常用的波特率有多种,并且工业现场接入的设备往往是变化的,因此波特率自适应功能尤为重要。
现有方法虽然能够实现波特率自适应,但在识别的可靠性、设置波特率的灵活性上不能很好满足实际需求,无法指定自适应波特率的仪表设备、自适应仪表设备的数量以及设定波特率的数值,尤其在干扰较强的工业现场,串行异步总线中会存在很多杂波,对波特率自适应有一定干扰,容易发生波特率自适应指令的误识别,有一些方法引入额外电路,通过引入的信号指令确保波特率自适应的可靠性,但增加的布线需要重新布线,增加仪表设备成本,同时引入的信号也会对串行异步总线造成干扰。
发明内容
为了克服现有技术中存在的不足,本发明目的是提供一种高可靠的波特率自适应系统及方法,在不增加布线成本和引入额外信号的前提下,读写异步串行总线中任意仪表设备的波特率,更可靠的识别波特率自适应指令,降低误识别波特率修改指令和误修改波特率的发生概率,更灵活、可靠的自适应仪表设备波特率。
为了实现上述发明目的,解决己有技术中存在的问题,本发明采取的技术方案是:一种高可靠的波特率自适应系统,包括异步串行总线及第1、2…N仪表设备,所述第1仪表设备,包括第1波特率自适应模块及第1仪表控制模块,所述第1波特率自适应模块,包括第1筛选模块、第1线路驱动模块及第1状态机模块,所述第1筛选模块通过第1TTL接口与第1线路驱动模块相连,第1线路驱动模块通过第1UART接口与第1状态机模块相连,第1状态机模块通过第1AHB接口与第1仪表控制模块相连,所述第1筛选模块通过第1总线接口与异步串行总线相连;所述第2仪表设备,包括第2波特率自适应模块及第2仪表控制模块,所述第2波特率自适应模块,包括第2筛选模块、第2线路驱动模块及第2状态机模块,所述第2筛选模块通过第2TTL接口与第2线路驱动模块相连,第2线路驱动模块通过第2UART接口与第2状态机模块相连,第2状态机模块通过第2AHB接口与第2仪表控制模块相连,所述第2筛选模块通过第2总线接口与异步串行总线相连;所述第N仪表设备,包括第N波特率自适应模块及第N仪表控制模块,所述第N波特率自适应模块,包括第N筛选模块、第N线路驱动模块及第N状态机模块,所述第N筛选模块通过第NTTL接口与第N线路驱动模块相连,第N线路驱动模块通过第NUART接口与第N状态机模块相连,第N状态机模块通过第NAHB接口与第N仪表控制模块相连,所述第N筛选模块通过第N总线接口与异步串行总线相连。
所述系统采用的自适应方法,包括以下步骤:
步骤1、正常通讯状态,异步串行总线中的设备以原有通讯协议和波特率通讯;
步骤2、主仪表设备发送请求状态,具体包括以下子步骤:
(a)当需要波特率匹配时,以发送波特率自适应请求的设备作为主仪表设备,接收波特率自适应请求的设备作为从仪表设备,异步串行总线中的任意设备均可当作从仪表设备或主仪表设备,主仪表设备根据波特率调整需求,生成三种请求报文,分别为适配从仪表设备波特率请求、修改指定从仪表设备波特率请求、统一异步串行总线波特率请求;
(b)在报文的头部加入特征识别内容,为0x7F,用于从仪表设备接收波特率修改指令时,进行识别和可靠性判断;
(c)主仪表设备在不影响原通讯状态的前提下,通过筛选模块和线路驱动模块,以预设的固定波特率向从仪表设备发送波特率自适应请求;
(d)另外,在主仪表设备发送请求报文时,异步串行总线中存在刚刚发送或未执行完的反馈指令,此时会存在波特率修改冲突,因此对主仪表设备采用特征信号检测的方法避免冲突,当检测到异步串行总线中有带有特征信号的报文头时延时发送,避免冲突,具体包括以下子步骤:
(d1)当主仪表设备在发送指令报文前先进入冲突检测状态,判断异步串行总线中是否存在冲突,若异步串行总线中存在波特率自适应报文时,自适应报文的特征报文头信号会触发中断,使主仪表设备检测到异步串行总线中有未执行完的波特率自适应指令,此时主仪表设备进入冲突等待状态;
(d2)在冲突等待状态循环等待异步串行总线中的波特率修改报文执行完毕;
(d3)等待直到异步串行总线中检测不到特征信号,在超过安全时间后进入指令发送状态,发送指令报文;
(e)主仪表设备收、发的波特率自适应报文包含如下信息:
(e1)用于自适应报文识别、可靠性验证和冲突检测的报文头标识位,为0x7F,
(e2)用于区分状态机状态操作的指令码,
(e3)用于区分异步串行总线网内设备的设备ID,
(e4)用于区分通信端口的异步串行总线站号,
(e5)用于辅助区分设备的硬件地址,
(e6)用于传达执行情况和内容的协议号,
(e7)用于可靠性验证的CRC校验;
步骤3、从仪表设备处理请求状态,具体包括以下子步骤:
(a)从仪表设备通过筛选模块和线路驱动模块对异步串行总线信号实时监控,当带有特征信号的指令报文传入时进入可靠性判断,判断是否为可靠波特率修改指令;
(b)若认为不可靠,抛弃指令报文,按原波特率和协议正常通信;若认为可靠,从仪表设备接收全部报文,进入波特率自适应状态机,根据指令报文内容进行不同状态处理;
(c)若指令为适配从仪表设备波特率,则从仪表设备将自身波特率加入反馈给主仪表设备的报文中,返回从仪表设备波特率供主仪表设备适配;若指令为修改从仪表设备波特率,则从仪表设备修改自身波特率为指令值;若指令为统一异步串行总线中设备波特率,则所有收到指令的从修改自身波特率为指令值;
(d)从仪表设备执行指令后,需要将处理结果反馈给主仪表设备,当有多个从仪表设备同时给主仪表设备发送反馈报文时,会导致报文冲突,因此需要通过竞争机制修改从仪表设备发送反馈报文的优先级,以延时方式错开各个从仪表设备发送报文时机,具体包括以下子步骤:
(d1)从仪表设备在发送波特率自适应反馈报文前,需要先计算发送报文优先级,所有仪表在生产制造过程中都有唯一的设备识别码、产品类型码以及生产制造日期,在优先级计算阶段,将8位二进制设备识别码、3位二进制类型码、5位二进制制造日期组合成一个设备唯一的16位二进制数,将结果乘以一个比例系数,使计算结果在0到1之间,以计算结果作为设备发送报文的延时时间,最大延时1ms,将计算结果输出到延时发送状态;
(d2)在延时发送状态下,根据优先级计算结果延时等待发送,在延时结束后进入指令发送状态;
(d3)在指令发送状态下,发送反馈报文;
(e)从仪表设备将处理结果以报文形式反馈给主仪表设备;
步骤4、主仪表设备接收反馈报文状态,具体包括以下子步骤:
(a)主仪表设备通过筛选模块和线路驱动模块对异步串行总线信号实时监控,当带有特征信号的指令报文传入时进入可靠性判断,判断是否为可靠波特率修改指令;
(b)若认为不可靠,抛弃指令报文,按原波特率和协议正常通信;若认为可靠,主仪表设备接收全部报文,进入波特率自适应状态机,根据反馈报文内容进一步实现波特率自适应;
(c)若反馈指令为适配本机波特率,则修改主仪表设备自身波特率与从仪表设备波特率一致,实现主仪表设备适配从仪表设备的波特率;若指令为修改从仪表设备波特率,确认已修改完成,完成修改指定从仪表设备波特率的功能;若指令为统一异步串行总线中设备波特率,则根据反馈报文内容,记录已修改波特率的从设备序列号,并修改自身波特率与其他设备一致,完成统一异步串行总线中设备波特率的功能;
步骤5、可靠性判断状态,主、从仪表设备在收到报文时,需要判断收到的报文是否为波特率自适应报文,以及收到的波特率自适应报文是否可靠,主要通过报文等待状态、波特率验证状态、报文采集状态、报文格式验证状态及报文内容验证状态,具体包括以下子步骤:
(a)报文等待状态,通过筛选模块和线路驱动模块对异步串行总线信号筛选转换,确认是否为通信协议以及波特率自适应有关报文;若不是,认为不可靠,按原波特率和协议处理报文;若是,由特殊报文头字节的第一个下降沿信号触发中断,进入波特率验证状态;
(b)波特率验证状态,验证采集的报文波特率是否为预设波特率,将报文头部的第一个字节看做电平信号,以预设波特率周期的一半采集电平中段信号,采集1字节的报文头内容,与波特率自适应特征报文头7F比较,判断采样数据与预设报文头数据是否一致;若不是,认为不是预设波特率,报文信息不可靠,按原波特率与协议处理报文;若是,认为是预设波特率,进入报文采集状态;
(c)报文采集状态,在报文采集状态以预设波特率周期的时间间隔采集全部报文信息,采集完成后进入报文格式验证状态;
(d)报文格式验证状态,在报文格式验证状态比较采集的报文的数据格式是否符合波特率自适应报文格式,若不是,认为不可靠,按原波特率与协议处理报文,若是,进入报文内容验证状态;
(e)报文内容验证状态,计算采集报文的CRC校验和,比较和报文中是否一致;若不是,认为不可靠,按原波特率与协议处理报文,若是,认为是可靠波特率自适应请求,进入状态机进行相应处理动作;
步骤6、主仪表设备的错误处理状态,具体包括以下子步骤:
(a)主仪表设备在以下两种情况会进入错误处理状态,在状态1发送请求状态中,发送报文后超过设定时间未收到反馈报文,在状态4主仪表设备接收反馈报文状态中,收到从仪表设备反馈的错误报文;
(b)在错误处理状态下,主仪表设备针对发生的错误做相应的错误处理动作,对于超时为反馈的情况,主仪表设备再次发送请求报文,对于收到错误反馈的情况,主仪表设备根据反馈代码修改请求报文再次发送;
(c)若重发次数超过阙值,主仪表设备放弃自适应请求;
步骤7、从仪表设备的错误处理状态,具体包括以下子步骤:
(a)从仪表设备在状态3从仪表设备处理请求状态时,通过可靠性验证,并采集全部指令报文后,判断指令报文参数是否有效;
(b)若指令报文的指令码、协议号、波特率、CRC校验参数超过从仪表设备的取值范围,生成错误码;
(c)将错误报文发送给主仪表设备,供主仪表设备进行相应的错误处理。
本发明有益效果是:一种高可靠的波特率自适应系统及方法,其中自适应方法包括以下步骤:(1)正常通讯状态,(2)主仪表设备发送请求状态,(3)从仪表设备处理请求状态,(4)主仪表设备接收反馈报文状态,(5)可靠性判断状态,(6)主仪表设备的错误处理状态,(7)从仪表设备的错误处理状态。与现有技术相比,本发明具有以下优点:一是,方法设计上具有高可靠性,误识别、误修改概率更低。当有报文传入时,共进行四次可靠性判断,和一次冲突判断。其中四次可靠性判断的第一次为硬件处理判断,第二次通过报文头判断,第三次通过格式判断,第四次通过CRC判断,以160位的报文为例,第一、第二次会过滤到绝大多数的非通信协议和波特率设置报文,第三次会过滤掉不符合波特率设置格式的报文,此时通过的报文为采用预设波特率并且与波特率设置格式相同指令码相同的报文,在实际工程中符合条件的报文几乎很少,第四次通过16位CRC判断,160位报文的16位CRC校验重复概率在实际测试下概率约为百万分之一数量级。此外,在主设备发送报文和从设备反馈报文两种情况下,通过特殊报文头产生的中断进行冲突判断,在不影响原有通信的前提下,可以可靠地修改设备通信波特率,减少误识别和误修改波特率的概率。
二是,方法设计上具有灵活性,可任意修改从、主或总线中的所有设备的波特率。
三是,方法设计上具有冗余性,当出现不可避免的错误时有良好的容错处理机制。
四是,系统设计上仅通过串行总线通信两根线即可任意设置设备波特率,通信所使用的线同时也是波特率修改信号的接线,不需要额外电路或接线,不影响原有通信接线。
附图说明
图1是本发明的自适应系统结构框图。
图2是本发明的自适应方法状态机结构图。
图3是本发明的自适应方法的可靠性判断流程图。
图4是本发明的自适应方法主仪表设备的错误处理状态图。
图5是本发明的自适应方法从仪表设备的错误处理状态图。
图6是本发明的自适应方法主仪表设备竞争机制状态图。
图7是本发明的自适应方法从仪表设备竞争机制状态图。
具体实施方式
下面结合说明书附图对本发明作进一步说明。
如图1所示,一种高可靠的波特率自适应系统,包括异步串行总线及第1、2…N仪表设备,所述第1仪表设备,包括第1波特率自适应模块及第1仪表控制模块,所述第1波特率自适应模块,包括第1筛选模块、第1线路驱动模块及第1状态机模块,所述第1筛选模块通过第1TTL接口与第1线路驱动模块相连,第1线路驱动模块通过第1UART接口与第1状态机模块相连,第1状态机模块通过第1AHB接口与第1仪表控制模块相连,所述第1筛选模块通过第1总线接口与异步串行总线相连;所述第2仪表设备,包括第2波特率自适应模块及第2仪表控制模块,所述第2波特率自适应模块,包括第2筛选模块、第2线路驱动模块及第2状态机模块,所述第2筛选模块通过第2TTL接口与第2线路驱动模块相连,第2线路驱动模块通过第2UART接口与第2状态机模块相连,第2状态机模块通过第2AHB接口与第2仪表控制模块相连,所述第2筛选模块通过第2总线接口与异步串行总线相连;所述第N仪表设备,包括第N波特率自适应模块及第N仪表控制模块,所述第N波特率自适应模块,包括第N筛选模块、第N线路驱动模块及第N状态机模块,所述第N筛选模块通过第NTTL接口与第N线路驱动模块相连,第N线路驱动模块通过第NUART接口与第N状态机模块相连,第N状态机模块通过第NAHB接口与第N仪表控制模块相连,所述第N筛选模块通过第N总线接口与异步串行总线相连。所述筛选模块,用于筛选出波特率自适应报文信号并剔除总线中的杂波干扰,将物理量转为可识别的电平信号,将筛选后的信号传给线路驱动模块。所述线路驱动模块,用于特征信号识别和协议信号转换,将筛选模块处理后的高速数字信号转为状态机模块可处理的总线协议报文,并将状态机模块生成的指令发送到总线中,辅助识别波特率修改报文的特征信号。所述状态机模块,用于搭载波特率自适应状态机,判别报文和特征信号的可靠性,根据传入的指令做相应波特率自适应方法处理,对可能出现冲突的设备做优先级计算,当有错误发生时反馈错误并处理。
如图2所示,一种高可靠的波特率自适应方法,包括以下步骤:
步骤1、正常通讯状态,异步串行总线中的设备以原有通讯协议和波特率通讯;
步骤2、主仪表设备发送请求状态,具体包括以下子步骤:
(a)当需要波特率匹配时,以发送波特率自适应请求的设备作为主仪表设备,接收波特率自适应请求的设备作为从仪表设备,异步串行总线中的任意设备均可当作从仪表设备或主仪表设备,主仪表设备根据波特率调整需求,生成三种请求报文,分别为适配从仪表设备波特率请求、修改指定从仪表设备波特率请求、统一异步串行总线波特率请求;
(b)在报文的头部加入特征识别内容,为7F,用于从仪表设备接收波特率修改指令时,进行识别和可靠性判断;
(c)主仪表设备在不影响原通讯状态的前提下,通过筛选模块和线路驱动模块,以预设的固定波特率向从仪表设备发送波特率自适应请求;
(d)另外,在主仪表设备发送请求报文时,异步串行总线中存在刚刚发送或未执行完的反馈指令,此时会存在波特率修改冲突,因此对主仪表设备采用特征信号检测的方法避免冲突,当检测到异步串行总线中有带有特征信号的报文头时延时发送,避免冲突,主仪表设备竞争机制状态图,如图6所示,具体包括以下子步骤:
(d1)当主仪表设备在发送指令报文前先进入冲突检测状态,判断异步串行总线中是否存在冲突,若异步串行总线中存在波特率自适应报文时,自适应报文的特征报文头信号会触发中断,使主仪表设备检测到异步串行总线中有未执行完的波特率自适应指令,此时主仪表设备进入冲突等待状态;
(d2)在冲突等待状态循环等待异步串行总线中的波特率修改报文执行完毕;
(d3)等待直到异步串行总线中检测不到特征信号,在超过安全时间后进入指令发送状态,发送指令报文;
(e)主仪表设备收、发的波特率自适应报文包含如下信息:
(e1)用于自适应报文识别、可靠性验证和冲突检测的报文头标识位,为0x7F,
(e2)用于区分状态机状态操作的指令码,
(e3)用于区分异步串行总线网内设备的设备ID,
(e4)用于区分通信端口的异步串行总线站号,
(e5)用于辅助区分设备的硬件地址,
(e6)用于传达执行情况和内容的协议号,
(e7)用于可靠性验证的CRC校验;
步骤3、从仪表设备处理请求状态,具体包括以下子步骤:
(a)从仪表设备通过筛选模块和线路驱动模块对异步串行总线信号实时监控,当带有特征信号的指令报文传入时进入可靠性判断,判断是否为可靠波特率修改指令;
(b)若认为不可靠,抛弃指令报文,按原波特率和协议正常通信;若认为可靠,从仪表设备接收全部报文,进入波特率自适应状态机,根据指令报文内容进行不同状态处理;
(c)若指令为适配从仪表设备波特率,则从仪表设备将自身波特率加入反馈给主仪表设备的报文中,返回从仪表设备波特率供主仪表设备适配;若指令为修改从仪表设备波特率,则从仪表设备修改自身波特率为指令值;若指令为统一异步串行总线中设备波特率,则所有收到指令的从修改自身波特率为指令值;
(d)从仪表设备执行指令后,需要将处理结果反馈给主仪表设备,当有多个从仪表设备同时给主仪表设备发送反馈报文时,会导致报文冲突,因此需要通过竞争机制修改从仪表设备发送反馈报文的优先级,以延时方式错开各个从仪表设备发送报文时机,从仪表设备竞争机制状态图,如图7所示,具体包括以下子步骤:
(d1)从仪表设备在发送波特率自适应反馈报文前,需要先计算发送报文优先级,所有仪表在生产制造过程中都有唯一的设备识别码、产品类型码以及生产制造日期,在优先级计算阶段,将8位二进制设备识别码、3位二进制类型码、5位二进制制造日期组合成一个设备唯一的16位二进制数,将结果乘以一个比例系数,使计算结果在0到1之间,以计算结果作为设备发送报文的延时时间,最大延时1ms,将计算结果输出到延时发送状态;
(d2)在延时发送状态下,根据优先级计算结果延时等待发送,在延时结束后进入指令发送状态;
(d3)在指令发送状态下,发送反馈报文;
(e)从仪表设备将处理结果以报文形式反馈给主仪表设备;
步骤4、主仪表设备接收反馈报文状态,具体包括以下子步骤:
(a)主仪表设备通过筛选模块和线路驱动模块对异步串行总线信号实时监控,当带有特征信号的指令报文传入时进入可靠性判断,判断是否为可靠波特率修改指令;
(b)若认为不可靠,抛弃指令报文,按原波特率和协议正常通信;若认为可靠,主仪表设备接收全部报文,进入波特率自适应状态机,根据反馈报文内容进一步实现波特率自适应;
(c)若反馈指令为适配本机波特率,则修改主仪表设备自身波特率与从仪表设备波特率一致,实现主仪表设备适配从仪表设备的波特率;若指令为修改从仪表设备波特率,确认已修改完成,完成修改指定从仪表设备波特率的功能;若指令为统一异步串行总线中设备波特率,则根据反馈报文内容,记录已修改波特率的从设备序列号,并修改自身波特率与其他设备一致,完成统一异步串行总线中设备波特率的功能;
步骤5、可靠性判断状态,主、从仪表设备在收到报文时,需要判断收到的报文是否为波特率自适应报文,以及收到的波特率自适应报文是否可靠,主要通过报文等待状态、波特率验证状态、报文采集状态、报文格式验证状态及报文内容验证状态,可靠性判断流程图,如图3所示,具体包括以下子步骤:
(a)报文等待状态,通过筛选模块和线路驱动模块对异步串行总线信号筛选转换,确认是否为通信协议以及波特率自适应有关报文;若不是,认为不可靠,按原波特率和协议处理报文;若是,由特殊报文头字节的第一个下降沿信号触发中断,进入波特率验证状态;
(b)波特率验证状态,验证采集的报文波特率是否为预设波特率,将报文头部的第一个字节看做电平信号,以预设波特率周期的一半采集电平中段信号,采集1字节的报文头内容,与波特率自适应特征报文头7F比较,判断采样数据与预设报文头数据是否一致;若不是,认为不是预设波特率,报文信息不可靠,按原波特率与协议处理报文;若是,认为是预设波特率,进入报文采集状态;例如,预设波特率设为4800Baud/s,采样时间为2.08μs,报文头为0x7F,则从第一个字节的第一位进入中断开始采集,若采集的报文第一个字节符合0x7F,则认为可靠,采集后续所有报文;
(c)报文采集状态,在报文采集状态以预设波特率周期的时间间隔采集全部报文信息,采集完成后进入报文格式验证状态;
(d)报文格式验证状态,在报文格式验证状态比较采集的报文的数据格式是否符合波特率自适应报文格式,若不是,认为不可靠,按原波特率与协议处理报文,若是,进入报文内容验证状态;
(e)报文内容验证状态,计算采集报文的CRC校验和,比较和报文中是否一致;若不是,认为不可靠,按原波特率与协议处理报文,若是,认为是可靠波特率自适应请求,进入状态机进行相应处理动作;
步骤6、主仪表设备的错误处理状态,主仪表设备的错误处理状态图,如图4所示,具体包括以下子步骤:
(a)主仪表设备在以下两种情况会进入错误处理状态,在步骤2主仪表设备发送请求状态中,发送报文后超过设定时间未收到反馈报文,在步骤4主仪表设备接收反馈报文状态中,收到从仪表设备反馈的错误报文;
(b)在错误处理状态下,主仪表设备针对发生的错误做相应的错误处理动作,对于超时为反馈的情况,主仪表设备再次发送请求报文,对于收到错误反馈的情况,主仪表设备根据反馈代码修改请求报文再次发送;
(c)若重发次数超过阙值,主仪表设备放弃自适应请求;
步骤7、从仪表设备的错误处理状态,从仪表设备的错误处理状态图,如图5所示,具体包括以下子步骤:
(a)在步骤3从仪表设备处理请求状态中,通过可靠性验证,并采集全部指令报文后,判断指令报文参数是否有效;
(b)若指令报文的指令码、协议号、波特率、CRC校验参数超过从仪表设备的取值范围,生成错误码;
(c)将错误报文发送给主仪表设备,供主仪表设备进行相应的错误处理。
Claims (2)
1.一种高可靠的波特率自适应方法,其特征在于,包括以下步骤:
步骤1、正常通讯状态,异步串行总线中的设备以原有通讯协议和波特率通讯;
步骤2、主仪表设备发送请求状态,具体包括以下子步骤:
(a)当需要波特率匹配时,以发送波特率自适应请求的设备作为主仪表设备,接收波特率自适应请求的设备作为从仪表设备,异步串行总线中的任意设备均可当作从仪表设备或主仪表设备,主仪表设备根据波特率调整需求,生成三种请求报文,分别为适配从仪表设备波特率请求、修改指定从仪表设备波特率请求、统一异步串行总线波特率请求;
(b)在报文的头部加入特征识别内容,为0x7F,用于从仪表设备接收波特率修改指令时,进行识别和可靠性判断;
(c)主仪表设备在不影响原通讯状态的前提下,通过筛选模块和线路驱动模块,以预设的固定波特率向从仪表设备发送波特率自适应请求;
(d)另外,在主仪表设备发送请求报文时,异步串行总线中存在刚刚发送或未执行完的反馈指令,此时会存在波特率修改冲突,因此对主仪表设备采用特征信号检测的方法避免冲突,当检测到异步串行总线中有带有特征信号的报文头时延时发送,避免冲突,具体包括以下子步骤:
(d1)当主仪表设备在发送指令报文前先进入冲突检测状态,判断异步串行总线中是否存在冲突,若异步串行总线中存在波特率自适应报文时,自适应报文的特征报文头信号会触发中断,使主仪表设备检测到异步串行总线中有未执行完的波特率自适应指令,此时主仪表设备进入冲突等待状态;
(d2)在冲突等待状态循环等待异步串行总线中的波特率修改报文执行完毕;
(d3)等待直到异步串行总线中检测不到特征信号,在超过安全时间后进入指令发送状态,发送指令报文;
(e)主仪表设备收、发的波特率自适应报文包含如下信息:
(e1)用于自适应报文识别、可靠性验证和冲突检测的报文头标识位,为0x7F,
(e2)用于区分状态机状态操作的指令码,
(e3)用于区分异步串行总线网内设备的设备ID,
(e4)用于区分通信端口的异步串行总线站号,
(e5)用于辅助区分设备的硬件地址,
(e6)用于传达执行情况和内容的协议号,
(e7)用于可靠性验证的CRC校验;
步骤3、从仪表设备处理请求状态,具体包括以下子步骤:
(a)从仪表设备通过筛选模块和线路驱动模块对异步串行总线信号实时监控,当带有特征信号的指令报文传入时进入可靠性判断,判断是否为可靠波特率修改指令;
(b)若认为不可靠,抛弃指令报文,按原波特率和协议正常通信;若认为可靠,从仪表设备接收全部报文,进入波特率自适应状态机,根据指令报文内容进行不同状态处理;
(c)若指令为适配从仪表设备波特率,则从仪表设备将自身波特率加入反馈给主仪表设备的报文中,返回从仪表设备波特率供主仪表设备适配;若指令为修改从仪表设备波特率,则从仪表设备修改自身波特率为指令值;若指令为统一异步串行总线中设备波特率,则所有收到指令的从修改自身波特率为指令值;
(d)从仪表设备执行指令后,需要将处理结果反馈给主仪表设备,当有多个从仪表设备同时给主仪表设备发送反馈报文时,会导致报文冲突,因此需要通过竞争机制修改从仪表设备发送反馈报文的优先级,以延时方式错开各个从仪表设备发送报文时机,具体包括以下子步骤:
(d1)从仪表设备在发送波特率自适应反馈报文前,需要先计算发送报文优先级,所有仪表在生产制造过程中都有唯一的设备识别码、产品类型码以及生产制造日期,在优先级计算阶段,将8位二进制设备识别码、3位二进制类型码、5位二进制制造日期组合成一个设备唯一的16位二进制数,将16位二进制数乘以一个比例系数,使计算结果在0到1之间,以计算结果作为设备发送报文的延时时间,最大延时1ms,将计算结果输出到延时发送状态;
(d2)在延时发送状态下,根据优先级计算结果延时等待发送,在延时结束后进入指令发送状态;
(d3)在指令发送状态下,发送反馈报文;
(e)从仪表设备将处理结果以报文形式反馈给主仪表设备;
步骤4、主仪表设备接收反馈报文状态,具体包括以下子步骤:
(a)主仪表设备通过筛选模块和线路驱动模块对异步串行总线信号实时监控,当带有特征信号的指令报文传入时进入可靠性判断,判断是否为可靠波特率修改指令;
(b)若认为不可靠,抛弃指令报文,按原波特率和协议正常通信;若认为可靠,主仪表设备接收全部报文,进入波特率自适应状态机,根据反馈报文内容进一步实现波特率自适应;
(c)若反馈指令为适配本机波特率,则修改主仪表设备自身波特率与从仪表设备波特率一致,实现主仪表设备适配从仪表设备的波特率;若指令为修改从仪表设备波特率,确认已修改完成,完成修改指定从仪表设备波特率的功能;若指令为统一异步串行总线中设备波特率,则根据反馈报文内容,记录已修改波特率的从设备序列号,并修改自身波特率与其他设备一致,完成统一异步串行总线中设备波特率的功能;
步骤5、可靠性判断状态,主、从仪表设备在收到报文时,需要判断收到的报文是否为波特率自适应报文,以及收到的波特率自适应报文是否可靠,主要通过报文等待状态、波特率验证状态、报文采集状态、报文格式验证状态及报文内容验证状态,具体包括以下子步骤:
(a)报文等待状态,通过筛选模块和线路驱动模块对异步串行总线信号筛选转换,确认是否为通信协议以及波特率自适应有关报文;若不是,认为不可靠,按原波特率和协议处理报文;若是,由特殊报文头字节的第一个下降沿信号触发中断,进入波特率验证状态;
(b)波特率验证状态,验证采集的报文波特率是否为预设波特率,将报文头部的第一个字节看作电平信号,以预设波特率周期的一半采集电平中段信号,采集1字节的报文头内容,与波特率自适应特征报文头7F比较,判断采样数据与预设报文头数据是否一致;若不是,认为不是预设波特率,报文信息不可靠,按原波特率与协议处理报文;若是,认为是预设波特率,进入报文采集状态;
(c)报文采集状态,在报文采集状态以预设波特率周期的时间间隔采集全部报文信息,采集完成后进入报文格式验证状态;
(d)报文格式验证状态,在报文格式验证状态比较采集的报文的数据格式是否符合波特率自适应报文格式,若不是,认为不可靠,按原波特率与协议处理报文,若是,进入报文内容验证状态;
(e)报文内容验证状态,计算采集报文的CRC校验和,比较和报文中是否一致;若不是,认为不可靠,按原波特率与协议处理报文,若是,认为是可靠波特率自适应请求,进入状态机进行相应处理动作;
步骤6、主仪表设备的错误处理状态,具体包括以下子步骤:
(a)主仪表设备在以下两种情况会进入错误处理状态,在状态1发送请求状态中,发送报文后超过设定时间未收到反馈报文,在状态4主仪表设备接收反馈报文状态中,收到从仪表设备反馈的错误报文;
(b)在错误处理状态下,主仪表设备针对发生的错误做相应的错误处理动作,对于超时为反馈的情况,主仪表设备再次发送请求报文,对于收到错误反馈的情况,主仪表设备根据反馈代码修改请求报文再次发送;
(c)若重发次数超过阙值,主仪表设备放弃自适应请求;
步骤7、从仪表设备的错误处理状态,具体包括以下子步骤:
(a)从仪表设备在状态3从仪表设备处理请求状态时,通过可靠性验证,并采集全部指令报文后,判断指令报文参数是否有效;
(b)若指令报文的指令码、协议号、波特率、CRC校验参数超过从仪表设备的取值范围,生成错误码;
(c)将错误报文发送给主仪表设备,供主仪表设备进行相应的错误处理。
2.一种采用如权利要求1所述方法的高可靠的波特率自适应系统,其特征在于:它包括异步串行总线及第1、2…N仪表设备,所述第1仪表设备,包括第1波特率自适应模块及第1仪表控制模块,所述第1波特率自适应模块,包括第1筛选模块、第1线路驱动模块及第1状态机模块,所述第1筛选模块通过第1TTL接口与第1线路驱动模块相连,第1线路驱动模块通过第1UART接口与第1状态机模块相连,第1状态机模块通过第1AHB接口与第1仪表控制模块相连,所述第1筛选模块通过第1总线接口与异步串行总线相连;所述第2仪表设备,包括第2波特率自适应模块及第2仪表控制模块,所述第2波特率自适应模块,包括第2筛选模块、第2线路驱动模块及第2状态机模块,所述第2筛选模块通过第2TTL接口与第2线路驱动模块相连,第2线路驱动模块通过第2UART接口与第2状态机模块相连,第2状态机模块通过第2AHB接口与第2仪表控制模块相连,所述第2筛选模块通过第2总线接口与异步串行总线相连;所述第N仪表设备,包括第N波特率自适应模块及第N仪表控制模块,所述第N波特率自适应模块,包括第N筛选模块、第N线路驱动模块及第N状态机模块,所述第N筛选模块通过第NTTL接口与第N线路驱动模块相连,第N线路驱动模块通过第NUART接口与第N状态机模块相连,第N状态机模块通过第NAHB接口与第N仪表控制模块相连,所述第N筛选模块通过第N总线接口与异步串行总线相连。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210252686.8A CN114465844B (zh) | 2022-03-12 | 2022-03-12 | 一种高可靠的波特率自适应系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210252686.8A CN114465844B (zh) | 2022-03-12 | 2022-03-12 | 一种高可靠的波特率自适应系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114465844A CN114465844A (zh) | 2022-05-10 |
CN114465844B true CN114465844B (zh) | 2023-11-07 |
Family
ID=81416940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210252686.8A Active CN114465844B (zh) | 2022-03-12 | 2022-03-12 | 一种高可靠的波特率自适应系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114465844B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6198779B1 (en) * | 1999-05-05 | 2001-03-06 | Motorola | Method and apparatus for adaptively classifying a multi-level signal |
US7116739B1 (en) * | 2002-10-31 | 2006-10-03 | Zilog, Inc. | Auto baud system and method and single pin communication interface |
CN104199298A (zh) * | 2014-08-18 | 2014-12-10 | 广西师范大学 | 一种can总线波特率自适应的方法 |
CN105656600A (zh) * | 2015-12-29 | 2016-06-08 | 湖南先步信息股份有限公司 | 一种从站自适应两种通信协议的通信方法 |
CN106411483A (zh) * | 2016-08-23 | 2017-02-15 | 华立科技股份有限公司 | 一种检测仪表通讯波特率准确度的方法及系统 |
CN107038135A (zh) * | 2017-03-24 | 2017-08-11 | 深圳市顺讯电子有限公司 | 一种串口波特率自适应系统和方法 |
CN111694785A (zh) * | 2020-05-20 | 2020-09-22 | 哈尔滨工业大学 | 反馈型的uart自适应波特率系统及自适应波特率方法 |
CN112751738A (zh) * | 2020-12-29 | 2021-05-04 | 北京万集智能网联技术有限公司 | 波特率自适应方法、装置、计算机设备和可读存储介质 |
CN114006842A (zh) * | 2021-10-29 | 2022-02-01 | 北京中科昊芯科技有限公司 | 一种检测波特率的方法、装置、设备和介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010050943A1 (en) * | 1989-08-03 | 2001-12-13 | Mahany Ronald L. | Radio frequency communication network having adaptive communication parameters |
-
2022
- 2022-03-12 CN CN202210252686.8A patent/CN114465844B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6198779B1 (en) * | 1999-05-05 | 2001-03-06 | Motorola | Method and apparatus for adaptively classifying a multi-level signal |
US7116739B1 (en) * | 2002-10-31 | 2006-10-03 | Zilog, Inc. | Auto baud system and method and single pin communication interface |
CN104199298A (zh) * | 2014-08-18 | 2014-12-10 | 广西师范大学 | 一种can总线波特率自适应的方法 |
CN105656600A (zh) * | 2015-12-29 | 2016-06-08 | 湖南先步信息股份有限公司 | 一种从站自适应两种通信协议的通信方法 |
CN106411483A (zh) * | 2016-08-23 | 2017-02-15 | 华立科技股份有限公司 | 一种检测仪表通讯波特率准确度的方法及系统 |
CN107038135A (zh) * | 2017-03-24 | 2017-08-11 | 深圳市顺讯电子有限公司 | 一种串口波特率自适应系统和方法 |
CN111694785A (zh) * | 2020-05-20 | 2020-09-22 | 哈尔滨工业大学 | 反馈型的uart自适应波特率系统及自适应波特率方法 |
CN112751738A (zh) * | 2020-12-29 | 2021-05-04 | 北京万集智能网联技术有限公司 | 波特率自适应方法、装置、计算机设备和可读存储介质 |
CN114006842A (zh) * | 2021-10-29 | 2022-02-01 | 北京中科昊芯科技有限公司 | 一种检测波特率的方法、装置、设备和介质 |
Non-Patent Citations (2)
Title |
---|
CAN波特率自适应在屏蔽门系统中的应用;包演生;电子设计工程;全文 * |
波特率自适应信号接收装置设计及其FPGA实现;李森源;易清明;石敏;;计算机应用与软件(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114465844A (zh) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4195272B2 (ja) | Can−コントローラ内部のデータ伝送におけるエラーの認識方法,can−コントローラ,プログラム,記録媒体,及び制御装置 | |
US5696911A (en) | Arrangement for eliminating malfunction and/or permitting high-speed transmission in a serial bus connection, and transmitter and receiver units linked to the latter | |
AU2012238883A1 (en) | Method and apparatus for adapting the data transmission security in a serial bus system | |
JP3117000B2 (ja) | 通信システムおよびそれに使用される電子制御装置 | |
CN101404556A (zh) | 一线总线的通讯方法 | |
US11463198B2 (en) | Security module for a serial communications device | |
CN112003773A (zh) | 一种can总线安全数据的端到端校验方法及系统 | |
EP0024940B1 (en) | Method and apparatus for transmission of serial data | |
US20040153907A1 (en) | Safety network using phantom address information | |
JP3486990B2 (ja) | シリアル通信装置 | |
CN116489043A (zh) | 一种can通信自动化测试方法 | |
CN114465844B (zh) | 一种高可靠的波特率自适应系统及方法 | |
CN111147463B (zh) | 基于异步422总线的可变长度帧高可靠性数据接收方法 | |
CN116266803A (zh) | 用于控制器局域网的设备 | |
CN101425877A (zh) | 一种模块间通讯的方法 | |
EP1305922B1 (en) | Ground level shift detection in can systems | |
US6356584B1 (en) | Method for the clocked serial data transmission of data blocks of identical block length | |
CN113223434A (zh) | 发送模块、接收模块、接口调整方法、系统及存储介质 | |
CN113285858A (zh) | 网络节点 | |
KR102595722B1 (ko) | 통신 네트워크, 이에 연결된 노드를 식별하는 방법 및 장치 | |
CN114303106A (zh) | 控制模块和输入/输出模块之间的诊断数据传输和/或参数数据传输 | |
US5907690A (en) | Modular interface devices for a distributed input/output system | |
EP4199434A1 (en) | Apparatus for a controller area network | |
CN109802761B (zh) | 一种故障识别方法及装置 | |
CN116886779A (zh) | 一种sent协议解码检测电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |