www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于ARM9和μC/OSII的多頻道數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

引言

  隨著IT技術(shù)、電子技術(shù)、通信技術(shù)、以及自動(dòng)控制技術(shù)的飛速發(fā)展,對(duì)工業(yè)現(xiàn)場(chǎng)數(shù)據(jù)的高速實(shí)時(shí)采集就成為電子產(chǎn)品和工業(yè)控制技術(shù)發(fā)展不可避免的一個(gè)環(huán)節(jié)。

  本文針對(duì)高速實(shí)時(shí)多任務(wù)數(shù)據(jù)采集中的多任務(wù)實(shí)現(xiàn)算法以及實(shí)時(shí)性、實(shí)效性和高速性的要求,提出了基于ARM9和μC/OSII操作系統(tǒng)的智能化設(shè)計(jì)方案,實(shí)現(xiàn)了任務(wù)優(yōu)先級(jí)動(dòng)態(tài)調(diào)度、系統(tǒng)工作參數(shù)動(dòng)態(tài)設(shè)定、系統(tǒng)內(nèi)部軟件智能化設(shè)計(jì),針對(duì)低速外圍設(shè)備進(jìn)行了系統(tǒng)優(yōu)化,并提高了系統(tǒng)可靠性改善了內(nèi)部任務(wù)同步性。

  1  整體電路設(shè)計(jì)

  整個(gè)采集系統(tǒng)的硬件電路如圖1所示。首先利用多路調(diào)制電路對(duì)12路信號(hào)進(jìn)行調(diào)制,這部分包含相應(yīng)的信號(hào)轉(zhuǎn)換、抗干擾、以及初步的信號(hào)處理等,使得各路采集信號(hào)能夠達(dá)到ARM9內(nèi)核對(duì)信號(hào)采集的要求。經(jīng)多路選擇和ADC采樣后進(jìn)入ARM9內(nèi)核。為了實(shí)現(xiàn)對(duì)整個(gè)系統(tǒng)工作狀態(tài)的實(shí)時(shí)監(jiān)視、實(shí)時(shí)控制和實(shí)時(shí)調(diào)節(jié),設(shè)置了上位機(jī)監(jiān)視器和現(xiàn)場(chǎng)顯示觸摸屏,將用戶所有要求顯示的信息在上位機(jī)顯示輸出或者在現(xiàn)場(chǎng)LCD同步顯示輸出。采樣按照采樣頻段分為高頻段(300~200 ksps)、中頻段(200~100 ksps)、和低頻段(小于100 ksps)3個(gè)頻段,每個(gè)頻段由4個(gè)外部采樣通道組成。ARM9內(nèi)核與上位機(jī)的通信利用UART和RS232轉(zhuǎn)換電路來(lái)實(shí)現(xiàn)。系統(tǒng)工作電源由統(tǒng)一的電源供給,在實(shí)現(xiàn)電壓轉(zhuǎn)換后對(duì)PC機(jī)和ARM9內(nèi)核以及相應(yīng)的工作電路提供電源支持。

圖1  數(shù)據(jù)采集系統(tǒng)硬件電路

  2  系統(tǒng)總體軟件設(shè)計(jì)思路

  系統(tǒng)的軟件設(shè)計(jì)原理如圖2所示。12路采集信號(hào)經(jīng)調(diào)制電路多路選擇和ADC采樣后進(jìn)入各個(gè)采集任務(wù)內(nèi)部通道。每一路采集通道都設(shè)計(jì)獨(dú)立的數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)處理以及數(shù)據(jù)提交任務(wù)。也就是說(shuō),每一路外部采集通道都對(duì)應(yīng)一個(gè)獨(dú)立的內(nèi)部數(shù)據(jù)通道,而且本通道數(shù)據(jù)只在本通道內(nèi)進(jìn)行存儲(chǔ)、處理和傳遞。各個(gè)內(nèi)部數(shù)據(jù)通道任務(wù)之間只有在系統(tǒng)調(diào)度時(shí)執(zhí)行時(shí)間上的先后關(guān)系、優(yōu)先級(jí)關(guān)系,沒(méi)有數(shù)據(jù)耦合關(guān)系。

圖2  系統(tǒng)軟件設(shè)計(jì)原理圖

  命令掃描部分由獨(dú)立的上位機(jī)和下位機(jī)掃描任務(wù)完成對(duì)上位機(jī)監(jiān)視器和下位機(jī)觸摸屏的實(shí)時(shí)監(jiān)控,一旦檢測(cè)到用戶命令,立即將其發(fā)送給命令解析和處理任務(wù),由該任務(wù)對(duì)用戶命令進(jìn)行分析處理。命令處理完后將提取的結(jié)果發(fā)送給用戶要操作的采樣通道,使之按照用戶要求運(yùn)行。[!--empirenews.page--]

  各個(gè)頻段的各個(gè)通道采集任務(wù)均設(shè)置兩個(gè)數(shù)據(jù)緩沖區(qū)。雙數(shù)據(jù)緩沖區(qū)為采樣任務(wù)順利存儲(chǔ)提供了雙重保證,使得采樣工作一旦結(jié)束就有可用緩沖區(qū),就可立即將數(shù)據(jù)存儲(chǔ)而后進(jìn)行下一次采集。也使得后續(xù)的數(shù)據(jù)處理任務(wù)減少數(shù)據(jù)等待時(shí)間,能迅速得到當(dāng)前采樣通道需要處理的數(shù)據(jù),并在最短的時(shí)間內(nèi)處理發(fā)送給下一級(jí)任務(wù)。

  采樣、數(shù)據(jù)顯示、命令掃描都涉及外圍設(shè)備,是整個(gè)系統(tǒng)所有任務(wù)里面運(yùn)行速度最慢的,針對(duì)采樣任務(wù)設(shè)置雙數(shù)據(jù)緩沖區(qū)可以很大幅度地改善由于采樣速度慢而造成的系統(tǒng)速率下降問(wèn)題,顯示和命令掃描部分的優(yōu)化設(shè)計(jì)將在下文中詳細(xì)說(shuō)明。

  3  內(nèi)部軟件調(diào)度算法

  系統(tǒng)內(nèi)部各個(gè)頻段命令如圖3所示。命令掃描函數(shù)捕捉到用戶命令后,對(duì)用戶命令進(jìn)行驗(yàn)證、分析、提取,而后將提取結(jié)果以廣播的方式發(fā)送至各個(gè)頻段的命令等待隊(duì)列。該隊(duì)列如得到新的命令,將用戶命令發(fā)送給本隊(duì)列下轄的各個(gè)采樣任務(wù)函數(shù),用戶命令將立即得到執(zhí)行,包括通道切換、變換采樣周期、改變當(dāng)前任務(wù)優(yōu)先級(jí)、顯示特定通道數(shù)據(jù)等。如沒(méi)有得到新的命令,等待超時(shí)后采樣任務(wù)按照原有方式繼續(xù)工作。這也是一種智能化設(shè)計(jì),以很簡(jiǎn)單的方式實(shí)現(xiàn)了按照用戶命令隨時(shí)對(duì)任何通道的查看、監(jiān)督、操作、工作狀態(tài)切換、通道切換、由單通道到所有通道并行實(shí)時(shí)采集切換等所有功能的任意切換。

圖3  各個(gè)頻段內(nèi)部命令

  3.1  任務(wù)優(yōu)先級(jí)設(shè)置及采樣任務(wù)優(yōu)先級(jí)動(dòng)態(tài)調(diào)度

  μC/OSII操作系統(tǒng)是基于優(yōu)先級(jí)的搶占式操作系統(tǒng),所有任務(wù)必須有各自獨(dú)立且唯一的優(yōu)先級(jí)[1]。命令掃描和數(shù)據(jù)顯示分別設(shè)置為最高優(yōu)先級(jí)和最低優(yōu)先級(jí)。掃描函數(shù)的最高優(yōu)先級(jí)可以確保隨時(shí)對(duì)用戶命令進(jìn)行響應(yīng),而顯示任務(wù)由于其運(yùn)行速速慢,將其設(shè)置為最低優(yōu)先級(jí)。只要系統(tǒng)設(shè)計(jì)合理,適當(dāng)避免低優(yōu)先級(jí)任務(wù)的饑餓現(xiàn)象,即可實(shí)現(xiàn)將用戶有效信息顯示輸出。

  內(nèi)部?jī)?yōu)先級(jí)設(shè)置規(guī)則是,低頻段、中頻段、高頻段3個(gè)頻段的任務(wù)之間優(yōu)先級(jí)依次遞減。低頻段的采樣周期明顯比高頻段長(zhǎng),在低頻段數(shù)據(jù)采集的空閑時(shí)間里系統(tǒng)可以順利地將CPU使用權(quán)切換給其他任務(wù),使其他任務(wù)得到CPU使用權(quán)并執(zhí)行。每個(gè)頻段內(nèi)部的各個(gè)任務(wù)的優(yōu)先級(jí)從采樣到數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)處理、數(shù)據(jù)提交依次遞減。

  為了使得整個(gè)系統(tǒng)實(shí)現(xiàn)優(yōu)先級(jí)動(dòng)態(tài)調(diào)度也可以修改其他采樣參數(shù),在軟件設(shè)計(jì)時(shí)將所有頻段采樣任務(wù)的優(yōu)先級(jí)、采樣周期以全局變量的形式在進(jìn)入操作系統(tǒng)之前進(jìn)行設(shè)置,并將其定義為volatile格式分配獨(dú)立的變量存儲(chǔ)地址。而后設(shè)立獨(dú)立的掃描任務(wù),來(lái)專門完成這些參數(shù)的判斷、修改、存儲(chǔ)和動(dòng)態(tài)更新。這樣便使得系統(tǒng)除了可以按照根據(jù)采樣周期設(shè)計(jì)的初始化優(yōu)先級(jí)和初始化參數(shù)運(yùn)行外,還可以依據(jù)用戶自身需要對(duì)各個(gè)頻段、各個(gè)通道的采樣任務(wù)優(yōu)先級(jí)以及采樣頻率進(jìn)行設(shè)置和修改。修改完并確認(rèn)后,修改任務(wù)會(huì)保存、更新當(dāng)前系統(tǒng)工作參數(shù)并退出操作系統(tǒng),而后重新啟動(dòng)并初始化,整個(gè)采集系統(tǒng)將按照全新的狀態(tài)開(kāi)始工作。當(dāng)然,在這里用戶優(yōu)先級(jí)和采樣周期設(shè)置是受限的,必須符合上文提及的優(yōu)先級(jí)規(guī)則及各個(gè)頻段對(duì)采樣周期的要求。

 3.2  任務(wù)時(shí)限設(shè)置

  為了對(duì)整個(gè)系統(tǒng)的時(shí)間調(diào)度進(jìn)行優(yōu)化,首先說(shuō)明幾個(gè)內(nèi)部工作時(shí)間。i386體系和Linux2.5內(nèi)核中操作系統(tǒng)節(jié)拍率都設(shè)置為1000 Hz[2]。在這里將μC/OSII操作系統(tǒng)調(diào)度時(shí)間OS_TICKS_PER_SEC也設(shè)置為1000,也就是說(shuō)操作系統(tǒng)的任務(wù)調(diào)度以ms為單位。ARM9內(nèi)核CPU工作頻率設(shè)置為400 MHz,即CPU機(jī)械周期以ns為單位。外設(shè)包括上位機(jī)命令掃描和上位機(jī)、下位機(jī)顯示部分工作都以s為單位。μC/OSII系統(tǒng)中任務(wù)切換、調(diào)度及延時(shí)都以系統(tǒng)節(jié)拍率為單位,而內(nèi)部代碼的運(yùn)行是以機(jī)械周期為單位。內(nèi)部任務(wù)時(shí)限可以以節(jié)拍律為單位,也可以以實(shí)時(shí)時(shí)間為基準(zhǔn),獲得一個(gè)絕對(duì)時(shí)間差。

  單個(gè)采樣任務(wù)通道內(nèi)部只有采樣任務(wù)需要時(shí)限設(shè)置。為了達(dá)到智能化,用消息隊(duì)列的等待延時(shí)替代了采樣任務(wù)時(shí)限,而該延時(shí)便是本通道的采樣周期。其他的后續(xù)任務(wù)包括內(nèi)存開(kāi)辟、數(shù)據(jù)處理、數(shù)據(jù)發(fā)送,都依次等待上一級(jí)任務(wù)消息,受上一級(jí)任務(wù)鉗制不設(shè)置任務(wù)時(shí)限。顯示任務(wù)時(shí)限按ms設(shè)置為絕對(duì)時(shí)間差。[!--empirenews.page--]

  3.3  針對(duì)外設(shè)的時(shí)間優(yōu)化

  針對(duì)命令掃描和解析任務(wù),將其設(shè)置為中斷方式,在檢測(cè)到有用戶命令輸入時(shí)發(fā)生中斷,在中斷里對(duì)用戶命令進(jìn)行解析、分析、提取和處理。在中斷下半部分對(duì)命令進(jìn)行廣播式發(fā)布,發(fā)布到各個(gè)采樣任務(wù)函數(shù)使其立即刷新執(zhí)行。因?yàn)橛脩艄ぷ鞣绞礁淖儯钏⑿骂l率并不高而且任務(wù)量不大,所以完全可以利用中斷的快速處理來(lái)實(shí)現(xiàn)這種功能。

圖4  顯示任務(wù)工作原理圖

  在處理完命令掃描和采樣任務(wù)之后,影響整個(gè)系統(tǒng)性能的就剩下上位機(jī)和下位機(jī)顯示部分了。顯示任務(wù)工作原理如圖4所示,利用μC/OSII系統(tǒng)提供的消息隊(duì)列對(duì)顯示部分進(jìn)行改善。分別建立兩個(gè)長(zhǎng)度為16的消息隊(duì)列和內(nèi)存塊鏈表,數(shù)據(jù)提交任務(wù)從空閑內(nèi)存池中得到可用內(nèi)存塊之后將本任務(wù)要顯示的數(shù)據(jù)存入該內(nèi)存塊,此時(shí)該內(nèi)存就變成了帶有數(shù)據(jù)的待顯示數(shù)據(jù)塊。而后將該內(nèi)存塊的地址以消息的形式注冊(cè)在顯示消息隊(duì)列上。消息隊(duì)列的長(zhǎng)度設(shè)置為16,雖然這里只有12個(gè)任務(wù)會(huì)發(fā)送消息給消息隊(duì)列,但在實(shí)時(shí)多任務(wù)程序中,各個(gè)任務(wù)的運(yùn)行是隨機(jī)的,消息隊(duì)列在一段時(shí)間內(nèi)得到的消息個(gè)數(shù)是個(gè)不定值,所以留出4個(gè)空位作為裕度。而且設(shè)置初始值為16的計(jì)數(shù)信號(hào)量來(lái)保護(hù)消息隊(duì)列,數(shù)據(jù)提交任務(wù)在提交數(shù)據(jù)之前先檢測(cè)該信號(hào)量,如該信號(hào)量有效就可以發(fā)送信號(hào),如信號(hào)量無(wú)效則需等待,直到有可用信號(hào)位時(shí)方可將信號(hào)發(fā)出。在外部硬件操作端,由外部發(fā)送任務(wù)將消息隊(duì)列中的消息按照固定速率發(fā)送到外部信號(hào)線上。

  這樣設(shè)計(jì),消息隊(duì)列就相當(dāng)于一個(gè)緩沖區(qū),使得所有提交任務(wù)都可以向這個(gè)緩沖區(qū)發(fā)送待顯示數(shù)據(jù),有效地避免了多個(gè)任務(wù)爭(zhēng)用一個(gè)外圍設(shè)備而引起的死鎖、競(jìng)爭(zhēng)冒險(xiǎn)等問(wèn)題。同時(shí)減少了任務(wù)數(shù)量,減少了任務(wù)切換的次數(shù),充分利用了系統(tǒng)時(shí)間,提高了系統(tǒng)性能。

  3.4  關(guān)鍵區(qū)保護(hù)

  多任務(wù)設(shè)計(jì)中每個(gè)任務(wù)在任何時(shí)刻都可能被其他任務(wù)打斷,必須充分考慮代碼的安全性、可重入性、可靠性、饑餓、互鎖、死鎖等情況。[3]

  為了避免上述情況,任務(wù)間消息發(fā)送和傳遞時(shí)以及在數(shù)據(jù)采樣時(shí)對(duì)相應(yīng)函數(shù)體進(jìn)行關(guān)鍵區(qū)保護(hù),在這些函數(shù)運(yùn)行的時(shí)候禁止中斷和任務(wù)調(diào)度,以保證數(shù)據(jù)傳遞和數(shù)據(jù)采樣的絕對(duì)正確性和系統(tǒng)運(yùn)行的絕對(duì)安全性。

  4  極限頻率測(cè)定及總結(jié)

  上位機(jī)超級(jí)終端接收到的極限頻率測(cè)試結(jié)果如圖5所示。

圖5  極限頻率測(cè)量結(jié)果

  分別測(cè)試了高頻段、中頻段和低頻段的極限頻率,結(jié)果在CPU使用率80%~90%的情況下測(cè)定。該系統(tǒng)成功實(shí)現(xiàn)了智能化設(shè)計(jì)和優(yōu)先級(jí)動(dòng)態(tài)調(diào)度、系統(tǒng)參數(shù)動(dòng)態(tài)設(shè)置等功能,達(dá)到了設(shè)計(jì)指標(biāo)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉