掌桥专利:专业的专利平台
掌桥专利
首页

一种通讯方法、装置及通讯电路

文献发布时间:2023-06-19 11:29:13


一种通讯方法、装置及通讯电路

技术领域

本发明属于通讯技术领域,尤其涉及一种通讯方法、装置及通讯电路。

背景技术

RS485总线作为通用串行总线的一种被广泛应用于电子产品中,其中RS485端口为RS485总线中的通讯连接端口。RS485端口需要完成通讯,需要通讯双方的RS485-A线和RS485-B线必须对应相连接,即A线与A线连接,B线与B线连接,才能正常通讯。但是,在很多情况下,RS485-A线和RS485-B线大多都是盲插,若是接错线,就无法实现通讯。

现有技术当中,为了避免接错线,目前是通过接口防呆的机械方式来实现通讯双方的RS485-A线和RS485-B线的对应连接,但这种方式需要设计专用防呆的连接器,结构复杂,成本高。

发明内容

本发明实施例提供一种通讯方法、装置及通讯电路,旨在解决现有需要通过设计专用防呆的连接器来保证RS485通讯双方接对线、进而保证双方正常通讯的方式存在结构复杂、成本高的技术问题。

本发明实施例是这样实现的,一种通讯方法,包括以下步骤:

预先设定通信波特率,根据所述通信波特率获得数据位长度;

检测IO口接收的起始位信号,所述起始位信号由RS485收发单元发送,所述起始位信号包含有边沿信号和电平信号;

若判断所述边沿信号为下降沿信号,并且所述电平信号的低电平持续时间超过所述数据位长度,则设置所述IO口为串口,并把所述串口配置成正相接收;

若判断所述边沿信号为上升沿信号,并且所述电平信号的高电平持续时间超过所述数据位长度,则设置所述IO口为串口,并把所述串口配置成反相接收。

本发明实施例还提供了一种通讯装置,所述装置包括:

设定单元,用于预先设定通信波特率,根据所述通信波特率获得数据位长度;

第一检测单元,用于检测IO口接收的起始位信号,所述起始位信号由RS485收发单元发送,所述起始位信号包含有边沿信号和电平信号;

第一判断单元,用于若判断所述边沿信号为下降沿信号,并且所述电平信号的低电平持续时间超过所述数据位长度,则设置所述IO口为串口,并把所述串口配置成正相接收;

第二判断单元,用于若判断所述边沿信号为上升沿信号,并且所述电平信号的高电平持续时间超过所述数据位长度,则设置所述IO口为串口,并把所述串口配置成反相接收。

本发明实施例还提供一种通讯电路,包括RS485收发单元以及MCU单元,

所述MCU单元预先设定通信波特率,根据所述通信波特率获得数据位长度;所述RS485收发单元发送起始位信号到IO口,所述MCU单元检测所述IO口接收的起始位信号,所述起始位信号包含有边沿信号和电平信号;若所述MCU单元判断所述边沿信号为下降沿信号,并且所述电平信号的低电平持续时间超过所述数据位长度,则设置所述IO口为串口,并把所述串口配置成正相接收;若所述MCU单元判断所述边沿信号为上升沿信号,并且所述电平信号的高电平持续时间超过所述数据位长度,则设置所述IO口为串口,并把所述串口配置成反相接收。

本发明所达到的有益效果为:通过设定通信波特率,以设定数据位长度,在接收信号时通过判断起始位信号的边沿状态来正确识别正相或反相信号,并根据信号的正反识别结果,将IO口配置为串口,并相应将串口配置成正相或反相接收,使得通信双方的AB线正反盲插都能被正常识别从而顺利实现通信,无需设计专用防呆的连接器,简化端口结构和降低成本。

附图说明

图1是本发明实施例提供的RS485 AB线正接时的通讯电路的结构图;

图2是本发明实施例提供的RS485 AB线反接时的通讯电路的结构图;

图3是本发明实施例一当中的通讯方法的流程图;

图4是本发明实施例提供的预先设定通信波特率的一种逻辑信号的波形图;

图5是本发明实施例三当中的通讯方法的流程图;

图6为本发明实施例四当中的通讯装置的结构图;

图7是本发明实施例五当中的通讯电路的结构图;

图8是本发明实施例五当中的通讯电路的一种具体电路图;

图9是本发明实施例五当中的通讯电路的另一种具体电路图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

现有通过接口防呆的机械方式来保证通讯双方的RS485-A线和RS485-B线的对应连接,进而保证双方正常通讯,而这种方式需要设计专用防呆的连接器,结构复杂,成本高。因此,本发明的目的在于,提供一种通讯方法、装置及通讯电路,以通过设定通信波特率,以设定数据位长度,在接收信号时通过判断起始位信号的边沿状态来正确识别正相或反相信号,并根据信号的正反识别结果,将IO口配置为串口,并相应将串口配置成正相或反相接收,整体从软件方面实现AB线正反盲插都能正常实现通信,无需设计专用防呆的连接器,简化端口结构和降低成本。

以下各实施例均可应用到图1和图2示出的通讯电路当中,图1和图2示出的通讯电路可以为RS485端口的内部电路,通讯电路具体包括处理单元、及与处理单元连接的RS485收发单元,其中:

RS485收发单元通过RS485-A线和RS485-B与外部设备的RS485-A线和RS485-B一一连接,以实现RS485收发单元和外部设备的信号收发,进而实现双方通讯。在具体实施时,RS485收发单元和外部设备的RS485-A线和RS485-B可通过连接器插接,而通信双方连接器盲插的情况下,就会存在AB线正接和反接两种情况;其中,AB线正接是指通讯双方的RS485-A线和RS485-A线连接、RS485-B线和RS485-B线连接(如图1所示),AB线反接是指通讯双方的RS485-A线和RS485-B线连接、RS485-B线和RS485-A线(如图2所示),正反接也亦指连接器正反插接。

此外,处理单元设有至少一与RS485收发单元连接的IO口,在本发明实施例当中,处理单元会根据IO口的接收信号的起始位信号的边沿状态来将该IO口切换为串口,该串口将被配置为用于实现处理单元和RS485收发单元之间的数据收发,从而实现通讯双方正常通讯。具体地,RS485收发单元用于接收RS485-A线和RS485-B之间的差分信号,并将差分信号转换为处理单元能够收到的逻辑信号,并将逻辑信号同时输出给处理单元的串口(由IO口切换为串口)。此外,RS485收发单元还用于接收处理单元发送的逻辑信号,并将逻辑信号转换为差分信号之后通过AB线输出给外部设备。示例而非限定,处理单元可以为但不限于MCU(Microcontroller Unit,微控制单元)、ECU(Electronic Control Unit,电子控制单元)、中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片等等。

需要指出的是,图1和图2示出的结构并不构成对通讯电路的限定,在其它实施例当中,该通讯电路可以包括比图示更少或者更多的单元,或者组合某些单元,或者不同的单元布置。

请参阅图3,所示为本发明实施例一当中的通讯方法,可应用于处理单元当中,所述处理单元设置有至少一IO口,所述通讯方法可通过软件和/或硬件来实现,所述通讯方法具体包括:

步骤S01,预先设定通信波特率,根据所述通信波特率获得数据位长度;

步骤S02,检测IO口接收的起始位信号,所述起始位信号由RS485收发单元发送,所述起始位信号包含有边沿信号和电平信号;

步骤S03,若判断所述边沿信号为下降沿信号,并且所述电平信号的低电平持续时间超过所述数据位长度,则设置所述IO口为串口,并把所述串口配置成正相接收;

步骤S04,若判断所述边沿信号为上升沿信号,并且所述电平信号的高电平持续时间超过所述数据位长度,则设置所述IO口为串口,并把所述串口配置成反相接收。

其中,通信波特率是指单片机或计算机在串口通信时的速率。指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数,如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位,1个停止位,8个数据位),这时的波特率为240Bd,比特率为10位*240个/秒=2400bps,一般情况下,起始位的边沿为下降沿,停止位的边沿为上升沿。

此外,在具体实施时,可以根据通信波特率获得数据位长度,数据位长度包括起始位和停止位的长度,在较佳的方式当中,起始位和停止位的长度最好设置为相等,以便于后续对正反信号进行识别。在设定通信波特率之后,RS485收发单元和/或外部设备会以设定通信波特率对信号进行调制,以使处理单元的IO口接收到以设定通信波特率为波特率的逻辑信号。示例而非限定,请参阅图4,所示为处理单元的IO口接收的以所述预先设定通信波特率为波特率的一种逻辑信号的波形图,该逻辑信号具体为TTL电平信号,TTL电平信号的每个字符包括1个起始位,1个停止位,8个数据位,起始位、停止位和每个数据位的长度相等且均为所述数据位长度,并且起始位的边沿为下降沿,而停止位的边沿为上升沿。

应当理解的,当RS485收发单元和外部设备的RS485-A线和RS485-B正接时(如图1所示),RS485收发单元接收到的差分信号为正相差分信号,正相差分信号经过RS485收发单元将转换为正相逻辑信号,正相逻辑信号的起始位在前、停止位在后(如图4所示);反之,当RS485收发单元和外部设备的RS485-A线和RS485-B反接时(如图2所示),RS485收发单元接收到的差分信号为反相差分信号,反相差分信号经过RS485收发单元将转换为反相逻辑信号,反相逻辑信号的起始位在后、停止位在前(将图4波形图掉个头,即图4波形图从后往前看)。

在通讯开始前,由于此时处理单元的IO口对其所接受的逻辑信号的正反并不清楚,因此处理单元的IO口将被配置成边沿接收模式,所述边沿接收模式是指IO口在接收RS485收发单元发送的逻辑信号的同时对逻辑信号的每个字符的起始位进行分析。为此当IO口处于边沿接收模式时,IO口会持续对RS485收发单元发送的逻辑信号进行检测,具体为对逻辑信号的起始位进行分析,当起始位的边沿为下降沿,且起始位的电平信号的低电平持续时间(也即起始位长度)等于或超过数据位长度,则代表当前信号的起始位在前,所接收的逻辑信号为正相逻辑信号,通讯双方的AB线处于正接状态,此时处理单元将IO口设置为串口,并把所述串口配置成正相接收,以使其正常接收正相逻辑信号;反之,当起始位的边沿为上升沿,且起始位的电平信号的低电平持续时间(也即起始位长度)等于或超过数据位长度,则代表当前信号的停止位在前,所接收的逻辑信号为反相逻辑信号,通讯双方的AB线处于反接状态,此时处理单元同样会将IO口设置为串口,但把所述串口配置成反相接收,以使其正常接收反相逻辑信号。

综上,本实施例当中的通讯方法,通过设定通信波特率,以设定数据位长度,在接收信号时通过判断起始位信号的边沿状态来正确识别正相或反相信号,并根据信号的正反识别结果,将IO口配置为串口,并相应将串口配置成正相或反相接收,使得通信双方的AB线正反盲插都能被正常识别从而顺利实现通信,无需设计专用防呆的连接器,简化端口结构和降低成本。

本发明实施例二同样提出一种通讯方法,本实施例当中的通讯方法与实施例一的通讯方法的区别在于,在所述判断所述边沿信号为下降沿信号的步骤之后,还包括:

判断电平信号的低电平持续时间未超过所述数据位长度,则继续设置所述IO口为边沿接收模式。

应当理解的,当起始位的边沿为下降沿,但起始位的电平信号的低电平持续时间未超过设定的数据位长度时,代表当前所分析的起始位信号为干扰信号,并非真正有效信号的起始位,真正有效信号的起始位的电平信号的低电平持续时间应当等于设定的数据位长度,因此处理单元选择继续让IO口处于边沿接收模式,以舍去这部分干扰信号,直到下一个字符的起始位的边沿为下降沿、且起始位的长度超过设定的数据位长度时,再将IO口切换为串口,并把所述串口配置成正相接收。

同样地,在一些可选实施例当中,在所述判断所述边沿信号为上升沿信号的步骤之后,也可以进一步包括:

判断电平信号的高电平持续时间未超过所述数据位长度,则继续设置所述IO口为边沿接收模式。

同理,当起始位的边沿为上升沿,但起始位的电平信号的高电平持续时间未超过设定的数据位长度时,代表当前所分析的起始位信号为干扰信号,并非真正有效信号的起始位,此时处理单元选择继续让IO口处于边沿接收模式,以舍去这部分干扰信号,直到下一个字符的起始位的边沿为上升沿、且起始位的长度超过设定的数据位长度时,再将IO口切换为串口,并把所述串口配置成反相接收。

本发明实施例三同样提出一种通讯方法,本实施例当中的通讯方法与实施例一的通讯方法的区别在于,请参阅图5,在所述设置所述IO口为串口的步骤之后,本实施例当中的通讯方法还进一步包括:

步骤S11,检测所述串口接收的基于所述起始位信号的通信识别字节;

步骤S12,判断所述通信识别字节是否正确;当判断到所述通信识别字节正确,则执行步骤S13;当判断到所述通信识别字节不正确,则执行步骤S14;

步骤S13,把所述串口配置成收发模式。

步骤S14,将所述IO口重新配置成边沿接收模式。

在本实施例当中,在通过判断起始位信号的边沿状态来正确识别正相或反相信号之后,还会对通信识别字节进行检验。其中,所述的基于所述起始位信号的通信识别字节是指单个信号字符中、起始位和停止位之间的8个数据位组成的字节。在具体实施时,可以预先设定一通信协议(处理单元与外部设备之间的通信协议),再根据通信协议来判断通信识别字节是否正确;或者预先设置正确的通信识别字节,再将接收信号的通信识别字节与预先设定的通信识别字节进行比较,从而判定通信识别字节是否正确。

具体来说,若通信识别字节正确,则代表通讯正常,则不仅根据信号的正反将IO口相应设置为正相或反相接收的串口,还将IO口设置为接收串口,使所述串口同时具备数据收发功能;若通信识别字节不正确,则代表通讯异常,线路可能受到干扰,则将IO口重新配置成边沿接收模式,以通过边沿接收模式在后续接收的信号字符中找到正确的通信识别字节,从而恢复通讯。

需要说明的是,以上各个实施例或特征在没有冲突的情况下,可以相互组合。

本发明另一方面还提出一种通讯装置,请参阅图6,所示为本发明实施例四提供的通讯装置,可应用于处理单元当中,所述处理单元设置有至少一IO口,所述通讯装置具体包括:

设定单元11,用于预先设定通信波特率,根据所述通信波特率获得数据位长度;

第一检测单元12,用于检测IO口接收的起始位信号,所述起始位信号由RS485收发单元发送,所述起始位信号包含有边沿信号和电平信号;

第一判断单元13,用于若判断所述边沿信号为下降沿信号,并且所述电平信号的低电平持续时间超过所述数据位长度,则设置所述IO口为串口,并把所述串口配置成正相接收;

第二判断单元14,用于若判断所述边沿信号为上升沿信号,并且所述电平信号的高电平持续时间超过所述数据位长度,则设置所述IO口为串口,并把所述串口配置成反相接收。

其中,通信波特率是指单片机或计算机在串口通信时的速率。指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数,如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位,1个停止位,8个数据位),这时的波特率为240Bd,比特率为10位*240个/秒=2400bps,一般情况下,起始位的边沿为下降沿,停止位的边沿为上升沿。

此外,通信波特率还设定了数据位长度,在本实施例当中,至少应设置起始位和停止位的长度,并且起始位和停止位的长度相同且均为设定的所述数据位长度,以便于后续对正反信号进行识别。一般情况下,起始位、停止位及每个数据位的长度相等。

在设定通信波特率之后,RS485收发单元和/或外部设备会以设定通信波特率对信号进行调制,以使处理单元的IO口接收到以设定通信波特率为波特率的逻辑信号。示例而非限定,请参阅图4,所示为处理单元的IO口接收的以所述预先设定通信波特率为波特率的一种逻辑信号的波形图,该逻辑信号具体为TTL电平信号,TTL电平信号的每个字符包括1个起始位,1个停止位,8个数据位,起始位、停止位和每个数据位的长度相等且均为所述数据位长度,并且起始位的边沿为下降沿,而停止位的边沿为上升沿。

应当理解的,当RS485收发单元和外部设备的RS485-A线和RS485-B正接时(如图1所示),RS485收发单元接收到的差分信号为正相差分信号,正相差分信号经过RS485收发单元将转换为正相逻辑信号,正相逻辑信号的起始位在前、停止位在后(如图4所示);反之,当RS485收发单元和外部设备的RS485-A线和RS485-B反接时(如图2所示),RS485收发单元接收到的差分信号为反相差分信号,反相差分信号经过RS485收发单元将转换为反相逻辑信号,反相逻辑信号的起始位在后、停止位在前(将图4波形图掉个头,即图4波形图从后往前看)。

在通讯开始前,由于此时处理单元的IO口对其所接受的逻辑信号的正反并不清楚,因此处理单元的IO口将被配置成边沿接收模式,所述边沿接收模式是指IO口在接收RS485收发单元发送的逻辑信号的同时对逻辑信号的起始位进行分析。为此当IO口处于边沿接收模式时,IO口会持续对RS485收发单元发送的逻辑信号进行检测,具体为对逻辑信号的起始位进行分析,当起始位的边沿为下降沿,且起始位的电平信号的低电平持续时间(也即起始位长度)等于或超过数据位长度,则代表当前信号的起始位在前,所接收的逻辑信号为正相逻辑信号,通讯双方的AB线处于正接状态,此时处理单元将IO口设置为串口,并把所述串口配置成正相接收,以使其正常接收正相逻辑信号;反之,当起始位的边沿为上升沿,且起始位的电平信号的低电平持续时间(也即起始位长度)等于或超过数据位长度,则代表当前信号的停止位在前,所接收的逻辑信号为反相逻辑信号,通讯双方的AB线处于反接状态,此时处理单元同样会将IO口设置为串口,但把所述串口配置成反相接收,以使其正常接收反相逻辑信号。

进一步地,在本发明一些可选实施例当中,所述第一判断单元包括:

第一设置模块,用于判断电平信号的低电平持续时间未超过所述数据位长度,则继续设置所述IO口为边沿接收模式。

进一步地,在本发明一些可选实施例当中,所述第二判断单元包括:

第二设置模块,用于判断电平信号的高电平持续时间未超过所述数据位长度,则继续设置所述IO口为边沿接收模式。

进一步地,在本发明一些可选实施例当中,所述通讯装置还包括:

第二检测单元,用于检测所述串口接收的基于所述起始位信号的通信识别字节;

第三判断单元,用于判断所述通信识别字节是否正确;

若判断所述通信识别字节正确,则把所述串口配置成收发模式。

上述各模块、单元被执行时所实现的功能或操作步骤与上述方法实施例大体相同,在此不再赘述。

综上,本实施例当中的通讯装置,通过设定通信波特率,以设定数据位长度,在接收信号时通过判断起始位信号的边沿状态来正确识别正相或反相信号,并根据信号的正反识别结果,将IO口配置为串口,并相应将串口配置成正相或反相接收,使得通信双方的AB线正反盲插都能被正常识别从而顺利实现通信,无需设计专用防呆的连接器,简化端口结构和降低成本。

本发明另一方面还提出一种通讯电路,请参阅图7,所示为本发明第五实施例当中的通讯电路,包括RS485收发单元以及MCU单元,

所述MCU单元预先设定通信波特率,根据所述通信波特率获得数据位长度;所述RS485收发单元发送起始位信号到IO口,所述MCU单元检测所述IO口接收的起始位信号,所述起始位信号包含有边沿信号和电平信号;若所述MCU单元判断所述边沿信号为下降沿信号,并且所述电平信号的低电平持续时间超过所述数据位长度,则设置所述IO口为串口,并把所述串口配置成正相接收;若所述MCU单元判断所述边沿信号为上升沿信号,并且所述电平信号的高电平持续时间超过所述数据位长度,则设置所述IO口为串口,并把所述串口配置成反相接收,所述MCU单元执行预设程序时实现如上述任一实施例所述的通讯方法。

具体地,请参阅图8,所示为所述通讯电路的一种示例的具体电路图,其中,RS485收发单元包括处理芯片U2,处理芯片U2的引脚7通过RS485-A线与连接器P1的引脚1连接,处理芯片U2的引脚6通过RS485-B线与连接器P1的引脚2连接,连接器P1用于与外部设备插接,且连接器P1的引脚1和2分别与外部设备的RS485-A线和RS485-B线连接。处理芯片U2用于接收外部设备的差分信号,并将差分信号转换为MCU单元可识别的逻辑信号。

MCU单元的串口RX和串口DE分别与处理芯片U2的两个输出引脚1和2连接,MCU单元的串口RX和串口DE同时接收处理芯片U2输出的逻辑信号,此外MCU单元的串口DE还与处理芯片U2的输入引脚3连接,以使MCU单元的串口DE还具有信号发送功能,MCU单元的另一个串口TX与处理芯片U2的输入引脚4连接,同样使MCU单元的串口TX具有信号发送功能,从而实现MCU单元和处理芯片U2之间的信号收发。

进一步地,在本发明一些可选实施例当中,RS485收发单元还包括连接在处理芯片U2和连接器P1之间的保护模块,保护模块具体包括设置在RS485-A线上的第一限流电阻R6、设置于RS485-B线上的第二限流电阻R8、以及连接在RS485-A线和RS485-B线之间的反馈电阻R7。

进一步地,在本发明一些可选实施例当中,如图9所示,MCU单元的串口RX还可以通过第一信号隔离模块与处理芯片U2的输出引脚1连接,以通过第一信号隔离模块进行信号隔离。第一信号隔离模块具体包括第一光耦信号隔离器U1、第三限流电阻R4、第一上拉电阻R2、第四限流电阻R3和第二上拉电阻R1,第一光耦信号隔离器U1的输入端正极引脚1通过第一上拉电阻R2连接5V电源,第一光耦信号隔离器U1的输入端负极引脚2通过第三限流电阻R4与处理芯片U2的输出引脚1连接,第一光耦信号隔离器U1的输出端正极引脚4通过第二上拉电阻R1连接3.3V电源,并通过第四限流电阻R3连接MCU单元的串口RX,第一光耦信号隔离器U1的输出端负极引脚3接地。

进一步地,在本发明一些可选实施例当中,MCU单元的串口DX还可以通过第二信号隔离模块与处理芯片U2的输出引脚2和输入引脚3连接,以通过第二信号隔离模块进行信号隔离。第二信号隔离模块具体包括第二光耦信号隔离器U3、下拉电阻R9和第五限流电阻R5,第二光耦信号隔离器U3的输入端正极引脚1通过第五限流电阻R5连接MCU单元的串口DX,第二光耦信号隔离器U3的输入端负极引脚2接地,第二光耦信号隔离器U3的输出端正极引脚4连接5V电源,第二光耦信号隔离器U3的输出端负极引脚3连接处理芯片U2的输出引脚2和输入引脚3连接,并通过下拉电阻R9接地。

进一步地,在本发明一些可选实施例当中,MCU单元的串口TX还可以通过第三信号隔离模块与处理芯片U2的输入引脚4连接,以通过第三信号隔离模块进行信号隔离。第三信号隔离模块具体包括第三光耦信号隔离器U4、第六限流电阻R13、第三上拉电阻R11、第七限流电阻R12和第四上拉电阻R10,第三光耦信号隔离器U4的输入端正极引脚1通过第三上拉电阻R11连接3.3V电源,第三光耦信号隔离器U4的输入端负极引脚2通过第六限流电阻R13与MCU单元的串口TX连接,第三光耦信号隔离器U4的输出端正极引脚4通过第四上拉电阻R10连接5V电源,并通过第七限流电阻R12连接处理芯片U2的输入引脚4,第三光耦信号隔离器U4的输出端负极引脚3接地。

发送信息时,MCU单元的DE使能端,提供高电平信号到第二光耦信号隔离器U3,经过第二光耦信号隔离器U3光耦隔离后,发送到处理芯片U2的RE端和DE端,使得处理芯片U2工作为发送状态,即是说,处理芯片U2可发送信号到RS485总线,此时处理芯片U2可接收DI端的输入信号;MCU单元的TX端发送高电平信号或者低电平信号,通过第三光耦信号隔离器U4光耦隔离后,发送到处理芯片U2的DI端口,经过处理芯片U2的处理后,形成差分信号并通过A、B端口发送到RS485总线,最终从连接器P1输出;

接收信号时,MCU单元的DE使能端,提供低电平信号到第二光耦信号隔离器U3,经过第二光耦信号隔离器U3光耦隔离后,发送到处理芯片U2的RE端和DE端,使得处理芯片U2工作为接收状态,即是说,处理芯片U2可接收RS485总线传输过来的信号,此时处理芯片U2可通过RO端发送信号;A、B端通过RS485总线接收差分信号,并将差分信号转换为数字信号,并将数字信号通过RO端发送到第一光耦信号隔离器U1,经过第一光耦信号隔离器U1光耦隔离后,将数字信号发送到MCU单元的RX端。

结合图4,MCU单元在接收到数字信号之后具有如下工作模式:

1、正相接收模式:当MCU单元接收到数字信号的起始端为下降沿信号,并且数字信号的低电平持续时间超过数据位长度,设置IO口为串口,并把串口配置成正相接收。正相接收即外部接收为1,MCU单元内部读数也为1;外部接收为0,MCU单元内部读数也为0。

2、反相接收模式:当MCU单元接收到数字信号的起始端为上升沿信号,并且数字信号的高电平持续时间超过数据位长度,设置IO口为串口,并把串口配置成反相接收。反相接收即外部接收为1,MCU单元内部读数为0;外部接收为0,MCU单元内部读数为1。

3、边沿接收模式:当MCU单元接收到数字信号的起始端为下降沿信号,并且数字信号的低电平持续时间未超过数据位长度,设置IO口为边沿接收模式;或者

当MCU单元接收到数字信号的起始端为上升沿信号,并且数字信号的高电平持续时间未超过数据位长度,设置IO口为边沿接收模式。其中,边沿接收模式为MCU单元等待MCU单元的RX端口上升沿或者下降沿触发。

需要指出的是,图7-图9示出的结构并不构成对通讯电路的限定,在其它实施例当中,该通讯电路可以包括比图示更少或者更多的单元,或者组合某些单元,或者不同的单元布置。

综上,本实施例当中的通讯电路,通过设定通信波特率,以设定数据位长度,在接收信号时通过判断起始位信号的边沿状态来正确识别正相或反相信号,并根据信号的正反识别结果,将IO口配置为串口,并相应将串口配置成正相或反相接收,使得通信双方的AB线正反盲插都能被正常识别从而顺利实现通信,无需设计专用防呆的连接器,简化端口结构和降低成本。

本领域技术人员可以理解,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。

计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或它们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

相关技术
  • 串行信号通讯方法、该方法所用通讯电路及通讯装置
  • 通讯电压转换电路、通讯装置及通讯电压的识别方法
技术分类

06120112941901