基于Small RTOS51的光电效应实验系统
扫描二维码
随时随地手机看文章
引言
随着科学技术的发展,光电效应己广泛应用于工农业生产、国防和许多科技领域。普朗克常数是自然界中一个很重要的普适常数,它可以用光电效应法简单而又较准确地求出。所以,进行光电效应实验并通过实验求取普朗克常数有助于人们理解量子理论和更好地认识这个普适常数。然而传统手动测量和数据处理方法采集的数据量非常有限,不但引入很大人为误差,而且限制了各种数字信号处理方法的使用,从而引入系统误差。同时,如果将主要精力放在如何准确调整输出电压以及输出电流等重复性劳动上,则会忽视对实验本身的物理规律的研究。
用单片机控制系统自动采集和处理数据可以解决以上问题。但此时对于控制系统软件设计的可靠性、实时响应等各个方面的性能都要有严格的要求。使用嵌入式操作系统,可以将具体应用分解成多个任务,简化应用系统软件的设计,使控制系统的实时性得到保证,使其达到理想状态。另外,良好的多任务设计,还有助于提高系统的稳定性和可靠性。本文将具体介绍基于嵌入式操作系统Small RTOS51的光电效应实验系统设计。
1、 系统功能及硬件描述
该系统可以根据实验操作者的选择,对各单色光逐个自动采集光电流随反向电压变化的实验数据,计算普朗克常数,并在液晶显示器上显示出实验曲线和实验结果。由于装置采样速度很快,软硬件均采取了抗干扰措施,大大减小了实验数据的离散性。由于装置根据一定的规则计算确定截止电压,避免了人为因素造成的随意性,改善了实验效果。该系统的研制开发主要目的是用于大学物理光电效应实验中,除了具有一般光电效应实验装置功能外,还有其它的特点和功能,具体如下:
① 输出到光电管的电压可以在-3v~1v范围内调节,每隔0.001v连续输出,同时在液晶显示器上显示出I-U曲线;
② 根据I-U曲线,用曲率法判断出相应截止电压;
③ 如果已经测出≥2种单色光截止电压,则可根据选择求普朗克常量,并显示出主要计算步骤和结果;
④ 单色仪智能化,只要输入波长,即可得到相应单色光;
⑤ I-U曲线可保存到XRAM或传到PC机中;
⑥ 增加测量输入单色光波长功能。
该实验仪硬件框图如图1所示。
500)this.style.width=500;" border="0" />
该装置采用新华龙公司型号为C8051F005的快速单片机。该单片机集成了两个12位逐次逼近型(SAR)ADC,可编程转换速率,最大可达100kps;两个具有16个可编程回差电压值模拟比较器;片内调试电路提供全速、非侵入式的JTAG在系统调试、高速8051微控制器内核,70%指令的执行时间为1个或2个系统时钟周期,时钟周期可达25MIPS;256字节RAM,2K字节XRAM,32K字节flash程序存储器;4个字节宽I/O口,4个通用定时器。该单片机以上资源在本系统中得到了充分利用。换而言之,选择该单片机在满足系统要求的前提下,大大节约了成本。
2、 操作系统在C8051F005上的移植
Small RTOS51是一款专门为51系列单片机设计的实时操作系统(实际上应该称其为实时内核),大部分代码用C语言编写,易于移植,十分适合于资源紧张的51系列8位机。由于C8051F005单片机集成了很多资源,如2K外部数据存储器,4个定时器等。可以对操作系统做必要的、合理的配置以达到性能最优和资源的充分利用。
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所示。
500)this.style.width=500;" border="0" />
当启动“测 ”功能后,液晶显示器显示出以上数据及用最小二乘法计算的普朗克出常数 为6.703×10-34JS,并给出主要的计算过程。该值与公认值6.626×10-34JS比较,相对误差为1.16%,在允许误差内,与公认值符合地很好。
5、 结论
以嵌入式操作系统Small RTOS51为软件平台,开发设计各相应任务,大大简化了程序设计的难度,增强了系统的可靠性和安全性,满足系统实时性要求。同时在维护和升级时,只要修改或增加相应的任务,不需涉及其它部分,降低了难度和成本。
本文作者创新点:①使用实时嵌入式操作系统实现光电效应实验系统的智能化,避免了人为误差,有效地减小了系统误差;②将先进的微电子技术、智能控制理论和数字信号处理知识应用于大学物理实验中,在确保不改变物理实验基本原理,满足物理实验基本要求的前提下,显著提高物理实验的整体质量。同时,也很容易转移到其它实验或工程领域应用。