CN100553261C - 一种嵌入式系统中以太网接口实现方法 - Google Patents
一种嵌入式系统中以太网接口实现方法 Download PDFInfo
- Publication number
- CN100553261C CN100553261C CNB2006100568231A CN200610056823A CN100553261C CN 100553261 C CN100553261 C CN 100553261C CN B2006100568231 A CNB2006100568231 A CN B2006100568231A CN 200610056823 A CN200610056823 A CN 200610056823A CN 100553261 C CN100553261 C CN 100553261C
- Authority
- CN
- China
- Prior art keywords
- ethernet
- data
- network
- receive
- reception
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明涉及一种嵌入式系统中以太网接口实现方法,包括以太网帧接收方法和以太网帧发送方法,其中接收方法是一种硬件中断、软件中断和查询结合使用的方法,发送方法是一种变向查询的方法。本发明的优点是:能够适应各种传输控制与网络协议栈和以太网接口控制器,而且在不增加处理器负担的情况下,提高网络接口模块工作的稳定性,还能够在一定程度内解决小规模系统网络缓冲不足的问题。
Description
技术领域
本发明涉及一种计算网络中通信节点的以太网接口实现方法,具体地说,本发明涉及一种嵌入式系统中以太网接口实现方法。
背景技术
随着DSP功能的增强,应用范围越来越广。基于DSP的嵌入式系统应用越来越多。同时,计算机网络技术迅猛发展,已经充斥到工作生活的各个角落。嵌入式系统的网络应用已经很普遍。现在,终端设备使用最普遍、性价比最高的网络当然是以太网。这就产生一种需求:为一个嵌入式终端设备,设计一套稳定高效的以太网接口。
支持以太网接口的嵌入式系统基础硬件架构如图1,处理器(GPP或者DSP)是系统的核心,时钟电路、复位电路、电源系统、随机访问存储器(RAM)、闪存(FLASH ROM)是基础外围设备,通过以太网接口控制器(NIC:Network 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 Protocol:TCP)与网络(Internet Protocols:IP)协议栈和以太网接口控制器(NIC:Network InterfaceController),而且在不增加处理器负担的情况下,提高网络接口模块工作的稳定性,还能够在一定程度内解决小规模系统网络缓冲不足的问题。
附图说明
图1是支持以太网接口的嵌入式系统基础硬件架构示意图;
图2是支持以太网接口的嵌入式系统软件基本架构示意图;
图3是本发明中以太网帧接收方法流程图;
图4是本发明中以太网帧发送方法流程图。
具体实施方式
本方法采用了中断和查询结合使用的办法,完成以太网数据报的收发。
接收流程如图3。数据报接收过程中,本方法也采用了中断(只打开NIC的接收中断)。在协议栈对NIC驱动的接口上运行一个负责以太网帧接收的任务。当NIC成功接收到一个以太网帧,就会向处理器发出中断信号,然后相应的中断服务例程就会发出信号,通知接收任务。接收任务收到这个信号之后,就会从断服务例程就会发出信号,通知接收任务。接收任务收到这个信号之后,就会从NIC读出一个以太网帧。通常,系统如果收到一个接收中断,就会从NIC中取出一个或者多个以太网帧,然后等待下次NIC接收中断发生,再重新开始。然而,某些协议栈的设计,使得接收任务每次只能接收一帧,但很多NIC收到一个或者一批帧,都是只发出一次中断信号。所以,为了适应这种单帧接收的协议栈,就要对NIC的中断控制和状态寄存器进行一系列的维护工作,保证NIC能够为收到的每个帧向系统发出中断请求,增加程序设计的复杂性,同时也增加了不可靠性。
本方法在采用NIC硬件中断的同时,采用了查询和软中断的办法来解决这个问题。具体步骤如图3:
11)接收任务处于等待状态下,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补充系统存储资源的不足。
Claims (2)
1、一种嵌入式系统中以太网接口实现方法,包括以太网帧的接收和以太网帧的发送,其特征在于,所述以太网帧的接收包括如下步骤:
11)接收任务处于等待状态下,以太网接口控制器内部为空,没有任何网络数据;
12)当以太网接口控制器一次收到一帧或多帧数据时,触发处理器相应中断,处理器启动中断服务例程触发接收任务从以太网接口控制器的接收缓存取出一帧数据;
13)接收任务接收一帧数据完毕后,通过检查以太网接口控制器的接收状态相关寄存器或者以太网接口控制器的接收缓存使用情况,判断终端是否从网上新收数据;
14)若没有新收数据,接收任务回到等待状态;若仍有新收数据,触发以太网接口控制器接收事件对应软中断,启动步骤12)中相同的中断服务例程,系统开始下一个以太网帧的接收;
所述以太网帧的发送包括如下步骤:
21)发送任务等待发送通道可用;
22)发送任务准备发送数据,并将待发送数据复制到发送通道的缓存;
23)发送任务启动发送过程;
24)发送任务检查接收通道状态,通过检查以太网接口控制器接收状态相关寄存器或者以太网接口控制器接收缓存使用情况,判断终端是否从网上收到新数据;
25)如果未接收到任何以太网数据,直接退出;如果收到以太网帧,就触发以太网接收事件对应软中断。
2、按权利要求1所述的嵌入式系统中以太网接口实现方法,其特征在于,所述步骤12)中,还包括如下子步骤:
121)TCP/IP协议栈收到数据后,转发到上层应用的网络缓存;
122)当上层应用网络缓存耗尽时,通知协议栈停止向上转发,数据暂时保存在TCP/IP协议栈的网络缓存;
123)当TCP/IP协议栈网络缓存耗尽时,协议栈停止从以太网接口控制器接收数据,网路发来的以太网帧暂存在以太网接口控制器内部RAM;
124)待TCP/IP协议栈的网络缓存释放出空间,再开始接收以太网接口控制器中的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100568231A CN100553261C (zh) | 2006-03-07 | 2006-03-07 | 一种嵌入式系统中以太网接口实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100568231A CN100553261C (zh) | 2006-03-07 | 2006-03-07 | 一种嵌入式系统中以太网接口实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101035142A CN101035142A (zh) | 2007-09-12 |
CN100553261C true CN100553261C (zh) | 2009-10-21 |
Family
ID=38731437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100568231A Expired - Fee Related CN100553261C (zh) | 2006-03-07 | 2006-03-07 | 一种嵌入式系统中以太网接口实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100553261C (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101304342B (zh) * | 2008-06-27 | 2010-11-24 | 电子科技大学 | 一种增强型以太网接口装置 |
CN102664777B (zh) * | 2012-05-07 | 2014-12-10 | 大唐移动通信设备有限公司 | 以太网帧处理方法及装置 |
CN106209678A (zh) * | 2016-06-30 | 2016-12-07 | 华南理工大学 | 用于dsp/bios的modbus消息帧接收方法 |
CN106413004A (zh) * | 2016-09-05 | 2017-02-15 | 上海斐讯数据通信技术有限公司 | 一种无线mac嗅探扫描方法及其装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5485584A (en) * | 1992-07-02 | 1996-01-16 | 3Com Corporation | Apparatus for simulating a stack structure using a single register and a counter to provide transmit status in a programmed I/O ethernet adapter with early interrupts |
CN1369996A (zh) * | 2002-03-22 | 2002-09-18 | 浙江大学 | 用于实时信号分析仪的以太网通信接口 |
CN1463114A (zh) * | 2002-05-31 | 2003-12-24 | 华为技术有限公司 | 基于数字信号处理器同步串行接口的数据发送和接收方法 |
US20040120340A1 (en) * | 2002-12-24 | 2004-06-24 | Scott Furey | Method and apparatus for implementing a data frame processing model |
CN2659038Y (zh) * | 2003-12-09 | 2004-11-24 | 海信集团有限公司 | 一种嵌入式网络接口电路 |
CN1681251A (zh) * | 2004-04-07 | 2005-10-12 | 北京润光泰力科技发展有限公司 | 基于以太网媒体接入控制层的网络设备的管理方法 |
-
2006
- 2006-03-07 CN CNB2006100568231A patent/CN100553261C/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5485584A (en) * | 1992-07-02 | 1996-01-16 | 3Com Corporation | Apparatus for simulating a stack structure using a single register and a counter to provide transmit status in a programmed I/O ethernet adapter with early interrupts |
CN1369996A (zh) * | 2002-03-22 | 2002-09-18 | 浙江大学 | 用于实时信号分析仪的以太网通信接口 |
CN1463114A (zh) * | 2002-05-31 | 2003-12-24 | 华为技术有限公司 | 基于数字信号处理器同步串行接口的数据发送和接收方法 |
US20040120340A1 (en) * | 2002-12-24 | 2004-06-24 | Scott Furey | Method and apparatus for implementing a data frame processing model |
CN2659038Y (zh) * | 2003-12-09 | 2004-11-24 | 海信集团有限公司 | 一种嵌入式网络接口电路 |
CN1681251A (zh) * | 2004-04-07 | 2005-10-12 | 北京润光泰力科技发展有限公司 | 基于以太网媒体接入控制层的网络设备的管理方法 |
Non-Patent Citations (1)
Title |
---|
一种嵌入式系统的以太网接口实现方案. 于晓,张秋鄂,隋永新,杨怀江.电子器件,第28卷第3期. 2005 * |
Also Published As
Publication number | Publication date |
---|---|
CN101035142A (zh) | 2007-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8750188B2 (en) | System support for accessing and switching among multiple wireless interfaces on mobile devices | |
CN101150809B (zh) | 移动终端处理器串口唤醒与流控的方法 | |
AU2019204877B2 (en) | Method for interaction between terminal and network device, and terminal | |
US7840314B2 (en) | Computer peripheral device method and apparatus | |
CN1949774B (zh) | 一种Web应用程序会话管理方法与装置 | |
CN104205755B (zh) | 用于在计算设备的网络触发的唤醒期间延迟分组的方法、设备和系统 | |
CN101841832B (zh) | 空闲状态管理 | |
CN100553261C (zh) | 一种嵌入式系统中以太网接口实现方法 | |
US8521930B1 (en) | Method and apparatus for scheduling transactions in a host-controlled packet-based bus environment | |
CN103856793B (zh) | 媒体内容缓冲 | |
CN103095703A (zh) | 一种实现网络与串口数据交互的方法、设备及系统 | |
US20190303341A1 (en) | Modular Ups System and Data Transmission Method for Power Device | |
WO2016209351A1 (en) | Dynamic management of inactivity timer during inter-processor communication | |
CN114416274A (zh) | 一种虚拟资源管理系统及其方法 | |
KR101073273B1 (ko) | 네트워크의 장치들을 위한 데이터 채널 자원 최적화 | |
CN103297600A (zh) | 移动终端和移动终端系统自动重启方法 | |
CN106131162A (zh) | 一种基于iocp机制实现网络服务代理的方法 | |
CN106027661A (zh) | 数据集群存储终端 | |
WO2013073522A1 (ja) | 画像形成装置、画像形成装置の制御方法、及びプログラム | |
CN102333040B (zh) | 一种服务器瞬间拥塞控制方法和系统 | |
TWI407765B (zh) | 行動裝置、省電方法及電腦可執行媒體 | |
EP2207309A1 (en) | Method and system for a protocol with stateful negotiation for energy efficient network parameters in layer 2 | |
CN101282244B (zh) | 基于spm的入侵检测方法 | |
US20060248531A1 (en) | Information processing device, information processing method and computer-readable medium having information processing program | |
WO2004064429A1 (en) | Reconfiguration of heterogeneous, programmable platforms by a centralized agent |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091021 Termination date: 20110307 |