单小撤课程设计报告_第1页
单小撤课程设计报告_第2页
单小撤课程设计报告_第3页
单小撤课程设计报告_第4页
单小撤课程设计报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z**20142014-2015学年第二学期?嵌入式系统?课程设计报告题目:嵌入式系统在加油站信息管理系统的应用研究专业:网络工程班级:2012级(2)班**:单小撤指导教师:*大雷成绩:计算机学院2015年5月30日目录TOC\o"1-3"\h\u13092摘要1282181、设计内容及要求157201.1设计内容1226101.2设计要求2205051.2.1嵌入式系统开发概述2106421.2.2油罐信息采集系统功能分析4115002、概要设计5156192.1系统存储器设计587022.2系统网络接口设计7184902.3配置开发主机7223142.4AT91RM9200的启动过程10250532.5嵌入式Linu*内核的移植1097102.6建立文件系统12197652.7嵌入式系统数据库的实现13238413、应用程序设计14152403.1用户界面设计14223963.1.1内容显示14309953.1.2参数设置 1590003.2数据采集16273393.2.1Linu*下的串口设置 16109883.2.2Linu*串口通信程序 17111013.3数据处理1855623.4系统测试验证18186954、总结1930628参考文献 20-.z摘要随着我国成品油市场对国外石油公司的开放,如何及时、准确、全面地掌握成品有销售、库存信息,并配合物流管理系统的运用,减少重复劳动、提高管理效率、降低系统运营本钱成为国内石油公司应对外来竞争必须面对的问题。对加油站储油油品信息的采集是掌握成品油销售、库存等信息的重要手段。通过对罐内油品温度、液位、油气浓度的实时监控,石油公司就可以直接或间接地获取油品销售过程中的各种信息。目前加油站所用仪表尚不能满足国内石油公司对成品油销售过程信息管理需求,存在的问题主要有:〔1〕检测仪表功能单一,不能满足信息管理需求;(2)现场复杂多样,仪表的适应性亟待加强;〔3〕不能满足现代加油站分布式信息管理的要求;〔4〕运行速度慢、精度低、价格高,不能满足大量的现场应用要求。本文对基于AT91RM9200的嵌入式系统的软硬件开发进展深入研究,提出将嵌入式系统应用到加油站油品信息检测领域的设计方法。将32位微处理器与嵌入式实时操作系统相结合,通过TCP/IP协议将嵌入式系统接入到Internet,实现了通信互联网工业现场数据的廉价的方案。在硬件方面,本文设计了一个基于32位ARM微处理器AT91RM9200的硬件平台,并结合嵌入式系统远程监控的需要,给出了硬件电路的整体设计原理和实现方法。软件方面,为了更有效的管理和拓展系统功能,使用linu*实现了加油站信息管理在arm系统上的应用。设计内容及要求1.1设计内容本次设计选择了目前精度高、方便安装的磁致伸缩液位仪,该仪表可以提供油品液位、水位、罐内温度等参数,通过简单的查询指令即可获取实时的液位、温度等数据。嵌入式系统通过RS485总线按时间片轮转的方法采集油罐内各个参数,并对其加工提炼,形成各种操作记录着本机上,实现本地的查询功能;本文设计的嵌入式系统具有网络接口,通过系统支持的网络协议,可以再从网上客户-.z端现场仪表,系统采用LED实现显示数据,可以设定系统参数等。具体任务模块如下:液位仪局部,用于测量油罐的油位、水位和温度;32位嵌入式系统板硬件平台的实现;嵌入式软件平台包括:BootLoader、Linu*操作系统的实现;嵌入式网络效劳器的实现;嵌入式数据库的实现;系统应用程序开发设计及实现。本文主要围绕如何采用嵌入式系统实现油罐信息的采集工作展开的。工作的内容主要包括总体设计〔油罐信息采集的整体构造〕如图1-1所示、嵌入式系统硬件设计、嵌入式操作系统引导程序的建立等。图1-1系统整体构造框图1.2设计要求1.2.1嵌入式系统开发概述嵌入式系统一般没有足够的资源在本机运行开发工具和调试工具,如1-2所示,嵌入式系统的软件开发采用一种穿插编译调试的方式。穿插编译调试环境建立在宿主机上,对应的开发板叫目标板。开发时使用宿主机的穿插编译、汇编及连接工具形成可执行的二进制代码,然后把生成的可执行文件通过网络或串口下载到目标机上运行。图1-2嵌入式系统的开发模式在开发嵌入式系统是,通常使用具有inter*86体系构造的个人计算机作为开发平台进展编辑、编译、调试代码;而开发出来的代码却在开发的目标产品上运行。在目标板上只运行最后产品所需的代码,不包括开发工具和环境。在主机上使用可以长生targetCPU目标代码宿主机和目标板的处理器一般不同。在本文的实际开发中,使用Redhat9.0作为宿主机的操作系统,然后需要在宿主机上建立穿插编译调试的开发环境。图1-3嵌入式系统开发过程油罐信息采集系统的构造如图1-4所示,本文的嵌入式系统位于中间层,主要完成油罐液位、温度等信息的收集、加工、存储,并将数据通过以太网上传到效劳器的功能。图1-4油罐信息采集的拓扑构造1.2.2油罐信息采集系统功能分析嵌入式系统硬件局部通常由嵌入式微处理器、电源、存储单元、通信单元、人机接口单元、控制输出、传感器输出等。由于嵌入式系统是软硬件可裁剪的,具体需要哪些硬件局部要根据系统要完成的功能来定。本系统需要实现的功能如下:显示局部采用液晶显示器或VGA显示器;可形成2个灌可同时进展装卸操作记录,记录存储空间不少于20条记录可查询可通过串口和以太网上传;实现对所有灌的油位、水位、温度、油气浓度的上下报警的检测并形成作业记录,记录的存储空间不少于20条,记录可查询可通过串口和以太网上传;能够打印卸油记录功能。1.2.3嵌入式系统微处理器选择本文主要功能是实现对油罐液位、温度、油气浓度等参数的采集,完成数据的加工处理、数据状态显示、网络信息共享等功能。Atmel公司生产的ARM芯片AT91RM9200是一款公业级微处理器,具有较强的环境适应性能,不但性能卓越,同时价格低廉,其集成度也十分高。作为嵌入式领域内的应用系统设计,不仅考虑到系统应用的具体要求,还要考虑未来系统功能的扩展。AT91RM9200使用ARM920T内核开发,主要功能模块如以下图1-5显示的参数:图1-5微处理器功能参数2、概要设计2.1系统存储器设计AT91RM9200本身集成了存储控制器,他由外部存储器提供必要的控制信号,可多种类型的存储器设备如SRAM,PROM,EPROM,FLASH,SDRAM等。存储空间的译码分两级,第一级地址译码由存储控制器致执行,即由高级系统总线执行;区域为0的内部存储器地址,由第二级译码分为1M字节内部存储空间,区域15为外设地址,且提供高级外设总线的。其他区域未使用,使用它进展时,将向主机发出异常中断。嵌入式系统的存储器一般由两局部构成:Flash和SDRAM。Flash存储器具有低功耗、大容量、擦写速度快、可整片或分扇区在系统编程等特点,因而在各个嵌入式系统中得到广泛的应用。它作为一种非易失性存储器,Flash在系统中通常用于存放程序代码、常量表以及一些在系统掉电后需要保存的用户数据的等。常用的Flash为8位或16位的数据宽度,编程电压为3.3V或5V。本文Flash存储器采用Intel公司的E28F128J3A,容量为16M,主要用于存放操作系统导引程序、操作系统、应用程序、系统参数、运行数据等。该Flas存储器被接到AT91RM9200片选NCSO所分配的地址空间内,配置数据总线宽度为16位。如图2-1所示,将AT91RM9200的地址线A[24-1]接到存储器的地址线A[24-1],数据总线D[15-0]接Flash的D[15-0]。图2-1Flash存储器如图2-2,系统的数据存储器采用两片现代公司的HY57V561620,该芯片为4*16M的SDRAM,16位的数据总线,采用单电源3.3V供电。两片16位的SDRAM配置成32位的数据总线,其容量为16M字节,将其接到NCS1所分配的存储区域,地址空间为0*20000000~0*20ffffff。图2-2随机存储器2.2系统网络接口设计随着嵌入式系统在人们生产、生活中的运用越来越广,人们对他的分析研究也越来越多,嵌入式系统与通信、网络技术的结合可以极大地增强网络的智能化与灵活性,扩展通信功能,从而实现多种通信系统之间的互联网互通。计算机网络的接口主要由两个局部构成:〔1〕以太网控制器;〔2〕物理层芯片。根据以太网控制器的功能及对发送和接收数据帧的控制原理,以太网控制器在嵌入式系统中有两种存在方式:一种是处理器内部集成;另一种是通过扩展以太口网接口控制芯片来完成以太网通信的控制。本文所选的处理器芯片AT91RM9200内部集成以太网口控制器,该控制器兼容IEEE802.3协议标准,具有对网上数据帧的控制功能,提供MII标准管理通信接口。图2-3选择了具有MII标准的物理层接口芯片DM9161与AT91RM9200芯片内部的网络控制器配合,构成嵌入式系统的以太网接口。图2-3由DM9161构成的网络接口2.3配置开发主机在计算机上使用Linu*进展嵌入式软件开发的方法是,使用宿主机上的穿插编译、汇编及连接工具形成可执行的二进制代码,然后把可执行文件烧写到目标机上运行。调试时的方法很多,可以使用串口、以太口等。在进展嵌入式开发前第一步的工作就是要安装一台装有指定操作系统的计算机作为宿主开发机,对与嵌入式Linu*,宿主机上的操作系统一般使用RedHatLinu*。嵌入式开发通常要求宿主机配置有网络,支持nfs然后要在宿主机上建立穿插编译调试环境。具体配置开发主机有以下几个步骤:安装操作系统采用在windows下安装虚拟机后,再在虚拟机上安装Linu*操作系统。安装穿插编译工具穿插编译工具是在宿主机上生成的目标代码的工具,使用GCC-编译。下载该文后对其进展解压安装,安装完成后生成的arm/2.95.3和arm/3.4.1目录,该目录中的内容可以生成ARM可执行代码的穿插编译环境。安装嵌入式开发软件Qt是一个多平台的c++图形用户界面应用程序框架,它提供了图形用户界面所需的元素,基于面向对象的编程思想,用户对其对象的扩展比较容易形成。以下是Qt软件的安装过程,下载相关资料解压后进展如下操作:安装Tmake在Linu*命令下运行以下命令执行如下命令:执行如下命令:执行如下命令:执行如下命令:在Windows将串行口配置成波特率115200,字节长度8B,一个停顿位,无校验位,硬件流控制。然后再Linu*环境下配置NFS和TFTP效劳。2.4AT91RM9200的启动过程图2-4AT91RM9200的片引导过程AT91RM9200处理器本身带有128K字节的BootROM和16K字节的SRAM,有片内和片外两种启动模式,如果芯片引脚BMS为高电平时选择BootROM内的加载程序,该程序安照图2-4顺序在非易失性存储器中收索最新的加载程序,如果有则放在SRAM中执行,否则将启动调试串口通过*MODEM协议或通过USB设备端口使用DFU协议进展文件下载。2.5嵌入式Linu*内核的移植选择一个优秀的嵌入式操作系统是开发嵌入式系统成功的关键。它除具有一般操作系统的最根本特点,还需要具备以下特点:、良好的移植性、占用尽可能少的硬件资源、高可靠性等。嵌入式Linu*采用微内核体系构造,这使得内核小巧而可靠,易于ROM固化,并可以模块化扩展,用户可根据不同的任务定制系统内核。Linu*内核的组织形式是整体构造,它的内核由很多进程组成,每个内核可独立编译,然后用连接器将其连接在一起成为一个总的目标程序。其特点是:内部构造简单、子系统建议与、内核工作效率高等。ARMLinu*内核编译过程如下所述:下载好所需文件后完成解压和打补丁:修改MakefileLinu*操作系统上很多软件包都是使用make程序和makefile文件来实现自动编译,make程序的目的就是自动确定一个软件包的哪些局部需要重新编译,并用特定的命令去编译他们。为了实现穿插编译内核的目的,需要修改内核目录树根下的makefile文件:然后设置PATH环境变量,使其可以找到穿插编译工具链配置内核和编译内核为了使Linu*内核能够运行于AT91RM9200目标板上,需要重新配置Linu*系统内核,去掉不必要的功能。嵌入式Linu*内核配置包括以下内容:源代码稳定程度、可装载的模块支持、固态存储设备支持、块设备、网络、字符设备等。配置内核的命令为:*makemenuconfig此命令将以图形的方式让程序人员选择需要内核的哪些组成局部,进展恰当的选择后,保存退出内核。*make此命令按照配置的内容将在boot/pressed/目录下生成zImag文件,该文件为压缩的Linu*系统内核。〔4〕添加Flash问件系统驱动首先进入drivers/mtd/maps/目录下,编写flash芯片的map文件,取名为rm9200-strata.c。在map文件中需要定义Flash的基地址、大小、宽度、分区表、读写函数等。分区表局部内容如下:这里将Flash分成4个分区,分别存放引导装载程序、内核根文件系统、用户数据区。2.6建立文件系统Linu*根文件系统由一系列的目录以及目录下的文件构成,这些文件可分为3类:Linu*命令文件、系统配置文件、Linu*常用命令文件。Linu*文件系统目录包括bin、etc、home、lib、mnt等,其中bin目录下存放的是系统可执行文件:dev目录下为设备文件;lib下为库文件;etc下为系统配置文件。由于etc目录存放配置文件,这个目录通常需要修改,所以在Linu*脚本中将etc,目录挂载ramfs文件系统,然后将mnt/etc目录中的所有配置文件拷贝到etc中。2.7嵌入式系统数据库的实现常见基于Linu*平台的数据库有Oracle、Sylbase、Informi*、IBMDB2等。但这些数据库系统体积庞大并要求付费使用,因此并不适合嵌入式系统的应用。可以选择以下几种作为嵌入式系统的数据库:msql、SQLite等。其中SQLite支持绝大多数标准的SQL语句,具有体积小、运行速度快等特点,在操作语句上更类似于关系类型数据库的使用,其应用包括商业性的产品无任何限制。基于这些优点此次课程设计选择了SQLite的数据库作为系统运行的数据库。SQLite体系构造在ARM系统上实现过程如以下图2-5所示:图2-5SQLite体系构造3、应用程序设计为了实现本次课程设计的目的,要在上述的硬件平台上添加应用程序。本章节的内容设计了面向油罐液位检测的应用程序。油罐系统检测的软件功能主要4个方面:〔1)用户界面;〔2〕串口通信;〔3〕网络通信;〔4〕数据处理。软件总构造如图3-1所示。图3-1软件系统构造图3.1用户界面设计图形用户界面是I嵌入式设备的重要组成局部,是设备与其用户交互的接口。然而传统的界面太过繁琐,对于Linu*下的嵌入式系统开发有多种图形用户界面来选择,如microwindows、opengui、QT/Embeddedd等等。本文主要用的是QT/Embeddedd用户界面,他是针对嵌入式Linu*开发的工具,Qt封装了一些常用的类,而且这些类的名字都以Q字母开头命名。所以选择此图形用户界面更简单的来实现本次设计的目的。3.1.1内容显示系统显示内容包括显示历史数据和实时数据如图3-2。历史数据包括油罐车加油记录、油品销售记录、警报记录、交接班记录等。实时数据包括油罐的库存、液位、温度等。如果用户需要单个油罐的信息就要将指定的油罐内容提出来单独显示。图3-2系统显示内容3.1.2参数设置系统的设置内容如图3-3所示包括:时间设置、油罐设置、罐表输入、传感器设置等。由于系统各个报表中记录都是时间相关的,因此程序应能够更改系统时间,并且只有系统管理员能修改。油罐设置的内容包括:油罐编号、油罐容量、油位报警上下限、水位报警上下限、温度报警上下限等。每个油罐都对应于一个罐表,为了能够管理油罐必须输入罐表。管理员设置包括添加、修改管理员、删除、操作员的用户。图3-3系统参数设置3.2数据采集本文通过智能传感器通信来获取油罐参数的信息,通信接口采用RS485,是串行通信的一种方式。3.2.1Linu*下的串口设置串行口是计算机一种常用的接口,具有接线少、通信简单的优点,因而得到广泛的使用。本文中使用的嵌入式处理器芯片提供四个USARTIE接口,通过这些接口与有关信息检测传感器、主机、打印机等通讯。串行通信的根本参数有:波特率、数据位、停顿位及校验方式等。在Linu*程序设计中,串口的设置主要是设置termios构造体。该构造的定义在头文件termios.h中。在Linu*中设备作为文件的形式操作,要一个串口,只要翻开相应的设备文件,然后向这个文件读写数据就可以完成数据的接收和发送。对串口的所有操作跟普通文件一样。使用的文件操作如下:Intopen(constchar*pathname,intflags);Intclose(intfd);参数pathname指向欲翻开的文件路径字符串,参数flags为设置翻开方式,open系统调用返回一个整形文件标识符,以后所有的端口操作都针对这个标识符进展。Close的参数fd为希望关闭的文件标识。3.2.2Linu*串口通信程序在本次设计中,需要通过AT91RM9200的UART接口连接油罐传感器及其他设备,发送指令接收数据。同windows程序设计相似,Linu*串口通信最为关键的是串口通讯参数的设置。本文中串口的操作流程如图3-4所示。图3-4传感器通信模块流程图本次设计是采用一个专门的线程来处理智能传感器通信的,首先,该线程初始化串行端口,设置目标传感器为1,发送查询指令、读取返回数据、存储所得数据,而后循环查询目标传感器。每次查询得到数据后,对主线程发送信号,通知其处理数据。3.3数据处理数据处理是将传感器得到的数据通过运算得到油品的体积、水的体积、油罐车卸油记录、是否存在溢出、渗流等异常情况。本文使用分段插值法来处理得到的数据,以下是对分段插值法的介绍。分段插值法对于降低插值多项式的次数,减少运算量有较大的帮助。但是当插值点位于分段区间的边缘时,相邻分段的导数不连续,因而连接曲线不光滑。其计算过程包括查找点所在的分,以及如何分段的问题。因此有必要对分段插值法进展改进。新的方法是让目标点所在的区间随目标点移动,这就可以防止了相邻区间不连续问题。改进的方法是在插值点前取一个节点、插值点后取n-1个连续节点其流程如图3-5所示。图3-5分段插值流程法3.4系统测试验证完成上述程序后,使用arm-Linu*-gcc穿插编译器后,修改将得到StationManage填写到/etc/init/rcs文件,一并写到Flash存储器中,启动后,LED界面如图3-6所示。图3-6系统人机界面点击进油报表、库存报表、警告报表、交接班报表可进入相应的显示界面,其中库存报表如图3-7所示。图3-7记录显示总结嵌入式技术是近年来开展起来的新技术,随着嵌入式处理器性能的提高、价格的降低,嵌入式系统的应用逐渐深入人类的社会生活各行各业中。人们对嵌入式计算机系统的研究是目前计算机领域的热点之一。国际石油巨头进军中国,必然会加剧国内石油市场的竞争。如何在这场竞争中处于不败之地,这将涉及到石油的生产、加工、销售等各个环节,其中适时掌握属于加油站信息是其中尤为重要的环节。本文就是将计算机开展的前沿技术-嵌入式系统应用到加油站信息采集领域,以实现向石油公司提供加油站加油供销信息,提高系统平安的目的,从而提高管理效率、增强企业竞争力。本文主要围绕加油站油罐检测系统的开发,深入研究基于AT91RM9200的嵌入式系统软、硬件开发技术,其中在系统上建立操作系统是嵌入式设计的根底知识,也是本文设计最重要的一点。通过分析Linu*内核的构造、启动过程,本文将Linu*操作系统成功地移植到系统板上,实现了系统的任务调度、中断管理等功能;实现了Flash片上文件系统,用于存放系统程序、运行数据等;另外通过d、CGI、Sqlite相结合实现了嵌入式系统上网的效劳,客户端通过网络可获得实时数据,实现了网上油品的信息管理。由于时间和精力所限,本次课程设计并没有尽善尽美。如何将嵌入式更少的利用到生活生产中还有待深入地研讨

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论