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

上传人:文库蛋蛋多 文档编号:2388180 上传时间:2023-02-17 格式:DOC 页数:23 大小:1.56MB
返回 下载 相关 举报
基于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页
点击查看更多>>
资源描述

《基于ARM9和Linux操作系统下的TCP套接字通信.doc》由会员分享,可在线阅读,更多相关《基于ARM9和Linux操作系统下的TCP套接字通信.doc(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功能,可以通过网络,让不同的机器、不同的操作系统、可以彼此分享自己的文件。FTP功能,可以从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联系的方式以及使用的操作系统无关。编写的实验程序可以通过建立socket来监听连接的请求,建立连接,进行消息一对一发送,将其移植到S3C2

4、410X微处理器上,利用其UART接口的功能,从而实现TCP通信。 2 基础知识2.1开发环境介绍2.1.1硬件环境 (1)ARM介绍 对于ARM(Advanced RISC Machines),既可认为是一个公司的名字,也可认为是一个公司的名字,也可认为是对一类微处理器的通称,还可认为是一种技术的名字。1991年,ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权IP核的微处理器,即通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统及军用系统等各类产品市场,基于ARM技术的微处理器应用占据了32位RISC微处理器70%以上的

5、市场份额,ARM技术正在渗入到生活中的各个方面。ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,它本身并不直接从事芯片生产,而是靠转让设计许可,由合作公司生产各具特色的芯片。世界各大半导体生产商从ARM公司购买其ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此,既使ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场并被消费者接受,从而更具竞争力。 (2)S3C2410X微处理器介绍 S3C2410X微处理器是

6、一款由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和触摸屏接口、USB主、USB从、SD/MMC卡接口等。现在它广泛应用于PDA、移动通信、路由器、工业控制等领域。2.1.2软件环境 (1)VMware wo

7、rkatation 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上网的,和宿主机之间建立专有的连接,宿主机上一块虚拟网卡,虚拟机上一块虚拟网卡,HOST-ONLY是连接到主机的vmnet1网卡!8是用来NAT上网的,NAT主

8、要是用于宽带连接的,NAT是连接到主机的vmnet8网卡!桥接是连接到主机的物理网卡,等于连接到宿主机所在的交换机,一般是用于局域网,和宿主机有同样的身份和地位,宿主机可以上网的话,虚拟机也可以。2.2.2 NFS NFS就是 Network FileSystem 的缩写,最早之前是由Sun所发展出来的,他最大的功能是可以通过网络,让不同的机器、不同的操作系统、可以彼此分享自己的文件(share file),所以也可以简单的将他看做是一个file server。这个NFS Server可以让你的PC将网络远程的NFS主机分享的目录挂载到本地端的机器当中,所以,在本地端的机器看起来,那个远程主机

9、的目录就好像是自己的partion一样。这里远程的那台给你共享的机器就是server,而你的PC就是client.把网络上的一台电脑当成一个磁盘文件系统使用,譬如,电脑A打开了NFS功能,那么对于同一网络上的电脑B来说,电脑A就是一块硬盘,电脑B访问电脑A的过程就是电脑A把它们之间的连线转换为磁盘的连线,当电脑B读写电脑A的文件时,电脑A自动完成中间和系统、文件系统、硬件驱动的所有过程,直接向电脑B提供文件服务,NFS是依靠现有数据建立新的文件系统。 2.2.3 FTPFTP以它所使用的协议:文件传输协议(File Transfer Protocol)来命名的。正如其名所示:协议的任务是从一台

10、计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联系的方式、以及使用的操作系统无关。假设两台计算机能与FTP协议对话,并且能访问INTERNET,就可以用FTP软件的命令来传输文件。FTP是个非常有用的工具,你可以在任意个可经FTP访问的公共有效的联机数据库或文档中找到你想要的任何东西。全世界现在已有1000多(96年的数据)个FTP文件服务器对所有INTERNET用户开使用,用户可以通过与INTERNET相连的计算机,把自己需要的文件传输过来。2.2.4 Linux 基本命令mount1.作用mount命令的作用是加载文件系统,它的用权限是超级用户或/etc/fstab中允许的使

11、用者。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用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户。2.格式ifconfig -interface options addres

12、star1.作用tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户。2.格式tar 主选项+辅选项 文件或目录2.3 基于Socket的TCP通信Socket在所有网络操作系统和网络应用程序中都是必不可少的,它是网络通信中应用进程和网络协议之间的接口。在Linux操作系统中,socket属于文件系统的一部分,网络通信可以被看作是对文件的读取。这就使得用户对网络的控制像对文件的控制一样方便。在Linux 下开发高性能的网络通信程序, 是充分发挥Linux 网络特性的一个关键因素。Socket 接口是TCP /IP 网络最为通用的API, S

13、ocket 在计算机中提供了一个通信端口, 可以通过这个端口与任何一个具有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操作系统 第一步、对虚拟机进行设置,选择第一个镜像文件,然后根据提示进行安装。 第二步、以下是安装中需要注意的设置步骤,按定制方式设置,如图4-1-1所示: 图 4-1-1 选择安装系

14、统的类型为定制 图 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安装包 右键点击Linux桌面,打开终端,依次输入以下命令(注意有空格): #cd /mnt/cdrom(注:进入到虚拟光驱的文件夹里) #ls(注:查看

15、文件夹里的文件和子文件夹)这个时候出现的“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 VMwareTools-5.5.3-34685.tar.gz(注:解压安装包) #cd vmware-tools-distrib(注:进入解压出来的文件夹里)

16、#./vmware-install.pl(注:执行安装文件) 如果你的Linux中已经安装了所有的X窗口环境和开发工具,上述的安装过程应该比较顺利,在安装过程中,会遇到诸如“In which directory do you want to install your binary files”这类的问题,直接按回车就行了。如遇到诸如带有yes的询问时,输入yes后按回车即可。如遇到诸如带有No的询问时,输入No后按回车即可。(4) 安装完成以后,还会让我们配置分辨率:Do you want to change your guest X resolution?1640x4802800x60031

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

18、卡 ,如图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.168.1.1,测试结果如图4-2-3所示: 图4-2-3 测试桥接结果 4.2.2 配置NFS服务器 (1)设置:开始-系统设置-服务器设

19、置-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设置结果 接着,重新启动nfs服务 /etc/init.d/nfs restart,如图4-2-6所示: 图4-2-6 NFS启动结果 最后,测试

20、连接是否正常 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地址 第三步、关闭主机的防火墙和杀毒软件; 第四步、测试下主机和虚拟机之间是否能进行通信; 第五步、上述步骤若是能ping通,我们要在虚拟机Linux上新建一个用户,如图4-4-9到图4-2-11所示,使主机

21、能通过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所示: 图4-2-13 实现FTP连接 第八步、将桌面上的cross-2.95.3.tar和linux-jx2410.tar.gz压缩包移动到虚拟

22、机Linux用户里,如图4-2-14所示: 图4-2-14 cross-2.95.3.tar移到虚拟机Linux用户里4.2.4 建立交叉编译环境 在 Linux 平台下,要为开发板编译内核,图形界面Qtopia,bootloader,还有其他一些应用程序,均需要交叉编译工具链。之前的系统,要使用不同的编译器版本才能正常编译各个部分,因此要在开发过程不断切换设置,这十分不利于初学者使用,也降低了开发的效率;自从Linux-2.6.29 开始(本开发板所配内核已为最新的Linux-2.6.32.2),我们把交叉编译器统一为arm-linux-gcc-4.3.2,它的安装设置步骤如图4-2-15所

23、示: 图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实验系统基本实验模型 搭建过程及程序测试如下所示: (1) 线路连接如图4-4-1示;(2) 建立超级终端的过程,如图4-4-2到图4-4-4所示: 图 4-4-2 超级

24、终端名称设置 图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 虚拟机与开发板建立了连接 总 结 通过这次实习,在设计方面我感觉自己有了一定的收获。在实习过程中我们相互帮助,团结合作,遇到问题的时候会一起研究,特别是安装Red Hat Linux系统的时候,安装中遇到很多

25、问题,比如刚开始不会选择第二张光盘,安装不了,重新来,第二次安装成功了,可是没有NFS服务器选项,原来是我们没有选择“定制”,所以没有FTP等服务器的软件安装,导致主菜单的网络设置里没有此项。然后就是安装驱动,不懂光盘挂载和解压缩的知识,就到网络上搜相关的内容和查找图书馆的书。对于Socket通信编程的原理和流程,因为我们刚刚学过通信网络编程这门课,所以对TCP通信相当的熟悉,相对减少了我们的实习的工作量,可以让我们有更多的时间学习Linux的知识和编译程序。另外,在连接实习设备ARM实验箱、PC机以及虚拟机的宿主机的时候,我们的组员一起动手,遇到问题共同解决,使我们的实习顺利过关。 实习主要

26、是为了我们今后在工作及业务上能力的提高起到了促进的作用,增强了我们今后的竞争力,为我们能在以后立足增添了一块基石。这次学习丰富了我在这方面的知识,使我们对将来从事设计更好的去面对这些问题。使我向更深的层次迈进,但我也认识到,要想做好这方面的工作单靠这这几天的实习是不行的,还需要我在平时的学习和工作中一点一点的积累,不断丰富自己的经验才行。我面前的路还是很漫长的,需要不断的努力和奋斗才能真正地走好。我坚信通过这一段时间的实习,所获得的实践经验对我终身受益,为实现自我的理想和光明的前程增加了更多信心。还要感谢我们的指导老师,遇到问题会给我们正确的引导和指点,培养了我们的自学能力和专研能力,提高了我们的独立处理问题的能力。参考文献1 陈赜,秦贵和,王磊.ARM9嵌入式技术及Linux高级实践教程.北京:北京航空航天大学出版社,20052 刘峥嵘,张智超,许振山.嵌入式Linux应用开发详解.北京:机械工业出版社,20043 马忠梅,祝烈煌,李善平.ARM & Linux嵌入式系统教程.北京:北京航空航天大学出版社,20084 孙弋.ARM-Linux嵌入式系统开发基础.西安:西安电子科技大学出版社,20085 赵宏伟,刘萍萍,周国梁.ARM系统实践教程.长春:吉林大学出版社,2008

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号