嵌入式实习报告
姓名:
班级:
学号:
信息科学与工程学院
2014-01-15
一、引言
1、嵌入式的概述:随着信息化技术的发展和数字化产品的普及,以计算机技术、
芯片技术和软件技术为核心的嵌入式系统再度成为当前研究和应用的热点,通信、计算机、消费电子技术(3C)合一的趋势正在逐步形成,无所不在的网络和无所不在的计算(everything connecting, everywhere computing)正在将人类带入一个崭新的信息社会。
2、嵌入式的历史与现状:虽然嵌入式系统是近几年才开始真正风靡起来的,
但事实上嵌入式这个概念却很早就已经存在了,从上个世纪70年代单片机的出现到今天各种嵌入式微处理器、微控制器的广泛应用,嵌入式系统少说也有了近30年的历史。纵观嵌入式系统的发展历程,大致经历了以下四个阶段:
2.1、无操作系统阶段
嵌入式系统最初的应用是基于单片机的,大多以可编程控制器的形式出现,具有监测、伺服、设备指示等功能,通常应用于各类工业控制和飞机、导弹等武器装备中,一般没有操作系统的支持,只能通过汇编语言对系统进行直接控制,运行结束后再清除存。这些装置虽然已经初步具备了嵌入式的应用特点,但仅仅只是使用8位的CPU芯片来执行一些单线程的程序,因此严格地说还谈不上"系统"的概念。
2.2、简单操作系统阶段
20世纪80年代,随着微电子工艺水平的提高,IC制造商开始把嵌入式应用中所需要的微处理器、I/O接口、串行接口以及RAM、ROM等部件统统集成到一片VLSI中,制造出面向I/O设计的微控制器,并一举成为嵌入式系统领域中异军突起的新秀。与此同时,嵌入式系统的程序员也开始基于一些简单的"操作系统"开发嵌入式应用软件,大大缩短了开发周期、提高了开发效率。
2.3、实时操作系统阶段
20世纪90年代,在分布控制、柔性制造、数字化通信和信息家电等巨大需求的牵引下,嵌入式系统进一步飞速发展,而面向实时信号处理算法的DSP产品则向着高速度、高精度、低功耗的方向发展。随着硬件实时性要求的提高,嵌入式系统的软件规模也不断扩大,逐渐形成了实时多任务操作系统(RTOS),并开始成为嵌入式系统的主流。
2.4、面向Internet阶段
21世纪无疑将是一个网络的时代,将嵌入式系统应用到各种网络环境中去的呼声自然也越来越高。目前大多数嵌入式系统还孤立于Internet之外,随着Internet 的进一步发展,以及Internet技术与信息家电、工业控制技术等的结合日益紧密,嵌入式设备与Internet的结合才是嵌入式技术的真正未来。
3、学习目的:以培养培养实际的嵌入式系统软件设计能力和创新为主要目的,
通过实习,基本掌握嵌入式系统应用系统的设计方法、调试技术及创新能力等技能。
二、课题设计
1、嵌入式系统
1.1、嵌入式系统的概述
(1)根据IEEE的定义:嵌入式系统是“用于控制、监视或者辅助操
作机器和设备的装置。”
(2)通俗定义:嵌入式系统是以应用为中心,以计算机技术为基础,
并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、
体积、功耗有严格要求的专用计算机系统。
1.2、嵌入式操作系统
嵌入式操作系统(Embedded Operating System,简称:EOS)是
指用于嵌入式系统的操作系统。嵌入式操作系统是一种用途广泛的系统
软件,通常包括与硬件相关的底层驱动软件、系统核、设备驱动接口、
通信协议、图形界面、标准化浏览器等。嵌入式操作系统负责嵌入式系
统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必
须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的
功能。目前在嵌入式领域广泛使用的操作系统有:嵌入式Linux、
Windows CE、μC/OS-II、VxWorks等,以及应用在智能手机和平板
电脑的Android、iOS等。
2、STC15F2K60S2硬件平台
STC15 系列最小系统板,以宏景STC15F2K60S2单片机为核心, STC15F2K60S2功能简介如下,具体可参考相关数据手册[2]。
1)、STC15为1T单片机即晶振速度既是主频速度
2)、工作电压STC15F2K60S2 5V单片机 5.5v-3.8v
3)、60K flash 存储空间
4)、2048字节即2K SRAM
5)、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口)可设置四种模
式。
3、μC/OS-II操作系统
μC/OS-Ⅱ是一个源代码开放、可剪裁、结构小巧、抢先式的实时操作系统,主要用于中小型嵌入式系统中,执行效率高、占用空间小、可移植性强,具有良好的实时性能和可扩展性,最多支持64个任务,可运行在大部分嵌入式微处理器上。
μC/OS操作系统的特点
μC/OS是一个完成的,可移植、可固化、可裁减的抢占式实时多任务操作系统核。主要用ANSI的C语言编写,少部分代码是汇编语言。μC/OS主要有以下特点:
1)、可移植性可以移植到多个CPU上,包括三菱单片机。
2)、可固化可以固化到嵌入式系统中
3)、可裁减可以定制μC/OS,使用少量的系统服务
4)、可剥夺性μC/OS是完全可剥夺的实时核,μC/OS总是运行优先级最高的就绪任务。
5)、多任务运行μC/OS可以管理最多64个任务。不支持时间片轮转调度法,所以要求每个任务的优先级不一样。
6)、可确定性μC/OS的函数调用和系统服务的执行时间可以确定。
7)、任务栈每个任务都有自己的单独的栈,而且每个任务栈空间的大小可以不一样。
8)、系统服务μC/OS有很多系统服务,如信号量、时间标志、消息、消息队列、时间管理等等。
4、基于STC15F2K60S2单片机的μC/OS II的移植
μC/OS-II 可以大致分成核心、任务处理、时间处理、任务
同步与通信,CPU 的移植等5 个部分。
1) 核心部分(OSCore.c)
是操作系统的处理核心,包括操作系统初始化、操作系统运
行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。
能够维持系统基本工作的部分都在这里。
2) 任务处理部分(OSTask.c)
任务处理部分中的容都是与任务的操作密切相关的。包括
任务的建立、删除、挂起、恢复等等。因为μC/OS-II 是以任务
为基本单位调度的,所以这部分容也相当重要。
3) 时钟部分(OSTime.c)
μC/OS-II 中的最小时钟单位是timetick(时钟节拍)。任
务延时等操作是在这里完成的。
4) 任务同步和通信部分
为事件处理部分,包括信号量、、队列、事件标志
等部分;主要用于任务间的互相联系和对临界资源的访问。
5) 与CPU 的接口部分
是指μC/OS-II 针对所使用的CPU 的移植部分。由于μC/O
S-II 是一个通用性的操作系统,所以对于关键问题上的实现,还
是需要根据具体CPU 的具体容和要求作相应的移植。这部分
容由于牵涉到SP 等系统指针,所以通常用汇编语言编写。主要
包括中断级任务切换的底层实现、任务级任务切换的底层实现、
时钟节拍的产生和处理、中断的相关处理部分等容。
5、μC/OS -II应用软件设计
此次应用软件设计我们设计了三个应用,分别是:1、闪烁运行指示灯2、1602显示3、串口通讯收发
(1)流程图
①闪烁运行指示灯
(2)代码附录
&main.c代码:
#include "includes.h"
//运行灯
sbit LED1 = P3^2;
sbit LED2 = P5^5;
//定义任务堆栈
OS_STK Task1Stk[MaxStkSize+1]; //注意:我在ASM文件中设置?STACK空间为40H即64
OS_STK Task2Stk[MaxStkSize+1];
OS_STK Task3Stk[MaxStkSize+1];
//变量
//OS_EVENT* FirstSem;
INT8U err;
void InitTime0(void) reentrant
{ TMOD &= 0xF0;
TMOD |= 0x01; //定时器0:模式1(16位定时器),仅受TR0控制;定时器1:波特率发生器
// TH0 = 0xDC; //定义Tick=100次/秒(即0.01秒/次),TH,TL值与CPU的频率有关(11.0592M)