资源预览内容
第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
第9页 / 共25页
第10页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
UDP通信实验【摘要】利用基于嵌入式实时操作系统C/OS-II的ZLG/IP软件包,利用实验板光盘提供的UDPtest软件可以实现实验板跟PC机的数据收发。【关键词】ARM UDP C/OS-II操作系统目 录第1章 硬件实现11.1RTL8019AS网络控制器介绍1第2章 C/OS-II操作系统32.1C/OS-II系统简介32.2C/OS-II的特点32.3任务模式32.4支持的指令集42.5移植C/OS-II4第3章 ZLG/IP软件包结构和配置63.1ZLG/IP软件包结构6第4章 设计过程84.1设计步骤84.2实验程序104.2.1宏定义104.2.2RTL8019AS监听任务114.2.3UDP通信程序124.2.4创建系统任务并初始化144.2.5主程序154.2.6定时器中断控制16第5章 实验结果19第6章 课程设计体会2121第1章 硬件实现1.1 RTL8019AS网络控制器介绍RTL8019AS是一种全双工即插即用的以太网控制器,它在一块芯片上集成了RTL8019内核和一个16KB的SDRAM存储器。它兼容RTL8019控制软件和NE2000 8bit或16bit的传输,支持UTP,AUI,BNC和PNP自动检测模式,支持外接闪烁存储器读写操作,支持I/O口地址的完全解码,具有LED指示功能。其接口符合Ethernet2和IEEE802.3(10Base5,10Base2,10BaseT)标准。RTL8019AS采用100脚PQFP封装,其主要引角功能如下:引角14,97100:中断控制INT0-7;引角33:复位控制;引脚34:使能控制角AEN,低电平有效;引脚6,7,70,89:数字电源,5V;引脚14,28,83,86:数字地GND;引脚47,57:模拟电源:5V;引脚44,52:模拟地;引脚713,15,16,1827:ISA地址总线;引脚3643,87,88,9095:ISA数据总线;引脚31:Boot ROM读操作控制;引脚32:Boot ROM写操作控制;引脚62:RX接收数据显示LED1脚;引脚63:TX发送数据显示LED2脚;引脚58,59:接收数据TP IN+/-;引脚45,46:发送数据TP OUT+/-;引脚50,51:外接晶体。图 1 RTL8019AS接线图第2章 C/OS-II操作系统2.1 C/OS-II系统简介C/OS-II读做“microCOS2”,意为“微控制器操作系统版本2”。C/OS-II是著名的、源码公开的实时内核,可用于各类8位、16位和32位单片机、arm或 DSP等等。C/OS-II是一个完整的、可移植、可固化、可剪裁的占先式实时多任务内核。应用程序处于整个系统的顶层.每个任务都可以认为自己独占了CPU,因而可以设计成为一个无限循环。2.2 C/OS-II的特点l 可移植性(portable)l 可固化(ROMmable) l 可剪裁(scalable) l 可剥夺(preemptive) l 多任务l 可确定性l 任务栈l 系统服务l 中断管理l 稳定性与可靠性多任务是指:C/OS-II可以管理 64个任务,然而,C/OS-II的作者建议用户保留 8 个给C/OS-II。这样,留给用户的应用程序最多可有 56 个任务。系统服务指:C/OS-II提供很多系统服务,例如信号量、互斥信号量、时间标志、消息邮箱、消息队列、块大小固定的内存的申请与释放及时间管理函数等。中断管理指:中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达 255 层。2.3 任务模式ARM7 处理器核具有用户、系统、管理、中止、未定义、中断和快中断七种模式 。用户模式(USER MODE)是ARM 通常执行状态,用于执行大多数应用程序;快速中断模式(FIQ MODE)支持数据传输或通道处理;中断模式(IRQ MODE)用于通用中断处理;超级用户模式(SVC MODE)是一种操作系统受保护的模式:数据中止模式(ABT MODE)指令预取指中止、数据中止时进入该模式;未定义模式(UND MODE)当执行未定义的指令时进入该模式;系统模式(SYS MODE)是操作系统一种特许的用户模式。除了用户模式之外,其他模式都归为特权模式,特权模式用于中断服务、异常或者访问受保护的资源特权模式中除系统模式之外另5种模式又称为异常模式,在移植过程中必须设置中断向量表来处理异常。uCOS II的移植主要处理标准中断(IRQ)、快速中断(FIQ)和软件中断(SWI)。2.4 支持的指令集带T变量的ARM7处理器核具有两个指令集:标准32位ARM指令集和16位 Thumb指令集,两种指令集有不同的应用范围,C/OS-II包含了这些指令集的切换(TaskIsARM()和 TaskIsTHUMB()用于改变指令集)。2.5 移植C/OS-IIC/OS-II 要求所有.C 文件的都要包含都文件includes.h,这样使得用户项目中的每个.C文件不用分别去考虑它实际上需要哪些头文件。使用includes.h的缺点是它可能会包含一些实际不相关的头文件,这意味着每个文件的编译时间可能会增加,但却增强了代码的可移植性。在本移植中另外增加了一个头文件config.h,我们要求所有用户程序必须包含config.h,在config.h中包含 includes.h 和特定的头文件和配置项。而C/OS-II 的系统文件依然只是包含 includes.h,即C/OS-II 的系统文件完全不必改动。所有的配置改变包括头文件的增减均在config.h中进行,而includes.h定下来后不必改动(C/OS-II 的系统文件需要包含的东西是固定的)。这样,C/OS-II 的系统文件需要编译的次数大大减少,编译时间随之减少。COS-II 不使用C语言中的 short、int、long等数据类型的定义,因为它们与处理器类型有关,隐含着不可移植性。代之以移植性强的整数数据类型,这样,既直观又可移植。在使用周立功提供的C/OS-II模板的任何功能之前,必须调用函数OSInit(),它完成C/OS-II的初始化并建立空闲任务。在开始多任务之前,必须建立至少一个用户任务(不包括C/OS-II的空闲任务),这是通过调用函数OSTaskCreate()或函数OSTaskCreateExt()实现。最后函数main()调用函数 OSStart()将控制权交给C/OS-II内核main()函数也就结束了。C/OS-II应用程序主函数如下:程序清单 1int main (void) OSInit(); /初始化 uC/OS-II OSTaskCreate(TaskStart,(void *)0, &TaskStartStk127, 3);/创建起动任务 OSStart(); /开始多任务第3章 ZLG/IP软件包结构和配置3.1 ZLG/IP软件包结构为了使软件可移植性强、易维护,该软件包采用分层的方法编写。包括网络传输用到的协议、硬件驱动及C/OS-II的结构进行分层。ZLG/IP包相关文件说明如表格 1 表格 1 软件包相关文件说明文件名简要说明ARP.C地址解析协议CRC.C循环冗余码校验Ethernet.C以太网标准HARDWARE.C硬件驱动IP.C网络互联协议ICMP.C因特网控制消息协议Socket.C本地端口协议TCP.C传输控制协议UDP.C用户数据包协议传输层有两个协议传输数据:传输控制协议TCP和用户数据报协议UDP。TCP协议是面向连接的一个协议,可靠性高,费用也高;UDP协议是提供最少服务和费用的传输层协议。UDP是最简单的传输层协议,它具有以下特点:l 无连接:UDP不基于连接来传输数据。l 不可靠:UDP的数据报发送时没有定序,所以UDP传送的数据是不可靠的,只有靠应用层协议中增加超时重发等功能才能提供可靠的服务。l 提供应用层协议标识:UDP报头有定义应用层协议标识和目标应用层标识。l 提供UDP报的校验和:UDP报头包含有整个UDP报(包括报头和有效负载)及伪报头的校验和,计算方法与计算IP数据报校验和的计算方法相同。l 缓冲:UDP协议不提供任何数据接收或发送的缓冲区。缓冲区应该由应用层协议提供。l 分段:UDP协议不提供分段传输方式,所以应用层协议要尽量发送小的包。SOCKET接口函数是TCP/IP的API。使用SOCKET API函数编写UDP通信的任务时,分为服务器方式两种。服务器方式是先接收到数据再进行处理,而客户机则是先发生数据后等待回应处理,它们用到的SOCKET API函数都是相同的。如图 2所示就是UDP通信时服务器端和客户机通信函数应用过程图。图 2 UDP通信是SOCKET API函数的应用第4章 设计过程4.1 设计步骤由于使用DM9000的网络控制芯片的Magic2200的实验箱有点问题,后来我们改用使用RTL8019AS网络控制芯片的EasyARM2200教学实验平台。1) 启动ADS1.2,使用ARM Executable Image for COS-II(lpc22xx)工程模板建立一个工程shiyan。2) 把COS-II内核源码和移植文件,ZLG/IP软件包目录拷贝到已建工程目录下,如图 3所示,arm目录为移植文件目录,Source目录为COS-II内核源码,tcpip目录为ZLG/IP软件包目录。图 3 项目目录结构3) 修改tcpipincludecfg_net.h文件,修改MAC地址为:0x00,0x14,0x97,0x0F,0x1F,0x9D、子网掩码为255.255.0.0、IP地址:172.30.172.77、本地网关地址为PC机IP:172.30.172.125。如程序清单 2程序清单 2 MAC和IP设置/* first Net Port Config */#define My_Mac_1ID 0x00,0x14,0x97,0x0F,0x1F,0x9D /将RTL8019的物理地址存储在程序空间?#define IP_MARK_1ID 255,255,0,0 /255.255.255.0,子网掩码#define MY_IP_1ID 172,30,172,77#define MY_GATEWAY_1ID 172,30,172,125/*End Net Port Config */4) 修改shiyansrcos_c
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号