多路串口通讯控制器及其多路控制的方法

文档序号:6613603阅读:369来源:国知局

专利名称::多路串口通讯控制器及其多路控制的方法
技术领域
:本发明涉及控制装置,特别涉及一种多路串口通讯控制器及其多路控制的方法。技术背景在一些安防项目工程中,DVS(数字视频服务器)或者别的主机时常需要通过串口对一个设备(如视频矩阵、云台等)进行控制,如果有多个设备想同时来控制一个这样的设备就会出现竞争。如果多个主机想要通过串口来控制一个设备,同时发送命令就会因争抢串口数据线而产生数据传输的错误,导致通讯失败。而现有的串口控制器只能实现简单的单路RS422/485到RS232电气接口的控制,不能实现串口多路到单路的控制。目前市场上还没有多路串口通讯控制器产品出现,多路串口通讯控制器设备是当前的一个重要技术课题。
发明内容本发明的目的是克服现有的技术存在的缺陷,提供一种避免因多主机对数据线的竞争而造成的数据错误,支持多种串行通讯接口,使用灵活方便,便于工程安装,智能化的多路串口通讯控制器及其多路控制的方法。为达到上述目的,本发明提供的多路串口通讯控制器,包括多个通讯端口,还包括多个主控串口收发模块、被控串口收发模块、一拨码开关、一微控制器和一逻辑控制器,其中主控串口收发模块用于经所述通讯端口分别与优先级别不同的控制主机相连,被控串口收发模块用于经所述通讯端口与被控设备相连,所述逻辑控制器与各串口收发模块分别相连,所述逻辑控制器与微控制器和拨码开关依次相连。本发明多路串口通讯控制器,其中所述通讯端口为5个,分别与4个主控串口收发模块和1个被控串口收发模块相连。本发明多路串口通讯控制器,其中所述通讯端口采用RS422/485和/或RS232电气接口。本发明多路串口通讯控制器,其中所述拨码开关设置的延时范围为317秒。本发明还提供了用于上述多路串口通讯控制器的多路控制方法。为达到上述目的,本发明提供的用于多路串口通讯控制器的多路控制方法,该方法采用包括多个主控串口收发模块、被控串口收发模块、一拨码开关、一微控制器和一逻辑控制器的多路串口通讯控制器,通过对多个串口输入信号的检测来对输入信号的流向进行调度,该方法执行如下步骤(1)初始化微控制器的外部端口;(2)读取拨码开关的状态,确定工作模式为优先级控制模式或为非优先级模式如果为优先级控制模式,执行下一步;如果为非优先级控制模式,执行步骤(5);(3)査询主机端口有无数据发送,如果没有则继续查询;如果主机端口有数据发出,则进行端口优先级检测如果主机端口的优先级比正在占用信道的端口优先级低则返回,继续查询主机端口;如果主机端口的优先级高于正在占用信道的端口,则抢占信道,执行下一步;(4)抢占信道后创建一个分任务,实时检测串口通讯的状态,如果查询到通讯结束,则自动退出,恢复到默认状态,返回步骤(3);(5)査询主机端口有无数据发送,如果没有则继续查询;如果主机端口有数据发出,则进行信道状态检测如果信道状态为被占用则返回,继续査询主机端口;如果信道状态为空闲,则占用信道,执行下一步;(6)占用信道后创建一个分任务,实时检测串口通讯的状态,如果査询到通讯结束,则自动退出,恢复到默认状态,返回步骤(5);(7)任务结束,退出。本发明所述的多路控制方法,在其中所述步骤(4)或(6)中,如果査询到通讯结束,分任务在等待一段时间后再自动退出。本发明所述的多路控制方法,在其中所述步骤(4)或(6)实时检测串口通讯的状态中,如果3秒时间没有数据发送,则确认通讯结束,进入下一步;否则等待一定长的时间,然后继续监测。本发明所述的多路控制方法,其中所述等待一段时间,该段时间的长短通过拨码开关来设置。本发明多路串口通讯控制器及其控制方法的优点在于a)微处理器内部采用多任务实时操作系统。能够实时查询各个串口模块的状态,检测是否有数据通过,从而及时开启信道将数据发送到被控设备。b)支持多种串行通讯接口。设备的串口模块能够同时支持RS422/485和RS232电气接口。无论主机和被控设备的串行接口为哪种类型,都能够实现互通互联。c)支持两种调度模式优先级模式和非优先级模式。d)自动信道延时设计。设备可以通过拨码开关来设置信道延时时间,避免因多主机对数据线的竞争而造成的数据错误。总之,这个设备使用起来灵活方便,外部接口基本都是端子,很适合工程安装。下面结合实施例参照附图进行详细说明,以求对本发明的目的、特征和优点得到更深入的理解。图1为本发明多路串口通讯控制器的结构图;图2为本发明控制器中微控制器的电路图;图3为图2中串口收发模块的电路图;图4为图2中逻辑控制器的逻辑原理图一;图5为图2中逻辑控制器的逻辑原理图二;图6为本发明多路串口通讯控制器的主流程图;图7为图6中分任务的流程图。具体实施方式本发明解决其技术问题所采用的技术方案是设备主要由串口收发模块、微控制器、逻辑控制器和拨码开关组成。其中串口收发模块的功能都是一样的,负责串口数据的接收和发送,可以设置多个,其中1个负责与被控设备通讯。实施例选择串口收发模块为5个,4个专门负责与不同的控制主机通讯,另外1个是负责与被控设备通讯的。微处理器通过读取拨码开关的状态来调整设备的工作模式,并且通过主机端口的优先级来决定哪个主机与被控设备进行通讯。逻辑控制器的任务是实现串口收发模块之间的信道连接。除了信道使用权的控制,本发明还支持自动信道延时的功能。当一个主机发送了一系列的命令给被控设备后,不希望立即释放信道给其他的主机使用,避免命令发生冲突而失去效用。因此,当一个主机占用信道后,设备如果检测到双方的通讯已经结束了,不会立即将信道分配给别的主机端口,而是等待一定的时间再释放信道给别的主机。这段时间通过拨码开关进行设置,延时范围为3—17秒,当然,这个时间还可以根据需要加长。首先,对本发明多路串口通讯控制器的多路控制的方法,即控制程序的流程说明如下。参见图l、图6和图7,该方法采用包括多个主控串口收发模块14、被控串口收发模块5、拨码开关、微控制器和逻辑控制器的多路串口通讯控制器,通过对多个串口输入信号的检测来对输入信号的流向进行调度。微控制器内部的程序主要分为两个部分,按照外部拨码开关的设置进行优先级模式和非优先级模式的调度工作。此外,还有一个分任务来检测与被控端口的通讯是否结束。由于采用的是实时操作系统,主任务与分任务可以同时进行。主任务一旦启动是不会退出的,分任务执行结束后就自动退出了。非优先级模式串行通讯的通道采用先到先得的方式来进行分配。在非优先级模式下微控制器(简称MCU)对4个主机接口的接收信号进行实时检测,当串口模块的接收信号为低电平的时候说明该模块接收到了数据。如果MCU发现有任何一个主机接口接收到了主机发送过来的数据,就会将这个主机接口与被控设备接口相连。信道被这个主机接口占用了。这个时候,如果MCU检测到其他的主机接口也收到了数据,不会将信道分配给这个主机接口使用。经过一段时间,主机接口占用信道发送/接收数据完成后就不再进行通讯了。这个时候,MCU会检测到串口模块的接收信号来判断通讯是否结束。MCU连续3秒检测串口模块的接收信号,如果检测结果都为高电平就判定通讯已经结束。3秒是一个门限值,可以根据实际需要进行调整。通讯结束后,被控设备需要一段时间来完成主机要求的操作。这个时候,信道依然为这个主机保留,别的主机无法占用信道发送命令。等待时间的长短可以根据拨码开关来进行设置。当这个主机端口释放了信道的控制权之后,别的主机端口才能够获取信道的控制权。优先级模式优先级模式下MCU同样要检测4个主机接口的接收信号。MCU按照主机端口优先级的高低来进行信道的分配<table>tableseeoriginaldocumentpage7</column></row><table>低优先级的端口只能等高优先级的端口释放信道的控制权之后,才能占用信道。高优先级的端口可以抢夺低优先级端口的信道控制权,无需等待该端口通讯结束。下面以实施例对本发明多路串口通讯控制器进行详细说明。参见图l,本发明多路串口通讯控制器包括5个通讯端口,还包括4个主控串口收发模块14、被控串口收发模块5、拨码开关、微控制器和逻辑控制器,其中主控串口收发模块14用于经所述通讯端口分别与优先级别不同的控制主机14相连,被控串口收发模块5用于经所述通讯端口与被控设备相连,所述逻辑控制器与各串口收发模块15分别相连,所述逻辑控制器与微控制器和拨码开关依次相连。具体说明如下串口收发模块、微控制器、逻辑控制器和拨码开关采用的集成电路芯片如下-集成电路型号名称功能名称W78E58P(U1)51单片机GAL20V8可编程逻辑芯片MAX489RS422/485接口芯片参见图2,微控制器U1的PO口的P0.1—P0.3的SW0—SW4管脚分别与拨码开关S2相连,CT1—CT4作为控制引脚连接到逻辑控制器U2上。Pl口的4个管脚P1.0一P1.3分别作为LED控制管脚,驱动LED。Ul的另外5个管脚P2.4,P3.2-P3.5(RXA一RXE)分别与各串口收发模块UARTl-5的接收端相连,用来检测各个串口模块的输入信号。Sl是一个拨码开关,用来控制422全双工通讯和485半双工通讯模式的切换。4位的拨码开关SW1是这样设置的SW1为延时时间和模式选择开关,前三位(1,2,3)表示在优先级模式下释放串口控制权的延迟时间。当三位拨码开关都拨到ON时,延迟时间最短(约为3秒钟),拨码开关采用二进制编码格式,延迟时间以两秒为单位递增,当三位拨码开关都拨到OFF时,延迟时间最长(约为17秒)。最后一位拨码开关是用来控制工作模式的。当拨码开关置为ON时,控制器工作在优先级模式,当开关置为OFF时控制器工作在无优先级模式。可以随时对控制器的工作模式进行调整,而不必对控制器断电。U2是一个可编程的逻辑芯片,内部有逻辑控制的电路,主要负责控制串口模块之间的通讯。U2芯片的输入信号CT1一CT4,是来自微控制器的控制信号,控制信道的切换。RXB—RXE是经过与门后的来自串口模块的输入信号。RXA右边的从U2芯片TXOUT输出的信号与RS422/485数据收发模块的发送使能(DE)管脚相连。U2芯片内部逻辑设计主要包括两个部分1)允许某个主机接口发往被控设备的数据通过。2)允许被控设备发往某个主机的数据通过。如图4所示,主机接口的数据从RXB—RXE管脚输入,每路信号都与CT控制信号相与(CT1—CT4)。如果CT信号为高电平,输出为RX的电平,则信号RX可以通过,如果CT为低电平,就会输出常低的电平,从而阻止RX信号通过。同一时刻只有一个CT信号为高电平,其余的都为低电平。因此,RXB—RXE信号中仅有一路信号可以通过,避免了信号间的竞争。在与门的后面紧跟了一个4个输入1个输出的或门,将4路信号相或后再取反输出到TXAOUT。TXAOUT—TXEOUT都是控制422/485收发模块的发送使能信号。将TXOUT信号取反后就可以得到实际的数据信号。如图5所示的电路实现了对四路输出信号中任意一路的选通控制,将RXA数据传递到对应的TXOUT管脚。CT信号取反后与RXA信号相与,当CT为高电平的时候,与门输出的是RXA信号,当CT为低电平的时候,与门输出的是一个常高的信号,即没有数据输出。参见图3,U5是RS422/485串口收发模块,负责将TTL信号电平转换为标准的422/485信号电平。芯片的管脚2(RO)为接收管脚,数据从RX+和RX—接收进来,经过电平转换从RO输出。管脚5(DI)为发送管脚,数据从DI进来,经过电平转换从TX+和TX—发送出去。芯片的管脚3和4分别为芯片的接收使能和发送使能。芯片工作在RS485半双工通讯模式下,就需要将这两个管脚短接上,才能正常工作。如果芯片工作在全双工通讯模式下,需要断开这两个管脚的连接,通过拨码开关来实现这个模式切换。在本发明多路串口通讯控制器的实施例中,每一个串口模块都有一个端子接口,使用非常方便。权利要求1.一种多路串口通讯控制器,包括多个通讯端口,其特征在于还包括多个主控串口收发模块(1~4)、被控串口收发模块(5)、一拨码开关、一微控制器和一逻辑控制器,其中主控串口收发模块(1~4)用于经所述通讯端口分别与优先级别不同的控制主机(1~4)相连,被控串口收发模块(5)用于经所述通讯端口与被控设备相连,所述逻辑控制器与各串口收发模块(1~4)分别相连,所述逻辑控制器与微控制器和拨码开关依次相连。2.根据权利要求l所述的多路串口通讯控制器,其特征在于其中所述通讯端口为5个,分别与4个主控串口收发模块(14)和1个被控串口收发模块(5)相连。3.根据权利要求1或2所述的多路串口通讯转换器,其特征在于其中所述通讯端口采用RS422/485禾口/或RS232电气接口。4.根据权利要求1或2所述的多路串口通讯控制器,其特征在于其中所述拨码开关设置的延时范围为317秒。5.根据权利要求3所述的多路串口通讯转换器,其特征在于其中所述拨码开关设置的延时范围为317秒。6.—种多路串口通讯控制器的多路控制方法,其特征在于该方法采用包括多个主控串口收发模块(14)、被控串口收发模块(5)、一拨码开关、一微控制器和一逻辑控制器的多路串口通讯控制器,通过对多个串口输入信号的检测来对输入信号的流向进行调度,该方法执行如下步骤(1)初始化微控制器的外部端口;(2)读取拨码开关的状态,确定工作模式为优先级控制模式或为非优先级模式如果为优先级控制模式,执行下一步;如果为非优先级控制模式,执行步骤(5);(3)査询主机端口有无数据发送,如果没有则继续査询;如果主机端口有数据发出,则进行端口优先级检测如果主机端口的优先级比正在占用信道的端口优先级低则返回,继续查询主机端口;如果主机端口的优先级高于正在占用信道的端口,则抢占信道,执行下一步;(4)抢占信道后创建一个分任务,实时检测串口通讯的状态,如果查询到通讯结束,则自动退出,恢复到默认状态,返回步骤(3);(5)查询主机端口有无数据发送,如果没有则继续查询;如果主机端口有数据发出,则进行信道状态检测如果信道状态为被占用则返回,继续査询主机端口如果信道状态为空闲,则占用信道,执行下一步;(6)占用信道后创建一个分任务,实时检测串口通讯的状态,如果査询到通讯结束,则自动退出,恢复到默"状态,返回步骤(5);(7)任务结束,退出。7.根据权利要求5所述的多路控制方法,其特征在于在其中所述步骤(4)或(6)中,如果查询到通讯结束,分任务在等待一段时间后再自动退出。8.根据权利要求5或6所述的多路控制方法,其特征在于在其中所述步骤(4)或(6)实时检测串口通讯的状态中,如果3秒时间没有数据发送,则确认通讯结束,进入下一步;否则等待一定长的时间,然后继续监测。9.根据权利要求7所述的多路控制方法,其特征在于其中所述等待一段时间,该段时间的长短通过拨码开关来设置。全文摘要本发明多路串口通讯控制器,包括通讯端口、主控串口收发模块、被控串口收发模块、拨码开关、微控制器和逻辑控制器,其中主控串口收发模块分别与优先级别不同的控制主机相连,被控串口收发模块与被控设备相连,逻辑控制器与各串口收发模块分别相连,逻辑控制器与微控制器和拨码开关依次相连。本发明还提供了多路串口通讯的多路控制方法。其优点在于能够实时查询多个串口模块的状态,检测是否有数据通过,采用优先级模式和非优先级模式,及时开启信道将数据发送到被控设备并同时支持RS422/485和RS232电气接口。同时,通过拨码开关设置信道延时时间,避免因多主机对数据线的竞争而造成的数据错误。设备使用方便,适合工程安装。文档编号G06F13/38GK101398796SQ20071017553公开日2009年4月1日申请日期2007年9月30日优先权日2007年9月30日发明者泰嘉黎申请人:北京国通创安信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1