基于Small RTOS51的光電效應(yīng)實(shí)驗(yàn)系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
隨著科學(xué)技術(shù)的發(fā)展,光電效應(yīng)己廣泛應(yīng)用于工農(nóng)業(yè)生產(chǎn)、國(guó)防和許多科技領(lǐng)域。普朗克常數(shù)是自然界中一個(gè)很重要的普適常數(shù),它可以用光電效應(yīng)法簡(jiǎn)單而又較準(zhǔn)確地求出。所以,進(jìn)行光電效應(yīng)實(shí)驗(yàn)并通過實(shí)驗(yàn)求取普朗克常數(shù)有助于人們理解量子理論和更好地認(rèn)識(shí)這個(gè)普適常數(shù)。然而傳統(tǒng)手動(dòng)測(cè)量和數(shù)據(jù)處理方法采集的數(shù)據(jù)量非常有限,不但引入很大人為誤差,而且限制了各種數(shù)字信號(hào)處理方法的使用,從而引入系統(tǒng)誤差。同時(shí),如果將主要精力放在如何準(zhǔn)確調(diào)整輸出電壓以及輸出電流等重復(fù)性勞動(dòng)上,則會(huì)忽視對(duì)實(shí)驗(yàn)本身的物理規(guī)律的研究。
用單片機(jī)控制系統(tǒng)自動(dòng)采集和處理數(shù)據(jù)可以解決以上問題。但此時(shí)對(duì)于控制系統(tǒng)軟件設(shè)計(jì)的可靠性、實(shí)時(shí)響應(yīng)等各個(gè)方面的性能都要有嚴(yán)格的要求。使用嵌入式操作系統(tǒng),可以將具體應(yīng)用分解成多個(gè)任務(wù),簡(jiǎn)化應(yīng)用系統(tǒng)軟件的設(shè)計(jì),使控制系統(tǒng)的實(shí)時(shí)性得到保證,使其達(dá)到理想狀態(tài)。另外,良好的多任務(wù)設(shè)計(jì),還有助于提高系統(tǒng)的穩(wěn)定性和可靠性。本文將具體介紹基于嵌入式操作系統(tǒng)Small RTOS51的光電效應(yīng)實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)。
1、 系統(tǒng)功能及硬件描述
該系統(tǒng)可以根據(jù)實(shí)驗(yàn)操作者的選擇,對(duì)各單色光逐個(gè)自動(dòng)采集光電流隨反向電壓變化的實(shí)驗(yàn)數(shù)據(jù),計(jì)算普朗克常數(shù),并在液晶顯示器上顯示出實(shí)驗(yàn)曲線和實(shí)驗(yàn)結(jié)果。由于裝置采樣速度很快,軟硬件均采取了抗干擾措施,大大減小了實(shí)驗(yàn)數(shù)據(jù)的離散性。由于裝置根據(jù)一定的規(guī)則計(jì)算確定截止電壓,避免了人為因素造成的隨意性,改善了實(shí)驗(yàn)效果。該系統(tǒng)的研制開發(fā)主要目的是用于大學(xué)物理光電效應(yīng)實(shí)驗(yàn)中,除了具有一般光電效應(yīng)實(shí)驗(yàn)裝置功能外,還有其它的特點(diǎn)和功能,具體如下:
① 輸出到光電管的電壓可以在-3v~1v范圍內(nèi)調(diào)節(jié),每隔0.001v連續(xù)輸出,同時(shí)在液晶顯示器上顯示出I-U曲線;
② 根據(jù)I-U曲線,用曲率法判斷出相應(yīng)截止電壓;
③ 如果已經(jīng)測(cè)出≥2種單色光截止電壓,則可根據(jù)選擇求普朗克常量,并顯示出主要計(jì)算步驟和結(jié)果;
④ 單色儀智能化,只要輸入波長(zhǎng),即可得到相應(yīng)單色光;
⑤ I-U曲線可保存到XRAM或傳到PC機(jī)中;
⑥ 增加測(cè)量輸入單色光波長(zhǎng)功能。
該實(shí)驗(yàn)儀硬件框圖如圖1所示。
500)this.style.width=500;" border="0" />
該裝置采用新華龍公司型號(hào)為C8051F005的快速單片機(jī)。該單片機(jī)集成了兩個(gè)12位逐次逼近型(SAR)ADC,可編程轉(zhuǎn)換速率,最大可達(dá)100kps;兩個(gè)具有16個(gè)可編程回差電壓值模擬比較器;片內(nèi)調(diào)試電路提供全速、非侵入式的JTAG在系統(tǒng)調(diào)試、高速8051微控制器內(nèi)核,70%指令的執(zhí)行時(shí)間為1個(gè)或2個(gè)系統(tǒng)時(shí)鐘周期,時(shí)鐘周期可達(dá)25MIPS;256字節(jié)RAM,2K字節(jié)XRAM,32K字節(jié)flash程序存儲(chǔ)器;4個(gè)字節(jié)寬I/O口,4個(gè)通用定時(shí)器。該單片機(jī)以上資源在本系統(tǒng)中得到了充分利用。換而言之,選擇該單片機(jī)在滿足系統(tǒng)要求的前提下,大大節(jié)約了成本。
2、 操作系統(tǒng)在C8051F005上的移植
Small RTOS51是一款專門為51系列單片機(jī)設(shè)計(jì)的實(shí)時(shí)操作系統(tǒng)(實(shí)際上應(yīng)該稱其為實(shí)時(shí)內(nèi)核),大部分代碼用C語(yǔ)言編寫,易于移植,十分適合于資源緊張的51系列8位機(jī)。由于C8051F005單片機(jī)集成了很多資源,如2K外部數(shù)據(jù)存儲(chǔ)器,4個(gè)定時(shí)器等??梢詫?duì)操作系統(tǒng)做必要的、合理的配置以達(dá)到性能最優(yōu)和資源的充分利用。
Small RTOS51的移植主要是配置OS_CPU.H、OS_CFG.H和CONFIG.H三個(gè)文件。OS_CFG.H文件主要用于對(duì)操作系統(tǒng)的裁減和時(shí)鐘等的相關(guān)配置。根據(jù)實(shí)際需要,可以將以EN_OS_SEM打頭的相關(guān)參數(shù)全部設(shè)為0,禁止對(duì)信號(hào)量的一切操作。同樣道理可以將EN_OS_Q、EN_OS_Q_PENT和EN_OS_Q_POST以外的以EN_OS_Q打頭的消息隊(duì)列使能參數(shù)設(shè)為0。C8051F005具有2K外部數(shù)據(jù)存儲(chǔ)器,根據(jù)盡量節(jié)約內(nèi)存的原則,將不常用的參數(shù)定義為xdata類型,所以消息隊(duì)列存儲(chǔ)空間選擇外部數(shù)據(jù)存儲(chǔ)器。時(shí)鐘周期選擇選擇內(nèi)部2M時(shí)鐘,經(jīng)過8倍頻后可達(dá)16M,所以定義N_SYS為3。最后禁止系統(tǒng)定時(shí)中斷調(diào)用用戶函數(shù)UserTickTimer(),允許中斷嵌套管理,允許定時(shí)器中斷調(diào)用OSTimeTick(),定義進(jìn)入1次硬件中斷為一次系統(tǒng)定時(shí)器軟中斷和定義任務(wù)數(shù)為4。
在配置OS_CPU.H文件時(shí),只需注意改定時(shí)器使用的中斷為1即可,其它參數(shù)都可使用默認(rèn)值。而CONFIG.H主要任務(wù)是聲明任務(wù)和將操作系統(tǒng)中所有的頭文件集中起來,需要根據(jù)實(shí)際任務(wù)數(shù)及任務(wù)名配置。
3、 軟件任務(wù)的劃分及具體實(shí)現(xiàn)
根據(jù)硬件結(jié)構(gòu)及所要求實(shí)現(xiàn)的功能,將軟件系統(tǒng)劃分為5個(gè)任務(wù)來完成。按照任務(wù)優(yōu)先級(jí)的高低排序,各任務(wù)依次為:液晶顯示任務(wù)、測(cè)量與數(shù)字信號(hào)處理任務(wù)、單色儀控制任務(wù)、數(shù)據(jù)通訊任務(wù)和鍵盤響應(yīng)及處理任務(wù)。
3.1 液晶顯示任務(wù)
液晶顯示任務(wù)主要顯示功能菜單、數(shù)據(jù)表格、狀態(tài)欄、I-U曲線和計(jì)算步驟及結(jié)果。功能菜單顯示數(shù)據(jù)由按鍵任務(wù)中的消息隊(duì)列傳遞。另外,該任務(wù)還承擔(dān)著部分任務(wù)調(diào)配的作用,當(dāng)選中某功能選項(xiàng)時(shí)必須啟動(dòng)相應(yīng)任務(wù)。數(shù)據(jù)表格顯示數(shù)據(jù)由測(cè)量與數(shù)字信號(hào)處理任務(wù)中的消息隊(duì)列傳遞,主要顯示各種單色光顏色、波長(zhǎng)和測(cè)量出來的截止電壓。狀態(tài)欄顯示內(nèi)容來源于各個(gè)任務(wù),主要顯示該儀器當(dāng)前正在執(zhí)行的任務(wù)和引導(dǎo)操作者下一步如何操作,另外在操作錯(cuò)誤時(shí),也會(huì)給出相應(yīng)的提示。I-U曲線和計(jì)算步驟及結(jié)果顯示數(shù)據(jù)都來源于測(cè)量與數(shù)字信號(hào)處理任務(wù)。
3.2 測(cè)量與數(shù)字信號(hào)處理任務(wù)
測(cè)量與數(shù)字信號(hào)處理任務(wù)是本系統(tǒng)的核心部分,它承擔(dān)著反向電壓輸出控制,光電流信號(hào)數(shù)據(jù)采集,數(shù)字濾波和數(shù)據(jù)計(jì)算等任務(wù)。其中反向電壓輸出和光電流信號(hào)數(shù)據(jù)采集分別由C8051F0005中集成的DA和AD轉(zhuǎn)換器完成。為了盡量提高精確度,本系統(tǒng)分別采用了平均值法、中值法和慣性法對(duì)采集到的數(shù)字信號(hào)進(jìn)行三次數(shù)字濾波。經(jīng)過有效的濾波后,可以得到一條光滑的I-U曲線,再用曲率法判斷出該條曲線的截止電壓。當(dāng)確定已經(jīng)測(cè)出兩種以上單色光的截止電壓后就可以用最小二乘法計(jì)算出普朗克常數(shù)。當(dāng)然反過來,也可以通過普朗克常數(shù)計(jì)算輸入單色光波長(zhǎng)。
3.3 單色儀控制任務(wù)
根據(jù)光柵方程 ,可以求出衍射角與單色光波長(zhǎng)之間的關(guān)系,通過查表就可以得到與輸入波長(zhǎng) 相對(duì)應(yīng)的衍射角 。此任務(wù)就是要通過控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng),帶動(dòng)光柵轉(zhuǎn)動(dòng) ,從而得到波長(zhǎng)為單色光。
3.4 數(shù)據(jù)通訊任務(wù)
本系統(tǒng)具有將所測(cè)得的光電流隨方向電壓變化的曲線存儲(chǔ)于外部數(shù)據(jù)存儲(chǔ)器XRAM中,或通過串口傳送到PC機(jī)上。該任務(wù)主要完成這項(xiàng)工作。存儲(chǔ)到XRAM中的數(shù)據(jù)通過液晶顯示任務(wù)還原顯示,而傳到PC機(jī)上的數(shù)據(jù)需要配合相應(yīng)的軟件還原顯示。
3.5 鍵盤響應(yīng)及處理任務(wù)
按鍵任務(wù)主要起到輸入控制和任務(wù)選擇作用。首先要建立消息隊(duì)列KeyBuff[],用于緩沖按鍵鍵值和與其它任務(wù)進(jìn)行通訊,然后進(jìn)入無限循環(huán)。在無限循環(huán)中逐個(gè)掃描按鍵,當(dāng)發(fā)現(xiàn)有按鍵按下,調(diào)用Small RTOS51提供的系統(tǒng)函數(shù)OSQPost(KeyBuff,Value_Key)將按鍵鍵值放在消息隊(duì)列中,并查找有無其它任務(wù)等待按鍵。若有,則將按鍵任務(wù)處于休眠狀態(tài),同時(shí)激活等待任務(wù)。
4、 實(shí)驗(yàn)數(shù)據(jù)及結(jié)果分析
啟動(dòng)“測(cè)UC”后,本系統(tǒng)會(huì)根據(jù)操作者的選擇逐個(gè)測(cè)量輸入單色光的I-U曲線,并判斷截止電壓。測(cè)得的汞燈光源中個(gè)各單色光截止電壓如表1所示。
500)this.style.width=500;" border="0" />
當(dāng)啟動(dòng)“測(cè) ”功能后,液晶顯示器顯示出以上數(shù)據(jù)及用最小二乘法計(jì)算的普朗克出常數(shù) 為6.703×10-34JS,并給出主要的計(jì)算過程。該值與公認(rèn)值6.626×10-34JS比較,相對(duì)誤差為1.16%,在允許誤差內(nèi),與公認(rèn)值符合地很好。
5、 結(jié)論
以嵌入式操作系統(tǒng)Small RTOS51為軟件平臺(tái),開發(fā)設(shè)計(jì)各相應(yīng)任務(wù),大大簡(jiǎn)化了程序設(shè)計(jì)的難度,增強(qiáng)了系統(tǒng)的可靠性和安全性,滿足系統(tǒng)實(shí)時(shí)性要求。同時(shí)在維護(hù)和升級(jí)時(shí),只要修改或增加相應(yīng)的任務(wù),不需涉及其它部分,降低了難度和成本。
本文作者創(chuàng)新點(diǎn):①使用實(shí)時(shí)嵌入式操作系統(tǒng)實(shí)現(xiàn)光電效應(yīng)實(shí)驗(yàn)系統(tǒng)的智能化,避免了人為誤差,有效地減小了系統(tǒng)誤差;②將先進(jìn)的微電子技術(shù)、智能控制理論和數(shù)字信號(hào)處理知識(shí)應(yīng)用于大學(xué)物理實(shí)驗(yàn)中,在確保不改變物理實(shí)驗(yàn)基本原理,滿足物理實(shí)驗(yàn)基本要求的前提下,顯著提高物理實(shí)驗(yàn)的整體質(zhì)量。同時(shí),也很容易轉(zhuǎn)移到其它實(shí)驗(yàn)或工程領(lǐng)域應(yīng)用。