基于ARM7的煤粉浓度测量仪的设计毕业论文.doc_第1页
基于ARM7的煤粉浓度测量仪的设计毕业论文.doc_第2页
基于ARM7的煤粉浓度测量仪的设计毕业论文.doc_第3页
基于ARM7的煤粉浓度测量仪的设计毕业论文.doc_第4页
基于ARM7的煤粉浓度测量仪的设计毕业论文.doc_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

基于ARM7的煤粉浓度测量仪的设计毕业论文目 录摘要IAbstractII第1章 绪论11.1 课题背景11.2 煤粉浓度测量仪的研究内容11.3 测量类仪器仪表的发展趋势11.4 本文的内容安排2第2章 煤粉浓度测量仪的总体设计32.1 煤粉浓度测量仪的设计原理32.2 煤粉浓度测量仪的硬件设计42.2.1 煤粉浓度测量仪硬件组成42.2.2 ARM微处理器概述42.2.3 LPC2368简介52.2.4 迪文液晶简介62.3 煤粉浓度测量仪的下位机软件设计62.3.1 煤粉浓度测量仪下位机软件概述62.4 煤粉浓度测量仪的上位机软件设计62.4.1煤粉浓度测量仪上位机软件概述62.4.2 MFC编程原理72.5 本章小结9第3章 煤粉浓度测量仪的硬件设计103.1 数据采集部分103.2 数据传输部分113.3 人机交互部分113.4 本章小结12第4章 煤粉浓度测量仪的下位机软件设计134.1 煤粉浓度测量仪的软件组成134.2 uCOSII操作系统的移植134.2.1 嵌入式操作系统介绍134.2.2 uCOSII的文件结构以及与硬件的关系154.2.3 uCOSII操作系统的移植164.3 应用程序的开发164.3.1 硬件初始化任务软件设计164.3.2 数据采集任务软件设计174.3.3 USB通信任务软件设计174.2.4触摸屏检测显示任务软件设计184.4 本章小结19第5章 煤粉浓度测量仪的上位机软件设计215.1 煤粉浓度测量仪USB驱动215.1.1 USB简介215.1.2 WinUSB简介215.1.3 安装WinUSB.sys作为功能驱动225.1.4 使用WinUSB API235.2 煤粉浓度测量仪上位机软件的实现235.3 煤粉浓度测量结果的软件操作245.4 本章小结26结论27参考文献28致谢30附录131附录237附录341附录445III第1章 绪论 第1章 绪论1.1 课题背景该课题的选取源自一位客户的要求,煤粉浓度测量仪是一种应用在煤矿、石油开采中的仪器,国内相关的仪表十分稀少,大部分都需要从国外进口。这类的仪器往往采用低端的处理器,数据采集的精度和速度有时达不到要求。在仪器的设计中大多数都采用传统的前后台程序,这样就使得仪器在矿井、油井等恶劣的条件下工作不稳定,甚至死机,并且传统的前后台程序不利于系统的升级和功能的扩展。另外,仪器的人机交互往往采用键盘输入,在煤矿等粉尘较多的环境就会降低仪器的使用寿命,造成不必要的损失。煤粉浓度测量仪的设计不仅是要完成功能的实现,更重要的是探究一种新的技术在仪器仪表中带来的优势,为今后高性能产品的研发做好准备。1.2 煤粉浓度测量仪的研究内容煤粉浓度测量仪所要研究和解决的问题包括以下几个方面:(1)uCOSII操作系统移植 在产品中嵌入操作系统,不仅是产品的开发、维护、升级变得方便,而且将任务交给操作系统进行管理和维护,更加提高了系统的稳定性。(2)USB数据传输 现在USB技术越来越成熟,应用领域越来越广泛,大部分计算机,尤其是笔记本电脑已经去掉了串口等传统的通信端口,因此采用USB接口进行下位机与上位机的通信十分必要。(3)触摸屏显示 采用彩色触摸屏显示,使人机交互界面变的更加友好,使仪器的操作更加方便。1.3 测量类仪器仪表的发展趋势(1)计算机技术在仪器分析中的应用将更加普遍和深入,智能化的仪器分析方法将逐渐成为常规分析的重要手段。(2)仪器分析方法的灵敏度和选择性将进一步提高,许多新的超痕量分析方法和超微量分析方法将逐步建立。(3)仪器分析方法将在更大的程度上应用于物质的结构分析,状态和价态分析,表面及微区分析等,同时在许多学科的研究工作中将得到越来越广泛的应用。(4)仪器分析中各种方法的联用,将进一步发挥各种方法的效能,这种联用方法无疑是解决复杂分析问题的有力手段。(5)仪器分析进一步与生物医学结合,用于生命过程的研究,并作为有效的临床诊断方法,另一方面,生物医学中的酶催化反应和免疫反应等技术和成果也将进一步用于仪器分析,开拓新的领域和方法,如酶电极,免疫传感器,免疫伏安法,免疫发光分析法等。(6)仪器分析法将在各种工业流程及特殊环境中的自动监控或遥控检测中发挥重大的作用,在这一领域中,各种新型传感器的研制将是十分重要的。1.4 本文的内容安排本文共分为五章,各章的内容安排如下:第1章 简述了该课题的选择背景,对煤粉浓度测量仪的实现原理做了简单的介绍,说明了煤粉浓度测量仪的主要研究内容。第2章 总体介绍了煤粉浓度测量仪的设计原理,对煤粉浓度测量仪的硬件、下位机软件以及上位机软件的设计思路进行了总体概述。对涉及到的技术和芯片做了简要的说明。第3章 详细阐述了煤粉浓度测量仪的硬件系统设计以及具体的实现步骤,包括ARM的体系结构,LPC2368处理器的介绍以及所涉及的硬件电路的具体说明。第4章 详细介绍了煤粉浓度测量仪下位机软件的设计思路,给出了煤粉浓度测量仪下位机软件详细流程图。下位机软件包括数据采集、触摸屏控制及数据传输等。第5章 详细叙述了煤粉浓度测量仪上位机软件的设计方法,对数据的存储,波形的绘制,WinUSB API的使用做了详细的说明。13第2章 煤粉浓度测量仪的总体设计 第2章 煤粉浓度测量仪的总体设计2.1 煤粉浓度测量仪的设计原理 目前没有一种传感器能够精确地测量一种溶液的的浓度,但是对重力的测量技术已经十分成熟,测量精度可以达到万分之一,因此本系统的总体设计思路是首先通过测浮力测得溶液密度,然后采用标定法求的溶液浓度。密度与浓度的对应关系如下所示(该对应关系由客户提供):表1-1 密度与浓度对应关系密度(g/cm3)煤粉质量浓度(%)1.0000 0.00 1.0015 0.31 1.0027 0.93 1.0040 1.54 1.0065 2.14 1.0077 2.74 1.0089 3.03 1.0102 3.61 1.0127 4.19 1.0139 5.33 1.0151 5.88 1.0164 6.71 1.0176 7.51 1.0189 9.09 1.0201 10.61 1.0213 12.57 1.0238 13.51 2.2 煤粉浓度测量仪的硬件设计 2.2.1 煤粉浓度测量仪硬件组成该系统的硬件主要由三个部分组成:数据采集模块,USB数据传输模块,人机交互模块。其总体框图如图2-1所示。数据采集模块采用高精度模数转换器AD7190,提高了仪器的精度和稳定性。为了节省成本,数据传输模块并没有采用专用的USB芯片,而是利用了LPC2368自身的USB资源。人机交互界面采用了一款工业级触摸液晶显示屏,使整台仪器的界面更加友好,操作更加方便。图2-1 煤粉浓度测量仪原理示意图2.2.2 ARM微处理器概述ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字9。1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,这样使得ARM处理器技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。2.2.3 LPC2368简介LPC2368微处理器是NXP半导体公司基于ARM7TDMI-S内核推出的一款高性能、低功耗、高集成度并具有工业级温度范围和性能的微处理器。LPC2368具有以下特点:ARM7TDMI-S处理器,可在高达72MHz的频率下运行;具有在系统编程(ISP)和在应用编程(IAP)功能;以太网接口具有16KB静态RAM,USB接口具有16KB静态RAM;先进的向量中断控制器,支持多达32个向量中断;支持多种串行数据接口协议;安全数字(SD)/多媒体存储卡(MMC)接口;6路 /8路 10位A/D转换器;10位D/A转换器;标准的ARM测试/调试接口,与现有工具兼容;仿真跟踪模块,支持实时跟踪;4种低功耗模式:空闲、睡眠、掉电和深度掉电;2个独立的电源域,允许根据所需特性对功耗进行适当调整;LPC2368处理器由ARM7TDMI-S内核及各个通用外围设备模块组成。ARM7TDMI-S内核是整个处理器的运算和控制核心。通用外围设备,便于配置,同时可以降低整个嵌入式产品的成本和功耗。2.2.4 迪文液晶简介触摸屏选择北京迪文科技有限公司生产的DMT3224CS035_01WT,其分辨率为324*640,工作温度范围为-2070,工作电压为5V,该模块支持多语言,多字体,任意大小的文本显示,支持用户自行设计字库,128M存储器,支持串口图片下载更新,图形功能完善,支持触摸屏,并具有触摸屏漂移处理技术,内嵌拼音输入法,数据排序等简单算法处理。2.3 煤粉浓度测量仪的下位机软件设计2.3.1 煤粉浓度测量仪下位机软件概述该系统的软件主要由uCOSII操作系统和应用软件两大部分组成,其中应用软件主要包括三个任务:数据采集任务,数据传输任务,触摸屏控制显示任务。该系统的下位机软件的总体框图如图2-2所示:操作系统初始化任务一:初始化硬件任务二:采集数据任务三:触摸屏显示任务四:数据上传 图2-2 下位机软件框图2.4 煤粉浓度测量仪的上位机软件设计 2.4.1煤粉浓度测量仪上位机软件概述该系统的上位机软件使用微软公司的visual stdio 2005软件进行编写,利用微软基础类库即MFC可以很方便的实现该上位机的功能。为了减少工作量,并没有专门编写USB的驱动程序,而是直接采用微软提供的USB通用驱动WinUSB.sys作为煤粉浓度测量仪的USB驱动程序,同时微软以动态链接库的方式提供了操作在驱动的API函数,使我们的桌面USB程序变得更见简单易用。该上位机的关系框图如图2-3所示:WinUSBMFC应用程序图2-3 上位机软件框图2.4.2 MFC编程原理(1) MFC介绍 近几年来,面向对象技术无论是在理论还是实践上都在飞速地发展。面向对象技术中最重要的就是“对象”的概念,它把现实世界中的气球、自行车等客观实体抽象成程序中的“对象”。这种“对象”具有一定的属性和方法,这里的属性指对象本身的各种特性参数。如气球的体积,自行车的长度等,而方法是指对象本身所能执行的功能,如气球能飞,自行车能滚动等。一个具体的对象可以有许多的属性和方法,面向对象技术的重要特点就是对象的封装性,对于外界而言,并不需要知道对象有哪些属性,也不需要知道对象本身的方法是如何实现的,而只需要调用对象所提供的方法来完成特定的功能。从这里我们可以看出,当把面向对象技术应用到程序设计中时,程序员只是在编写对象方法时才需要关心对象本身的细节问题,大部分的时间是放在对对象的方法的调用上,组织这些对象进行协同工作。MFC的英文全称是Microsoft Fundation Classes,即微软的基本类库,MFC的本质就是一个包含了许多微软公司已经定义好的对象的类库,我们知道,虽然我们要编写的程序在功能上是千差万别的,但从本质上来讲,都可以化归为用户界面的设计,对文件的操作,多媒体的使用,数据库的访问等等一些最主要的方面。这一点正是微软提供MFC类库最重要的原因,在这个类库中包含了一百多个程序开发过程中最常用到的对象。在进行程序设计的时候,如果类库中的某个对象能完成所需要的功能,这时我们只要简单地调用已有对象的方法就可以了。我们还可以利用面向对象技术中很重要的“继承”方法从类库中的已有对象派生出我们自己的对象,这时派生出来的对象除了具有类库中的对象的特性和功能之外,还可以由我们自己根据需要加上所需的特性和方法,产生一个更专门的,功能更为强大的对象。当然,你也可以在程序中创建全新的对象,并根据需要不断完善对象的功能。 正是由于MFC编程方法充分利用了面向对象技术的优点,它使得我们编程时极少需要关心对象方法的实现细节,同时类库中的各种对象的强大功能足以完成我们程序中的绝大部分所需功能,这使得应用程序中程序员所需要编写的代码大为减少,有力地保证了程序的良好的可调试性。(2) MFC的关键技术 MFC的关键技术是消息映射机制MFC定义了下面的两个主要结构: AFX_MSGMAP_ENTRY和AFX_MSGMAP两个数据结构, AFX_MSGMAP主要作用是两个,一:用来得到基类的消息映射入口地址。二:得到本身的消息映射入口地址。实际上,MFC把所有的消息一条条填入到AFX_MSGMAP_ENTRY结构中去,形成一个数组,该数组存放了所有的消息和与它们相关的参数。同时通过AFX_MSGMAP能得到该数组的首地址,同时得到基类的消息映射入口地址,这是为了当本身对该消息不响应的时候,就调用其基类的消息响应.在MFC框架下,一般一个消息的处理过程是这样的。 函数AfxWndProc接收Windows操作系统发送的消息。 函数AfxWndProc调用函数AfxCallWndProc进行消息处理,这里一个进步是把对句柄的操作转换成对CWnd对象的操作。 函数AfxCallWndProc调用CWnd类的方法WindowProc进行消息处理。注意AfxWndProc和AfxCallWndProc都是AFX的API函数。而WindowProc已经是CWnd的一个方法。所以可以注意到在WindowProc中已经没有关于句柄或者是CWnd的参数了。 方法WindowProc调用方法OnWndMsg进行正式的消息处理,即把消息派送到相关的方法中去处理。消息是如何派送的呢?实际上在CWnd类中都保存了一个AFX_MSGMAP的结构,而在AFX_MSGMAP结构中保存有所有我们用ClassWizard生成的消息的数组的入口,我们把传给OnWndMsg的message和数组中的所有的message进行比较,找到匹配的那一个消息。实际上系统是通过函数AfxFindMessageEntry来实现的。找到了那个message,实际上我们就得到一个AFX_MSGMAP_ENTRY结构,而我们在上面已经提到AFX_MSGMAP_ENTRY保存了和该消息相关的所有信息,其中主要的是消息的动作标识和跟消息相关的执行函数。然后我们就可以根据消息的动作标识调用相关的执行函数,而这个执行函数实际上就是通过ClassWizard在类实现中定义的一个方法。这样就把消息的处理转化到类中的一个方法的实现上。2.5 本章小结本章概括介绍了煤粉浓度测量仪的实现原理,从该仪器的硬件、下位机软件和上位机软件三个方面概括介绍了煤粉浓度测量仪的设计思路,并给出了系统框图和程序流程图。同时对实现该系统所用到的芯片及技术进行了简要的介绍。第3章 煤粉浓度测量仪的硬件设计 第3章 煤粉浓度测量仪的硬件设计为了能够使所设计的系统稳定的工作,我们严格按照LPC2368官方给出的硬件设计参考设计了煤粉浓度测量仪硬件电路,该硬件电路包括数据采集部分、数据传输部分、人机交互部分。3.1 数据采集部分数据采集系统是仪器正常工作的保障,数据采集系统的精度和稳定性也决定了整个系统的精度和稳定性,因此选用一款合适的AD模数转换器并设计一个稳定的硬件电路十分重要。该系统采用ADI公司推出的一款模数转换器AD7190,该模数转换器将数据速率和无噪声分辨率实现了最佳组合,使工业设备制造商能够提高精密测量仪器仪表的工作速度和精度。它集成一个低噪声、24位-型模数转换器(ADC)。片内低噪声增益级意味着可直接输入小信号。该器件的输出数据速率可在4.7 Hz至4.8 kHz的范围内变化。用于传感器电压输出与桥压相关,为了提高系统的稳定性,AD7190的参考电压并没有采用高精度稳压源,而是将桥压引出经过运算放大器后作为了AD7190的参考电压,整个数据采集系统的硬件连接如图3-1所示:图3-1 数据采集电路图3.2 数据传输部分数据传输部分可以通过USB接口将得到的数据上传到PC机上位机软件进行显示并存储。该系统利用LPC2368自身的USB资源来实现USB通信的功能。LPC2368的USB接口符合USB2.0协议,支持全速传输,可以满足系统的需要,硬件连接图如图3-2所示:图3-2 USB接口电路图3.3 人机交互部分人机交互部分采用北京迪文科技有限公司生产的触摸液晶屏实现了对煤粉溶液浓度的显示以及人对煤粉浓度测量仪的操作。该液晶屏可以通过串口对其进行显示控制操作。这里采用串口一与迪文触摸液晶屏进行连接,硬件连接图如图3-3所示:图3-3 液晶接口电路图3.4 本章小结本章详细介绍了煤粉浓度测量仪的硬件组成。硬件设计是整个系统构建的第一步,操作系统移植和应用程序的开发都依赖于硬件系统,硬件系统的性能和稳定性会直接影响整个系统最终的指标。硬件电路设计在系统设计中起到至关重要的作用。第4章 煤粉浓度测量仪的下位机软件设计第4章 煤粉浓度测量仪的下位机软件设计4.1 煤粉浓度测量仪的软件组成煤粉浓度测量仪的软件系统由uCOSII操作系统,应用程序构成,应用程序又主要分为了数据采集任务、数据传输任务、触摸屏显示任务三个功能任务和一个硬件初始化任务。其中应用程序的开发是整个系统的主要工作,也是整个系统开发的难点。煤粉浓度测量仪的软件结构框架如图4-1所示。图4-1 煤粉浓度测量仪的软件组成4.2 uCOSII操作系统的移植4.2.1 嵌入式操作系统介绍嵌入式操作系统(Embedded Operating System)是一种用途广泛的系统软件。嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、调度工作,控制协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前,已推出一些应用比较成功的嵌入式操作系统产品系列。随着Internet技术的发展、信息家电的普及应用及嵌入式操作系统的微型化和专业化,嵌入式操作系统开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。嵌入式操作系统是相对于一般操作系统而言的,它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等外,还有以下特点:(1)可装卸性、开放性、可伸缩性的体系结构。(2)强实时性 嵌入式操作系统实时性一般较强,可用于各种设备控制当中。(3)统一的接口 提供各种设备驱动接口和应用程序接口。(4)操作方便、简单、提供友好的图形GUI,图形界面。(5)固化代码 在嵌入系统中,嵌入式操作系统和应用软件被固化在嵌入式系统的ROM中。(6)更好的硬件适应性,也就是良好的移植性。几种主流的嵌入式操作系统:Vxworks: 美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统。以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖领域。Windows CE: 微软公司推出的面向移动智能设备的实时操作系统。凭借广泛的适应性、丰富的功能、强大的多媒体能力、友好的开发环境,Windows CE已经广泛应用于掌上电脑、智能手机、汽车电子等领域。Palm OS: Palm公司开发的专用于PDA上的一种操作系统,这是PDA上的霸主,一度普占据了90%的PDA市场的份额。虽然其并不专门针对于手机设计,但是Palm OS的优秀性和对移动设备的支持同样使其能够成为一个优秀的手机操作系统。嵌入式Linux: 近两年来,Linux在嵌入式领域异军突起,他的独特性,使其作为开发嵌入式产品的操作系统具备巨大的潜力。Linux具有一些独特的优势:层次结构及内核完全开放;强大的网络支持功能;具备一整套工具链;广泛的硬件支持特性。uCOSII:一个源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统。其绝大部分源码是用ANSI C写的,并且通过了联邦航空局商用航行器认证,符合RTCA(航空无线电技术委员会)DO-178B标准,自1992年问世以来,uCOSII已经应用到数以百计的产品中。由于uCOSII操作系统具有源代码开放,可移植性强,性能稳定,实时性强,可裁剪,占用资源少等特点,使uCOSII成为煤粉浓度测量仪的首选操作系统。4.2.2 uCOSII的文件结构以及与硬件的关系图4-2示意了uCOSII的文件结构以及与硬件的关系,uCOSII的内核结构主要有三部分构成,uCOSII与处理器无关的代码、uCOSII配置与应用相关的代码、uCOSII移植与处理器相关的代码。 图4-2 uCOSII的文件结构uCOSII与处理器无关的代码为我们提供了一些系统API函数供我们在应用程序中调用,在实际应用中这部分代码是不需要更改的。uCOSII配置文件和具体的应用程序相关,我们需要根据具体的应用改变两个文件的内容,uCOSII移植文件和具体的处理器相关,当移植uCOSII操作系统到不同的处理器时需要更改这三个文件。4.2.3 uCOSII操作系统的移植所谓移植,就是使一个实时内核能在其他的微处理器或微控制器上运行,为了移植方便,大部分uCOSII的代码是用C语言编写的,但是仍然需要用汇编语言编写一些与处理器硬件相关的代码,这是因为uCOSII在读写处理器寄存器时,只能通过汇编语言来实现,要使uCOSII正常运行,处理器必须满足以下要求:处理器的C编译器能够产生可重入型代码;处理器支持中断,并且能产生定时中断(通常为10100Hz);用C语言就可以开关中断;处理器能够支持一定数量的数据存储硬件堆栈(可能是几千字节);处理器有将堆栈指针以及其他CPU寄存器的内容读出,并且存储到堆栈或者内存中去的指令;由图3-2可知,uCOSII的移植主要编写OS_CPU.H文件、OS_CPU_C.C文件OS_CPU_A.ASM文件。4.3 应用程序的开发4.3.1 硬件初始化任务软件设计在uCOSII操作系统启动多任务前必须首先创建了一个任务,我们在这个任务中进行了硬件资源的初始化,并创建了三个功能任务:数据采集任务、USB通信任务、触摸屏检测显示任务。软件流程图如图4-3所示:硬件初始化创建任务启动多任务 图4-3 数据采集软件流程图4.3.2 数据采集任务软件设计数据采集系统是煤粉浓度测量仪功能实现的核心部分,整台仪器功能的实现也是围绕该模块展开的。数据采集任务使用模数转换器AD7190实现,采用单次转换模式,方便了对AD7190的控制,其程序流程图如图4-3所示:AD7190初始化启动AD采集上传数据采集结束上传标志置位是否是否 图4-4 数据采集软件流程图4.3.3 USB通信任务软件设计USB通信实现了煤粉浓度测量仪与PC机软件通信,通过USB接口可以将采集到的数据上传到PC机进行图形显示以及硬盘存储。USB通信的关键过程在于USB设备上电的枚举,这部分工作的难点也在于煤粉浓度测量仪的枚举过程,枚举成功了,煤粉浓度测量仪与上位机通信工作也就完成了一半了。其软件流程图如图4-4所示:USB硬件初始化EDP0上电枚举置位上传标志接收到数据上传数据是否是否 图4-5 USB通信软件流程图4.2.4 触摸屏检测显示任务软件设计 该任务实现了数据的显示以及人对煤粉浓度测量仪的控制,触摸屏检测显示任务采用迪文彩色触摸液晶屏实现,迪文HMI(串口智能显示终端)采用自主研发的HMI核心驱动模组(M100、M600、K600、H600),提供用户任意尺寸、统一指令集、开发简单、高可靠性、高性价比的彩色TFT显示完美解决方案。其软件流程图如图4-6所示:触摸屏初始化更新显示更新数据有触摸是否是否更新页面液晶显示 图4-6 触摸屏检测显示软件流程图4.4 本章小结本章主要讲述了uCOSII操作系统移植的主要过程。首先对当前流行的嵌入式操作系统进行了简要介绍,分析了uCOSII系统的组成,然后介绍了煤粉浓度测量仪的软件开发过程,包括数据采集系统的软件设计以及USB通信系统的软件设计。至此整个基于ARM7的煤粉浓度测量仪已经设计完成,并且实现了数据采集并将数据通过USB接口上传到上位机进行存储显示的功能。1第5章 煤粉浓度测量仪的上位机软件设计第5章 煤粉浓度测量仪的上位机软件设计5.1 煤粉浓度测量仪USB驱动5.1.1 USB简介USB ,是英文Universal Serial BUS(通用串行总线)的缩写,而其中文简称为“通串线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。系统中的USB的驱动程序完成许多的工作。实际上对于一些HID的USB设备,象键盘,鼠标和游戏操纵杆之类的设备可以自动的被系统识别并且支持.而除此之外的设备就需要自己写一个驱动程序来完成硬件和软件之间的联系。在核心模式(kernel mode)下,驱动程序用IOCTL来组织和操作一些由其他部分发过来的要求和命令。而IOCTL又是通过URB(USB request blocks)来实现数据的传送的。但自己在桌面系统上写一个驱动有点麻烦,总感觉心有余力不足的感觉,在此感谢微软为我们提供了这样一个系统驱动和DLL接口供大家调用,使我们的桌面USB程序变得更为简单和易用。5.1.2 WinUSB简介制造 USB 设备的独立硬件供应商 (IHV) 必须经常为应用程序提供访问设备功能的途径。在过去,这意味着使用 Windows 驱动程序模型 (WDM) 为设备实现一个功能驱动程序,并将该驱动程序安装在设备栈中系统提供的协议驱动程序之上。Windows 驱动程序基础 (WDF) 现在是 USB 驱动程序的首选模型。它为 IHV 提供 3 个选项来提供访问 USB 设备的途径:(1)使用WDF用户模式驱动程序框架(UMDF)实现用户模式驱动程序;(2)使用WDF内核模式驱动程序框架(KMDF)实现内核模式驱动程序;(3)将WinUsb.sys作为设备的功能驱动程序安装,并提供一个使用WinUSB API访问设备的应用程序。WinUSB是在Windows驱动程序(WDF)的基础上发展起来的,它适用于Windows XP和Windows的更高版本。它包括一个内核模式驱动程序和WinUsb.sys,WinUsb.sys是一个WDF用户模式驱动程序框架(UMDF)的USB驱动程序支持的组成部分。然而,由于USB是只由一个应用程序访问的设备,供应商往往可以安装WinUsb.sys作为他们设备的功能驱动程序,而不是实现自定义驱动程序。应用程序可以通过使用WinUSB API来配置设备和访问端点。WinUSB包含两个准素分支:(1)WinUSB.sys是一个内核模式驱动,它可以作为一个过滤驱动或者作为一个功能驱动被安装。(2)WinUsb.dll是一个包含着WinUSB API的用户模式动态链接库,应用程序可以使用这些API与作为功能驱动被安装的WinUsb.sys进行通信。5.1.3 安装WinUSB.sys作为功能驱动在应用程序可以通过使用WinUSB API与设备通信前,必须将WinUsb.sys作为设备的功能驱动进行安装,有以下需要的文件:(1)WinUSB 协作安装包,如果需要它可以安装WinUSB到目标系统中。WDK包含三个版本的安装包:一个用于X86系统,一个用于X64系统,另外一个用于安腾系统,他们都被命名为WinUSBCoInstaller.dll,他们都位于WinDDKBuildNumberredistwinusb目录下(2)KMDF协作安装包,如果需要它可以安装正确的KMDF版本到目标系统中,由于WinUsb.sys依赖于KMDF,所以这个安装包是需要的,WinUSB的版本取决于KMDF版本1.5,相关的安装包是WdfCoInstaller01005.dll,WdfCoInstaller01005.dll的X86和X64版本位于目录:WinDDKBuildNumberredistwdf(3)一个INF文件可以安装WinUsb.sys作为设备的功能驱动。微软提供了一个INF文件模板,经过简单的修改就可以应用到大部分的USB设备,主要更改VID、PID,使其与下位机中的VID、PID一致(4)一个用于该包的签名catalog文件,当安装WinUsb到Windows Vista的X64版本时这个文件是需要的。5.1.4 使用WinUSB API如果一个USB设备拥有WinUsb.sys作为它的功能驱动,相关的应用程序可以通过WinUSB API与这个设备进行通信,为了能够在应用程序中使用WinUSB API,需要:(1)包含WinUsb.h头文件,它包含在WDK中,位于目录WINDDKBuildNumberincddk。(2)增加WinUsb.lib到与你的应用程序相关联的库列表中,WinUsb.lib包含在WDK中,适用于Windows XP的版本位于目录:WINDDKBuildNumberlibwxpi386,这里也有适用于Windows Vista系统的不同版本来适用不同的CPU结构,他们位于目录:WINDDKBuildNumberlibwlh。(3)包含头文件Usb100.h,这个不是必须的,但是里面包含了一些很有用的宏,他也位于目录WINDDKBuildNumberincddk中。为了能够访问设备,应用程序必须:(1)使用设备的接口GUID得到一个与设备相关联的句柄(2)使用这个句柄初始化WinUSB。(3)使用WinUSB API来配置设备(4)使用WinUSB API与端点通信5.2 煤粉浓度测量仪上位机软件的实现该软件使用visual stdio 2005编程环境编译,相对于visual c+ 6.0,该编译环境更加符合C+标准。该上位机软件要实现的功能有:(1)检测是否有设备插入(2)显示溶液浓度(3)画出溶液浓度的T-Y图(4)存储溶液浓度数据数据采集的流程图如图4-3所示:对话框资源初始化是是画波形挂起读数据线程有设备插入开始读取数据读数据成功停止采集读数据线程读数据完成是否否是存储数据存储数据是否图4-3:数据读取流程图5.3 煤粉浓度测量结果的软件操作煤粉浓度测量结果的VC显示界面如图4-4所示:(1)添加信号发送时的消息响应函数 操作系统通过消息响应来了解如何完成用户操作的,用户一旦进行操作,消息就被加入到消息队列,等待操图4-4 上微机软件操作界面作系统的响应。在VC+中,已经将一些常用的Windows消息封装成了事件,该软件共使用了3中类型的消息:一是BN_CLICKED,为点击按钮出发的消息,一是WM_DEVICECHANGE,当USB设备插入或者拔出时触发该消息,通过相应该消息我们可以检测是否是我们的设备被插入,另一个是自定义的消息WM_MYGRAPH,用于采集数据线程通知对话框可以进行画图了。(2)在对话框初始化时调用FindDevice检测是否有煤粉浓度测量仪USB设备被插入,使用一个BOOL型成员变量m_DevIsExist标记设备的状态。如果设备被插入则调用OpenDevice打开并初始化设备。(3)如果m_DevIsExist为真,即煤粉浓度测量仪已经被连接到PC机,则可以调用StartDevice来启动采集数据并启动读取数据线程ReadThread。(4)读取数据线程读取数据成功,发送消息WM_MYGRAPH通知主对话框调用OnMyGraph画图。(5)点击记录按钮可以以txt格式保存数据到设定的目录(6)调用StopDevice可以挂起数据读取线程,在软件退出时调用CloseDevice关闭USB设备,释放USB资源。5.4 本章小结本章主要讲述了上位机软件的设计方法,尤其对WinUSB的说明和使用进行了详细的说明,本章内容给出了上位机软件流程图,对软件的操作流程作了简要的说明。 结论结论近年来,随着计算机技术的不断发展,人们对测量类仪器仪表的智能化和精确度提出了更高的要求,测量类仪器仪表的发展趋势体现在:计算机技术在仪器分析中的应用将更加普遍和深入,智能化的仪器分析方法将逐渐成为常规分析的重要手段;仪器分析方法的灵敏度和选择性将进一步提高,许多新的超痕量分析方法和超微量分析方法将逐步建立;仪器分析方法将在更大的程度上应用于物质的结构分析,状态和价态分析,表面及微区分析等,同时在许多学科的研究工作中将得到越来越广泛的应用。煤粉浓度测量仪是一种广泛应用在煤矿、石油开采中的测量类仪器仪表,人们对其功能的稳定性,操作的灵活性要求越来越高,在对国内外煤粉浓度测量仪现状和测量类仪器仪表发展趋势的充分调研的基础上,本文对煤粉浓度测量仪系统进行了深入地研究。本次毕业设计的主要成果如下:(1) 使用基于ARM7TDMI-S内核的LPC2368微处理器为核心,完成了煤粉浓度测量仪的硬件平台的设计。(2) 实现了uCOSII操作系统在LPC2368微处理器平台上的移植。(3) 编写了uCOSII下的数据采集任务,实现了对煤粉溶液浓度的模数转换。(4) 编写了uCOSII下的USB通信任务,实现了煤粉溶液浓度数据上传PC机。(5) 编写了uCOSII下的触摸屏检测显示任务,实现了煤粉溶液浓度数据显示以及对煤粉溶液测量仪的操作。(6) 使用C+语言编写上位机,完成了煤粉溶液浓度在PC机上的显示以及存储在系统设计中充分利用了嵌入式系统的特点和优势,实现了基于ARM7的煤粉浓度测量仪。硬件系统稳定可靠,操作界面美观,用户可以既可以通过触摸屏操作仪器、观察测量结果,又可以将数据上传到PC机进行图形显示、硬盘存储,达到了预期的目标。由于个人水平和时间的限制,本次毕业设计只是对煤粉浓度测量仪的简单实现,主要表现为:(1) 对液晶屏只是进行简单的操作显示数据以及图片,并没有植入uCGUI,使人机交互界面不十分完美,显得比较单调。(2) 上位机只是进行简单的数据显示存储,没有对其进行数据处理。(3) 整个系统的功能还比较简单。在功能上还有待进一步完善。总之,随着科技的进步和人民的需求不断发展,测量类仪器仪表在功能上和性能上将会有更大的提高。参考文献1 周立功. 深入浅出ARM7. 北京:北京航空航天大学出版社,2005,11002 JeanJ.Labrosse. 嵌入式实时操作系统uCOS-(第二版). 邵贝贝.北京:北京航空航天大学出版社,2003,11003 任哲嵌入式操作系统基础uC/OS-II和Linux北京:北京航空航天大学出版社,20064 刘荣圈圈教你玩USB北京:北京航空航天大学出版社,20095 白乔,左飞把脉VC+北京:电子工业出版社,20096 李小燕基于ARM单片机的人机交互接口的设计仪器仪表用户2007,5,7 韩金霞,杨景常,杜幻勇,黄亚琴仪器接口平台的通用USB接口模块设计四川:西华大学 电气信息学院,2010,8 蒋芳华,程耕国实时操作系统uC/OS-II在ARM7上的移植武汉:武汉科技大学,2008,9 李庆义,武彩宏基于uC/OS-II实时嵌入式操作系统平台上的应用接口编程山西:太原理工大学 阳泉学院,2010,10 李丹妮,刘金辉等基于Visual C+的数据采集与处理软件设计与实现微计算机信息2007,8(1),11711911 徐君明,李国林,赵红超,范绍里基于多线程的虚拟仪表通用集成方法微计算机信息2010,8(1),101212 魏景斌,刘俊峰,钱谡,陈其林基于CH375的USB数据传输河北:河北农业大学 机电工程学院,2010,13 张永强,刘富军,李学东应变实验数据采集与处理系统的硬件设计与实现河北:河北工程学院,2005,14 朱鹏飞嵌入式的USB数据采集系统四川:达州职业技术学院,2009,15 Pagacova P,Galbova K,Drtil M,Jonatova IDenitrification in USB reactor with granulated biomassConsumer Electronics IEEE Transactions on 2 000, 461(2): 44251116 Koichi Linoya,John Keith, Beddow Genji. Powder Technology JapanM. 1981,56.6817 D.J.Fischbach,C.M.Sorensen. Understanding the Theory of Light scatteringJ . 1981,56.68章及标题 致谢本文是在我的导师肖丽萍老师的精心指导下完成的。在本文的研究和撰写过程中,导师给予了我极大的帮助和教诲。肖丽萍老师严谨的治学态度、敏锐的思维方式、正直坦荡的为人风范和孜孜不倦的敬业精神都令我深受教益,终身难忘!特别是肖丽萍老师培养人才的方法和思想更是让我在研究阶段收益良多,在此我衷心感谢肖老师对我的工作、学习和生活的帮助与关怀。感谢信息科学与工程学院的全体老师对我多年来的教诲和帮助!他们的教诲伴我成长!诚挚感谢燕山大学无线电爱好者协会的各位同学,无线电爱好者协会是引领我进入电子世界的地方,也是我增长经验,丰富阅历的地方。在课题研究过程中协会成员给予我的无私帮助,在此表示衷心感谢!感谢室友,你们的友谊为我的大学生活增添了无数快乐!最后,感谢在百忙之中评阅论文和参加答辩的各位老师!5附录1附录1燕 山 大 学本科毕业设计(论文)开题报告课题名称:基于ARM7的煤粉浓度 量仪的设计 学院(系):信息科学与工程学院 年级专业:07级电子信息工程4班 学生姓名:于杰 指导教师:肖丽萍 完成日期:2010年3月27号 1 综述本课题国内外研究动态,说明选题的依据和意义煤粉浓度测量仪是一种应用在煤矿、石油开采中的仪器,国内相关的仪表十分稀少,大部分都需要从国外进口。这类的仪器往往采用低端的处理器,数据采集的精度和速度有时达不到要求。在仪器的设计中大多数都采用传统的前后台程序,这样就使得仪器在矿井、油井等恶劣的条件下工作不稳定, 甚至死机,并且传统的前后台程序不利于系统的升级和功能的扩展。另外,仪器的人机交互往往采用键盘输入,在煤矿等粉尘较多的环境就会降低仪器的使用寿命,造成不必要的损失。因此需要采用一种新的技术和手段实现该仪表的设计,例如该系统拟用32位高端微处理器,并在其中嵌入uCOSII操作系统,这样不仅可以提高系统采集数据的精度和速度,还可以提高整个系统的稳定性,保证了煤矿、石油开采工作的正常执行。uCOSII操作系统是世界著名嵌入式专家Jean J.Labrosse开发的,其绝大部分源码采用ANSI C编写,具有源码公开、可移植、可裁剪、占先式的多任务实时操作系统,在uCOSII操作系统的基础上开发应用程序,可以提高开发效率,缩短开发周期,提高系统性能和稳定性,自1992年问世以来,uCOSII已经被应用到数以百计的产片中,因此研究uCOSII操作系统在32位微处理器中的移植,并使它作为一个开发的平台,可以为其他仪器仪表的开发提供技术和基础。煤粉浓度测量仪的设计不仅是要完成功能的实现,更重要的是探究一种新的技术在仪器仪表中带来的优势,为今后高性能产品的研发做好准备。2研究的基本内容,拟解决的主要问题该煤

温馨提示

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

评论

0/150

提交评论