一种高速多协议数据传输系统和方法

文档序号:7682860阅读:195来源:国知局
专利名称:一种高速多协议数据传输系统和方法
技术领域
本发明涉及嵌入式系统技术领域,尤其涉及嵌入式系统中一种CPU与
逻辑^t块进行数据传输的系统和方法。
背景技术
随着电信级设备向着高集成化、微型化方向发展,在设备中的一块单板
上集成的功能也越来越多,同时又要兼顾CPU的性价比,因此如何更有效 地提高CPU的使用率,减少CPU负荷,是必须面对的一个i果题。在目前的 电信设备中,I/O (输入/输出)操作是CPU最主要的工作之一,加之i/o搡 作速率低,因而I/O应用部分一般是占用CPU资源较多的应用之一,通常
也是主要的优化对象。
目前,越来越多的应用是通过逻辑模块来实现i/o数据的协议处理,一
般的应用方式是将逻辑模块挂接在本地总线(LocalBus)下,这样的话,在 数据传输过程必须要CPU参与才能实现,并且最重要的缺陷在于逻辑模块 无法访问CPU地址空间,使得在使用时存在很大的缺陷,增加了 CPU的负 担。

发明内容
本发明所要解决的技术问题在于,提供一种高速多协议数据传输系统和 方法,解决现有技术中占用CPU过多以及逻辑模块无法访问CPU地址空间
的问题。
鉴于现有技术中的问题,本发明提出了把逻辑模块做成一个标准的PCI (周边器件互联,Peripheral Component Interconnect)设备,提供各种和CPU进行通信的接口,收发都由逻辑模块控制完成,CPU只需定时去接收或存 放数据在指定内存即可的系统和方法,数据传输过程不需要CPU参与,可 减少CPU的负荷。
本发明提供一种高速多协议数据传输系统,包括CPU和逻辑模块两个 部分,所述CPU通过PCI总线与所述逻辑^t块相连,所述逻辑^f莫块,包括 PCI设备标准接口单元、数据接收接口单元、数据发送接口单元、控制单元、 协议处理单元,其中
所述CPU在需要发送数据时,在緩存描述符中设置控制字,通过PCI 总线经PCI设备标准接口通知所述逻辑模块的控制单元开始发送,所述控制 单元通知所述数据发送接口单元从所述CPU在緩存描述符中指定的地址获 取待发送的数据并发送出去,待发送完成后所述控制单元向CPU发送一个 发送中断;
所述逻辑模块在接收到数据时,所述协议处理单元对所述数据接收接口 单元所接收的数据进行协议处理,并将协议处理后的数据传输到当前緩存描 述符所指向的緩存处,然后向CPU发送一个接收中断。
进一步地,本发明的技术方案中,所述緩存描述符,是由CPU与逻辑 模块预先约定的,包括控制状态域、数据长度域、数据地址域和保留域,其 中
控制状态域,用于标示此援存描述符的状态和命令; 数据地址域,用于标示要发送/接收数据包的地址; 数据长度域,用于标示数据包的长度。
进一步地,本发明的技术方案中,所述CPU在收到所述接收中断后, 则判断当前緩存描述符的控制状态域是否有帧,如果有,则开始接收数据, 并更新緩存描述符的地址域指向的緩存,设置控制状态域为无数据状态,当 前緩存描述符的编号加1;所述CPU重复上述步骤直至接收完全部数据为 止。
本发明还提供一种高速多协议数据传输方法,用于实现CPU通过PCI总线与所述逻辑模块进行数据传输,包括如下步骤
所述CPU与所述逻辑模块预先约定緩存描述符,并在CPU初始化时建 立所述緩存描述符链表;
在所述CPU需要发送数据时,在所述緩存描述符中设置控制字,并通 过PCI总线通知所述逻辑模块开始发送,所述逻辑模块从所述CPU在緩存 描述符中指定的地址获取待发送的数据并发送出去,待发送完成后向CPU 发送一个发送中断;
在所述逻辑模块接收到数据时,所述逻辑模块对所接收的数据进行协议 处理,并将协议处理后的数据传输到当前緩存描述符所指向的緩存处,然后 向CPU发送一个接收中断。
进一步地,本发明的方法技术方案中,所述緩存指示符包括控制状态域、 数据长度域、数据地址域和保留域,其中
控制状态域,用于标示此緩存描述符的状态和命令;
数据地址域,用于标示要发送/接收数据包的地址;
数据长度域,用于标示数据包的长度。
进一步地,本发明的方法技术方案中,所述CPU根据所述緩存描述符 进行初始化时,建立緩存指示符链表并将第一个緩存指示符的地址配置给所 述逻辑模块的首个发送控制寄存器。
进一步地,本发明的方法技术方案中,所述链表中緩存描述符的个数是 根据实际数据传输的流量来评估确定。
进一步地,本发明的方法技术方案中,所述方法进一步包括
所述CPU在收到所述接收中断后,则判断当前緩存描述符的控制状态 域是否有帧,如果有,则开始接收数据,并更新緩存描述符的地址域指向的 緩存,设置控制状态域为无数据状态,当前緩存描述符的编号加1;
所述CPU重复上述步骤直至接收完全部数据为止。 采用本发明所述系统和方法,使得在数据传输过程中,完全不需要CPU的参与,非常有效的降低了 CPU的占用率。


图1是本发明具体实施例BD结构图2是本发明具体实施例数据传输系统示意图3是本发明具体实施例发送数据包的示意图4是本发明具体实施例接收数据包的示意图5是本发明具体实施例发送/接收BD的状态控制域示意图6是本发明具体实施例发送/接收控制寄存器0示意图7是本发明具体实施例发送/接收BD链表示意图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,以下结合附图对本发明 作进一步地详细说明。
本发明所述的CPU与逻辑进行数据传输的系统和方法,主要应用于 CPU和逻辑进行各种协议数据传输的场景,这种系统和方法可以使得CPU 完全不参与数据的传输过程,有效的降低了 CPU利用率。
下面以将本发明所述的方法应用于移动通讯基站单板从外部接收数据 为例,来说明本发明的数据传输系统和方法的应用实例。在目前的系统中,
很多小的协议都采用逻辑实现了,比如UART (通用异步接收器发送器, Universal Asynchronous Receiver/Transmitter) , HDLC (高级数据链路控制, High level Data Link Control)等,这里以HDLC协议为例介绍本发明。
如图1所示,显示的是本发明具体实施例中緩存描述符即BD的结构图, 该BD的结构是CPU与逻辑模块预先约定的,包括控制状态域、数据长度 域、凄t据地址域和保留域,其中
控制状态域,用于标示此緩存描迷符即BD的状态和命令,例如发送与 否、发送/接收完成与否、发送/接收成功与否等;数据地址域,用于标示要发送/接收数据包的地址; 数据长度域,用于标示数据包的长度。
图2是本发明具体实施例的一种高速多协议数据传输系统的示意图,包 括CPU和逻辑模块两个部分,所述CPU通过PCI总线与所述逻辑模块相连。 所述逻辑模块,包括PCI设备标准接口单元、数据接收接口单元、数据发送 接口单元、控制单元、协议处理单元,其中
PCI设备标准接口单元,通过PCI总线与所述CPU相连,用于完成PCI 标准协议功能;
数据接收接口单元,通过一组寄存器和CPU交互完成数据的接收过程;
数据发送接口单元,通过一组寄存器和CPU交互完成数据的发送过程;
控制单元,用于根据各个寄存器的信息作出相应的动作、状态更新;
协议处理单元,用于完成相关协议的组帧、解帧以及CRC校I^等。
其中,所述数据接收接口单元或数据发送接口单元通过PCI设备标准接 口单元来与CPU交互。
所述CPU用于为逻辑才莫块分配PCI地址,根据图1所示的BD结构来 初始化收发BD (緩存描述符,Buffer Descriptor)链表;
当CPU需要发送数据时,只需要在BD中设置控制字,然后通过PCI 总线通知逻辑模块开始发送,此发送数据的过程卖际上是由逻辑模块的发送 接口单元去CPU指定的地址获取数据的过程,在获取数据之后将获得到的 数据发送出去。发送完成后,逻辑模块的控制单元给CPU—个发送中断(此 中断可以屏蔽,用定时查询)。此处中断的目的是为了通知CPU数据已发 送完成。
当逻辑模块接收到数据时,进行协议处理,直接传输到逻辑模块的接收 单元中记录的当前BD指向的緩存处,然后控制单元向CPU发送一个接收 中断(此中断可以屏蔽,用定时查询,定时查询一般通过定时器Is产生多 少次中断来完成)。图3显示了本发明实施例中用于数据发送的具体实施过程,包括如下步

步骤301: CPU进行初始化建立緩存指示符链表,并将第一个緩存指示 符的地址配置给逻辑模块的发送控制寄存器0;
其中,CPU进行初始化时,首先要根据图1所示的緩存指示符BD的结 构建立如图7所示的BD链表,链表中BD的具体个数根据实际数据传输的 流量来评估确定;
其中,所述发送控制寄存器O是地址指针寄存器,其大小可以才艮据具体 业务流情况来确定,本实施例中其大小配置为32比特,如图6所示;
步骤302:当CPU有数据需要发送时,则填充緩存指示符BD的各个域, 通知逻辑模块有数据发送;
其中,在填充緩存指示符BD的域时,为了通知逻辑模块有数据要发送, 尤其要填充BD中的发送控制状态域,需要将发送控制状态域设置成有数据 发送状态,例如图5所示,将发送控制状态域的bit7设置为1,表示准备发 送数据;并通知逻辑^^莫块有数据发送,例如图5所示将发送控制状态域的 bit4置为l,以通知逻辑模块有数据要发送。
步骤303:逻辑模块根据BD控制状态域检测是否有数据发送,如果有, 则根据BD的数据地址域所指向的地址直接获取数据,该步骤303完全由逻 辑模块独立来完成,避免了CPU的参与;
步骤304:逻辑模块发送完一个数据结束后,跳到下一个BD地址,检 测下一个BD的控制状态域,判断是否有数据要发送;
例如,可以检测图5所示的下一个BD的控制状态域的bit7是否为1, 为1则表示还有数据需要发送,否则表示没有数据要发送;
步骤305:若有,则从緩存中读取数据继续发送;
步骤306:在所有数据都发送完成后,产生一个发送中断给CPU。
图4显示了本发明实施例中用于数据接收的具体实施过程,包括如下步
骤步骤401: CPU进行初始化,建立緩存指示符BD链表,并将第一个緩 存指示符的地址配置给逻辑模块的接收控制寄存器0;其中,CPU进行初始化时,首先要根据图1所示的緩存指示符BD的结 构建立如图7所示的BD链表,链表中BD的具体个数根据实际数据传输的 流量来评估确定;进一步地,链表的建立可以由CPU中的软件来实现链表 建立;其中,所述接收控制寄存器O是地址指针寄存器,其大小可以根据具体 业务流情况来确定,本实施例中其大小配置为32比特,如图6所示;步骤402:当逻辑模块接收到数据时,逻辑模块首先对所接收的数据进 行协议处理,再根据接收控制器寄存器O所存的BD地址,获取BD的信息;步骤403:所述逻辑模块进一步地再将协议处理后的数据存放到BD的 地址域所指向的地址,并更新BD的控制状态域。步骤404:所述逻辑模块随后向CPU发送一个接收中断;步骤405: CPU接收到该接收中断后,则判断当前BD的控制状态域是 否有帧,如果有,则开始接收数据,并更新BD的地址域指向的緩存,设置 控制状态域为无数据状态,当前BD编号加1;对控制状态域的判断,具体实现时可以通过判断图5所示的接收控制状 态域的bit7是否为1来判断是否有帧,其中若为1则表示有数据需要接收;步骤406:所述CPU继续判断BD的控制状态域是否有帧,有则执行步 骤405,直到收完全部数据。本发明所述的方法,把逻辑模块作为一个PCI设备,充分利用PCI总线 的特性,使得逻辑模块可以访问到CPU的内存空间,从而使得数据传输不 需要CPU参与,进而有效的提高了 CPU的使用效率,在CPU的负荷越来 越重的趋势中,本发明所述的方法将具有丰富和巨大的应用潜力。本文所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本 领域的技术人员来说,本发明可以有各种更改和变化。因此,凡在本发明的 精神和原则之内所作的任何修改、等同替换、改进以及更新等等,均应包含 在本发明的保护范围之内。
权利要求
1、一种高速多协议数据传输系统,包括CPU和逻辑模块两个部分,其特征在于,所述CPU通过PCI总线与所述逻辑模块相连,所述逻辑模块,包括PCI设备标准接口单元、数据接收接口单元、数据发送接口单元、控制单元、协议处理单元,其中所述CPU在需要发送数据时,在缓存描述符中设置控制字,通过PCI总线经PCI设备标准接口通知所述逻辑模块的控制单元开始发送,所述控制单元通知所述数据发送接口单元从所述CPU在缓存描述符中指定的地址获取待发送的数据并发送出去,待发送完成后所述控制单元向CPU发送一个发送中断;所述逻辑模块在接收到数据时,所述协议处理单元对所述数据接收接口单元所接收的数据进行协议处理,并将协议处理后的数据传输到当前缓存描述符所指向的缓存处,然后向CPU发送一个接收中断。
2、 如权利要求1所述的高速多协议数据传输系统,其特征在于,所述緩存描述符,是由CPU与逻辑模块预先约定的,包括控制状态域、 数据长度域、数据地址域和保留域,其中控制状态域,用于标示此緩存描述符的状态和命令;数据地址域,用于标示要发送/接收数据包的地址;数据长度域,用于标示数据包的长度。
3、 如权利要求2所述的高速多协议数据传输系统,其特征在于,所述CPU在收到所述接收中断后,则判断当前緩存描述符的控制状态 域是否有帧,如果有,则开始接收数据,并更新緩存描述符的地址域指向的 緩存,设置控制状态域为无数据状态,当前緩存描述符的编号加1;所述 CPU重复上述步骤直至接收完全部数据为止。
4、 一种高速多协议数据传输方法,用于实现CPU通过PCI总线与所述 逻辑模块进行数据传输,包括如下步骤所述CPU与所述逻辑模块预先约定緩存描述符,并在CPU初始化时建 立所述緩存描述符链表;在所述CPU需要发送数据时,在所述緩存描述符中设置控制字,并通 过PCI总线通知所述逻辑模块开始发送,所述逻辑模块从所述CPU在緩存 描述符中指定的地址获取待发送的数据并发送出去,待发送完成后向CPU 发送一个发送中断;在所述逻辑模块接收到数据时,所述逻辑^t块对所接收的数据进行协议 处理,并将协议处理后的数据传输到当前緩存描述符所指向的緩存处,然后 向CPU发送一个4妻收中断。
5、 如权利要求4所述的高速多协议数据传输方法,其特征在于,所述緩存指示符包括控制状态域、数据长度域、数据地址域和保留域, 其中控制状态域,用于标示此緩存描述符的状态和命令; 数据地址域,用于标示要发送/接收数据包的地址; 数据长度域,用于标示数据包的长度。
6、 如权利要求5所述的高速多协议数据传输方法,其特征在于,所述CPU根据所述緩存描述符进行初始化时,建立緩存指示符链表并 将第一个緩存指示符的地址配置给所述逻辑;漠块的首个发送控制寄存器。
7、 如权利要求6所述的高速多协议数据传输方法,其特征在于, 所述链表中緩存描述符的个数是根据实际数据传输的流量来评估确定。
8、 如权利要求6所述的高速多协议数据传输方法,其特征在于,所述 方法进一步包括所述CPU在收到所述接收中断后,则判断当前緩存描述符的控制状态 域是否有帧,如果有,则开始接收数据,并更新緩存描述符的地址域指向的 i爰存,设置控制状态域为无数据状态,当前緩存描述符的编号加1;所述CPU重复上述步骤直至接收完全部数据为止。
全文摘要
本发明公开了嵌入式系统中一种CPU与逻辑模块进行数据传输的系统和方法。所述CPU通过PCI总线与所述逻辑模块相连,所述逻辑模块,包括PCI设备标准接口单元、数据接收接口单元、数据发送接口单元、控制单元、协议处理单元,CPU在需要发送数据时通过PCI总线通知所述逻辑模块从所述CPU在缓存描述符中指定的地址获取数据并发送,向CPU发一个发送中断;所述逻辑模块在接收到数据时,所述协议处理单元对所接收的数据进行协议处理后传输到当前缓存描述符所指向的缓存处,然后向CPU发送一个接收中断。本发明在数据传输过程中,完全不需要CPU的参与,有效的降低了CPU的占用率。
文档编号H04L12/56GK101222430SQ20081000425
公开日2008年7月16日 申请日期2008年1月24日 优先权日2008年1月24日
发明者华 丁 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1