一种嵌入式系统中以太网接口实现方法

文档序号:7956045阅读:273来源:国知局
专利名称:一种嵌入式系统中以太网接口实现方法
技术领域
本发明涉及一种计算网络中通信节点的以太网接口实现方法,具体地说,本发明涉及一种嵌入式系统中以太网接口实现方法。
背景技术
随着DSP功能的增强,应用范围越来越广。基于DSP的嵌入式系统应用越来越多。同时,计算机网络技术迅猛发展,已经充斥到工作生活的各个角落。嵌入式系统的网络应用已经很普遍。现在,终端设备使用最普遍、性价比最高的网络当然是以太网。这就产生一种需求为一个嵌入式终端设备,设计一套稳定高效的以太网接口。
支持以太网接口的嵌入式系统基础硬件架构如图1,处理器(GPP或者DSP)是系统的核心,时钟电路、复位电路、电源系统、随机访问存储器(RAM)、闪存(FLASH ROM)是基础外围设备,通过以太网接口控制器(NICNetwork InterfaceController)建立系统与以太网的联系。NIC要能够支持按照存储器方式访问的ISA等总线。如此,处理器可以直接通过外部存储器接口总线访问控制NIC,而不需要复杂的接口设备在二者之间进行匹配。此结构基本能够适用于所有通用数字信号处理器。
支持以太网接口的嵌入式系统软件基本架构如图2。图中列出了这个嵌入式系统中与以太网通信相关的基本模块,其他功能根据具体应用进行扩展。整个系统在实时操作系统(RTOS)控制下运行。以太网通信接口依靠硬件层的NIC、板级支持包的NIC驱动、TCP/IP协议栈的NIC驱动接口三部分来实现。这三部分实际是被一套贯穿其中的流程协调工作,完成以太网帧收发等功能。
现有技术中,NIC在系统中的监控方式通常采用查询方式或者中断方式。查询方式就是主控处理器,定期或者不定期地检查NIC的工作状态,根据检查结果再进行数据接收和发送等工作。使用查询方式,能够简化系统设计,且工作稳定。但是,因为网络通信是一个随机过程,所以使用查询方式,如果查询频率高,会浪费处理器资源,降低系统效率;查询频率低,又会对NIC上出现的状态不能及时反应,增大网络通信延迟,影响实时性能。
在中断方式下,系统通常不会直接去检查NIC的工作状态,也不会直接在NIC上有任何收发操作。只有收到NIC发来的中断信息,系统获悉了NIC的工作状态,才会由操作系统调度相应任务完成相应功能。这样,只要中断响应速度和系统调度速度够快,就能够比较实时地处理以太网接口上的随机事件,并且相对减轻处理器负担。但这种方式,相对查询方式增加了复杂性,而且完全依靠中断触发,是一种被动的单线联系,降低了系统稳定性和可靠性。

发明内容
本发明的目的是提供一种嵌入式系统中以太网接口实现方法,该方法应用在嵌入式系统网络通信终端,是一种硬件中断、查询、软中断结合使用的以太网帧收发控制流程,简便易用。
为实现上述发明目的,本发明提供的嵌入式系统中以太网接口实现方法包括以太网帧接收方法和以太网帧发送方法,所述以太网帧接收方法包括如下步骤11)接收任务处于等待状态下,NIC内部为空,没有任何网络数据;12)当NIC一次收到一帧或多帧数据时,触发处理器相应中断,处理器启动该中断服务例程触发接收任务从NIC的接收缓存取出一帧数据;13)接收任务接收一帧数据完毕后,通过检查NIC接收状态相关寄存器或者NIC接收缓存使用情况,判断终端是否从网上新收数据;14)若没有新收数据,接收任务回到等待状态;若仍有新收数据,触发NIC接收事件对应软中断,启动步骤12)中相同的中断服务例程,系统开始下一个以太网帧的接收;所述以太网帧发送方法包括如下步骤21)发送任务等待发送通道可用;22)发送任务准备发送数据,并将待发送数据复制到发送通道的缓存;23)发送任务启动发送过程;24)发送任务检查接收通道状态,通过检查NIC接收状态相关寄存器或者NIC接收缓存使用情况,判断终端是否从网上收到新数据;25)如果未接收到任何以太网数据,直接退出;如果收到以太网帧,就触发以太网接收事件对应软中断。
上述技术方案中,所述步骤12)中,还包括如下子步骤121)TCP/IP协议栈收到数据后,转发到上层应用的网络缓存;122)当层应用网络缓存耗尽时,通知协议栈停止向上转发,数据暂时保存在TCP/IP协议栈的网络缓存;123)当TCP/IP协议栈网络缓存耗尽时,协议栈停止从NIC接收数据,网路发来的以太网帧暂存在NIC内部RAM;124)待TCP/IP协议栈的网络数据报缓存释放出空间,再开始接收NIC中的数据报。
本发明的优点是能够适应各种传输控制(Transmission Control ProtocolTCP)与网络(Internet ProtocolsIP)协议栈和以太网接口控制器(NICNetwork InterfaceController),而且在不增加处理器负担的情况下,提高网络接口模块工作的稳定性,还能够在一定程度内解决小规模系统网络缓冲不足的问题。


图1是支持以太网接口的嵌入式系统基础硬件架构示意图;图2是支持以太网接口的嵌入式系统软件基本架构示意图;图3是本发明中以太网帧接收方法流程图;图4是本发明中以太网帧发送方法流程图。
具体实施例方式
本方法采用了中断和查询结合使用的办法,完成以太网数据报的收发。
接收流程如图3。数据报接收过程中,本方法也采用了中断(只打开NIC的接收中断)。在协议栈对NIC驱动的接口上运行一个负责以太网帧接收的任务。当NIC成功接收到一个以太网帧,就会向处理器发出中断信号,然后相应的中断服务例程就会发出信号,通知接收任务。接收任务收到这个信号之后,就会从NIC读出一个以太网帧。通常,系统如果收到一个接收中断,就会从NIC中取出一个或者多个以太网帧,然后等待下次NIC接收中断发生,再重新开始。然而,某些协议栈的设计,使得接收任务每次只能接收一帧,但很多NIC收到一个或者一批帧,都是只发出一次中断信号。所以,为了适应这种单帧接收的协议栈,就要对NIC的中断控制和状态寄存器进行一系列的维护工作,保证NIC能够为收到的每个帧向系统发出中断请求,增加程序设计的复杂性,同时也增加了不可靠性。
本方法在采用NIC硬件中断的同时,采用了查询和软中断的办法来解决这个问题。具体步骤如图311)接收任务处于等待状态下,NIC内部为空,没有任何网络数据;12)当NIC一次收到一帧或多帧数据,会触发处理器相应中断,处理器启动该中断服务例程触发接收任务从NIC的接收缓存取出一帧数据;13)接收任务接收一帧数据完毕后,通过检查NIC接收状态相关寄存器或者NIC接收缓存使用情况,判断终端是否从网上新收数据;14)若没有新收数据,接收任务回到等待状态;若仍有新收数据,触发NIC接收事件对应软中断,会启动步骤12)中相同的中断服务例程,系统很快就会开始下一个以太网帧的接收。
本方法以太网帧发送过程如图4,具体步骤如下21)发送任务等待发送通道可用;22)发送任务准备发送数据,并将待发送数据复制到发送通道的缓存;23)发送任务启动发送过程;24)发送任务检查接收通道状态,通过检查NIC接收状态相关寄存器或者NIC接收缓存使用情况,判断终端是否从网上收到新数据;25)如果未接收到任何以太网数据,直接退出;如果收到以太网帧,就触发以太网接收事件对应软中断。
通常,NIC都是全双工或者半双工方式工作,系统对NIC接收和发送分别有不同的控制流程,互不干涉。本方法在发送过程中加入一个特殊环节,就是在发送过程结束的时候,主动检查NIC的工作状态,判断是否接收到新以太网帧。如果有,就触发一个NIC设备对应的软中断。通过增加这极少量的程序,就可以为被动的中断单线触发接收过程,增加一条主动查询渠道,消除了完全被动接收不可靠的隐患,提高以太网通信接口的健壮性。因为只要系统上层应用运行正常,就会有很多以太网帧发送机会,通过上述方法就能保证底层NIC的接收中断不会得不到响应。从而,只要上层应用正常运行,底层以态网的通信功能就不会因为软件故障而停止工作。而且,这种不定期的查询,不会像周期性查询方式给处理器带来过多的负担,就能够发现NIC出现的异常,及时恢复其正常工作。
嵌入式系统中,特别是这种基于DSP的嵌入式系统中,存储资源非常有限,而TCP/IP协议栈内网络数据报需要比较多的缓存空间,涉及到网络通信的上层应用(如VoIP的jitter buffer等)也需要较大的缓存空间。通常,TCP/IP协议栈内缓存用尽时,如果网路上有新的数据报到来,就直接丢弃。对于UDP数据报,这就无法再次获得。在实时通信应用中,网络抖动会因此而造成大量数据报丢失。本方法提出一种方法,能够提高NIC内部RAM利用率,来缓解系统缓存的不足。具体办法如下121)TCP/IP协议栈收到数据后,转发到上层应用的网络缓存;122)上层应用网络缓存耗尽,就通知协议栈停止向上转发,暂时保存在TCP/IP协议栈的网络缓存;123)如果TCP/IP协议栈网络缓存耗尽,协议栈就停止从NIC接收数据,网路发来的以太网帧暂存在NIC内部RAM,而不是被直接丢弃。通常NIC带有数K字节内部RAM;124)待TCP/IP协议栈的网络数据报缓存释放出空间,再开始接收NIC中的数据报。
如此,上层应用、协议栈、NIC三层上的网络数据缓存得到了联合利用,就能够更好的克服网络抖动,利用NIC的内部RAM补充系统存储资源的不足。
权利要求
1.一种嵌入式系统中以太网接口实现方法,包括以太网帧的接收和以太网帧的发送,其特征在于,所述以太网帧的接收包括如下步骤11)接收任务处于等待状态下,以太网接口控制器内部为空,没有任何网络数据;12)当以太网接口控制器一次收到一帧或多帧数据时,触发处理器相应中断,处理器启动该中断服务历程触发接收任务从以太网接口控制器的接收缓存取出一帧数据;13)接收任务接收一帧数据完毕后,通过检查NIC接收状态相关寄存器或者NIC接收缓存使用情况,判断终端是否从网上新收数据;14)若没有新收数据,接收任务回到等待状态;若仍有新收数据,触发以太网接口控制器接收事件对应软中断,启动步骤12)中相同的中断服务例程,系统开始下一个以太网帧的接收;所述以太网帧的发送包括如下步骤21)发送任务等待发送通道可用;22)发送任务准备发送数据,并将待发送数据复制到发送通道的缓存;23)发送任务启动发送过程;24)发送任务检查接收通道状态,通过检查NIC接收状态相关寄存器或者NIC接收缓存使用情况,判断终端是否从网上收到新数据;25)如果未接收到任何以太网数据,直接退出;如果收到以太网帧,就触发以太网接收事件对应软中断。
2.按权利要求1所述的嵌入式系统中以太网接口实现方法,其特征在于,所述步骤12)中,还包括如下子步骤121)TCP/IP协议栈收到数据后,转发到上层应用的网络缓存;122)当上层应用网络缓存耗尽时,通知协议栈停止向上转发,数据暂时保存在TCP/IP协议栈的网络缓存;123)当TCP/IP协议栈网络缓存耗尽时,协议栈停止从以太网接口控制器接收数据,网路发来的以太网帧暂存在以太网接口控制器内部RAM;124)待TCP/IP协议栈的网络数据报缓存释放出空间,再开始接收NIC中的数据报。
全文摘要
本发明涉及一种嵌入式系统中以太网接口实现方法,包括以太网帧接收方法和以太网帧发送方法,其中接收方法是一种硬件中断、软件中断和查询结合使用的方法,发送方法是一种变向查询的方法。本发明的优点是能够适应各种传输控制与网络协议栈和以太网接口控制器,而且在不增加处理器负担的情况下,提高网络接口模块工作的稳定性,还能够在一定程度内解决小规模系统网络缓冲不足的问题。
文档编号H04L29/06GK101035142SQ20061005682
公开日2007年9月12日 申请日期2006年3月7日 优先权日2006年3月7日
发明者朱晓东, 张建东, 王劲林, 张武, 邓峰, 齐东向, 叶晓舟, 武晓华, 曾学文 申请人:中国科学院声学研究所, 北京中科智网科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1