• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于嵌入式的單片機(jī)智能控制應(yīng)用研究

      2020-07-23 07:08:02周首杰明興祖
      機(jī)械與電子 2020年7期
      關(guān)鍵詞:多任務(wù)數(shù)碼管小車(chē)

      周首杰,李 灣,明 瑞,周 賢,明興祖,

      (1.湖南汽車(chē)工程職業(yè)學(xué)院,湖南 株洲 412000;2.湖南工業(yè)大學(xué)機(jī)械工程學(xué)院,湖南 株洲412007;3.湖北文理學(xué)院機(jī)械工程學(xué)院,湖北 襄陽(yáng) 441053)

      0 引言

      嵌入式控制應(yīng)用已深入到了每一種智能控制中,特別是隨著芯片性能的提高,嵌入式產(chǎn)品也越來(lái)越智能化,人性化[1]。嵌入式控制通常有順序結(jié)構(gòu)、多任務(wù)等控制方式[2]。順序結(jié)構(gòu)控制適用于簡(jiǎn)單、沒(méi)有多任務(wù)同時(shí)執(zhí)行控制的情況[3]。多任務(wù)控制能同時(shí)處理多個(gè)任務(wù),高檔的嵌入式多任務(wù)系統(tǒng)有操作系統(tǒng)來(lái)做支撐,如手機(jī)就有安卓、蘋(píng)果等操作系統(tǒng)支撐,由操作系統(tǒng)來(lái)進(jìn)行多任務(wù)管理。在工業(yè)控制中,趙俊囡等[4]研究和設(shè)計(jì)了一種基于XC2785 單片機(jī)和嵌入式實(shí)時(shí)操作系統(tǒng)的汽車(chē)運(yùn)行參數(shù)記錄儀方案。采用嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng)可以提高系統(tǒng)效率、實(shí)時(shí)性及可靠性,但由于商業(yè)嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng)版權(quán)費(fèi)高,特別是單片機(jī)嵌入式系統(tǒng)資源有限,對(duì)開(kāi)發(fā)人員技術(shù)能力的要求較高,限制了嵌入式操作系統(tǒng)的應(yīng)用[3,5]。

      在工業(yè)產(chǎn)品控制中,還有一部分嵌入式系統(tǒng)是沒(méi)有操作系統(tǒng)來(lái)支撐的,其開(kāi)發(fā)應(yīng)用針對(duì)性和靈活性強(qiáng)。劉燚榮[2]、趙飛等[3]利用通用型嵌入式系統(tǒng)軟件框架,構(gòu)建一個(gè)實(shí)時(shí)多任務(wù)控制機(jī)制,提供一套軟件定時(shí)器,實(shí)現(xiàn)了電力設(shè)備智能傳感器軟件快速開(kāi)發(fā)。但這樣的多任務(wù)實(shí)時(shí)處理要由軟件設(shè)計(jì)工程師來(lái)完成多任務(wù)的管理,因此產(chǎn)生了相當(dāng)大的難度[6]。本文在分析嵌入式控制中順序結(jié)構(gòu)控制流程與特性的基礎(chǔ)上,根據(jù)小車(chē)多任務(wù)智能控制處理要求,提出了單片機(jī)多任務(wù)控制的方法與設(shè)計(jì)應(yīng)用。

      1 順序結(jié)構(gòu)控制

      1.1 順序結(jié)構(gòu)控制程序流程

      在嵌入式控制中,最簡(jiǎn)單的就是順序結(jié)構(gòu),即一個(gè)任務(wù)接一個(gè)任務(wù)地完成,在完成了一個(gè)任務(wù)后再繼續(xù)完成另外一個(gè)任務(wù)。如圖1所示為智能小車(chē)行進(jìn)路線(xiàn)圖,一輛智能小車(chē),沿著粗實(shí)線(xiàn)往前走,要求在十字路口需自動(dòng)往右拐彎。

      圖1 智能小車(chē)行進(jìn)路線(xiàn)

      在圖1中,起始時(shí)刻給小車(chē)發(fā)出一個(gè)向前行駛的命令,由底層驅(qū)動(dòng)機(jī)構(gòu)執(zhí)行小車(chē)前行,同時(shí)小車(chē)需不停檢測(cè)是否到了十字路口,小車(chē)主控CPU執(zhí)行檢測(cè)任務(wù)。當(dāng)檢測(cè)到了十字路口,小車(chē)主控CPU再向底層驅(qū)動(dòng)機(jī)構(gòu)發(fā)出停止命令,以完成該第1個(gè)任務(wù)。接著再準(zhǔn)備第2個(gè)任務(wù),向底層驅(qū)動(dòng)機(jī)構(gòu)發(fā)出右轉(zhuǎn)90°命令。第2個(gè)任務(wù)完成后,再進(jìn)行第3個(gè)任務(wù),即檢測(cè)右轉(zhuǎn)90°是否到位,如檢測(cè)右轉(zhuǎn)到位,第3個(gè)任務(wù)完成,接著是下一個(gè)任務(wù),如此運(yùn)行下去,直到整個(gè)任務(wù)執(zhí)行完畢。小車(chē)前進(jìn)右轉(zhuǎn)的順序結(jié)構(gòu)程序流程如圖2所示。

      圖2 小車(chē)前進(jìn)右轉(zhuǎn)的順序結(jié)構(gòu)程序流程

      在順序結(jié)構(gòu)程序控制的運(yùn)行過(guò)程中,主控CPU發(fā)出前進(jìn)命令,小車(chē)前進(jìn),同時(shí)主控CPU不停地等待檢測(cè)是否到達(dá)了十字路口。同理主控CPU發(fā)出右轉(zhuǎn)指令后,主控CPU也是在等待中檢測(cè)右轉(zhuǎn)到位信息。但由于是順序結(jié)構(gòu),上一個(gè)任務(wù)沒(méi)完成時(shí),下一個(gè)任務(wù)是不能開(kāi)啟的;只有在上一個(gè)任務(wù)完成后,下一個(gè)任務(wù)才會(huì)開(kāi)始。

      1.2 順序結(jié)構(gòu)控制特性

      順序結(jié)構(gòu)控制是按工作流程一個(gè)接一個(gè)往下順序執(zhí)行。在圖1嵌入式控制中,由于小車(chē)按照相應(yīng)的路線(xiàn)依次完成每一個(gè)任務(wù),中間不會(huì)穿插別的任務(wù),不能加入人為控制命令,也不需要由主控CPU來(lái)控制顯示其他信息等,采用順序結(jié)構(gòu)可以很好地完成控制,小車(chē)能自動(dòng)完成所有任務(wù),因此順序結(jié)構(gòu)適用于簡(jiǎn)單、沒(méi)有多任務(wù)同時(shí)執(zhí)行控制的情況[7]。

      CPU的PC指針控制。程序的執(zhí)行是由CPU中的PC指針來(lái)控制的,PC指針決定著程序的執(zhí)行過(guò)程。CPU當(dāng)前要執(zhí)行某條命令是由PC指針來(lái)指向該命令語(yǔ)句的所在地址。在1片CPU中只有1個(gè)PC指針,在一時(shí)刻點(diǎn)CPU只能運(yùn)行1條語(yǔ)句[8]。任務(wù)由多條語(yǔ)句組成,所以任務(wù)也只能是一個(gè)一個(gè)地完成,不可能同時(shí)運(yùn)行2個(gè)及以上任務(wù)。當(dāng)執(zhí)行中斷時(shí),也是CPU停止運(yùn)行現(xiàn)在的任務(wù),轉(zhuǎn)而由PC指針轉(zhuǎn)向中斷服務(wù)程序地址,執(zhí)行PC指針?biāo)傅闹袛喾?wù)任務(wù)[9]。因此一個(gè)時(shí)刻是只能運(yùn)行一條語(yǔ)句,一段時(shí)間內(nèi)只能完成一個(gè)任務(wù)。

      2 多任務(wù)控制

      2.1 單片機(jī)多任務(wù)控制思路

      隨著單片機(jī)運(yùn)行速度的提升,單片機(jī)在嵌入式多任務(wù)智能控制中應(yīng)用廣泛。例如單片機(jī)運(yùn)行一條語(yǔ)句的速度可以用ns計(jì),那么由幾十條甚至上千條語(yǔ)句所組成的一個(gè)完整的任務(wù),單片機(jī)也只要幾個(gè)μs就可以完成[10]。如果沒(méi)有延時(shí)等待等過(guò)程,那么單片機(jī)運(yùn)行完由多個(gè)任務(wù)所組成的系統(tǒng)也只要幾十ms,甚至更短的時(shí)間。ms級(jí)別的時(shí)間長(zhǎng)度,實(shí)際應(yīng)用中無(wú)法感知出來(lái)。實(shí)質(zhì)上單片機(jī)執(zhí)行任務(wù)還是有先后順序的,可以非常快地處理多個(gè)任務(wù),能夠在極短時(shí)間檢測(cè)到輸入信息,并根據(jù)輸入信息來(lái)完成相關(guān)任務(wù),這也體現(xiàn)了單片機(jī)的實(shí)時(shí)處理功能。嵌入式多任務(wù)單片機(jī)控制就是按該思路進(jìn)行設(shè)計(jì)和應(yīng)用。

      2.2 單片機(jī)運(yùn)行速度對(duì)多任務(wù)控制的影響分析

      在多任務(wù)執(zhí)行過(guò)程中,單片機(jī)的運(yùn)行速度關(guān)鍵。如果單片機(jī)的速度太慢,是無(wú)法做到多任務(wù)同時(shí)完成,實(shí)時(shí)處理的。現(xiàn)在的單片機(jī)運(yùn)行速度都比較快,所以這一點(diǎn)在一般情況下不存在了。如果有單個(gè)的任務(wù)確實(shí)數(shù)據(jù)量很大,也可以選用更高級(jí)、速度更快的單片機(jī);或者可以采用專(zhuān)用的大數(shù)據(jù)處理芯片來(lái)完成數(shù)據(jù)處理。設(shè)計(jì)人員在編程時(shí)要特別注意程序的運(yùn)行速度,優(yōu)化程序編寫(xiě)。在完成一個(gè)任務(wù)時(shí),如果編程者使用了大量的延時(shí)等待程序,讓CPU延時(shí)等待當(dāng)前任務(wù)的完成,那么完成一個(gè)任務(wù)就需要較長(zhǎng)時(shí)間,就不能感覺(jué)是同時(shí)處理多個(gè)任務(wù);或者感覺(jué)到運(yùn)行速度太慢,經(jīng)常出現(xiàn)任務(wù)執(zhí)行被卡住等現(xiàn)象,也可能造成有些任務(wù)根本無(wú)法完成[11]。因此,要合理設(shè)計(jì)延時(shí)等待程序的編寫(xiě)。

      單片機(jī)運(yùn)行速度越快,任務(wù)完成的實(shí)時(shí)性也越好。每個(gè)任務(wù)的執(zhí)行時(shí)間短,所有任務(wù)執(zhí)行的時(shí)間也越短,人們感覺(jué)就是所有任務(wù)都是在同一時(shí)間段內(nèi)同時(shí)完成。

      2.3 多任務(wù)管理

      每個(gè)任務(wù)的執(zhí)行是要占用一定時(shí)間的。如果在每一輪程序運(yùn)行循環(huán)中,每個(gè)任務(wù)都去執(zhí)行一次,那是沒(méi)有必要的[12]。例如按鍵檢測(cè)任務(wù),數(shù)碼管顯示任務(wù)等。按鍵可以快速按下去,再松開(kāi),整個(gè)過(guò)程可快到100 ms之內(nèi)完成,但與CPU的運(yùn)行速度相比是極慢的。所以按鍵檢測(cè)是可以用定時(shí)方式去檢測(cè),例如在50 ms檢測(cè)1次就足夠了。數(shù)碼管顯示也是如此,由于人的視覺(jué)暫留,對(duì)每一張圖片是有100 ms時(shí)間保留在腦海中,也稱(chēng)人類(lèi)的視覺(jué)暫留功能,因此對(duì)數(shù)碼管可100 ms刷新1次;為防畫(huà)面閃爍,也可以是50 ms刷新1次。對(duì)如圖1中的小車(chē)行進(jìn)是否到達(dá)十字交叉口的檢測(cè),可以采用定時(shí)檢測(cè)的方式進(jìn)行。由于小車(chē)的行駛速度較慢,可以是幾十ms檢測(cè)1次。

      另外對(duì)于一些緊急的、重要的任務(wù),還可采用優(yōu)先等級(jí)的方式進(jìn)行處理,比如按中斷服務(wù)程序中的優(yōu)先等級(jí)制處理。

      3 嵌入式多任務(wù)智能控制設(shè)計(jì)與試驗(yàn)應(yīng)用

      3.1 嵌入式多任務(wù)智能控制設(shè)計(jì)

      對(duì)于圖1的智能小車(chē)行進(jìn)控制,小車(chē)在前進(jìn)過(guò)程中,要求進(jìn)行行進(jìn)速度的顯示。采用2個(gè)數(shù)碼管來(lái)顯示小車(chē)的行進(jìn)速度,設(shè)計(jì)的數(shù)碼管顯示小車(chē)速度電路原理如圖3所示。

      圖3 數(shù)碼管顯示小車(chē)速度電路原理

      從圖3中可以看出,2個(gè)數(shù)碼管是不可能同時(shí)顯示的,一次只能有一個(gè)數(shù)碼管點(diǎn)亮,須以很快的速度來(lái)對(duì)每個(gè)數(shù)碼管進(jìn)行刷新,即2個(gè)數(shù)碼管顯示對(duì)應(yīng)的2個(gè)任務(wù)要快速執(zhí)行。同時(shí),主控CPU還要不停地檢測(cè)小車(chē)是否到達(dá)十字路口,這又是另一個(gè)任務(wù)。主控CPU還有可能要接收通過(guò)WIFI組件發(fā)送過(guò)來(lái)的信息;同時(shí)也還要檢測(cè)按鍵等,所以此控制就有多個(gè)任務(wù)要求同時(shí)運(yùn)行。

      采用定時(shí)中斷來(lái)進(jìn)行定時(shí),可將定時(shí)器1設(shè)置成1 ms中斷1次,這樣就定了一個(gè)時(shí)間標(biāo)準(zhǔn)。如果要定時(shí)50 ms,那么就設(shè)置一個(gè)計(jì)數(shù)變量,在定時(shí)器中斷服務(wù)程序中進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)50次后就是定時(shí)達(dá)到50 ms,設(shè)計(jì)的定時(shí)器中斷服務(wù)程序流程如圖4所示。

      圖4 定時(shí)器中斷服務(wù)程序流程

      在主程序中執(zhí)行各任務(wù),由于有了定時(shí)器定時(shí),所以各任務(wù)就可在規(guī)定時(shí)間下分時(shí)執(zhí)行。設(shè)計(jì)的多任務(wù)控制主程序流程如圖5所示。

      圖5 多任務(wù)控制主程序流程

      從圖5可以看到:每個(gè)任務(wù)的執(zhí)行在主程序中不是每一次循環(huán)都執(zhí)行,而是要等到相應(yīng)的時(shí)間到了,輪到實(shí)施該任務(wù)時(shí)才執(zhí)行;任務(wù)的執(zhí)行按其性質(zhì)不同,可根據(jù)經(jīng)驗(yàn)或者現(xiàn)場(chǎng)情況進(jìn)行時(shí)間分配,有些任務(wù)可以執(zhí)行次數(shù)少,而有些任務(wù)必須執(zhí)行次數(shù)多,例如檢測(cè)是否到十字路口的程序,是每10 ms就運(yùn)行1次,而顯示程序?yàn)榱艘曈X(jué)舒服,需加快數(shù)碼管刷新速度,每30 ms刷新1個(gè)數(shù)碼管,而按鍵檢測(cè)程序在每50 ms檢測(cè)1次,使其程序少運(yùn)行,以加快單片機(jī)的運(yùn)行速度;對(duì)于特別重要的任務(wù),或者是運(yùn)行時(shí)間特別短的任務(wù),也可以直接采取優(yōu)先等級(jí)中斷服務(wù)程序的處理方式進(jìn)行執(zhí)行。

      3.2 智能控制系統(tǒng)試驗(yàn)應(yīng)用

      根據(jù)圖1的智能小車(chē)行進(jìn)路線(xiàn)以及標(biāo)志物,要求競(jìng)賽小車(chē)在接到啟動(dòng)命令后,須完全在自動(dòng)模式下完成所有進(jìn)程,設(shè)計(jì)的嵌入式單片機(jī)智能控制系統(tǒng)由STM32F103主控芯片和驅(qū)動(dòng)芯片以及電機(jī)組成驅(qū)動(dòng)系統(tǒng),由安裝于小車(chē)前邊的傳感器和另一片STM32F103芯片組成路面檢測(cè)系統(tǒng)向主STM32F103發(fā)送信息。通過(guò)試驗(yàn)得到該系統(tǒng)主要性能參數(shù)為:主頻設(shè)置為72 MHz,一條單周期指令運(yùn)行時(shí)間為1/72 μs;完成一個(gè)到達(dá)十字交叉口的檢測(cè)任務(wù)信息,根據(jù)波特率設(shè)置成11 520,通信設(shè)置成9位二進(jìn)制每幀,致使檢測(cè)一條信息不到0.1 ms,發(fā)送一個(gè)轉(zhuǎn)彎命令也不到0.1 ms;顯示任務(wù)時(shí)間更短,完成1個(gè)數(shù)碼管顯示只需要1 μs以?xún)?nèi)。該系統(tǒng)測(cè)試中,按鍵發(fā)出啟動(dòng)命令,完成小車(chē)行進(jìn)、在點(diǎn)檢測(cè)、轉(zhuǎn)彎命令等進(jìn)程,并完成雙數(shù)碼管分段分時(shí)顯示行進(jìn)速度任務(wù)。

      4 結(jié)束語(yǔ)

      在嵌入式的單片機(jī)智能控制中,通常有順序結(jié)構(gòu)控制和多任務(wù)控制等方式,均需由單片機(jī)PC指針來(lái)控制程序每一個(gè)語(yǔ)句命令的執(zhí)行,以及每一個(gè)任務(wù)的完成。順序結(jié)構(gòu)控制下,通過(guò)分析其程序流程、控制特性,得出適用于控制簡(jiǎn)單、沒(méi)有多任務(wù)同時(shí)執(zhí)行控制的情況。根據(jù)多任務(wù)控制的需要,為實(shí)現(xiàn)感覺(jué)和視覺(jué)、實(shí)時(shí)性等應(yīng)用問(wèn)題,通過(guò)單片機(jī)運(yùn)行速度對(duì)多任務(wù)控制的影響分析、多任務(wù)管理等研究,結(jié)合智能控制設(shè)計(jì)應(yīng)用,采用運(yùn)行速度高的單片機(jī)主程序進(jìn)行合理的任務(wù)與等級(jí)安排、時(shí)間控制和優(yōu)化編制延時(shí)等待程序,運(yùn)用適合的定時(shí)檢測(cè)方式,以及優(yōu)先等級(jí)制中斷服務(wù)程序處理,解決了智能小車(chē)嵌入式智能控制應(yīng)用中多任務(wù)同時(shí)運(yùn)行、實(shí)時(shí)執(zhí)行的技術(shù)問(wèn)題。

      猜你喜歡
      多任務(wù)數(shù)碼管小車(chē)
      大車(chē)?yán)≤?chē)
      自制小車(chē)來(lái)比賽
      Arduino編程
      電腦報(bào)(2019年2期)2019-09-10 07:22:44
      基于中心化自動(dòng)加權(quán)多任務(wù)學(xué)習(xí)的早期輕度認(rèn)知障礙診斷
      MC9S08FL16單片機(jī)數(shù)碼管靜態(tài)顯示分析
      單片機(jī)控制的四位數(shù)碼管動(dòng)態(tài)顯示編程
      基于Qt的數(shù)碼管數(shù)字編碼系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
      劉老師想開(kāi)小車(chē)
      文苑(2018年22期)2018-11-19 02:54:18
      兩輪自平衡小車(chē)的設(shè)計(jì)與實(shí)現(xiàn)
      電子制作(2018年8期)2018-06-26 06:43:02
      基于判別性局部聯(lián)合稀疏模型的多任務(wù)跟蹤
      甘孜县| 河南省| 敦化市| 出国| 晋州市| 永修县| 红桥区| 班玛县| 定日县| 大宁县| 蛟河市| 九寨沟县| 卢氏县| 永川市| 尼木县| 新巴尔虎左旗| 嵩明县| 博乐市| 澎湖县| 阜平县| 平遥县| 靖江市| 全南县| 佳木斯市| 洞头县| 牙克石市| 宝坻区| 南城县| 友谊县| 云南省| 南澳县| 舞钢市| 分宜县| 白朗县| 余江县| 曲周县| 麟游县| 腾冲县| 四会市| 杭州市| 淮阳县|