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

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]1.引言隨著計(jì)算機(jī)的不斷發(fā)展,越來越多的,優(yōu)秀的編程思想被提出來,并付諸實(shí)踐。在某些方面已出現(xiàn)了根本性的變革。另一方面,單片機(jī)自從80年代誕生以來,便以飛快的速度發(fā)展起來,但由于其物理?xiàng)l件的限制,單片機(jī)控

1.引言

隨著計(jì)算機(jī)的不斷發(fā)展,越來越多的,優(yōu)秀的編程思想被提出來,并付諸實(shí)踐。在某些方面已出現(xiàn)了根本性的變革。另一方面,單片機(jī)自從80年代誕生以來,便以飛快的速度發(fā)展起來,但由于其物理?xiàng)l件的限制,單片機(jī)控制系統(tǒng)的編程仍然局限于經(jīng)驗(yàn)的模式,很少應(yīng)用那些新提出的高級(jí)語(yǔ)言的編程思想。如果將不斷發(fā)展的編程思想與廣泛應(yīng)用的單片機(jī)控制系統(tǒng)結(jié)合起來,一定會(huì)大大促進(jìn)單片機(jī)控制系統(tǒng)的進(jìn)一步發(fā)展。使其更廣泛的應(yīng)用于各個(gè)方面。
在下面這個(gè)具體項(xiàng)目中,實(shí)際情況對(duì)系統(tǒng)有一些比較苛刻的要求。按照一般的單線程的控制方法已經(jīng)無法滿足實(shí)際需求。具體情況如表1(表1所示為生化分析儀的設(shè)計(jì)中對(duì)單片機(jī)系統(tǒng)的要求的一部分)

表1


表1所示只占了整個(gè)系統(tǒng)要求的1/6。下面對(duì)表1中的幾項(xiàng)內(nèi)容加以說明。


對(duì)象M1開始動(dòng)作17操作,即首先步進(jìn)電機(jī)M1(正向)轉(zhuǎn)動(dòng)查找光電開關(guān)信號(hào)PS1;查到后執(zhí)行兩次‘過程1‘。過程1:向電機(jī)打出30拍。由表1可知該動(dòng)作從C 段執(zhí)行到 K段停止;
對(duì)象M2即步進(jìn)電機(jī)M2等對(duì)象M1執(zhí)行完動(dòng)作17后執(zhí)行動(dòng)作23等。對(duì)象M3和對(duì)象M4 則在開始時(shí)同時(shí)啟動(dòng),分別執(zhí)行各自的動(dòng)作。各個(gè)對(duì)象之間有的獨(dú)立,有的相互關(guān)聯(lián)。


整個(gè)項(xiàng)目需要控制16臺(tái)步進(jìn)電機(jī),21個(gè)電磁閥,3個(gè)泵,1個(gè)直流電機(jī),系統(tǒng)要求全部執(zhí)行時(shí)間為6秒鐘,系統(tǒng)要求步進(jìn)電機(jī)以其最快的速度-----40us—60us打拍。如果以單線程的方式編程讓一臺(tái)電機(jī)轉(zhuǎn)到位之后,再轉(zhuǎn)其他電機(jī)。這樣16臺(tái)電機(jī)打一拍就需要640us---960us已經(jīng)無法滿足系統(tǒng)要求。這就需要使單片機(jī)并行控制多臺(tái)電機(jī)運(yùn)轉(zhuǎn)。這種以并行的方式驅(qū)動(dòng)各個(gè)電機(jī)同時(shí)啟動(dòng)可以在最短的時(shí)間將各個(gè)電機(jī)同時(shí)到位。在轉(zhuǎn)動(dòng)電機(jī)的同時(shí)還需要檢測(cè)一些開關(guān)量已確定電機(jī)的位置。為了實(shí)現(xiàn)這個(gè)目的。下面提供第一種解決方案(此方案是常用的方案之一,但作者并不推薦這個(gè)方案。因?yàn)檫@個(gè)方案成本太高。)。

方案一: 硬件實(shí)現(xiàn)。


我們可以用多個(gè)CPU,將各個(gè)電機(jī)的控制分到不同的CPU中執(zhí)行,并可將不互相沖突的電機(jī)控制過程放到一個(gè)CPU中,其結(jié)構(gòu)如圖1



圖1多cpu實(shí)現(xiàn)方案結(jié)構(gòu)圖


如圖所示系統(tǒng)中設(shè)定一個(gè)主CPU,其功能為與計(jì)算機(jī)通訊,并將計(jì)算機(jī)下達(dá)的指令分發(fā)給相應(yīng)的從CPU,更主要的是主CPU將監(jiān)控整個(gè)并行控制的運(yùn)作。因?yàn)楦鱾€(gè)控制過程之間有的彼此關(guān)聯(lián),所以主CPU不僅要控制各個(gè)線程的執(zhí)行,還要兼顧線程之間的通訊。以表1為例,具體作法如下:


1.開始后,主CPU發(fā)給從CPU1一個(gè)信號(hào),從CPU啟動(dòng)對(duì)象M1進(jìn)行動(dòng)作17,并由從CPU向主CPU返回一個(gè)信號(hào)。主CPU收到信號(hào)后,置起標(biāo)志1。當(dāng)對(duì)象M1進(jìn)行完動(dòng)作17后,從CPU向主CPU發(fā)出信號(hào),CPU將標(biāo)志1清掉。
2.開始后,主CPU發(fā)給從M2一個(gè)信號(hào),從CPU啟動(dòng)對(duì)象M2。從CPU向主CPU不斷查詢標(biāo)志1。當(dāng)標(biāo)志1被清掉后,從//控制對(duì)象2執(zhí)行動(dòng)作23。
3.開始后,主CPU發(fā)給從CPU一個(gè)信號(hào),從CPU啟動(dòng)對(duì)象M3和對(duì)象M4。執(zhí)行動(dòng)作25,然后開電磁閥6,然后延時(shí)1秒,關(guān)電磁閥6,執(zhí)行動(dòng)作24,然后執(zhí)行動(dòng)作26,等////1的動(dòng)作17完成后,啟動(dòng)步進(jìn)電機(jī)20,執(zhí)行動(dòng)作25,等等。


如上所說, 主CPU設(shè)置了多個(gè)標(biāo)志位用以跟蹤各個(gè)線程的運(yùn)行情況。并用這些標(biāo)志位承擔(dān)了各個(gè)相關(guān)線程之間的通訊。凡是線程運(yùn)行到與其他線程相關(guān)的地方都會(huì)在主CPU內(nèi)設(shè)置一個(gè)標(biāo)志位以供其它相關(guān)線程查詢。而那些不相關(guān)的線程可以完全獨(dú)立運(yùn)行。相關(guān)線程除了需檢測(cè)標(biāo)志的部分,其他部分也可獨(dú)立運(yùn)行。


這種多CPU控制的作法實(shí)現(xiàn)了單片機(jī)的并行運(yùn)作方式。但多CPU的控制方案成本幾乎是成倍提高,而且在硬件的基礎(chǔ)上實(shí)現(xiàn)的多CPU之間的通訊花費(fèi)時(shí)間稍長(zhǎng)。并且容易有干擾。


方案二(作者推薦): 另一種實(shí)現(xiàn)的方法是在軟件的層面上模擬多cpu的運(yùn)作。從而實(shí)現(xiàn)單片機(jī)的偽并行處理.這種實(shí)現(xiàn)方法借鑒了計(jì)算機(jī)實(shí)現(xiàn)多線程的編程方法。


多線程編程編程思想,即:同時(shí)給CPU分配了幾個(gè)任務(wù)或線程。當(dāng)然計(jì)算機(jī) CPU實(shí)際上不可能同一時(shí)間做幾件事,而是把時(shí)間分到不同的線程,使每個(gè)線程都有點(diǎn)進(jìn)展。如果一個(gè)線程無法進(jìn)行,比如線程要求的鍵盤輸入尚未取得,則轉(zhuǎn)入另一個(gè)線程的工作。通常,CPU在線程間的切換非常迅速,使人們感覺好象所有的線程是同時(shí)進(jìn)行的。


多線程編程中有一個(gè)很重要的環(huán)節(jié):各個(gè)線程之間的通訊與控制問題


在多線程編程中,每個(gè)線程都用編碼提供線程的行為,用數(shù)據(jù)供給編碼操作。多個(gè)線程同時(shí)處理同一編碼和數(shù)據(jù),不同線程可能各有不同的編碼和數(shù)據(jù)。事實(shí)上,編碼和數(shù)據(jù)部分是相當(dāng)獨(dú)立的,需要時(shí)即可向線程提供。因此經(jīng)常是幾個(gè)線程使用同一段編碼和數(shù)據(jù)這就會(huì)出現(xiàn)下面的情況


當(dāng)一個(gè)線程在調(diào)用數(shù)據(jù)時(shí),另一個(gè)線程可能正在修改這些數(shù)據(jù)。則前一個(gè)線程所調(diào)用的數(shù)據(jù)出現(xiàn)了不確定性。這會(huì)影響整個(gè)運(yùn)行結(jié)果。為了避免這個(gè)問題,多線程編程中,各個(gè)線程之間通訊和控制尤為重要。在將多線程的思想向單片機(jī)控制系統(tǒng)移植時(shí),這點(diǎn)要非常注意。 因?yàn)橄到y(tǒng)多線程運(yùn)作的實(shí)現(xiàn)從其最基本的層面看仍然是單線程的操作;他的實(shí)現(xiàn)歸根結(jié)底是利用了計(jì)算機(jī)的高速度。它將系統(tǒng)運(yùn)行的基準(zhǔn)時(shí)間分成了許多時(shí)間片,將各個(gè)時(shí)間片分給不同的線程,如此一來在一個(gè)基準(zhǔn)時(shí)間內(nèi)各個(gè)線程全都向前行進(jìn)了一步,然后運(yùn)行下一個(gè)基準(zhǔn)時(shí)間,周而復(fù)始。這樣在用戶層的角度看來,各個(gè)線程是同步進(jìn)行的。只要速度夠塊,時(shí)間片的劃分不會(huì)影響用戶層面上的應(yīng)用,這樣就可以實(shí)現(xiàn)多線程的操作。近年來單片機(jī)速度的大幅度提升,這就使多線程思想向單片機(jī)控制系統(tǒng)的移植成為可能。


在整個(gè)項(xiàng)目中全部的輸入信號(hào)共39個(gè);同時(shí)并行查詢的對(duì)象最多時(shí)有61個(gè)系統(tǒng)要求以步進(jìn)電機(jī)最快的速度打拍。時(shí)間約40us---60us,為了保證步進(jìn)電機(jī)打拍的穩(wěn)定性和靈活性。我選用了DSP內(nèi)部的一個(gè)定時(shí)器,定時(shí)時(shí)間為打拍時(shí)間的1/3—1/5。設(shè)定為10us中斷。這個(gè)時(shí)間為整個(gè)系統(tǒng)運(yùn)行的基準(zhǔn)時(shí)間。在這段時(shí)間內(nèi),系統(tǒng)要查詢一遍所有對(duì)象并向相應(yīng)的步進(jìn)電機(jī)打拍。在一些線程中還需要采樣多次。換句話說,在這個(gè)系統(tǒng)時(shí)間內(nèi)。所有線程都要向前行進(jìn)一步。


就像計(jì)算機(jī)一樣,將這個(gè)基準(zhǔn)時(shí)間分為多個(gè)時(shí)間片。將各個(gè)時(shí)間片分給不同的線程,在這種情況下,各個(gè)線程的執(zhí)行是間斷的。這與用硬件模擬多線程有本質(zhì)的不同。像這樣既要應(yīng)用各線程執(zhí)行的間斷性,又要保證各線程運(yùn)行的連續(xù)性。這對(duì)軟件的設(shè)計(jì)有了很高的要求,這同時(shí)也是單片機(jī)控制系統(tǒng)用軟件模擬多線程方法中的難點(diǎn)之一,為了解決這個(gè)問題,可在個(gè)線程自帶線程進(jìn)度指示器用來標(biāo)志線程的運(yùn)行進(jìn)度,即用一個(gè)變量記載線程的每一步;如圖2

圖2

系統(tǒng)設(shè)定線程進(jìn)度指示器用來指引線程的連續(xù)運(yùn)行,同時(shí)在一個(gè)中斷中輪詢所有對(duì)象。其編程結(jié)構(gòu)大致如下:

時(shí)鐘中斷:
線程1:
線程進(jìn)度標(biāo)志:
1: ;
2: ;
3;

線程2:
線程進(jìn)度標(biāo)志:
1: ;
2: ;
。。。。。。。。

本站聲明: 本文章由作者或相關(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)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉