嵌入式UDP实验报告.docx

上传人:b****6 文档编号:8179782 上传时间:2023-01-29 格式:DOCX 页数:8 大小:78.78KB
下载 相关 举报
嵌入式UDP实验报告.docx_第1页
第1页 / 共8页
嵌入式UDP实验报告.docx_第2页
第2页 / 共8页
嵌入式UDP实验报告.docx_第3页
第3页 / 共8页
嵌入式UDP实验报告.docx_第4页
第4页 / 共8页
嵌入式UDP实验报告.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

嵌入式UDP实验报告.docx

《嵌入式UDP实验报告.docx》由会员分享,可在线阅读,更多相关《嵌入式UDP实验报告.docx(8页珍藏版)》请在冰豆网上搜索。

嵌入式UDP实验报告.docx

嵌入式UDP实验报告

物理与电子工程学院

《嵌入式系统设计》

设计性实验报告

 

题目UDP通信实验

系别物电学院

年级专业

班级电科学号

学生姓名

指导教师浦炜

实验时间2012.5.17

课题要求

本课题的目的:

1.了解UDP协议的工作原理

2.掌握UDP服务端程序和客户端程序的编写流程

3.熟悉程序的调试方法

运行环境:

ADS环境

正文

一.课题分析

编程实现嵌入式开发平台和计算机之间的UDP通讯。

通过触摸屏进行画图,使其在液晶屏上显示,同时通过网络传输数据,使其在计算机屏幕上显示;由计算机控制清除液晶屏上的图形。

在此基础上,通过小键盘控制在触摸屏上绘制的图形,如按键后控制绘矩形等,通过单击击清屏等功能。

二.系统设计

1.UDP通信原理说明

1)、UDP介绍

UDP协议是英文UserDatagramProtocol的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络应用。

UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。

UDP协议的主要作用是将网络数据流压缩成数据报的形式。

一个典型的数据报就是一个二进制数据的传输单位。

每一个数据报的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。

UDP报头由4个域组成,其中每个域各占用2个字节,具体如下图

(1)所示

(1)用户数据报格式

2)、UDP通信过程

(2)UDP通信过程

2.UDP通信的建立

1)、Socket介绍

从图

(2)网络整体来看,socket是不同主机上应用程序之间的一个虚拟的接口,具有跨平台特性;从程序员角度来看,它是应用程序和网络设备的一个接口,特殊的I/O;从操作系统看,它是一种资源。

如同handle用来描述windows中的窗口等资源,socket用socketdescriptor来标识。

2)、具体介绍socket编程

由前面的叙述可以看出,我们要进行通信就要得到对应的socketdescriptor,一旦得到了,对它进行读写操作就可以了,例如

intread(intfd,char*buf,intlen);

intwrite(intfd,char*buf,intlen);

3)、Socket对IP地址的描述

structsockaddr

{unsignedshortsa_family;/*地址家族2字节*/

charsa_data[14];/*14字节协议地址*/

};

结构中sa_family为套接口的协议族地址类型,例如对于通常的TCP/IP协议(IPv4),它的值是AF_INET;sa_data中存储着具体的协议地址,不同的协议族有不同的地址格式。

sa_data的存储内容往往是包含地址和端口信息,而仅使用一个变量,使用起来不太方便——定义新的Socket地址结构

structsockaddr_in

{shortintsin_family;/*通信类型2字节*/

unsignedshortintsin_port;/*端口,2字节*/

structin_addrsin_addr;/*Internet地址,4字节*/

unsignedcharsin_zero[8];

}

最后的那个元素是填充的空白信息,这样就保持整个结构与sockaddr结构的长度相同。

三.技术实现问题

1.程序分析

1)、主函数---按下

当触屏上按下动作时,为了确保计算机能够收到触摸点就发送两遍触屏点坐标,用MoveTo()函数进行画线如图(3)。

计算机UDP通信窗口可以与开发板相连显示触平板的图形如图(4)

caseTCHSCR_ACTION_DOWN:

scrpoint.x=-1;

sendto(ClientSock_out,(structpoint*)&scrpoint,sizeof(structpoint),0,(structsockaddr*)&servaddr,sizeof(servaddr));

sendto(ClientSock_out,(structpoint*)&scrpoint,sizeof(structpoint),0,(structsockaddr*)&servaddr,sizeof(servaddr));

scrpoint.x=pMsg->WParam&0x0000ffff;

downpoint.x=pMsg->WParam&0x0000ffff;

if(scrpoint.x<1)scrpoint.x=1;

if(scrpoint.x>319)scrpoint.x=319;

scrpoint.y=pMsg->WParam>>16;

downpoint.y=pMsg->WParam>>16;

if(scrpoint.y<1)scrpoint.y=1;

if(scrpoint.y>239)scrpoint.y=239;

sendto(ClientSock_out,(structpoint*)&scrpoint,sizeof(structpoint),0,(structsockaddr*)&servaddr,sizeof(servaddr));

MoveTo(pdc,scrpoint.x,scrpoint.y);//移动

break;

图(3)触摸屏画线

图(4)计算机UDP通信显示

2)、主函数---画同心圆

触摸屏上有单击动作时执行TCHSCR_ACTION_CLICK事件,用Circle()函数以单击点为圆心,以半径为50和100画同心圆。

如图(5)

caseTCHSCR_ACTION_CLICK:

scrpoint.x=pMsg->WParam&0x0000ffff;

if(scrpoint.x<1)scrpoint.x=1;

if(scrpoint.x>319)scrpoint.x=319;

scrpoint.y=pMsg->WParam>>16;

if(scrpoint.y<1)scrpoint.y=1;

if(scrpoint.y>239)scrpoint.y=239;

sendto(ClientSock_out,(structpoint*)&scrpoint,sizeof(structpoint),0,(structsockaddr*)&servaddr,sizeof(servaddr));

Circle(pdc,scrpoint.x,scrpoint.y,100);

Circle(pdc,scrpoint.x,scrpoint.y,50);//画同心圆

break;

图(5)触摸屏画同心圆

3)、主函数---按键下画矩形

在按键抬起的时候判断是否有按键按下,根据OSM_KEY条件没有按键按下时flag==0,有按键按下时flag==1则执行TCHSCR_ACTION_UP事件,在屏幕上根据线条的起始点用DrawRectFrame()画出矩形。

如图(6)

caseTCHSCR_ACTION_UP:

if(key_flag==1)

{

scrpoint.x=pMsg->WParam&0x0000ffff;

if(scrpoint.x<1)scrpoint.x=1;

if(scrpoint.x>319)scrpoint.x=319;

scrpoint.y=pMsg->WParam>>16;

if(scrpoint.y<1)scrpoint.y=1;

if(scrpoint.y>239)scrpoint.y=239;

sendto(ClientSock_out,(structpoint*)&scrpoint,sizeof(structpoint),0,(structsockaddr*)&servaddr,sizeof(servaddr));

DrawRectFrame(pdc,downpoint.x,scrpoint.y,scrpoint.x,downpoint.y);

key_flag=0;}

break;

caseOSM_KEY:

{key_flag=1;}

break;

图(6)触摸屏画矩形

四.总结与体会

UDP通信是嵌入式开发板与计算机之间的通信,从理论课中老师讲述了有关触摸屏的动作与代码编写的相关知识,有单击,双击,移动,按下,抬起等相应动作,之前做过了键盘实验,本次UDP实验中添加了键盘控制画图部分,有关带键盘控制,代码中要添加抬起事件,即TCHSCR_ACTION_UP事件。

实验中出现了一些问题,1.开始将编译好的system.bin文件添加到可移动U盘中,复位后在触摸屏上画线条,但是意想不到的是出现的并不是线条,而是奇怪的图线,这是没有校准的原因,要通过复位后h键进行校准。

2.实验中反复的改代码生成可执行文件,再复位后调用可移动U盘,但是U盘不再显示,后来通过老师的知道,发现大写控制键开着,将输入改成小写就可以了。

实验中触屏所画的图形,例如同心圆,矩形无法在计算机UDP窗口显示出来,开始以为程序有问题,后来回顾老师课上所讲内容才明白是计算机UDP窗口本身没有编写显示圆,矩形以及其他图形的代码。

通过这次的实验,我了解UDP协议的工作原理,掌握UDP服务端程序和客户端程序的编写流程,熟悉了程序的调试方法,学到了更多嵌入式的知识。

设计性实验报告成绩:

指导教师签名:

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

当前位置:首页 > 法律文书 > 判决书

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

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