ARM课程设计UDP通信.docx

上传人:b****3 文档编号:2791030 上传时间:2022-11-15 格式:DOCX 页数:18 大小:487.56KB
下载 相关 举报
ARM课程设计UDP通信.docx_第1页
第1页 / 共18页
ARM课程设计UDP通信.docx_第2页
第2页 / 共18页
ARM课程设计UDP通信.docx_第3页
第3页 / 共18页
ARM课程设计UDP通信.docx_第4页
第4页 / 共18页
ARM课程设计UDP通信.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

ARM课程设计UDP通信.docx

《ARM课程设计UDP通信.docx》由会员分享,可在线阅读,更多相关《ARM课程设计UDP通信.docx(18页珍藏版)》请在冰豆网上搜索。

ARM课程设计UDP通信.docx

ARM课程设计UDP通信

UDP通信实验

【摘要】

利用基于嵌入式实时操作系统μC/OS-II的ZLG/IP软件包,利用实验板光盘提供的UDPtest软件可以实现实验板跟PC机的数据收发。

 

【关键词】

ARMUDPμC/OS-II操作系统

 

目录

第1章硬件实现1

1.1RTL8019AS网络控制器介绍1

第2章µC/OS-II操作系统3

2.1µC/OS-II系统简介3

2.2µC/OS-II的特点3

2.3任务模式3

2.4支持的指令集4

2.5移植µC/OS-II4

第3章ZLG/IP软件包结构和配置6

3.1ZLG/IP软件包结构6

第4章设计过程8

4.1设计步骤8

4.2实验程序10

4.2.1宏定义10

4.2.2RTL8019AS监听任务11

4.2.3UDP通信程序12

4.2.4创建系统任务并初始化14

4.2.5主程序15

4.2.6定时器中断控制16

第5章实验结果19

第6章课程设计体会21

第1章硬件实现

1.1RTL8019AS网络控制器介绍

RTL8019AS是一种全双工即插即用的以太网控制器,它在一块芯片上集成了RTL8019内核和一个16KB的SDRAM存储器。

它兼容RTL8019控制软件和NE20008bit或16bit的传输,支持UTP,AUI,BNC和PNP自动检测模式,支持外接闪烁存储器读写操作,支持I/O口地址的完全解码,具有LED指示功能。

其接口符合Ethernet2和IEEE802.3(10Base5,10Base2,10BaseT)标准。

  RTL8019AS采用100脚PQFP封装,其主要引角功能如下:

  引角1-4,97-100:

中断控制INT0-7;

  引角33:

复位控制;

  引脚34:

使能控制角AEN,低电平有效;

  引脚6,7,70,89:

数字电源,+5V;

  引脚14,28,83,86:

数字地GND;

  引脚47,57:

模拟电源:

+5V;

  引脚44,52:

模拟地;

  引脚7-13,15,16,18-27:

ISA地址总线;

  引脚36-43,87,88,90-95:

ISA数据总线;

  引脚31:

BootROM读操作控制;

  引脚32:

BootROM写操作控制;

  引脚62:

RX接收数据显示LED1脚;

  引脚63:

TX发送数据显示LED2脚;

  引脚58,59:

接收数据TPIN+/-;

  引脚45,46:

发送数据TPOUT+/-;

引脚50,51:

外接晶体。

图1RTL8019AS接线图

第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的特点

●可移植性(portable)

●可固化(ROMmable)

●可剪裁(scalable)

●可剥夺(preemptive)

●多任务

●可确定性

●任务栈

●系统服务

●中断管理

●稳定性与可靠性

多任务是指:

µC/OS-II可以管理64个任务,然而,µC/OS-II的作者建议用户保留8个给µC/OS-II。

这样,留给用户的应用程序最多可有56个任务。

系统服务指:

µC/OS-II提供很多系统服务,例如信号量、互斥信号量、时间标志、消息邮箱、消息队列、块大小固定的内存的申请与释放及时间管理函数等。

中断管理指:

中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。

2.3任务模式

ARM7处理器核具有用户、系统、管理、中止、未定义、中断和快中断七种模式。

用户模式(USERMODE)是ARM通常执行状态,用于执行大多数应用程序;快速中断模式(FIQMODE)支持数据传输或通道处理;中断模式(IRQMODE)用于通用中断处理;超级用户模式(SVCMODE)是一种操作系统受保护的模式:

数据中止模式(ABTMODE)指令预取指中止、数据中止时进入该模式;未定义模式(UNDMODE)当执行未定义的指令时进入该模式;系统模式(SYSMODE)是操作系统一种特许的用户模式。

除了用户模式之外,其他模式都归为特权模式,特权模式用于中断服务、异常或者访问受保护的资源

特权模式中除系统模式之外另5种模式又称为异常模式,在移植过程中必须设置中断向量表来处理异常。

uCOSII的移植主要处理标准中断(IRQ)、快速中断(FIQ)和软件中断(SWI)。

2.4支持的指令集

带T变量的ARM7处理器核具有两个指令集:

标准32位ARM指令集和16位Thumb指令集,两种指令集有不同的应用范围,µC/OS-II包含了这些指令集的切换(TaskIsARM()和TaskIsTHUMB()用于改变指令集)。

2.5移植µC/OS-II

µC/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应用程序主函数如下:

程序清单1

intmain(void)

{

OSInit();//初始化uC/OS-II

OSTaskCreate(TaskStart,(void*)0,&TaskStartStk[127],3);//创建起动任务

OSStart();//开始多任务

}

第3章ZLG/IP软件包结构和配置

3.1ZLG/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是最简单的传输层协议,它具有以下特点:

●无连接:

UDP不基于连接来传输数据。

●不可靠:

UDP的数据报发送时没有定序,所以UDP传送的数据是不可靠的,只有靠应用层协议中增加超时重发等功能才能提供可靠的服务。

●提供应用层协议标识:

UDP报头有定义应用层协议标识和目标应用层标识。

●提供UDP报的校验和:

UDP报头包含有整个UDP报(包括报头和有效负载)及伪报头的校验和,计算方法与计算IP数据报校验和的计算方法相同。

●缓冲:

UDP协议不提供任何数据接收或发送的缓冲区。

缓冲区应该由应用层协议提供。

●分段:

UDP协议不提供分段传输方式,所以应用层协议要尽量发送小的包。

SOCKET接口函数是TCP/IP的API。

使用SOCKETAPI函数编写UDP通信的任务时,分为服务器方式两种。

服务器方式是先接收到数据再进行处理,而客户机则是先发生数据后等待回应处理,它们用到的SOCKETAPI函数都是相同的。

如图2所示就是UDP通信时服务器端和客户机通信函数应用过程图。

图2UDP通信是SOCKETAPI函数的应用

第4章设计过程

4.1设计步骤

由于使用DM9000的网络控制芯片的Magic2200的实验箱有点问题,后来我们改用使用RTL8019AS网络控制芯片的EasyARM2200教学实验平台。

1)启动ADS1.2,使用ARMExecutableImageforµCOS-II(lpc22xx)工程模板建立一个工程shiyan。

2)把µCOS-II内核源码和移植文件,ZLG/IP软件包目录拷贝到已建工程目录下,如图3所示,arm目录为移植文件目录,Source目录为µCOS-II内核源码,tcpip目录为ZLG/IP软件包目录。

图3项目目录结构

 

3)修改tcpip\include\cfg_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

 

程序清单2MAC和IP设置

/**************firstNetPortConfig**************************/

#defineMy_Mac_1ID{0x00,0x14,0x97,0x0F,0x1F,0x9D}//将RTL8019的物理地址存储在程序空间?

#defineIP_MARK_1ID{255,255,0,0}//255.255.255.0,子网掩码

#defineMY_IP_1ID{172,30,172,77}

#defineMY_GATEWAY_1ID{172,30,172,125}

/**************EndNetPortConfig***************/

4)修改shiyan\src\os_cfg.h文件,OS_MAX_EVENTS改为42,OS_LOWEST_PRIO改为62,OS_MAX_QS改为10。

5)在ADS的项目窗口中添加TCPIP的文件组;然后把tcpip\目录下的ARP\Arp.c、ETHERNET\Ethernet.c、HA

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 法学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1