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

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

Info

Publication number
CN101035142A
CN101035142A CN 200610056823 CN200610056823A CN101035142A CN 101035142 A CN101035142 A CN 101035142A CN 200610056823 CN200610056823 CN 200610056823 CN 200610056823 A CN200610056823 A CN 200610056823A CN 101035142 A CN101035142 A CN 101035142A
Authority
CN
China
Prior art keywords
data
ethernet
nic
network
receive
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.)
Granted
Application number
CN 200610056823
Other languages
English (en)
Other versions
CN100553261C (zh
Inventor
朱晓东
张建东
王劲林
张武
邓峰
齐东向
叶晓舟
武晓华
曾学文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Acoustics CAS
Beijing Intellix Technologies Co Ltd
Original Assignee
Institute of Acoustics CAS
Beijing Intellix Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Acoustics CAS, Beijing Intellix Technologies Co Ltd filed Critical Institute of Acoustics CAS
Priority to CNB2006100568231A priority Critical patent/CN100553261C/zh
Publication of CN101035142A publication Critical patent/CN101035142A/zh
Application granted granted Critical
Publication of CN100553261C publication Critical patent/CN100553261C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

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)接收任务接收一帧数据完毕后,通过检查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中的数据报。
CNB2006100568231A 2006-03-07 2006-03-07 一种嵌入式系统中以太网接口实现方法 Expired - Fee Related CN100553261C (zh)

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 true CN101035142A (zh) 2007-09-12
CN100553261C 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101304342B (zh) * 2008-06-27 2010-11-24 电子科技大学 一种增强型以太网接口装置
CN102664777A (zh) * 2012-05-07 2012-09-12 大唐移动通信设备有限公司 以太网帧处理方法及装置
CN106209678A (zh) * 2016-06-30 2016-12-07 华南理工大学 用于dsp/bios的modbus消息帧接收方法
CN106413004A (zh) * 2016-09-05 2017-02-15 上海斐讯数据通信技术有限公司 一种无线mac嗅探扫描方法及其装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412782A (en) * 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
CN1157912C (zh) * 2002-03-22 2004-07-14 浙江大学 用于实时信号分析仪的以太网通信接口
CN1269331C (zh) * 2002-05-31 2006-08-09 华为技术有限公司 基于数字信号处理器同步串行接口的数据发送和接收方法
US7382788B2 (en) * 2002-12-24 2008-06-03 Applied Micro Circuit Corporation Method and apparatus for implementing a data frame processing model
CN2659038Y (zh) * 2003-12-09 2004-11-24 海信集团有限公司 一种嵌入式网络接口电路
CN100492985C (zh) * 2004-04-07 2009-05-27 北京润光泰力科技发展有限公司 基于以太网媒体接入控制层的网络设备的管理方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101304342B (zh) * 2008-06-27 2010-11-24 电子科技大学 一种增强型以太网接口装置
CN102664777A (zh) * 2012-05-07 2012-09-12 大唐移动通信设备有限公司 以太网帧处理方法及装置
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嗅探扫描方法及其装置

Also Published As

Publication number Publication date
CN100553261C (zh) 2009-10-21

Similar Documents

Publication Publication Date Title
US8750188B2 (en) System support for accessing and switching among multiple wireless interfaces on mobile devices
CN108616458B (zh) 客户端设备上调度分组传输的系统和方法
CN1679282A (zh) Tcp卸载的系统和方法
CN101202707B (zh) 高速单板传输报文的方法、现场可编程门阵列及高速单板
CN101069173A (zh) 用于低功率运行无线局域网接口的系统
US8521930B1 (en) Method and apparatus for scheduling transactions in a host-controlled packet-based bus environment
CN1763694A (zh) 周边装置互连高速链接电源状态转换系统及其方法
CN1665198A (zh) 堆叠式交换机管理方法
WO2008038139A2 (en) Network stacks
CN101035142A (zh) 一种嵌入式系统中以太网接口实现方法
CN1752896A (zh) 操作系统协作下的嵌入式设备电源管理方法及系统
KR20140048815A (ko) Tcp 가속화를 포함하는 내장형 자동차용 획득 장치를 위한 분산형 측정 배열
US7428730B2 (en) Software development environment
CN1845084A (zh) 基于以太网和pstn通信方式的嵌入式远程监控系统
CN1761257A (zh) 基于虚拟接口的存储系统
CN101951327B (zh) 一种iSCSI网络系统以及检测网络故障的方法
CN106131162A (zh) 一种基于iocp机制实现网络服务代理的方法
WO2013075513A1 (zh) 短信缓存方法及系统
CN1801806A (zh) 一种实时环境下的零拷贝通信方法
CN101282244B (zh) 基于spm的入侵检测方法
CN1841341A (zh) 信息处理装置、信息处理方法和信息处理程序
CN101702713A (zh) 一种提高udp发送效率的方法及装置
CN101014049A (zh) 一种终端无线通信协议栈软件定时器管理方法
CN102170478A (zh) 基于autosar协议栈的pdu缓存方法
CN1411217A (zh) 利用缓存技术提高ip报文转发速度的方法

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