具有多个uart接口的设备以及利用该设备的方法

文档序号:6340053阅读:428来源:国知局
专利名称:具有多个uart接口的设备以及利用该设备的方法
技术领域
本发明涉及通信领域,尤其涉及具有多个UART (通用异步接收/发送装置)接口的设备以及利用该设备发送数据以及接收数据的方法。
背景技术
在通信设备、工业控制等许多设备中,经常会用UART接口等串行通信接口作为控制,或者数据传输接口。在很多时候,需要多个UART接口同时或者分别进行通信,而多个 UART接口的波特率(baud rate)不一样。如果每个UART接口都有分配一个地址、2个FIFO 缓存器、波特率发生器,那么假设有5,6个UART接口甚至更多,就需要很多个FIFO缓存器和波特率发生器,使得片上系统SOC (片上系统)的面积增大,增加功耗,浪费资源。

发明内容
本发明要解决的技术问题是当配置多个UART接口时如何保证各个UART接口传输的相互独立,提高传输效率、节约资源。为了实现上述目的,本发明公开了一种具有多个UART接口的设备,所述多个UART 接口具有多个波特率,该设备包括
总线接口,用于当需要所述UART接口执行发送操作时从总线接收与所述UART接口对应的地址信息和数据;
与所述总线接口耦合的数据ID逻辑,用于将所述地址信息转换为对应UART接口的ID fn息;
与所述数据ID逻辑耦合的发送缓存器,用于缓存所述ID信息和所接收的数据; 与所述发送缓存器耦合的数据选择器,用于从所述发送缓存器读取所接收的数据并且将所接收的数据发送到与所述ID信息对应的UART接口 ;
波特率时钟电路,根据所述多个UART接口的波特率产生所述多个UART接口所需要的时钟信号;
所述数据选择器进一步用于当所述UART接口执行接收操作后从UART接口接收数据, 并保存对应的ID信息;
所述设备还包括与数据ID逻辑耦合并且与所述发送缓存器并行设置的接收缓存器, 用于缓存来自数据选择器的所述ID信息和从UART接口所接收的数据;
所述数据ID逻辑进一步用于将接收缓存器中的所述ID信息转换为地址信息; 所述总线接口进一步用于将接收缓存器中的从UART接口接收的数据和所述转换后的地址信息通过总线输出。在一个优选实施例中,所述波特率时钟电路包括波特率时钟选择逻辑和波特率发生器。在一个优选实施例中,所述波特率发生器包括波特率计数器,其计数器的最大值为各个UART接口波特率系数乘以16后的最小公倍数。
在一个优选实施例中,如果波特率计数器的值为对应UART接口的波特率系数的倍数时,则波特率时钟选择逻辑产生对应的接收时钟。在一个优选实施例中,当所述UART接口需要执行发送操作时,如果波特率计数器的值为对应UART接口的波特率系数乘以16的倍数时,则波特率时钟选择逻辑产生对应的发送时钟。优选地,所述UART接口包括数据收发逻辑。优选地,所述发送缓存器和所述接收缓存器都是同步FIFO (先入先出)缓存器。本发明还公开一种利用本发明的设备发送数据的方法,包括如下步骤
1)总线接口从总线接收与所述UART接口对应的地址信息和数据;
2)数据ID逻辑将所述地址信息转换为ID信息;
3)发送缓存器缓存所述ID信息和所接收的数据;
4)数据选择器从所述发送缓存器读取所接收的数据并且将所接收的数据发送到与所述ID信息对应的UART接口 ;
5)波特率时钟电路根据所述多个UART接口的波特率产生所述多个UART接口所需要的时钟信号;
6)对应的UART接口根据所述时钟信号,发送数据。在一个优选实施例中,所述步骤5)波特率时钟电路根据所述多个UART接口的波特率产生所述多个UART接口所需要的时钟信号还包括以下步骤
如果波特率计数器的值为对应UART接口的波特率系数乘以16的倍数,则波特率时钟选择逻辑产生对应的发送时钟。本发明还公开一种利用本发明的设备接收数据的方法,包括如下步骤
1)波特率时钟电路根据所述多个UART接口的波特率产生所述多个UART接口所需要的时钟信号;
2)UART接口根据所述时钟信号,接收数据;
3)数据选择器从所述UART接口接收所述数据和保存对应的ID信息;
4)接收缓存器缓存所接收的数据和ID信息;
5)数据ID逻辑将所述ID信息转换为地址信息;
6)将所接收的数据和地址信息传输给总线接口。在一个优选实施例中,所述步骤1)波特率时钟电路根据所述多个UART接口的波特率产生所述多个UART接口所需要的时钟信号还包括以下步骤
如果波特率计数器的值为对应UART接口的波特率系数的倍数,则波特率时钟选择逻辑产生对应的接收时钟。与现有技术相比,本发明的具有多个UART接口的设备以及利用该设备发送数据以及接收数据的方法有益效果为
本发明可以适用于多种SOC模块,可以灵活配置多个UART接口的数目,支持标准的 UART协议、且各个UART接口的传输相互独立,节省了每个UART所需要使用的缓存器和波特率产生电路,从而提高传输效率、节约资源并且降低功耗以及方便通信设备的使用。


本发明的其它特性和优点将从阅读以下参考相应附图的本发明多个优选实施例的描述中得到更为清楚地显现
图1是根据本发明的具有多个UART接口的设备的框图; 图2是根据本发明实施例的波特率时钟电路的框图; 图3是利用本发明的设备发送数据的方法的流程图; 图4是利用本发明的设备接收数据的方法的流程图; 图5是根据本发明的多个时钟信号的示例图。
具体实施例方式现在将在下文中参考附图更充分地描述本发明,其中在附图中示出了本发明的说明性实施例。在该附图中,为了清楚,部位或者特征的相对大小可以被放大。但是,本发明可以以许多不同的形式实施,并且将不会认为是局限于在此处阐述的实施例;相反地,这些实施例被提供以使得这个公开将是全面的和完整的,并且将本发明的范围全面地传送给那些本领域技术人员。应该理解的是,当一个元件被称为是“耦合”或者“连接”到另一个元件的时候,其可以直接耦合或者连接到另一个元件,或者还可以存在插入元件。相比之下, 当一个元件被称为是“直接地耦合”或者“直接地连接”到另一个元件上的时候,不存在插入的元件。相同的数字自始至终地指的是相同的元件。如在此处使用的,该术语“和/或” 包括相关的列出项目的一个或多个的任何和所有的组合。在此处使用的术语仅仅是为了描述特定实施例的目的,并且不意欲限制本发明。 如在此处使用的,该单数的形式“一”、“一个”意欲同样包括复数形式,除非上下文清楚地表示之外。进一步应该理解的是,在这个说明书中使用的术语“包括”和/或“包含”指定存在陈述的特征、整数、步骤、操作、元件和/或部件,但是不排除存在或者增加一个或多个其他的特征、整数、步骤、操作、元件、部件和/或其分组。除非被定义而外,在此处使用的所有术语(包括技术和科学术语)具有与通常由本发明属于的该领域普通技术人员所理解的相同的含义。更进一步应该理解的是,诸如常用字典中限定的那些术语应该解释为具有以下的含义,即,符合它们在相关技术的上下文中的含义,并且除了在此处明白地限定的之外,不会以理想化或者太正式的意义被解释。某些术语在本申请文件中自始至终用来指示特定系统部件。如本领域的技术人员将认识到的那样,通常可以用不同的名称来指示相同的部件,因而本申请文件不意图区别那些只是在名称上不同而不是在功能方面不同的部件。在本申请文件中,以开放的形式使用术语“包括”、“包含”和“具有”,并且因此应将其解释为意指“包括但不限于…”。图1是根据本发明的具有多个UART接口的设备1的框图。该设备1包括总线接口 101、数据ID逻辑102、发送缓存器103、接收缓存器104、数据选择器105、波特率时钟电路 106。总线接口 101用于当需要UART接口执行发送操作时从总线接收与所述UART接口对应的地址信息和数据。与所述总线接口 101耦合的数据ID逻辑102用于将所述地址信息转换为对应UART接口的ID信息。与所述数据ID逻辑102耦合的发送缓存器103用于缓存所述ID信息和所接收的数据。与所述发送缓存器103耦合的数据选择器105用于从所述发送缓存器103读取所接收的数据并且将所接收的数据发送到与所述ID信息对应的UART接口。波特率时钟电路106根据所述多个UART接口的波特率产生所述多个UART接口所需要的时钟信号。在一个优选实施例中,所述数据选择器105进一步用于当所述UART接口执行接收操作后从UART接口数据,并保存对应的ID信息。所述设备1还包括与数据ID逻辑102耦合并且与所述发送缓存器103并行设置的接收缓存器104用于缓存来自数据选择器的所述 ID信息和从UART接口所接收的数据。所述数据ID逻辑进一步用于将接收缓存器中的所述 ID信息转换为地址信息。所述总线接口 101进一步用于将接收缓存器中的从UART接口接收的数据和所述转换后的地址信息通过总线输出。在一个优选实施例中,下面将详细介绍上述组件的功能。总线接口101
总线接口 101负责和CPU或者控制单元进行通信,一般是常用的数据总线接口,通过总线接口配置寄存器,传输地址和数据,以及时钟等信息。另外,设备1还可以包括模块寄存器和各个UART接口的配置寄存器,总线接口会自动进行这些寄存器数据的读写,而不用经过FIFO缓存器。数据ID逻辑102
对于要发送的数据,数据ID逻辑202会把总线传来的地址转换为ID,这里的地址是数据所对应UART接口的数据寄存器地址,自动扩展数据,在数据的高位加入ID,和数据一起作为一帧数据存入发送FIFO缓存器。对于接收FIFO缓存器中的数据,数据ID逻辑会根据 ID信息,转换为相应的地址信息,传给总线,数据则直接输出给总线接口。数据选择器105
判断并传输FIFO缓存器和不同UART接口之间的数据,可以对不同的UART接口数据进行分发或者接收,在分发的时候从发送FIFO缓存器中取出数据,删除对应UART接口的 ID,只把数据传送给对应接口的数据寄存器;在接收的时候根据对应UART接口的数据寄存器的地址,会扩展接收到的数据,把对应UART接口的ID保存到数据的高位,然后保存到接收FIFO缓存器,成为新的数据。数据选择器实现了对数据的统一管理。波特率时钟电路106
在一个优选实施例中,如图2所示,波特率时钟电路106包括波特率时钟选择逻辑201 和波特率发生器202。在又一个优选实施例中,所述波特率发生器202包括波特率计数器203,根据系统时钟进行不间断的累加计数,其计数器203从零开始计数,最大值为各个 UART接口波特率系数乘以16后的最小公倍数,到达最大值后回到1重新开始累加计数。在一个优选实施例中,如果波特率计数器203的值为对应UART接口的波特率系数的倍数,则波特率时钟选择逻辑201产生对应UART接口的接收时钟。在另一优选实施例中,当所述UART接口需要执行发送操作时,如果波特率计数器 203的值为对应UART接口的波特率系数乘以16的倍数,则波特率时钟选择逻辑201产生对应UART接口的发送时钟。在本发明中,因为各个UART接口的波特率系数都是对系统时钟进行计数,这个电路使用一个计数器,节省了各个UART接口的波特率发生器,达到了节约资源的目的,降低了功耗。发送缓存器103和接收缓存器104在一个优选实施例中,发送缓存器和接收缓存器都是FIFO缓存器。发送缓存器存储要发送的数据并且接收缓存器存储接收的数据。每帧数据都包含了对应UART接口的ID和需要传输的数据,发送FIFO缓存器保存各个UART接口需要发送的数据,接收FIFO缓存器保存各个UART接口接收到的数据。两个FIFO缓存器的指针都是同步的,而且各个UART可以共用一个缓存模块,可以实现对数据的快速传输和高效的管理,其中FIFO缓存器的深度可以自定义,实现大量数据的传输,和对不同SOC环境的适应。在一个优选实施例中,该设备1包括模块配置寄存器。模块配置寄存器包含了模块的波特率系数寄存器、工作模式寄存器、模块状态寄存器、中断寄存器、FIFO状态寄存器等,从而实现了对模块的整体配置。在另一个优选实施例中,UART接口包括数据配置寄存器和数据收发逻辑。各个UART接口的数据配置寄存器负责UART内数据传输的配置,包括波特率系数寄存器,数据参数寄存器,传输配置寄存器等,决定了数据传输的奇偶位,停止位,每次传输数据的长度,以及收发的使能控制等。各个UART接口的数据收发逻辑根据时钟信号实现数据的收发。接收和发送是互相独立的,实现正确的数据发送,和对接收数据的校验工作,包括起始位的判断,奇偶位的校验,停止位的判断,以及对传输空字节数据(break data)的判断。其中接收数据时,每16 个接收时钟采样接收一位数据。在又一个优选实施例中,该设备1还可以包括红外模块、modem模块,用于红外传输和modem传输,其中红外模块可以实现低功耗传输和标准的红外传输。在又一个优选实施例中,该设备1还可以包括中断模块支持常用中断,发送中断、 接收中断、接收溢出(overrun)中断,接收超时中断等。 此外,本发明的具有多个UART接口的设备还可以定义UART接口的数目,实现了对不同SOC环境的适应。本发明还公开了利用图1的设备发送数据的方法,如图3所示。图3示出了利用本发明的设备发送数据的方法的流程图。在步骤301,总线接口 101从总线接收与所述UART接口对应的地址信息和数据。 该地址信息为某个UART接口发送数据寄存器的地址。在步骤302,所述数据ID逻辑102将所述地址信息转换为ID信息。在步骤303,所述发送缓存器103缓存所述ID信息和所接收的数据,其中所述ID 信息和所接收的数据作为一帧数据缓存。在步骤304,数据选择器105从所述发送缓存器读取所接收的数据并且将数据发送到与所述ID信息对应的UART接口。具体而言,在发送时,数据选择器105从发送缓存器 103取出数据、删除对应UART接口的ID,仅仅把需要发送的数据发送给对应接口的发送数据寄存器。在步骤305,波特率时钟电路106根据所述多个UART接口的波特率产生所述多个 UART接口所需要的时钟信号。由于在波特率发生器内部存在波特率计数器,所以波特率时钟选择逻辑201根据计数器的值产生时钟信号,将下文详细描述如何产生时钟信号。在步骤306,UART接口根据所述时钟信号发送数据。
在一个优选实施例中,步骤305还包括以下步骤如果波特率计数器203的值为对应UART接口的波特率系数乘以16的倍数,则波特率时钟选择逻辑201产生对应UART的发送时钟。具体而言,具有各个UART接口的设备发送数据的过程如下
1、数据从总线接口 101进入,相应的地址为某个UART接口发送数据寄存器的地址。地址经过数据ID逻辑102转换为对应的ID,和数据一起作为一帧数据保存进发送缓存器103 中。2、数据选择器105从发送缓存器103中取出数据,根据ID存入对应的UART接口的发送数据寄存器,UART接口中的数据收发逻辑η根据数据配置寄存器对数据的配置,以及对应的波特率时钟选择逻辑产生发送时钟,发送开始位,数据,奇偶位,和停止位,直到传输完成。现在以实例1来说明具有2个UART接口的设备发送数据的情况。实例1 假设系统时钟为60Mhz,使用UART接口 0和接口 1发送8位数据,不发送奇偶位,只发送一个停止位。开始时总线接口接收到两个数据Khaa和8、bb,数据ID逻辑根据对应数据寄存器的地址加入IDO给8、haa,加入IDl给8、hbb,生成12、hOaa和12、h·, 并保存进发送FIFO缓存器。数据选择器读出这两个数据并把Khaa传给UART接口 0的发送数据寄存器,把KtAb传给UART接口 1的发送数据寄存器。假设接口 0的波特率是 115200bps,波特率系数为32,接口 1的波特率是921600bps,波特率系数为4。那么模块的波特率发生器的计数器就计数到64(16*4)的倍数时,波特率时钟选择逻辑产生发送时钟给接口 1使用,接口 1据此发送起始位,数据8、bb,停止位。当计数到512 (16*32)时,波特率时钟选择逻辑产生发送时钟给UART接口 0使用,发接口 0据此发送起始位,数据8、haa, 停止位。这样两个UART接口就共用一个FIFO缓存器和波特率发生器,波特率时钟选择逻辑,节省了系统资源。本发明还公开利用根据图1的设备接收数据的方法,如图4所示。在步骤401,波特率时钟电路106根据所述多个UART接口的波特率
产生所述多个UART接口所需要的时钟信号。在步骤402,UART接口根据所述时钟信号,接收数据。在步骤403,数据选择器105从所述UART接口选择所接收的数据和ID信息。在步骤404,接收缓存器104缓存所接收的数据和ID信息。在步骤405,数据ID逻辑102将所述ID信息转换为地址信息。在步骤406,将所接收的数据和地址信息传输给总线接口。在一个优选实施例中,所述步骤401)还包括以下步骤如果波特率计数器的值为对应UART接口的波特率系数的倍数时,则波特率时钟选择逻辑产生对应UART的接收时钟。具体而言,具有各个UART接口的设备接收数据的过程如下
1.数据收发逻辑η根据接收时钟,探测起始位,接收数据,奇偶位,和停止位,并进行数据的校验工作,然后保存接收到的数据到数据选择器。2.数据选择器根据对应的UART接口 ID,保存接收的数据和ID为一帧数据到接收
缓存器。3.数据ID逻辑把接收FIFO缓存器中的数据传给总线接口,把ID翻译为对应UART
9接口数据寄存器的地址,被总线接口输出传给外部控制器,完成数据接收。现在以实例2来说明具有2个UART接口的设备接收数据的情况。实例2假设系统时钟和波特率不变,还是用UART接口 0和UART接口 1,但是用于接收数据,有奇偶位。那么当波特率发生器的计数器计数到4的倍数时,波特率时钟选择逻辑产生接收时钟给UART接口 1。对于UART接口 0,则是当计数器计数到32的倍数时,波特率时钟选择逻辑产生接收时钟信号。两个UART 口根据接收时钟探测起始位,接收数据,校验奇偶位和停止位。然后把接收到的数据传给数据选择器,数据选择器根据对应UART接口加ID到数据的高位,存入接收FIFO缓存器。数字ID逻辑读取数据,把ID转换为地址,最后传给总线接口输出。图5是本发明的多个波特率时钟的示例图。从图5可以看出,在实例1,2的情况下,接口 0的波特率为32,而接口 1的波特率为4。接口 0的波特率乘以16为512,而接口 1 的波特率乘以16为64。波特率计数器的最大值为512和64的最小公倍数,也就是为512。 在UART接口 0,1接收数据的情况下,当计数器的值为4的倍数时,波特率时钟选择逻辑产生UART接口 1的接收时钟;当计数器的值为32的倍数时,波特率时钟选择逻辑产生UART 接口 0的接收时钟。在UART接口 0,1发送数据的情况下,当计数器的值为(4X16)的倍数时,波特率时钟选择逻辑产生UART接口 1的发送时钟;当计数器的值为(16X32)的倍数时,波特率时钟选择逻辑产生UART接口 0的发送时钟。利用本发明的设备和方法具有如下效果
(1)实现了多个UART接口共享收发FIFO缓存器,和波特率发生器,各个UART接口可同时或单独进行数据的收发,校验等工作;
(2)实现了许多片上集成系统SOC对多个UART通信接口的需要,节省了寄存器的空间, 控制简单,可以降低功耗,提高整体SOC的通信性能。尽管在上面已经借助实施例描述了本发明以便本领域技术人员能够实现或者使用本发明公开的内容,但是以上这些实施例并不是穷举的。对于本领域技术人员来说,对这些公开内容的各种修改都是显而易见的,并且本领域技术人员在本发明的精神和范围之内所得到的任何修改、变换、替换的技术方案均落入本发明的保护范围之内。此外,前述实施例中包含的各步骤、各部件之间的先后顺序只是优选的,而本发明并不仅限于此,本领域技术人员可以在不背离本发明精神的情况下对上述顺序进行调整,并且调整之后所得到的技术方案仍落入本发明的保护范围之内。
权利要求
1.一种具有多个UART接口的设备,所述多个UART接口具有多个波特率,其特征在于该设备包括总线接口,用于当需要所述UART接口执行发送操作时从总线接收与所述UART接口对应的地址信息和数据;与所述总线接口耦合的数据ID逻辑,用于将所述地址信息转换为对应UART接口的ID fn息;与所述数据ID逻辑耦合的发送缓存器,用于缓存所述ID信息和所接收的数据;与所述发送缓存器耦合的数据选择器,用于从所述发送缓存器读取所接收的数据并且将所接收的数据发送到与所述ID信息对应的UART接口 ;波特率时钟电路,根据所述多个UART接口的波特率产生所述多个UART接口所需要的时钟信号;所述数据选择器进一步用于当所述UART接口执行接收操作后从UART接口接收数据, 并保存对应的ID信息;所述设备还包括与数据ID逻辑耦合并且与所述发送缓存器并行设置的接收缓存器, 用于缓存来自数据选择器的所述ID信息和从UART接口所接收的数据;所述数据ID逻辑进一步用于将接收缓存器中的所述ID信息转换为地址信息;所述总线接口进一步用于将接收缓存器中的从UART接口接收的数据和所述转换后的地址信息通过总线输出。
2.根据权利要求1所述的设备,其特征在于所述波特率时钟电路包括波特率时钟选择逻辑和波特率发生器。
3.根据权利要求2所述的设备,其特征在于所述波特率发生器包括波特率计数器,其计数器的最大值为各个UART接口波特率系数乘以16后的最小公倍数。
4.根据权利要求3所述的设备,其特征在于如果波特率计数器的值为对应UART接口的波特率系数的倍数,则波特率时钟选择逻辑产生对应的接收时钟。
5.根据权利要求3所述的设备,其特征在于当所述UART接口需要执行发送操作时,如果波特率计数器的值为对应UART接口的波特率系数乘以16的倍数,则波特率时钟选择逻辑产生对应的发送时钟。
6.根据权利要求1所述的设备,其特征在于所述UART接口包括数据收发逻辑。
7.根据权利要求1所述的设备,其特征在于所述发送缓存器和所述接收缓存器都是同步FIFO缓存器。
8.一种利用权利要求1所述的设备发送数据的方法,包括如下步骤1)总线接口从总线接收与所述UART接口对应的地址信息和数据;2)数据ID逻辑将所述地址信息转换为ID信息;3)发送缓存器缓存所述ID信息和所接收的数据;4)数据选择器从所述发送缓存器读取所接收的数据并且将所接收的数据发送到与所述ID信息对应的UART接口 ;5)波特率时钟电路根据所述多个UART接口的波特率产生所述多个UART接口所需要的时钟信号;6)对应的UART接口根据所述时钟信号,发送数据。
9.根据权利要求8所述的方法,其特征在于所述步骤5)还包括以下步骤如果波特率计数器的值为对应UART接口的波特率系数乘以16的倍数,则波特率时钟选择逻辑产生对应的发送时钟。
10.一种利用权利要求1所述的设备接收数据的方法,包括如下步骤1)波特率时钟电路根据所述多个UART接口的波特率产生所述多个UART接口所需要的时钟信号;2)UART接口根据所述时钟信号,接收数据;3)数据选择器从所述UART接口接收所述数据和保存对应的ID信息;4)接收缓存器缓存所接收的数据和ID信息;5)数据ID逻辑将所述ID信息转换为地址信息;6)将所接收的数据和地址信息传输给总线接口。
11.根据权利要求10所述的方法,其特征在于所述步骤1)还包括以下步骤如果波特率计数器的值为对应UART接口的波特率系数的倍数时,则波特率时钟选择逻辑产生对应的接收时钟。
全文摘要
公开具有多个UART接口的设备及方法。包括总线接口,需UART接口发送时从总线接收地址信息和数据;数据ID逻辑,将地址信息转换为对应ID信息;发送缓存器,缓存ID信息和接收的数据;数据选择器,从发送缓存器读取接收的数据且将其发送到对应的UART接口;波特率时钟电路,根据UART接口的波特率产生时钟信号;数据选择器还当UART接口执行接收后从UART接口接收数据,并保存对应的ID信息;还包括接收缓存器,缓存来自数据选择器的ID信息和数据;数据ID逻辑还将接收缓存器中的ID信息转换为地址信息;总线接口还将接收缓存器中的数据和地址信息通过总线输出。
文档编号G06F13/38GK102567260SQ20101060721
公开日2012年7月11日 申请日期2010年12月27日 优先权日2010年12月27日
发明者樊广超 申请人:北京国睿中数科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1