一种基于软硬件结合的小型化RS-232和RS-485通信接口切换方法 |
|||||||
申请号 | CN202410118284.8 | 申请日 | 2024-01-29 | 公开(公告)号 | CN117909270A | 公开(公告)日 | 2024-04-19 |
申请人 | 贵州送变电有限责任公司; | 发明人 | 符棠; 徐世霖; 甘建波; 袁川; 李亚民; 张大勇; 李嘉成; 谢明; 吴建国; 陈荣; 何波; 徐军; | ||||
摘要 | 本 申请 涉及 电子 通信领域,公开了一种基于软 硬件 结合的小型化RS‑232和RS‑485通信 接口 切换方法,包括以下步骤:S1、提供两个选通控制线,分别连接至MCU的两个GPIO引脚;S2、通过设置所述GPIO引脚的电平状态,控制所述选通控制线的高低电平,以选通RS‑485或RS‑232 通信接口 。本 发明 通过利用MCU的GPIO引脚和 软件 逻辑来控制通信接口的选通,减少了额外的硬件组件,如复杂的多路选择器或 逻辑 门 电路 ,从而缩小了装置的尺寸,降低了成本。此外,软件控制提供了更大的灵活性,使得系统能够根据实际需要动态切换通信协议,无需人工干预,提高了系统的可适应性和智能化 水 平。 | ||||||
权利要求 | 1.一种基于软硬件结合的小型化RS‑232和RS‑485通信接口切换方法,其特征在于,包括以下步骤: |
||||||
说明书全文 | 一种基于软硬件结合的小型化RS‑232和RS‑485通信接口切换方法 技术领域背景技术[0002] 在现代工业自动化和物联网应用中,测试设备通常需要支持多种通信接口,以适应不同的现场测试需求。RS‑232和RS‑485作为两种广泛应用的串行通信接口,其在不同设备中的接线方式和定义常常不一致,导致在实际应用中需要额外注意接线的兼容性问题。此外,在实现数据上云的过程中,不同设备的接口多样性要求开发多种接口电路,这不仅增加了研发和采购成本,也对模块化和小型化设计构成了挑战。 [0003] 传统的结合RS‑232和RS‑485通信接口的电路设计往往需要占用较大空间,使用两个UART口外加必要的外围电路,不利于设备的小型化和集成化。 [0006] 公开号为CN219893317U的中国专利公开了一种RS485与RS232电平自适应电路,其尽管能够自动识别输入接口类型并转换成TTL电平,但其转换过程繁琐,不够高效。 [0007] 鉴于上述,迫切需要一种新型的解决方案,以实现RS‑232和RS‑485接口的高效、小型化集成,同时克服现有技术中的不足。 发明内容[0008] 针对现有技术的不足,本发明提供了一种基于软硬件结合的小型化RS‑232和RS‑485通信接口切换方法,利用MCU通过简化的选通控制线和GPIO引脚控制,实现了对两种通信接口的快速自动切换。 [0009] 为实现以上目的,本发明通过以下技术方案予以实现:一种基于软硬件结合的小型化RS‑232和RS‑485通信接口切换方法,包括以下步骤: [0010] 提供两个选通控制线,分别连接至MCU的两个GPIO引脚; [0011] 通过设置所述GPIO引脚的电平状态,控制所述选通控制线的高低电平,以选通RS‑485或RS‑232通信接口。 [0012] 优选的,所述GPIO引脚的电平状态设置为: [0013] 当选通RS‑485通信接口时,第一个GPIO引脚为高电平,第二个GPIO引脚为低电平; [0014] 当选通RS‑232通信接口时,第一个GPIO引脚为低电平,第二个GPIO引脚为高电平。 [0016] 优选的,所述方法还包括: [0017] 在切换通信接口前,检查MCU是否正在进行通信操作,若是,则等待直至通信操作完成或超时后再进行切换。 [0018] 优选的,所述检查MCU是否正在进行通信操作的步骤包括查询与当前激活的通信协议控制电路相连的通用异步接收/发送器的状态。 [0019] 优选的,所述方法还包括: [0020] 在通信协议控制电路切换后执行预定时间的延时,以等待通信协议控制电路稳定。 [0021] 优选的,所述方法还包括: [0022] 利用MCU执行错误检测,并在检测到通信错误时采取相应的错误处理措施。 [0023] 本发明还提供一种基于软硬件结合的小型化RS‑232和RS‑485通信接口切换装置,包括: [0024] 两个选通控制线; [0025] 一个MCU,所述MCU配置有GPIO引脚,用以控制所述选通控制线的电平状态,进而选通RS‑485或RS‑232通信接口。 [0027] 本发明还提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述的方法。 [0028] 本发明提供了一种基于软硬件结合的小型化RS‑232和RS‑485通信接口切换方法。具备以下有益效果: [0029] 1、本发明通过利用MCU的GPIO引脚和软件逻辑来控制通信接口的选通,减少了额外的硬件组件,如复杂的多路选择器或逻辑门电路,从而缩小了装置的尺寸,降低了成本。此外,软件控制提供了更大的灵活性,使得系统能够根据实际需要动态切换通信协议,无需人工干预,提高了系统的可适应性和智能化水平。 [0030] 2、本发明在切换至RS‑232通信接口时,通过改变GPIO引脚的电平状态来交换RS‑232通信接口的发送和接收信号线,可以灵活地根据需要通过软件控制来交换RS‑232通信接口的发送和接收线,而无需手动重新接线,这既方便又提高了系统的适应性。 [0031] 3、本发明通过在切换通信接口前确保当前没有正在进行的通信操作,可以避免在数据传输过程中切换接口导致的数据丢失或损坏,确保了通信接口在切换过程中的稳定性和数据的完整性。 [0032] 4、本发明通过引入延时以等待通信协议控制电路稳定可以确保在切换过程中硬件电路稳定下来,避免出现的瞬间干扰或是信号反弹等影响通信的问题。可以降低因通信协议控制电路切换而引起的通信错误,提高系统的可靠性和稳定性。附图说明 [0033] 图1为本发明的方法流程示意图; [0034] 图2为本发明的装置结构示意图; [0035] 图3为本发明的计算机设备结构示意图。 [0036] 其中,40、计算机设备;41、处理器;42、存储器;43、存储介质。 具体实施方式[0037] 下面将结合本发明说明书附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 [0038] 请参阅附图1,本发明实施例提供一种基于软硬件结合的小型化RS‑232和RS‑485通信接口切换方法,旨在通过简化的硬件设计和灵活的软件控制来实现两种通信协议的切换。该方法包括步骤S1~S2,具体如下: [0039] 其中,步骤S1、提供两个选通控制线,每个选通控制线分别连接至微控制单元(MCU)的两个通用输入输出引脚(GPIO)。这两个GPIO引脚分别对应RS‑232通信协议和RS‑485通信协议的启用控制。 [0040] 本实施例中,首先,为了控制RS‑485与RS‑232通信接口的选通,设计了两个GPIO引脚,分别称为GPIO1和GPIO2。这两个引脚直接连接到微控制单元(MCU)上,用于输出控制信号。 [0041] 其中,步骤S2、MCU通过软件程序设置GPIO引脚的电平状态,控制选通控制线的高低电平,以选通RS‑485或RS‑232通信接口。 [0042] 本实施例中,如图2所示,在MCU的软件控制逻辑下,GPIO引脚的电平状态被设定为: [0043] 当需要选通RS‑485通信接口时,MCU设置GPIO1为高电平,同时设置GPIO2为低电平。这种电平状态组合使得与RS‑485通信协议相关的控制电路被激活,而与RS‑232相关的控制电路则被关闭。此时的输出接口1、输出接口2为RS‑485的A、B,RS‑485控制线用于控制RS‑485的接收或发送。 [0044] 当需要选通RS‑232通信接口时,MCU设置GPIO1为低电平,同时设置GPIO2为高电平。此时,RS‑232的控制电路被激活,RS‑485的控制电路则被关闭。 [0045] MCU通过改变GPIO1和GPIO2的电平状态,能够实现对两种通信协议的快速切换。这种切换过程是通过软件逻辑控制的,可以在系统运行中动态执行,无需物理切换操作或重启系统。 [0046] 本发明通过利用MCU的GPIO引脚和软件逻辑来控制通信接口的选通,减少了额外的硬件组件,如复杂的多路选择器或逻辑门电路,从而缩小了装置的尺寸,降低了成本。此外,软件控制提供了更大的灵活性,使得系统能够根据实际需要动态切换通信协议,无需人工干预,提高了系统的可适应性和智能化水平。 [0047] 作为本发明的一种实施方式,在切换至RS‑232通信接口时,通过改变GPIO引脚的电平状态来交换RS‑232通信接口的发送和接收信号线。 [0048] 具体的,可以使用GPIO引脚来控制RS‑232通信接口的发送(TX)和接收(RX)信号线的交换。以下是实施该功能的步骤: [0049] 1.硬件电路设计: [0051] 这个硬件电路需要有两个输入,分别来自两个GPIO引脚,和两个输出,分别连接到RS‑232的TX和RX线。 [0052] 2.软件控制逻辑: [0053] 在MCU的固件中编写控制代码,以便能够通过改变GPIO引脚的电平状态来控制TX和RX信号线的交换。 [0054] 例如,当需要RS‑232接口处于发送模式时,MCU将设置一个GPIO引脚为高电平,另一个为低电平。当需要接收模式时,MCU可以设置相反的电平状态,或者使用其他逻辑组合。 [0055] 本实施例中,如图2所示,通过使用GPIO1和GPIO2来控制交换电路,有以下模式: [0056] 发送模式:GPIO1设置为低电平,GPIO2设置为高电平,硬件电路配置为连接MCU的TX到RS‑232的TX,RX到RX;此时的输出接口2、输出接口3为RS‑232的TX、RX。 [0057] 接收模式:GPIO1设置为低电平,GPIO2设置为低电平,硬件电路配置为连接MCU的RX到RS‑232的TX,TX到RX;此时的输出接口2、输出接口3为RS‑232的RX、TX。 [0058] 通过这种方式,系统可以灵活地根据需要通过软件控制来交换RS‑232通信接口的发送和接收线,而无需手动重新接线,这既方便又提高了系统的适应性。 [0059] 作为本发明的一种实施方式,方法还包括: [0060] 在切换通信接口前,检查MCU是否正在进行通信操作,若是,则等待直至通信操作完成或超时后再进行切换。 [0061] 具体的,通过增加的安全特性,即在切换通信接口前确保当前没有正在进行的通信操作。可以避免在数据传输过程中切换接口导致的数据丢失或损坏。涉及以下步骤: [0062] 1.通信状态检测: [0063] 在MCU固件中设置一个标志或状态变量,用以表示当前通信状态(例如,是否有数据正在发送或接收)。 [0064] 在每次通信开始前设置该状态,并在通信结束后清除它。 [0065] 2.切换条件检查: [0066] 在执行任何接口切换之前,增加一个检查程序来查询通信状态标志。 [0067] 如果检测到通信正在进行,则延迟切换操作,直到当前的通信操作完成。 [0068] 3.超时机制: [0069] 为了防止因为某些错误导致的永久等待状态,设置一个超时计时器。 [0070] 如果通信操作在预定的时间内没有完成,超时机制将触发,允许接口切换操作继续进行。 [0071] 4.安全切换: [0072] 一旦确认通信操作已完成或超时机制已触发,MCU可以安全地执行接口切换操作。 [0073] 在切换操作之前后,可以加入适当的延时以确保硬件状态稳定。 [0074] 5.异常处理: [0075] 如果因为某些原因通信操作不能正常完成,需要有相应的异常处理机制。 [0076] 异常处理包括记录错误状态、尝试重置通信接口或通知上层应用程序。 [0077] 通过以上步骤,本发明的实施方式确保了通信接口在切换过程中的稳定性和数据的完整性。这对于确保系统可靠性和降低因接口切换导致的通信错误至关重要。 [0078] 进一步的,检查MCU是否正在进行通信操作的步骤包括查询与当前激活的通信协议控制电路相连的通用异步接收/发送器的状态。 [0079] 具体的,为了检查MCU是否正在进行通信操作,可以查询与当前激活的通信协议控制电路相连的通用异步接收/发送器(UART)的状态。UART是负责处理串行通信的一种设备,它有自己的发送和接收缓冲区以及一套状态寄存器,这些可以被MCU查询以确定当前的通信状态。具体步骤如下: [0080] 1.UART状态寄存器查询: [0081] MCU可以读取UART的状态寄存器来检查发送缓冲区是否为空,即是否所有的数据都已发送完毕。 [0082] 对于接收操作,可以检查接收缓冲区是否有未读取的数据,或者是否存在正在进行的接收活动。 [0083] 2.发送和接收缓冲区检查: [0084] 对于发送操作,如果UART的发送缓冲区为空,这通常意味着没有正在进行的发送操作。 [0085] 对于接收操作,如果接收缓冲区没有新的数据,或者没有接收中断发生,这意味着没有正在进行的接收操作。 [0086] 3.等待传输完成: [0087] 如果检查结果表明当前有通信操作正在进行,MCU应等待这些操作完成。 [0088] MCU可以通过查询UART状态寄存器,等待直到发送缓冲区空或接收操作完成。 [0089] 4.超时机制: [0090] 在等待通信操作完成的过程中,同样也可设置一个超时机制。 [0092] 5.安全切换: [0093] 一旦确认UART状态表明没有正在进行的通信操作,或者超时机制触发,MCU可以安全地执行通信接口的切换操作。 [0094] 通过这种方法,可以确保在切换通信接口之前,不会中断正在进行的通信操作,从而维护数据完整性和通信的可靠性。这对于设计要求高可靠性的通信系统尤为重要。 [0095] 作为本发明的一种实施方式,方法还包括: [0096] 在通信协议控制电路切换后执行预定时间的延时,以等待通信协议控制电路稳定。 [0097] 具体的,通过引入延时以等待通信协议控制电路稳定可以确保在切换过程中硬件电路稳定下来,避免出现的瞬间干扰或是信号反弹等影响通信的问题。以下是实施该步骤的方法: [0098] 1.定义延时时长: [0100] 2.编写延时代码: [0101] 在MCU的固件中,编写一个延时函数或使用现有的延时功能,用于在通信协议控制电路切换后执行。 [0102] 延时可以通过软件定时器实现,或者简单地使用循环计数来实现。 [0103] 3.延时执行: [0104] 在通信协议控制电路切换的代码逻辑中,紧接着切换指令后,调用延时函数。 [0105] 保证在延时期间不执行任何影响切换稳定性的操作。 [0106] 4.后续操作: [0107] 延时完成后,再进行任何需要的初始化或配置操作,确保通信协议控制电路已经完全稳定,可以开始正常的通信。 [0108] 5.监控电路状态(可选): [0110] 通过实施这些步骤,可以大大降低因通信协议控制电路切换而引起的通信错误,提高系统的可靠性和稳定性。这对于那些要求高可靠性通信的应用场合尤其重要,如工业控制、医疗设备、关键基础设施监控等。 [0111] 作为本发明的一种实施方式,方法还包括: [0112] 利用MCU执行错误检测,并在检测到通信错误时采取相应的错误处理措施。 [0113] 具体的,在通信系统中加入错误检测和处理机制可以提升系统鲁棒性。MCU可以执行错误检测,并在检测到通信错误时采取适当的错误处理措施。以下是实施这一功能的步骤: [0114] 1.错误检测机制: [0116] 利用UART或其他通信接口提供的硬件错误检测功能,例如,大多数UART都有硬件层面的错误标志位来指示各种类型的错误。 [0117] 2.错误标志监控: [0118] 定期或在每次通信完成后检查通信接口的错误标志。 [0119] 如果发现错误标志被设置,则进行错误类型的判断,以确定是哪种通信错误。 [0120] 3.错误处理措施: [0121] 根据检测到的错误类型,执行预定义的错误处理措施。这些措施包括: [0122] 重置通信接口:清除错误状态,重置硬件接口,尝试重新初始化通信协议控制电路。 [0123] 重发数据:如果是因为传输错误导致的问题,尝试重新发送数据。 [0124] 通知上层应用:通过软件接口向上层应用报告错误,由上层应用决定如何处理。 [0125] 记录错误信息:将错误信息记录到日志系统,以便于后续的故障排查和分析。 [0126] 等待或延时重试:在某些情况下,需要等待一段时间后再次尝试通信,以避免临时性的干扰。 [0127] 4.故障恢复: [0128] 设计故障恢复策略,以便在通信错误后尽时恢复到正常工作状态。 [0129] 这包括重新同步通信协议、重置通信接口、清除错误状态等。 [0130] 5.反馈机制: [0131] 如果错误持续发生,实施反馈机制,例如减少传输速率、切换备用通信路径或通知维护人员。 [0132] 通过实施这些错误检测和处理措施,可以提高系统在面对通信错误时的自我修复能力,减少系统停机时间,保证系统的连续性和可靠性。 [0133] 下文描述的基于软硬件结合的小型化RS‑232和RS‑485通信接口切换装置与上文描述的基于软硬件结合的小型化RS‑232和RS‑485通信接口切换方法可相互对应参照。 [0134] 请参阅附图2,本发明还提供一种基于软硬件结合的小型化RS‑232和RS‑485通信接口切换装置,包括: [0135] 选通控制线: [0136] 这些控制线是硬件电路的一部分,用于根据MCU的控制信号来选通RS‑232或RS‑485通信接口。这通常通过逻辑电路或继电器等元件来实现。 [0137] MCU(微控制单元): [0138] MCU是该装置的控制核心,配置有多个GPIO(通用输入/输出)引脚。 [0139] MCU的固件中包含了控制选通控制线的程序,能够根据需要改变GPIO引脚的电平状态,从而实现对通信接口的选通。 [0140] RS‑485通信接口: [0141] RS‑485是一种差分信号的串行通信协议,通常用于长距离和高速率的通信。 [0142] 在本装置中,RS‑485接口可以通过选通控制线被选中,从而与外部设备进行通信。 [0143] RS‑232通信接口: [0144] RS‑232是一种常见的串行通信协议,适合于短距离和较慢速率的通信。 [0145] 该装置同样可以通过选通控制线来选中RS‑232接口,实现与外部设备的通信。 [0146] 软件控制逻辑: [0147] 装置中的MCU固件包含用于控制通信接口切换的逻辑,这包括检测通信状态、执行接口切换前的延时、处理可能发生的通信错误等功能。 [0148] 固件会根据实际的应用场景和需求来调整GPIO引脚的状态,以选通相应的通信接口。 [0149] 通过上述设计,该装置能够实现RS‑232和RS‑485通信接口的快速切换,支持多种通信需求,适用于多变的工业环境和自动化控制系统。这种设计既提高了系统的灵活性,也确保了通信的可靠性和稳定性,有助于简化系统集成和降低维护成本。 [0150] 本实施例装置可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。 [0151] 请参阅附图3,本发明还提供一种计算机设备40,包括:处理器41和存储器42,存储器42存储有处理器可执行的计算机程序,计算机程序被处理器执行时执行如上的方法。 [0152] 本发明还提供了一种存储介质43,该存储介质43上存储有计算机程序,该计算机程序被处理器41运行时执行如上的方法。 [0153] 其中,存储介质43可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read‑Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red‑Only Memory,简称PROM),只读存储器(Read‑Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。 |