koorio.com
海量文库 文档专家
当前位置:首页 >> 信息与通信 >>

基于ARM+DM9000的TCP/IP协议栈移植与实现_图文

电子科技2008年第21卷第6期

基于ARM+DM9000的TCP/IP协议栈移植与实现

李国辉1,范科峰2
(1.桂林电子科技大学电子工程学院,广西桂林541004; 2.中国电子技术标准化研究所电子设备与系统研究中心,北京100007)
摘要在研究嵌入式系统的基础上,首先介绍了系统实现的软硬件平台,给出了ARM平台上TCWIP协 议栈移植的过程,并详细介绍了数据发送和接收的具体实现过程。结果显示该方法对改善虚拟仪器的网络功能, 实现资源共享具有重要意义。
关键词驱动程序;嵌入式系统;移植;资源共享 中图分类号TP332 文献标识码A 文章编号1007—7820(2008)06—066—04
Transplant and Implementation of TCP/IP Protocol Based on ARM+DM9000
Li Guohuil.Fan Kefen92 (1.School of Electronic Engineering,Guilin University of Electronic Technology,Guilin 541004,China; 2.Electronic Device and System Center,China Electronics Standardization Institute,Beijing 100007,China)
Abstract Based on a study of Embedded System,this paper first introduced the software and hardware platforms for the implementation,and then describes the transplant of TCP/IP protocol with a detailed discus— sion of the data transmission and reception.The result shows that this method greatly improves the network function of virtual instrumentation,which is of great significance for resources sharing.
Keywords drivers;embedded system;transplant;resource shared

随着计算机技术、网络通信技术的飞速发展, 21世纪的仪器将是一个开放式系统。以PC机和工 作站为基础,通过组建网络来组建实用的测控系 统、提高生产效率、共享信息资源已成为现代仪 器仪表发展的主要方向…。利用该移植的协议栈 可以快速构建基于网络的监控系统,完成远端主 机对测试设备的实时数据采集和对设备状态的实 时监控。同时文中对完成基于LXI总线仪器的网络 通信功能也具有现实意义。目前,对协议栈移植 的研究大多运行在操作系统之上,占用的系统资 源比较大,测试和调试也很不方便。这里在深入 研究嵌入式系统的基础上,采用ARM920T系列芯 片¥3C2410与网络接口芯片DM9000组建了硬件接
收稿日期:2007—10.18 作者简介:李国辉(1982一),男,硕士研究生。研究方向: 测试测量仪器,嵌入式系统,LXI等。

口电路,实现了数据的现场采集,完成了远程数 据的传送与接收。文中实现的无操作系统的协议 栈的移植解决了操作系统之上的协议栈移植调试 困难的问题。
1 系统实施方案
1.1 系统框架 ¥3C2410与DM9000通过控制总线与数据总线
相连接,DM9000与远端的主控机通过网络进行数 据传输心】。¥3C2410可以先将采集到的测试数据发 送到DM9000,然后通过网络接口将采集到的数据 发送到远端的主控机,或者从远端的主控机接收 命令,实现远端主机对测试设备的远程监控的功 能。远端PC机也可以通过网口挂接到以太网,实 现设备数据的网络化共享功能,其结构框图如图1 所示。

万方数据

基于ARM+DM9000的TCP/IP协议栈移植与实现

图1验证平台结构框图
1.2硬件设计(ARM+DIVl9000) (1)硬件平台所采用的MCU ARM920T系列的
芯片¥3C2410介绍。¥3C2410具有丰富的接口资 源",4],内部具有A/D转换器,可以实现数据的实 时采样,分析和传输。具有IIs音频接口,可以实 现音频数据的采集、处理和传输。¥3C2410内部的 脉宽调制(PWM)部分也广泛应用于测量、通信、 功率控制和变换等许多领域中。同时¥3C2410内 部看门狗的使用还可以有效提高硬件系统的抗干 扰能力。结合USB接口、UART也可以完成数据的 有效传输。使用¥3C2410和DM9000组建的网络接 口电路可将测试测量的数据方便快速的传送到远 端主机,同时可以完成远端主机对测试测量设备 的实时监控,拓宽了测试测量设备的应用范围。
(2)网络接口芯片采用DM9000,DM9000是 DAVICOM公司研发的一种10 Mb/100 Mb快速以 太网芯片,为了适应于不同的处理器可以工作在8 位或者16模式。DM9000主要完成数据链路层和 物理层数据的处理,而移植的协议栈主要完成网 络层和应用层数据的处理,如图2所示。
l应用层(TCPUDP) Ⅱ
网络层(IP)
丁[
数据链路层和物理 (DM9000完成)
图2移植协议分层结构图 (3)网络接口电路设计。本电路DM9000和 ¥3C2410的连接采用16位模式。CMD引脚决定传
输的是数据还是命令,CMD引脚与¥3C2410的A2 相连接。CS是片选信号,与¥3C2410的nGCS4相 连,nGCS4的基地址为:0x20000300,而DM9000 的IO基地址为0x300,结合CMD引脚的连接情 况,因此DM9000的数据口地址为:0x20000304, 命令口地址为:0x20000300,¥3C2410通过数据口

和地址口,并结合读写信号线就可以对DM9000进 行读写操作。DM9000和¥3C2410的连接如图3 所示。

DATA0



DATAl5



A2 nOE nWE 13.GCS4 EINT9

DATA0





DATAl5

CMD 10R IOW CS INT

至 \f——叫 ,1

卜、 网络接口

变压器

._a_j45
Lonneeter

图3¥3C2410与DM9000的连接图

1.3软件设计 本验证平台是在ADS(ARM Developer Suite)环
境下进行开发的。ADSl.2提供了完整的WIN— DOWS界面开发环境。C编译器效率极高,支持C 以及C++,使工程师可以很方便的使用C语言进 行程序开发。配合Multi—ICE使用,可以实现实 时在线调试和跟踪。使用的ARM官方在线调试软 件Multi—ICE Server支持绝大部分ARM核,可以 同时对连接成菊花链的多个目标进行调试,可以 与所有遵从RDI接口标准的调试器连接,稳定可 靠。最高10 M JTAG时钟,调试速度较快RAM最 高下载速度80 kB一100 kB,单步速度无明显停顿。

2协议移植的实现

TCP/IP协议移植采用先移植下层协议,再移 植上层协议的方法。首先编写了网络接口芯片 DM9000的发送和接收处理函数,而后移植了ARP 协议,因为要实现IP层的数据通信就必须先获取 对方的MAC地址,ARP应答即是获取对方MAC 的一个过程。最后实现了网络层协议的移植。 2.1 发送数据
DM9000内部有16 kB的SRAM用作收发数据
的缓存,其中3 kB用来作为发送数据缓冲区,其 地址为0x0000~0x0BFF;首先TCP/IP协议栈的处 理函数要将发送的数据封装成规定的格式,然后 把封装好的数据交给DM9000驱动部分的发送函 数,通过设置TCR的发送请求位将数据发送出去。 数据的发送过程就是将数据打包的过程。
发送过程中¥3C2410将首先分配最大数据长

万方数据

电子科技/2008年6月15日 67

基于ARM+DM9000的TCWIP协议栈移植与实现

度为1 514 Byte的数据缓冲区,通过函数alloc_skb (ETH—FRAME—LEN)实现。接下来将预留一个 UDP数据包长度的报文头空问,通过函数udp—skb _reserve(Send_skb)实现。而后填人要发送的数据, 并调用数据包的发送函数udp—send(Send—skb, DEST_IP,arc—port,dest—port)将要发送的数据发- 送出去。udp._.send()将调用ip—send()函数,而ip ._send()又将调用底层的发送函数。其实现过程就 是一层层数据打包的过程,见图4。Send—skb是 street sk_buff{}类型的数据结构,数据缓冲区中数 据指针的变化是通过Send_skb一>data指针的变化 实现的。预留UDP空问的过程就是将Send—skb一 >data+=udp_len的过程,udp_len是一个UDP数 据包的长度。
I数据报报头部分障充要发送的数弩
cu瞩F捌填充的数据 {多uDP数据发送函数(udp—e
f戳罄蚓填充的数据 <乡IP层数据的发送函数(ip— 七乡以太网报头发送函数(eth
删填充的数据 I数据的信晡t
|、 封) r“5 <乡
调用DM9000的低层数据发送 函数数据包送出去
图4数据包发送过程中数据的填充过程

2.2接收数据 在16 kB的SRAM空间中,其中13 kB是用来
作为数据接收缓冲的。当网络控制器的接收数据 使能位(REG 05H)置一时,就可以自动接收数据。 一旦DM9000接收到数据包就会产生一个接收数据 包中断,中断函数中将实现数据包的处理。 ¥3C2410根据收到的数据将首先判断数据包的类 型,并转入相应数据包的处理函数。如果是ARP 的请求包,DM9000将会返回ARP的应答包。如果 是ARP应答包¥3C2410则会将收到的ARP应答包 中的IP地址和MAC地址存储起来,用于发送IP 数据包时填充对应IP的MAC地址。如果是ICMP 的请求包,DM9000会返回ICMP的应答包。对于 其他种类的数据包处理过程与此相似。数据的接 收过程就是将数据一层层解包的过程。
3结果显示(数据包分析)
首先由DM9000发送一个ARP请求,收到PC 机的ARP应答后,从ARP应答包中获取Pc机的 MAC地址。接着发送数据为1~64的UDP数据包 (通过Ethereal抓取的数据流见图5),然后通过PC 机命令行发出ping命令,可以看到ICMP的一个应 答过程。抓取的UDP数据包如下:
用户发送数据为1至64的数据的UDP数据 包,通过图6可以看到Ethereal抓到的数据,数据 包的详细分析见表1。

图5 DM9000与¥3C2410通信数据流图

图6 DM9000与¥3C2410通信UDP数据包 68 Electronic Sci.&Tech./Jum 15.2008
万方数据

基于ARM+DM9000的TCP/IP协议栈移植与实现

00 5e
(总长度) c0胡00 64 (目的IF)

00 20
(标识)
08 cb
(源端口)

00 00
(偏移)
08 22
(目的端口)

14
(生存时间)
00 0c 00 00
(选项)

1l
(协议类型)

24 bc
(头部校验和)

co a8 00 64
(源IP)

00 Ol 02 03 04 05 06 07 08 09 0a 0b 0c 0d… (数据和机器自动填充的尾部无效数据)

经以上分析可知该数据完全符合UDP数据的 传输格式【5】。本协议栈的移植可以应用在远程数 据传输和控制系统中,可实现方便快速的传输 数据。
4结束语
文中实现了无操作系统的协议栈移植,利用 有限的资源实现了数据的快速远程传输。有效缩 减了代码空间,相对于有操作系统的协议栈移植 也有效缩减了开发周期,同时具有方便快捷的优 点。协议移植过程中主要实现了DM9000底层驱 动程序的编写、TCP/IP协议栈的移植。该协议栈 的移植可以广泛应用于测试测量设备数据的远程

传输。本研究已应用于网络化虚拟仪器的项目中。
参考文献
[1] 周继勇虚拟仪器的网络化技术综述[J].通信与信息 技术,2003,29(6):27—30.
[2] 王俊波,周国祥,吴从中.嵌入式网络体系结构研 究及网络接口实现[J].计算机应用研究,2004,21 (7):206—207.
[3]马忠梅.ARM&Linux嵌入式系统教程[M].北京i 北京航空航天大学出版社。2004.
[4] 杜春雷.ARM体系结构与编程[M]。北京:清华大学 出版社,2003.
[5]小高知宏.TCP/IP数据包分析程序篇[M].叶明, 译.北京:科学出版社。2003.

(上接第57页) 语义搭配能够顺利进行,产生“西安拥有物产”“画 的价格”“线段的长度”这样的语义搭配关系,从而 正确理解句子意思。 2.3.2 解决方法
(1)取出动的结构; (2)根据动的结构的核心诃隋况,进行动词的 语义搭配判断; (3)动词语义搭配判断成功,转(5);反之转 (4); (4)查找核心词的从属或并列关系情况,若 有,使用其关系成员作为核心词,转(2),若无, 预判断失败退出; (5)预判断成功,调整动的结构的核心词块进 行动的结构的类型判断。
3 结束语
“的”字结构是现代汉语中最常用的一种短语, 而“V的”结构是“的”字结构中最为重要的一类,

对其的自然语言理解具有很大的复杂性。通过对 “V的”结构在句法、语义、语用3方面的分析, 已经建立了对于不同类型“V的”结构的处理模型, 除部分复杂句型外,也都已经完成其程序设计。 自然语言理解模块的其他部分如动词、代词、数 量词、知识库的管理、词法分析即切词系统、句 法分析模块以及自动建模模块取得了一定的成果, 由各部分的有机组合的智能辅导系统,也经过反 复的、大量的句子测试,现在功能比较稳定。当 然,对于个别的“V的”结构的复杂句型,要让计 算机准确理解其含义还有待探讨,还需要不断 探索。
参考文献
[1] 肖春,周经野.“的”字短语的语义结构分析[J]. 湘潭大学学报(自然科学版),1999,21(1):4—10.
[2] 范晓.三个平面的语法观[M].北京:北京语言 文化大学出版社,1996.

万方数据

电子科技/2008年6月15日 69


推荐相关:

基于ARM+DM9000的TCP/IP协议栈移植与实现_图文.pdf

电子科技2008年第21卷第6期 基于ARM+DM9000的TCP/IP协议栈移植与实现李国辉1,范科峰2(1.桂林电子科技大学电子工程学院,广西桂林541004;2.中国电子技术标准化研究所...


基于ARM+DM9000的TCP/IP协议栈移植与实现_论文.pdf

基于ARM+DM9000的TCP/IP协议栈移植与实现 - 在研究嵌入式系统的基


基于ARM和DM9000的网卡接口设计与实现..doc

基于ARMDM9000 的网卡接口设计与 实现摘要:针对 ARMCPUS3C2410 的特点,...嵌入式设备的 Internet 接入,TCP/IP 首先要解决的是底层硬件问题,即协议的物理...


基于ARM和Linux的DM9000网络接口设计及驱动实现_图文.pdf

基于ARM和Linux的DM9000网络接口设计及驱动实现_信息与通信_工程科技_专业资料。...提供对包括 T CP / IP 等多协议的支 持, 并具有良好的可裁剪和移植性, 已...


基于FPGA的TCP-IP协议设计与实现_图文.pdf

基于FPGA的TCP-IP协议设计与实现 - 第12卷第5期 软佴:导刊V01.12No.5 1111篁!型 !!!丝!堡鱼!!! 些垒;!!! 基于F PGA的TCP/IP...


基于STM32的嵌入式网络协议UIP的移植与分析_图文.pdf

入网络的试验,着重讨论了DM9000网卡驱动程序的实现过程UIP协议栈的整 体架构。...ARMCortex.M3是一种基于ARMV7架构的最新ARM嵌入式内核,它采 用哈佛结构,使用...


基于DM9000A的TCP通信设计毕业设计(论文).doc

第I 页 基于 DM9000A 的 TCP 通信设计 摘要 随着时代的发展,因特网的广泛...通过分析协议的通信原理及具体实现过程 ,将简化的 TCP/IP 协议移植ARM 硬件...


基于嵌入式的socket编程及其应用_图文.doc

使用搭载 ARM9 架构的 S3C2440 微处理器 DM9000 系列网卡的 TX2440A 开发...TCP/IP 协议栈向应用程序提供的 API 接口,用于在 两个基于 TCP/IP 协议的...


基于S3C2440的DM9000网卡驱动的移植.txt

基于S3C2440的DM9000网卡驱动的移植_计算机硬件及网络...网络协议接口层、网络设备接口层、设备驱动功能层和...depends on ARM||BLACKFIN||MIPS select CRC32 select...


基于ARM9和ARMLinux的嵌入式网络接口控制器设计..doc

基于ARM9ARMLinux的嵌入式网络接口控制器设计._...DM9000E 芯片作为以太网控制器,在以太网的顶层完 ...选择,协议栈 已经被嵌入,TCP/IP 协议从而得以实现...


DM9000网卡调试教程_图文.doc

实现 TCP/IP 所使用的协议栈却不同; 低版本 (7.2 版本以下) 使用的是 ...分 别实现 DM9000A 测试、DM9000A 自收发和基于 DM9000A 的 UDP 协议的例子...


基于ARM9+S3C2440的Android操作系统移植_图文.pdf

基于ARM9+S3C2440的Android操作系统移植_互联网_IT/...接下来对DM9000的 功能进行测试。在开发板端对主机...《嵌入式Linux下温湿度传感器的设计与实现》 《基于...


基于FPGA的TCP IP协议设计与实现.doc

基于FPGA的TCP IP协议设计与实现 - 基于 FPGA 的 TCP/IP 协议设计与实现 摘要:以 FPGA(现场可编程逻辑门阵列)为控制中心,实现了网络 接口芯片的时序控制,进而...


基于DM9000的以太网藏文信息控制平台_图文.pdf

控制平台范培锋,肖伟,边巴旺堆,董志诚(西藏大学工学院电子信息系.西藏拉萨850000) 摘要:基于DM9000的以太网电路,单片机端移植精简TCP,IP协议栈unIP.实现简易的TCP服务...


基于ARM的嵌入式网络接口控制器设计 - 百度文库.txt

基于ARM的嵌入式工业控制... 68页 基于DM9000ALPC2214的... 6页 ARM...实现是重点,选择嵌入式Linux,它已经嵌入了TCP/IP协议栈,使TCP/IP协议得以实现...


基于FPGA的TCP_IP协议的实现.pdf

the_DM9000A (ENET_WR_N) 网络与通信主机/服务器处于活动状态,从而本机与...4 TCP/IP 协议实现 TCP/IP 协议 (传输控制协议/网间协议) 是一个协议栈,...


基于ARM的CAN总线与以太网通信网关设计_图文.pdf

此设计中采用DAVICOM公司的DM9000A(E).RJ45接口采用ST-J0012,内部集成有2个...编写和TCP/IP协议栈的实现‘".以太网通信遵循TCP/IP协议,TCP/IP协议的结构...


基于DM9000A和LPC2214的嵌入式以太网接口设1.doc

DM9000A 32 位 ARM 处理器 LPC2214 为核心的嵌入式以太网接口的实现方法...的开放源代码 TCP/IP 协议栈, 其大部分源码 是用 ANSIC 语言编写的便于移植...


ucos操作系统在ARM上的移植.doc

uip 协议处理 优先级: 2 OSStart()启动调度开始运行 UART 中断 DM9000 外部中...TCP/IP 协议栈 在本次设计中采用 Lwip 协议栈来实现 ARM 与以太网的连接。 ...


基于ARM9的红外热像仪设计与实现_图文.pdf

(ARM9) 处理器、SDRAM、NANDFLASH和DM9000网卡芯片,并 在板上移植了2.6内核...通过Linux的TCP/IP协议 能方便地将多个热像仪进行组网或集成到现有系统从而对...

网站首页 | 网站地图
All rights reserved Powered by 酷我资料网 koorio.com
copyright ©right 2014-2019。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com