一种抢占式复用串口自动切换的方法及设备与流程

文档序号:14940824发布日期:2018-07-13 20:42阅读:157来源:国知局

本发明涉及串口通信技术领域,特别涉及一种抢占式复用串口自动切换的方法及设备。



背景技术:

通信设备单板中,串口接口是最常用的人机交互接口,但是目前部分设备单板中的mcu芯片的串口数量有限,通常这些串口跟设备内部的传感器(串口通信方式)进行通信,且被用完,无法再外甩出串口跟外部串口设备进行通信,因此也无法通过串口进行本地升级、串口在线调试或接串口屏进行参数设置等操作。

目前解决上述问题主要有如下几种:一、用串口扩展芯片或mcu扩展出所需的串口,此方法的弊端是增加硬件成本以及软件的复杂度;二、在硬件设计时添加跳线帽或切换开关的方式在mcu芯片串口跟传感器和外甩串口之间进行手动切换,此方法虽简单但维护非常不方便,用户很难区分改用哪个串口线来连接,此外,这种方式硬件连接的可靠性差,且在外接串口设备(mcu芯片跟外接串口设备和内部串口通信之间通信协议必然存在不一样)时必须重新启动设备。



技术实现要素:

本发明的目的在于克服现有技术的不足,提出一种抢占式复用串口自动切换的方法及设备,手动插入外部串口设备就能自动跟插入设备进行通信,实现自动切换通道的功能,拔出外部串口设备又重新跟传感器进行通信,实现抢占式复用串口自动切换的功能。

本发明解决其技术问题所采用的技术方案是:

一种抢占式复用串口自动切换的方法,将设备内的mcu芯片的一个输入输出端设置成标志位用以指示mcu芯片串口需要执行的功能,所述输入输出端通过第二电阻与电源相连并引出第一悬空端;将所述mcu芯片的串口数据输入端通过第一二极管与设备内的传感器的串口数据输出端相连,以及通过第二二极管与第二悬空端相连,且所述第一二极管与所述第二二极管的阳极与所述mcu芯片的串口数据输入端相连;所述mcu芯片的串口数据输入端还通过第一电阻与电源相连;将所述mcu芯片的串口数据输出端与所述传感器的串口数据输入端相连;

当外部串口设备需要与所述mcu芯片的串口通信时,执行如下步骤:

手动插入外接串口设备,使外部串口设备的接地端与所述第一悬空端相连,外部串口设备的串口数据输出端与所述第二悬空端相连,外部串口设备的串口数据输入端与所述mcu芯片的串口数据输出端相连;

mcu芯片监测到所述标志位变化为低电平,mcu芯片进行串口复位,重新设置与外部串口设备通信所需的参数,自动切换通信协议进而切换串口通道;

当外部串口设备不需要与所述mcu芯片的串口通信时,执行如下步骤:

拔出外接串口设备;

mcu芯片监测到所述标志位变化为高电平,mcu芯片进行串口复位,重新设置与传感器通信所需的参数,自动切换通信协议进而切换串口通道。

所述参数包括:波特率、数据位、起始位、停止位、奇偶校验位。

所述mcu芯片中预存储与传感器进行串口通信的参数和与外部串口设备进行通信的参数。

与传感器进行串口通信的参数和与外部串口设备进行通信的参数通过不同的文件存储,mcu芯片进行串口复位时,根据需要读取对应的文件进行加载。

所述外部串口设备还包括det端,所述外部串口设备的det端跟接地端gnd短接,所述外部串口设备的det端与所述第一悬空端相连。

所述mcu芯片还包括电源输入端和接地端。

所述传感器还包括电源输入端和接地端。

一种串口自动切换的设备,包括mcu芯片、传感器、串口复用电路和mcu切换模块;所述串口复用电路包括第一电阻、第二电阻、第一二极管和第二二极管;所述mcu芯片的一个输入输出端设置成标志位用以指示mcu芯片串口需要执行的功能,所述输入输出端通过第二电阻与电源相连并引出第一悬空端;所述mcu芯片的串口数据输入端通过第一二极管与设备上的传感器的串口数据输出端相连,以及通过第二二极管与第二悬空端相连,且所述第一二极管与所述第二二极管的阳极与所述mcu芯片的串口数据输入端相连;所述mcu芯片的串口数据输入端还通过第一电阻与电源相连;所述mcu芯片的串口数据输出端与所述传感器的串口数据输入端相连;

所述mcu切换模块设置在所述mcu芯片内部,用于监测所述标志位的变化并进行串口的切换;当有外接串口设备插入时,所述mcu切换模块监测到所述标志位为低电平,对所述mcu芯片进行串口复位,重新设置与外部串口设备通信所需的参数,自动切换通信协议进而切换串口通道;当外接串口设备被拔出时,所述mcu切换模块监测到所述标志位为高电平,对所述mcu芯片进行串口复位,重新设置与传感器通信所需的参数,自动切换通信协议进而切换串口通道。

外接串口设备插入时,外部串口设备的接地端与所述第一悬空端相连,外部串口设备的串口数据输出端与所述第二悬空端相连,外部串口设备的串口数据输入端与所述mcu芯片的串口数据输出端相连。

所述参数包括:波特率、数据位、起始位、停止位、奇偶校验位;所述mcu芯片中预存储与传感器进行串口通信的参数和与外部串口设备进行通信的参数。

本发明提供的技术方案带来的有益效果是:

1、在串口扩展或复用的电路上增加mcu的监控,实现串口的自动切换使设备更具有智能性;

2、硬件电路器件数量少,外围器件只需要两个二极管和两个电阻即可实现复用串口的自动切换;

3、通过mcu监测并判断跟哪个复用串口进行通信,确保通信的可靠性,同时通信协议上也实现切换;

4、可实现热插拔功能,设备在不需要断电重启的情况下与插入的外接串口设备进行通信,外接串口设备拔出后又恢复跟默认的串口进行通信。

以下结合附图及实施例对本发明作进一步详细说明,但本发明的一种抢占式复用串口自动切换的方法及设备不局限于实施例。

附图说明

图1为本发明实施例的简化电路图。

具体实施方式

参见图1所示,本发明实施例提供一种抢占式复用串口自动切换的方法,涉及到mcu芯片u1、传感器u2和外部串口设备j1,其中mcu芯片u1和传感器u2设置在设备的单板上,默认情况下,mcu芯片u1跟传感器u2进行通信,在需要进行本地升级、串口在线调试或接串口屏进行参数设置等操作时,需要将所述外部串口设备插接到所述mcu芯片并进行通信。

具体的,所述mcu芯片u1包括电源端vcc、接地端gnd、串口数据输入端rxd、串口数据输出端txd和输入输出端gpoi;所述传感器u2包括电源端vcc、接地端gnd、串口数据输入端rxd和串口数据输出端txd;所述外部串口设备包括电源端vcc、接地端gnd、串口数据输入端ext_rxd和串口数据输出端ext_txd。

进一步的,将设备内的mcu芯片u1的一个输入输出端gpoi设置成标志位用以指示mcu芯片串口需要执行的功能,所述输入输出端gpoi通过第二电阻r2与电源vcc相连并引出第一悬空端det;将所述mcu芯片u1的串口数据输入端rxd通过第一二极管d1与设备内的传感器u2的串口数据输出端txd相连,以及通过第二二极管d2与第二悬空端ext_txd相连,且所述第一二极管d1与所述第二二极管d2的阳极与所述mcu芯片u1的串口数据输入端rxd相连;所述mcu芯片u1的串口数据输入端rxd还通过第一电阻r1与电源vcc相连;将所述mcu芯片u1的串口数据输出端txd与所述传感器的串口数据输入端rxd相连。

本实施例中,设备运行中mcu芯片u1默认跟传感器u2进行通信并实时监测det端的状态,因此,外部串口设备j1未接入时,由于第二电阻r2上拉至vcc,mcu芯片u1的det端为高电平,此时mcu芯片u1在ext_rxd上发出的数据为mcu芯片u1跟传感器u2之间的通信协议数据,数据会被传感器u2识别并进行应答,当图1中a点为高电平时由于第一二极管d1的反向截止以及第一电阻r1上拉作用,所以图1中b点也为高电平,mcu芯片u1读取到此时的数据为“1”;当a点为低电平时,vcc经过第一电阻r1和第一二极管d1在b点上产生的电压为0.7v左右,mcu芯片u1此时读取到的数据为“0”。

外部串口设备j1接入时,外部串口设备j1的接地端gnd(本实施例中,外部串口设备j1中gnd是跟det短接的)与所述第一悬空端det相连,外部串口设备j1的串口数据输出端ext_txd与所述第二悬空端ext_txd相连,外部串口设备j1的串口数据输入端ext_rxd与所述mcu芯片u1的串口数据输出端ext_rxd(即mcu芯片的txd端)相连。此时,mcu芯片u1的det端为低电平,mcu芯片监测到det端变为低电平时,进行串口复位,重新设置与外部串口设备j1通信所需的参数,mcu芯片u1在ext_rxd上发出的数据为mcu芯片u1跟外部串口设备j1之间的通信协议数据,信号就不会被传感器u2识别并做出应答(断开跟传感器u2之间的通信),即“a”点一直为高电平,由于第一二极管d1的反向截止性所以不会影响b点的高低电平。但数据会被外部串口设备j1识别并做出应答,当ext_txd为高电平时由于第二二极管d2的反向截止以及第一电阻r1的上拉作用,所以b点也为高电平,mcu芯片此时读取到的数据为“1”;当ext_txd为低电平时vcc经过第一电阻r1和第二二极管d2在b点上产生的电压为0.7v左右,mcu芯片此时读取到的数据为“0”。

外部串口设备j1拔出后,mcu芯片u1的det端变为高电平,mcu芯片u1进行串口复位,重新设置与传感器通信所需的参数,此后工作原理跟前面外部串口设备j1未接入时描述的一致。

需要说明的是,根据串口通信的定义可知,两个串口之间进行通信要有通信协议才能进行通信(识别并做出应答),不同的通信协议是不能进行通信(不被识别并不会做出应答),在上述中mcu芯片跟传感器之间以及mcu芯片跟外部串口设备之间是有不同的通信协议;通信协议包括:波特率、数据位、起始位、停止位、奇偶校验位等内容,在上述中mcu芯片里已存储好这两种串口的通信协议在检测到det引端发生变化时,mcu芯片自动进行串口复位设置成相应的通信协议。具体的,与传感器进行串口通信的参数和与外部串口设备进行通信的参数可以通过不同的文件存储,mcu芯片进行串口复位时,根据需要读取对应的文件进行加载。

本发明另一实施例提供一种串口自动切换的设备,包括mcu芯片u1、传感器u2、串口复用电路和mcu切换模块。所述mcu芯片u1包括电源端vcc、接地端gnd、串口数据输入端rxd、串口数据输出端txd和输入输出端gpoi;所述传感器u2包括电源端vcc、接地端gnd、串口数据输入端rxd和串口数据输出端txd;所述串口复用电路包括第一电阻、第二电阻、第一二极管和第二二极管。

具体的,所述mcu芯片的一个输入输出端gpoi设置成标志位用以指示mcu芯片u1串口需要执行的功能,所述输入输出端gpoi通过第二电阻r2与电源vcc相连并引出第一悬空端det;所述mcu芯片u1的串口数据输入端rxd通过第一二极管d1与设备上的传感器u1的串口数据输出端txd相连,以及通过第二二极管d2与第二悬空端ext_txd相连,且所述第一二极管d1与所述第二二极管d2的阳极与所述mcu芯片u1的串口数据输入端rxd相连;所述mcu芯片u1的串口数据输入端rxd还通过第一电阻r1与电源vcc相连;所述mcu芯片u1的串口数据输出端txd与所述传感器u2的串口数据输入端rxd相连;

所述mcu切换模块设置在所述mcu芯片u1内部,用于监测所述标志位的变化并进行串口的切换;当有外接串口设备j1插入时,所述mcu切换模块监测到所述标志位为低电平,对所述mcu芯片u1进行串口复位,重新设置与外部串口设备通信所需的参数,自动切换通信协议进而切换串口通道;当外接串口设备j1被拔出时,所述mcu切换模块监测到所述标志位为高电平,对所述mcu芯片u1进行串口复位,重新设置与传感器u2通信所需的参数,自动切换通信协议进而切换串口通道。

进一步的,外接串口设备j1插入时,外部串口设备j1的接地端gnd与所述第一悬空端det相连,外部串口设备j1的串口数据输出端ext_txd与所述第二悬空端ext_txd相连,外部串口设备j1的串口数据输入端ext_rxd与所述mcu芯片u1的串口数据输出端txd相连。

进一步的,所述参数包括:波特率、数据位、起始位、停止位、奇偶校验位;所述mcu芯片中预存储与传感器进行串口通信的参数和与外部串口设备进行通信的参数。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1