《基于arm嵌入式系统的通信设计--本科毕业设计论文.doc》由会员分享,可在线阅读,更多相关《基于arm嵌入式系统的通信设计--本科毕业设计论文.doc(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、西 南 科 技 大 学工程硕士专业学位论文题 目 基于ARM嵌入式系统的通信设计 Classified index: TP391.41U.D.C: Southwest universityof the master degree of engineering thesisThe Design of Socket Communication based on ARM embedded systemCandidate: Xu PengDepartment:School of Computer Science and TechnologySpeciality:Computer Application
2、 TechnologySupervisor 1: Song HuiSupervisor 2: Zhang Ge XiangDate: Nov. 4, 2011学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全意识到本声明的法律结果由本人承担。学位论文作者(本人签名): 年 月 日学位论文出版授权书本人及导师完全同意中国博士学位论文全文数据库出版章程、中国
3、优秀硕士学位论文全文数据库出版章程(以下简称“章程”,见),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在中国博士学位论文全文数据库、中国优秀硕士学位论文全文数据库中全文发表和以电子、网络形式公开出版,并同意编入CNKI中国知识资源总库,在中国博硕士学位论文评价数据库中使用和在互联网上传播,同意按“章程”规定享受相关权益。论文密级:公开保密(_年_月至_年_月)(保密的学位论文在解密后应遵守此协议)作者签名:_ 导师签名:_年_月_日 _年_月_日声 明本人郑重声明:此处所提交的硕士学位论文基于ARM嵌入式系统的Socket通信设计,是本人在西南科技大学攻读硕士学位期间,在导师
4、指导下进行的研究工作和取得的研究成果。据本人所知,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得西南科技大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。本学位论文成果是本人在西南科技大学读书期间在导师指导下取得的,论文成果归西南科技大学所有,特此声明。学位论文作者签名: 日 期: 关于学位论文使用授权的说明本人完全了解西南科技大学有关保留、使用学位论文的规定,即:学校有权保管、并向有关部门送交学位论文的原件与复印件;学校可以采用影印、缩印或其它复制手段复制并保存学位论文
5、;学校可允许学位论文被查阅或借阅;学校可以学术交流为目的,复制赠送和交换学位论文;同意学校可以用不同方式在不同媒体上发表、传播学位论文的全部或部分内容。(涉密的学位论文在解密后遵守此规定)作者签名: 导师签名: ; 日 期: 日 期: ; 西南科技大学工程硕士学位论文 第48页摘要嵌入式系统是计算机技术、半导体技术和电子技术的综合体,已经广泛应用于科学研究、工程设计、国防军事、自动化控制等各个领域。随着网络通讯技术的迅猛发展,生产和生活中广泛要求嵌入式系统终端能够完成网络通讯功能。论文就是以ARM7 TDMI为嵌入式开发平台,开发具有网络通信功能的嵌入式终端。SOCKET是一个通信链的句柄,通
6、过套接字向网络发出请求或者应答网络请求,用于TCP/IP协议的应用程序之间的相互通信。论文选择了ARM体系结构的嵌入式LPC2200处理器,根据系统的需求,在综合各种设计方案的基础上,选择移植带有TCP/IP协议的ucLinux嵌入式操作系统。裁剪和定制系统后,构建相关的文件系统。在此基础上,编写应用程序,调用系统的Socket通信函数,实现服务器端和客户端的通信。描述IP地址和端口,用于在两个论文成功的实现了嵌入式设备的网络接入功能,各个带有网络通讯功能的嵌入式终端可以相互通讯,扩大了和提高了嵌入式设备的应用范围,对嵌入式系统的发展有较大的意义。关键词:嵌入式系统;ARM7TDMI;sock
7、et;TCP/IP AbstractThe embedded system is a complex system with the computer technology, 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
8、technology,our production and life requires the terminal to complete the network communication 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,
9、and sends network request or response to network requests. It is used to describe 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 tran
10、splantation with TCP / IP protocol ucLinux embedded operating system. The paper build related file system.after 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 n
11、etwork access functions of the embedded device, the embedded with a network communication terminal 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
12、目录1绪论11.1嵌入式系统11.2国内外现状和趋势21.3选题必要性31.4选题的目的和意义41.5课题研究范围及要达到的技术要求52需求分析62.1任务概述62.2系统的需求分析62.2.1系统的功能需求62.2.2系统的性能需求62.3系统设计思路63系统概要设计93.1系统设计的基本原则93.2系统设计方案分析93.3概要设计113.3.1开发环境113.3.2ARM开发环境的建立123.3.3建立程序运行调试交叉编译环境153.4模块化的设计与分析153.4.1开发板上完成的设计153.4.2PC机上完成的程序开发163.5设计基本流程164系统详细设计194.1.uClinux的移
13、植194.1.1uClinux嵌入式系统的下载194.1.2根文件系统的建立194.1.3应用程序库204.2.内核编译204.2.1uClinux的安装204.2.2配置uClinux214.2.3构建文件系统234.3.PC机上的程序设计264.3.1嵌入式TCP /IP分析264.3.2嵌入式TCP/IP设计274.4.编程模型284.4.1TCP客户端设计284.4.2TCP服务器端主要代码分析304.5.程序下载到嵌入式硬件平台345系统的实现与测试375.1测试环境和测试的条件375.2功能及数据测试385.2.1容错功能385.2.2连接成功的信息说明395.2.3数据收发功能3
14、95.3测试的结果41结 论42参考文献43致 谢451 绪论1.1 嵌入式系统目前,嵌入式系统的应用越来越广泛,我们日常生活中就存在大量的嵌入式系统的产品:比如手机、MP3、收音机、电视机等等,我们已经离不开嵌入式产品了。嵌入式产品是面向应用的,应用的需求推动了嵌入式技术的发展。嵌入式系统的基本技术仍然是计算机技术,包含软件、硬件、操作系统等。嵌入式系统是可裁剪的,根据应用的具体场合和需求,选择相应的模块,把系统中不需要的部分去掉,这样做的主要目的是节约资源,降低功耗。每一个嵌入式产品是不同的,使用不同的硬件和软件,搭建自己的嵌入式操作系统,但是核心技术都是一样的。嵌入式系统主要有以下几个特
15、点:(1)以需求为目标:嵌入式产品没有统一的要求,在开发过程中,它主要是解决用户的需求问题的。比如我们使用的手机产品,用户有各种各样的需求,有的看重的是移动功能,有的看中的是娱乐功能,还有的看中的是导航功能。那么在设计开发过程中,就需要按照不同的需求搭建自己的嵌入式系统。这样做的主要目的是节约资源,让嵌入式芯片发挥更大的作用。(2)运行高效,节约资源:嵌入式系统要求运行速度快,具有很高的执行效率。基于ARM7TDMI的嵌入式芯片,在指令设计上使用是精简指令集,执行效率高;使用三级流水技术,大大增强了嵌入式产品的性能1。(3)较小的体积和可靠性:嵌入式产品一般都要求体积较小,较小的体积,主要是可
16、以满足便携功能。在可靠性方面,要求嵌入式系统的代码执行效率高,系统运行稳定可靠,也别是在工业控制领域。只有做到这一点,嵌入式产品才会有更大的应用空间和应用市场。嵌入系统是一个片上系统,应用空间巨大,在各个方面都可以应用,比如工业控制领域、消费电子、移动通讯等,都得到了广泛的使用。1.2 国内外现状和趋势随着信息化,智能化,网络化的发展,嵌入式系统技术也将获得广阔的发展空间。信息时代,数字时代使得嵌入式产品获得了巨大的发展契机,为嵌入式市场展现了美好的前景,同时也对嵌入式生产厂商提出了新的挑战。(1)嵌入式开发是一项系统工程,因此要求嵌入式系统厂商不仅要提供嵌入式软硬件系统本身,同时还需要提供强
17、大的硬件开发工具和软件包支持。目前很多厂商已经充分考虑到这一点,在主推系统的同时,将开发环境也作为重点推广。比如三星在推广Arm7,Arm9芯片的同时还提供开发板和版及支持包(BSP),而WindowCE在主推系统时也提供Embedded VC+作为开发工具,还有Vxworks的Tonado开发环境,DeltaOS的Limda编译环境等等都是这一趋势的典型体现。当然,这也是市场竞争的结果。 (2)网络化、信息化的要求随着因特网技术的成熟、带宽的提高日益提高,使得以往单一功能的设备如电话、手机、冰箱、微波炉等功能不再单一,结构更加复杂。这就要求芯片设计厂商在芯片上集成更多的功能,为了满足应用功能
18、的升级,设计师们一方面采用更强大的嵌入式处理器如32位、64位RISC芯片或信号处理器DSP增强处理能力,同时增加功能接口,如USB,扩展总线类型,如CAN BUS,加强对多媒体、图形等的处理,逐步实施片上系统(SOC)的概念。软件方面采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期2。(3)网络互联成为必然趋势。未来的嵌入式设备为了适应网络发展的要求,必然要求硬件上提供各种网络通信接口。传统的单片机对于网络支持不足,而新一代的嵌入式处理器已经开始内嵌网络接口,除了支持TCP/IP协议,还有的支持IEEE1394、USB、CAN、Bluet
19、ooth或IrDA通信接口中的一种或者几种,同时也需要提供相应的通信组网协议软件和物理层驱动软件。软件方面系统系统内核支持网络模块,甚至可以在设备上嵌入Web浏览器,真正实现随时随地用各种设备上网3。 (4)精简系统内核、算法,降低功耗和软硬件成本。未来的嵌入式产品是软硬件紧密结合的设备,为了减低功耗和成本,需要设计者尽量精简系统内核,只保留和系统功能紧密相关的软硬件,利用最低的资源实现最适当的功能,这就要求设计者选用最佳的编程模型和不断改进算法,优化编译器性能。因此,既要软件人员有丰富的硬件知识,又需要发展先进嵌入式软件技术,如Java、Web和WAP等。 (5)提供友好的多媒体人机界面嵌入
20、式设备能与用户亲密接触,最重要的因素就是它能提供非常友好的用户界面。图像界面,灵活的控制方式,使得人们感觉嵌入式设备就象是一个熟悉的老朋友。这方面的要求使得嵌入式软件设计者要在图形界面,多媒体技术上痛下苦功。手写文字输入、语音拨号上网、收发电子邮件以及彩色图形、图像都会使使用者获得自由的感受。目前一些先进的PDA在显示屏幕上已实现汉字写入、短消息语音发布,但一般的嵌入式设备距离这个要求还有很长的路要走。1.3 选题必要性当前,计算机技术和微电子技术发展迅猛,特别是纳米技术取得了重大进展,嵌入式芯片的设计和开发也越来越迅速。对嵌入式芯片的运行速度要求越来越快,存贮器也越来越大,这大大推进了嵌入式
21、技术的发展,嵌入式系统在一定的程度上推进了现代生活的提高和改善。在网络通讯方面,嵌入式系统的发展增强了网络的智能化与灵活性,从而实现各种通信系统之间的互联互通。互联网是我们日常办公生活中最常用的网络,很方便的把我们相互连接。目前,互联网已经开始普及,包括广大的农村,网络成为了我们生活的一部分。由于嵌入式系统低功耗、面向应用等特点,在网络通讯方面得到了广泛的应用。我们使用的移动设备,基本上都是基于嵌入式系统设计开发的。 嵌入式系统是指将应用程序、操作系统与计算机硬件集成在一起的系统。它以应用为中心、以计算机技术为基础,而且软硬件可以裁剪,因而能满足应用系统对功能、可靠性、成本、体积和功耗的严格要
22、求的专用计算机系统。嵌入式系统与通信、网络技术的结合可以极大地增强网络的智能化与灵活性,拓展通信功能,从而实现各种通信系统之间的互联互通4。1.4 选题的目的和意义传统的数据传输和通讯,需要铺设专用的介质和电缆。通过前端的传感器采集数据信息,并通过相关的通讯协议进行数据传输。比如我们经常使用的CAN,485总线等。这些总线和协议需要自己定制,硬件设备需要自己设计开发,面向的对象不同,解决的设计问题不同,主要面向专业设计开发,由于技术上的门槛,普通人员很难理解和使用。以太网是使用最为广泛的网络,由于标准的统一,硬件的支持和配套,普通人员也可以使用,是信息交流和流通的重要渠道。因此,基于嵌入式系统
23、,设计开发网络应用产品具有重要的意思。(1)嵌入式网络为终端设备网络化提供了保障如果将我们所有的终端设备进行网络连接,可以方便有效地进行信息沟通和数据共享,同时也为管理者提供了一种有效的管理方式。移动办公设备很方便的将我们连接在一起,无论何时何地,增强了我们的相互沟通。(2)嵌入式网络技术为工业控制领域设备的发展提供动力基于嵌入式系统的网络技术,随着嵌入式技术的迅猛发展,也得到了广泛的应用。我们现在使用的手机设备,无论我们在天涯海角,都可以随时尽心交流和沟通;家庭经常使用的网络电视,可以方便的下载和点播节目;网络课堂更是把我们组织在一起学习,提高我们的能力好和水平;网络会议可以让我们处在不同地
24、域的人组织在一起讨论和解决问题,节约费用。当然,还有经常使用的B2B网上购物、远程会诊等等。真不敢相信,离开了网络,我们的生活会是怎么样。在工业控制方面,嵌入式网络可以有效可靠地进行远程控制和操作,通过网络通讯模块进行协议的转换,各个控制对象可以独立为嵌入式网络的一个终端,这种控制可以做到有效、可靠和实时。(3)嵌入式网络为家庭生活的智能化提供了技术支持现在的家庭都已经离不开网络。通过网络,可以进行远程的家庭监控,我们经常使用的家用电器。我们可以把家庭的所有设备联网,组成一个家庭智能中心,可以很方便的通过网络进行控制。这种网络的设计和开发基本都是基于嵌入式技术的。基于嵌入式系统的网络通讯,一般
25、具有以下功能:(1)嵌入式网络以Internet网络为基础,通过协议的转换,把相关的信息传输到目的地,大大节约了资源;(2)TCP/I P协议是一个标准公开的协议,不做任何改变,我们就可以利用Web浏览器读取信息,非常的方便快捷;(3)客户机根据信息的需求状况,获得相关的信息,并且能够自由的处理,并能够显示处理结果;(4)信息的显示有多种方式,通过计算机技术处理成文字、图象、表格等形式,并且还能够实时的自动更新,在设备的终端上最好相关记录,更加方便有效的进行控制和操作5。1.5 课题研究范围及要达到的技术要求课题是基于ARM 的嵌入式socket 通信设计,研究的范围包含:ARM 上uClin
26、ux操作系统的移植、Linux 下socket通信的建立、交叉编译环境下嵌入式socket通信的实现等。课题设计后应该实现在特定的ARM7平台上运行嵌入式uClinux操作系统,顺利的驱动网络设备运行,完成在ARM7开发板和PC机的通信,方便的进行数据收发。将嵌入式系统与网络结合起来,主要的困难在于网络上的各种通讯协议对于计算机的存储器,运算速度等的要求比较高,而嵌入式系统中除部分32位微处理器外,大量存在的是8位和16位的微处理器,如果要支持TCP/IP等Internet协议将占用大量系统资源,或根本不可能实现6。因此,设计中要解决以下问题:(1)如果要移植操作系统,选择什么操作系统,才最适
27、合;(2)如何使开发板驱动网络芯片工作;(3)如何建立交叉的编译环境;(4)如何使ARM芯片上具有TCP/IP协议的网络环境;(5)如何用Socket来建立网络的通信。2 需求分析2.1 任务概述论文的主要工作,是选择适当的嵌入式开发平台和文件系统,建立交叉的编译环境,构建TCP/IP网络体系,实现客户端和服务器端的socket通信。2.2 系统的需求分析2.2.1 系统的功能需求嵌入式系统设备能快速的接入网络,实现网络资源的共享和网络设备的通信,首先应该保证嵌入式设备具有完整的网络协议体系结构,满足网络设备的技术规范,能够正确控制嵌入式平台上的网络芯片,可以完整的接收和发送数据。嵌入式设备还
28、具有网络设备标识,也就是嵌入式设备有自己唯一的IP地址,只有这样,才能完成Internet上网络设备之间的通信。2.2.2 系统的性能需求在系统的设计上,要求系统具有以下性能:(1)实时性:嵌入式设备具有足够的反映速度,能快速的接收来自网络设备数据,并作出快速的反应;(2)稳定性:系统在异常情况下不发生死循环,设备系统不会崩溃和瘫痪;(3)可扩充性:系统可以根据需要进行扩充,能够新的通信技术或新的通讯协议方案(程序),可以在不改动系统大部分硬件的情况下,其实现新的功能;(4)易维护性:在设备发生数据灾难的时候使系统及时的恢复,达到以前的状态;(5)持久性:嵌入式系统工作的特殊性,以及各种特定工
29、作环境的具体要求,系统必须能够稳定地长时间工作,适应各种不同的工作环境。2.3 系统设计思路系统的设计开发,宿主机采用的是任意发行版本的 Linux系统,但程序是采用标准C语言来编写,可以在不同的Linux系统中实现通信功能。考虑到在ARM开发板上需要运行特定格式的程序文件,所以设计采用Linux下的gcc开发工具,使用arm-elf-tools交叉编译工具生成在ARM开发板上的可以直接运行的程序。由于嵌入式开发要结合软件和硬件的详细情况来操作,所以系统的开发应该具有以下的几种操作接口,第一用户可以通过以RJ45的以太网对开发板和系统操作,其次用户可以采用串口的方式对开发板的功能和运行效果进行
30、操作,最后操作人员还可以通过开发板特有的JTAG对开发板进行操作。系统分为宿主部分和开发板部分,每个部分独立成块,用网络相互连接,宿主机上运行的Linux操作系统,开发板上运行的是uClinux嵌入式操作系统7。宿主机和开发板通过Switch交换机进行网络通信,宿主机一方作为服务器端,开发板作为客户端,系统的原理如下图2.1所示。 图2.1系统设计环境关系图系统的设计目标是完成宿主机和开发板的网络通信实现。要完成通信,就要完成系统底层硬件的驱动等一系列的工作,首先启动宿主机和客户机的操作系统Linux和uClinux,然后每个模块加载网络设备驱动程序,最后通过TCP/IP协议建立双方的通信链路
31、,完成Socket通信,详细情况如图2.2所示8。图2.2系统的原理示意图3 系统概要设计3.1 系统设计的基本原则无论采用什么设计开发方式,最终的目的是驱动开发板完成网络的通信。设计过程中,首先开发板的网络芯片能够正常工作,其次要完成通信就必须要有完善的通信的协议,根据系统的要求选择合适的协议9。目前,Internet上用应用最多相对开放的协议就是TCP/IP协议,它能使不同网络设备以及不同类型的网络按照标准协议互相连接,轻松的实现上层的通信。在此基础上,设计上层通信模块,通过调用socket函数来实现各种功能,包括数据的接收和发送,数据的校验等等10。3.2 系统设计方案分析 采用TCP/
32、IP协议已经确定了,如何在开发板上移植入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
33、操作系统,自己构建TCP/IP协议族,编写上层socket通信模块完成程序的通信。在选择什么样的操作系统这个问题上,主要归结于嵌入式系统的性能,主要有以下几点13-15:(1)微处理器是否支持微处理器是否支持是选用操作系统的核心因素。从应用的角度来说,选用一种稳定可靠的微处理器是设计成功的关键。(2)资源占用情况的多少嵌入式系统的资源是有限的,资源占用是另外一个重要的指标。通常所说的资源主要是嵌入式芯片的内存和Flash。处于成本和体积等各方面的考虑,要求操作系统尽可能节约资源。(3)应用软件资源嵌入式操作系统在应用过程中需要多方软件支持,包括协议栈、设备驱动以及一些应用程序,在设计过程中,可
34、以方便的应用这些软件,或者只需要很少的改动就可以适用于新的平台。(4)操作系统性能操作系统的可靠性通常无法在用户程序或者函数库层次得到增强。操作系统的稳定性在操作系统设计之初,就已经由系统的设计构想和编码质量决定了。嵌入式系统可靠性要求要比一般桌面系统要高,设计中有可能无法确定出现的问题是程序的问题还是操作系统的性能问题。(5)执行效率执行效率是另一个评价基准。操作系统的执行效率可能直接影响操作系统的处理能力,还有一个重要的指标是这个操作系统的实时性到底如何。操作系统选择不正确,有可能导致系统根本无法运行。通过对uClinux和Linux的详细比较,因为uClinux和Linux具有同样的内核
35、,所以在处理器的支持,软件资源丰富程度,操作系统的功能,操作系统执行性能和可靠性上基本上一致,Linux 相对于uClinux在嵌入式应用相对不足,主要体现在以下几点16:(1)空间占用大Linux操作系统功能完善,但是占用空间大。通常的Linux系统,都需要占用上百兆的空间。嵌入式Linux也要占用1M空间,运行时更需要超过4M的内存空间,因此对于存贮空间不足的嵌入式系统,资源的要求没有办法满足。 uClinux系统一般采用Romfs文件系统,这种文件系统相对简单、占用空间较少。主要是由于内核支持Romfs文件系统比支持ext2文件系统需要更少的代码,还有就是romfs文件系统相对简单,在建
36、立文件系统超级块需要更少的存储空间。 (2)操作系统的实时性 实时系统是指一个系统在执行时能够对外部、异步发生的事务,于一定的时间采取响应 17,当一个优先等级高的进程能够获得系统立即的、没有延迟的服务而不需要等候任何进程,而且在它夺取到CPU的使用权后,它可以一直执行到工作结束或是有更高等级的进程出现为止。因此,高效的中断处理能力与高速的输入输出能力是实时系统所必备的基本特征。Linux和uClinux本身并不支持实时性应用,但是设计时候,对ucLinux可以进行实时性的修改,提供基于内核空间和用户空间的硬实时和软实时的系统调用。(3)内存管理Linux系统带有MMU内存管理单元,具有相应的
37、内存管理机制。在ARM7TDMI嵌入式处理器没有MMU模块。而uClinux是专门针对没有MMU的处理器而设计的。uClinux管理内存的方法是采用实存储器管理,通过地址总线对物理内存进行直接访问,程序中访问的地址都是实际的物理地址,所有的进程都在一个运行空间中运行。系统在启动时把实际存储器进行分页,在加载应用程序时程序分页加载18。 缺少MMU单元,对于系统及应用程序开发带来一定的限制,但对于成本和体积敏感的嵌入式设备,由于应用环境和应用需求并不要求复杂和相对昂贵的硬件体系,内存的分配和管理完全可以由开发人员解决。通过更深入的分析,uClinux比 Linux有更多的优势,本次设计采用的是S
38、martARM开发平台,主要的处理器为ARM7TDMI,所以在应用于嵌入式设备的时候,有一些不合适的因素(主要集中在资源消耗太大以及内存管理方面),所以最终选用了uClinux作为嵌入式操作系统进行应用程序的开发。3.3 概要设计3.3.1 开发环境课题最终选择带TCP/IP协议族的uClinux操作系统来完成项目的设计,所以要针对uClinux上程序的开发配置特定的PC机环境。嵌入式系统主要是面向应用的,是一个片上系统,因此它的体积是很小的,包括它的RAM和ROM都是有限的,这就决定了嵌入式系统的调试不能直接在嵌入式系统上调试,而要采取一种交叉编译环境的方式,也就是“目标机和宿主机”交叉编译
39、的方式,如图4.1所示19。图3.1 uClinux的交叉编译环境目标机主要用于运行操作系统和系统应用软件,而操作系统的内核编译、应用程序的开发和调试则需要通过宿主PC机来完成。双方之间通过串口进行通讯。目标机运行uClinux系统,并在系统上运行嵌入式应用软件。运行操作系统时,首先要将定制的操作系统进行编译,这是一个繁琐复杂的过程,编译通过后,进行应用程序的设计开发。上面已经提到,嵌入式系统由于资源有限,这些工作的安装调试需要在目标机进行,调试完成后下载到宿主机中,这也可能是一个多次重复反复进行的工作。目标机需要安装LINUX系统,为了在Windows下开发嵌入式操作系统应用程序,可以在Wi
40、ndows环境下装上Cygwin软件。建立PC上的开发环境应在宿主机上安装标准Linux操作系统,推荐使用RedHat Linux,一定要确保计算机的网卡驱动、网络通讯配置正常。 3.3.2 ARM开发环境的建立1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即人们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75以上的市场份额,ARM技术正在逐步渗入到人们生活的各个方面。ARM公司是专门从事基于RISC技术芯片设计
41、开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。采用RISC架构的ARM微处理器一般具有如下特点:(1)体积小、低功耗、低成本、高性能;(2)支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;(3)大量使用寄存器,指令执行速度更快;(4)大多数数据操作都在寄存器中完成;(5)寻址方式灵活简单,执行效率高;(6)指令长度固定。ARM7TDMI具有32位ARM指令集和1
42、6位Thumb指令集。ARM指令集效率高,但是代码密度高。Thumb指令集具有较高的代码密度,却仍然保持着ARM大多数性能上的优势,它是ARM的子集。所有的ARM置零都是可以条件执行的,而Thumb置零仅有一条指令具备条件执行的功能。ARM和Thumb程序可以相互调用,相互之间状态切换开销几乎为零。寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式。ARM处理器具有9种基本寻址方式:(1)寄存器寻址;(2)立即寻址;(3)寄存器移位寻址;(4)寄存器间接寻址;(5)基址寻址;(6)多寄存器寻址;(7)堆栈寻址;(8)块拷贝寻址;(9)相对寻址。设计采用SmartARM2200开
43、发板,使用NXP公司的LPC2210微处理器。LPC2210基于ARM7TDMI内核,系统时钟频率达60 MHz,总线对外开放,宽度可配置为81632位。同时还扩展了RTL8019AS(10 Mbs)以太网控制器。图3.2 SmartARM开发板论文的设计以SmartARM进行,如图3.2所示。所以对开发板上要做的操作是接上JTAG,串口,网络线,并且BOOTSET 设置为outside,设置Bank0为FLASH,Bank1设置为RAM,接通应用的模块的跳线,然后把已经编译成功的系统内核文件系统烧入到开发板上,成功建立开发环境后,并启动开发板上的uClinux 操作系统,如图3.3所示:图3
44、.3 开发板上成功启动uClinux3.3.3 建立程序运行调试交叉编译环境由于uClinux及它的相关开发工具集大多都是来自自由软件组织的开放源代码,这些软件都是共享在网络上的,因此,在建立开发环境的时候,直接找到相关的网络地址进行下载,接下来就可以建立交叉开发环境。从网站http:/www.uClinux.org 上下载最新的arm-elf-gcc 工具,即脚本文件arm-elf-tools-20040427.sh,在宿主机上安装该工具链,在该文件所在目录下,键入一下指令: #ls-l arm-elf-tools-20040427.sh等待指令的执行,完成后在路径:/usr/local/b
45、in/下有:gcc, arm-elf-gcc,binudls, genromfs,flthdr和elflflt等各种应用工具。3.4 模块化的设计与分析3.4.1 开发板上完成的设计从项目的整体出发,开发板上应完成的工作包括,移植uClinux到SmartARM2200开发板,移植过程中应配置uClinux,其中包含大部分系统配置,如:Non-standard serial port suppor(非标准串口支持)、ftp(文件传输协议)、http(超文本传输协议)、telnet(远程登陆协议)、ping(网络探测回应工具)、 ifconfig(网络配置模块)、ls(文件目录显示模块)、mou
46、nt(设备挂载模块)、cp(文件拷贝模块),uClinux文件系统的划分中还应为用户留出可以读写操作的区域,帮助用户轻松的写入程序和修改程序,最后开发板上载入编译好的网络socket通信程序20。3.4.2 PC机上完成的程序开发首先PC机上要安装完整的Linux操作系统,然后配置好交叉编译环境后,接下来就是是对程序的初步设计,程序一共分为两个大的部分:(1)TCP的客户端程序设计TCP的客户端可以轻松的访问服务器端,向它发送连接请求,并且客户端也可以接收到来自服务器端发送回来的数据。TCP的客户端可以显示当前自己的工作状态,如连接的建立,启动的成功和数据包通信的个数等21。(2)TCP 的服务器端程序设计TCP 的服务器端可以轻松的完成对客户端数据的发送,服务器端可以快速的做出客户端的连接请求反映,并且在服务器端可以轻松的反映来自客户端的连接情况,如连接的IP、连接时间、连接的当前状态等。系统的实现,首先应保证uCli