1、毕业答辩论文基于ARM嵌入式系统的Socket通信设计毕业论文题 目 基于ARM嵌入式系统的Socket通信设计 摘要嵌入式系统是计算机技术、半导体技术和电子技术的综合体,已经广泛应用于科学研究、工程设计、国防军事、自动化控制等各个领域。随着网络通讯技术的迅猛发展,生产和生活中广泛要求嵌入式系统终端能够完成网络通讯功能。论文就是以ARM7 TDMI为嵌入式开发平台,开发具有网络通信功能的嵌入式终端。SOCKET是一个通信链的句柄,通过套接字向网络发出请求或者应答网络请求,用于TCP/IP协议的应用程序之间的相互通信。论文选择了ARM体系结构的嵌入式LPC2200处理器,根据系统的需求,在综合各
2、种设计方案的基础上,选择移植带有TCP/IP协议的ucLinux嵌入式操作系统。裁剪和定制系统后,构建相关的文件系统。在此基础上,编写应用程序,调用系统的Socket通信函数,实现服务器端和客户端的通信。描述IP地址和端口,用于在两个论文成功的实现了嵌入式设备的网络接入功能,各个带有网络通讯功能的嵌入式终端可以相互通讯,扩大了和提高了嵌入式设备的应用范围,对嵌入式系统的发展有较大的意义。关键词:嵌入式系统;ARM7TDMI;socket;TCP/IP AbstractThe embedded system is a complex system with the computer techno
3、logy, semiconductor technology and electronic technology .It has been widely used in scientific research, engineering, national defense, automation and other fields. With the rapid development of network communication technology,our production and life requires the terminal to complete the network c
4、ommunication function in a wide range of embedded systems. The Paper select the ARM7 TDMI for embedded development platform, develop the embedded network communication terminal. Socket is a communication chain handle, and sends network request or response to network requests. It is used to describe
5、the IP address and port for both TCP / IP based protocol to communicate between applications,. The paper select LPC2200 embedded ARM as processor architecture, with the system need, design the integration based on transplantation with TCP / IP protocol ucLinux embedded operating system. The paper bu
6、ild related file cutting and custom systems. On this basis, finished an application, and call the system function of Socket Communications, achieve server and client communication. The paper achieved the network access functions of the embedded device, the embedded with a network communication termi
7、nal can communicate with each other, and expand and improve the application range of embedded devices, and has a greater significance for embedded systems.Key words: Embedded Systems;ARM7TDMI;socket;TCP/IP目录1绪论1嵌入式系统1国内外现状和趋势2选题必要性3选题的目的和意义4课题研究范围及要达到的技术要求52需求分析6任务概述6系统的需求分析6系统的功能需求6系统的性能需求6系统设计思路63
8、系统概要设计9系统设计的基本原则9系统设计方案分析9概要设计11开发环境11ARM开发环境的建立12建立程序运行调试交叉编译环境15模块化的设计与分析15开发板上完成的设计15PC机上完成的程序开发16设计基本流程164系统详细设计19.uClinux的移植19uClinux嵌入式系统的下载19根文件系统的建立19应用程序库20.内核编译20uClinux的安装20配置uClinux21构建文件系统23.PC机上的程序设计26嵌入式TCP /IP分析26嵌入式TCP/IP设计27.编程模型28TCP客户端设计28TCP服务器端主要代码分析30.程序下载到嵌入式硬件平台345系统的实现与测试37
9、测试环境和测试的条件37功能及数据测试38容错功能38连接成功的信息说明39数据收发功能39测试的结果41结 论42参考文献43致 谢451 绪论1.1 嵌入式系统目前,嵌入式系统的应用越来越广泛,我们日常生活中就存在大量的嵌入式系统的产品:比如手机、MP3、收音机、电视机等等,我们已经离不开嵌入式产品了。嵌入式产品是面向应用的,应用的需求推动了嵌入式技术的发展。嵌入式系统的基本技术仍然是计算机技术,包含软件、硬件、操作系统等。嵌入式系统是可裁剪的,根据应用的具体场合和需求,选择相应的模块,把系统中不需要的部分去掉,这样做的主要目的是节约资源,降低功耗。每一个嵌入式产品是不同的,使用不同的硬件
10、和软件,搭建自己的嵌入式操作系统,但是核心技术都是一样的。嵌入式系统主要有以下几个特点:(1)以需求为目标:嵌入式产品没有统一的要求,在开发过程中,它主要是解决用户的需求问题的。比如我们使用的手机产品,用户有各种各样的需求,有的看重的是移动功能,有的看中的是娱乐功能,还有的看中的是导航功能。那么在设计开发过程中,就需要按照不同的需求搭建自己的嵌入式系统。这样做的主要目的是节约资源,让嵌入式芯片发挥更大的作用。(2)运行高效,节约资源:嵌入式系统要求运行速度快,具有很高的执行效率。基于ARM7TDMI的嵌入式芯片,在指令设计上使用是精简指令集,执行效率高;使用三级流水技术,大大增强了嵌入式产品的
11、性能1。(3)较小的体积和可靠性:嵌入式产品一般都要求体积较小,较小的体积,主要是可以满足便携功能。在可靠性方面,要求嵌入式系统的代码执行效率高,系统运行稳定可靠,也别是在工业控制领域。只有做到这一点,嵌入式产品才会有更大的应用空间和应用市场。嵌入系统是一个片上系统,应用空间巨大,在各个方面都可以应用,比如工业控制领域、消费电子、移动通讯等,都得到了广泛的使用。1.2 国内外现状和趋势随着信息化,智能化,网络化的发展,嵌入式系统技术也将获得广阔的发展空间。信息时代,数字时代使得嵌入式产品获得了巨大的发展契机,为嵌入式市场展现了美好的前景,同时也对嵌入式生产厂商提出了新的挑战。(1)嵌入式开发是
12、一项系统工程,因此要求嵌入式系统厂商不仅要提供嵌入式软硬件系统本身,同时还需要提供强大的硬件开发工具和软件包支持。目前很多厂商已经充分考虑到这一点,在主推系统的同时,将开发环境也作为重点推广。比如三星在推广Arm7,Arm9芯片的同时还提供开发板和版及支持包(BSP),而WindowCE在主推系统时也提供Embedded VC+作为开发工具,还有Vxworks的Tonado开发环境,DeltaOS的Limda编译环境等等都是这一趋势的典型体现。当然,这也是市场竞争的结果。 (2)网络化、信息化的要求随着因特网技术的成熟、带宽的提高日益提高,使得以往单一功能的设备如电话、手机、冰箱、微波炉等功能
13、不再单一,结构更加复杂。这就要求芯片设计厂商在芯片上集成更多的功能,为了满足应用功能的升级,设计师们一方面采用更强大的嵌入式处理器如32位、64位RISC芯片或信号处理器DSP增强处理能力,同时增加功能接口,如USB,扩展总线类型,如CAN BUS,加强对多媒体、图形等的处理,逐步实施片上系统(SOC)的概念。软件方面采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期2。(3)网络互联成为必然趋势。未来的嵌入式设备为了适应网络发展的要求,必然要求硬件上提供各种网络通信接口。传统的单片机对于网络支持不足,而新一代的嵌入式处理器已经开始内嵌网络接
14、口,除了支持TCP/IP协议,还有的支持IEEE1394、USB、CAN、Bluetooth或IrDA通信接口中的一种或者几种,同时也需要提供相应的通信组网协议软件和物理层驱动软件。软件方面系统系统内核支持网络模块,甚至可以在设备上嵌入Web浏览器,真正实现随时随地用各种设备上网3。 (4)精简系统内核、算法,降低功耗和软硬件成本。未来的嵌入式产品是软硬件紧密结合的设备,为了减低功耗和成本,需要设计者尽量精简系统内核,只保留和系统功能紧密相关的软硬件,利用最低的资源实现最适当的功能,这就要求设计者选用最佳的编程模型和不断改进算法,优化编译器性能。因此,既要软件人员有丰富的硬件知识,又需要发展先
15、进嵌入式软件技术,如Java、Web和WAP等。 (5)提供友好的多媒体人机界面嵌入式设备能与用户亲密接触,最重要的因素就是它能提供非常友好的用户界面。图像界面,灵活的控制方式,使得人们感觉嵌入式设备就象是一个熟悉的老朋友。这方面的要求使得嵌入式软件设计者要在图形界面,多媒体技术上痛下苦功。手写文字输入、语音拨号上网、收发电子邮件以及彩色图形、图像都会使使用者获得自由的感受。目前一些先进的PDA在显示屏幕上已实现汉字写入、短消息语音发布,但一般的嵌入式设备距离这个要求还有很长的路要走。1.3 选题必要性当前,计算机技术和微电子技术发展迅猛,特别是纳米技术取得了重大进展,嵌入式芯片的设计和开发也
16、越来越迅速。对嵌入式芯片的运行速度要求越来越快,存贮器也越来越大,这大大推进了嵌入式技术的发展,嵌入式系统在一定的程度上推进了现代生活的提高和改善。在网络通讯方面,嵌入式系统的发展增强了网络的智能化与灵活性,从而实现各种通信系统之间的互联互通。互联网是我们日常办公生活中最常用的网络,很方便的把我们相互连接。目前,互联网已经开始普及,包括广大的农村,网络成为了我们生活的一部分。由于嵌入式系统低功耗、面向应用等特点,在网络通讯方面得到了广泛的应用。我们使用的移动设备,基本上都是基于嵌入式系统设计开发的。 嵌入式系统是指将应用程序、操作系统与计算机硬件集成在一起的系统。它以应用为中心、以计算机技术为
17、基础,而且软硬件可以裁剪,因而能满足应用系统对功能、可靠性、成本、体积和功耗的严格要求的专用计算机系统。嵌入式系统与通信、网络技术的结合可以极大地增强网络的智能化与灵活性,拓展通信功能,从而实现各种通信系统之间的互联互通4。1.4 选题的目的和意义传统的数据传输和通讯,需要铺设专用的介质和电缆。通过前端的传感器采集数据信息,并通过相关的通讯协议进行数据传输。比如我们经常使用的CAN,485总线等。这些总线和协议需要自己定制,硬件设备需要自己设计开发,面向的对象不同,解决的设计问题不同,主要面向专业设计开发,由于技术上的门槛,普通人员很难理解和使用。以太网是使用最为广泛的网络,由于标准的统一,硬
18、件的支持和配套,普通人员也可以使用,是信息交流和流通的重要渠道。因此,基于嵌入式系统,设计开发网络应用产品具有重要的意思。(1)嵌入式网络为终端设备网络化提供了保障如果将我们所有的终端设备进行网络连接,可以方便有效地进行信息沟通和数据共享,同时也为管理者提供了一种有效的管理方式。移动办公设备很方便的将我们连接在一起,无论何时何地,增强了我们的相互沟通。(2)嵌入式网络技术为工业控制领域设备的发展提供动力基于嵌入式系统的网络技术,随着嵌入式技术的迅猛发展,也得到了广泛的应用。我们现在使用的手机设备,无论我们在天涯海角,都可以随时尽心交流和沟通;家庭经常使用的网络电视,可以方便的下载和点播节目;网
19、络课堂更是把我们组织在一起学习,提高我们的能力好和水平;网络会议可以让我们处在不同地域的人组织在一起讨论和解决问题,节约费用。当然,还有经常使用的B2B网上购物、远程会诊等等。真不敢相信,离开了网络,我们的生活会是怎么样。在工业控制方面,嵌入式网络可以有效可靠地进行远程控制和操作,通过网络通讯模块进行协议的转换,各个控制对象可以独立为嵌入式网络的一个终端,这种控制可以做到有效、可靠和实时。(3)嵌入式网络为家庭生活的智能化提供了技术支持现在的家庭都已经离不开网络。通过网络,可以进行远程的家庭监控,我们经常使用的家用电器。我们可以把家庭的所有设备联网,组成一个家庭智能中心,可以很方便的通过网络进
20、行控制。这种网络的设计和开发基本都是基于嵌入式技术的。基于嵌入式系统的网络通讯,一般具有以下功能:(1)嵌入式网络以Internet网络为基础,通过协议的转换,把相关的信息传输到目的地,大大节约了资源;(2)TCP/I P协议是一个标准公开的协议,不做任何改变,我们就可以利用Web浏览器读取信息,非常的方便快捷;(3)客户机根据信息的需求状况,获得相关的信息,并且能够自由的处理,并能够显示处理结果;(4)信息的显示有多种方式,通过计算机技术处理成文字、图象、表格等形式,并且还能够实时的自动更新,在设备的终端上最好相关记录,更加方便有效的进行控制和操作5。1.5 课题研究范围及要达到的技术要求课
21、题是基于ARM 的嵌入式socket 通信设计,研究的范围包含:ARM 上uClinux操作系统的移植、Linux 下socket通信的建立、交叉编译环境下嵌入式socket通信的实现等。课题设计后应该实现在特定的ARM7平台上运行嵌入式uClinux操作系统,顺利的驱动网络设备运行,完成在ARM7开发板和PC机的通信,方便的进行数据收发。将嵌入式系统与网络结合起来,主要的困难在于网络上的各种通讯协议对于计算机的存储器,运算速度等的要求比较高,而嵌入式系统中除部分32位微处理器外,大量存在的是8位和16位的微处理器,如果要支持TCP/IP等Internet协议将占用大量系统资源,或根本不可能实
22、现6。因此,设计中要解决以下问题:(1)如果要移植操作系统,选择什么操作系统,才最适合;(2)如何使开发板驱动网络芯片工作;(3)如何建立交叉的编译环境;(4)如何使ARM芯片上具有TCP/IP协议的网络环境;(5)如何用Socket来建立网络的通信。2 需求分析2.1 任务概述论文的主要工作,是选择适当的嵌入式开发平台和文件系统,建立交叉的编译环境,构建TCP/IP网络体系,实现客户端和服务器端的socket通信。2.2 系统的需求分析2.2.1 系统的功能需求嵌入式系统设备能快速的接入网络,实现网络资源的共享和网络设备的通信,首先应该保证嵌入式设备具有完整的网络协议体系结构,满足网络设备的
23、技术规范,能够正确控制嵌入式平台上的网络芯片,可以完整的接收和发送数据。嵌入式设备还具有网络设备标识,也就是嵌入式设备有自己唯一的IP地址,只有这样,才能完成Internet上网络设备之间的通信。2.2.2 系统的性能需求在系统的设计上,要求系统具有以下性能:(1)实时性:嵌入式设备具有足够的反映速度,能快速的接收来自网络设备数据,并作出快速的反应;(2)稳定性:系统在异常情况下不发生死循环,设备系统不会崩溃和瘫痪;(3)可扩充性:系统可以根据需要进行扩充,能够新的通信技术或新的通讯协议方案(程序),可以在不改动系统大部分硬件的情况下,其实现新的功能;(4)易维护性:在设备发生数据灾难的时候使
24、系统及时的恢复,达到以前的状态;(5)持久性:嵌入式系统工作的特殊性,以及各种特定工作环境的具体要求,系统必须能够稳定地长时间工作,适应各种不同的工作环境。2.3 系统设计思路系统的设计开发,宿主机采用的是任意发行版本的 Linux系统,但程序是采用标准C语言来编写,可以在不同的Linux系统中实现通信功能。考虑到在ARM开发板上需要运行特定格式的程序文件,所以设计采用Linux下的gcc开发工具,使用arm-elf-tools交叉编译工具生成在ARM开发板上的可以直接运行的程序。由于嵌入式开发要结合软件和硬件的详细情况来操作,所以系统的开发应该具有以下的几种操作接口,第一用户可以通过以RJ4
25、5的以太网对开发板和系统操作,其次用户可以采用串口的方式对开发板的功能和运行效果进行操作,最后操作人员还可以通过开发板特有的JTAG对开发板进行操作。系统分为宿主部分和开发板部分,每个部分独立成块,用网络相互连接,宿主机上运行的Linux操作系统,开发板上运行的是uClinux嵌入式操作系统7。宿主机和开发板通过Switch交换机进行网络通信,宿主机一方作为服务器端,开发板作为客户端,。 系统的设计目标是完成宿主机和开发板的网络通信实现。要完成通信,就要完成系统底层硬件的驱动等一系列的工作,首先启动宿主机和客户机的操作系统Linux和uClinux,然后每个模块加载网络设备驱动程序,最后通过T
26、CP/IP协议建立双方的通信链路,完成Socket通信,8。3 系统概要设计3.1 系统设计的基本原则无论采用什么设计开发方式,最终的目的是驱动开发板完成网络的通信。设计过程中,首先开发板的网络芯片能够正常工作,其次要完成通信就必须要有完善的通信的协议,根据系统的要求选择合适的协议9。目前,Internet上用应用最多相对开放的协议就是TCP/IP协议,它能使不同网络设备以及不同类型的网络按照标准协议互相连接,轻松的实现上层的通信。在此基础上,设计上层通信模块,通过调用socket函数来实现各种功能,包括数据的接收和发送,数据的校验等等10。3.2 系统设计方案分析 采用TCP/IP协议已经确
27、定了,如何在开发板上移植入TCP/IP协议成了一个最主要的解决问题,开发板上虽然有网络通信芯片和足够的存储空间,但没有任何的网络通信协议,有以下几种方案可以实现系统的要求,具体的设计方案是:(1)方案1无操作系统,自己构建TCP/IP协议族,编写上层socket通信模块完成程序的通信。(2)方案2包含操作系统,其中又分为带 TCP/IP协议族的操作系统和不带TCP/IP协议族的操作系统11。带TCP/IP协议族的Linux或者uClinux操作系统,不需要自己构建TCP/IP协议族可以直接调用底层的函数,驱动上层模块完成socket通信12。不带TCP/IP协议族的uCOS-II操作系统,自己
28、构建TCP/IP协议族,编写上层socket通信模块完成程序的通信。在选择什么样的操作系统这个问题上,主要归结于嵌入式系统的性能,主要有以下几点13-15:(1)微处理器是否支持微处理器是否支持是选用操作系统的核心因素。从应用的角度来说,选用一种稳定可靠的微处理器是设计成功的关键。(2)资源占用情况的多少嵌入式系统的资源是有限的,资源占用是另外一个重要的指标。通常所说的资源主要是嵌入式芯片的内存和Flash。处于成本和体积等各方面的考虑,要求操作系统尽可能节约资源。(3)应用软件资源嵌入式操作系统在应用过程中需要多方软件支持,包括协议栈、设备驱动以及一些应用程序,在设计过程中,可以方便的应用这
29、些软件,或者只需要很少的改动就可以适用于新的平台。(4)操作系统性能操作系统的可靠性通常无法在用户程序或者函数库层次得到增强。操作系统的稳定性在操作系统设计之初,就已经由系统的设计构想和编码质量决定了。嵌入式系统可靠性要求要比一般桌面系统要高,设计中有可能无法确定出现的问题是程序的问题还是操作系统的性能问题。(5)执行效率执行效率是另一个评价基准。操作系统的执行效率可能直接影响操作系统的处理能力,还有一个重要的指标是这个操作系统的实时性到底如何。操作系统选择不正确,有可能导致系统根本无法运行。通过对uClinux和Linux的详细比较,因为uClinux和Linux具有同样的内核,所以在处理器
30、的支持,软件资源丰富程度,操作系统的功能,操作系统执行性能和可靠性上基本上一致,Linux 相对于uClinux在嵌入式应用相对不足,主要体现在以下几点16:(1)空间占用大Linux操作系统功能完善,但是占用空间大。通常的Linux系统,都需要占用上百兆的空间。嵌入式Linux也要占用1M空间,运行时更需要超过4M的内存空间,因此对于存贮空间不足的嵌入式系统,资源的要求没有办法满足。 uClinux系统一般采用Romfs文件系统,这种文件系统相对简单、占用空间较少。主要是由于内核支持Romfs文件系统比支持ext2文件系统需要更少的代码,还有就是romfs文件系统相对简单,在建立文件系统超级
31、块需要更少的存储空间。 (2)操作系统的实时性 实时系统是指一个系统在执行时能够对外部、异步发生的事务,于一定的时间采取响应 17,当一个优先等级高的进程能够获得系统立即的、没有延迟的服务而不需要等候任何进程,而且在它夺取到CPU的使用权后,它可以一直执行到工作结束或是有更高等级的进程出现为止。因此,高效的中断处理能力与高速的输入输出能力是实时系统所必备的基本特征。Linux和uClinux本身并不支持实时性应用,但是设计时候,对ucLinux可以进行实时性的修改,提供基于内核空间和用户空间的硬实时和软实时的系统调用。(3)内存管理Linux系统带有MMU内存管理单元,具有相应的内存管理机制。
32、在ARM7TDMI嵌入式处理器没有MMU模块。而uClinux是专门针对没有MMU的处理器而设计的。uClinux管理内存的方法是采用实存储器管理,通过地址总线对物理内存进行直接访问,程序中访问的地址都是实际的物理地址,所有的进程都在一个运行空间中运行。系统在启动时把实际存储器进行分页,在加载应用程序时程序分页加载18。 缺少MMU单元,对于系统及应用程序开发带来一定的限制,但对于成本和体积敏感的嵌入式设备,由于应用环境和应用需求并不要求复杂和相对昂贵的硬件体系,内存的分配和管理完全可以由开发人员解决。通过更深入的分析,uClinux比 Linux有更多的优势,本次设计采用的是SmartARM
33、开发平台,主要的处理器为ARM7TDMI,所以在应用于嵌入式设备的时候,有一些不合适的因素(主要集中在资源消耗太大以及内存管理方面),所以最终选用了uClinux作为嵌入式操作系统进行应用程序的开发。3.3 概要设计3.3.1 开发环境课题最终选择带TCP/IP协议族的uClinux操作系统来完成项目的设计,所以要针对uClinux上程序的开发配置特定的PC机环境。嵌入式系统主要是面向应用的,是一个片上系统,因此它的体积是很小的,包括它的RAM和ROM都是有限的,这就决定了嵌入式系统的调试不能直接在嵌入式系统上调试,而要采取一种交叉编译环境的方式,也就是“目标机和宿主机”交叉编译的方式,19。
34、 uClinux的交叉编译环境目标机主要用于运行操作系统和系统应用软件,而操作系统的内核编译、应用程序的开发和调试则需要通过宿主PC机来完成。双方之间通过串口进行通讯。目标机运行uClinux系统,并在系统上运行嵌入式应用软件。运行操作系统时,首先要将定制的操作系统进行编译,这是一个繁琐复杂的过程,编译通过后,进行应用程序的设计开发。上面已经提到,嵌入式系统由于资源有限,这些工作的安装调试需要在目标机进行,调试完成后下载到宿主机中,这也可能是一个多次重复反复进行的工作。目标机需要安装LINUX系统,为了在Windows下开发嵌入式操作系统应用程序,可以在Windows环境下装上Cygwin软件
35、。建立PC上的开发环境应在宿主机上安装标准Linux操作系统,推荐使用RedHat Linux,一定要确保计算机的网卡驱动、网络通讯配置正常。 3.3.2 ARM开发环境的建立1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即人们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75以上的市场份额,ARM技术正在逐步渗入到人们生活的各个方面。ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身
36、不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。采用RISC架构的ARM微处理器一般具有如下特点:(1)体积小、低功耗、低成本、高性能;(2)支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;(3)大量使用寄存器,指令执行速度更快;(4)大多数数据操作都在寄存器中完成;(5)寻址方式灵活简单,执行效率高;(6)指令长度固定。ARM7TDMI具有32位ARM指令集和16位Thumb指令集。ARM指令集效
37、率高,但是代码密度高。Thumb指令集具有较高的代码密度,却仍然保持着ARM大多数性能上的优势,它是ARM的子集。所有的ARM置零都是可以条件执行的,而Thumb置零仅有一条指令具备条件执行的功能。ARM和Thumb程序可以相互调用,相互之间状态切换开销几乎为零。寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式。ARM处理器具有9种基本寻址方式:(1)寄存器寻址;(2)立即寻址;(3)寄存器移位寻址;(4)寄存器间接寻址;(5)基址寻址;(6)多寄存器寻址;(7)堆栈寻址;(8)块拷贝寻址;(9)相对寻址。设计采用SmartARM2200开发板,使用NXP公司的LPC2210
38、微处理器。LPC2210基于ARM7TDMI内核,系统时钟频率达60 MHz,总线对外开放,宽度可配置为81632位。同时还扩展了RTL8019AS(10 Mbs)以太网控制器。 SmartARM开发板论文的设计以SmartARM进行,。所以对开发板上要做的操作是接上JTAG,串口,网络线,并且BOOTSET 设置为outside,设置Bank0为FLASH,Bank1设置为RAM,接通应用的模块的跳线,然后把已经编译成功的系统内核文件系统烧入到开发板上,成功建立开发环境后,并启动开发板上的uClinux 操作系统,: 开发板上成功启动uClinux3.3.3 建立程序运行调试交叉编译环境由于
39、uClinux及它的相关开发工具集大多都是来自自由软件组织的开放源代码,这些软件都是共享在网络上的,因此,在建立开发环境的时候,直接找到相关的网络地址进行下载,接下来就可以建立交叉开发环境。从网站http:/ 上下载最新的arm-elf-gcc 工具,在宿主机上安装该工具链,在该文件所在目录下,键入一下指令: #ls-l 等待指令的执行,完成后在路径:/usr/local/bin/下有:gcc, arm-elf-gcc,binudls, genromfs,flthdr和elflflt等各种应用工具。3.4 模块化的设计与分析3.4.1 开发板上完成的设计从项目的整体出发,开发板上应完成的工作包
40、括,移植uClinux到SmartARM2200开发板,移植过程中应配置uClinux,其中包含大部分系统配置,如:Non-standard serial port suppor(非标准串口支持)、ftp(文件传输协议)、http(超文本传输协议)、telnet(远程登陆协议)、ping(网络探测回应工具)、 ifconfig(网络配置模块)、ls(文件目录显示模块)、mount(设备挂载模块)、cp(文件拷贝模块),uClinux文件系统的划分中还应为用户留出可以读写操作的区域,帮助用户轻松的写入程序和修改程序,最后开发板上载入编译好的网络socket通信程序20。3.4.2 PC机上完成的
41、程序开发首先PC机上要安装完整的Linux操作系统,然后配置好交叉编译环境后,接下来就是是对程序的初步设计,程序一共分为两个大的部分:(1)TCP的客户端程序设计TCP的客户端可以轻松的访问服务器端,向它发送连接请求,并且客户端也可以接收到来自服务器端发送回来的数据。TCP的客户端可以显示当前自己的工作状态,如连接的建立,启动的成功和数据包通信的个数等21。(2)TCP 的服务器端程序设计TCP 的服务器端可以轻松的完成对客户端数据的发送,服务器端可以快速的做出客户端的连接请求反映,并且在服务器端可以轻松的反映来自客户端的连接情况,如连接的IP、连接时间、连接的当前状态等。系统的实现,首先应保
42、证uClinux系统成功的启动,即系统在启动过程中成功的初始化了文件系统,网络设备硬件,串行设备硬件等,同时需要成功配置当前网络段的IP,以及挂载了所指定的网络设备文件。最后,要保证开发板和宿主机的网络连通,即可以用ping 程序来测试双方的活跃,这样就可以同时运行服务器和客户端的程序。 3.5 设计基本流程设计主要的目的是要设计出面向连接的TCP通信模块。Socket类为网络通讯提供了一种方式。Socket接口是TCP/IP网络的API,Socket接口定义函数和例程。网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符,具有一个打开文件的函数调用Socket(),该
43、函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。常用的Socket类型有两种22:流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式主要面向连接Socket,针对于面向连接的TCP服务应用;数据报式面向无连接的Socket,对应于无连接的UDP服务应用。 使用socket的数据流进行通信。应该首先在服务器端使用socket()函数建立一个通信的端点,然后使用bind()函数绑定这个端点的地址,最后服务器端使用listen()侦听连接请求,当远程的客户机使用connect()连接listen()正在监听
44、的端口时,使用accept()处理它。在accept()处理了连接请求后,将会生成一个新的描述这个连接端口的套接字,利用这个套接字就可以发送和接收数据了。如果listen()一直没有侦听到连接请求,那么服务器就会在accept()处阻塞,一直到有连接请求到来。对于客户机任务来说,它也需要先用socket()建立一个通信端口,但是它不必用bind()把他的本地地址绑定到这个端口上,而是直接使用connect()向指定的服务器发送连接请求,如果请求被接受,就可以进行通信了。4 系统详细设计4.1. uClinux的移植4.1.1 uClinux嵌入式系统的下载嵌入式系统交叉编译完成后,需要将编译好
45、的嵌入式内核下载到嵌入式开发板上,然后嵌入式开发板才可以运行嵌入式内核。嵌入式开发板按照以下两种方式进行加载:(1)直接将编译好的内核下载到嵌入式存贮器中。由于嵌入式开发板的资源有限,存贮器的容量不够大,这种方式对系统的存贮器要求较高,但是能够带来更高的运行速度,因为系统只直接从嵌入式开发板上启动的,系统直接解压缩内核文件,运行内核。设计中采用这种方式23。(2)通过地址印象的方式:由于嵌入式系统的存贮器有限,为了节约资源,在嵌入式存贮器上建立地址印象,内核在执行的时候,首先运行到建立印象的地址,然后通过跳转指令,直接运行存储在嵌入式开发板外围的存贮器上,这样可以节约芯片上的资源,但是带来的问
46、题是,由于跳转,运行的速度会降低,对于运行速度要求不高的开发,可以采取这种方式。4.1.2 根文件系统的建立 内核移植完成后,需要建立嵌入式的根文件系统,根文件是嵌入式系统重要组成部分。uClinux主要应用于没有MMU单元的嵌入式芯片,主要的目的是节约内存和FLASH。根据使用场合的不同,根文件系统也有多种选择。在目前的嵌入式开发过程中,ROMfs是使用最多的文件系统。ROMfs文件系统比较简单,文功能紧凑,并且是只读的。在ROMfs中,文件数据是按照顺寻存放的。uClinux系统可以直接运行,这样做的最大的优势是节约RAM空间,提高运行速度。因此,根据系统的设计需求,选用ROMfs根文件系
47、统。当然,为了支持它,在内核的配置中需要内核支持romfs 文件系统,并且在内核配置完毕后建立虚拟ram盘,提供用户接口。4.1.3 应用程序库uClinux运行效率高,是一个小型化的嵌入式Linux系统,这就要求相应的应用程序库具有较高的运行效率。glibc是gnu发布的libc库,主要是基于C语言的,这个库较大而且比较全面,不适应uClinux。因此需要进行相应的简化,这就是uClibc应用程序库。在uClinux中,采取静态连接,目的是为了节约内存和片上资源,满足嵌入式系统的设计需要。4.2. 内核编译嵌入式系统应用非常专业化,功能模块相对比较单一。随着uClinux内核版本的升级,内核功能越来越强大,体系结构也越来越复杂。由于存储空间的限制,为了提高运行性能,必须根据需要对内核进行精简,定制一个符合嵌入式系统的操作平台。uClinux可以通过裁剪,把不需要的功能模块剪掉,留下应用需要的模块,减少系统运行的复
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100