收藏 分销(赏)

基于ARM9和Linux操作系统下的TCP套接字通信.doc

上传人:pc****0 文档编号:6034228 上传时间:2024-11-26 格式:DOC 页数:23 大小:1.58MB
下载 相关 举报
基于ARM9和Linux操作系统下的TCP套接字通信.doc_第1页
第1页 / 共23页
基于ARM9和Linux操作系统下的TCP套接字通信.doc_第2页
第2页 / 共23页
基于ARM9和Linux操作系统下的TCP套接字通信.doc_第3页
第3页 / 共23页
基于ARM9和Linux操作系统下的TCP套接字通信.doc_第4页
第4页 / 共23页
基于ARM9和Linux操作系统下的TCP套接字通信.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、目录1 功能描述11.1 课题背景11.2 课题意义12 基础知识12.1开发环境介绍12.1.1硬件环境12.1.2软件环境22.2 网络配置22.2.1 桥接22.2.2 NFS32.2.3 FTP32.2.4 Linux 基本命令32.3 基于Socket的TCP通信43 系统设计4整个系统的设计流程图如图3-1所示:4图3-1 系统流程图54 实验54.1 实验准备54.1.1 VMware workatation 7.1.2的安装54.1.2 建立虚拟机54.1.3 在虚拟机上安装RHL9操作系统54.1.4 驱动的安装74.2 网络环境搭建94.2.1网络配置94.2.2 配置NF

2、S服务器104.2.3 配置FTP服务器124.2.4 建立交叉编译环境154.3 程序设计164.4 实习平台搭建17总 结21参考文献221 功能描述1.1 课题背景 传统的数据传输和通讯,需要铺设专用的介质和电缆。通过前端的传感机器采集数据信息,并通过相关的通讯协议进行数据传输。比如我们经常使用的CAN,485总线等。这些总线和协议需要自己定制,硬件设备需要自己设计开发,面向的对象不同,解决的设计问题不同,主要面向专业设计开发,由于技术上的门槛,普通人元很难理解和使用。基于嵌入式系统的通信设计,设计开发网络应用产品具有重要的意义。(1)嵌入式通信设计为终端设备网络化提供了保障;(2) 嵌

3、入式通信设计技术为工业控制领域设备的发展提供动力;(3)嵌入式通信设计为家庭生活的智能化提供了技术支持。1.2 课题意义 本次实习整个系统包括Red Hat Linux 9虚拟机系统,再此基础上设置与宿主机的桥接,实现基于公共的链路层协议将两个通信网络互连,并基于链路地址选择要传递的数据的过程。实现NFS功能,可以通过网络,让不同的机器、不同的操作系统、可以彼此分享自己的文件。套接字(sockets)是支TCP/IP协议的网络通信的基本操作单元。可以将套接字 看作不同主机间的进程进行双向通信的端点。它构成了在单个主机内及整个网际间的编程 界面。一般来说,跨机应用进程之间要在网络环境下进行通信必

4、须要在网络的每一端都要 建立一个套接字,两个套接字之间是可以建立连接的,也是可以无连接的并通过对套接字的“读”、“写”操作实现网络通信功能。类似于UNIX系统中的I/O概念像文件那样有打开读写关闭的方 式。 2 基础知识2.1开发环境介绍2.1.1硬件环境 (1)ARM介绍 对于ARM(Advanced RISC Machines),既可认为是一个公司的名字,也可认为是一个公司的名字,也可认为是对一类微处理器的通称,还可认为是一种技术的名字。1991年,ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权IP核的微处理器,即通常所说的ARM微处理器,已遍及工业控制

5、、消费类电子产品、通信系统、网络系统、无线系统及军用系统等各类产品市场,基于ARM技术的微处理器应用占据了32位RISC微处理器70%以上的市场份额,ARM技术正在渗入到生活中的各个方面。ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,它本身并不直接从事芯片生产,而是靠转让设计许可,由合作公司生产各具特色的芯片。世界各大半导体生产商从ARM公司购买其ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此,既使ARM技术获得更多的第三方工具、制造、软件的支持

6、,又使整个系统成本降低,使产品更容易进入市场并被消费者接受,从而更具竞争力。 (2)S3C2410X微处理器介绍 S3C2410X微处理器是一款由Samsung公司为手持设备涉及到低损耗、高集成度的基于ARM920T核的微处理器。为了降低系统总成本和减少外围部件,这款芯片中还集成了一下部件:16KB指令Cache、16KB数据 Cache、MMU、外围存储器控制器、LCD控制器(STN和TFT)、NAND Flash控制器、4个DMA通道、3个UART通道、1个I2C总线控制器、1个I2S总线控制器,以及PWM定时器和一个内部定时器、通用I/O口、实时时钟、8通道10位ADC和触摸屏接口、US

7、B主、USB从、SD/MMC卡接口等。现在它广泛应用于PDA、移动通信、路由器、工业控制等领域。2.1.2软件环境 (1)VMware workatation 7.1.2 (2)Red Hat Linux 9操作系统 Linux是的强大功能体现在服务器级的用途上。比如说运行数据库:Oracle,DB2,MySQL,webs erver,mail server,router,firewall。2.2 网络配置2.2.1 桥接 上网常用的方法总共有三种:桥接,HOST-ONLY,NAT,我们在虚拟机中安装了操作系统后,网上邻居会出现两个虚拟的网卡,其中1是用来HOST-ONLY上网的,和宿主机之间

8、建立专有的连接,宿主机上一块虚拟网卡,虚拟机上一块虚拟网卡,HOST-ONLY是连接到主机的vmnet1网卡!8是用来NAT上网的,NAT主要是用于宽带连接的,NAT是连接到主机的vmnet8网卡!桥接是连接到主机的物理网卡,等于连接到宿主机所在的交换机,一般是用于局域网,和宿主机有同样的身份和地位,宿主机可以上网的话,虚拟机也可以。2.2.2 NFS NFS就是 Network FileSystem 的缩写,最早之前是由Sun所发展出来的,他最大的功能是可以通过网络,让不同的机器、不同的操作系统、可以彼此分享自己的文件(share file),所以也可以简单的将他看做是一个file serv

9、er。这个NFS Server可以让你的PC将网络远程的NFS主机分享的目录挂载到本地端的机器当中,所以,在本地端的机器看起来,那个远程主机的目录就好像是自己的partion一样。这里远程的那台给你共享的机器就是server,而你的PC就是client.把网络上的一台电脑当成一个磁盘文件系统使用,譬如,电脑A打开了NFS功能,那么对于同一网络上的电脑B来说,电脑A就是一块硬盘,电脑B访问电脑A的过程就是电脑A把它们之间的连线转换为磁盘的连线,当电脑B读写电脑A的文件时,电脑A自动完成中间和系统、文件系统、硬件驱动的所有过程,直接向电脑B提供文件服务,NFS是依靠现有数据建立新的文件系统。 2.

10、2.3 FTPFTP以它所使用的协议:文件传输协议(File Transfer Protocol)来命名的。正如其名所示:协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联系的方式、以及使用的操作系统无关。假设两台计算机能与FTP协议对话,并且能访问INTERNET,就可以用FTP软件的命令来传输文件。FTP是个非常有用的工具,你可以在任意个可经FTP访问的公共有效的联机数据库或文档中找到你想要的任何东西。全世界现在已有1000多(96年的数据)个FTP文件服务器对所有INTERNET用户开使用,用户可以通过与INTERNET相连的计算机,把自己需要的文件传输过来

11、。2.2.4 Linux 基本命令mount1.作用mount命令的作用是加载文件系统,它的用权限是超级用户或/etc/fstab中允许的使用者。2.格式mount a fv t vfstype n rw F device dirmkdir1.作用mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似,它的使用权限是所有用户。2.格式mkdir options 目录名ls1.作用ls命令用于显示目录内容,类似DOS下的dir命令,它的使用权限是所有用户。2.格式ls optionsfilenameifconfig1.作用ifconfig用于查看和更改网络接口的地

12、址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户。2.格式ifconfig -interface options addresstar1.作用tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户。2.格式tar 主选项+辅选项 文件或目录2.3 基于Socket的TCP通信Socket在所有网络操作系统和网络应用程序中都是必不可少的,它是网络通信中应用进程和网络协议之间的接口。在Linux操作系统中,socket属于文件系统的一部分,网络通信可以被看作是对文件的读取。这就使得用户对网络的控制像对文件的控制一样方便。在Linux

13、 下开发高性能的网络通信程序, 是充分发挥Linux 网络特性的一个关键因素。Socket 接口是TCP /IP 网络最为通用的API, Socket 在计算机中提供了一个通信端口, 可以通过这个端口与任何一个具有Socket 接口的计算机通信。3 系统设计 整个系统的设计流程图如图3-1所示: 图3-1 系统流程图4 实验4.1 实验准备4.1.1 VMware workatation 7.1.2的安装4.1.2 建立虚拟机 第一步、 打开软件VMware workatation 7.1.2 第二步、选择新建虚拟机4.1.3 在虚拟机上安装RHL9操作系统 第一步、对虚拟机进行设置,选择第一

14、个镜像文件,然后根据提示进行安装。 第二步、以下是安装中需要注意的设置步骤,按定制方式设置,如图4-1-1所示: 图 4-1-1 选择安装系统的类型为定制 图 4-1-2 选择需要安装的软件 图4-1-3 更换第二张光盘进入虚拟机设置,将镜像文件设置为第二个镜像。第五步.安装成功后,登录,如图4-1-4所示 图 4-1-4 更换第三张光盘 图 4-1-5 系统安装后的桌面 4.1.4 驱动的安装(1) 鼠标右键点击VMware界面左侧中的虚拟系统,选择“Install VMware Tools”,如图4-1-6所示: 图 4-1-6 选择安装驱动(2)找到VMware Tools安装包 右键点

15、击Linux桌面,打开终端,依次输入以下命令(注意有空格): #cd /mnt/cdrom(注:进入到虚拟光驱的文件夹里) #ls(注:查看文件夹里的文件和子文件夹)这个时候出现的“VMware Tools-8.1.4-227600.tar.gz”即安装包名字,记住它,稍后将会用到。(3)移动安装包,然后解压安装 在刚刚的终端中,继续输入一下命令: #cd /(注:回到根目录) #cp /mnt/cdrom/VMwareTools-5.5.3-34685.tar.gz /tmp(注:将安装包复制到tmp文件夹) #cd /tmp(注:进入tmp文件夹里) #tar zxf VMwareTool

16、s-5.5.3-34685.tar.gz(注:解压安装包) #cd vmware-tools-distrib(注:进入解压出来的文件夹里) #./vmware-install.pl(注:执行安装文件) 如果你的Linux中已经安装了所有的X窗口环境和开发工具,上述的安装过程应该比较顺利,在安装过程中,会遇到诸如“In which directory do you want to install your binary files”这类的问题,直接按回车就行了。如遇到诸如带有yes的询问时,输入yes后按回车即可。如遇到诸如带有No的询问时,输入No后按回车即可。(4) 安装完成以后,还会让我们

17、配置分辨率:Do you want to change your guest X resolution?1640x4802800x60031024x768. .我的机器能支持1024x768,选择的是3,自己根据自己机器的情况来决定。设置分辨率,能使得屏幕在全屏显示下更清晰漂亮注意,这的分辨率适用于全屏显示,很多人可能习惯用窗口模式来操作虚拟系统(比如我),那么就应该把分辨率设置得小些,比如800x600。至此,VMware Tools就安装成功了,(5) 需要重启一下虚拟机,使配置生效。4.2 网络环境搭建4.2.1网络配置(1)虚拟机-设置-虚拟机设置 ,将网络适配器设置为自定义,并指定虚

18、拟网络为VMnet0,如图4-2-1所示: 图4-2-1 虚拟机设置(2)编辑-编辑虚拟网络-设置VMnet0为桥接方式,并且指定其桥接的网卡 ,如图4-2-2所示: 图4-2-2 选择桥接网卡(3)Red Hat IP配置 开始-系统设置-网络,双击eth0配置IP信息如下: 地址:192.168.1.160 子网掩码:255.255.255.0 默认网关地址:192.168.1.1 DNS:192.168.1.1 (注意:在此更改IP有可能不生效,在终端里改ifconfig eth0 192.168.1.160)(4)点击激活(5)测试网络连接是否正常 1)打开网页 2)Ping 192.

19、168.1.1,测试结果如图4-2-3所示: 图4-2-3 测试桥接结果 4.2.2 配置NFS服务器 (1)设置:开始-系统设置-服务器设置-NFS服务器打开配置对话框; (2)添加NFS共享 首先要建立目录 /home/jason/nfs,代码如下: #cd /home #ls #mkdir jason #cd /home # cs #cd /home/jason #mkdir nfs #ls 其次,设置目录 homejasonnfs,设置能够访问的主机设置为*, 表示任何主机都可以访问,基本权限设置读/写,结果如图4-2-4所示: 图4-2-4 NFS共享设置 图4-2-5 NFS设置结

20、果 接着,重新启动nfs服务 /etc/init.d/nfs restart,如图4-2-6所示: 图4-2-6 NFS启动结果 最后,测试连接是否正常 mount 192.168.0.120:/home/Jason/nfsboot /home/tmp。4.2.3 配置FTP服务器 第一步、配置TFTP服务器 ,勾选tftp服务,并重启服务,如图4-2-7所示: 图 4-2-7 勾选tftp服务 第二步、配置本机的IP地址,要与虚拟机Linux的IP在同一个网段,这样主机就能就能与虚拟机进行通信; 图4-2-8 配置本机的IP地址 第三步、关闭主机的防火墙和杀毒软件; 第四步、测试下主机和虚拟

21、机之间是否能进行通信; 第五步、上述步骤若是能ping通,我们要在虚拟机Linux上新建一个用户,如图4-4-9到图4-2-11所示,使主机能通过ftp访问,方便之间实现文件的共享。若是上面步骤中,还不能ping通,检查下自己电脑的IP和虚拟机Linux的IP是否在同一网段,还有看看主机的防火墙有没有关闭等等。 图4-2-9 进入FTP设置 图4-2-10 创建新用户 图4-2-11 用户创建成功 第六步、使用软件FlashFXP在主机建立ftp,如图4-4-6所示: 图4-2-12 创建FTP站点 第七步、输入虚拟机用户名、虚拟机Linux的IP以及密码,之后建立连接,如图4-2-13所示:

22、 图4-2-13 实现FTP连接 第八步、将桌面上的cross-2.95.3.tar和linux-jx2410.tar.gz压缩包移动到虚拟机Linux用户里,如图4-2-14所示: 图4-2-14 cross-2.95.3.tar移到虚拟机Linux用户里4.2.4 建立交叉编译环境 在 Linux 平台下,要为开发板编译内核,图形界面Qtopia,bootloader,还有其他一些应用程序,均需要交叉编译工具链。之前的系统,要使用不同的编译器版本才能正常编译各个部分,因此要在开发过程不断切换设置,这十分不利于初学者使用,也降低了开发的效率;自从Linux-2.6.29 开始(本开发板所配内

23、核已为最新的Linux-2.6.32.2),我们把交叉编译器统一为arm-linux-gcc-4.3.2,它的安装设置步骤如图4-2-15所示: 图4-2-15 交叉编译软件解压安装 直接解压!将虚拟机Linux用户里面的交叉编译压缩包进行解压 ,解压结果如图4-2-16所示: 图4-2-16 cross-2.95.3.tar 安装结果 4.3 程序设计 程序设计流程图如图4-3-1所示: 图4-3-1 客户与服务器通信建立过程4.4 实习平台搭建 JXARM9-2410 ARM实验系统基本实验模型如图4-4-1所示: 图4-4-1 JXARM9-2410 ARM实验系统基本实验模型 搭建过程

24、及程序测试如下所示: (1) 线路连接如图4-4-1示;(2) 建立超级终端的过程,如图4-4-2到图4-4-4所示: 图 4-4-2 超级终端名称设置 图4-4-3 超级终端端口选择 图4-4-4 超级终端端口设置(3)Linux的宿主机PC与Linux虚拟机桥接成功,如图4-4-5所示: 图4-4-5 PC ping 虚拟机(4) 虚拟机与开发板ping通,如图4-4-6所示: 图4-4-6 虚拟机与开发板ping通(5) 运行TCP程序结果如图4-4-7、4-4-8所示: 图4-4-7 超级终端接收到连接 图4-4-8 虚拟机与开发板建立了连接 总 结 通过这次实习,我非常喜欢因为我自己

25、课余时间内就喜欢玩玩linux。我的pc操作系统是ubuntu所以对于redhat适应起来非常的快。对于linux命令也非常的熟悉。但是对于arm9的开发还是比较生疏,对于c的socket通信也不是太了解,之前做过基于python的套接字通信,对于Socket通信编程的原理和流程还是比较了解,所以通过上网查阅了一些资料还是能非常快的理解c语言的套接字通信。 Linux和arm是学习嵌入式知识成为嵌入式工程师所必备的知识。这次学习丰富了我在这方面的知识,使我们对将来从事设计更好的去面对这些问题。很多理论知识只有在实践中你才能够对他有更加深刻的认识我会沿着这条路一直学习下去。我觉得这次课程设计除了

26、带给了我嵌入式方面的知识更多的是让我们学到了如何学习的方法。之前对于应用软件开发的学习比较多,接下来学习嵌入式开发的时候我应该要注重基础脚踏实地多实践。参考文献1 陈赜,秦贵和,王磊.ARM9嵌入式技术及Linux高级实践教程.北京:北京航空航天大学出版社,20052 刘峥嵘,张智超,许振山.嵌入式Linux应用开发详解.北京:机械工业出版社,20043 马忠梅,祝烈煌,李善平.ARM & Linux嵌入式系统教程.北京:北京航空航天大学出版社,20084 孙弋.ARM-Linux嵌入式系统开发基础.西安:西安电子科技大学出版社,20085 赵宏伟,刘萍萍,周国梁.ARM系统实践教程.长春:吉林大学出版社,2008

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服