Small RTOS51的移植主要是配置OS_CPU.H、OS_CFG.H和CONFIG.H三个文件。OS_CFG.H文件主要用于对操作系统的裁减和时钟等的相关配置。根据实际需要,可以将以EN_OS_SEM打头的相关参数全部设为0,禁止对信号量的一切操作。同样道理可以将EN_OS_Q、EN_OS_Q_PENT和EN_OS_Q_POST以外的以EN_OS_Q打头的消息队列使能参数设为0。C8051F005具有2K外部数据存储器,根据尽量节约内存的原则,将不常用的参数定义为xdata类型,所以消息队列存储空间选择外部数据存储器。时钟周期选择选择内部2M时钟,经过8倍频后可达16M,所以定义N_SYS为3。最后禁止系统定时中断调用用户函数UserTickTimer(),允许中断嵌套管理,允许定时器中断调用OSTimeTick(),定义进入1次硬件中断为一次系统定时器软中断和定义任务数为4。
在配置OS_CPU.H文件时,只需注意改定时器使用的中断为1即可,其它参数都可使用默认值。而CONFIG.H主要任务是声明任务和将操作系统中所有的头文件集中起来,需要根据实际任务数及任务名配置。
3、 软件任务的划分及具体实现
根据硬件结构及所要求实现的功能,将软件系统划分为5个任务来完成。按照任务优先级的高低排序,各任务依次为:液晶显示任务、测量与数字信号处理任务、单色仪控制任务、数据通讯任务和键盘响应及处理任务。
3.1 液晶显示任务
液晶显示任务主要显示功能菜单、数据表格、状态栏、I-U曲线和计算步骤及结果。功能菜单显示数据由按键任务中的消息队列传递。另外,该任务还承担着部分任务调配的作用,当选中某功能选项时必须启动相应任务。数据表格显示数据由测量与数字信号处理任务中的消息队列传递,主要显示各种单色光颜色、波长和测量出来的截止电压。状态栏显示内容来源于各个任务,主要显示该仪器当前正在执行的任务和引导操作者下一步如何操作,另外在操作错误时,也会给出相应的提示。I-U曲线和计算步骤及结果显示数据都来源于测量与数字信号处理任务。
3.2 测量与数字信号处理任务
测量与数字信号处理任务是本系统的核心部分,它承担着反向电压输出控制,光电流信号数据采集,数字滤波和数据计算等任务。其中反向电压输出和光电流信号数据采集分别由C8051F0005中集成的DA和AD转换器完成。为了尽量提高精确度,本系统分别采用了平均值法、中值法和惯性法对采集到的数字信号进行三次数字滤波。经过有效的滤波后,可以得到一条光滑的I-U曲线,再用曲率法判断出该条曲线的截止电压。当确定已经测出两种以上单色光的截止电压后就可以用最小二乘法计算出普朗克常数。当然反过来,也可以通过普朗克常数计算输入单色光波长。
3.3 单色仪控制任务
根据光栅方程 ,可以求出衍射角与单色光波长之间的关系,通过查表就可以得到与输入波长 相对应的衍射角 。此任务就是要通过控制步进电机的转动,带动光栅转动 ,从而得到波长为单色光。
3.4 数据通讯任务
本系统具有将所测得的光电流随方向电压变化的曲线存储于外部数据存储器XRAM中,或通过串口传送到PC机上。该任务主要完成这项工作。存储到XRAM中的数据通过液晶显示任务还原显示,而传到PC机上的数据需要配合相应的软件还原显示。
3.5 键盘响应及处理任务
按键任务主要起到输入控制和任务选择作用。首先要建立消息队列KeyBuff[],用于缓冲按键键值和与其它任务进行通讯,然后进入无限循环。在无限循环中逐个扫描按键,当发现有按键按下,调用Small RTOS51提供的系统函数OSQPost(KeyBuff,Value_Key)将按键键值放在消息队列中,并查找有无其它任务等待按键。若有,则将按键任务处于休眠状态,同时激活等待任务。
4、 实验数据及结果分析
启动“测UC”后,本系统会根据操作者的选择逐个测量输入单色光的I-U曲线,并判断截止电压。测得的汞灯光源中个各单色光截止电压如表1所示。
当启动“测 ”功能后,液晶显示器显示出以上数据及用最小二乘法计算的普朗克出常数 为6.703×10-34JS,并给出主要的计算过程。该值与公认值6.626×10-34JS比较,相对误差为1.16%,在允许误差内,与公认值符合地很好。
5、 结论
以嵌入式操作系统Small RTOS51为软件平台,开发设计各相应任务,大大简化了程序设计的难度,增强了系统的可靠性和安全性,满足系统实时性要求。同时在维护和升级时,只要修改或增加相应的任务,不需涉及其它部分,降低了难度和成本。
本文作者创新点:①使用实时嵌入式操作系统实现光电效应实验系统的智能化,避免了人为误差,有效地减小了系统误差;②将先进的微电子技术、智能控制理论和数字信号处理知识应用于大学物理实验中,在确保不改变物理实验基本原理,满足物理实验基本要求的前提下,显著提高物理实验的整体质量。同时,也很容易转移到其它实验或工程领域应用。