发明内容
本发明实施例提供一种切换串口的方法及串口共享装置,以提高设备对外串口的可用性。
根据本发明的一方面,提供一种切换串口方法,所述方法包括:
接收第一目标系统串口单元发送的切换逻辑信号;
根据所述切换逻辑信号,将与对外串口连接单元当前连接的系统串口单元切换为第二目标系统串口单元;
其中,所述第一目标系统串口单元、所述第二目标系统串口单元和与所述对外串口连接单元当前连接的系统串口单元为不同的系统串口单元。
根据本发明的另一方面,还提供一种串口共享装置,所述串口共享装置与主机通信连接,所述串口共享装置包括对外串口连接单元、多个系统串口单元和控制逻辑单元,所述对外串口连接单元用于为所述系统串口单元提供对外接口,所述多个系统串口单元至少包括第一目标系统串口单元、第二目标系统串口单元及与所述对外串口连接单元当前连接的系统串口单元,其中,
所述第一目标系统串口单元用于接收所述主机发送的串口切换命令,根据所述串口切换命令生成切换逻辑信号;
所述控制逻辑单元用于根据所述切换逻辑信号将与所述对外串口连接单元当前连接的系统串口单元切换为第二目标系统串口单元;
其中,所述第一目标系统串口单元、所述第二目标系统串口单元和与所述对外串口连接单元当前连接的系统串口单元为不同的系统串口单元。
根据本发明的另一方面,还提供一种切换串口的方法,所述方法包括:
检测与对外串口连接单元当前连接的系统串口单元是否响应主机命令;
如果没有响应所述主机命令,则根据预设规则向第一目标系统串口单元发送串口切换命令,以通过所述第一目标系统串口单元通知控制逻辑单元切换所述与对外串口连接单元的当前连接的系统串口单元为第二目标系统串口单元;
其中,所述第一目标系统串口单元、所述第二目标系统串口单元和与所述对外串口连接单元当前连接的系统串口单元为不同的系统串口单元。
根据本发明的另一方面,还提供一种主机,所述主机包括:
检测锁死单元,用于检测与对外串口连接单元当前连接的系统串口单元是否响应主机命令;
切换命令发送单元,用于在所述系统串口单元没有响应所述主机命令时根据预设规则向第一目标系统串口单元发送串口切换命令,以通过所述第一目标系统串口单元通知控制逻辑单元切换所述与对外串口连接单元的当前连接的系统串口单元为第二目标系统串口单元;
其中,所述第一目标系统串口单元、所述第二目标系统串口单元和与所述对外串口连接单元当前连接的系统串口单元为不同的系统串口单元。
根据本发明的另一方面,还提供一种串口共享方法,所述方法包括:
第一目标系统串口单元接收主机发送的串口切换命令;
所述第一目标系统串口单元通知控制逻辑单元将与对外串口连接单元连接的系统串口单元切换为第二目标系统串口单元,所述串口切换命令包括第二目标系统串口单元的信息,所述第二目标系统串口单元与所述与对外串口 连接单元当前连接的系统串口单元为不同的系统串口单元;
所述切换与对外串口连接单元当前连接的系统串口单元包括:发送路径、接收路径一起切换,或在所有系统共享对外串口连接单元的接收模块,并且所有系统的串口指令没有冲突时切换发送路径。
根据本发明的另一方面,还提供一种串口共享装置,其特征在于,所述串口共享装置与主机通信连接,所述串口共享装置包括对外串口连接单元和多个系统串口单元,所述对外串口连接单元用于为所述系统串口单元提供对外接口,所述装置还包括:
控制逻辑单元,用于接收主机发送的串口切换命令,根据所述串口切换命令切换与对外串口连接单元当前连接的系统串口单元,所述串口切换命令包括目标系统串口单元的信息,所述目标系统串口单元与所述与对外串口连接单元当前连接的系统串口单元为不同的系统串口单元;
所述切换与对外串口连接单元当前连接的系统串口单元包括:发送路径、接收路径一起切换,或在所有系统共享对外串口连接单元的接收模块,并且所有系统的串口指令没有冲突时切换发送路径。
本实发明施例,通过第一目标系统串口单元来通知控制逻辑单元来切换与对外串口连接单元当前连接的系统串口单元切换为第二目标系统串口单元,可以提高设备对外串口的可用性。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
本发明实施例一提供一种串口共享装置,该串口共享装置连接于外部主机,用于接收外部主机发送的串口切换命令来切换装置内的系统串口单元,如图3所示,所述装置包括:
第一目标系统串口单元401,用于选择接收对应的串口切换命令,根据所述串口切换命令生成切换逻辑信号;
对外串口连接单元403,包括发送模块和接收模块,用于为串口共享装置中的系统串口单元提供对外接口;
控制逻辑单元402,用于根据所述切换逻辑信号将与对外串口连接单元403的发送模块连接的系统串口单元切换为第二目标系统串口单元404。在本实施例中,一个正在监听的系统串口单元401(第一目标系统串口单元)接收串口切换命令,并根据所述串口切换命令生成切换逻辑信号,控制逻辑单元402根据所述切换逻辑信号将与对外串口连接单元403的发送模块连接的系统 串口单元切换为第二目标系统串口单元404。
在本实施例中,为更好说明,以系统串口单元A、系统串口单元B、系统串口单元C举例说明,当需要主机切换与对外串口连接单元的当前连接的系统串口单元A切换为系统串口单元C(即第二目标系统串口单元)时,主机发送串口切换命令至系统串口单元B(即第一目标系统串口单元),系统串口单元B将该串口切换命令转换成逻辑信号,再将逻辑信号发送至控制逻辑单元,由控制逻辑单元将根据逻辑信号将当前连接的系统串口单元A切换为系统串口单元C。
为进一步说明本发明实施例,可参考如图4,所述串口共享装置500包括:
对外串口连接单元530,用于提供串口共享装置与外部主机的串行数据通路,包括发送Tx和接收Rx两条通路,对外串口连接单元530可包括发送模块和接收模块,发送模块用于向外部主机发送数据,接收模块用于接收外部主机发送的数据。
多个系统串口单元511至51n,所有系统串口单元均与对外串口连接单元530的接收模块保持连接,用于接收外部主机发送的串口切换命令并根据所述串口切换命令生成切换逻辑信号。每个系统串口单元还具有命令选择的功能,可选择各自所对应的串口切换命令作为生成切换逻辑信号的命令。这样当所有系统串口单元同时接收到串口切换命令时,该命令指定的系统串口单元(即第一目标系统串口单元)选择该串口切换命令作为生成切换逻辑信号的命令,在本实施例中,为更好的说明本发明实施例,假设第一目标系统串口单元为第一系统串口单元511,当然也可以为其他系统串口单元。因为串口协议不允许多个串口设备同时向串口线上发送数据,所以每次切换系统串口必须切换系统串口的发送信号,保证只有一个系统向对外串口发送数据。为了防止通过串口操作一个系统时影响其它系统,必须保证设备内所有系统的串口指令不能有冲突。
控制逻辑单元520,用于根据所述切换逻辑信号将与对外串口连接单元 530的发送模块连接的系统串口单元切换为第二目标系统串口单元。在本实施例中,假设当前第二系统串口单元512与对外串口连接单元530的发送模块连接,控制逻辑单元520接收第一目标系统串口单元(本实施例中例如第一系统串口单元511)发送的控制逻辑信号,将与对外串口连接单元530的发送模块连接的第二系统串口单元512切换为第二目标系统串口单元(第一系统串口单元511至第n系统串口单元51n中除第二系统串口单元512以外的一个系统串口单元)。在本实施例中,也可以理解为多个系统串口单元至少包括第一目标系统串口单元、第二目标系统串口单元及与对外串口连接单元530当前连接的系统串口单元,即多个系统串口单元511至51n中至少有两个系统串口单元可以分别为第一目标系统串口单元、第二目标系统串口单元,该第一目标系统串口单元、第二目标系统串口单元不可以为与对外串口连接单元530当前连接的系统串口单元。设备如果有N个系统需要共享对外串口,可以逻辑控制单元520内部设置一个N位的控制寄存器,从低位到高位分别对应系统1到系统N的串口使能,“1”为“enable”(使能),“0”为“disable”(非使能)。某一时刻只允许该寄存器的某一位等于“1”,其它位必须等于“0”。
串口切换命令的格式可定义为“第一目标系统串口单元”+“第二目标系统串口单元”的格式,例如“sys1_switchn”,这里的“sys1”表示第一目标系统单元,switchn表示切换为第n目标系统单元。所有系统串口单元接收到串口切换命令“sys1_switchn”后进行选择,第一系统串口单元511(第一目标系统单元)根据“sys1”选择该串口切换命令生成切换逻辑信号,所述切换逻辑信号中包括切换第二目标系统串口单元的信息(第n系统串口单元51n),本实施例中即包括第n系统串口单元的信息。
例如把对外串口切换到第n系统串口单元51n上,如果想利用第一系统串口单元511的带外控制实现串口切换,主机向串口共享装置500发送sys1_switchn命令,只有第一系统串口单元511会响应该命令,其它系统串口 单元收到该指令会自动忽略;如果想利用第四系统串口单元514的带外控制实现上述切换,主机向串口共享装置500发送sys4_switchn命令,只有第四系统串口单元514会响应该命令,其它系统串口单元收到该指令会自动忽略。
如果要把对外系统串口从系统串口单元A切换到系统串口单元C上,主机发送一个切换命令至系统串口单元B(即第一目标系统串口单元),第一目标系统串口单元收到指令后生成控制逻辑信号,用它的带外控制线路发送所述控制逻辑信号,控制逻辑单元520按照该控制逻辑信号把对应系统串口单元C(第二目标系统串口单元)的寄存器位置为“1”,其它位全部清零。控制逻辑单元520根据控制寄存器的值,把系统串口单元C接到对外串口连接单元的发送模块上;同时把其它所有系统串口单元从对外串口连接单元的发送模块上断开,保证只有一个系统串口单元向主机发送数据。
本发明实施例的装置,通过其他系统串口单元将切换当前连接的系统串口单元的切换命令通知控制逻辑单元,从而可避免当当前连接的系统串口单元发生错误时,没有机制把对外串口连接单元再切换到其他系统串口单元上,由此可知,本实施发明实施例提供的装置,可以提高可用性。
实施例二:
本发明实施例二提供一种切换串口的法,如图5所示,所述方法包括:
步骤S301:第一目标系统串口单元选择接收对应的串口切换命令,根据所述串口切换命令生成切换逻辑信号;
步骤S302:根据所述切换逻辑信号,将与对外串口连接单元的发送模块连接的系统串口单元切换为第二目标系统串口单元。其中,所述第一目标系统串口单元、所述第二目标系统串口单元和与所述对外串口连接单元当前连接的系统串口单元为不同的系统串口单元。
在本实施例的方法中包括多个系统串口单元,为了保证串口切换命令可以下发到每个系统串口单元,所有系统串口单元均与对外串口连接单元的接收模块保持连接。所有系统串口单元同时接收到串口切换命令,每个系统串 口单元都需要选择与自己对应的串口切换命令作为生成切换逻辑信号的命令,因为串口协议不允许多个串口设备同时向串口线上发送数据,所以每次切换系统串口必须切换系统串口的发送信号,保证只有一个系统向对外串口发送数据。为了防止通过串口操作一个系统时影响其它系统,必须保证设备内所有系统的串口指令不能有冲突。
串口切换命令的格式可定义为“第一目标系统串口单元”+“第二目标系统串口单元”的格式,例如“sys3_switch2”,这里的“sys3”表示第一目标系统单元,switch2表示切换为第二目标系统单元。所有系统串口单元接收到串口切换命令“sys3_switch2”后进行选择,第三系统串口单元(第一目标系统单元)根据“sys3”选择该串口切换命令生成切换逻辑信号,switch2表示将与对外系统串口单元的发送模块当前连接的系统串口单元切换为第二系统串口单元,所述切换逻辑信号中包括切换第二目标系统串口单元的信息(本实施例中为第二系统串口单元)。第一目标系统单元(即上述的第三系统串口单元)通过带外控制线路向控制逻辑单元发送切换逻辑信号,控制逻辑单元接收所述切换逻辑信号,根据所述切换逻辑信号,将与对外串口连接单元的发送模块当前连接的系统串口单元切换为第二目标系统串口单元(上述的第二系统串口单元)。如果有N个系统需要共享对外串口,就在控制逻辑单元内部设置一个N位的控制寄存器,从低位到高位分别对应第一系统串口单元到第n系统串口单元的串口使能,“1”为“enable”,“0”为“disable”。根据切换逻辑信号,某一时刻只允许该寄存器的某一位等于“1”,其它位必须等于“0”。
本发明实施例的方法,通过其他系统串口单元将切换当前连接的系统串口单元的切换命令通知控制逻辑单元,从而可避免当当前连接的系统串口单元发生错误时,没有机制把对外串口连接单元再切换到其他系统串口单元上,由此可知,本实施发明实施例提供的方法,可以提高可用性。
实施例三:
本发明实施例三提供一种主机,如图6所示,所述主机包括:
检测锁死单元701,用于检测当前与对外串口连接单元的发送模块连接的系统串口单元是否响应主机命令;检测锁死单元701检测当前与对外串口连接单元的发送模块连接的系统串口单元是否响应主机命令,可以通过是否接收到该系统串口单元数据包来实现。
切换命令发送单元702,用于在所述系统串口单元没有响应所述主机命令时根据预设规则向第一目标系统串口单元发送所述串口切换命令,以通过该第一目标系统串口单元通知控制逻辑单元切换当前与对外串口连接单元的系统串口单元。
可在切换命令发送单元702中预先设置好所述系统串口单元没有响应主机命令时继续发送串口切换命令的规则,例如可以事先定义好按照系统串口单元的序号顺序或逆序发送对于它们的串口切换命令,也可以是随机的发送或者指定的其他顺序。所述切换命令发送单元702可包括预设发送规则功能,用于预设顺序、逆序、随机或预先指定排序的规则。这样如果指定系统串口单元无法响应切换命令(系统挂死或者带外控制信号失效),可以由主机再向其他系统串口单元发送串口切换命令(主机再向其他系统串口单元发送串口切换命令时,这些系统串口单元也称为第一系统串口单元),通过其他系统串口单元的带外控制信号改变控制寄存器的值,进而实现串口的切换。
本发明实施例提供的主机,当当前的某一系统串口单元挂死时,发送切换命令至其他系统串口单元,通过其他系统串口单元通知控制逻辑单元进行切换当前的系统串口单元,从而可避免当当前连接的系统串口单元发生错误时,没有机制把对外串口连接单元再切换到其他系统串口单元上,由此可知,本实施发明实施例提供的主机,可以提高可用性。
实施例四:
本发明实施例四提供一种切换串口的的方法,如图7所示,该方法包括:
步骤S601:检测当前与对外串口连接单元的发送模块连接的系统串口单 元是否响应主机命令。
步骤S602:如果所述系统串口单元没有响应所述主机命令,则根据预设规则向第一目标系统串口单元发送所述串口切换命令,以通过该第一目标系统串口单元通知控制逻辑单元切换与对外串口连接单元的当前连接的系统串口单元为第二目标系统串口单元,其中,所述第一目标系统串口单元、所述第二目标系统串口单元和与所述对外串口连接单元当前连接的系统串口单元为不同的系统串口单元。
检测当前与对外串口连接单元的发送模块连接的系统串口单元是否响应主机命令,可以通过是否接收到该系统串口单元数据包来实现。可预先设置好所述系统串口单元没有响应主机命令时继续发送串口切换命令的规则,例如可以事先定义好按照系统串口单元的序号顺序或逆序发送对于它们的串口切换命令,也可以是随机的发送或者指定的其他顺序。这样如果指定系统串口单元无法响应切换命令(系统挂死或者带外控制信号失效),可以由主机再向其他系统串口单元发送串口切换命令,通过其他系统串口单元的带外控制信号改变控制寄存器的值,进而实现串口的切换。
本发明实施例提供的方法,当当前的某一系统串口单元没有响应主机命令时,发送切换命令至其他系统串口单元,通过其他系统串口单元通知控制逻辑单元进行切换当前的系统串口单元,从而可避免当当前连接的系统串口单元发生错误时,没有机制把对外串口连接单元再切换到其他系统串口单元上,由此可知,本实施发明实施例提供的方法,可以提高可用性。
实施例五:
如图8所示本发明实施例六提供一种串口共享装置,所述装置包括:
控制逻辑单元1110,用于接收主机发送的串口切换命令,根据串口切换命令切换与对外串口连接单元连接的系统串口单元。在本实施例中,可以不通过系统串口单元通知控制逻辑单元进行执行切换动作,而是直接根据主机发送的串口切换命令进行切换与对外串口连接单元当前连接的系统串口单 元。在本实施例中,可以在控制逻辑单元1110中设置一个命令解析模块,用于检测外部主机发来的数据内是否含有串口切换命令,如果有串口切换命令控制逻辑单元则根据该命令进行系统串口单元的切换。,所述串口切换命令包括目标系统串口单元的信息,所述目标系统串口单元与所述与对外串口连接单元当前连接的系统串口单元为不同的系统串口单元。
本实施例的装置可以实现不通过各个系统的带外控制信号控制系统串口单元的切换,由控制逻辑单元直接执行系统串口单元的切换,切换系统串口单元时,可以发送、接收路径一起切换;也可以只切换发送路径,前提是所有系统共享对外串口连接单元的接收模块,并且所有系统的串口指令没有冲突。
本发明实施例提供的装置,通过控制逻辑单元根据主机发送的串口切换命令,直接切换与对外串口连接单元当前连接的系统串口单元,从而可避免当当前连接的系统串口单元发生错误时,没有机制把对外串口连接单元再切换到其他系统串口单元上,由此可知,本实施发明实施例提供的装置,可以提高可用性。
实施例六:
本发明实施例七提供一种切换串口的方法,如图9所示,所述方法包括:
步骤S1200,对外串口连接单元接收外部主机发来的数据,
步骤S1202,控制逻辑单元检测数据内是否含有串口切换命令,如果有串口切换命令,则执行步骤S1204;如果没有串口切换命令,则执行步骤S1206。
步骤S1204,控制逻辑单元切换与对外串口连接单元当前连接的系统串口单元。
步骤S1206,将数据发送给当前与对外串口连接单元连接的串口单元。
本发明实施例提供的方法,通过控制逻辑单元根据主机发送的串口切换命令,直接切换与对外串口连接单元当前连接的系统串口单元,从而可避免当当前连接的系统串口单元发生错误时,没有机制把对外串口连接单元再切换到其他系统串口单元上,由此可知,本实施发明实施例提供的方法,可以 提高可用性。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。