免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
免费毕业论文请上ARM-Linux环境下UDP协议的通信运用研究摘要:进行UDP协议通信时,发送端和接收端的状态是相对独立的,发送端不与接收端建立连接,而是不停向接收端发送,为了确保不丢失报文,上位机采取了按固定次数重发相同内容报文的机制。这种机制虽然可以有效确保报文不丢失,但大量冗余数据报被发送,网络资源利用率不高。显然重发次数越多,冗余数据报越多,效率越低。要想有效保证数据报准确发送的同时又不产生过多冗余数据报,那么重复发送的次数的确定就成为不足的关键。以下给出一种确定上位机重发次数的策略。关键词:ARM;Linux;交叉编译环境;UDP协议;重发机制;重发次数 UDP协议以其高效性和运用的简单,被广泛运用于嵌入式网络开发中。由于UDP协议的运用简单,在嵌入式设备开发过程中,网络资源的利用率并不高。以下将介绍一个UDP具体项目实验过程,描述ARM-Linux环境的软硬件环境构建过程,并对UDP协议下一种重发方式中上位机的重发次数的确定提出一种可行的策略。1 探讨背景随着嵌入式技术的快速进展,嵌入式设备已经在许多领域取代了传统的微型机设备。本文的选题主要来自于实习期间承接的一项改造项目:某院校特长生评分系统的改造。项目改造目的有:1) 保留原上位机。2) 改用手持式客户端进行显示及评分操作。3)保留原有网络设备。针对要求,我们使用S3C2440作为硬件平台,移植Linux操作系统,并在ARM-Linux环境下探讨了UDP协议的通信过程,进行了上位机与嵌入式系统的UDP协议通信实验及浅析,并给出一种重发机制中的发送次数求法。2 硬件平台介绍S3C2440处理速度达到了400MHZ,具有较高的性价比。为了提高开发效率,我们采用公司自行研制开发的ET-S3C2440开发板。2.1 ET-S3C2440开发板介绍ET-S3C2440是公司自行开发的一款ARM9架构的实验开发板,其结构框图如图1。核心板的主要器件有:32MB2片SDRAM,64MB NORFLASH,512MB NANDFLASH。设计了启动方式可选,通过开关选择以Nandflash或Norflash启动。2.2 实验相关电路说明底板电路主要功能是输入输出以及网络通讯功能。按键输入部分采用扫描方式获得输入,用一个单向地址锁存器和一个双向地址锁存器与地址总线相连,可以通过扫描地址来获得按键输入。LCD采用三星的3.5寸TFT屏作为显示输出设备。网卡芯片选用的是与原设备匹配的10M 的CS8900A,关于CS8900A与S3C2440的硬件连接,有众多资源可供参考,本文不再赘述。3 系统软件平台的构建硬件平台搭建完毕后要将操作系统和运用程序在硬件平台上运行起来。以下是对嵌入式Linux操作系统移植的过程。论文范文 3.1 交叉编译环境的构建Linux 版本的内核可以登录到下载。本文选择的是arm-linux-gcc-4.3.2工具链()在宿主机上进入Linux系统,切换当前目录到工具链所在目录,新建一个arm目录保存解压后的文件(mkdir /user/local/arm)并将arm-linux-gcc-4.3.2解压到这个目录中(tar jxvf arm-linux-gcc-4.3.2 C /user/local/arm)。然后将环境变量$PATH修改一下,让$PATH中包含有arm-linux-gcc所在的目录(编辑/etc/profile 添加语句”export PATH=/user/local/arm/4.3.2/bin:$PATH”),然后reboot一下,这样交叉编译环境就构建好了。3.2 BOOTLOADER的移植vivi是一款相当成熟和相对简单的常用bootloader,我们以vivi为移植原型,将S3C2440所有IO端口寄存器定义添加到头文件2440add.inc,删除部分硬件平台使用不到的代码,最后将修改过的vivi制作成镜像烧录到flash中。13.3 Linux内核移植获取Linux-源代码并解压后,首先修改内核源代码所在目录中的Makefile,将系统架构修改为Arm(ARCH ?=arm ),交叉编译工具修改为arm-linux-gcc (CROSS_COMPILE ?=arm-linux-),修改输入时钟(arch/arm/mach-s3c2440/mach-smdk2440.c中的函数static void _init smdk2440_map_io中,修改s3c24xx_init_clocks(12000000)此处所用晶振为12M)。修改machine名称(在arch/arm/mach-s3c2440/mach-smdk2440.c文件中的函数MACHINE_START( ),修改为MACHINE_START(S3C2440, “自定义机器名”),修改NANDflash分区信息(arch/arm/plat-s3c24xx/common-smdk.c结构体static struct mtd_partition smdk_default_nand_part中保存的是nandflah的分区信息,将其修改为当前使用的分区信息),然后修改nandflash的匹配时间(3c2410_platform_nand_smdk_nand_info smdk_nand_info =)。本文来源: 华融经济学论文网 上述内核源代码修改完成后,还需要对一些设备的驱动进行修改。本文使用的NEC 3.5寸 320240液晶屏,硬件平台使用GPG4脚进行背光制约,需要修改LCD背光(/arch/arm/mach-s3c2440/mach-smdk2440.c中static void _init smdk2440_machine_init(void),将函数中的GPIO口配置为GPG4)。关于CS8900A网卡的驱动移植,相关资源很丰富,本文也不再赘述。本实验中nandflash采用的是yaffs2文件系统,所以打yaffs2文件系统补丁,压缩包为cvs-root.tar.gz。至此,Linux的内核源代码修改工作完成了,下面还需要利用Makefile,进行内核配置。在Linux 内核目录下首先make s3c2410_defconfig使用2410的配置模板来配置2440;然后make menuconfig,这时我们可以在图形化界面中,空格键可转变各个配置选项的被选中状态,根据需要进行配置即可。配置完成后保存好配置,最后进行内核的编译(make dep 建立文件间依赖 make clean 清除编译残留文件make zImage 生成内核压缩镜像文件)。编译过程完成后会在内核目录arch/arm/boot/下生成zImage内核映像文件,将这个镜像文件烧录到flash中,调试检验,经上述修改后的内核工作运行正常。3.4 根文件系统的制作根文件系统是使用busybox-1.13.3来制作完成。下载busybox并解压完成后,修改Makefile中的架构为ARM架构,编译工具为arm-linux-gcc( ARCH ?=arm; CROSS_COMPILE ?=arm-linux-),然后Make menuconfig,通过图形界面对busybox进行配置,然后对busybox进行编译(make CONFIG_PREFIX=/opt/studyarm/rootfs install),在目标目录下会生成目录bin、sbin、usr和文件linuxrc的内容。基本目录结构生成后,应该在目标目录下建立一些未生成的必要的系统目录如dev、etc、lib等,并通过chmod命令转变目录权限为可写。再将一些必要的动态链接库和静态库拷贝到lib下,然后在dev目录下创建设备节点,最后创建该嵌入式Linux系统的初始化配置文件(包括设备列表文件、口令、网络分组组名、HOSTNAME主机名、etc/inittab初始化表单、etc/profile环境变量配置文件、用于系统初始化的.bash脚本文件等)。由于本实验需对网络编程,要求自动初始化CS8900A网卡芯片的IP地址、网关、子网掩码等,所以在开机自启动脚本中加入ifconfig语句,使得开机时自动配置网卡参数。根文件系统构建完成后,使用yaffs2文件系统制作工具mkyaffs2image.tgz,通过命令mkyaffs2image rootfs rootfs.img生成根文件系统镜像,然后将镜像烧写入flash中。4 ARM-Linux环境下的UDP协议通信实验经过上述硬件设计和操作系统移植过程,本文所使用到的实验环境已经构建完毕,经反复调试修改,嵌入式Linux操作系统在平台下运行正常,于是进行UDP协议通信实验。4.1 UDP协议套接字编程基础UDP是一个面向数据报和无连接的简单传输层协议,它不像TCP那样通过握手过程建立服务器与客户端的连接才可以工作。在网络通信质量较好的情况下,UDP体现出高效率,这适合于传送少量报文的运用。 linux系统是通过套接字结构来进行网络编程的,运用程序通过对套接字的几个函数调用,会返回一个用于通信的套接字描述符,而Linux运用程序在进行任何形式的I/O操作时,程序实际上是在读写一个文件描述符。因此Linux下的套接字编程,可以看成是对普通文件描述符的操作,这些操作与被使用的硬件平台无关,这是linux设备无关性的优点。UDP协议的通信模型如图3所示。在上述流程中,客户端所收到的报文被存储在缓冲区中,recvfrom()函数返回了报文存储缓冲区的首地址,我们可以很方便地对这个首地址进行数组操作,以而实现对报文的解码。4.2 上位机报文结构及重发机制浅析根据项目要求,上位机软件依然保留,我们使用协议嗅探工具对上位机发送的报文进行了嗅探,得到了上位机报文的结构如表1所示。表1 上位机报文结构上位机发出的每条报文由32个字节组成,第0位为版本信息。第112位为比赛信息和运动员教练信息,是报文的关键信息部分,1322位为服务器端和客户端的IP地址及端口号信息,23位是上位机对客户端的操作指令代码,24位是相关重发机制的代码,30和31两位是CheckSum,用来保证数据传输的正确。上位机采用的重发机制是一种上位机按照固定重发次数多次发送同一关键内容报文的机制,其第24位重发机制位被分为高4位和低4位两部分,高四位的内容是当前发送的报文的索引号,每次发送一条新内容的报文时索引号自增1,索引号的取值范围在0x000xFF范围内循环自增。低四位是重发编号,表示同一索引号的报文正在被第几次重发,固定的重发次数由上位机初始化时设定。4.3 嵌入式客户端的实验程序设计针对报文结构,我们对接收端编写实验程序代码,代码的主要功能是以上位机接收报文,将计算出的CheckSum校验和与收到的校验和比较判断报文是否正确,然后以正确报文中取出主要信息并按照报文中的上位机指令码进行输出。其结构流程图如图3所示。本文来源: 华融经济学论文网 实验程序经编码、调试后在交叉编译环境中交叉编译,生成arm-Linux环境下可执行文件,在目标板上执行。经测试试验程序能够正确接收上位机发来的报文,对报文解码,并能根据上位机命令对关键信息做输出处理。4.4 对上位机重发次数的探讨进行UDP协议通信时,发送端和接收端的状态是相对独立的,发送端不与接收端建立连接,而是不停向接收端发送,为了确保不丢失报文,上位机采取了按固定次数重发相同内容报文的机制。然而这种机制虽然可以有效确保报文不丢失,但是大量冗余数据报被发送,网络资源利用率不高。重发次数越多,冗余数据报越多,效率越低。要想有效保证数据报准确发送的同时又不产生过多冗余数据报,那么重复发送的次数的确定就成为不足的关键。以下给出一种确定上位机重发次数的策略。假设当前网络情况下,每次报文发送被丢失的概率为p,系统允许接收端报文关键内容丢失概率为q,那么如何确定以上重发机制中的重发次数k呢?特殊情况下若报文重发次数为2,分别在每条报文重发机制位注明一个索引号和一个重发编号,发送端发送报文的次序应形如 1.1 ,1.2 ,2.1 ,2.2 ,3.1 ,3.2其中索引号相同的报文关键内容相同,重发编号不同代表同一关键内容报文的不同次发送。因此只有出现连续两次丢失数据报的情况下,报文关键内容才可能丢失。出现连续两次丢失的情况有2种,当x.1 , x.2丢失,此时索引号为x的报文关键信息将全部丢失。当x.2,(x+1). 1丢失,丢失报文的索引号不同,此时不会发生报文关键信息丢失,因此报文关键内容丢失的概率q=p2/2。当报文重发次数为3,依然在每条报文的重发机制位注明索引号和重发号,发送报文的次序应为1.1 ,1.2 ,1.3 ,2.1 ,2.2 ,2.3 ,3.1 ,3.2。只有出现连续3次丢失数据报的情况报文关键信息才可能丢失,列出连续3次丢失报文的情况有3种,当x.1 , x.2 , x.3丢失,此时索引号为x的报文信息全部丢失。当x.2 , x.3 ,(x+1).1或x.3 ,(x+1).1 ,(x+1).2丢失时不影响报文的准确传递。因此此时报文关键内容丢失的概率q=p3/3。推广至一般情况易得当报文重发次数为k时,报文关键内容丢失的概率q=pk/k,移项有kq=pk。于是我们得到求重发次数k的策略1) 根据网络情况获得报文丢失概率p; 2) 根据客户需求取得报文关键内容的允许丢失率范围q;3) 分别作出y=px和y=qx的图像;4) 求得两图像的交点的x坐标,并将x坐标值取整加一即为所求重发次数k。本文实验中,需求方允许报文关键信息丢失概率q=0.0001,我们分别对上位机发送端和下位机接收端收发的报文进行了统计,在某一固定时间段内,上位机共发送报文19665条,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年教育督导问责办法与县域义务教育均衡督导评估试题
- 中国物流集团福建地区2026届秋招半结构化面试题库及思路
- 2026年新就业形态劳动者建会入会工作指南题库
- 2026年外贸单证员面试制单审单技巧
- 2026年控告申诉检察工作指引与群众信访件件有回复及领导包案考核
- 2026年媒体行业面试题目及答案参考
- 2026年环境保护与可持续发展政策测试题
- Q-YQN 45-2019 阀门角行程双指示装置
- 九年级道德与法治试卷分析
- 九江理工职业学院教师招聘考试题库真题2023
- GB/T 35609-2025绿色产品评价防水与密封材料
- 2025-2030中国碳纤维回收行业市场发展趋势与前景展望战略研究报告
- 患者十大安全目标(2025) 2
- 2023年泸县选调机关事业单位工作人员考试真题
- 新建雄安新区至忻州环境影响报告书
- 河南省南阳市邓州市2023-2024学年六年级下学期6月期末英语试题
- 悬挑式卸料平台验收表
- GB/T 754-2024发电用汽轮机参数系列
- 河道整治方案的PPT
- 最全医疗机构基本标准(试行)2023年
- GB/T 14916-2022识别卡物理特性
评论
0/150
提交评论