基于uCOSII温度监控系统毕业设计.docx
- 文档编号:24356509
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:42
- 大小:1,003.04KB
基于uCOSII温度监控系统毕业设计.docx
《基于uCOSII温度监控系统毕业设计.docx》由会员分享,可在线阅读,更多相关《基于uCOSII温度监控系统毕业设计.docx(42页珍藏版)》请在冰豆网上搜索。
基于uCOSII温度监控系统毕业设计
基于uCOS-II温度监控系统毕业设计
————————————————————————————————作者:
————————————————————————————————日期:
学号:
06437107
常州大学
毕业设计(论文)
(2010届)
题目μC/OS-II下温度监控系统设计
学生王彦婕
学院信息科学与工程学院专业班级通信061
校内指导教师万军专业技术职务讲师
校外指导老师专业技术职务
二○一○年六月
μC/OS-II 下温度监控系统设计
摘要:
随着信息化,智能化,网络化的发展,嵌入式系统技术也获得广阔的发展空间,前嵌入式技术已成为通信和消费类产品的主流技术。
μC/OS-II是专为微控制器系统和软件开发而设计的公开源代码的抢占式实时多任务操作系统内核,和linux等其他实时操作系统相比具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB。
本文详细阐述了监控系统组成结构和软硬件设计。
系统设计的硬件包括电源模块、显示模块、温度采集模块、超限报警模块、按键控制模块、JTAG电路和主处理芯片。
系统软件设计首先完成μC/OS-II嵌入式实时操作系统的移植,并设计了4个任务,分别是温度检测任务、显示任务、报警设置任务和按键任务4个任务组成。
检测任务采集温度送至控制器。
显示任务实现温度实时显示。
报警设置任务设置温度上限和下限,如果超出限值则报警。
系统移植μC/OS-II嵌入式实时操作系统成功,按键响应及时,温度显示清晰稳定。
关键词:
μC/OS-II;DS18B20;温度监控;STM32F103CBT6
μC/OS-IITemperatureMonitoringSystem
Abstract:
Withtheinformation,intelligence,networkdevelopment,embeddedsystemstechnologyhaswonbroadspacefordevelopment.theformercommunicationsandembeddedtechnologyhasbecomemainstreamconsumerproducts.μC/OS-IIisdesignedformicro-controllersystemandopensourcesoftwaredesignedforpreemptivemultitaskingreal-timeoperatingsystemkernel.Comparedwithotherreal-timeoperatingsystemssuchaslinuxwiththeimplementationofhighefficiency,smallfootprint,real-timeperformanceandsuperiorscalabilityandsoon.theminimumcorecanbecompiledfrom2KB.
Thispaperdescribesthestructureandcompositionofthemonitoringsystemsoftwareandhardwaredesign.Systemhardwareincludingpowermodules,displaymodule,temperaturedataacquisitionmodule,limitalarmmodule,keycontrolmodule,JTAGcircuitandthemainprocessingchip.SystemsoftwaredesigntocompletetheμC/OS-IIreal-timeembeddedoperatingsystemmigration.Second,thedesignofthefourtasksnamelythetemperaturedetectiontask,showingtask,Alarmsettaskandkeytasks4tasks.Thetaskofcollectingtemperaturesenttothecontrollerdetected.Thetaskofachievingreal-timedisplayshowstemperature.Warningestablishmentdutyestablishmenttemperaturemaximumandminimumvalue,ifsurpassesthelimitingvaluetoreporttothepolice.SystemMigrationμC/OS-IIreal-timeembeddedoperatingsystem,thesuccessofkeyresponsetime,clearandstabletemperaturedisplay.
Keywords:
μC/OS-II;DS18B20;temperaturemonitoring;STM32F103CBT6
目次III
1引言1
2嵌入式3
2.1嵌入式系统3
2.1.1嵌入式系统的分类3
2.1.2嵌入式系统设计的特点3
2.1.3相关处理器4
2.2嵌入式操作系统μC/OS-II5
2.2.1嵌入式操作系统5
2.2.2实时操作系统5
2.2.3μC/OS-II嵌入式操作系统简介6
2.2.4嵌入式系统编程语言的选择8
3系统硬件设计9
3.1电源模块9
3.2LED显示模块10
3.3超限报警模块11
3.4按键控制模块11
3.5输入控制模块11
3.6温度采集模块12
3.6.1DS18B20概述12
3.6.2测温操作13
3.7主处理芯片14
3.8硬件PCB设计16
4系统软件设计17
4.1μC/OS-II的移植17
4.2板级移植驱动19
4.3实时任务的编写19
4.3.1按键设置任务20
4.3.2显示任务20
4.3.3温度采集任务21
4.3.4报警任务21
4.4板级库文件的设计21
4.4.1KeyTask()函数21
4.4.2ShowTask()函数23
4.4.3TempTask()函数25
4.4.4WarnTask()函数25
5系统调试26
6总结29
参考文献30
致谢31
1引言
嵌入式系统开始于20世纪80年代单片机使用。
现在已经渗透到各个领域,且与人们的人常生活密不可分,给人们的生活和工业生产带来极大的方便,虽然普通的单片机的功能强大,从信号采集、处理到传输都能由嵌入式系统完成。
但是,随着网络时代的到来,许多电子设备需要联网和更智能化,更强的计算能力,比如音频、视屏的数据采集、处理和传输;丰富的图形界面等,因此,嵌入式系统的运用更为广泛。
随着电子技术的进步,芯片的制造成本大大降低,而功能却更加强大,16位和32位的嵌入式微处理器逐渐成为嵌入式系统设计的主流。
但是,只有嵌入式微处理器是不够的,还需要有一个运行于嵌入式微处理器上的操作系统。
其收入是操作系统要有良好的可移植性,能够用在根据应用要求选择的微处理器中。
当今嵌入式系统(单片机)集成越来越多资源,内部存储资源日益丰富,用户不需要扩充资源就可以完成项目开发,不仅是开发简单,产品小巧美观,同时系统也更加稳定,目前该方向既是发展为SOC(片上系统)。
而且其抗干扰能力加强,使得它更加适合工业控制领域,具有更加广阔的市场前景。
再次嵌入式系统(单片机)提供在线编程能力,加速了产品的开发进程,为企业产品上市赢得宝贵的时间。
随着嵌入式系统的发展在线仿真变得容易。
用户一旦开发一个比较大的系统,开发调试变得非常复杂,同时由于嵌入式系统(单片机)资源有限,不能像PC一样直接调试自己的软件,于是出现了品种繁多的专业仿真器,为用户的开发提供了强大功能,加速了开发过程,降低了开发难度,同时这类仿真器也给中小型用户带来沉重的经济负担,目前已经有公司推出了可以在线调试的嵌入式系统(单片机)这类嵌入式系统(单片机)采用标准JTAG接口,JTAG是一种标准(IEEE1149.1),视为测试芯片而制定的,目的是用TCK、TDI、TD0和TMS四个信号来测试芯片的内部状态,为什么测试芯片还需要专门制定标准呢?
这是因为复杂的芯片引脚太多,特别是还有些芯片一旦安装到多层电路板上就无法看到引脚,更不要说测量了,这时候就可以在计算机软件的支持下通过JATA接口,对芯片进行测量,如果各个公司的芯片都符合该标准,就可以将各个芯片的JTAG口串联起来(又称菊花链),无论是在电路板上有多少芯片,只需要4个引脚,就可以测量电路板上的所有芯片。
既然可以测量芯片,当然可以将数据写入芯片,在可编程逻辑器件的数据下载中也使用了JTAG接口,出现了在系统编程(ISP)的概念,也就是就是可编程逻辑器件安装到了系统中,也可以对其内部电路进行修改,JTAG技术和EDA软件的进步,使可编程逻辑器件的开发与使用得到快速的发展。
随着单片机的发展,人们对事物的要求越来越高,单片机的应用软件技术也发生了巨大的变化,从最初的汇编语言,开始演变到C语言开发,不但增加了语言的可读性,结构性,而且对于跨平台的移植也提供了方便,另外一些复杂的系统开始在单片机上采用操作系统,一些小的RTOS等,一方面加速了开发人员的开发速度,节约开发成本,另外也为更复杂的实现提够了可能。
当前比较流行的RTOS有:
WINCE、uCLinux、Linux、
μC/OS-II等等。
目前低端定位的单片机仍然走俏,但高端的单片机(微处理器)却是风起云涌,SOC技术的发展,现代电子技术应用中包含了硬件(HW)、硬件加软件(HW+SW)、固件(FW)3个层次。
这3个层次也可以说是现代电子技术应用的3个发展阶段。
自1997年以来,电子技术应用又增加了一个新的层次——片上系统(SOC)层次。
SOC技术概念和应用技术层次的出现,标志着现代电子技术应用进入了SOC阶段。
在本次毕业设计中,设计者使用ARM32位Cortex-M3为核心的STM32F103CBT6芯片移植μC/OS-II操作系统,各种外界扩展I/O口实现在操作系统上多任务实时任务的并发执行。
2嵌入式
2.1嵌入式系统
“嵌入式系统”是指将应用程序和操作系统与计算机硬件集成在一起的系统。
简单的说,所谓嵌入式系统就是用户自己开发设计电路板,电路板上有微处理器和各种芯片,其软件部分常常下载在ROM或Flash中,工作方式类似于BIOS。
符合以上定义的嵌入式系统的第一个产品直到1971年以后才出现,这一年Inter发布了世界上第一块微处理器,4004,主要被日本Busicom公司用来生产上用的计算机。
1969年,Busicom请Inter为他们的每一种新式计算机分别进行设计,而且设计了一种用在所有型号上的通用电路。
这个通用处理器被设计来读取存在外部存储芯片里一系列指令(软件)。
Inter的想法是通过软件的设计可以为每一种计算机提供各自的特性。
这种微处理器在一夜之间就成功了,并且在以后的十年中获得了广泛的应用。
早期的嵌入式应用包括无人空间测探器、计算机控制的交通信号灯以及航空灯光控制系统。
整个80年代,嵌入式系统静悄悄的统治着微处理器时代,并把微处理器带入了我们个人和职业生活的每一个角落。
装有嵌入式系统的电子设备已经充斥了我们的厨房(烤面包机、食物处理机、微波炉)、卧室(电视、音响、遥控器)和工作场所(传真机、手机、激光打印机、点钞机、信用卡读卡机)。
嵌入式系统的数量看起来肯定会继续迅速增长,一机构很多具有巨大市场潜力的嵌入式系统设备:
可以被中央计算机控制的调光器和恒温器。
当小孩子或者矮个子的人在的时候不会充气的智能气囊,掌上电子记事薄和个人数字助理(PDA)、数码照相机和仪表导航系统。
很明显,掌握一定技能并且愿意从事下一代嵌入式系统设计的人将会获得更多的机会[1]。
2.1.1嵌入式系统的分类
按照“嵌入”方式的不同,嵌入式系统可分为以下几种:
(1)整机式嵌入
一个带有专用接口的计算机系统嵌入到一个控制系统中,成为控制系统的核心部分。
一般这种计算机系统功能完整而强大,完成系统中的核心关键工作,也具有较为完善的人机界面和外部设备。
(2)部件式嵌入
以部件式嵌入到一个控制设备中,完成某一处理功能,与设备的其他硬件耦合紧密、功能更专一。
如雷达的数字处理部件,一般选用专用CPU或DSP。
(3)芯片式嵌入
一个芯片是一个完整的专用计算机,具有完整的输入输出接口,完成专一功能。
如显示处理器、微波炉控制器等。
一般为专门设计的芯片。
随着微电子技术的发展,芯片式嵌入应用将越来越广泛。
2.1.2嵌入式系统设计的特点
根据英国电机工程师协会的定义,嵌入式系统控制、监视或设备、机器、甚至工厂运作的装置。
它是一种计算机软件与硬件的综合体,并且特别强调量身定做的原则,也就是给予某种特殊的用途,会针对这项用途开发出截然不同的一个系统。
可以从以下几个方面说明嵌入式系统设计方面的特点
(1)用户界面和控制面板
在这个方面不同的系统因功能不同而有很大的差别,有的系统可能只有几个简单的控制按键,而现实只需要几个示意的发光二极管就可以了,有的系统却要求包括多个菜单和许多选项,甚至有的要求精确的图形用户界面,如GPS。
(2)软件代码高质量、高可靠性
尽管半导体技术的发展是处理器速度不断提高,系统存储器容量不断增加,价格也不断下降,但在大多数应用中,存储空间仍然是宝贵的,多数时候还存在实时性的要求。
为此要求程序编写的编译工具的质量要高,以减少程序二进制代码长度,提高执行速度。
(3)制造成本
制造成本在很多情况下是十分重要的,尤其对于消费类电子产品,它由许多因素决定,比如处理器的种类,所需存储器的大小及需要哪些I/O设备,当然还有系统软件和应用程序的成本。
(4)功率
嵌入式系统的产品很多都是由电池供电的,因此对于电源的管理可以说到了近乎苛刻的地步。
即使是一些直接接入电网的设备,功耗同样是一个重要的指标,大功率意味着很大的散热量,对系统的稳定工作是有很大的影响的。
而且,如果是大量使用,用电成本也必须考虑[2]。
2.1.3相关处理器
随着信息技术和互联网技术的发展,嵌入式产品的功能日趋复杂,越来越多的应用系统了高性能的32位微处理器,以满足产品的网络化功能。
一般按照处理器的体系结构来看,在嵌入式系统领域中,几乎所有的处理器都是RISC内核(本文只涉及32位高档处理器,对于8位和16微处理器以及DSP不做讨论),一下列出了几种常用的处理器:
(1)MIPS
MIPS(Microprocessorwithoutinterlockedpipedstages),“无内部互锁流水级的微处理器”,其机制是尽量利用软件方法避免流水线中的数据相关问题,它是显著的特点是高速,而且有的还集成了许多内和结构,因此广泛应用与高端市场。
(2)ARM
ARM公司是知识产权供应商,涉及的内核耗电少、成本低、功能强,特有16/32位上指令集。
ARM已经为移动通信、手持计算、多媒体数字消费等嵌入式解决方案的RISC标准。
在所有基于ARM处理器系列中,基于ARM7内核的处理器应用最广泛。
(3)PowerPC
PowerPC体系结构规范由IBM、Apple和Motorola共同提出。
PowerPC架构的特点是可伸缩性能好、方便灵活,它在高速和低功耗之间作了很好的妥协,通常在外围集成了丰富的外围接口电路,被Motorola公司大量应用于嵌入式通信市场,国内中兴和华为大量采用在其产品中。
(4)M68K/ColdFire
M68K是最早广泛应用于嵌入式领域的内核,尤其在汽车制造领域。
ColdFire在其成了M68K的基础上对其作了改进,并保持了对M68K的兼容性,广泛应用于工业控制,机器人研究和家电控制领域。
在本次毕业设计中选用的是ARMCortex-M3为核心的STM32F103CBT6芯片。
这是一个专门为嵌入式应用设计的32位CPU。
除了这款处理其本身集合了ARM7与ARM9的许多优点以外,网上存在的大量相关的免费资源,包括从编译器到操作系统,到调试工具,都是我们选用这款处理器的重要原因。
2.2嵌入式操作系统μC/OS-II
2.2.1嵌入式操作系统
早在20世纪60年代,人们就已经开始了嵌入式操作系统的研究和开发工作。
嵌入式操作系统在通信、电子、自动化等领域具有无比的优越性,其实时处理能力得到越来越多的重视,关于嵌入式操作系统的研究正在不断深入。
正是由于嵌入式处理器的多样性在成了嵌入式操作系统的多样性,对于嵌入式操作系统,很多人将其等同为实时操作系统,但实际上这是有差别的。
一般情况下,嵌入式操作系统可以分为两类:
一类是面向控制、通讯领域的实时操作系统,如WindRiver公司的VxWorks、ISI的pSOS、QNX系列如建公司的QNX、AITI的Nucleus等,其特点是模块化,是实行好,性能稳定,但由于操作系统以及开发环境都是专有的,所以价格一般都比较高,而且不提供源代码,只提供二进制码,另一类是面向个人数字助理(PDA)、移动电话、机顶盒、电子书等消费类电子产品的非实时操作系统,如Palm公司的PalmOS,微软的WindowsCE,到目前为止,以掌上计算机和高档PDA为代表手持设备市场是开发最为成熟的嵌入式设备市场,而PalmOS和WindowsCE在这一领域占据着绝对的优势。
2.2.2实时操作系统
这次毕业设计所作的课题是基于ARMCortex-M3的32位RISC内核的实时嵌入式设备,而嵌入式设备的运行好坏的另一个关键就是嵌入式操作系统。
由此可见,在选用操作系统时,一定要选择一个好的实时嵌入式操作系统。
这样,也有必要了解事实系统的基本结构以及其与常用的通用操作系统的区别。
(1)实时操作系统与分时操作系统的区别
“实时操作系统”是相对“分时操作系统”而言的,人们日常接触的通用操作系统(如Windows、Unix、linux等)都是分时操作系统。
实时操作系统的最大特点就是能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
与分时系统相比,具有多路性、独立性、及时性、交互性、可靠性的特点。
对于实时操作系统,除了要满足应用的功能需求以外,更重要的是还要满足应用提出的实时性要求,而组成一个应用的众多实时任务对于实时性的要求是各不相同的。
此外实时任务之间可能还会有一些复杂的关联和同步关系,如执行顺序限制、共享资源的互斥访问要求等,这就为系统实时性的保证带来了很大的困难。
因此,实时操作系统所遵循的最重要的设计原则是:
采用各种算法和策略,始终保证系统行为的可预测性(predictability)。
可预测性是指在系统运行的任何时刻,在任何情况下,实时操作系统的资源调配策略都能为争夺资源(包括CPU、内存、网络带宽等)的多个实时任务合理地分配资源,使每个实时任务的实时性要求都能得到满足。
与通用操作系统不同,实时操作系统注重的不是系统的平均表现,而是要求每个实时任务在最坏情况下都要满足其实时性要求。
也就是说,实时操作系统注重的是个体表现,更准确地讲是个体最坏情况的表现。
举例来说,如果实时操作系统采用标准的虚存技术,则一个实时任务执行的最坏情况是每次访问内存都需要调页,如此累计起来的该任务在最坏情况下的运行时间是不可预测的,因此该任务的实时性无法得到保证。
(2)实时操作系统的特点
由于实时操作系统与通用操作系统的基本设计原则差别很大,因此在很多资源调度策略的选择上以及操作系统实现的方法上两者郡具有较大的差异。
一个好的实时操作系统需要具备以下功能(必须但非充分):
·多任务和可抢占的;
·任务具有优先级;
·操作系统具备支持可预测的任务同步机制;
·支持多任务间的通信;
·操作系统具备消除优先级转置的机制;
·存储器优化管理(含ROM的管理);
·操作系统的(中断延迟、任务切换、驱动程序延迟等)行为是可知的和可预测的
是指在全负载的情形下,最坏反应时间可知的;
·实时时钟服务;
·中断管理服务。
2.2.3μC/OS-II嵌入式操作系统简介
之所以在本次毕业设计中采用μC/OS-Ⅱ嵌入式操作系统,是因为μC/OS-Ⅱ的功能十分强大,它支持56个用户任务。
其内核为占先式,支持信号量、邮箱、消息队列等多种常用的进程间通信机制,现已成功的应用到各种商业嵌入式系统中,是一个成熟稳定的实时内核。
更为重要的一点是与大多商用RTOS不同,μC/OS-Ⅱ公开所有的源代码,而且μC/OS-Ⅱ90%的代码使用标准的ANSIC语言书写,程序可读性强、移植性好;它可免费获得,即使商业应用也只收取少量的许可费用。
同时μC/OS-Ⅱ是一个占先式的内核,即已经准备就绪的高优先级任务可以剥夺正在运行的低优先级任务的CPU使用权。
这个特点使得它的实时性比非占先式的内核要好。
通常都是在中断服务程序中使高优先级任务进入就绪态(例如使用发送信号的方法),退出中断服务程序后,将进行任务切换,高优先级任务被执行[3]。
以51单片机为例,比较一下就可以发现这样做的好处。
假如需要用中断方式采集一批数据并进行处理,在传统的编程方法中不能在中断服务程序中进行复杂的数据处理,因为这会使得关中断时间过长。
所以经常采用的方法是置一标志位,然后退出中断。
由于主程序是循环执行的,所以它总有机会检测到这一标志并转到数据处理程序中去。
但是因为无法确定发生中断时程序到底执行到了什么地方,也就无法判断要经过多长时间数据处理程序才会执行,中断响应时间无法确定,系统的实时性不强。
如果使用μC/OS-Ⅱ,只要把数据处理程序的优先级设定的高一些并在中断服务程序中使它进入就绪态,中断结束后数据处理程序就会被立即执行。
这样可以把中断响应时间限制在一定的范围内。
对于一些对中断响应时间有严格要求的系统,这是必不可少的。
但是如果数据处理程序简单,这样做就未必合适。
因为μC/OS-Ⅱ要求在中断服务程序末尾使用OSINTEXIT函数以判断是否进行任务切换,这需要花费一定的时间。
μC/OS-Ⅱ和大家所熟知的Windows等分时操作系统不同,它不支持时间片轮转法。
它是一个基于优先级的实时操作系统。
每一个任务必须具有不同的优先级(分析它的源码会发现,μC/OS-Ⅱ把任务的优先级当作任务的标识来使用,如果优先级相同,任务将无法区分)。
进入就绪态的优先级最高的任务首先得到CPU的使用权,只有等它交出CPU的使用权后,其他任务才可以被执行。
所以只能说它是多任务,不能说是多进程,至少不是人们所熟悉的那种多进程。
μC/OS-Ⅱ的这种特性是好是坏,主要看从什么角度来判断了。
显而易见,如果只考虑实时性,它当然比分时系统好,它可以保证重要任务总是优先占有CPU。
但是在应用系统中,重要任务毕竟是有限的,这就使得划分其他任务的优先权变成了一个让人费神的问题。
另外,有些任务交替
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 uCOSII 温度 监控 系统 毕业设计