嵌入式综合设计实习报告
- 格式:doc
- 大小:556.00 KB
- 文档页数:14
一、实训目的通过本次嵌入式课程设计实训,使学生掌握嵌入式系统设计的基本原理和方法,提高学生的实际操作能力和创新意识,培养学生的团队协作精神。
同时,通过实训,使学生熟悉嵌入式系统的硬件平台、软件开发环境,掌握嵌入式编程语言,了解嵌入式系统的调试和测试方法。
二、实训内容本次实训以设计一个简单的温室环境监测系统为例,主要包括以下几个方面:1. 系统需求分析温室环境监测系统主要实现对温室内部光照、温度、湿度的实时监测,并根据监测结果自动调节环境参数,确保温室内的作物生长环境稳定。
系统需具备以下功能:(1)实时监测光照、温度、湿度等环境参数;(2)根据预设阈值,自动调节环境参数;(3)通过LCD显示屏实时显示监测数据;(4)通过串口通信将数据传输至上位机;(5)具有按键控制功能,如开关报警、手动调节等。
2. 硬件平台设计本次实训采用STM32系列微控制器作为核心控制单元,结合DS18B20数字温度传感器、DHT11数字湿温度传感器、光敏电阻、LCD显示屏、蜂鸣器、按键等外围设备,构建温室环境监测系统硬件平台。
3. 软件设计(1)系统初始化:初始化微控制器,配置相关外设参数,设置中断优先级等。
(2)数据采集:通过ADC读取光敏电阻的模拟值,计算光照强度;通过DS18B20和DHT11传感器读取温度和湿度数据。
(3)数据处理:对采集到的数据进行处理,如温度、湿度阈值判断,光照强度阈值判断等。
(4)环境参数调节:根据预设阈值,自动调节加热装置、风扇等设备,以实现环境参数的自动调节。
(5)数据显示:通过LCD显示屏实时显示光照、温度、湿度等数据。
(6)串口通信:通过串口将数据传输至上位机。
(7)按键控制:实现报警功能、手动调节等功能。
4. 系统调试与测试在系统开发过程中,对硬件平台和软件进行调试和测试,确保系统稳定运行。
主要测试内容包括:(1)硬件测试:检查各外设是否正常工作,如传感器、显示屏、按键等。
(2)软件测试:测试系统功能是否满足需求,如数据采集、处理、显示、通信等。
嵌入式实习报告样本一、实习单位和实习内容本次实习我选择在某某科技有限公司进行嵌入式开发方向的实习。
实习期为两个月,实习期间我主要负责嵌入式软件开发和系统调试工作。
具体实习内容包括:1. 学习并熟悉公司现有的嵌入式系统开发流程和工具链;2. 参与嵌入式软件模块编写和调试;3. 参与硬件和软件的联调工作;4. 参与嵌入式系统的性能测试和优化。
二、实习过程及成果1. 学习嵌入式系统开发流程和工具链在实习开始前,我首先通过阅读公司提供的相关文档和参与培训学习,了解了嵌入式系统的开发流程和常用工具链。
我学习了版本控制工具的使用、编译器的配置、调试工具的使用等。
通过自学和实践,我逐渐掌握了这些工具的使用方法。
2. 参与嵌入式软件模块编写和调试在实习期间,我参与了公司一个嵌入式软件模块的编写和调试工作。
这个模块是用来实现某个硬件设备的驱动程序的,我负责其中的部分功能的实现。
在编写过程中,我遇到了一些问题,例如如何与硬件设备进行通信、如何解析硬件设备的数据等等。
通过与导师和同事的交流,我解决了这些问题,并最终完成了该模块的开发和调试工作。
3. 参与硬件和软件的联调工作为了保证嵌入式系统的正常工作,硬件和软件之间需要进行联调工作。
在实习期间,我参与了公司某个产品的硬件和软件的联调工作。
在联调过程中,我与硬件工程师一起解决了一些通信问题和数据传输问题。
我通过使用示波器、逻辑分析仪等工具进行调试,最终成功实现了硬件和软件之间的正常通信。
4. 参与嵌入式系统的性能测试和优化为了提高嵌入式系统的性能和稳定性,我参与了系统的性能测试和优化工作。
在测试过程中,我使用了一些性能测试工具,对系统的各个模块进行了测试和分析。
通过测试和分析,我找出了系统性能较差的模块,并进行了优化。
例如,通过优化算法、减少资源消耗等方式,提高了系统的响应速度和稳定性。
三、实习收获和总结1. 实践动手能力的提升通过实习的实践学习,我深刻领会了理论知识与实际应用的融合重要性。
精选嵌入式系统实习报告3篇嵌入式系统实习报告篇1ARM嵌入式系统综合设计一.实习时间和地点安排1.实习时间:20xx年XX月03 日—— 20xx年XX月14日,共两周的时间。
2.每天的实习时间安排:上午:8:30——11:30下午:13:30——15:303.实习地点:校内。
二.实习目的1.掌握电子元器件的焊接原理和方法。
2.掌握ARM7 LPC2132控制程序的编写方法。
3.掌握调试软件和硬件的方法。
三.实习内容与要求1.根据设计要求焊接好电路板并测试焊接无误。
2.绘制流程图并编写程序。
3.编译通过后,将程序下载到LPC2132进行调试。
4.调试成功后编写实习报告。
四.LPC2132芯片介绍LPC2132最小系统图及其介绍概述LPC2132是基于一个支持实时仿真和嵌入式跟踪的32/16 位 ARM7TDMI-STM CPU 的微控制器,并带有 32kB、64kB、512 kB 的嵌入的高速Flash 存储器。
128 位宽度的存储器接口和独特的加速结构使 32 位代码能在最大时钟速率下运行。
对代码规模有严格控制的应用可使用 16 位 Thumb?模式将代码规模降低超过 30%,而性能的损失却很小。
较小的封装和极低的功耗使 LPC2131/2132/2138 可理想地用于小型系统中,如访问控制和 POS 机。
宽范围的串行通信接口和片内 8/16/32kB 的 SRAM 使LPC2131/2132/2138 非常适用于通信网关、协议转换器、软 modem 、声音辨别和低端成像,为它们提供巨大的缓冲区空间和强大的处理功能。
多个 32 位定时器、1 个或 2 个 10 位 8 路 ADC 、10 位 DAC 、PWM 通道和 47 个 GPIO 以及多达9 个边沿或电平触发的外部中断使它们特别适用于工业控制和医疗系统。
特性1.小型 LQFP64 封装的 16/32 位 ARM7TDMI-S 微控制器。
一、实习背景随着信息化、智能化技术的飞速发展,嵌入式系统在各个领域得到了广泛应用。
为了更好地了解嵌入式技术,提高自己的实践能力,我于2023年6月至8月在某嵌入式公司进行了为期两个月的工作实习。
二、实习单位简介该公司成立于2005年,主要从事嵌入式系统研发、生产和销售,产品涵盖智能家居、工业控制、医疗设备等领域。
公司拥有一支高素质的研发团队,具备丰富的项目经验和技术实力。
三、实习内容1. 项目背景及需求分析在实习期间,我参与了公司一款智能家居产品的研发项目。
该项目旨在为用户提供便捷、舒适的家居生活体验,主要功能包括远程控制家电、智能安防、环境监测等。
2. 硬件选型及搭建在项目初期,我负责对硬件进行选型及搭建。
根据项目需求,我选择了STM32F103系列单片机作为核心控制器,同时配置了传感器、通信模块、显示屏等外围设备。
在硬件搭建过程中,我学会了如何使用电子元器件、电路板焊接等技能。
3. 软件开发及调试在硬件搭建完成后,我开始进行软件开发及调试。
主要工作包括:(1)嵌入式C语言编程:使用Keil uVision作为开发环境,编写嵌入式C语言程序,实现产品功能。
(2)驱动开发:针对传感器、通信模块等外围设备,编写相应的驱动程序。
(3)系统调试:在开发过程中,不断调试程序,确保系统稳定运行。
4. 项目测试及优化在软件开发完成后,我参与了对产品的测试及优化。
主要工作包括:(1)功能测试:对产品各项功能进行测试,确保满足用户需求。
(2)性能测试:测试产品在高速、高温等恶劣环境下的性能表现。
(3)优化:针对测试过程中发现的问题,对程序进行优化,提高产品稳定性。
四、实习收获1. 技术能力提升通过本次实习,我熟练掌握了嵌入式C语言编程、硬件选型及搭建、驱动开发等技能,提高了自己的实践能力。
2. 团队协作与沟通在项目过程中,我与团队成员密切合作,共同解决问题。
这使我学会了如何与他人沟通、协作,提高了自己的团队协作能力。
嵌入式实训报告范文 (2)嵌入式实训报告范文 (2)精选2篇(一)嵌入式实训报告一、实训背景嵌入式系统是一种以具体任务为中心,集成了硬件与软件的计算机系统。
由于其体积小、功耗低、功能强大等特点,嵌入式系统被广泛应用于各个领域,如家电、汽车、医疗等。
通过参与嵌入式实训,我希望能够掌握嵌入式开发的基本原理和方法,提高自己的实践能力。
二、实训目标1.掌握嵌入式系统的基本知识和开发工具的使用;2.了解嵌入式系统的硬件架构和软件设计流程;3.能够根据需求设计并实现简单的嵌入式系统。
三、实训内容1.学习嵌入式系统基础知识:通过课堂教学和自主学习,了解了嵌入式系统的概念、特点及应用领域。
深入学习了ARM架构和C语言的基本知识,并进行了相应的实践操作。
2.学习嵌入式开发工具的使用:学习了Keil MDK和IAR Embedded Workbench等常用的嵌入式开发工具的安装和配置方法。
通过实操操作,掌握了调试、编译、下载等基本功能的使用。
3.学习嵌入式系统设计流程:了解了嵌入式软件开发的常用流程,包括需求分析、系统设计、编码实现、调试测试、系统验证等。
通过案例分析和实践操作,对嵌入式系统设计流程有了更深入的了解。
4.设计并实现简单的嵌入式系统:根据实训要求,我选择了一个简单的嵌入式系统项目,通过分析需求、设计系统架构、编写软件代码、调试测试等环节,最终成功完成了项目。
四、实训总结及收获通过参与嵌入式实训,我不仅掌握了嵌入式系统的基本知识和开发工具的使用,还锻炼了自己的实践能力。
我深刻认识到嵌入式系统开发需要全面的知识储备和较高的技术水平,同时也需要良好的分析、设计和沟通能力。
通过实训,我对嵌入式系统开发流程有了更深入的理解,对嵌入式系统的设计和开发也有了更高的认识和要求。
在未来的学习和工作中,我会继续深入学习嵌入式系统开发相关知识,并不断提高自己的实践能力。
嵌入式系统是未来的发展方向,通过不断探索和实践,我相信我能够在这个领域取得更好的成果。
嵌入式实训报告范文嵌入式实训报告范文精选2篇(一)嵌入式实训报告一、实训目的和背景嵌入式实训的目的是通过设计和实现一个嵌入式系统,培养学生的嵌入式系统开发才能和团队协作才能。
本次实训的背景是为了满足社会对嵌入式系统开发人才的需求,进步学生的实际动手才能。
二、实训内容1. 硬件平台的选择和搭建:选择了一款ARM开发板作为硬件平台,并搭建了相应的开发环境。
2. 系统设计和分析:根据实训要求,我们团队设计了一个智能门锁系统,包括用户认证、门锁控制和远程监控功能。
3. 软件开发:使用C语言和嵌入式开发工具进展软件开发,实现了用户认证、门锁控制和远程监控等功能。
4. 硬件连接和调试:将开发板和相关传感器、执行器等硬件设备进展连接和调试,确保系统可以正常运行。
5. 功能测试和调优:对系统进展全面测试,发现并修复了一些问题,并对系统进展了性能优化。
三、实训心得和体会通过本次实训,我深入认识到嵌入式系统开发的复杂性和挑战性。
在实训过程中,我们团队遇到了许多问题,比方硬件和软件的兼容性、性能优化等方面。
但是通过团队的努力和合作,我们成功解决了这些问题,并完成了一个功能完善的嵌入式系统。
此外,我还学到了许多软件开发和硬件调试的技巧,进步了自己的实际动手才能。
在团队协作方面,我们团队成员之间互相配合,共同解决问题,形成了良好的协作机制。
总结起来,本次嵌入式实训让我受益匪浅,学会了许多实际应用的技能和知识,并进步了自身的综合才能。
四、实训成果展示在实训完毕后,我们团队成功完成了一个智能门锁系统,具备用户认证、门锁控制和远程监控等功能。
系统的稳定性和可靠性得到了验证,并且在实际使用中得到了积极的反应。
附图:〔展示系统界面、硬件设备连接示意图等〕五、实训改良意见尽管本次实训获得了良好的成果,但仍有一些方面需要改良。
首先,实训的时间安排可以更合理一些,以便更充分地利用时间进展理论操作。
其次,可以增加一些真实场景的案例分析和解决方案的设计,以提升学生的实际应用才能。
嵌入式实习报告(共5篇)第一篇:嵌入式实习报告一、嵌入式系统开发与应用概述在今日,嵌入式ARM 技术已经成为了一门比较热门的学科,无论是在电子类的什么领域,你都可以看到嵌入式ARM 的影子。
如果你还停留在单片机级别的学习,那么实际上你已经落下时代脚步了,ARM 嵌入式技术正以几何的倍数高速发展,它几乎渗透到了几乎你所想到的领域。
本章节就是将你领入ARM 的学习大门,开始嵌入式开发之旅。
以嵌入式计算机为技术核心的嵌入式系统是继网络技术之后,又一个IT领域新的技术发展方向。
由于嵌入式系统具有体积小、性能强、功耗低、可靠性高以及面向行业具体应用等突出特征,目前已经广泛地应用于军事国防、消费电子、信息家电、网络通信、工业控制等各个领域。
嵌入式的广泛应用可以说是无所不在。
嵌入式微处理器技术的基础是通用计算机技术。
现在许多嵌入式处理器也是从早期的PC 机的应用发展演化过来的,如早期PC 诸如TRS-80、Apple II 和所用的Z80 和6502 处理器,至今仍为低端的嵌入式应用。
在应用中,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。
嵌入式处理器目前主要有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM 等系列。
在早期实际的嵌入式应用中,芯片选择时往往以某一种微处理器内核为核心,在芯片内部集成必要的ROM/EPROM/Flash/EEPROM、SRAM、接口总线及总线控制逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A 等各种必要的功能和外设。
二、实习设备硬件:Embest EduKit-IV实验平台、ULINK2仿真器套件、PC机软件:μVision IDE for ARM集成开发环境、Windows 98/2000/NT/XP三、实习目的1.初步掌握液晶屏的使用及其电路设计方法;掌握S3C2410X处理器的LCD控制器的使用;掌握通过任务调用的方法把液晶显示函数添加到uC/OS-II中;通过实验掌握液晶显示文本及图形的方法与程序设计。
嵌入式实习工作总结[大全5篇]第一篇:嵌入式实习工作总结嵌入式实习工作总结在嵌入式公司经历三个月的工作实习已经结束了,在这三个月里,我和公司的职工以及领导都相处得很是融洽,大家对我也关怀备至,时常给我鼓励和帮助。
下面,我将实习三个月的工作总结如下:一、感想和体会1、态度决定一切。
工作时一定要一丝不苟,认真仔细,一个职员在公司的大部分时间都是在工作的,这就要求他在这段时间内一定要小心谨慎,一丝不苟,不能老是出错, 有必要一定要检验自己的工作结果,以确保自己的万无一失.工作的时候我一直保持极大的工作热情,不仅顺利完成工作任务,工作之余还经常总结经验教训,不断提高工作效率,虽然工作中我也会犯一些错误,受到领导批评,但我认为这些错误和批评是能让我能在以后的工作中谨慎小心,提高工作效率。
在和大家工作的这段时间里,他们严谨、认真的工作作风给我留下了很深刻的印象,我也从他们身上学到了很多自己缺少的东西。
这次生产实习虽然说时间比较少,但是却让我了解了公司的企业文化、生产模式和质量体系管理等经验,这对我来说是很宝贵的。
2、勤于思考在工作岗位上一定要勤于思考,不断改进工作方法,提高工作效率. 公司的日常工作都会比较繁琐,而且几天下来也会比较枯燥,就是需要你多动脑筋,不断地想方设法改进自己的工作方法,提高工作效率,减少工作所需时间3、不断学习要不断的丰富自己的专业知识和专业技能。
这会使你的工作更加得心应手。
一个人在自己的职位上有所作为,一定要对自己职业的专业知识有所熟悉,对自己业务所在范围内的业务技能也要熟练掌握,这样才算是一位合格的技术人员。
二、工作成果与收获在这三个月里,我作为一个质量改善技术人员,认真学习公司的质量管理流程,根据岗位职责的要求,主要有以下工作成果及收获:1、物料筛选车间筛选工装的制作完成的工装有:遥控器筛选工装3个,塑封电机筛选工装4台,铁壳电机筛选工装4台,电控测试工装4台,传感器筛选工装1台,PTC电加热筛选1台。
一、实验背景随着信息技术的飞速发展,嵌入式系统在各个领域得到了广泛的应用。
为了让学生更好地掌握嵌入式系统设计的相关知识,提高学生的动手能力和实际操作能力,我们开展了嵌入式实验设计实训。
本次实训以ARM处理器为平台,通过实际操作,让学生了解嵌入式系统的基本原理和设计方法。
二、实验目的1. 熟悉ARM处理器的基本架构和编程环境。
2. 掌握嵌入式系统设计的基本流程和方法。
3. 培养学生的动手能力和实际操作能力。
4. 提高学生对嵌入式系统的认知和应用能力。
三、实验内容1. 实验环境(1)硬件平台:ARM处理器开发板(2)软件平台:Keil uVision5、GNU ARM Embedded Toolchain2. 实验步骤(1)搭建实验环境首先,将开发板连接到计算机,并安装Keil uVision5和GNU ARM Embedded Toolchain软件。
接着,配置开发板,使其能够正常运行。
(2)编写程序根据实验要求,编写嵌入式系统程序。
程序主要包括以下几个方面:1)初始化:设置时钟、GPIO、中断等。
2)主循环:实现程序的主要功能。
3)中断处理:处理外部中断。
4)延时函数:实现延时功能。
(3)编译程序将编写好的程序编译成可执行文件。
(4)下载程序将编译好的程序下载到开发板上。
(5)调试程序在开发板上运行程序,通过串口调试软件观察程序运行情况,并对程序进行调试。
(6)实验报告根据实验内容,撰写实验报告。
3. 实验项目(1)点亮LED灯通过控制GPIO端口,实现LED灯的点亮和熄灭。
(2)按键控制LED灯通过检测按键状态,控制LED灯的点亮和熄灭。
(3)定时器实现定时功能使用定时器实现定时功能,例如定时关闭LED灯。
(4)串口通信实现串口通信,发送和接收数据。
四、实验结果与分析1. 点亮LED灯实验成功实现了通过控制GPIO端口点亮LED灯的功能。
2. 按键控制LED灯实验成功实现了通过检测按键状态控制LED灯的功能。
一、实习背景随着我国经济的快速发展和科技的不断进步,嵌入式技术已成为当今世界信息技术领域的一个重要分支。
嵌入式系统广泛应用于工业控制、智能家居、医疗设备、交通系统等领域,对提高我国产业水平和国际竞争力具有重要意义。
为了深入了解嵌入式技术,提高自身实践能力,我于近期参加了一次嵌入式学习实习。
二、实习目的1. 了解嵌入式系统的基本原理、架构和发展趋势;2. 掌握嵌入式系统开发流程和常用开发工具;3. 熟悉C语言编程和嵌入式系统编程技巧;4. 培养团队协作能力和解决实际问题的能力。
三、实习内容1. 嵌入式系统基础知识实习期间,我们学习了嵌入式系统的基本概念、发展历程、应用领域等。
通过了解嵌入式系统,我们认识到嵌入式技术在我国产业中的重要地位,以及其在推动我国经济和社会发展中的积极作用。
2. 嵌入式系统架构实习中,我们学习了嵌入式系统的硬件架构、软件架构和中间件技术。
通过分析嵌入式系统架构,我们了解了嵌入式系统在硬件、软件和中间件方面的特点,以及如何根据实际需求选择合适的嵌入式系统。
3. 嵌入式系统开发流程实习期间,我们学习了嵌入式系统开发的流程,包括需求分析、硬件选型、软件开发、测试和部署等。
通过学习开发流程,我们掌握了嵌入式系统开发的各个环节,为今后从事嵌入式系统开发奠定了基础。
4. 嵌入式系统编程实习中,我们学习了C语言编程和嵌入式系统编程技巧。
通过实际操作,我们掌握了C语言的基本语法、数据类型、控制结构、函数等,并学会了如何利用C语言编写嵌入式系统程序。
5. 嵌入式系统开发工具实习期间,我们学习了常用的嵌入式系统开发工具,如Keil、IAR、Eclipse等。
通过学习这些工具,我们了解了嵌入式系统开发过程中的调试、编译和部署等操作。
四、实习体会1. 嵌入式技术在我国具有广阔的应用前景,是未来产业发展的重要方向。
2. 嵌入式系统开发涉及多个领域,需要具备扎实的理论基础和实践能力。
3. 嵌入式系统编程具有一定的挑战性,需要不断学习和积累经验。
桂林理工大学嵌入式综合设计实习报告学院:信息科学与工程班级:计算机2010-1姓名:周杰学号:3100717102指导:金红日期:2014年1月一、引言1、实习的性质、目的和意义以培养学生实际的嵌入式系统软件设计能力和创新为主要目的,通过实习,基本掌握嵌入式系统应用系统的设计方法、调试技术及创新能力等技能。
本课程是计算机专业的一门必修的专业实习课。
通过该实习,使学生进一步加深对《嵌入式系统》、《C语言程序设计》、《单片机应用系统设计》、《微机原理》、等课程相关理论知识的理解;通过该实习,使学生初步掌握嵌入式系统应用系统设计方法、系统调试等能力,提高创新技能。
2、实习的要求要求学生从嵌入式应用系统和实现的角度出发,能够利用课程内容设计嵌入式系统应用系统,掌握基本嵌入式软件设计、调试等技能,提高创新能力。
(1)掌握嵌入式系统的概念及系统构成;(2)初步掌握嵌入式系统移植及应用软件设计及调试方法;(3)初步掌握设计报告的格式要求和撰写方法。
二、课题设计1、嵌入式系统1.1嵌入式系统概述1.1.1嵌入式系统定义(1)根据IEEE(Institute of Electrical & Electronic Engineers,国际电气和电子工程师协会)的定义[1]:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”(原文为devices used to control, monitor, or assist the operation of equipment, machinery or plants)(2)通俗定义嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
1.1.2嵌入式系统构架总体上嵌入式系统可以划分成硬件和软件两部分硬件一般由高性能的嵌入式微处理器、外围的接口电路、外设组成软件一般由:应用软件或者嵌入式操作系统和其上运行的应用软件构成;1.1.3、嵌入式系统硬件嵌入式系统硬件可分为:微处理器、外围电路和外设。
嵌入式处理器作为嵌入式系统的核心,它必须首先满足系统在功耗、功能和速度方面的要求。
一般来说,嵌入式系统对实时性、功耗、体积和可靠性等方面要求比较高。
嵌入式处理器的分类可以根据组织结构和功能特点的不同进行分类第二,或按照嵌入式处理器的字长来分类。
流行的嵌入式处理器有8051、ARM、PowerPC、MIPS。
1.2嵌入式操作系统目前,嵌入式系统有一部分有操作系统,还有一部分没有操作系统。
由于嵌入式技术的飞速发展和广泛应用,嵌入式操作系统的种类繁多,下面简单介绍几种常见的嵌入式操作系统。
1.嵌入式Linux嵌入式Linux是以Linux为基础的嵌入式操作系统,广泛应用于移动电话、个人数字助理(PDA)、媒体播放器、消费性电子产品以及航空航天等领域中。
2.Windows CEWindows CE是微软公司基于掌上型电脑所开发的32位嵌入式操作系统,可看作是Windows 95的精简版本,具有相当出色的图形用户界面。
CE中的C代表袖珍(Compact)、消费(Consumer)、通信能力(Connectivit)和伴侣(Companion),E代表电子产品(Electronics)。
3.VxWorksVxWorks 是美国Wind River System 公司(风河公司)推出的一个实时操作系统。
它具有高性能的内核、友好的用户开发环境,是实时操作系统领域的佼佼者,广泛应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域,如卫星通信、军事演习、导弹制导、飞机导航等。
1997年4月在火星表面登陆的火星探测器上就使用了VxWorks 操作系统。
但VxWorks价格昂贵,在大众化的嵌入式产品中使用不多。
4.µC/OS-ⅡµC/OS-Ⅱ是一个源代码开放、可剪裁、结构小巧、抢先式的实时操作系统,主要用于中小型嵌入式系统中,执行效率高、占用空间小、可移植性强,具有良好的实时性能和可扩展性,最多支持64个任务,可运行在大部分嵌入式微处理器上。
2、STC15F2K60S2硬件平台STC15 系列最小系统板,以宏景STC15F2K60S2单片机为核心, STC15F2K60S2功能简介如下,具体可参考相关数据手册[2]。
1、STC15为1T单片机即晶振速度既是主频速度2、工作电压STC15F2K60S2 5V单片机 5.5v-3.8v3、60K flash 存储空间4、2048字节即2K SRAM5、1K EEPROM存储空间6、共8通道10位高速ADC 速度可达30万次/秒3路PWM还可当3路D/A使用7、共3通道捕获/比较单元(CCP/PWM/PCA)8、内部高可靠复位8级可选择复位门槛电压可省去外部复位电路9、支持内部高精度R/C时钟,可选择(5.5296MHz、11.0592MHz、22.1184MHz、33.1776MHz)10、两组高速异步串行通信端口(可同时使用)即双串口可在5组管脚之间进行切换分时复用可当5组串口使用!11、一组高速异步串行SPI总线在读SD卡NRF24L01 flash芯片即扩展IO等均可使用12、低功耗设计:低速模式,空闲模式,掉电模式/停机模式13、共6个定时器/计数器3个16位可重装载定时器/计数器(T0/T1/T2 其中T0/T1兼容普通8051的定时器/计数器),并均可独立实现对外可编程时钟输出(3通道),3路CPP/PWM/PCA还可再实现3个定时器。
14、可编程时钟输出功能(对内部系统时钟或对外部管脚的时钟输入进行时钟分频输出)15、硬件看门狗(WDT)16、先进的指令集结构兼容普通8051指令集有硬件乘法/除非指令17、42个通用I/O口复位后为:准双向口/弱上拉(普通8051传统I/O口)可设置四种模式。
STC15F2K60S2的最小系统板,具体资源及系统板电路如下图,具体可参考相关资料资料。
3、UCOSII操作系统uC/OS是一个完成的,可移植、可固化、可裁减的抢占式实时多任务操作系统内核。
主要用ANSI的C语言编写,少部分代码是汇编语言。
uC/OS主要有以下特点:1、可移植性可以移植到多个CPU上,包括三菱单片机。
2、可固化可以固化到嵌入式系统中3、可裁减可以定制uC/OS,使用少量的系统服务4、可剥夺性uC/OS是完全可剥夺的实时内核,uC/OS总是运行优先级最高的就绪任务。
5、多任务运行uC/OS可以管理最多64个任务。
不支持时间片轮转调度法,所以要求每个任务的优先级不一样。
6、可确定性uC/OS的函数调用和系统服务的执行时间可以确定。
7、任务栈每个任务都有自己的单独的栈,而且每个任务栈空间的大小可以不一样。
8、系统服务uC/OS有很多系统服务,如信号量、时间标志、消息邮箱、消息队列、时间管理等等。
二、uC/OS内核介绍1、前后台系统也称为超循环系统。
应用程序是一个无限的循环,循环中实现相应的操作,这部分看成后台行为。
用中断服务程序处理异步事件,处理实时性要求很强的操作,这部分可以看成前台行为。
2、共享资源可以被一个以上任务使用的资源叫做共享资源。
3、任务:一个任务是一个线程,一般是一个无限的循环程序。
一个任务可以认为CPU资源完全只属于自己。
任务可以是以下五种状态之一:休眠态,就绪态,运行态,挂起态和被中断态。
uC/OS-II提供的系统服务可以使任务从一种状态变为另一种状态。
4、任务切换:任务切换就是上下文切换,也是CPU寄存器内容切换。
当内核决定运行另外的任务时,它保存正在运行任务的当前状态(CPU寄存器的内容)到任务自己的栈区。
入栈完成后,就把下一个将要运行的任务状态从该任务的栈中重新装入CPU寄存器,并开始下一个任务的运行,这个过程叫做任务切换。
5、内核多任务系统中内核负责管理和调度各个任务,为每个任务分配CPU时间,并负责任务间的通信。
内核总是调度就绪态的优先级最高的任务。
内核本身增加了系统的额外负荷,因为内核提供的服务需要一定的执行时间。
6、可剥夺型内核uC/OS-II以及绝大多数商业实时内核都是可剥夺型内核。
最高优先级的任务一旦就绪,就抢占运行着的低优先级的任务,得到CPU的使用权。
7、可重入函数:可以被多个任务调用,并且不用担心数据会被破坏的函数。
8、优先级反转优先级反转问题是使用实时内核系统中出现最多的问题。
描述如下:假设当前系统有任务3在运行,并且低优先级的任务3占用了共享资源,而高优先级任务1就绪得到CPU使用权后,也要使用任务3占用的共享资源,任务1只能挂起等待任务3使用完共享资源。
任务3继续运行时,优先级在任务1和任务3之间的任务2就绪并抢占了任务3的CPU使用权,直到运行完后才把CPU使用权还给任务3。
任务3继续运行,在释放了共享资源后任务1才得以运行。
这样,任务1实际上降到了任务3优先级的水平。
这种情况就是优先级反转问题。
uC/OS-II中,可以利用互斥信号量来这个解决。
9、互斥方法使用共享数据结构进行任务间通信时,要求对其进行互斥。
保证互斥的方法有:关中断、使用测试变量、禁止任务切换和利用信号量。
10、同步可以利用信号量使任务与任务,任务与ISR之间同步。
任务之间没有数据交换。
11、事件标志:当任务要与多个事件同步时,需要使用事件标志(event flag)。
事件标志同步分为独立型同步(逻辑“或”关系)和关联型同步(逻辑“与”关系)。
12、任务间通信:任务间信息的传递有两个途径,通过全局变量或者通过内核发消息给另一个任务。
通过内核服务发送的消息包括:消息邮箱、消息队列。
任务或者ISR可以把一个指针放到消息邮箱中,让另一个任务接收。
消息队列实际上是邮箱阵列。
13、时钟节拍:是特定的周期性的定时器中断。
时钟节拍是系统的心脏脉动,提供周期性的信号源,是系统进行任务调度的频率依据和任务延时依据。
时钟节拍越快,系统开销就越大。
我们移植过程中采用的方法:初始化定时器TA0,周期是20ms,作为操作系统时钟节拍。
说明:基于uC/OS-II操作系统进行应用系统时,设计任务的主要任务是将系统合理划分成多个任务,并由RTOS进行调度,任务之间使用uC/OS-II提供的系统服务进行通信,以配合实现应用系统的功能。
上图中应用代码部分主要是设计人员设计的业务代码。
与前后台系统一样,基于uC/OS-II的多任务系统也有一个main主函数,main函数由编译器所带的C启动程序调用。
在main主函数中主要实现uC/OS-II的初始化OSInit()、任务创建、一些任务通信方法的创建、uC/OS-II的多任务启动OSStart()等常规操作。
另外,还有一些应用程序相关的初始化操作,例如:硬件初始化、数据结构初始化等。