完整版基于ARM嵌入式系统的Socket通信设计毕业设计Word文档格式.docx
《完整版基于ARM嵌入式系统的Socket通信设计毕业设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《完整版基于ARM嵌入式系统的Socket通信设计毕业设计Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
描述IP地址和端口,用于在两个
论文成功的实现了嵌入式设备的网络接入功能,各个带有网络通讯功能的嵌入式终端可以相互通讯,扩大了和提高了嵌入式设备的应用范围,对嵌入式系统的发展有较大的意义。
关键词:
嵌入式系统;
ARM7TDMI;
socket;
TCPIP
Abstract
Theembeddedsystemisacomplexsystemwiththecomputertechnology,semiconductortechnologyandelectronictechnology.Itwidelyusedinscientificresearch,engineering,nationaldefense,automationandotherfields.Withtherapiddevelopmentofnetworkcommunicationtechnology,ourproductionandliferequirestheterminaltocompletethenetworkcommunicationfunctioninawiderangeofembeddedsystems.ThePaperselecttheARM7TDMIforembeddeddevelopmentplatform,developtheembeddednetworkcommunicationterminal.
Socketisacommunicationchainapplications,.ThepaperselectLPC2200embeddedARMasprocessorarchitecture,withthesystemneed,designtheintegrationbasedontransplantationwithTCPIPprotocolucLinuxembeddedoperatingsystem.Thepaperbuildrelatedfilesystem.aftercuttingandcustomsystems.Onthisbasis,finishedanapplication,andcallthesystemfunctionofSocketCommunications,achieveserverandclientcommunication.
Thepaperachievedthenetworkaccessfunctionsoftheembeddeddevice,theembeddedwithanetworkcommunicationterminalcancommunicatewitheachother,andexpandandimprovetheapplicationrangeofembeddeddevices,and下有:
gcc,arm-elf-gcc,binudls,genromfs,flthdr和elflflt等各种应用工具。
3.1模块化的设计与分析
3.4.1开发板上完成的设计
从项目的整体出发,开发板上应完成的工作包括,移植uClinux到SmartARM2200开发板,移植过程中应配置uClinux,其中包含大部分系统配置,如:
Non-standardserialportsuppor(非标准串口支持)、ftp(文件传输协议)、()侦听连接请求,当远程的客户机使用connect()连接listen()正在监听的端口时,使用accept()处理它。
在accept()处理了连接请求后,将会生成一个新的描述这个连接端口的套接字,利用这个套接字就可以发送和接收数据了。
如果listen()一直没有侦听到连接请求,那么服务器就会在accept()处阻塞,一直到有连接请求到来。
对于客户机任务来说,它也需要先用socket()建立一个通信端口,但是它不必用bind()把他的本地地址绑定到这个端口上,而是直接使用connect()向指定的服务器发送连接请求,如果请求被接受,就可以进行通信了。
1系统详细设计
4.1.uClinux的移植
4.1.1uClinux嵌入式系统的下载
嵌入式系统交叉编译完成后,需要将编译好的嵌入式内核下载到嵌入式开发板上,然后嵌入式开发板才可以运行嵌入式内核。
嵌入式开发板按照以下两种方式进行加载:
(1)直接将编译好的内核下载到嵌入式存贮器中。
由于嵌入式开发板的资源有限,存贮器的容量不够大,这种方式对系统的存贮器要求较高,但是能够带来更高的运行速度,因为系统只直接从嵌入式开发板上启动的,系统直接解压缩内核文件,运行内核。
设计中采用这种方式[23]。
(2)通过地址印象的方式:
由于嵌入式系统的存贮器有限,为了节约资源,在嵌入式存贮器上建立地址印象,内核在执行的时候,首先运行到建立印象的地址,然后通过跳转指令,直接运行存储在嵌入式开发板外围的存贮器上,这样可以节约芯片上的资源,但是带来的问题是,由于跳转,运行的速度会降低,对于运行速度要求不高的开发,可以采取这种方式。
4.1.2根文件系统的建立
内核移植完成后,需要建立嵌入式的根文件系统,根文件是嵌入式系统重要组成部分。
uClinux主要应用于没有MMU单元的嵌入式芯片,主要的目的是节约内存和FLASH。
根据使用场合的不同,根文件系统也有多种选择。
在目前的嵌入式开发过程中,ROMfs是使用最多的文件系统。
ROMfs文件系统比较简单,文功能紧凑,并且是只读的。
在ROMfs中,文件数据是按照顺寻存放的。
uClinux系统可以直接运行,这样做的最大的优势是节约RAM空间,提高运行速度。
因此,根据系统的设计需求,选用ROMfs根文件系统。
当然,为了支持它,在内核的配置中需要内核支持romfs文件系统,并且在内核配置完毕后建立虚拟ram盘,提供用户接口。
4.1.3应用程序库
uClinux运行效率高,是一个小型化的嵌入式Linux系统,这就要求相应的应用程序库具有较高的运行效率。
glibc是gnu发布的libc库,主要是基于C语言的,这个库较大而且比较全面,不适应uClinux。
因此需要进行相应的简化,这就是uClibc应用程序库。
在uClinux中,采取静态连接,目的是为了节约内存和片上资源,满足嵌入式系统的设计需要。
4.2.内核编译
嵌入式系统应用非常专业化,功能模块相对比较单一。
随着uClinux内核版本的升级,内核功能越来越强大,体系结构也越来越复杂。
由于存储空间的限制,为了提高运行性能,必须根据需要对内核进行精简,定制一个符合嵌入式系统的操作平台。
uClinux可以通过裁剪,把不需要的功能模块剪掉,留下应用需要的模块,减少系统运行的复杂想,让系统更加健壮和安全。
同时,嵌入式芯片的资源有限,内存一般都比较小,裁剪后,内核往往会更加简练,所占用的存贮空间也会很小。
由于uClinux的内核采取了模块化的设计方式,设计时可以根据自己的需要,在内核编译的过程中,灵活选择所需要的模块,节约资源,减少代码量,提高内核的运行速度和效率,这也是嵌入式系统的一个明显的优势。
4.2.1uClinux的安装
在.Linux.org上下载版本为2.4的uClinux源码包应的解压缩:
就会看到,在系统的目录盘下,会出现uClinux的源代码目录,也就是uClinux-dist这个文件夹。
由于本系统所用SmartARM2200开发板,这个开发板为ARM7的LPC2200芯片,是philips公司设计制造的。
为了适应这个芯片的特性,登陆philips官方网站,并且查找和下载以下这个文件:
下载后,复制到系统的目录下,输入以下指令,并执行:
执行完成后,在编译uClinux内核是,选择系统的内核配置的时候,可以找到LPC2200的选项。
4.2.2配置uClinux
安装完成后,可以通过makeconfig,makexconfig来配置uClinux,也可以通过makemenuconfig来配置。
各命令使用范围不一样,但效果是相同的,各命令说明如表4.1所示。
表4.1uClinux的配置方式
makeconfig
命令行方式,适用于控制台和图形终端
makemenuconfig
文本菜中方式,适用于控制台和图形终端
makexconfig
-X窗口图形界面方式,仅适用于图形终端
文本菜单这种配置方式,可以在终端控制台上来使用,也可以通过图形终端进行使用。
为了使得配置具有更强的直观性,系统设计采用了文本菜单这种配置方式。
配置uClinux和文件系统具体的操作方法如下[24]:
(1)通过已经建立的终端或者控制台,找到uClinux源代码所在的目录,系统为:
usrsrcuClinux-dist,
执行命令:
cdusrsrcuClinux-dist
(2)如果不是进行第一次编译,需要先清除以前编译产生的辅助文件和目标文件,以保证编译的正确性。
如果是第一次编译则可省略。
makedistclean
(3)通过文本菜单方式配置uClinux
执行了makemenuconfig语句后,将会出现如图4.1配置内核界面。
图4.1配置内核界面
界面中有提示使用“↑”“↓”选择配置模块,使用空格键选择或者取消,使用“→”“←”,选择命令,最后使用回车键Enter执行命令。
第一项可进行厂商产品设置,选择第二项则进行内核版本和函数库设置,各选项的含义以及设置如表4.2所示。
表4.2uClinux中各个选项的描述
选项
描述
设置
VendorProduct
厂商产品选择
PHILISLPC2200
Kemel
选择版本
Linux
Libc
选择函数库
uClibc
DefaultallSettings
默认设置
恢复默认设置时选择
UpdataDefault
默认厂商配置
根据需要选择
在设计的时候,根据系统需求,以及所选用的芯片厂商等信息,进行系统的配置,主要是根据以上信息描述,进行设置。
进入Linux内核配内核资源的界面,如图4.2所示。
图4.2内核资源界面
配置完毕后选择Exit,然后在提示下是否保存的时候选择保存,配置完毕后,选择Exit,在对话提示选择保存。
(4)建立源代码文件依赖关系(第一次必须执行)
makedep
(5)编译内核
make
第(4)和第(5)进行内核的编译,