基于ARM的嵌入式TCPip协议的实现.doc_第1页
基于ARM的嵌入式TCPip协议的实现.doc_第2页
基于ARM的嵌入式TCPip协议的实现.doc_第3页
基于ARM的嵌入式TCPip协议的实现.doc_第4页
基于ARM的嵌入式TCPip协议的实现.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于ARM的嵌入式TCPIP协议的实现该系统可以将数据按网络协议处理,实现数据的以太网传输。其是一套基于嵌入式实时操作系统的嵌入式网络软件开发平台,即在COSII的平台上,实现ARM微处理器的TCPIP协议,在此平台之上,可以方便地进行嵌入式应用系统的开发。0 引 言 以太网具有通用性强、技术成熟、带宽迅速增加等特性,工业控制领域出现嵌入式技术,尤其是ARM技术的发展和DSP在工业控制领域的广泛应用,利用嵌入式技术实现以太网通信已经不难见到。嵌入式实时操作系统接入网络后将使远程监测、远程控制、远程诊断和远程维护变得越来越容易。从根本上讲,嵌入式设备接入网络,当前基本采用基于TCPIP的通信协议。该方案以LPC2210为核心元件研究基于ARM的嵌入式TCPIP协议的实现的硬件电路,同时在COS一平台上编写应用软件程序。下面对系统做详实的阐述,并重点介绍嵌入式实时操作系统COSII应用于TCPIP时应进行合理的裁减。1 系统硬件设计 基于ARM的嵌入式TCPIP网络通信系统主要包括ARM芯片和以太网控制器等芯片组成的以太网接口、驱动软件和嵌入式TCPIP协议栈。硬件原理图如图1所示。 该方案设计相对简单,硬件电路中采用的LPC2210是Philips公司推出的微处理器,带有16 KBRAM,76个通用IO口,12个独立外部中断引脚,集成有8通道的10位AD,能够基于芯片设计复杂的系统。虽然LPC2210具有较快的访问速度,但片内没有集成FLASH,所以这里扩展1片16 Mb FLASH SST39VFl60来保存用户程序。其架构满足COSII正常运行的基本要求。 RTL8019AS是台湾Realtek半导体公司生产的以太网控制器,其性能包括:支持EthernetII和IEEE8023标准;支持816位数据总线;内置16 KWord的SRAM;全双工,收发同时达到10 Mbs;支持BNC,AUI,UTP介质。RTLS019AS可提供100脚的TQFP封装,减少了PCB面积,更适合于嵌入式系统。HR901170A是汉仁电子有限公司生产的RJ45接口连接器(带网络变压器滤波器),该连接器满足IEEES023和IEEE9023ab标准,能够较好地抑制电磁干扰。通过HR901170A系统就可以连接到以太网上。2 嵌入式协议的选择 TCPIP协议是一组不同层次上的多个协议的组合,通常被认为是一个包含链路层、网络层、传输层和应用层的4层协议系统,如图2所示。嵌入式系统是为完成某种特定的功能而设计的专用系统。嵌入式系统不要求(也不可能)实现所有的TCPIP协议,所以嵌入式TCPIP是对TCPIP协议族进行选择而形成的协议集合。 首先在链路层上,由于采用以太网的接入方式,系统必须实现IEEE8023所规定的CDMACD(载波监听多路访问及冲突监测)协议,CDMACD协议不需用户实现,此协议只要采用通用的NIC(Network Interface Controller,网络接口控制)芯片就可支持。为了保证系统在以太网中的通信,系统还需实现ARP应答协议,该协议用于将IP地址映射成以太网MAC地址。ARP协议包括ARP请求和ARP响应两部分,系统与其他计算机通信,就必须要支持ARP响应。ARP请求在本地建立了一个IP地址到MAC地址的映射,保证了对外通信的有的放矢。RARP(逆地址解析)协议主要用于解决如何从MAC地址得到IP地址,主要用于无盘工作站中。在网络层,由于系统要求能够在Internet中进行通信,因此系统要实现IP协议。在TCPIP协议族中,网络层协议包括IP协议(网际协议)、ICMP协议(Internet控制报文协议)以及IGMP协议(Internet组管理协议)等。IP协议是TCPIP族的核心协议,它使异构网络之间的通信成为可能。因此RTU等系统数据跨越不同的网络进行传输就必须要实现IP协议。ICMP中规定了多种协议类型和代码,如果完全地实现也要耗费不少的系统资源,该嵌入式系统中,在ICMP协议中能够测试网络的连通情况即可。传输层主要是在2台主机之间提供端到端的通信。传输层有2种不相同的传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP是面向连接的,在不可靠的网络服务上提供端到端的可靠字节流。TCP协议设计了严格的3次建立连接握手过程、4次关闭连接握手过程以及捎带确认信息并通过滑动窗口进行流量控制的数据传输过程。UDP协议是不面向连接的,它只是简单地把数据报从一台主机发送到另一台主机,但并不保证该数据报能到达另一端,可靠性必须由应用层来提供。考虑到系统中数据传输质量,这里采用TCP协议。应用层协议主要是指用户进程。其包括:HTTP协议、FTP协议、POP3协议、SMTP协议、SNMP协议。3 系统软件设计 该TCPIP网络通信系统为了具有较好的实时性和稳定性,采用COS一设计系统软件。在COS一平台上,软件设计工作主要包括:COS一在LPC2210上的移植和TCPIP协议在COS一上的实现以及系统应用程序的编写。COS一的移植工作主要集中在下面几个文件中:OS_CPUH,OS_CPU_AASM,OS_CPU_CC。另外,在INCLUDESH中必须包括LPC2210文件LPC2210H;OS_CFGH用于系统应用COS一中的初始化配置。OS_CPUH主要包括一些与处理器和编译器相关的常量和类型定义等,而且需注意LPC2210的堆栈方向是由高到低,用OS_STK_GROWTH来设置堆栈的增长方向。因此将OS_STK_GROWTH设为1。OS_CPU_AASM中需编写4个汇编语言函数:OS_TASK_SW(),OS_IntCtxSw(),OSStartHighRdy()和OSTieklSR()。 以太网链路层遵循的IEEE8023协议的CSMACD和CRC校验等功能由网络控制芯片Rtl8019AS完成,LPC2210芯片则完成其他TCPIP协议的解释和执行。LPC2210控制RTL8019AS完成通信任务时,首先要对RTL8019AS复位,并对RTL8019As的寄存器进行初始化,确定发送和接收的条件,然后才能发送数据或接收数据。当一帧数据发送结束、接收到1帧数据或出错等事件发生时,RTL8019As向LPC2210申请中断,LPC2210响应中断后根据中断状态寄存器的内容进行相应的处理。 在LPC2210内部,ARM程序完成对数据的打包解包。系统复位后,系统首先发送ARP请求,建立地址映射,并内部中断进行定时更新。ARM芯片根据情况将采集或收集到数据按照TCP协议或UDP协议格式打包,送入网卡芯片,由网卡芯片将数据输出到局域网中。ARM芯片对数据报进行分析,如果是ARP(物理地址解析)数据包,则程序转入ARP处理程序。如果是IP数据包则进一步判断是哪个协议向IP传送数据。如果是ICMP协议,判断是否为Ping请求,是则应答,不是丢弃该数据包;如果是TCP或UDP协议,且端口正确则按相应的协议处理数据,端口不正确丢弃数据包。TCPIP系统框图如图3所示。 TCPIP在COS一上的设计结束后,剩下的工作就是编写应用程序。将系统划分成若干个任务,每个任务对应一个独立的无限循环的主程序,完成一个特定的功能。为简化设计,应用程序采用静态优先级,即应用程序在执行的过程中各个任务优先级保持不变。4 结 语 基于ARM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论