主机串口同时连接多个异步串口设备的方法

文档序号:6459405阅读:383来源:国知局
专利名称:主机串口同时连接多个异步串口设备的方法
技术领域
本发明涉及主机的异步通信串口 ,特别是一种主机串口同时连接多 个异步串口设备的方法。
背景技术
实际开发应用中,异步通信串口作为简单高效的通用接口被广泛应
用在通信、控制等领域。比如,在手持设备中,蓝牙、卫星定位导航(Global Positioning System ,简称GPS)、无线保真(Wireless Fidelity, 简 称WIFI)等模块都提供异步串行接口 (Universal Asynchronous Serial Port,简称UART)同基带芯片的串口相连的方式,来进行通讯控制等操 作。 一个基带芯片所提供的串口个数通常是有限的,而大家都希望把更 多的具有串口接口的功能模块集成到一个产品中。众所周知,当一个主 机的异步串口与某个串口设备建立连接,必须断开当前串口连接,才能 与新的串口设备建立连接。

发明内容
为克服上述已有技术的不足,本发明要解决的技术问题是提供一种 主机串口同时连接多个异步串口设备的方法。
为解决上述技术问题,本发明的技术方案是
一种主机串口同时连接多个异步串口设备的方法,包括以下步骤 步骤1:将各串口设备的发送端接入到可编程TX合路器的指定端口 , 将所述各串口设备的接收端接入到可编程RX分路器的指定端口 ,所述的 指定端口由所述的可编程TX合路器和RX分路器的位置寄存器指定;步骤2:在发送数据链路,可编程TX合路器将各串口设备发来的数 据,经过并转串电路,合为一路数据流,并同步到该合路器时钟的指定 时隙,发送到主机串口的接收端;
步骤3:主机串口接收端接收所述可编程TX合路器发来的数据,保
存在主机串口的接收缓冲器中,经过数据解析,将分离好的字节发送到
主机的各串口处理模块;
步骤4:在接收数据链路,主机串口发送端,先把主机串口的发送 缓冲器中的数据首尾附加控制字节,以标识该数据属于哪个串口设备, 再将该待发送的数据发送到可编程RX分路器的接收缓冲器;
步骤5:可编程RX分路器收到主机串口发来的数据块后,根据该数 据块的控制字节,把数据块发送到目的端口的缓冲器;
步骤6:所述目的端口根据各自的传输速率,将缓冲器里的数据再 发送到各串口设备。
步骤1中的串口设备的传输速率相同或不同。 步骤l中的串口设备有若干个。
所述的可编程TX合路器和RX分路器的8位寄存器的值由主机芯片设 置,该8位寄存器的值用来表示所述的合路器或分路器哪个端口被使能。 主机串口的传输速率要大于或等于所接入串口设备传输速率之和。 当需要增加新的串口设备时,将新串口设备的发送端和接收端分别 接入到可编程TX合路器、RX分路器的空闲端口。 所述步骤2中的并转串电路是移位寄存器 与现有技术相比,本发明的有益效果是.-
本发明通过硬件和软件的配合设计,提供一种主机串口同时连接多个 异步串口设备的方法,从而实现了一个主机通过异步串口同时与多个不 同或相同传输速率的异步串口设备或芯片建立连接以及传输数据。特别适用于主机串口有限,需要连接的串口设备较多的设计方案。


图1是一个主机串口同时连接四个串口设备的硬件框架图。
图2是一个主机串口同时连接多于四个串口设备的扩展框架图。
图3是一个主机串口同时连接四个相同传输速率的串口设备的可编 程TX合路器的字节输出和时钟的对应关系图。
图4是一个主机串口同时连接四个相同传输速率的串口设备时主机 串口解析数据的流程图。
图5是一个主机串口同时连接4个不同传输速率的串口设备时可编程 TX合路器字节输出和时钟的对应关系图。
图6是主机串口处理接收数据的工作流程图。
图7是主机串口发送数据的工作流程图。
具体实施例方式
下面结合附图和实施例对本发明的具体实施方式
做进一步详细的说
明,但不应以此限制本发明的保护范围。
请参阅图1。图1是一个主机串口同时连接四个串口设备的硬件框架
图,能够实现一个主机异步串口与最多四个不同传输速率异步串口设备
或芯片建立连接和收发数据。四个串口设备的发送端分别与可编程TX
合路器的四个输入端口相连,该可编程TX合路器的数据并转串电路的输
出端与主机串口的接收缓冲器的输入端相连,所述主机串口的发送缓冲
器的输出端与可编程RX分路器的接收缓冲器的输入端相连,该可编程
RX分路器的四个输出端口与四个串口设备的接收端相连。
主机串口的传输速率设为一个固定值,该值要大于或等于所接入串口
设备传输速率之和。比如,接入的4个串口设备传输速率都为115200bit/s,则主机串口的传输速率为 115200*4bit/s , 即 460800bit/s。提供给可编程TX合路器和RX分路器的时钟(以下简称 CLOCK)等于主机串口的传输速率值,比如,115200*4Hz,即460800Hz。 可编程TX合路器和RX分路器的8位位置寄存器的值由主机芯片设置, 该8位寄存器的值用来表示哪个端口被使能。比如,0bl010,0000表示 端口0和端口2被使能,也就是,要把串口设备O接到端口 0,串口设 备2接到端口 2。
请参阅图3,图3是一个主机串口同时连接四个相同传输速率的串 口设备的可编程TX合路器的字节输出和时钟的对应关系图。假设TX合 路器设备O、 1、 2、 3端口所接设备的传输速率都是115200bit/s,设备 O端口收到的数据用A表示,设备1端口收到的数据用B表示,设备2 端口收到的数据用C表示,设备3端口收到的数据用D表示。某个时刻, TX合路器收到的数据是ABCD,通过并转串,TX合路器第0个CLOCK输 出A,第1个CLOCK输出B,第2个CLOCK输出C,第3个CLOCK输出D。 主机串口每收到的一个字节格式从高位到低位依次是ABCDABCD,这里使 用高位在前原则。将收到的字节保存到接收缓冲器(缓冲器以下简称 BUFFER)里,每4个字节就可以组成设备0, 1, 2, 3的字节。
请参阅图4,图4是一个主机串口同时连接四个相同传输速率的串口 设备时,主机串口解析数据的流程图。首先,主机串口的接收BUFFER 必须每接收到4个字节,才能正确解析串口设备O, 1, 2, 3发送的字节。 假设某个时亥U,主机串口的接收BUFFER接收到了A0B0C0D0A1B1C1D1, A2B2C2D2A3B3C3D3 , A4B4C4D4A5B5C5D5 , A6B6C6D6A7B7C7D7 四个字节,这里每个字节从Bit7到BitO;然后,经过数据解析,将每个 字节的第7位和第3位提取出来,组成串口设备0发送的字节 A0A1A2A3A4A5A6A7,将每个字节的第6位和第2位提取出来,组成 串口设备l发送的字节,B0B1B2B3B4B5B6B7,类似的,可以提取出串口设备2和串口设备3发送的字节;第三步,将解析出来的字节,分别 发送到各串口设备处理程序。
请参阅图5,图5是一个主机串口同时连接4个不同传输速率的串口 设备时可编程TX合路器字节输出和时钟的对应关系。假设TX合路器设 备0、 1、 2、 3端口所接设备的传输速率不同,设备0是115200bit/s, 设备1是115200bit/s/2=57600bit/s,设备2是115200bit/s,设备3 是115200bit/s/2二57600bit/s.设备0端口收到的数据用A表示,设备 1端口收到的数据用B表示,设备2端口收到的数据用C表示,设备3 端口收到的数据用D表示。通过并转串,对应TX合路器的CLOCK输出, 主机串口每收到的一个字节格式从高位到低位是A0C0ABCD。将收到的 字节保存到的接收BUFFER里,设备0和2的每个字节需要从主机串口收 到的每4个字节里解析,设备1和3的每个字节需要从主机串口收到的 每8个字节里解析。
需要说明的是,TX合路器所接设备的传输速率应该是115200bit/s 整数倍,或可被115200bit/s整除。这样,能够方便的将数据分配到CLOCK 的时隙。而且主机串口接收端的软件解析方式要预先设置好。
如果要与更多不同传输速率异步串口设备或芯片建立连接和收发 数据,可以参考图2。图2主机串口同时连接多于四个串口设备的扩展 框架图。如图2,第一级RX分路器/TX合路器各接端口 0,端口 1,端口 2和端口 3;第二级RX分路器从第一级RX分路器的端口 0引出连接4 个串口设备,第二级TX合路器连接到第一级TX合路器的端口 0。假设 主机串口的传输速率是115200*4bit/s, 即460800bit/s。分配给第一 级各串口设备的传输速率为115200bit/s。分配给第二级串口设备的传 输速率为115200/4bit/s,即26800bit/s。也就是设备0. 0, 0. 1, 0. 2, 0. 3 传输速率是26800bit/s,设备l, 2, 3传输速率是115200bit/s。假设设备l, 2, 3端口数据分别为A, B, C,设备0.0, 0. 1,0.2, 0.3端口数 据分别为D, E, F, G。通过并转串,对应TX合路器的CLOCK输出,主 机串口收到的数据格式从高位到低位是DABC, EABC, FABC, GABC, DABC, EABC, FABC, GABC。将收到的字节保存到BUFFER里,设备l, 2, 3发送 的字节需要从主机串口收到的每4个字节解析,设备0. 0, 0. 1, 0. 2, 0. 3 发送的字节需要从主机串口收到的每16个字节解析。
请参阅图6和图7。图6是主机串口处理接收数据的工作流程图。 图7是主机串口发送数据的工作流程图。各串口设备通过可编程TX合路 器,发送数据到同一主机串口,并将解析后的数据发送到各串口处理模 块的流程图见图6。串口设备接收数据的工作流程是,位于主机串口发 送端的处理模块,要把发给串口的数据块首尾附加特殊的控制字节,以 标明该数据块属于哪个串口设备。可编程RX分路器接收的主机发来的数 据块,根据该数据块的控制字节,判断该数据块属于哪个串口设备,并 将该数据内容发到端口 BUFFER。各端口根据各自传输速率将各自BUFFER 里的数据发送到各串口设备。本发明主机串口同时连接多个异步串口设 备的方法,具体包括以下步骤
步骤1:将各串口设备的发送端接入到可编程TX合路器的指定端口 , 将所述各串口设备的接收端接入到可编程RX分路器的指定端口 ,所述的 指定端口由所述的可编程TX合路器和RX分路器的位置寄存器指定;
步骤2:在发送数据链路,可编程TX合路器将各串口设备发来的数 据,经过并转串电路,也就是移位寄存器,合为一路数据流,并同步到 该合路器时钟的指定时隙,发送到主机串口的接收端;
步骤3:主机串口接收端接收所述可编程TX合路器发来的数据,保 存在主机串口的接收缓冲器中,经过数据解析,将分离好的字节发送到 主机的各串口处理模块。数据解析的原理是,根据各串口设备速率,主机CLOCK的时隙已预先对应各串口设备数据,依据己设定好的字节分离 规则,将分离好的字节发送到主机的各串口处理模块。 主机串口接收端数据解析步骤如下,
首先,要事先知道各个串口设备的传输速率。以最简单的一种情况 举例,假设,有4个串口设备,并且串口设备0, 1,2,3传输速率相同, 设备0端口收到的数据用A表示,设备1端口收到的数据用B表示,设 备2端口收到的数据用C表示,设备3端口收到的数据用D表示。主机 串口需要接收到 A0B0C0D0A1B1C1D1 , A2B2C2D2A3B3C3D3 , A4B4C4D4A5B5C5D5, A6B6C6D6A7B7C7D7共四个字节(每个字节从Bit7 到BitO)才能完整解析数据。
然后,在主机串口中断处理函数里,将主机串口接收的每个字节的 每个BIT位分别提取出来,通过移位操作,组成新的数据字节,S卩,A, B, C, D。比如,主机串口接收到第一个字节,A0B0C0D0A1B1C1D1, 提取出该字节的第7位和第3位,并将第3位左移3位,就得到数据字 节A的BIT7和BIT6。类似操作,主机串口需要接收4个字节,并经过 提取和移位操作,才能组成数据字节A, B, C, D。
最后,将数据字节A, B, C, D发送到相应的串口处理模块。
步骤4:在接收数据链路,主机串口发送端,先把主机串口的发送 缓冲器中的数据首尾附加控制字节,以标识该数据属于哪个串口设备, 再将该待发送的数据发送到可编程RX分路器的接收缓冲器;
步骤5:可编程RX分路器收到主机串口发来的数据块后,根据该数 据块的控制字节,把数据块发送到目的端口的缓冲器;
步骤6:所述目的端口根据各自的传输速率,将缓冲器里的数据再 发送到各串口设备。
主机串口发送端数据处理步骤如下,首先,需要事先定义一个数据块的开始标志,该数据块属于哪个串 口设备标志,数据块内容,数据块结尾标志。
然后,各串口处理程序按照定义,将待发送的内容打包成数据块, 放到串口发送队列里。
最后,串口将队列里的数据发送到RX分路器的缓冲器Buffer里, 由RX分路器来解包并分发到各串口处理设备。
假设主机端串口设备O处理程序要发送字符串"AT"(对应16进制 是0x41, 0x54, 0x0d)到串口设备0,通过上述程序处理,RX分路器接收 到的字串就是(0xF9, 0xF9, 0xF9, 0x10, 0x41, 0x54, 0x0d, 0xE9, 0xE9, 0xE9)。
RX分路器就可以根据数据块的开始标志、设备号、结尾标识符 将字符串"AT"提取出来并发送到串口设备O。
本发明通过硬件和软件的配合设计,实现了主机串口同时连接多个异 步串口设备的方法。当需要增加新的串口设备时,将新串口设备的发送 端和接收端分别接入到可编程TX合路器、RX分路器的空闲端口即可。
以上所述仅为本发明的较佳实施例而已,并非用来限定本发明的实施 范围。即凡依本发明申请专利范围的内容所作的等效变化与修饰,都应为 本发明的技术范畴。
权利要求
1、一种主机串口同时连接多个异步串口设备的方法,其特征在于该方法包括以下步骤步骤1将各串口设备的发送端接入到可编程TX合路器的指定端口,将所述各串口设备的接收端接入到可编程RX分路器的指定端口,所述的指定端口由所述的可编程TX合路器和RX分路器的位置寄存器指定;步骤2在发送数据链路,可编程TX合路器将各串口设备发来的数据,经过并转串电路,合为一路数据流,并同步到该合路器时钟的指定时隙,发送到主机串口的接收端;步骤3主机串口接收端接收所述可编程TX合路器发来的数据,保存在主机串口的接收缓冲器中,经过数据解析,将分离好的字节发送到主机的各串口处理模块;步骤4在接收数据链路,主机串口发送端,先把主机串口的发送缓冲器中的数据首尾附加控制字节,以标识该数据属于哪个串口设备,再将该待发送的数据发送到可编程RX分路器的接收缓冲器;步骤5可编程RX分路器收到主机串口发来的数据块后,根据该数据块的控制字节,把数据块发送到目的端口的缓冲器;步骤6所述目的端口根据各自的传输速率,将缓冲器里的数据再发送到各串口设备。
2、 根据权利要求1所述的主机串口同时连接多个异步串口设备的方法, 其特征在于步骤1中的串口设备的传输速率相同或不同。
3、 根据权利要求1或2所述的主机串口同时连接多个异步串口设备的方 法,其特征在于步骤l中的串口设备有若干个。
4、 根据权利要求1所述的主机串口同时连接多个异步串口设备的方法, 其特征在于所述的可编程TX合路器和RX分路器的8位寄存器的值由主机芯片设置,该8位寄存器的值用来表示所述的合路器或分路器哪个端 口被使能。
5、 根据权利要求1所述的主机串口同时连接多个异步串口设备的方法, 其特征在于主机串口的传输速率要大于或等于所接入串口设备传输速率 之和。
6、 根据权利要求1所述的主机串口同时连接多个异步串口设备的方法, 其特征在于当需要增加新的串口设备时,将新串口设备的发送端和接收 端分别接入到可编程TX合路器、RX分路器的空闲端口 。
7、 根据权利要求1所述的主机串口同时连接多个异步串口设备的方法, 其特征在于所述步骤2中的并转串电路是移位寄存器。
全文摘要
本发明公开了一种主机串口同时连接多个异步串口设备的方法,包括以下步骤步骤1将各串口设备的发送端、接收端接入到指定端口;步骤2TX合路器将各串口设备发来的数据,发送到主机串口的接收端;步骤3主机串口接收端经过数据解析发送到主机各串口处理模块;步骤4主机串口将该待发送的数据发送到可编程RX分路器的接收缓冲器;步骤5可编程RX分路器把数据块发送到目的端口的缓冲器;步骤6所述目的端口将缓冲器里的数据再发送到各串口设备。从而实现了一个主机通过异步串口同时与多个不同或相同传输速率的异步串口设备或芯片建立连接以及传输数据。
文档编号G06F13/38GK101308480SQ20081003911
公开日2008年11月19日 申请日期2008年6月18日 优先权日2008年6月18日
发明者胜 王 申请人:嘉兴闻泰通讯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1