基于ARM9和Linux操作系统下的TCP套接字通信Word格式文档下载.docx
《基于ARM9和Linux操作系统下的TCP套接字通信Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于ARM9和Linux操作系统下的TCP套接字通信Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。
4.2.4建立交叉编译环境15
4.3程序设计16
4.4实习平台搭建17
总结21
参考文献22
1功能描述
1.1课题背景
传统的数据传输和通讯,需要铺设专用的介质和电缆。
通过前端的传感机器采集数据信息,并通过相关的通讯协议进行数据传输。
比如我们经常使用的CAN,485总线等。
这些总线和协议需要自己定制,硬件设备需要自己设计开发,面向的对象不同,解决的设计问题不同,主要面向专业设计开发,由于技术上的门槛,普通人元很难理解和使用。
基于嵌入式系统的通信设计,设计开发网络应用产品具有重要的意义。
(1)嵌入式通信设计为终端设备网络化提供了保障;
(2)嵌入式通信设计技术为工业控制领域设备的发展提供动力;
(3)嵌入式通信设计为家庭生活的智能化提供了技术支持。
1.2课题意义
本次实习整个系统包括RedHatLinux9虚拟机系统,再此基础上设置与宿主机的桥接,实现基于公共的链路层协议将两个通信网络互连,并基于链路地址选择要传递的数据的过程。
实现NFS功能,可以通过网络,让不同的机器、不同的操作系统、可以彼此分享自己的文件。
FTP功能,可以从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联系的方式以及使用的操作系统无关。
编写的实验程序可以通过建立socket来监听连接的请求,建立连接,进行消息一对一发送,将其移植到S3C2410X微处理器上,利用其UART接口的功能,从而实现TCP通信。
2基础知识
2.1开发环境介绍
2.1.1硬件环境
(1)ARM介绍
对于ARM(AdvancedRISCMachines),既可认为是一个公司的名字,也可认为是一个公司的名字,也可认为是对一类微处理器的通称,还可认为是一种技术的名字。
1991年,ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。
目前,采用ARM技术知识产权IP核的微处理器,即通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统及军用系统等各类产品市场,基于ARM技术的微处理器应用占据了32位RISC微处理器70%以上的市场份额,ARM技术正在渗入到生活中的各个方面。
ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,它本身并不直接从事芯片生产,而是靠转让设计许可,由合作公司生产各具特色的芯片。
世界各大半导体生产商从ARM公司购买其ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。
目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此,既使ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场并被消费者接受,从而更具竞争力。
(2)S3C2410X微处理器介绍
S3C2410X微处理器是一款由Samsung公司为手持设备涉及到低损耗、高集成度的基于ARM920T核的微处理器。
为了降低系统总成本和减少外围部件,这款芯片中还集成了一下部件:
16KB指令Cache、16KB数据Cache、MMU、外围存储器控制器、LCD控制器(STN和TFT)、NANDFlash控制器、4个DMA通道、3个UART通道、1个I2C总线控制器、1个I2S总线控制器,以及PWM定时器和一个内部定时器、通用I/O口、实时时钟、8通道10位ADC和触摸屏接口、USB主、USB从、SD/MMC卡接口等。
现在它广泛应用于PDA、移动通信、路由器、工业控制等领域。
2.1.2软件环境
(1)VMwareworkatation7.1.2
(2)RedHatLinux9操作系统
Linux是的强大功能体现在服务器级的用途上。
比如说运行数据库:
Oracle,DB2,MySQL,webserver,mailserver,router,firewall。
2.2网络配置
2.2.1桥接
上网常用的方法总共有三种:
桥接,HOST-ONLY,NAT,我们在虚拟机中安装了操作系统后,网上邻居会出现两个虚拟的网卡,其中1是用来HOST-ONLY上网的,和宿主机之间建立专有的连接,宿主机上一块虚拟网卡,虚拟机上一块虚拟网卡,HOST-ONLY是连接到主机的vmnet1网卡!
8是用来NAT上网的,NAT主要是用于宽带连接的,NAT是连接到主机的vmnet8网卡!
桥接是连接到主机的物理网卡,等于连接到宿主机所在的交换机,一般是用于局域网,和宿主机有同样的身份和地位,宿主机可以上网的话,虚拟机也可以。
2.2.2NFS
NFS就是NetworkFileSystem的缩写,最早之前是由Sun所发展出来的,他最大的功能是可以通过网络,让不同的机器、不同的操作系统、可以彼此分享自己的文件(sharefile),所以也可以简单的将他看做是一个fileserver。
这个NFSServer可以让你的PC将网络远程的NFS主机分享的目录挂载到本地端的机器当中,所以,在本地端的机器看起来,那个远程主机的目录就好像是自己的partion一样。
这里远程的那台给你共享的机器就是server,而你的PC就是client.
把网络上的一台电脑当成一个磁盘文件系统使用,譬如,电脑A打开了NFS功能,那么对于同一网络上的电脑B来说,电脑A就是一块硬盘,电脑B访问电脑A的过程就是电脑A把它们之间的连线转换为磁盘的连线,当电脑B读写电脑A的文件时,电脑A自动完成中间和系统、文件系统、硬件驱动的所有过程,直接向电脑B提供文件服务,NFS是依靠现有数据建立新的文件系统。
2.2.3FTP
FTP以它所使用的协议:
文件传输协议(FileTransferProtocol)来命名的。
正如其名所示:
协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联系的方式、以及使用的操作系统无关。
假设两台计算机能与FTP协议对话,并且能访问INTERNET,就可以用FTP软件的命令来传输文件。
FTP是个非常有用的工具,你可以在任意个可经FTP访问的公共有效的联机数据库或文档中找到你想要的任何东西。
全世界现在已有1000多(96年的数据)个FTP文件服务器对所有INTERNET用户开使用,用户可以通过与INTERNET相连的计算机,把自己需要的文件传输过来。
2.2.4Linux基本命令
mount
1.作用
mount命令的作用是加载文件系统,它的用权限是超级用户或/etc/fstab中允许的使用者。
2.格式
mount-a[-fv][-tvfstype][-n][-rw][-F]devicedir
mkdir
mkdir命令的作用是建立名称为dirname的子目录,与MSDOS下的md命令类似,它的使用权限是所有用户。
mkdir[options]目录名
ls
ls命令用于显示目录内容,类似DOS下的dir命令,它的使用权限是所有用户。
ls[options][filename]
ifconfig
ifconfig用于查看和更改网络接口的地址和参数,包括IP地址、网络掩码、广播地址,使用权限是超级用户。
ifconfig-interface[options]address
tar
tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户。
tar[主选项+辅选项]文件或目录
2.3基于Socket的TCP通信
Socket在所有网络操作系统和网络应用程序中都是必不可少的,它是网络通信中应用进程和网络协议之间的接口。
在Linux操作系统中,socket属于文件系统的一部分,网络通信可以被看作是对文件的读取。
这就使得用户对网络的控制像对文件的控制一样方便。
在Linux下开发高性能的网络通信程序,是充分发挥Linux网络特性的一个关键因素。
Socket接口是TCP/IP网络最为通用的API,Socket在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有Socket接口的计算机通信。
3系统设计
整个系统的设计流程图如图3-1所示:
图3-1系统流程图
4实验
4.1实验准备
4.1.1VMwareworkatation7.1.2的安装
4.1.2建立虚拟机
第一步、打开软件VMwareworkatation7.1.2
第二步、选择新建虚拟机
4.1.3在虚拟机上安装RHL9操作系统
第一步、对虚拟机进行设置,选择第一个镜像文件,然后根据提示进行安装。
第二步、以下是安装中需要注意的设置步骤,按定制方式设置,如图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界面左侧中的虚拟系统,选择“InstallVMwareTools”,如图4-1-6所示:
图4-1-6选择安装驱动
(2)找到VMwareTools安装包
右键点击Linux桌面,打开终端,依次输入以下命令(注意有空格):
#cd/mnt/cdrom(注:
进入到虚拟光驱的文件夹里)
#ls(注:
查看文件夹里的文件和子文件夹)
这个时候出现的“VMwareTools-8.1.4-227600.tar.gz”即安装包名字,
记住它,稍后将会用到。
(3)移动安装包,然后解压安装
在刚刚的终端中,继续输入一下命令:
#cd/(注:
回到根目录)
#cp/mnt/cdrom/VMwareTools-5.5.3-34685.tar.gz/tmp(注:
将安装包复制到tmp文件夹)
#cd/tmp(注:
进入tmp文件夹里)
#tarzxfVMwareTools-5.5.3-34685.tar.gz(注:
解压安装包)
#cdvmware-tools-distrib(注:
进入解压出来的文件夹里)
#./vmware-install.pl(注:
执行安装文件)
如果你的Linux中已经安装了所有的X窗口环境和开发工具,上述的安装过程应该比较顺利,在安装过程中,会遇到诸如“Inwhichdirectorydoyouwanttoinstallyourbinaryfiles”这类的问题,直接按回车就行了。
如遇到诸如带有[yes]的询问时,输入yes后按回车即可。
如遇到诸如带有[No]的询问时,输入No后按回车即可。
(4)安装完成以后,还会让我们配置分辨率:
DoyouwanttochangeyourguestXresolution?
[1]640x480
[2]800x600
[3]1024x768
......
我的机器能支持1024x768,选择的是3,自己根据自己机器的情况来决定。
设置分辨率,能使得屏幕在全屏显示下更清晰漂亮
注意,这的分辨率适用于全屏显示,
很多人可能习惯用窗口模式来操作虚拟系统(比如我),
那么就应该把分辨率设置得小些,比如800x600。
至此,VMwareTools就安装成功了,
(5)需要重启一下虚拟机,使配置生效。
4.2网络环境搭建
4.2.1网络配置
(1)虚拟机->
设置->
虚拟机设置,将网络适配器设置为自定义,并指定虚拟网络为VMnet0,如图4-2-1所示:
图4-2-1虚拟机设置
(2)编辑->
编辑虚拟网络->
设置VMnet0为桥接方式,并且指定其桥接的网卡,如图4-2-2所示:
图4-2-2选择桥接网卡
(3)RedHatIP配置
开始->
系统设置->
网络,双击eth0配置IP信息如下:
地址:
192.168.1.160
子网掩码:
255.255.255.0
默认网关地址:
192.168.1.1
DNS:
192.168.1.1
(注意:
在此更改IP有可能不生效,在终端里改ifconfigeth0192.168.1.160)
(4)点击激活
(5)测试网络连接是否正常
1)打开网页
2)Ping192.168.1.1,测试结果如图4-2-3所示:
图4-2-3测试桥接结果
4.2.2配置NFS服务器
(1)设置:
开始->
服务器设置->
NFS服务器打开配置对话框;
(2)添加NFS共享
首先要建立目录/home/jason/nfs,代码如下:
#cd/home
#ls
#mkdirjason
#cs
#cd/home/jason
#mkdirnfs
其次,设置目录\home\jason\nfs,设置能够访问的主机设置为*,表示任何主机都可以访问,基本权限设置读/写,结果如图4-2-4所示:
图4-2-4NFS共享设置
图4-2-5NFS设置结果
接着,重新启动nfs服务/etc/init.d/nfsrestart,如图4-2-6所示:
图4-2-6NFS启动结果
最后,测试连接是否正常mount192.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所示,使主机能通过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压缩包移动到虚拟机Linux用户里,如图4-2-14所示:
图4-2-14cross-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所示:
图4-2-15交叉编译软件解压安装
直接解压!
将虚拟机Linux用户里面的交叉编译压缩包进行解压,解压结果如图4-2-16所示:
图4-2-16cross-2.95.3.tar安装结果
4.3程序设计
程序设计流程图如图4-3-1所示:
图4-3-1客户与服务器通信建立过程
4.4实习平台搭建
JXARM9-2410ARM实验系统基本实验模型如图4-4-1所示:
图4-4-1JXARM9-2410ARM实验系统基本实验模型
搭建过程及程序测试如下所示:
(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-5PCping虚拟机
(4)虚拟机与开发板ping通,如图4-4-6所示:
图4-4-6虚拟机与开发板ping通
(5)运行TCP程序结果如图4-4-7、4-4-8所示:
图4-4-7超级终端接收到连接
图4-4-8虚拟机与开发板建立了连接
总结
通过这次实习,在设计方面我感觉自己有了一定的收获。
在实习过程中我们相互帮助,团结合作,遇到问题的时候会一起研究,特别是安装RedHatLinux系统的时候,安装中遇到很多问题,比如刚开始不会选择第二张光盘,安装不了,重新来,第二次安装成功了,可是没有NFS服务器选项,原来是我们没有选择“定制”,所以没有FTP等服务器的软件安装,导致主菜单的网络设置里没有此项。
然后就是安装驱动,不懂光盘挂载和解压缩的知识,就到网络上搜相关的内容和查找图书馆的书。
对于Socket通信编程的原理和流程,因为我们刚刚学过通信网络编程这门课,所以对TCP通信相当的熟悉,相对减少了我们的实习的工作量,可以让我们有更多的时间学习Linux的知识和编译程序。
另外,在连接实习设备ARM实验箱、PC机以及虚拟机的宿主机的时候,我们的组员一起动手,遇到问题共同解决,使我们的实习顺利过关。
实习主要是为了我们今后在工作及业务上能力的提高起到了促进的作用,增强了我们今后的竞争力,为我们能在以后立足增添了一块基石。
这次学习丰富了我在这方面的知识,使我们对将来从事设计更好的去面对这些问题。
使我向更深的层次迈进,但我也认识到,要想做好这方面的工作单靠这这几天的实习是不行的,还需要我在平时的学习和工作中一点一点的积累,不断丰富自己的经验才行。
我面前的路还是很漫长的,需要不断的努力和奋斗才能真正地走好。
我坚信通过这一段时间的实习,所获得的实践经验对我终身受益,为实现自我的理想和光明的前程增加了更多信心。
还要感谢我们的指导老师,遇到问题会给我们正确的引导和指点,培养了我们的自学能力和专研能力,提高了我们的独立处理问题的能力。
参考文献
1陈赜,秦贵和,王磊.ARM9嵌入式技术及Linux高级实践教程.北京:
北京航空航天大学出版社,2005
2刘峥嵘,张智超,许振山.嵌入式Linux应用开发详解.北京:
机械工业出版社,2004
3马忠梅,祝烈煌,李善平.ARM&
Linux嵌入式系统教程.北京:
北京航空航天大学出版社,2008
4孙弋.ARM-Linux嵌入式系统开发基础.西安:
西安电子科技大学出版社,2008
5赵宏伟,刘萍萍,周国梁.ARM系统实践教程.长春:
吉林大学出版社,2008