教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 建筑文档 >

自己做的ARM的UDP通信实验 - 图文(2)

来源:网络收集 时间:2025-09-13
导读: 用函数OSTaskCreate()或函数OSTaskCreateExt()实现。最后函数main()调用函数 OSStart()将控制权交给μC/OS-II内核main()函数也就结束了。μC/OS-II应用程序主函数如下: 程序清单 1 int main (void) { OSInit(); uC

用函数OSTaskCreate()或函数OSTaskCreateExt()实现。最后函数main()调用函数 OSStart()将控制权交给μC/OS-II内核main()函数也就结束了。μC/OS-II应用程序主函数如下:

程序清单 1

int main (void) {

OSInit(); uC/OS-II

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

//开始多任务

//

5

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

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

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

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

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

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

6

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

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

SOCKET接口函数是TCP/IP的API。使用SOCKET API函数编写UDP通信的任务时,分为服务器方式两种。服务器方式是先接收到数据再进行处理,而客户机则是先发生数据后等待回应处理,它们用到的SOCKET API函数都是相同的。如图 2所示就是UDP通信时服务器端和客户机通信函数应用过程图。

服务器端客户机端socket创建套接字socket创建套接字Blind()本地IP和端口与套接字相连Blind()本地IP和端口与套接字相连Recvfrom()和sendto()直接完成数据收发Recvfrom()和sendto()直接完成数据收发Closesocket()删除套接字Closesocket()删除套接字结束结束

图 2 UDP通信是SOCKET API函数的应用

7

第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) 修改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

8

程序清单 2 MAC和IP设置

/************** first Net Port Config **************************/ #define My_Mac_1ID

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

#define IP_MARK_1ID

//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) 修改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、HARDWARE\\Hardware.c、IP\\Ip.c、PING\\Icmp.c、

SOCKET\\zlg_socket.c和TCP\\Tcp.c、UDP\\Udp.c等文件添加到该文件组,最后把程序编好添加到ADS项目窗口的user文件组中,如

{255,255,0,0}

图 4 shiyan工程窗口

9

…… 此处隐藏:511字,全部文档内容请下载后查看。喜欢就下载吧 ……
自己做的ARM的UDP通信实验 - 图文(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/438410.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)