CN101222430B - 一种高速多协议数据传输系统和方法 - Google Patents
一种高速多协议数据传输系统和方法 Download PDFInfo
- Publication number
- CN101222430B CN101222430B CN2008100042526A CN200810004252A CN101222430B CN 101222430 B CN101222430 B CN 101222430B CN 2008100042526 A CN2008100042526 A CN 2008100042526A CN 200810004252 A CN200810004252 A CN 200810004252A CN 101222430 B CN101222430 B CN 101222430B
- Authority
- CN
- China
- Prior art keywords
- data
- buffer memory
- cpu
- logic module
- descriptor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Transfer Systems (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了嵌入式系统中一种CPU与逻辑模块进行数据传输的系统和方法。所述CPU通过PCI总线与所述逻辑模块相连,所述逻辑模块,包括PCI设备标准接口单元、数据接收接口单元、数据发送接口单元、控制单元、协议处理单元,CPU在需要发送数据时通过PCI总线通知所述逻辑模块从所述CPU在缓存描述符中指定的地址获取数据并发送,向CPU发一个发送中断;所述逻辑模块在接收到数据时,所述协议处理单元对所接收的数据进行协议处理后传输到当前缓存描述符所指向的缓存处,然后向CPU发送一个接收中断。本发明在数据传输过程中,完全不需要CPU的参与,有效的降低了CPU的占用率。
Description
技术领域
本发明涉及嵌入式系统技术领域,尤其涉及嵌入式系统中一种CPU与逻辑模块进行数据传输的系统和方法。
背景技术
随着电信级设备向着高集成化、微型化方向发展,在设备中的一块单板上集成的功能也越来越多,同时又要兼顾CPU的性价比,因此如何更有效地提高CPU的使用率,减少CPU负荷,是必须面对的一个课题。在目前的电信设备中,I/O(输入/输出)操作是CPU最主要的工作之一,加之I/O操作速率低,因而I/O应用部分一般是占用CPU资源较多的应用之一,通常也是主要的优化对象。
目前,越来越多的应用是通过逻辑模块来实现I/O数据的协议处理,一般的应用方式是将逻辑模块挂接在本地总线(Local Bus)下,这样的话,在数据传输过程必须要CPU参与才能实现,并且最重要的缺陷在于逻辑模块无法访问CPU地址空间,使得在使用时存在很大的缺陷,增加了CPU的负担。
发明内容
本发明所要解决的技术问题在于,提供一种高速多协议数据传输系统和方法,解决现有技术中占用CPU过多以及逻辑模块无法访问CPU地址空间的问题。
鉴于现有技术中的问题,本发明提出了把逻辑模块做成一个标准的PCI(周边器件互联,Peripheral Component Interconnect)设备,提供各种和CPU 进行通信的接口,收发都由逻辑模块控制完成,CPU只需定时去接收或存放数据在指定内存即可的系统和方法,数据传输过程不需要CPU参与,可减少CPU的负荷。
本发明提供一种高速多协议数据传输系统,包括CPU模块和逻辑模块两个部分,所述CPU模块通过PCI总线与所述逻辑模块相连,所述CPU模块与所述逻辑模块预先约定缓存描述符,并在所述CPU模块初始化时建立所述缓存描述符链表,所述逻辑模块,包括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与逻辑模块预先约定的,包括控制状态域、数据长度域、数据地址域和保留域,其中:
控制状态域,用于标示此缓存描述符即BD的状态和命令,例如发送与否、发送/接收完成与否、发送/接收成功与否等;
数据地址域,用于标示要发送/接收数据包的地址;
数据长度域,用于标示数据包的长度。
图2是本发明具体实施例的一种高速多协议数据传输系统的示意图,包括CPU和逻辑模块两个部分,所述CPU通过PCI总线与所述逻辑模块相连。所述逻辑模块,包括PCI设备标准接口单元、数据接收接口单元、数据发送接口单元、控制单元、协议处理单元,其中:
PCI设备标准接口单元,通过PCI总线与所述CPU相连,用于完成PCI标准协议功能;
数据接收接口单元,通过一组寄存器和CPU交互完成数据的接收过程;
数据发送接口单元,通过一组寄存器和CPU交互完成数据的发送过程;
控制单元,用于根据各个寄存器的信息作出相应的动作、状态更新;
协议处理单元,用于完成相关协议的组帧、解帧以及CRC校验等。
其中,所述数据接收接口单元或数据发送接口单元通过PCI设备标准接口单元来与CPU交互。
所述CPU用于为逻辑模块分配PCI地址,根据图1所示的BD结构来初始化收发BD(缓存描述符,Buffer Descriptor)链表;
当CPU需要发送数据时,只需要在BD中设置控制字,然后通过PCI总线通知逻辑模块开始发送,此发送数据的过程实际上是由逻辑模块的发送接口单元去CPU指定的地址获取数据的过程,在获取数据之后将获得到的数据发送出去。发送完成后,逻辑模块的控制单元给CPU一个发送中断(此中断可以屏蔽,用定时查询)。此处中断的目的是为了通知CPU数据已发送完成。
当逻辑模块接收到数据时,进行协议处理,直接传输到逻辑模块的接收单元中记录的当前BD指向的缓存处,然后控制单元向CPU发送一个接收中断(此中断可以屏蔽,用定时查询,定时查询一般通过定时器1s产生多少次中断来完成)。
图3显示了本发明实施例中用于数据发送的具体实施过程,包括如下步骤:
步骤301:CPU进行初始化建立缓存指示符链表,并将第一个缓存指示符的地址配置给逻辑模块的发送控制寄存器0;
其中,CPU进行初始化时,首先要根据图1所示的缓存指示符BD的结构建立如图7所示的BD链表,链表中BD的具体个数根据实际数据传输的流量来评估确定;
其中,所述发送控制寄存器0是地址指针寄存器,其大小可以根据具体业务流情况来确定,本实施例中其大小配置为32比特,如图6所示;
步骤302:当CPU有数据需要发送时,则填充缓存指示符BD的各个域,通知逻辑模块有数据发送;
其中,在填充缓存指示符BD的域时,为了通知逻辑模块有数据要发送,尤其要填充BD中的发送控制状态域,需要将发送控制状态域设置成有数据发送状态,例如图5所示,将发送控制状态域的bit7设置为1,表示准备发送数据;并通知逻辑模块有数据发送,例如图5所示将发送控制状态域的bit4置为1,以通知逻辑模块有数据要发送。
步骤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中的软件来实现链表建立;
其中,所述接收控制寄存器0是地址指针寄存器,其大小可以根据具体业务流情况来确定,本实施例中其大小配置为32比特,如图6所示;
步骤402:当逻辑模块接收到数据时,逻辑模块首先对所接收的数据进行协议处理,再根据接收控制器寄存器0所存的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的负荷越来越重的趋势中,本发明所述的方法将具有丰富和巨大的应用潜力。
本文所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。因此,凡在本发明的精神和原则之内所作的任何修改、等同替换、改进以及更新等等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种高速多协议数据传输系统,包括CPU模块和逻辑模块两个部分,其特征在于,所述CPU模块通过PCI总线与所述逻辑模块相连,所述CPU模块与所述逻辑模块预先约定缓存描述符,并在所述CPU模块初始化时建立所述缓存描述符链表,所述逻辑模块,包括PCI设备标准接口单元、数据接收接口单元、数据发送接口单元、控制单元、协议处理单元,其中:
所述CPU模块在需要发送数据时,在缓存描述符中设置控制字,通过PCI总线经PCI设备标准接口通知所述逻辑模块的控制单元开始发送,所述控制单元通知所述数据发送接口单元从所述CPU模块在缓存描述符中指定的地址获取待发送的数据并发送出去,待发送完成后所述控制单元向所述CPU模块发送一个发送中断;
所述逻辑模块在接收到数据时,所述协议处理单元对所述数据接收接口单元所接收的数据进行协议处理,并将协议处理后的数据传输到当前缓存描述符所指向的缓存处,然后向所述CPU模块发送一个接收中断。
2.如权利要求1所述的高速多协议数据传输系统,其特征在于,
所述缓存描述符,是由所述CPU模块与所述逻辑模块预先约定的,包括控制状态域、数据长度域、数据地址域和保留域,其中:
控制状态域,用于标示此缓存描述符的状态和命令;
数据地址域,用于标示要发送/接收数据包的地址;
数据长度域,用于标示数据包的长度。
3.如权利要求2所述的高速多协议数据传输系统,其特征在于,
所述CPU模块在收到所述接收中断后,则根据当前缓存描述符的控制状态域的值判断是否有帧要接收,如果有,则开始接收数据,并更新缓存描述符的地址域指向的缓存,设置控制状态域为无数据状态,当前缓存描述符的编号加1;所述CPU模块重复上述步骤直至接收完全部数据为止。
4.一种高速多协议数据传输方法,用于实现CPU通过PCI总线与逻辑模块进行数据传输,包括如下步骤:
所述CPU与所述逻辑模块预先约定缓存描述符,并在CPU初始化时建立所述缓存描述符链表;
在所述CPU需要发送数据时,在所述缓存描述符中设置控制字,并通过PCI总线通知所述逻辑模块开始发送,所述逻辑模块从所述CPU在缓存描述符中指定的地址获取待发送的数据并发送出去,待发送完成后向CPU发送一个发送中断;
在所述逻辑模块接收到数据时,所述逻辑模块对所接收的数据进行协议处理,并将协议处理后的数据传输到当前缓存描述符所指向的缓存处,然后向CPU发送一个接收中断。
5.如权利要求4所述的高速多协议数据传输方法,其特征在于,
所述缓存指示符包括控制状态域、数据长度域、数据地址域和保留域,其中:
控制状态域,用于标示此缓存描述符的状态和命令;
数据地址域,用于标示要发送/接收数据包的地址;
数据长度域,用于标示数据包的长度。
6.如权利要求5所述的高速多协议数据传输方法,其特征在于,
所述CPU根据所述缓存描述符进行初始化时,建立缓存指示符链表并将第一个缓存指示符的地址配置给所述逻辑模块的首个发送控制寄存器。
7.如权利要求6所述的高速多协议数据传输方法,其特征在于,
所述链表中缓存描述符的个数是根据实际数据传输的流量来评估确定。
8.如权利要求6所述的高速多协议数据传输方法,其特征在于,所述方法进一步包括:
所述CPU在收到所述接收中断后,则根据当前缓存描述符的控制状态域的值判断是否有帧要接收,如果有,则开始接收数据,并更新缓存描述符的地址域指向的缓存,设置控制状态域为无数据状态,当前缓存描述符的编号加1;
所述CPU重复上述步骤直至接收完全部数据为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100042526A CN101222430B (zh) | 2008-01-24 | 2008-01-24 | 一种高速多协议数据传输系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100042526A CN101222430B (zh) | 2008-01-24 | 2008-01-24 | 一种高速多协议数据传输系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101222430A CN101222430A (zh) | 2008-07-16 |
CN101222430B true CN101222430B (zh) | 2011-01-19 |
Family
ID=39632012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100042526A Active CN101222430B (zh) | 2008-01-24 | 2008-01-24 | 一种高速多协议数据传输系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101222430B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101938453A (zh) * | 2009-06-29 | 2011-01-05 | 中兴通讯股份有限公司 | 一种实现中央处理器与以太网进行数据传输的装置与方法 |
CN101901199B (zh) * | 2010-07-30 | 2015-04-01 | 中兴通讯股份有限公司 | 一种数据透明传输的方法及系统 |
WO2014205638A1 (zh) * | 2013-06-25 | 2014-12-31 | 华为技术有限公司 | 一种数据包传输方法及设备 |
CN103761060B (zh) * | 2014-01-27 | 2017-02-15 | 华为技术有限公司 | 一种数据处理方法及服务器 |
CN105550153B (zh) * | 2015-12-12 | 2018-04-20 | 中国航空工业集团公司西安航空计算技术研究所 | 一种1394总线多通道流数据并行拆包方法 |
CN105630424A (zh) * | 2015-12-31 | 2016-06-01 | 航天恒星科技有限公司 | 数据处理方法、装置及系统 |
CN106982176B (zh) * | 2017-03-22 | 2020-09-11 | 北京东土军悦科技有限公司 | 一种数据传输方法及设备 |
CN110099028B (zh) * | 2018-01-30 | 2022-01-18 | 北京智云芯科技有限公司 | 一种串口数据传输的方法及装置 |
CN110958075B (zh) * | 2019-12-03 | 2021-04-23 | 浙江三维通信科技有限公司 | 信号屏蔽方法、系统、可读存储介质和设备 |
CN111586040B (zh) * | 2020-05-06 | 2021-02-09 | 北京中科海讯数字科技股份有限公司 | 高性能网络数据接收方法及其系统 |
CN113204438B (zh) * | 2021-03-24 | 2023-08-01 | 深圳震有科技股份有限公司 | 一种amp系统核间通讯方法及系统 |
CN115460085A (zh) * | 2022-08-20 | 2022-12-09 | 西安翔腾微电子科技有限公司 | 一种以太网协议加速电路及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5771360A (en) * | 1996-10-21 | 1998-06-23 | Advanced Micro Devices, Inc. | PCI bus to target integrated circuit interconnect mechanism allowing multiple bus masters and two different protocols on the same bus |
US5898886A (en) * | 1996-11-19 | 1999-04-27 | Advanced Micro Devices, Inc. | Multimedia devices in computer system that selectively employ a communications protocol by determining the presence of the quaternary interface |
CN1831783A (zh) * | 2005-03-11 | 2006-09-13 | 佛山市顺德区顺达电脑厂有限公司 | 周边元件扩展接口的数据存取装置及其方法 |
-
2008
- 2008-01-24 CN CN2008100042526A patent/CN101222430B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5771360A (en) * | 1996-10-21 | 1998-06-23 | Advanced Micro Devices, Inc. | PCI bus to target integrated circuit interconnect mechanism allowing multiple bus masters and two different protocols on the same bus |
US5898886A (en) * | 1996-11-19 | 1999-04-27 | Advanced Micro Devices, Inc. | Multimedia devices in computer system that selectively employ a communications protocol by determining the presence of the quaternary interface |
CN1831783A (zh) * | 2005-03-11 | 2006-09-13 | 佛山市顺德区顺达电脑厂有限公司 | 周边元件扩展接口的数据存取装置及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101222430A (zh) | 2008-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101222430B (zh) | 一种高速多协议数据传输系统和方法 | |
CN102281254B (zh) | 服务器串口设计系统及方法 | |
CN103064815B (zh) | 一种单spi总线控制多can接口的控制方法 | |
CN101873299B (zh) | 串行总线和通信方法及系统 | |
CN103049414A (zh) | Fc总线与can总线间数据的转换及传输方法 | |
CN103218337B (zh) | 基于wishbone总线实现主与主、从与从通信的片上系统和方法 | |
CN109710548A (zh) | 一种dma控制数据传输方法、系统及设备 | |
CN104322033A (zh) | 使用第二协议的扩展功能结构来控制第一协议的物理链路 | |
US9075926B2 (en) | Distributed interconnect bus apparatus | |
CN100421424C (zh) | 一种基于PCI Express总线的集中式路由器 | |
CN101960792A (zh) | 用于多传输方式架构的缓冲器控制 | |
CN111611187B (zh) | 一种针对CHI总线的通用协议转换桥及SoC | |
CN101621411A (zh) | 微控制器远程更新方法和更新系统 | |
CN107562672A (zh) | 一种提高矢量网络分析仪数据传输速率的系统及方法 | |
JPWO2010123143A1 (ja) | 送信装置、送信方法及び送信装置の制御プログラム | |
CN100452757C (zh) | 报文转发方法和装置 | |
CN103914007A (zh) | 用于程序重调的方法和系统 | |
CN107786464A (zh) | 一种实现节点间通信的方法及装置 | |
CN105100000B (zh) | 一种接口转换装置和网络系统 | |
CN101415027A (zh) | 基于hdlc协议的通讯模块及数据实时转发存储控制方法 | |
CN101415017A (zh) | 基于远程登录协议的嵌入式系统文件传输方法 | |
CN102420734A (zh) | 一种can总线拓扑结构实现系统 | |
CN100493018C (zh) | 一种通过网络中的总线接口进行通信的方法和系统 | |
CN101014049B (zh) | 一种终端无线通信协议栈软件定时器管理方法 | |
CN107769960B (zh) | 一种基于can总线的bmc管理架构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |