CN114064533A - 一种rs-485信号极性的识别方法 - Google Patents
一种rs-485信号极性的识别方法 Download PDFInfo
- Publication number
- CN114064533A CN114064533A CN202010744819.4A CN202010744819A CN114064533A CN 114064533 A CN114064533 A CN 114064533A CN 202010744819 A CN202010744819 A CN 202010744819A CN 114064533 A CN114064533 A CN 114064533A
- Authority
- CN
- China
- Prior art keywords
- bit
- byte
- polarity
- data
- bits
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000004891 communication Methods 0.000 claims description 25
- 230000005540 biological transmission Effects 0.000 claims description 23
- 230000003111 delayed effect Effects 0.000 claims description 6
- 238000012937 correction Methods 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 69
- 238000013481 data capture Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000000853 adhesive Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明涉及一种RS‑485信号极性的识别方法,用于RS‑485收发器的信号极性识别,所述的RS‑485收发器连接有用于极性分析的MCU;所述的MCU对UART接收线路上的信号进行捕捉,并对捕捉到的信息进行分析,分析出当前线路的接线极性。与现有技术相比,本发明具有布线快捷,省时省力等优点。
Description
技术领域
本发明涉及RS-485总线,尤其是涉及一种RS-485信号极性的识别方法。
背景技术
RS-485总线是常用的通信线路,在仪表、照明等行业有很广泛的应用。在一般的应用中,都是将RS-485信号通过收发器和CMOS信号或TTL信号进行转换,然后与MCU连接。在实际的RS-485控制系统布线时,如果两根信号线A和B接反,将不能正常通信。但是现场接线时又一般不带电接线,这样如果接错了,要重新断电后进行纠正,非常麻烦。
在实际实用中,经常使用MCU进行RS-485通信。由于RS-485使用差分信号进行传输,而普通MCU采用CMOS或TTL信号,需要使用RS-485收发器对信号进行转换。典型的RS-485信号收发器结构如图1所示。
在图1的收发器示意图中,A、B接RS-485总线,R、RE、DE、D接MCU。由于接收和发送不会同时进行,因此器件设计时RE和DE分别是低电平有效和高电平有效,这样,在有些情况下,可将两个信号接在一起,实现一个控制信号切换输入输出。R是收发器将RS-485信号转换成COMS或TTL电平的输出,用于接MCU的UART输入端口(RXD),D是收发器将CMOS或TTL电平转换成RS-485信号的输入,用于接MCU中UART的输出信号(TXD)。典型的MCU与RS-485收发器的接线图如图2所示。
在具体应用时,为提高可靠性或安全性,可在图2的电路基础上,增加隔离电路,如图3所示。
在实际布线施工时,当将RS-485总线的两个信号线A、B接反时,无论有无隔离,都会使MCU接收到的R信号反向,同时MCU输出的信号到总线上,也会是反向信号。
如果接收到反向信号,MCU就不能解析出正确的数据,通信就会失败。
现有技术中为防止接错,常用的解决办法有4种:
1.采用可以防接错的接线端子(如航空插座),在需要连接的两台设备生产将时,用导线将需要连接的信号连接到外部端子,由设备生产商保证不出错。在实际装配时,直接连接端子,就可保证不会接错。这种方式由于需要增加成本较高的端子,只在较昂贵的设备或者需要经常拔插的应用时才会采用,而在常规产品中不宜采用。
2.在导线上印上各个信号的代号,这些代号与设备上的代号统一。这样装配时根据代号对号入座,不易装错。由于印上代号的线缆限制了导线的使用,因此这样的电缆厂家很少生产,需要订制,成本较高;另外各个厂家的代号可能不统一,也限制了实际的使用。
3.在装配前,给每根导线用不干胶纸或其材料贴上标识,标识的代号与设备上的代号统一。这样装配时根据标识进行装配,则不易装错。这是最常用的方法,但是每次装配需要额外的贴标识的步骤。另外,在装配时穿线、拖动过程中,有时标识也会脱落,需要重新处理,浪费时间。
4.采用几根线皮颜色都不相同的导线,在装配前,给每种颜色对应一种信号进行装配。这种方法也比较常用,但是经常出错。为了防止接错,需要接线后再进行核对,浪费工时。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种RS-485信号极性的识别方法。
本发明的目的可以通过以下技术方案来实现:
一种RS-485信号极性的识别方法,用于RS-485收发器的信号极性识别,所述的RS-485收发器连接有用于极性分析的MCU;所述的MCU对UART接收线路上的信号进行捕捉,并对捕捉到的信息进行分析,分析出当前线路的接线极性。
优选地,所述的信号捕捉采用如下几种方式中的一种或几种:
1)利用UART的数据接收和错误捕捉机制;
2)将UART的接收端口设置为IO中断模式,并使用一个定时器或计数器配合,采集UART接收端口的脉冲宽度;
3)将UART的接收端口设置为定时器捕捉模式,捕捉UART接收端口的脉冲宽度;
4)将UART的接收端口设置为普通输入口模式,分析通信口空闲时的电平。
优选地,所述的对捕捉到的信息进行分析采用如下几种方式中的一种或几种:
(1)对于使用信号捕捉方式1),若接收到正确的数据帧,则确认为极性正确;若收到错误达到设定次数或设定时间,则判定为极性出错;
(2)对于使用信号捕捉方式2)、3)、4)这三种方式,都可采用分析通信口空闲时电平的方式,即如果UART接收口的高电平超过设定时间,则认为是正确的极性;而如果接收口的低电平超过设定时间,则认为是相反的极性;
(3)对于使用信号捕捉方式2)、3)这两种方式,采用正反两种极性进行分析,解析数据;如果正向是解析成功,则说明极性正确;若反向解析成功,则说明极性相反;
(4)对于使用信号捕捉方式2)、3)这两种方式,对有特殊波形的通信帧格式,可针对该通讯帧格式的特点进行分析。
优选地,所述的分析通信口空闲时电平的方式具体包括:
a)假设在A点时启动接收器,则当总线无数据时,可在B点识别出帧错误,这种情况适用于空闲时总线固定为高的情况;
b)在总线空闲固定为低或不确定的情况,发送方在发送数据前或发送数据后,让总线保持一段时间的高电平,且这个时间大于10个位接收时间,在有奇偶校验时这个时间大于11个位接收的时间。
优选地,采用无校验位、1位停止位进行数据通信,利用帧错误进行极性识别,使用以下方式中一种或几种方式识别出极性:
1)发送一个最低位为1的字节,下一字节延迟至少1位的时间发送;
2)连续发送两个字节,第一个字节为0,第二个字节第7位为1;
3)发送两个字节,第一个字节为0,第二个字节延迟n位发送,n取值为1至7,且第二个字节第(7-n)位值为1;
4)发送两个字节,第一个字节为0,第二个字节延迟9位或更长时间发送;
5)连续发送两个字节,第一个字节不为0且最低位为0,第一个字节不为0的位为第m位,第二个字节第(m-1)位为1,其中最低位为第0位;
6)发送两个字节,第一个字节不为0且最低位为0,第一个字节不为0的位为第m位,第二个字节延迟n位时间发送,第二个字节第(m-n-1)位为1,其中最低位为第0位,n>0且n<m;
7)发送两个字节,第一个字节不为0且最低位为0,第一个字节不为0的位为第m位,第二个字节延迟至少(m+1)位时间发送,其中最低位为第0位。
优选地,采用无校验位、2位停止位进行数据通信,利用帧错误进行极性识别,使用以下方式中一种或几种方式识别出极性:
1)发送一个最低位为1的一个字节数据;
2)发送两个字节,第一个字节最低位为0,第m位为第1个非0位,延迟n位时间发送,若不延迟则连续发送时n的值取0,其中最低位为第0位,m从1到8,当发送值为0时,m=8,采用满足以下条件中一种或几种进行发送:
1>(n+1)<m,且第二字节第(m-n-2)位和第(m-n-1)位不全为0;
2>(n+1)=m,且第二字节第0位为1;
3>(n+1)>m。
优选地,使用有奇偶校验位、数据位为8位,停止位为1位时,其中数据位加上奇偶校验位共9位,使用以下方式中一种或几种识别出极性:
1)发送一个第0位为1的一个字节数据;
2)发送两个字节数据,第一个不为0但最低位为0,第m位为其第一个非0位,第二个字节延迟n位发送;m从1到9,当发送数据为0,奇校验时,m=8;当发送数据为0,偶校验时,m=9;当连续发送时,n=0;采用满足以下条件中一种或几种条件进行极识别:
1>(n≥(m+1));
2>(n<m)且第二个字节的第(m-(n+1))位值为1;
3>(n=m)且m为偶数;
4>((n+1)=m)且m为奇数;
5>((n+2)=m)且m为奇数,且第二字节第0位值为1;
6>((n+2)=m)且m为偶数,且第二字节第0位值为0;
7>(m≥(n+3))且(m≤(n+8)),且n为奇数,且第二字节第0位至第(m-(n+2))位中为1的位的个数为奇数;
8>(m≥(n+3))且(m≤(n+8)),且n为偶数,且第二字节第0位至第(m-(n+2))位中为1的位的个数为偶数;
9>m=9且n=0。
优选地,使用有奇偶校验位、数据8位、停止位为2位时,其中数据位加上奇偶校验位共9位,使用以下方式中一种或几种识别出极性:
3)发送一个最低位为1的一个字节数据;
4)发送两个字节数据,第一个不为0但最低位为0,第m位为其第一个非0位,第二个字节延迟n位发送;m从1到9,当发送数据为0,奇校验时,m=8;当发送数据为0,偶校验时,m=9;当连续发送时,n=0;采用满足以下条件中一种或几种条件进行极识别:
10>n≥m;
11>m≥(n+2)且第二字节的第(m-(n+2))位为1;
12>(n+1)=m且m为偶数;
13>(n+2)=m且m为奇数;
14>(n+3)=m且m为奇数,且第二字节第0位为1;
15>(n+3)=m且m为偶数,且第二字节第0位为0;
16>(m≥(n+4))且(m≤(n+8)),且n为奇数,且第二字节第0位至第(m-(n+2))位为1的个数为偶数;
17>(m≥(n+4))且(m≤(n+8)),且n为偶数,且第二字节第0位至第(m-(n+2))位为1的个数为奇数;
18>m=9,且第二字节第0位至第6位为1的个数为奇数;
优选地,对于无奇偶校验位或有1位奇偶校验位,8位数据、1位和2位停止位的使用场合,其中数据位加上奇偶校验位共9位,都有以下几种方式中一种或几种识别出极性错误:
1)按原来的方式发送数据,当发现奇偶错误或帧错误达到一定次数或时间后确认极性错误;
2)如果命令的数据组合恰巧使错误无法发现,则通过分析命令异常间接发现极性错误,即一定时间或次数,收到一些数据但不是合法命令,则认为极性错误,其中命令异常包括命令校验错、非法命令、非法数据、非法长度;
3)发送方在上电后到正式发送数据前的时间里,额外发送一组或几组命令,这一组或几组命令是一个特殊数据组合,确保接收端可以一次或多次引发帧错误或奇偶校验错误,从而切换极性。
优选地,都可以在发现极性错误后,对信号进行反向解码以获得数据;或者都可增加MCU内部或外部的极性切换电路将极性切换正确后,正确接后后续数据;或者既都可以确定极性不再改变,也都可以继续对线路进行分析,动态改变数据接收极性;也都可以将确认的极性信息保存下来,供下次上电后使用。
与现有技术相比,本发明具有以下优点:
1)目前有正向输入和反向输入有区分的接线方法,在接线错误后,尤其在操作困难的环境,如照明系统,因为空间位置和走线复杂,使得纠错非常困难,成本颇高,本发明可以动态分析极性,使用本发明即使接反也能接收数据,很好地解决了上述问题;
2)在现场布线或维修时,不用区分两根线,布线快捷,省时省力;
3)因为两根线不需要区分,对线材无色标等要求,方便采购、库存和管理。
附图说明
图1为典型的RS-485收发器;
图2为典型的MCU的与RS-485收发器的接线图;
图3为具有隔离的MCU的与RS-485收发器的接线图;
图4为通过空闲状态识别极性的示意图;
图5为通过发送数据前的状态识别极性的示意图;
图6为通过发送数据后的状态识别极性的示意图;
图7为无奇偶校验位,1位停止位的接收示意图一;
图8为无奇偶校验位,1位停止位的接收示意图二;
图9为无奇偶校验位,1位停止位的接收示意图三;
图10为无奇偶校验位,1位停止位的接收示意图四;
图11为无奇偶校验位,1位停止位的接收示意图五;
图12为无奇偶校验位,1位停止位的接收示意图六;
图13为无奇偶校验位,1位停止位的接收示意图七;
图14为无奇偶校验位,1位停止位的接收示意图八;
图15为无奇偶校验位,1位停止位的接收示意图九;
图16为无奇偶校验位,1位停止位的接收示意图十;
图17为无奇偶校验位,1位停止位的接收示意图十一;
图18为无奇偶校验位,1位停止位的接收示意图十二;
图19为无奇偶校验位,1位停止位的接收示意图十三;
图20为无奇偶校验位,1位停止位的接收示意图十四;
图21为无奇偶校验位,2位停止位的接收示意图一;
图22为无奇偶校验位,2位停止位的接收示意图二;
图23为无奇偶校验位,2位停止位的接收示意图三;
图24为无奇偶校验位,2位停止位的接收示意图四;
图25为无奇偶校验位,2位停止位的接收示意图五;
图26为无奇偶校验位,2位停止位的接收示意图六;
图27为无奇偶校验位,2位停止位的接收示意图七;
图28为无奇偶校验位,2位停止位的接收示意图八;
图29为无奇偶校验位,2位停止位的接收示意图九;
图30为无奇偶校验位,2位停止位的接收示意图十;
图31为无奇偶校验位,2位停止位的接收示意图十一;
图32为有奇偶校验位,1位停止位的接收示意图一;
图33为有奇偶校验位,1位停止位的接收示意图二;
图34为有奇偶校验位,1位停止位的接收示意图三;
图35为有奇偶校验位,1位停止位的接收示意图四;
图36为有奇偶校验位,1位停止位的接收示意图五;
图37为有奇偶校验位,1位停止位的接收示意图六;
图38为有奇偶校验位,1位停止位的接收示意图七;
图39为有奇偶校验位,1位停止位的接收示意图八;
图40为有奇偶校验位,1位停止位的接收示意图九;
图41为有奇偶校验位,1位停止位的接收示意图十;
图42为有奇偶校验位,1位停止位的接收示意图十一;
图43为有奇偶校验位,1位停止位的接收示意图十二;
图44为有奇偶校验位,1位停止位的接收示意图十三;
图45为有奇偶校验位,1位停止位的接收示意图十四;
图46为有奇偶校验位,1位停止位的接收示意图十五;
图47为有奇偶校验位,1位停止位的接收示意图十六;
图48为有奇偶校验位,1位停止位的接收示意图十七;
图49为有奇偶校验位,1位停止位的接收示意图十八;
图50为有奇偶校验位,1位停止位的接收示意图十九;
图51为有奇偶校验位,1位停止位的接收示意图二十;
图52为有奇偶校验位,1位停止位的接收示意图二十一;
图53为有奇偶校验位,1位停止位的接收示意图二十二
图54为有奇偶校验位,2位停止位的接收示意图一;
图55为有奇偶校验位,2位停止位的接收示意图二;
图56为有奇偶校验位,2位停止位的接收示意图三;
图57为有奇偶校验位,2位停止位的接收示意图四;
图58为有奇偶校验位,2位停止位的接收示意图五;
图59为有奇偶校验位,2位停止位的接收示意图六;
图60为有奇偶校验位,2位停止位的接收示意图七;
图61为有奇偶校验位,2位停止位的接收示意图八;
图62为有奇偶校验位,2位停止位的接收示意图九;
图63为有奇偶校验位,2位停止位的接收示意图十;
图64为有奇偶校验位,2位停止位的接收示意图十一;
图65为有奇偶校验位,2位停止位的接收示意图十二;
图66为有奇偶校验位,2位停止位的接收示意图十三;
图67为有奇偶校验位,2位停止位的接收示意图十四;
图68为有奇偶校验位,2位停止位的接收示意图十五;
图69为有奇偶校验位,2位停止位的接收示意图十六;
图70为有奇偶校验位,2位停止位的接收示意图十七;
图71为有奇偶校验位,2位停止位的接收示意图十八;
图72为有奇偶校验位,2位停止位的接收示意图十九;
图73为有奇偶校验位,2位停止位的接收示意图二十;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
本发明描述了一种RS-485信号极性的识别方法,支持RS-485信号A和B互换,解决接反引起的麻烦。采用该方案时,RS-485的两根通信线A、B可以不进行区分,由MCU进行判断。如果判断出接线正确,则继续进行正常通信;如果判断出接错,则可按反向解码或切换极性之后,再进行正常通信。该专利可用于DMX电源、DMX控制器或其它使用到RS-485的情形。
实现步骤如下:
1.在接收数据时进行极性数据捕捉,对数据进行分析。如果分析结果为极性错误,则接收数据按反向接收,或控制硬件将信号的极性进行切换;
2.之后根据需要,可保持当前极性或继续进行错误分析。
3.为了快速响应,还可以将极性信息保存起来。这样,当设备安装成功后,第一次上电可能极性不正确,但是一旦识别出正确的极性,之后上电时都可根据保存的极性信息进行正确接收。
在极性数据捕捉时,可采用如下几种方式中的一种或几种:
1.利用UART的数据接收和错误捕捉机制(如帧错误、奇偶校验错误等);
2.将UART的端口设置为IO中断模式,并使用一个定时/计数器配合,采集UART接收端口的脉冲宽度;
3.将UART的接收端口设置为定时器捕捉模式,捕捉UART接收端口的脉冲宽度;
4.将UART的端口设置为普通输入口模式,分析通信口空闲时的电平。
在极性数据分析时,可采用如下几种方式:
1.对于使用UART的数据接收和错误捕捉机制时,如果接收到正确的数据帧,确认为极性正确;若收到错误达到设定次数或设定时间,则判定为极性出错;
2.对于极性捕捉的2、3、4这三种方式,都可采用分析通信口空闲时电平的方式,即如果UART接收口的高电平超过设定时间,则认为是正确的极性;而如果接收口的低电平超过设定时间,则认为是相反的极性;
3.对于极性捕捉的2、3这两种方式,采用正反两种极性进行分析,解析数据;如果正向是解析成功,则说明极性正确;若反向解析成功,则说明极性相反;
4.对于极性捕捉的2、3这两种方式,对有特殊波形的通信帧格式,可针对该通讯帧格式的特点进行分析。
通过空闲时的电平识别极性,有两种方法
1.如图4所示,假设在A点时启动接收器,则当总线无数据时,可在B点识别出帧错误。这种情况适用于空闲时,总线固定为高的情况。
2.在总线空闲时固定为低的情况,可使发送方在发送数据前或发送数据后,让总线保持一段时间的高电平,只要这个时间大于10个位(有奇偶校验位时为11个位)接收时间,则可判断出极性。发送前的判断方式和图5相同,发送后的判断方式如图6所示。对于空闲时电平不定的情况,也用此方式进行识别。
在图5中,由于空闲时电平为低,此时,当发送前的信号变为高时,正常波形会将极性识别为反极性,而反向波形会将极性识别为正确。但是,当发送信号连续发送10个(有奇偶校验位时为11个位)高电平后,正确极性又会将极性识别正确,反向波形将极性识别为反向。当后面的一个字节发送时,由于不可能发送长达10个位(有奇偶校验位时为11个位)的电平,因此,最后识别的极性被确认。
在图6中,由于数据发送的过程中,不会有长达10个位(有奇偶校验位时为11个位)的固定电平。当数据发送结束后,一个长达10位(有奇偶校验位时为11个位)的高电平,可使接收方确认此电平为正常电平。
对于通过错误识别极性,以没有校验位进行分析。当停止位为1时的识别情况如表1所示,当停止位为2时的识别情况如表2所示。其中表1为8位数据无校验位,停止位为1时帧错误判断情况,表2为8位数据无校验位,停止位为2时帧错误判断情况。
表1
表2
因此,对于8位数据无校验位,停止位为1位时,可通过如下方式进行极性识别:
1)发送一个最低位为1的字节,下一字节延迟至少1位的时间发送;
2)连续发送两个字节,第一个字节为0,第二个字节第7位为1;
3)发送两个字节,第一个字节为0,第二个字节延迟n位发送,n取值为1至7,且第二个字节第(7-n)位值为1;
4)发送两个字节,第一个字节为0,第二个字节延迟9位或更长时间发送;
5)连续发送两个字节,第一个字节不为0且最低位(即第0位)为0,第一个字节不为0的位为第m位,第二个字节第(m-1)位为1;
6)发送两个字节,第一个字节不为0且最低位为0,第一个字节不为0的位为第m位(最低位为第0位),第二个字节延迟n位(n>0且n<m)时间发送,第二个字节第(m-n-1)位为1;
7)发送两个字节,第一个字节不为0且最低位为0,第一个字节不为0的位为第m位(最低位为第0位),第二个字节延迟至少(m+1)位时间发送。
对于8位数据无校验位,停止位为2位时,可通过如下方式进行极性识别:
1)发送一个最低位为1的一个字节数据;
2)发送两个字节,第一个字节最低位(第0位)为0,第m位为第1个非0位(m从1到8,当发送值为0时,m=8),延迟n位时间发送(不延迟,连续发送时n的值取0),采用满足以下条件中一种或几种进行发送:
1>(n+1)<m,且第二字节第(m-n-2)位和第(m-n-1)位不全为0;
2>(n+1)=m,且第二字节第0位为1;
3>(n+1)>m。
对于有奇偶校验位的情况,当数据位为8位(加上奇偶校验位共9位)、停止位为1位时,分析情况如表3所示。其中表3为8位数据加1位奇偶校验,停止位为1时,奇偶校验错误判断情况。
表3
因此,对于有奇偶校验位的情况,当数据位为8位(加上奇偶校验位共9位)、停止位为1位时,可通过以下方式中一种或几种进行极性识别
1)发发送一个第0位为1的一个字节数据;
2)发送两个字节数据,第一个不为0但最低位为0,第m位为其第一个非0位,第二个字节延迟n位发送;m从1到9,当发送数据为0,奇校验时,m=8;当发送数据为0,偶校验时,m=9;当连续发送时,n=0。采用满足以下条件中一种或几种条件进行极识别:
1>(n≥(m+1));
2>(n<m)且第二个字节的第(m-(n+1))位值为1;
3>(n=m)且m为偶数;
4>((n+1)=m)且m为奇数;
5>((n+2)=m)且m为奇数,且第二字节第0位值为1;
6>((n+2)=m)且m为偶数,且第二字节第0位值为0;
7>(m≥(n+3))且(m≤(n+8)),且n为奇数,且第二字节第0位至第(m-(n+2))位中为1的位的个数为奇数;
8>(m≥(n+3))且(m≤(n+8)),且n为偶数,且第二字节第0位至第(m-(n+2))位中为1的位的个数为偶数;
9>m=9且n=0。
对于有奇偶校验位的情况,当数据位为8位(加上奇偶校验位共9位)、停止位为2位时,分析情况如表4所示。
表4
因此,对于8位数据、1位奇偶校验位,2位停止位,可通过如下方式中一种或几种进行极性识别:
1)发送一个最低位为1的一个字节数据;
2)发送两个字节数据,第一个不为0但最低位为0,第m位为其第一个非0位,第二个字节延迟n位发送;m从1到9,当发送数据为0,奇校验时,m=8;当发送数据为0,偶校验时,m=9;当连续发送时,n=0。
采用满足以下条件中一种或几种进行极识别:
1>n≥m;
2>m≥(n+2)且第二字节的第(m-(n+2))位为1;
3>(n+1)=m且m为偶数;
4>(n+2)=m且m为奇数;
5>(n+3)=m且m为奇数,且第二字节第0位为1;
6>(n+3)=m且m为偶数,且第二字节第0位为0;
7>(m≥(n+4))且(m≤(n+8)),且n为奇数,且第二字节第0位至第(m-(n+2))位为1的个数为偶数;
8>(m≥(n+4))且(m≤(n+8)),且n为偶数,且第二字节第0位至第(m-(n+2))位为1的个数为奇数;
9>m=9,且第二字节第0位至第6位为1的个数为奇数;
综上所述,对于8位数据、无奇偶校验位或有1位奇偶校验位,1位和2位停止位的使用场合,都有以下几种方式可以识别出极性错误:
1)按原来的方式发送数据,当发现奇偶错误或帧错误时切换极性;
2)如果命令的数据组合恰巧使错误无法发现,则通过分析命令异常(命令校验错、非法命令、非法数据、非法长度等)间接发现极性错误,即一定时间或次数,收到一些数据但不是合法命令,则认为极性错误;
3)发送方在上电后到正式发送数据前的时间里,额外发送一组或几组命令,这一组或几组命令是一个特殊数据组合,确保接收端可以一次或多次引发帧错误或奇偶校验错误,从而切换极性;
4)协议设计时,选择特殊的同步数据。这些数据在极性正确时起同步作用,又可用于接收方反极性时迅速产生错误,及时发现极性反向而进行纠正;
5)对于1位停止位的情况,发送方在上电后到正式发送数据前的时间里,发送一个最低位为1的字节数据,然后禁止进一步的发送,等这个字节发送完成后,延迟至少一位的发送时间,再允许进一步的发送;
6)对于2位停止位的情况,发送方在上电后到正式发送数据前的时间里,额外发送一个最低位为1的字节数据,即可使接收方识别出极性是否错误。
7)由于无论是1位停止位还是2位停止位,当发送一个最低位为1的字节数据,都可触发奇偶校验错误,因此,发送方在上电后到正式发送数据前的时间里,额外发送一个最低位为1的一个字节数据,即可使接收方识别出极性是否错误。
对于前述的极性分析,都可以在发现极性错误后,对信号进行反向解码以获得数据;也都可增加MCU内部或外部的极性切换电路将极性切换正确后,正确接后后续数据;既都可以确定极性不再改变,也都可以继续对线路进行分析,动态改变数据接收极性;也都可以将确认的极性信息保存下来,供下次上电后使用。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种RS-485信号极性的识别方法,用于RS-485收发器的信号极性识别,其特征在于,所述的RS-485收发器连接有用于极性分析的MCU;所述的MCU对UART接收线路上的信号进行捕捉,并对捕捉到的信息进行分析,分析出当前线路的接线极性。
2.根据权利要求1所述的RS-485信号极性的识别方法,其特征在于,所述的信号捕捉采用如下几种方式中的一种或几种:
1)利用UART的数据接收和错误捕捉机制;
2)将UART的接收端口设置为IO中断模式,并使用一个定时器或计数器配合,采集UART接收端口的脉冲宽度;
3)将UART的接收端口设置为定时器捕捉模式,捕捉UART接收端口的脉冲宽度;
4)将UART的接收端口设置为普通输入口模式,分析通信口空闲时的电平。
3.根据权利要求2所述的RS-485信号极性的识别方法,其特征在于,所述的对捕捉到的信息进行分析采用如下几种方式中的一种或几种:
(1)对于使用信号捕捉方式1),若接收到正确的数据帧,则确认为极性正确;若收到错误达到设定次数或设定时间,则判定为极性出错;
(2)对于使用信号捕捉方式2)、3)、4)这三种方式,都可采用分析通信口空闲时电平的方式,即如果UART接收口的高电平超过设定时间,则认为是正确的极性;而如果接收口的低电平超过设定时间,则认为是相反的极性;
(3)对于使用信号捕捉方式2)、3)这两种方式,采用正反两种极性进行分析,解析数据;如果正向是解析成功,则说明极性正确;若反向解析成功,则说明极性相反;
(4)对于使用信号捕捉方式2)、3)这两种方式,对有特殊波形的通信帧格式,可针对该通讯帧格式的特点进行分析。
4.根据权利要求3所述的RS-485信号极性的识别方法,其特征在于,所述的分析通信口空闲时电平的方式具体包括:
a)假设在A点时启动接收器,则当总线无数据时,可在B点识别出帧错误,这种情况适用于空闲时总线固定为高的情况;
b)在总线空闲固定为低或不确定的情况,发送方在发送数据前或发送数据后,让总线保持一段时间的高电平,且这个时间大于10个位接收时间,在有奇偶校验时这个时间大于11个位接收的时间。
5.根据权利要求3所述的RS-485信号极性的识别方法,其特征在于,采用无校验位、1位停止位进行数据通信,利用帧错误进行极性识别,使用以下方式中一种或几种方式识别出极性:
1)发送一个最低位为1的字节,下一字节延迟至少1位的时间发送;
2)连续发送两个字节,第一个字节为0,第二个字节第7位为1;
3)发送两个字节,第一个字节为0,第二个字节延迟n位发送,n取值为1至7,且第二个字节第(7-n)位值为1;
4)发送两个字节,第一个字节为0,第二个字节延迟9位或更长时间发送;
5)连续发送两个字节,第一个字节不为0且最低位为0,第一个字节不为0的位为第m位,第二个字节第(m-1)位为1,其中最低位为第0位;
6)发送两个字节,第一个字节不为0且最低位为0,第一个字节不为0的位为第m位,第二个字节延迟n位时间发送,第二个字节第(m-n-1)位为1,其中最低位为第0位,n>0且n<m;
7)发送两个字节,第一个字节不为0且最低位为0,第一个字节不为0的位为第m位,第二个字节延迟至少(m+1)位时间发送,其中最低位为第0位。
6.根据权利要求3所述的RS-485信号极性的识别方法,其特征在于,采用无校验位、2位停止位进行数据通信,利用帧错误进行极性识别,使用以下方式中一种或几种方式识别出极性:
1)发送一个最低位为1的一个字节数据;
2)发送两个字节,第一个字节最低位为0,第m位为第1个非0位,延迟n位时间发送,若不延迟则连续发送时n的值取0,其中最低位为第0位,m从1到8,当发送值为0时,m=8,采用满足以下条件中一种或几种进行发送:
1>(n+1)<m,且第二字节第(m-n-2)位和第(m-n-1)位不全为0;
2>(n+1)=m,且第二字节第0位为1;
3>(n+1)>m。
7.根据权利要求3所述的RS-485信号极性的识别方法,其特征在于,使用有奇偶校验位、数据位为8位,停止位为1位时,其中数据位加上奇偶校验位共9位,使用以下方式中一种或几种识别出极性:
1)发送一个第0位为1的一个字节数据;
2)发送两个字节数据,第一个不为0但最低位为0,第m位为其第一个非0位,第二个字节延迟n位发送;m从1到9,当发送数据为0,奇校验时,m=8;当发送数据为0,偶校验时,m=9;当连续发送时,n=0;采用满足以下条件中一种或几种条件进行极识别:
1>(n≥(m+1));
2>(n<m)且第二个字节的第(m-(n+1))位值为1;
3>(n=m)且m为偶数;
4>((n+1)=m)且m为奇数;
5>((n+2)=m)且m为奇数,且第二字节第0位值为1;
6>((n+2)=m)且m为偶数,且第二字节第0位值为0;
7>(m≥(n+3))且(m≤(n+8)),且n为奇数,且第二字节第0位至第(m-(n+2))位中为1的位的个数为奇数;
8>(m≥(n+3))且(m≤(n+8)),且n为偶数,且第二字节第0位至第(m-(n+2))位中为1的位的个数为偶数;
9>m=9且n=0。
8.根据权利要求4所述的RS-485信号极性的识别方法,其特征在于,使用有奇偶校验位、数据8位、停止位为2位时,其中数据位加上奇偶校验位共9位,使用以下方式中一种或几种识别出极性:
1)发送一个最低位为1的一个字节数据;
2)发送两个字节数据,第一个不为0但最低位为0,第m位为其第一个非0位,第二个字节延迟n位发送;m从1到9,当发送数据为0,奇校验时,
m=8;当发送数据为0,偶校验时,m=9;当连续发送时,n=0;采用满足以下条件中一种或几种条件进行极识别:
1>n≥m;
2>m≥(n+2)且第二字节的第(m-(n+2))位为1;
3>(n+1)=m且m为偶数;
4>(n+2)=m且m为奇数;
5>(n+3)=m且m为奇数,且第二字节第0位为1;
6>(n+3)=m且m为偶数,且第二字节第0位为0;
7>(m≥(n+4))且(m≤(n+8)),且n为奇数,且第二字节第0位至第(m-(n+2))位为1的个数为偶数;
8>(m≥(n+4))且(m≤(n+8)),且n为偶数,且第二字节第0位至第(m-(n+2))位为1的个数为奇数;
9>m=9,且第二字节第0位至第6位为1的个数为奇数。
9.根据权利要求5-8中任一所述的RS-485信号极性的识别方法,其特征在于,对于无奇偶校验位或有1位奇偶校验位,8位数据、1位和2位停止位的使用场合,其中数据位加上奇偶校验位共9位,都有以下几种方式中一种或几种识别出极性错误:
1)按原来的方式发送数据,当发现奇偶错误或帧错误达到一定次数或时间后确认极性错误;
2)如果命令的数据组合恰巧使错误无法发现,则通过分析命令异常间接发现极性错误,即一定时间或次数,收到一些数据但不是合法命令,则认为极性错误,其中命令异常包括命令校验错、非法命令、非法数据、非法长度;
3)发送方在上电后到正式发送数据前的时间里,额外发送一组或几组命令,这一组或几组命令是一个特殊数据组合,确保接收端可以一次或多次引发帧错误或奇偶校验错误,从而切换极性。
10.根据权利要求1-8中任一所述的RS-485信号极性的识别方法,其特征在于,都可以在发现极性错误后,对信号进行反向解码以获得数据;或者都可增加MCU内部或外部的极性切换电路将极性切换正确后,正确接后后续数据;或者既都可以确定极性不再改变,也都可以继续对线路进行分析,动态改变数据接收极性;也都可以将确认的极性信息保存下来,供下次上电后使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010744819.4A CN114064533B (zh) | 2020-07-29 | 2020-07-29 | 一种rs-485信号极性的识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010744819.4A CN114064533B (zh) | 2020-07-29 | 2020-07-29 | 一种rs-485信号极性的识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114064533A true CN114064533A (zh) | 2022-02-18 |
CN114064533B CN114064533B (zh) | 2024-04-12 |
Family
ID=80226809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010744819.4A Active CN114064533B (zh) | 2020-07-29 | 2020-07-29 | 一种rs-485信号极性的识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114064533B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100111946A (ko) * | 2009-04-08 | 2010-10-18 | 주식회사 나라컨트롤 | Bms 제어기 간의 극성 자동판단에 의한 데이터 전송이 가능한 무극성 rs-485통신장치 |
CN104090511A (zh) * | 2014-06-30 | 2014-10-08 | 上海贝岭股份有限公司 | 实现无极性485通信的电路及方法 |
CN105468554A (zh) * | 2015-11-27 | 2016-04-06 | 宁波三星医疗电气股份有限公司 | 一种实现极性自适应的模拟uart的方法 |
CN109714235A (zh) * | 2019-01-18 | 2019-05-03 | 武汉光谷电气有限公司 | 一种无极性rs485通信接口及实现无极性rs485通信的方法 |
CN110069437A (zh) * | 2019-04-24 | 2019-07-30 | 大连理工大学 | 基于响应帧有效性的rs-485总线极性自适应方法 |
CN111400120A (zh) * | 2020-04-17 | 2020-07-10 | 广东美的制冷设备有限公司 | 一种通信电路、通信控制方法、线路板及空调系统 |
-
2020
- 2020-07-29 CN CN202010744819.4A patent/CN114064533B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100111946A (ko) * | 2009-04-08 | 2010-10-18 | 주식회사 나라컨트롤 | Bms 제어기 간의 극성 자동판단에 의한 데이터 전송이 가능한 무극성 rs-485통신장치 |
CN104090511A (zh) * | 2014-06-30 | 2014-10-08 | 上海贝岭股份有限公司 | 实现无极性485通信的电路及方法 |
CN105468554A (zh) * | 2015-11-27 | 2016-04-06 | 宁波三星医疗电气股份有限公司 | 一种实现极性自适应的模拟uart的方法 |
CN109714235A (zh) * | 2019-01-18 | 2019-05-03 | 武汉光谷电气有限公司 | 一种无极性rs485通信接口及实现无极性rs485通信的方法 |
CN110069437A (zh) * | 2019-04-24 | 2019-07-30 | 大连理工大学 | 基于响应帧有效性的rs-485总线极性自适应方法 |
CN111400120A (zh) * | 2020-04-17 | 2020-07-10 | 广东美的制冷设备有限公司 | 一种通信电路、通信控制方法、线路板及空调系统 |
Non-Patent Citations (1)
Title |
---|
胡鹏飞: "无极性RS–485芯片的关...技术研究与智能电网中的应用", 《智能电网》, pages 47 - 51 * |
Also Published As
Publication number | Publication date |
---|---|
CN114064533B (zh) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5727006A (en) | Apparatus and method for detecting and correcting reverse polarity, in a packet-based data communications system | |
US20130132787A1 (en) | Lighting control protocol | |
CN104781750A (zh) | 用于usb电力递送的稳健电缆类型检测 | |
US7694039B2 (en) | Data transmission interface system and method for electronic component | |
JP5987319B2 (ja) | 送受信システム及びプログラム | |
US7623157B2 (en) | Polarity correction circuit and system incorporating same | |
US11032100B2 (en) | Communication devices and methods | |
US7133947B2 (en) | Data communication system, data communication method, and communication unit | |
JP2009244991A (ja) | データ通信方法、データ通信システム、電子制御ユニット、及び回路基板 | |
JP5982869B2 (ja) | 送受信システム及びプログラム | |
CN114064533A (zh) | 一种rs-485信号极性的识别方法 | |
CN112988648A (zh) | 一种通讯方法、装置及通讯电路 | |
JP6172355B2 (ja) | 送受信システム及びプログラム | |
JP2006094013A (ja) | PoEシステム | |
US20230199306A1 (en) | Communication device and communication system | |
CN113098809A (zh) | 一种软件自适应解码方法、装置及无线充电系统 | |
WO2017000737A1 (zh) | 一种传输校验方法、节点、系统与计算机存储介质 | |
JPH06224976A (ja) | 半2重シリアル伝送用インターフェース変換回路 | |
CN212515784U (zh) | 基于双uart的rs-485信号线极性自适应实现装置 | |
CN1159859C (zh) | 复位总线及接口装置 | |
US20050097237A1 (en) | Line-conducted interface arrangement and a method for operating a line-conducted interface arrangement between a host and a device | |
CN117373377B (zh) | 信号传输系统及其信号传输控制方法 | |
CN113836063A (zh) | 一种基于双uart的rs-485信号线极性自适应实现装置 | |
CN115061968B (zh) | 一种接口处理器及接口处理系统 | |
CN112769173B (zh) | 一种双解码充电控制系统、控制方法及电子设备 |
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 |