国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

能譜分析儀系統(tǒng)設(shè)計(jì)

2017-12-31 00:00:00朱維琳
讀寫算·基礎(chǔ)教育研究 2017年20期

能譜分析儀的探頭將γ射線轉(zhuǎn)換成電脈沖信號(hào),脈沖信號(hào)密度反映γ射線強(qiáng)度,即放射線物質(zhì)含量;脈沖信號(hào)幅度反映γ射線能量,即放射性元素種類。

一個(gè)放射線物質(zhì)樣品可能含有幾種放射性元素,如果要區(qū)分各種放射性元素并求出各自含量,就必須將所有測(cè)得的脈沖按其幅度統(tǒng)計(jì),畫出能譜曲線。

每一個(gè)放射線元素產(chǎn)生的脈沖信號(hào)有其特定的能譜分布規(guī)律,這樣,就可以計(jì)算出樣品中放射線物質(zhì)的種類和含量。

系統(tǒng)應(yīng)用軟件包含兩個(gè)ISR(峰值數(shù)據(jù)采集ISR和串行口發(fā)送ISR)和四個(gè)任務(wù):“鍵盤任務(wù)”、“能譜數(shù)據(jù)采集和調(diào)整任務(wù)”、“能譜顯示任務(wù)”和“能譜數(shù)據(jù)發(fā)送任務(wù)”。系統(tǒng)有三個(gè)按鍵:“采集”、“顯示”和“發(fā)送”,分別啟動(dòng)蘭個(gè)任務(wù)。鍵盤任務(wù)由主函數(shù)創(chuàng)建,其他三個(gè)任務(wù)由鍵盤任務(wù)創(chuàng)建。峰值數(shù)據(jù)采集ISR和能譜數(shù)據(jù)采集與調(diào)整任務(wù)之間用消息隊(duì)列進(jìn)行通信。串行口發(fā)送ISR與能譜數(shù)據(jù)發(fā)送任務(wù)之間用信號(hào)量進(jìn)行通信。能譜數(shù)據(jù)為一個(gè)全局?jǐn)?shù)組,由能譜數(shù)據(jù)采集和調(diào)整任務(wù)生成,供能譜顯示任務(wù)和能譜數(shù)據(jù)發(fā)送任務(wù)使用,是三個(gè)任務(wù)的共享資源,并配備了一個(gè)互斥信號(hào)量。能譜數(shù)據(jù)采集任務(wù)按“定數(shù)方式”工作,完成預(yù)定采樣次數(shù)后即結(jié)束。

根據(jù)要求能譜分析儀系統(tǒng)中有鍵盤任務(wù)、顯示任務(wù)、模擬信號(hào)采集任務(wù)、數(shù)據(jù)處理任務(wù)、串行口接收任務(wù)、串行口發(fā)送任務(wù)等。

鍵盤任務(wù):鍵盤任務(wù)由主函數(shù)創(chuàng)建后,周期性運(yùn)行,不受其他任務(wù)制約,也不需要其他 任務(wù)提供數(shù)據(jù);而鍵盤任務(wù)通過(guò)創(chuàng)建任務(wù)的形式控制其他三個(gè)任務(wù)的運(yùn)行。

鍵盤任務(wù)架構(gòu)如下:

void TaskKey (void *pdata) //鍵盤任務(wù)函數(shù)。

{

進(jìn)行相關(guān)硬件設(shè)置;

while (1) //無(wú)限循環(huán)。

{

獲取按鍵操作信息。

判斷按鍵信息;

{

“采集”按鈕,創(chuàng)建數(shù)據(jù)采集任務(wù)。

“顯示”按鈕,創(chuàng)建能譜顯示任務(wù)。

“發(fā)送”按鈕,創(chuàng)建串行口發(fā)送任務(wù)。

未按鍵或無(wú)效按鍵,不處理。

}

延時(shí)。

}

}

能譜數(shù)據(jù)采集和調(diào)整任務(wù):本任務(wù)由“鍵盤任務(wù)”創(chuàng)建,控制數(shù)據(jù)采集ISR的啟動(dòng)和停止,接收ISR通過(guò)消息隊(duì)列提供的原始數(shù)據(jù),生成能譜數(shù)據(jù)(配備了互斥信號(hào)量),以全局?jǐn)?shù)組的形式供顯示任務(wù)和數(shù)據(jù)發(fā)送任務(wù)使用。

void TaskSamp(void*pdata) //高速采樣任務(wù)函數(shù)

{

進(jìn)行相關(guān)硬件設(shè)置;

創(chuàng)建消息隊(duì)列;

while(l) //無(wú)限循環(huán)

{

等待啟動(dòng)信號(hào);

進(jìn)行準(zhǔn)備工作;

使能采樣中斷;

等待結(jié)束信號(hào);

停止采樣中斷;

數(shù)據(jù)預(yù)處理;

數(shù)據(jù)冒充消息指針直接發(fā)送;

}

}

除此之外,還有能譜數(shù)據(jù)顯示任務(wù):本任務(wù)由“鍵盤任務(wù)”創(chuàng)建,使用能譜數(shù)據(jù)(配備了互斥信號(hào)量)完成能譜圖形顯示。能譜數(shù)據(jù)發(fā)送任務(wù):本任務(wù)由“鍵盤任務(wù)”創(chuàng)建,使用能譜數(shù)據(jù)(配備了互斥信號(hào)量)控制串行口發(fā)送ISR的啟動(dòng)和停止,完成能譜數(shù)據(jù)發(fā)送功能。

按照任務(wù)優(yōu)先級(jí)原則(中斷關(guān)聯(lián)性、緊迫性、關(guān)鍵性、頻

繁型)對(duì)任務(wù)進(jìn)行分析如下:

模擬信號(hào)采集任務(wù)、串行口接收任務(wù)和串行口發(fā)送任務(wù)均與ISR 關(guān)聯(lián),實(shí)時(shí)性要求比較高。其中,串行口接收任務(wù)是關(guān)鍵任務(wù)和緊迫任務(wù),遺漏接收內(nèi)容是不允許的;模擬信號(hào)采集任務(wù)是緊迫任務(wù),但不是關(guān)鍵任務(wù),遺漏一個(gè)數(shù)據(jù)還不至于發(fā)生重大問(wèn)題;在串行口發(fā)送任務(wù)中,CPU 是主動(dòng)方,慢一些也可以,只要將數(shù)據(jù)發(fā)出去就可以。鍵盤任務(wù)和顯示任務(wù)是人機(jī)接口任務(wù),實(shí)時(shí)性要求很低。數(shù)據(jù)處理任務(wù)根據(jù)其運(yùn)算量來(lái)決定,運(yùn)算量很大時(shí),優(yōu)先級(jí)安排最低,運(yùn)算量不大時(shí),優(yōu)先級(jí)可安排得比鍵盤任務(wù)高一些。

根據(jù)以上分析,最低優(yōu)先級(jí)OS_LOWEST_PRIO 定為18,各個(gè)任務(wù)的優(yōu)先級(jí)安排如下:串行口接收任務(wù)(優(yōu)先級(jí)2),模擬信號(hào)采集任務(wù)(優(yōu)先級(jí)4),串行口發(fā)送任務(wù)(優(yōu)先級(jí)6),數(shù)據(jù)處理任務(wù)(優(yōu)先級(jí)9),顯示任務(wù)(優(yōu)先級(jí)12),鍵盤任務(wù)(優(yōu)先級(jí)13)。當(dāng)優(yōu)先級(jí)的安排比較寬松時(shí),以后增加新任務(wù)就比較方便,在不改變現(xiàn)有任務(wù)優(yōu)先級(jí)的情況下,很容易根據(jù)需要找到一個(gè)合適的空閑優(yōu)先級(jí)。最后架構(gòu)的主程序?yàn)椋?/p>

void TaskFiqSamp(void*pdata);

voidTaskDelaySamp(void*pdata);

void TaskSend(void*pdata);

void TaskKey( void*pdata);

void TaskDisp(void*pdata);

intmain (void)

{

OSInit();

OSTaskCreate(TaskKey,(void *)0,TaskKeyStk[TASK_STK_SIZE-1])

OSStart();

Return 0;

}

乌审旗| 内江市| 普定县| 土默特右旗| 勃利县| 财经| 武宣县| 连江县| 汪清县| 沾益县| 招远市| 开江县| 新津县| 武鸣县| 田阳县| 德保县| 无为县| 寻乌县| 徐州市| 扎赉特旗| 大荔县| 三门峡市| 闸北区| 永宁县| 出国| 株洲市| 东台市| 封开县| 台南市| 九江市| 页游| 金乡县| 东乡族自治县| 佛山市| 潞西市| 崇信县| 仙居县| 奉化市| 黄大仙区| 阳西县| 兰溪市|