《基于ARM7的煤粉浓度测量仪的设计.doc》由会员分享,可在线阅读,更多相关《基于ARM7的煤粉浓度测量仪的设计.doc(95页珍藏版)》请在三一办公上搜索。
1、本科毕业设计(论文)基于ARM7的煤粉浓度测量仪的设计于杰燕 山 大 学2011年6月 本科毕业设计(论文)基于ARM7的煤粉浓度测量仪的设计学院(系):信息科学与工程学院 专 业: 电子信息工程 学生 姓名: 于杰 学 号: 070104020095 指导 教师: 肖丽萍 答辩 日期: 2011年6月25日 燕山大学毕业设计(论文)任务书学院:信息科学与工程学院 系级教学单位:电子与通信工程系学号070104020095学生姓名于杰专 业班 级电子信息工程四班题目题目名称基于ARM7的煤粉浓度测量仪的设计题目性质1.理工类:工程设计 ( );工程技术实验研究型( );理论研究型( );计算机
2、软件型( );综合型( )2.管理类( );3.外语类( );4.艺术类( )题目类型1.毕业设计( ) 2.论文( )题目来源科研课题( ) 生产实际( )自选题目( ) 主要内容1、学习uCOSII操作系统原理,熟悉嵌入式目标平台。2、完成下位机与上位机USB通信。3、实现系统功能要求基本要求1、认真阅读相关书籍、文献。2、完成系统设计,uCOSII移植,USB通信的实现,实现要求的功能。3、完成毕业设计说明书一份,格式符合燕山大学毕业设计论文规范,用Word排版。4、翻译与课题内容相关的外文资料一份。参考资料1、深入浅出ARM7 周立功 北京航空航天大学出版社2、嵌入式实时操作系统uCO
3、S-(第二版)JeanJ.Labrosse3、圈圈教你玩USB 刘荣 北京航空航天大学出版社4、煤矿井下嵌入式数据采集分站的设计(中国期刊全文数据库,维普全文数据库)周 次第1 3周第4 7周第8 11 周第1214周第1518周应完成的内容查阅资料,选定芯片,确定设计思路学习LPC2368的使用,学习uCOSII操作系统的基础知识uCOSII操作系统的移植应用程序编写,软硬件联调撰写论文,准备答辩指导教师:肖丽萍职称:副教授 2011年 3月 1日系级教学单位审批: 年 月 日摘要随着应用环境的恶劣以及现代科学技术的发展,对测试仪器仪表提出了新的要求。煤粉浓度测量仪是一种广泛应用在煤矿、石油
4、开采中的仪器,本文结合当代仪器仪表的发展趋势,对基于ARM7的煤粉浓度测量仪的设计方法进行了研究实验。首先,本文研究了uCOSII操作系统在该系统中的移植以及应用,提高了煤粉浓度测量仪工作的稳定性,能够适应恶劣的工作环境。然后,采用USB技术,实现仪器仪表同PC机的通信,并提供了PC机上位机应用软件的实现方法。最后,根据该仪器仪表的应用和客户的具体要求,实现了该仪器仪表的功能。通过实验可以证明,该系统不仅能够准确测量煤粉溶液的浓度,其工作的稳定性,操作的方便性都有了很大的提高,同时数据通过USB总线上传到PC机,更方便了数据的记录和存储。关键词煤粉浓度测量仪,ARM7,uCOSII操作系统,U
5、SBAbstractWith the application of the harsh environment and the development of modern science and technology,the test instrument made new demands.Pulverized coal concentration measuring instrument is a widely used in coal,oil and mining equipment,paper,development trend of modern instrumentation for
6、 the ARM7-based design of pulverized coal concentration measuring method of the research experiments. First,this study uCOSII operating system migration in the system and applications to improve the pulverized coal concentration measuring job stability,able to adapt to the harsh working environment.
7、 Then,using USB technology, nstrumentation communication with the PC,and provides a PC-PC application software implementation. Finally,according to the instrumentation of the application and customer specific requirements to achieve the functions of the instrument. Can be proved by experiment,the sy
8、stem can not only accurately measure the concentration of the solution of pulverized coal,the work of stability, convenience of operation has greatly improved,while uploading data through the USB bus to a PC,more convenient data recording and storage. 字典Keywords pulverized coal concentration measuri
9、ng instrument,ARM7,uCOSII operating system,USB目 录摘要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
10、.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.
11、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附录445第1章 绪论1.1 课题背景该课题的选取源自一位客户的要求,煤粉浓度测量仪是一种应用在煤矿、石油开采中的仪器,国内相关的仪表十分稀少,大部分都需要从
12、国外进口。这类的仪器往往采用低端的处理器,数据采集的精度和速度有时达不到要求。在仪器的设计中大多数都采用传统的前后台程序,这样就使得仪器在矿井、油井等恶劣的条件下工作不稳定,甚至死机,并且传统的前后台程序不利于系统的升级和功能的扩展。另外,仪器的人机交互往往采用键盘输入,在煤矿等粉尘较多的环境就会降低仪器的使用寿命,造成不必要的损失。煤粉浓度测量仪的设计不仅是要完成功能的实现,更重要的是探究一种新的技术在仪器仪表中带来的优势,为今后高性能产品的研发做好准备。1.2 煤粉浓度测量仪的研究内容煤粉浓度测量仪所要研究和解决的问题包括以下几个方面:(1)uCOSII操作系统移植 在产品中嵌入操作系统,
13、不仅是产品的开发、维护、升级变得方便,而且将任务交给操作系统进行管理和维护,更加提高了系统的稳定性。(2)USB数据传输 现在USB技术越来越成熟,应用领域越来越广泛,大部分计算机,尤其是笔记本电脑已经去掉了串口等传统的通信端口,因此采用USB接口进行下位机与上位机的通信十分必要。(3)触摸屏显示 采用彩色触摸屏显示,使人机交互界面变的更加友好,使仪器的操作更加方便。1.3 测量类仪器仪表的发展趋势(1)计算机技术在仪器分析中的应用将更加普遍和深入,智能化的仪器分析方法将逐渐成为常规分析的重要手段。(2)仪器分析方法的灵敏度和选择性将进一步提高,许多新的超痕量分析方法和超微量分析方法将逐步建立
14、。(3)仪器分析方法将在更大的程度上应用于物质的结构分析,状态和价态分析,表面及微区分析等,同时在许多学科的研究工作中将得到越来越广泛的应用。(4)仪器分析中各种方法的联用,将进一步发挥各种方法的效能,这种联用方法无疑是解决复杂分析问题的有力手段。(5)仪器分析进一步与生物医学结合,用于生命过程的研究,并作为有效的临床诊断方法,另一方面,生物医学中的酶催化反应和免疫反应等技术和成果也将进一步用于仪器分析,开拓新的领域和方法,如酶电极,免疫传感器,免疫伏安法,免疫发光分析法等。(6)仪器分析法将在各种工业流程及特殊环境中的自动监控或遥控检测中发挥重大的作用,在这一领域中,各种新型传感器的研制将是
15、十分重要的。1.4 本文的内容安排本文共分为五章,各章的内容安排如下:第1章 简述了该课题的选择背景,对煤粉浓度测量仪的实现原理做了简单的介绍,说明了煤粉浓度测量仪的主要研究内容。第2章 总体介绍了煤粉浓度测量仪的设计原理,对煤粉浓度测量仪的硬件、下位机软件以及上位机软件的设计思路进行了总体概述。对涉及到的技术和芯片做了简要的说明。第3章 详细阐述了煤粉浓度测量仪的硬件系统设计以及具体的实现步骤,包括ARM的体系结构,LPC2368处理器的介绍以及所涉及的硬件电路的具体说明。第4章 详细介绍了煤粉浓度测量仪下位机软件的设计思路,给出了煤粉浓度测量仪下位机软件详细流程图。下位机软件包括数据采集、
16、触摸屏控制及数据传输等。第5章 详细叙述了煤粉浓度测量仪上位机软件的设计方法,对数据的存储,波形的绘制,WinUSB API的使用做了详细的说明。第2章 煤粉浓度测量仪的总体设计2.1 煤粉浓度测量仪的设计原理 目前没有一种传感器能够精确地测量一种溶液的的浓度,但是对重力的测量技术已经十分成熟,测量精度可以达到万分之一,因此本系统的总体设计思路是首先通过测浮力测得溶液密度,然后采用标定法求的溶液浓度。密度与浓度的对应关系如下所示(该对应关系由客户提供):表1-1 密度与浓度对应关系密度(g/cm3)煤粉质量浓度(%)1.0000 0.00 1.0015 0.31 1.0027 0.93 1.0
17、040 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,提高了仪器的精度和稳定性。为了节省成本,数据
18、传输模块并没有采用专用的USB芯片,而是利用了LPC2368自身的USB资源。人机交互界面采用了一款工业级触摸液晶显示屏,使整台仪器的界面更加友好,操作更加方便。图2-1 煤粉浓度测量仪原理示意图2.2.2 ARM微处理器概述ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字9。1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于
19、ARM技术的微处理器应用约占据了32位RISC微处理器75以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,这样使得ARM处理器技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争
20、力。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测试/调试接口,与现有工具兼容;仿
21、真跟踪模块,支持实时跟踪;4种低功耗模式:空闲、睡眠、掉电和深度掉电;2个独立的电源域,允许根据所需特性对功耗进行适当调整;LPC2368处理器由ARM7TDMI-S内核及各个通用外围设备模块组成。ARM7TDMI-S内核是整个处理器的运算和控制核心。通用外围设备,便于配置,同时可以降低整个嵌入式产品的成本和功耗。2.2.4 迪文液晶简介触摸屏选择北京迪文科技有限公司生产的DMT3224CS035_01WT,其分辨率为324*640,工作温度范围为-2070,工作电压为5V,该模块支持多语言,多字体,任意大小的文本显示,支持用户自行设计字库,128M存储器,支持串口图片下载更新,图形功能完善,
22、支持触摸屏,并具有触摸屏漂移处理技术,内嵌拼音输入法,数据排序等简单算法处理。2.3 煤粉浓度测量仪的下位机软件设计2.3.1 煤粉浓度测量仪下位机软件概述该系统的软件主要由uCOSII操作系统和应用软件两大部分组成,其中应用软件主要包括三个任务:数据采集任务,数据传输任务,触摸屏控制显示任务。该系统的下位机软件的总体框图如图2-2所示:操作系统初始化任务一:初始化硬件任务二:采集数据任务三:触摸屏显示任务四:数据上传 图2-2 下位机软件框图2.4 煤粉浓度测量仪的上位机软件设计 2.4.1煤粉浓度测量仪上位机软件概述该系统的上位机软件使用微软公司的visual stdio 2005软件进行
23、编写,利用微软基础类库即MFC可以很方便的实现该上位机的功能。为了减少工作量,并没有专门编写USB的驱动程序,而是直接采用微软提供的USB通用驱动WinUSB.sys作为煤粉浓度测量仪的USB驱动程序,同时微软以动态链接库的方式提供了操作在驱动的API函数,使我们的桌面USB程序变得更见简单易用。该上位机的关系框图如图2-3所示:WinUSBMFC应用程序图2-3 上位机软件框图2.4.2 MFC编程原理(1) MFC介绍 近几年来,面向对象技术无论是在理论还是实践上都在飞速地发展。面向对象技术中最重要的就是“对象”的概念,它把现实世界中的气球、自行车等客观实体抽象成程序中的“对象”。这种“对
24、象”具有一定的属性和方法,这里的属性指对象本身的各种特性参数。如气球的体积,自行车的长度等,而方法是指对象本身所能执行的功能,如气球能飞,自行车能滚动等。一个具体的对象可以有许多的属性和方法,面向对象技术的重要特点就是对象的封装性,对于外界而言,并不需要知道对象有哪些属性,也不需要知道对象本身的方法是如何实现的,而只需要调用对象所提供的方法来完成特定的功能。从这里我们可以看出,当把面向对象技术应用到程序设计中时,程序员只是在编写对象方法时才需要关心对象本身的细节问题,大部分的时间是放在对对象的方法的调用上,组织这些对象进行协同工作。MFC的英文全称是Microsoft Fundation Cl
25、asses,即微软的基本类库,MFC的本质就是一个包含了许多微软公司已经定义好的对象的类库,我们知道,虽然我们要编写的程序在功能上是千差万别的,但从本质上来讲,都可以化归为用户界面的设计,对文件的操作,多媒体的使用,数据库的访问等等一些最主要的方面。这一点正是微软提供MFC类库最重要的原因,在这个类库中包含了一百多个程序开发过程中最常用到的对象。在进行程序设计的时候,如果类库中的某个对象能完成所需要的功能,这时我们只要简单地调用已有对象的方法就可以了。我们还可以利用面向对象技术中很重要的“继承”方法从类库中的已有对象派生出我们自己的对象,这时派生出来的对象除了具有类库中的对象的特性和功能之外,
26、还可以由我们自己根据需要加上所需的特性和方法,产生一个更专门的,功能更为强大的对象。当然,你也可以在程序中创建全新的对象,并根据需要不断完善对象的功能。 正是由于MFC编程方法充分利用了面向对象技术的优点,它使得我们编程时极少需要关心对象方法的实现细节,同时类库中的各种对象的强大功能足以完成我们程序中的绝大部分所需功能,这使得应用程序中程序员所需要编写的代码大为减少,有力地保证了程序的良好的可调试性。(2) MFC的关键技术 MFC的关键技术是消息映射机制MFC定义了下面的两个主要结构: AFX_MSGMAP_ENTRY和AFX_MSGMAP两个数据结构, AFX_MSGMAP主要作用是两个,
27、一:用来得到基类的消息映射入口地址。二:得到本身的消息映射入口地址。实际上,MFC把所有的消息一条条填入到AFX_MSGMAP_ENTRY结构中去,形成一个数组,该数组存放了所有的消息和与它们相关的参数。同时通过AFX_MSGMAP能得到该数组的首地址,同时得到基类的消息映射入口地址,这是为了当本身对该消息不响应的时候,就调用其基类的消息响应.在MFC框架下,一般一个消息的处理过程是这样的。 函数AfxWndProc接收Windows操作系统发送的消息。 函数AfxWndProc调用函数AfxCallWndProc进行消息处理,这里一个进步是把对句柄的操作转换成对CWnd对象的操作。 函数Af
28、xCallWndProc调用CWnd类的方法WindowProc进行消息处理。注意AfxWndProc和AfxCallWndProc都是AFX的API函数。而WindowProc已经是CWnd的一个方法。所以可以注意到在WindowProc中已经没有关于句柄或者是CWnd的参数了。 方法WindowProc调用方法OnWndMsg进行正式的消息处理,即把消息派送到相关的方法中去处理。消息是如何派送的呢?实际上在CWnd类中都保存了一个AFX_MSGMAP的结构,而在AFX_MSGMAP结构中保存有所有我们用ClassWizard生成的消息的数组的入口,我们把传给OnWndMsg的message
29、和数组中的所有的message进行比较,找到匹配的那一个消息。实际上系统是通过函数AfxFindMessageEntry来实现的。找到了那个message,实际上我们就得到一个AFX_MSGMAP_ENTRY结构,而我们在上面已经提到AFX_MSGMAP_ENTRY保存了和该消息相关的所有信息,其中主要的是消息的动作标识和跟消息相关的执行函数。然后我们就可以根据消息的动作标识调用相关的执行函数,而这个执行函数实际上就是通过ClassWizard在类实现中定义的一个方法。这样就把消息的处理转化到类中的一个方法的实现上。2.5 本章小结本章概括介绍了煤粉浓度测量仪的实现原理,从该仪器的硬件、下位机
30、软件和上位机软件三个方面概括介绍了煤粉浓度测量仪的设计思路,并给出了系统框图和程序流程图。同时对实现该系统所用到的芯片及技术进行了简要的介绍。第3章 煤粉浓度测量仪的硬件设计为了能够使所设计的系统稳定的工作,我们严格按照LPC2368官方给出的硬件设计参考设计了煤粉浓度测量仪硬件电路,该硬件电路包括数据采集部分、数据传输部分、人机交互部分。3.1 数据采集部分数据采集系统是仪器正常工作的保障,数据采集系统的精度和稳定性也决定了整个系统的精度和稳定性,因此选用一款合适的AD模数转换器并设计一个稳定的硬件电路十分重要。该系统采用ADI公司推出的一款模数转换器AD7190,该模数转换器将数据速率和无
31、噪声分辨率实现了最佳组合,使工业设备制造商能够提高精密测量仪器仪表的工作速度和精度。它集成一个低噪声、24位-型模数转换器(ADC)。片内低噪声增益级意味着可直接输入小信号。该器件的输出数据速率可在4.7 Hz至4.8 kHz的范围内变化。用于传感器电压输出与桥压相关,为了提高系统的稳定性,AD7190的参考电压并没有采用高精度稳压源,而是将桥压引出经过运算放大器后作为了AD7190的参考电压,整个数据采集系统的硬件连接如图3-1所示:图3-1 数据采集电路图3.2 数据传输部分数据传输部分可以通过USB接口将得到的数据上传到PC机上位机软件进行显示并存储。该系统利用LPC2368自身的USB
32、资源来实现USB通信的功能。LPC2368的USB接口符合USB2.0协议,支持全速传输,可以满足系统的需要,硬件连接图如图3-2所示:图3-2 USB接口电路图3.3 人机交互部分人机交互部分采用北京迪文科技有限公司生产的触摸液晶屏实现了对煤粉溶液浓度的显示以及人对煤粉浓度测量仪的操作。该液晶屏可以通过串口对其进行显示控制操作。这里采用串口一与迪文触摸液晶屏进行连接,硬件连接图如图3-3所示:图3-3 液晶接口电路图3.4 本章小结本章详细介绍了煤粉浓度测量仪的硬件组成。硬件设计是整个系统构建的第一步,操作系统移植和应用程序的开发都依赖于硬件系统,硬件系统的性能和稳定性会直接影响整个系统最终
33、的指标。硬件电路设计在系统设计中起到至关重要的作用。第4章 煤粉浓度测量仪的下位机软件设计4.1 煤粉浓度测量仪的软件组成煤粉浓度测量仪的软件系统由uCOSII操作系统,应用程序构成,应用程序又主要分为了数据采集任务、数据传输任务、触摸屏显示任务三个功能任务和一个硬件初始化任务。其中应用程序的开发是整个系统的主要工作,也是整个系统开发的难点。煤粉浓度测量仪的软件结构框架如图4-1所示。图4-1 煤粉浓度测量仪的软件组成4.2 uCOSII操作系统的移植4.2.1 嵌入式操作系统介绍嵌入式操作系统(Embedded Operating System)是一种用途广泛的系统软件。嵌入式操作系统负责嵌
34、入式系统的全部软、硬件资源的分配、调度工作,控制协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前,已推出一些应用比较成功的嵌入式操作系统产品系列。随着Internet技术的发展、信息家电的普及应用及嵌入式操作系统的微型化和专业化,嵌入式操作系统开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。嵌入式操作系统是相对于一般操作系统而言的,它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等外,还有以下特点:(1)可装卸性、开放性、可伸
35、缩性的体系结构。(2)强实时性 嵌入式操作系统实时性一般较强,可用于各种设备控制当中。(3)统一的接口 提供各种设备驱动接口和应用程序接口。(4)操作方便、简单、提供友好的图形GUI,图形界面。(5)固化代码 在嵌入系统中,嵌入式操作系统和应用软件被固化在嵌入式系统的ROM中。(6)更好的硬件适应性,也就是良好的移植性。几种主流的嵌入式操作系统:Vxworks: 美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统。以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空航天等高精尖领域。Windows CE: 微软公司推出的面向移动智能设备的实时操作系统。凭借广泛的适应
36、性、丰富的功能、强大的多媒体能力、友好的开发环境,Windows CE已经广泛应用于掌上电脑、智能手机、汽车电子等领域。Palm OS: Palm公司开发的专用于PDA上的一种操作系统,这是PDA上的霸主,一度普占据了90%的PDA市场的份额。虽然其并不专门针对于手机设计,但是Palm OS的优秀性和对移动设备的支持同样使其能够成为一个优秀的手机操作系统。嵌入式Linux: 近两年来,Linux在嵌入式领域异军突起,他的独特性,使其作为开发嵌入式产品的操作系统具备巨大的潜力。Linux具有一些独特的优势:层次结构及内核完全开放;强大的网络支持功能;具备一整套工具链;广泛的硬件支持特性。uCOS
37、II:一个源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统。其绝大部分源码是用ANSI C写的,并且通过了联邦航空局商用航行器认证,符合RTCA(航空无线电技术委员会)DO-178B标准,自1992年问世以来,uCOSII已经应用到数以百计的产品中。由于uCOSII操作系统具有源代码开放,可移植性强,性能稳定,实时性强,可裁剪,占用资源少等特点,使uCOSII成为煤粉浓度测量仪的首选操作系统。4.2.2 uCOSII的文件结构以及与硬件的关系图4-2示意了uCOSII的文件结构以及与硬件的关系,uCOSII的内核结构主要有三部分构成,uCOSII与处理器无关的代码、uCOSII配置
38、与应用相关的代码、uCOSII移植与处理器相关的代码。 图4-2 uCOSII的文件结构uCOSII与处理器无关的代码为我们提供了一些系统API函数供我们在应用程序中调用,在实际应用中这部分代码是不需要更改的。uCOSII配置文件和具体的应用程序相关,我们需要根据具体的应用改变两个文件的内容,uCOSII移植文件和具体的处理器相关,当移植uCOSII操作系统到不同的处理器时需要更改这三个文件。4.2.3 uCOSII操作系统的移植所谓移植,就是使一个实时内核能在其他的微处理器或微控制器上运行,为了移植方便,大部分uCOSII的代码是用C语言编写的,但是仍然需要用汇编语言编写一些与处理器硬件相关
39、的代码,这是因为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操作系统启动多任务前必
40、须首先创建了一个任务,我们在这个任务中进行了硬件资源的初始化,并创建了三个功能任务:数据采集任务、USB通信任务、触摸屏检测显示任务。软件流程图如图4-3所示:硬件初始化创建任务启动多任务 图4-3 数据采集软件流程图4.3.2 数据采集任务软件设计数据采集系统是煤粉浓度测量仪功能实现的核心部分,整台仪器功能的实现也是围绕该模块展开的。数据采集任务使用模数转换器AD7190实现,采用单次转换模式,方便了对AD7190的控制,其程序流程图如图4-3所示:AD7190初始化启动AD采集上传数据采集结束上传标志置位是否是否 图4-4 数据采集软件流程图4.3.3 USB通信任务软件设计USB通信实现
41、了煤粉浓度测量仪与PC机软件通信,通过USB接口可以将采集到的数据上传到PC机进行图形显示以及硬盘存储。USB通信的关键过程在于USB设备上电的枚举,这部分工作的难点也在于煤粉浓度测量仪的枚举过程,枚举成功了,煤粉浓度测量仪与上位机通信工作也就完成了一半了。其软件流程图如图4-4所示:USB硬件初始化EDP0上电枚举置位上传标志接收到数据上传数据是否是否 图4-5 USB通信软件流程图4.2.4 触摸屏检测显示任务软件设计 该任务实现了数据的显示以及人对煤粉浓度测量仪的控制,触摸屏检测显示任务采用迪文彩色触摸液晶屏实现,迪文HMI(串口智能显示终端)采用自主研发的HMI核心驱动模组(M100、
42、M600、K600、H600),提供用户任意尺寸、统一指令集、开发简单、高可靠性、高性价比的彩色TFT显示完美解决方案。其软件流程图如图4-6所示:触摸屏初始化更新显示更新数据有触摸是否是否更新页面液晶显示 图4-6 触摸屏检测显示软件流程图4.4 本章小结本章主要讲述了uCOSII操作系统移植的主要过程。首先对当前流行的嵌入式操作系统进行了简要介绍,分析了uCOSII系统的组成,然后介绍了煤粉浓度测量仪的软件开发过程,包括数据采集系统的软件设计以及USB通信系统的软件设计。至此整个基于ARM7的煤粉浓度测量仪已经设计完成,并且实现了数据采集并将数据通过USB接口上传到上位机进行存储显示的功能
43、。第5章 煤粉浓度测量仪的上位机软件设计5.1 煤粉浓度测量仪USB驱动5.1.1 USB简介USB ,是英文Universal Serial BUS(通用串行总线)的缩写,而其中文简称为“通串线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。USB是在1994年底由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。系统中的USB的驱动程序完成许多的工作。实际上对于一些HID的USB设备,象键盘,鼠标和游戏操纵杆之类的设备可以自动的被系统识别并且支持.而除此之外的设备就需要自己写一个驱动程序来完成硬件和
44、软件之间的联系。在核心模式(kernel mode)下,驱动程序用IOCTL来组织和操作一些由其他部分发过来的要求和命令。而IOCTL又是通过URB(USB request blocks)来实现数据的传送的。但自己在桌面系统上写一个驱动有点麻烦,总感觉心有余力不足的感觉,在此感谢微软为我们提供了这样一个系统驱动和DLL接口供大家调用,使我们的桌面USB程序变得更为简单和易用。5.1.2 WinUSB简介制造 USB 设备的独立硬件供应商 (IHV) 必须经常为应用程序提供访问设备功能的途径。在过去,这意味着使用 Windows 驱动程序模型 (WDM) 为设备实现一个功能驱动程序,并将该驱动程
45、序安装在设备栈中系统提供的协议驱动程序之上。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作为他们设备的功能驱动程序,而不是实现自定