版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄一、設(shè)計(jì)題目1二、設(shè)計(jì)要求1三、設(shè)計(jì)作用與目的1四、所用設(shè)備及軟件3五、系統(tǒng)設(shè)計(jì)方案35.1、系統(tǒng)總體設(shè)計(jì)45.2、系統(tǒng)工作原理5六、系統(tǒng)硬件設(shè)計(jì)76.1、系統(tǒng)整體設(shè)計(jì)86.2、整流濾波單元106.3、電機(jī)速度及轉(zhuǎn)子位置檢測(cè)單元116.4、逆變單元126.5、控制電路電源模塊126.6、看門(mén)狗模塊146.7、低電壓復(fù)位模塊156.8、電流檢測(cè)模塊166.9、故障報(bào)警模塊166.10、編程與仿真接口17七、系統(tǒng)軟件設(shè)計(jì)177.1、主程序流程設(shè)計(jì)187.2、初始化模塊197.3、中斷模塊207.4、開(kāi)關(guān)量輸入模塊217.5、故障處理模塊227.6、正常工作模塊237.7、檢修工作模塊237.8、消防狀態(tài)工作模塊247.9、CAN總線接收的數(shù)據(jù)處理模塊257.10、系統(tǒng)斷電數(shù)據(jù)保存模塊267.11、軟件定時(shí)器模塊26八、實(shí)驗(yàn)調(diào)試結(jié)果27九、設(shè)計(jì)中的問(wèn)題及解決方法30十、設(shè)計(jì)心得31十一、參考文獻(xiàn)32嵌入式系統(tǒng)在智能電梯中的應(yīng)用研究一、設(shè)計(jì)題目嵌入式系統(tǒng)在智能電梯中的應(yīng)用研究二、設(shè)計(jì)要求嵌入式實(shí)時(shí)系統(tǒng)作為計(jì)算機(jī)應(yīng)用的一個(gè)嶄新領(lǐng)域,以其簡(jiǎn)潔、高效等特點(diǎn)越來(lái)越多地受到人們的廣泛關(guān)注。本文以嵌入式實(shí)時(shí)操作系統(tǒng)在一種基于CAN總線的分布式智能電梯控制系統(tǒng)中的應(yīng)用為背景,以高性能的嵌入式微處理器為核心,采用嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS—Ⅱ在各任務(wù)間優(yōu)化地分配CPU時(shí)間和系統(tǒng)資源,簡(jiǎn)化了軟件編程,保證了系統(tǒng)的實(shí)時(shí)性,提高了系統(tǒng)的可靠性。電梯控制系統(tǒng)硬件上采用嵌入式微處理器作為控制核心,以現(xiàn)場(chǎng)總線作為通訊總線,各控制器之間只需一對(duì)絞線通過(guò)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)連接即可,安裝極為方便,對(duì)于不同的樓層數(shù)的控制系統(tǒng)只需在現(xiàn)場(chǎng)總線中參加相應(yīng)數(shù)目的呼梯控制器即可,主控器硬件軟件不需做任何改動(dòng)。使得電梯控制系統(tǒng)安裝更加靈活、方便。本設(shè)計(jì)重點(diǎn)討論了電梯變頻驅(qū)動(dòng)局部的電路設(shè)計(jì),及應(yīng)用嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS—Ⅱ的系統(tǒng)程序設(shè)計(jì)。三、設(shè)計(jì)作用與目的傳統(tǒng)的電梯控制系統(tǒng)各樓層與控制器之間采用以PLC為控制核心的點(diǎn)對(duì)點(diǎn)的連接方式每個(gè)呼叫器都有一套數(shù)據(jù)線與主控器相連,當(dāng)電梯樓層數(shù)比擬多時(shí),系統(tǒng)就會(huì)有大量的數(shù)據(jù)線需要連接,使得電梯的安裝、維護(hù)比擬麻煩。特別是不同樓層數(shù)的控制系統(tǒng)需要有相應(yīng)輸入輸出點(diǎn)數(shù)的主控制器相匹配,通用性差,給生產(chǎn)帶來(lái)許多不便[3]。以嵌入式微處理器為核心控制器的嵌入式系統(tǒng)作為計(jì)算機(jī)應(yīng)用的一個(gè)嶄新領(lǐng)域,以其簡(jiǎn)潔、高效等特點(diǎn)越來(lái)越多地受到人們的廣泛關(guān)注。而且在工業(yè)控制系統(tǒng)中已得到了廣泛的應(yīng)用,應(yīng)用于電梯控制系統(tǒng),具有很大的優(yōu)越性。(1)可以實(shí)現(xiàn)無(wú)觸點(diǎn)邏輯線路,提高系統(tǒng)可靠性,降低維修費(fèi)用,提高產(chǎn)品質(zhì)量。(2)編制控制程序靈活性大,可以適應(yīng)各種不同的功能要求。(3)可以實(shí)現(xiàn)故障顯示,使得維修方便,減少故障時(shí)間,提高運(yùn)行率,而且調(diào)速靈活,提高電梯的舒適感。(4)使得電梯控制系統(tǒng)體積減小,本錢(qián)降低,節(jié)省能源,可靠性提高,通用性強(qiáng),靈活性答,實(shí)現(xiàn)了復(fù)雜功能。不但可以裝配用于新的電梯產(chǎn)品,還可以用來(lái)改造舊電梯控制系統(tǒng),并能取得良好的經(jīng)濟(jì)效益和社會(huì)效益。(5)便于實(shí)現(xiàn)電梯群控系統(tǒng)的管理,合理調(diào)配電梯,提高電梯運(yùn)行效率,節(jié)約能源,縮短候梯時(shí)間。(6)可以減少控制裝置的占地面積。電梯控制系統(tǒng)硬件上采用嵌入式微處理器作為控制核心,以現(xiàn)場(chǎng)總線作為通訊總線,各控制器之間只需一對(duì)雙絞線通過(guò)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)連接即可,安裝極為方便,對(duì)于不同樓層數(shù)的控制系統(tǒng)只需在現(xiàn)場(chǎng)總線中參加相應(yīng)數(shù)目的呼梯控制器即可,主控器硬件軟件不需做任何改動(dòng)。使得電梯控制系統(tǒng)安裝更加靈活,方便。但是隨著對(duì)電梯運(yùn)行速度、邏輯功能的要求越來(lái)越高,常用的8位、16位單片機(jī)已逐漸不能滿足快速處理、實(shí)時(shí)響應(yīng)和系統(tǒng)結(jié)構(gòu)高效、簡(jiǎn)潔的需求。目前國(guó)內(nèi)的電梯控制系統(tǒng)還是以PLC和8位單片機(jī)為主,軟件編程采用的還是以無(wú)嵌入式實(shí)時(shí)操作系統(tǒng)的單任務(wù)循環(huán)的前后臺(tái)編程方式,使得電梯控制系統(tǒng)的實(shí)時(shí)性、穩(wěn)定性和軟件編程的靈活性已不能滿足電梯系統(tǒng)功能和速度的要求。隨著各種高速、高集成的嵌入式處理器的飛速開(kāi)展,包括嵌入式數(shù)字信號(hào)處理器(DSP)在內(nèi)的嵌入式處理器廣泛應(yīng)用于工業(yè)控制系統(tǒng),其中TMS32OCZooo系列DSP的體系結(jié)構(gòu)專為實(shí)時(shí)控制和實(shí)時(shí)信號(hào)處理而設(shè)計(jì),所配置的片內(nèi)外設(shè)為電梯控制系統(tǒng)應(yīng)用提供了理想的解決方案。對(duì)電梯控制系統(tǒng)功能要求越高,控制程序就必然越復(fù)雜,引入嵌入式實(shí)時(shí)操作系統(tǒng)作為軟件開(kāi)發(fā)平臺(tái)可以優(yōu)化系統(tǒng)結(jié)構(gòu),提高系統(tǒng)可靠性、實(shí)時(shí)性和編程的靈活性,將是智能電梯控制系統(tǒng)開(kāi)發(fā)的必需環(huán)節(jié)。四、所用設(shè)備及軟件表4.1局部元件清單DSP56F8025MFBE芯片1個(gè)MC333951個(gè)LM2940T-5.01個(gè)NCV1117-3.31個(gè)TPS38241個(gè)CAT809S1個(gè)PC機(jī)1臺(tái)電阻假設(shè)干電容假設(shè)干晶振1個(gè)反相器假設(shè)干二極管假設(shè)干三極管假設(shè)干μC/OS—Ⅱ嵌入式實(shí)時(shí)操作系統(tǒng)五、系統(tǒng)設(shè)計(jì)方案電梯控制系統(tǒng)是一個(gè)相當(dāng)復(fù)雜的邏輯控制系統(tǒng),系統(tǒng)要在極短的時(shí)間內(nèi)對(duì)幾百個(gè)信號(hào)進(jìn)行檢測(cè)、處理,加上系統(tǒng)對(duì)平安性能要求較高,使得電梯的控制和管理相當(dāng)復(fù)雜,現(xiàn)有國(guó)內(nèi)的電梯控制系統(tǒng)大多數(shù)采用PLC作為電梯的控制核心,對(duì)每層樓進(jìn)行點(diǎn)對(duì)點(diǎn)控制,進(jìn)一步加大了電梯的復(fù)雜性,給電梯的安裝、調(diào)試、以及擴(kuò)展帶來(lái)了許多麻煩。隨著計(jì)算機(jī)硬件、軟件技術(shù)和集成電路技術(shù)的迅速開(kāi)展,工業(yè)控制系統(tǒng)已成為計(jì)算機(jī)技術(shù)應(yīng)用領(lǐng)域中最具活力的一個(gè)分支,并取得了巨大的進(jìn)步,突出表現(xiàn)為嵌入式微處理器和嵌入式微控制器技術(shù)在控制系統(tǒng)中的大量運(yùn)用。而電梯控制系統(tǒng)中主控制器不僅要完成復(fù)雜的邏輯控制、還要實(shí)現(xiàn)數(shù)據(jù)通訊、數(shù)據(jù)處理、平安監(jiān)測(cè)及實(shí)時(shí)響應(yīng)的功能,根據(jù)電梯主控制器的特點(diǎn),對(duì)智能電梯控制系統(tǒng)主控制器進(jìn)行了設(shè)計(jì)。5.1、系統(tǒng)總體設(shè)計(jì)隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)的開(kāi)展,電梯的分布式控制成為了可能。將電梯的控制功能分為假設(shè)干模塊,由不同的控制器完成各局部特定的功能,各控制器間采用可靠的通信技術(shù)控制局域網(wǎng)傳遞信息,相互進(jìn)行通信,協(xié)同工作。這樣,系統(tǒng)可以實(shí)現(xiàn)電纜的插接化,并大大減少井道中電纜數(shù)量,減少布線工作量和維護(hù)本錢(qián)。而且,可以使得系統(tǒng)中各個(gè)控制器有更充裕的時(shí)間用于進(jìn)一步完善其自身的功能,以改善電梯的性能。本次課題研究開(kāi)發(fā)的智能電梯控制系統(tǒng)可分為四個(gè)主要局部:1.主控制器即電梯控制器。它是電梯控制系統(tǒng)的主要局部,負(fù)責(zé)整個(gè)電梯的運(yùn)行控制。一般主控器和位于樓房的頂部電梯機(jī)房?jī)?nèi)的電梯動(dòng)力裝置曳引機(jī)構(gòu)成了整個(gè)電梯控制系統(tǒng)的核心。2.轎廂轎廂是電梯系統(tǒng)中運(yùn)載乘客的裝置,它通過(guò)轎廂中的鍵盤(pán)、顯示屏,使乘客與電梯建立起了相互聯(lián)系。曳引機(jī)通過(guò)鋼絲牽引轎廂的上下運(yùn)行,用于運(yùn)送乘客。在轎頂〔轎廂的頂部〕還有一個(gè)門(mén)機(jī)控制器,用于電梯的開(kāi)關(guān)門(mén)動(dòng)作。3.呼梯它是每一層樓的呼叫裝置,給出每一樓層的呼叫請(qǐng)求信息,并且顯示電梯當(dāng)前運(yùn)行狀態(tài)。此外,電梯整個(gè)系統(tǒng)還包括上、下限位開(kāi)關(guān),上、下限速開(kāi)關(guān),限速器,平安閘,對(duì)重,隨行電纜,平層檢測(cè)板,道軌和緩沖器等一系列電梯運(yùn)行機(jī)械裝置和平安保護(hù)設(shè)備。4.控制器之間的通信方式主控制器、轎廂控制器和呼梯控制器之間采用現(xiàn)場(chǎng)總線之一的CAN總線進(jìn)行通信,各控制器之間只需一對(duì)雙絞線通過(guò)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)連接即可,安裝極為方便。CAN總線是一種有效支持分布式控制和實(shí)時(shí)控制的串行通信網(wǎng)絡(luò),具有非常好的抗干擾能力和可靠性。通信速率可達(dá)1Mbps/40m,直接傳輸距離最遠(yuǎn)可達(dá)10km/kbps??蓲旖釉O(shè)備最多為110個(gè)。電梯控制系統(tǒng)總體結(jié)構(gòu)框,如圖5.1所示。圖5.1系統(tǒng)整體結(jié)構(gòu)框圖5.2、系統(tǒng)工作原理主控制器是整個(gè)電梯的核心。不但要保證整個(gè)系統(tǒng)的穩(wěn)定運(yùn)行,而且要在極短的時(shí)間內(nèi)對(duì)系統(tǒng)所有的任務(wù)進(jìn)行響應(yīng)。其任務(wù)包括:接收、處理電梯的各種狀態(tài),并做出相應(yīng)的動(dòng)作,控制電梯的總體運(yùn)行,實(shí)施對(duì)電梯驅(qū)動(dòng)局部的控制,包括抱閘的松放、門(mén)機(jī)的開(kāi)關(guān)、變頻器低、中、高速的給出等控制。接收轎廂控制器送來(lái)的內(nèi)選信號(hào),執(zhí)行內(nèi)選外呼指令,向轎廂控制器、呼梯控制器發(fā)送樓層指示信號(hào),實(shí)施平安保護(hù)等。為了實(shí)現(xiàn)電梯狀態(tài)監(jiān)控的需要,主控制器還參加了基于LCD顯示的電梯參數(shù)設(shè)置、監(jiān)控系統(tǒng)。電梯主控系統(tǒng),是一個(gè)功能繁多,運(yùn)行復(fù)雜的控制系統(tǒng)。電梯每一步運(yùn)行都要考慮到各種平安問(wèn)題??偟膩?lái)說(shuō),系統(tǒng)按運(yùn)行上來(lái)說(shuō)可分為正常運(yùn)行、非正常運(yùn)行兩大框架結(jié)構(gòu),按功能上又可分為開(kāi)關(guān)門(mén)、上下運(yùn)行等功能局部。另外,為了保證系統(tǒng)平安正常的運(yùn)行,及時(shí)發(fā)現(xiàn)平安隱患,還要對(duì)整個(gè)系統(tǒng)的各種參數(shù)進(jìn)行自身檢測(cè),并且把電梯的一些內(nèi)部參數(shù)、內(nèi)部狀態(tài)通過(guò)液晶屏顯示出來(lái),以便及時(shí)發(fā)現(xiàn)問(wèn)題并進(jìn)行報(bào)警。以下對(duì)電梯控制系統(tǒng)運(yùn)行狀態(tài)進(jìn)行具體分析。電梯運(yùn)行時(shí),根據(jù)不同的情況,可分為正常運(yùn)行、檢修運(yùn)行、自學(xué)習(xí)運(yùn)行、消防運(yùn)行等運(yùn)行狀態(tài),要求各狀態(tài)之間可隨時(shí)互相轉(zhuǎn)換。1.正常運(yùn)行電梯正常運(yùn)行局部是電梯運(yùn)行的主要局部,他占據(jù)了整個(gè)電梯運(yùn)行的大局部運(yùn)行時(shí)間,按運(yùn)行狀態(tài)來(lái)說(shuō)大致可分為平層區(qū)狀態(tài)和非平層區(qū)狀態(tài)。(1)平層區(qū)狀態(tài)正常運(yùn)行時(shí),電梯一旦監(jiān)測(cè)到平層區(qū)標(biāo)志,就要進(jìn)入平層區(qū)狀態(tài),根據(jù)呼叫計(jì)算,分別決定停車(chē)、等待還是繼續(xù)運(yùn)行。如果電梯到達(dá)運(yùn)行目的樓層,系統(tǒng)進(jìn)入停車(chē)模式??紤]到電梯的順利停車(chē)和啟動(dòng)、乘客平安、機(jī)械局部的損壞等問(wèn)題,系統(tǒng)必須按照一定的規(guī)那么停車(chē)和啟動(dòng)。(2)非平層區(qū)狀態(tài)非平層區(qū)狀態(tài)相對(duì)于平層狀態(tài)來(lái)說(shuō)相對(duì)簡(jiǎn)單,主要完成電梯在運(yùn)行途中系統(tǒng)通過(guò)CAN總線與呼梯、轎廂的通信,提出登記樓層呼叫情況,并計(jì)算電梯運(yùn)行目標(biāo)樓層,決定電梯運(yùn)行的速度和方向,以及計(jì)算即將到達(dá)的目的地是否停車(chē)等任務(wù)。2.檢修檢修狀態(tài)是電梯控制系統(tǒng)中最根本的運(yùn)行局部,是電梯安裝、調(diào)試必不可少的狀態(tài)。檢修狀態(tài)只包括電梯的幾個(gè)最根本功能:開(kāi)門(mén)、關(guān)門(mén)、上行、下行,在電梯初次安裝、調(diào)試或出現(xiàn)故障時(shí),調(diào)用最根本、最簡(jiǎn)單的運(yùn)行功能,以便解決其它問(wèn)題。3.自學(xué)習(xí)為了增加電梯控制系統(tǒng)的智能化程度,系統(tǒng)參加了自學(xué)習(xí)功能。因?yàn)榘惭b電梯的樓房樓層高度不可能統(tǒng)一,就算有標(biāo)準(zhǔn),也會(huì)因?yàn)槭┕ご嬖谡`差而導(dǎo)致樓層高度存在差異。對(duì)于電梯控制系統(tǒng)來(lái)說(shuō),必須預(yù)先知道樓層的高度,以便準(zhǔn)確、及時(shí)的改變運(yùn)行速度,減速停車(chē)。一般來(lái)說(shuō),系統(tǒng)通過(guò)讀取電梯曳引機(jī)端的脈沖編碼器根據(jù)電器上下運(yùn)行的行程所發(fā)出的脈沖數(shù)來(lái)得到電梯所在樓層的層高。在傳統(tǒng)的電梯控制系統(tǒng)中,為了取得大樓樓層的高度,安裝調(diào)試的時(shí)候采用檢修運(yùn)行方式,手動(dòng)控制電梯的上下運(yùn)行,通過(guò)觀察電梯主控系統(tǒng)的脈沖計(jì)數(shù)器所讀到的數(shù)值,人工的計(jì)錄下樓層的高度值。在本系統(tǒng)中,引入了自學(xué)功能,即自動(dòng)完成樓宇高度脈沖的讀取、紀(jì)錄、保存,并自動(dòng)檢測(cè)大樓樓層數(shù)。給電梯安裝調(diào)試帶來(lái)了很大的方便。4.消防電梯在運(yùn)行時(shí),如果有人把設(shè)置在系統(tǒng)基站的消防開(kāi)關(guān)開(kāi)啟,電梯立刻進(jìn)入消防狀態(tài)。消防狀態(tài)是電梯系統(tǒng)在樓層發(fā)生火災(zāi)的情況下,為了保護(hù)乘客的平安以及方便消防人員救火救人而設(shè)置的一種功能狀態(tài)。一般來(lái)說(shuō),消防狀態(tài)可以分為消防保護(hù)階段和消防再次運(yùn)行階段?!?〕消防保護(hù)階段電梯在正常運(yùn)行時(shí),如果有消防呼叫,系統(tǒng)即處于消防保護(hù)階段?!?〕再次運(yùn)行階段電梯完成消防保護(hù)階段后,自動(dòng)進(jìn)入再次運(yùn)行階段,以便消防人員和急救人員緊急使用和臨時(shí)使用電梯。5.故障檢測(cè)對(duì)于電梯控制系統(tǒng)來(lái)說(shuō),其平安問(wèn)題尤為重要。能夠及時(shí)發(fā)現(xiàn)、解決系統(tǒng)的電子、機(jī)械問(wèn)題,并顯示相應(yīng)的故障代碼,指明故障情況,將對(duì)電梯故障的預(yù)防、故障出現(xiàn)后電梯的檢修帶了很大的幫助。一般來(lái)說(shuō),電梯控制系統(tǒng)中的故障包括控制電路的器件故障,包括元件老化、失靈、損壞等情況,還有變頻器運(yùn)行故障,分布式控制系統(tǒng)的串行通訊故障,門(mén)聯(lián)鎖、抱閘接觸器、主接觸器等機(jī)械故障等[9]。6.系統(tǒng)監(jiān)控為了準(zhǔn)確掌握電梯內(nèi)部參數(shù)、了解當(dāng)前運(yùn)行狀況,本系統(tǒng)采用了基于LCD液晶屏的電梯監(jiān)控系統(tǒng)。操作人員可以通過(guò)上、下、左、右、ENTER、EXIT、RESET共有七個(gè)操作鍵對(duì)監(jiān)控系統(tǒng)進(jìn)行操作,觀察自動(dòng)、檢修、消防、電梯運(yùn)行方向、當(dāng)前速度、上、下限位等運(yùn)行狀態(tài),還可以進(jìn)入?yún)?shù)設(shè)置窗口,對(duì)電梯運(yùn)行速度、換速脈沖、開(kāi)關(guān)門(mén)時(shí)間、方向、速度等一系列參數(shù)進(jìn)行設(shè)。六、系統(tǒng)硬件設(shè)計(jì)電梯控制系統(tǒng)中主控制器不僅要完成復(fù)雜的邏輯控制,還要實(shí)現(xiàn)數(shù)據(jù)通訊、數(shù)據(jù)處理、平安監(jiān)測(cè)及實(shí)時(shí)響應(yīng)的功能,根據(jù)電梯主控制器的特點(diǎn),提出一種新型、高效的控制系統(tǒng)結(jié)構(gòu)DSP+CPLD。由于DSP具有數(shù)據(jù)處理速度快、工作特性穩(wěn)定、集成化程度高等特性,在設(shè)計(jì)中主要用來(lái)完成數(shù)據(jù)的實(shí)時(shí)處理、運(yùn)算和響應(yīng),與控制系統(tǒng)中其它微處理器之間的局域網(wǎng)數(shù)據(jù)通信,輸入/輸出(I/O)信號(hào)的處理,電源監(jiān)控及數(shù)據(jù)的非易失性保存,而復(fù)雜可編程邏輯器件CPLD是應(yīng)用很廣泛的專用集成電路,具有集成度高、工作速度快和在線編程方便等特性,所以在系統(tǒng)設(shè)計(jì)中采用CPLD可以增強(qiáng)DSP訪問(wèn)外設(shè)的能力,實(shí)現(xiàn)可編程I/0口的擴(kuò)展、片內(nèi)時(shí)序邏輯電路和組合邏輯電路設(shè)計(jì)、輸入緩沖、輸出驅(qū)動(dòng)及產(chǎn)生其它器件的片選信號(hào)。CPLD通過(guò)片內(nèi)可編程數(shù)據(jù)交換邏輯模塊發(fā)送輸入端口狀態(tài)信息到DSP,接收DSP發(fā)出的控制信息,對(duì)于系統(tǒng)中局部輸入、輸出邏輯關(guān)系直接在CPLD中由可編程邏輯處理模塊完成。本設(shè)計(jì)中電梯主控制器就是采用DSP+CPLD的系統(tǒng)結(jié)構(gòu),基于DSP技術(shù)和CPLD技術(shù)有效結(jié)合的主導(dǎo)思想設(shè)計(jì)的主控制器,成功的應(yīng)用在智能電梯控制系統(tǒng)。數(shù)字信號(hào)處理器DSP采用Freescle公司生產(chǎn)的DSP56F8025MFBE,,而復(fù)雜可編程邏輯器件CPLD采用Altera公司生產(chǎn)的MAX7128S。本章將以DSP作為重點(diǎn),詳細(xì)介紹系統(tǒng)變頻驅(qū)動(dòng)局部的硬件設(shè)計(jì)。6.1、系統(tǒng)整體設(shè)計(jì)芯片DSP56F8025MFBE數(shù)字信號(hào)處理器(DSP)是一種適合于進(jìn)行實(shí)時(shí)數(shù)字信號(hào)處理運(yùn)算的微處理器,能夠快速實(shí)時(shí)的完成數(shù)字信號(hào)處理、運(yùn)算。全數(shù)字控制器以DSP56F800系統(tǒng)為核心,其具有較好的通用性。本設(shè)計(jì)中,突出了控制器的高效性、通用性以及實(shí)用性。在全數(shù)字控制器的研制中,采用核心控制芯片為DSP56F8025MFBE。該DSP芯片系列混合了DSP的高運(yùn)算能力與MCU的控制特性于一體,提供了許多專用于電機(jī)控制的外設(shè)接口,如PWM模塊、ADC、Timer、SCI、SPI和CAN總線等,非常適合于數(shù)字馬達(dá)控制;同時(shí),它還有通用型的GPIO口,每條運(yùn)算指令僅有25ns的高速運(yùn)算速度等,所有這些特性,為整個(gè)系統(tǒng)的控制提供了良好的外部控制環(huán)境。DSP56800內(nèi)核采用哈佛結(jié)構(gòu),包括三個(gè)可并行的工作的執(zhí)行單元,六級(jí)流水線。它的MCU風(fēng)格編程模式和優(yōu)化指令集允許直接生成有效的、緊湊的DSP控制碼。DSP568025MFBE支持從外部或內(nèi)部存儲(chǔ)器開(kāi)始執(zhí)行程序。并且每個(gè)指令周期可以同時(shí)從內(nèi)部RAM讀取兩個(gè)操作數(shù),同時(shí)提供了兩個(gè)中斷線和最多達(dá)32路的GPIO(通用I/O)引腳。DSP568025MFBE包含DSP56800系列內(nèi)核的程序和數(shù)據(jù)存儲(chǔ)器以及用于嵌入式控制的片內(nèi)外設(shè)。DSP56800內(nèi)核包括三個(gè)并行工作的執(zhí)行單元,在一個(gè)指令周期可以同時(shí)執(zhí)行6條指令。MCU編程模式以及優(yōu)化的指令集允許生成有效、緊湊的DSP控制代碼。DSP56800的主要特點(diǎn)如下:采用雙哈佛結(jié)構(gòu),16位DSP處理器。在內(nèi)部時(shí)鐘為80M時(shí),指令執(zhí)行速度可達(dá)40MIPS。單周期16位*16位并行MAC。帶擴(kuò)展位的2個(gè)36位累加器。16位雙向循環(huán)移位器。采用DSP特有尋址模式的并行指令集。硬件實(shí)現(xiàn)DO和REP循環(huán)。三條內(nèi)部地址總線和一條外部地址總線。四條內(nèi)部數(shù)據(jù)總線和一條外部數(shù)據(jù)總線。支持DSP和控制器函數(shù)的指令集??刂破黠L(fēng)格的尋址模式和指令。高效的C編輯器,支持局部變量。只限制于存儲(chǔ)器大小的子程序和中斷堆棧。JTAG/ONCE調(diào)試接口。圖6.1DSP56F8025MFBE原理圖DSP56F8025MFBE具有數(shù)據(jù)處理速度快、工作特性穩(wěn)定、集成化程度高的特性。系統(tǒng)采用了模塊化設(shè)計(jì)理念,組成框圖如圖6.2所示。圖6.2主控制器結(jié)構(gòu)框圖由上圖可知,設(shè)計(jì)中采用交-直-交型變頻電路,包括由不可控二極管和電容矩陣組成的濾波整流單元和逆變單元??刂齐娐肪植恳訢SP為核心組成全數(shù)字控制系統(tǒng),其中包括控制電路電源模塊、上電復(fù)位模塊、看門(mén)狗模塊、光電碼盤(pán)、電流采樣及故障報(bào)警等模塊。本系統(tǒng)是一個(gè)有速度反應(yīng)的閉環(huán)系統(tǒng),DSP接受電機(jī)的轉(zhuǎn)速及轉(zhuǎn)子的位置信號(hào),電機(jī)電流信號(hào),通過(guò)數(shù)字算法輸出SPWM,控制電機(jī)。同時(shí)DSP還負(fù)責(zé)監(jiān)控系統(tǒng)運(yùn)行的狀態(tài),當(dāng)系統(tǒng)出現(xiàn),過(guò)壓,過(guò)流,短路等故障時(shí),DSP將停止系統(tǒng)工作,發(fā)出聲光報(bào)警。6.2、整流濾波單元380V的交流電壓經(jīng)6個(gè)不可控的二極管全波整流后變?yōu)橹绷骱笤俳?jīng)電解電容進(jìn)行濾波,同時(shí)為負(fù)載的直流電源之間的無(wú)功功率進(jìn)行緩沖。如圖6.3所示。圖6.3整流濾波單元當(dāng)變頻器剛合上電源的瞬間由電容組成的濾波電路充電電流較大,過(guò)大的沖擊電流極易損壞電源的整流模塊,因此為保護(hù)整流橋在變頻器剛接通電源的一段時(shí)間里電路串聯(lián)一個(gè)限流電阻,使瞬間的充電電流被限制在允許的范圍內(nèi)。當(dāng)電源電壓到達(dá)穩(wěn)定后,通過(guò)電阻分壓的方式使光耦導(dǎo)通,繼電器線圈得電,閉合短路限流電阻,從而降低系統(tǒng)能量損耗。6.3、電機(jī)速度及轉(zhuǎn)子位置檢測(cè)單元系統(tǒng)使用光電碼盤(pán)檢測(cè)電機(jī)的速度及轉(zhuǎn)子的位置信息反應(yīng)給DSP,DSP再通過(guò)相應(yīng)的算法控制電機(jī)的運(yùn)行。如圖6.4所示,為光電碼盤(pán)與DSP之間的接口電路。圖6.4光電碼盤(pán)接口電路6.4、逆變單元系統(tǒng)選用freescale公司的MC33395作為逆變單元的驅(qū)動(dòng)芯片,按DSP輸入的不同模式控制6個(gè)功率開(kāi)關(guān)的導(dǎo)通與關(guān)閉,實(shí)現(xiàn)對(duì)電機(jī)的SPWM調(diào)節(jié)。如圖6.5所示。在工作過(guò)程中,當(dāng)MC33395檢測(cè)到過(guò)電流或過(guò)電壓時(shí)可以通過(guò)VT2關(guān)閉供電,從而禁止了SPWM的輸出,保護(hù)系統(tǒng)平安。圖6.5逆變單元6.5、控制電路電源模塊系統(tǒng)的控制回路電壓可以通過(guò)外接220V生活電壓的方式給定。當(dāng)電梯啟動(dòng)時(shí),VT1導(dǎo)通,Q1導(dǎo)通,經(jīng)過(guò)變壓器變壓整流橋整流的輸入電壓被接入,首先經(jīng)過(guò)78S12后輸出穩(wěn)定的12V電壓,接著經(jīng)過(guò)LM2940T-5.0后輸出穩(wěn)定的5V電壓,最后經(jīng)過(guò)NCV1117-3.3輸出穩(wěn)定的3.3V電壓,連續(xù)使用3塊串行穩(wěn)壓電源為控制電路提供不同的供電電壓,以滿足使用要求。如圖6.6,6.7,6.8,6.9所示。圖6.6啟動(dòng)開(kāi)關(guān)及變壓整流模塊圖6.7+12V電源模塊圖6.8+5V電源模塊圖6.9+3.3V電源模塊如圖6.9所示,在電壓接入78L12+12穩(wěn)壓模塊之前,回路中還參加了由R6和D4組成的順壓保護(hù)電路,其中R6作為限流電阻防止D4被過(guò)強(qiáng)的釋能電流燒穿。D4為T(mén)VS管即瞬態(tài)穩(wěn)壓二極管,當(dāng)輸入的電壓過(guò)高時(shí),TVS會(huì)瞬時(shí)導(dǎo)通將過(guò)高的能量釋放,同時(shí)將輸出電壓限制在平安范圍內(nèi),從而有效的防止了12V穩(wěn)壓塊因瞬間過(guò)壓燒毀,提高控制器的可靠性。圖6.10瞬壓保護(hù)電路6.6、看門(mén)狗模塊為提高控制系統(tǒng)的平安性,防止程序在運(yùn)行過(guò)程中出現(xiàn)錯(cuò)誤,在外圍電路中參加看門(mén)狗模塊,但程序運(yùn)行錯(cuò)誤時(shí),看門(mén)狗模塊可以將CPU復(fù)位,使芯片恢復(fù)正常工作,設(shè)計(jì)中所選用看門(mén)狗芯片為T(mén)動(dòng)電壓2.63V,內(nèi)部定時(shí)器每200ms發(fā)出一次復(fù)位信號(hào)。因此當(dāng)程序運(yùn)行錯(cuò)誤時(shí),在200ms內(nèi)未能將其內(nèi)部定時(shí)器清零,那么TPS3824將發(fā)出RESET信號(hào)復(fù)位DSP,從而有效的防止死機(jī)的情形發(fā)生。如圖6.11所示。圖6.11看門(mén)狗模塊6.7、低電壓復(fù)位模塊在系統(tǒng)上斷電過(guò)程中電源局部可能出現(xiàn)過(guò)電壓過(guò)低的情況,此時(shí)DSP可能在非正常電壓工作時(shí)產(chǎn)生錯(cuò)誤,為防止類似情形產(chǎn)生,系統(tǒng)中參加低電壓壓復(fù)位模塊。因?yàn)镈SP供電電壓為3.3V,所以選用CAT809S作為復(fù)位芯片。如圖6.12所示。CAT809S的復(fù)位電壓為2.93V,當(dāng)DSP供電電壓低于此值時(shí),CAT809S將發(fā)出RESET信號(hào),復(fù)位DSP。圖6.12低電壓復(fù)位模塊6.8、電流檢測(cè)模塊電流檢測(cè)模塊用于檢測(cè)這個(gè)系統(tǒng)運(yùn)行過(guò)程中的電流情況。系統(tǒng)可以根據(jù)電流情況調(diào)整電機(jī)的速度,電梯內(nèi)風(fēng)扇的開(kāi)關(guān),還可以有效的防止過(guò)電流的發(fā)生,保障系統(tǒng)平安。如圖6.13所示。電流檢測(cè)模塊采用正向運(yùn)算放大器組成的電壓放大電路,輸入端的電壓被濾波并放大11倍后送入DSP的AD采樣通道,DSP將實(shí)際中的模擬量通過(guò)AD模塊轉(zhuǎn)換成相應(yīng)的數(shù)字量,最后通過(guò)計(jì)算,判斷獲得希望的控制模式。由于DSP的管腳耐壓值有限,電壓經(jīng)運(yùn)算放大器放大后,可能超出正常范圍,所以在DSP的管腳輸入端接有二極管限幅電路,使得當(dāng)DSP管腳處電壓輸入過(guò)大時(shí)被有效的限制在允許的范圍內(nèi)。圖6.13電流檢測(cè)模塊6.9、故障報(bào)警模塊當(dāng)系統(tǒng)出項(xiàng)故障時(shí),DSP在完成系統(tǒng)停機(jī)保護(hù)的同時(shí),輸出GPIO端口將發(fā)出高電平,Q2三極管導(dǎo)通,故障燈與響鈴?fù)瑫r(shí)得電,發(fā)出聲光報(bào)警提示用戶。如圖6.14所示。圖6.14故障報(bào)警模塊6.10、編程與仿真接口可以通過(guò)串行接口RS232進(jìn)行通訊及仿真,方便了嵌入式程序的編輯與調(diào)試。如圖6.15所示。圖6.15編程及仿真接口七、系統(tǒng)軟件設(shè)計(jì)嵌入式實(shí)時(shí)操作系統(tǒng)(EmbeddedRealTimeOperatingSystem)是一種實(shí)時(shí)的、支持嵌入式系統(tǒng)應(yīng)用的操作系統(tǒng)軟件,它是嵌入式系統(tǒng)(包括硬、軟件系統(tǒng))極為重要的組成局部,通常包括與硬件相關(guān)的底層驅(qū)動(dòng)軟件、系統(tǒng)內(nèi)核、設(shè)備驅(qū)動(dòng)接口、通信協(xié)議、圖形界面、標(biāo)準(zhǔn)化瀏覽器等。7.1、主程序流程設(shè)計(jì)本設(shè)計(jì)將重點(diǎn)運(yùn)用μC/OS—Ⅱ嵌入式實(shí)時(shí)操作系統(tǒng)作為軟件開(kāi)發(fā)平臺(tái),進(jìn)行應(yīng)用系統(tǒng)軟件的設(shè)計(jì)。電梯控制系統(tǒng)控制策略與方法以流程圖表示,如圖7.1所示圖7.1主程序流程圖7.2、初始化模塊初始化模塊是電梯控制系統(tǒng)初始運(yùn)行局部,負(fù)責(zé)初始化系統(tǒng)的各種參數(shù),根據(jù)情況把電梯設(shè)置成一種初始上電運(yùn)行狀態(tài)。初始化模塊包括:(1)DSP系統(tǒng)初始化函數(shù)SYS_INIT()。完成DSP系統(tǒng)的配置存放器和接口模塊時(shí)鐘控制。主要包括系統(tǒng)控制和狀態(tài)存放器、中斷優(yōu)先級(jí)和中斷向量表、外設(shè)中斷擴(kuò)展控制器、中斷向量、CPU中斷存放器、外設(shè)中斷存放器等。(2)定時(shí)器初始化函數(shù)EVB_init()。DSP有四個(gè)通用定時(shí)器,選擇定時(shí)器3做為整個(gè)軟件程序定時(shí)的基準(zhǔn)。完成定時(shí)器內(nèi)外時(shí)鐘的選擇,設(shè)置可編程定標(biāo)器的初值,選擇計(jì)數(shù)時(shí)鐘頻率,計(jì)數(shù)模式等,并向操作系統(tǒng)時(shí)鐘節(jié)拍函數(shù)OSTimeTick()提供根本計(jì)時(shí)單位。完成初始化各個(gè)定時(shí)標(biāo)志的初始化的工作。(3)光電編碼器初始化函數(shù)EVA_init()。選擇定時(shí)器2作為光電編碼器輸入脈沖處理的根本時(shí)鐘信號(hào)。完成正交編碼信號(hào)計(jì)數(shù)模式,計(jì)數(shù)方向等。(4)I/O初始化函數(shù)I幾init()。在電梯上電的的初始狀態(tài),系統(tǒng)的I/O狀態(tài)是隨機(jī)的,這樣對(duì)電梯造成的極大的危險(xiǎn)。I/O初始化主要是根據(jù)初始情況設(shè)置I/O口的輸入輸出狀態(tài),是電梯到達(dá)一個(gè)比擬穩(wěn)定、平安的狀態(tài)。(5)復(fù)雜可編程邏輯器件(CPLD)接口初始化函數(shù)Cpld_Init()。數(shù)字信號(hào)處理器(DSP)通過(guò)數(shù)據(jù)總線向CPLD輸出初始狀態(tài)數(shù)據(jù),完成CPLD初始化。(6)CAN控制器的初始化CAN_init()。對(duì)DSp320LF2407中的CAN控制段中的存放器進(jìn)行初始化,設(shè)置CAN控制器的波特率、各個(gè)郵箱的功,接收屏蔽碼等。(7)串行通信接口初始化函數(shù)SCI_init()。主控制器與液晶顯示模塊采用串行通信接口進(jìn)行通訊。完成串行通信口可編程的數(shù)據(jù)格式、波特率的設(shè)置等。(8)串行外設(shè)接口初始化函數(shù)SPI_init()。主控制器采用串行外設(shè)接口(SPI)對(duì)串行EEPR伽管理,用于系統(tǒng)斷電后非易失數(shù)據(jù)保存。初始化函數(shù)完成完成串行外設(shè)接口可編程的數(shù)據(jù)格式、波特率的設(shè)置等。內(nèi)存初始化函數(shù)Meomory_Init()。完成內(nèi)存中變量及標(biāo)志的初始化。(9)嵌入式實(shí)時(shí)操作系統(tǒng)μC/OS—Ⅱ操作系統(tǒng)初始化函數(shù)OSinit()。完成初始μC/OS—Ⅱ所有變量和數(shù)據(jù)結(jié)構(gòu)。7.3、中斷模塊電梯控制系統(tǒng)中斷模塊包括兩局部:定時(shí)器模塊和CAN總線數(shù)據(jù)接收模塊。操作系統(tǒng)在中斷效勞程序中所用到函數(shù)包括:中斷開(kāi)始函數(shù)OSIntEnter(),時(shí)鐘節(jié)拍函數(shù)OSTimeTiek(),退出中斷函數(shù)OSIntExit()。1)定時(shí)器模塊采用中斷3,函數(shù)是c_int2()voidc_int2(){if(PIVR==0x002F)//是否認(rèn)時(shí)器10MS{unsignedintTint=0//定義局部變量Tint*OSIntEnter();//通知內(nèi)核開(kāi)始中斷效勞OSTimeTick();//10MS一個(gè)時(shí)鐘節(jié)拍中斷效勞子程序OSMboxPost(TimerMbox,(void*)&Tint);//發(fā)送定時(shí)時(shí)間消息到軟件定時(shí)器OSIntExit();//退出中斷asm(″CLRCINTM″);//開(kāi)中斷}}2)CAN總線數(shù)據(jù)接收模塊采用中斷5,函數(shù)是c_int5()。voidc_int5(){if(PIVR==0x0040){unsignedintCANint=0;//定義局部變量OSIntEnter();//通知內(nèi)核開(kāi)始中斷效勞呼梯或是轎廂發(fā)送的數(shù)據(jù)的ID號(hào)判斷中斷效勞子程序OSMboxPost(CANREMbox,(void*)&CANint);//發(fā)送CAN總線接收到的數(shù)據(jù)消息到CAN接收數(shù)據(jù)處理函數(shù)Can_Receive()OSIntExit();//退出中斷asm(″CLRCINTM″);//開(kāi)中斷}}7.4、開(kāi)關(guān)量輸入模塊開(kāi)關(guān)量輸入模塊功能是完成讀取開(kāi)關(guān)量控制指令及電梯狀態(tài)值,并進(jìn)行數(shù)據(jù)轉(zhuǎn)換,便于其他函數(shù)調(diào)用。采用操作系統(tǒng)μC/OS—Ⅱ創(chuàng)立開(kāi)關(guān)量輸入模塊任務(wù)如下:OSTaskCreate(IO_RECEIVETask,(void*)O,(void*)&TaskstkIORe[29],3)任務(wù)名稱:IO-RECEIVE任務(wù)堆棧:分配給開(kāi)關(guān)量輸入模塊IO-RECEIVE()堆棧的棧頂指針&TaskstkIORe[29],操作系統(tǒng)初始化通過(guò)設(shè)置OS_STK_GROWTH將堆棧設(shè)定為是由上往下遞減。優(yōu)先級(jí):3采用μC/OS—Ⅱ?qū)﹂_(kāi)關(guān)量輸入模塊管理的流程如下:voidIO_Reeeive(){while(1){OSTasksuspend(3);/*采用任務(wù)掛起方式先將任務(wù)置于掛起態(tài)*/讀入開(kāi)關(guān)量信號(hào)輸入值及數(shù)據(jù)轉(zhuǎn)換用戶代碼;根據(jù)輸入信號(hào)確定正常、檢修和消防那種任務(wù)恢復(fù)就緒態(tài)。if(檢修狀態(tài)有效)OSIntTaskResume(5):/*檢修任務(wù)恢復(fù)就緒態(tài)*/}7.5、故障處理模塊電梯控制系統(tǒng)的故障狀態(tài)處理模塊主要完成電梯處于故障狀態(tài)時(shí)的運(yùn)行控制。采用操作系統(tǒng)μC/OS—Ⅱ創(chuàng)立故障處理模塊任務(wù)如下:OSTaskCreate(Ctr_TroubleTask,(void*)0,(void*)&TaskstkTrouble[59],4)任務(wù)名稱:Ctr_Trouble()任務(wù)堆棧:分配給電梯控制系統(tǒng)故障狀態(tài)處理模塊Ctr_trouble()堆棧的棧頂指針&TaskstkTrouble[29]。優(yōu)先級(jí):4采用協(xié)μC/OS—Ⅱ?qū)收瞎ぷ髂K管理的流程如下:voidCtr_trouble(){while(l){MaiITrouble=OSMboxPend(TroubleMbox,0,&error):/*采用消息郵箱與其它任務(wù)模塊進(jìn)行信息傳遞*/troublesign=*Mai1Trouble;/*讀取返回值,根據(jù)郵箱返回的值執(zhí)行相應(yīng)的功能*/if(troublesign==?){故障處理子程序1}故障處理其它子程序}}7.6、正常工作模塊電梯控制系統(tǒng)正常工作模塊主要完成:(1)電梯正常運(yùn)行過(guò)程中的呼叫提取、呼叫計(jì)算、根據(jù)呼叫計(jì)算結(jié)果確定電梯運(yùn)行目標(biāo)樓層.(2)啟動(dòng)電梯運(yùn)行包括:主繼電器控制、給定方向、松閘和給定速度。(3)停止電梯運(yùn)行包括:主繼電器控制、撤速度、抱閘和撤方向。(4)開(kāi)關(guān)門(mén)控制邏輯處理。采用操作系統(tǒng)μC/OS—Ⅱ創(chuàng)立電梯正常運(yùn)行模塊任務(wù)如下:OSTaskCreate(CtrjormalTask,(void*)0,(void*)&TaskstkNormal[59],9)任務(wù)名稱:Ctr_Normal()任務(wù)堆棧:分配給電梯控制系統(tǒng)正常模塊Ctr_Normal()堆棧的棧頂指針&TaskstkNormal[59]。優(yōu)先級(jí):9恢復(fù)就緒態(tài)方式:由I/O輸入模塊函數(shù)IO_RECEIvE()根據(jù)I/O口狀態(tài)執(zhí)行恢復(fù)函數(shù)進(jìn)入就緒態(tài)。采用μC/OS—Ⅱ?qū)φ9ぷ髂K管理的流程如下:Ctr_Normal(){while(1){OSTasksuspend(9);/*采用任務(wù)掛起方式將任務(wù)先置于掛起態(tài)*/}}正常運(yùn)行各局部子程序7.7、檢修工作模塊電梯控制系統(tǒng)的檢修模塊主要完成工作人員在對(duì)電梯調(diào)試、維護(hù)時(shí)的運(yùn)行控制。采用操作系統(tǒng)協(xié)μC/OS—Ⅱ創(chuàng)立開(kāi)關(guān)量輸入模塊任務(wù)如下:OSTaskCreate(Ctr_ExamTask,(void*)O,(void*)&TaskstkExam[29],5)任務(wù)名稱:Ctr_Exam()任務(wù)堆棧:分配給電梯控制系統(tǒng)檢修模塊Ctr_Exam()堆棧的棧頂指針&TaskstkExam[29]。優(yōu)先級(jí):5恢復(fù)就緒態(tài)方式:由I/O輸入模塊函數(shù)IO_RECEIVE()根據(jù)I/O口狀態(tài)執(zhí)行恢復(fù)函數(shù)進(jìn)入就緒態(tài)。采用μC/OS—Ⅱ?qū)z修工作模塊管理的流程如下:voidCtr_Exam(){while(l)OSTasksuspend(5);/*采用任務(wù)掛起方式將任務(wù)先置于掛起態(tài)*/}檢修狀態(tài)下開(kāi)、關(guān)門(mén)和上、下行處理程序7.8、消防狀態(tài)工作模塊電梯控制系統(tǒng)的消防狀態(tài)工作模塊主要完成電梯處于消防報(bào)警狀態(tài)時(shí)的運(yùn)行控制[21]。采用操作系統(tǒng)林μC/OS—Ⅱ創(chuàng)立開(kāi)關(guān)量輸入模塊任務(wù)如下:OSTaskCreate(Ctr_FireTask,(void*)O,(void*)&TaskstkFire[59],6)任務(wù)名稱:Ctr_Fire()任務(wù)堆棧:分配給電梯控制系統(tǒng)消防狀態(tài)處理模塊Ctr_Fire()堆棧的棧頂指針&TaskstkFire[29]。優(yōu)先級(jí):6恢復(fù)就緒態(tài)方式:由I/O輸入模塊函數(shù)IO_RECEIVE()根據(jù)I/O口狀態(tài)執(zhí)行恢復(fù)函數(shù)進(jìn)入就緒態(tài)。采用μC/OS—Ⅱ?qū)ο拦ぷ髂K管理的流程如下:voidCtr_Fire(){while(l){OSTasksuspend(6);/*采用任務(wù)掛起方式將任務(wù)先置于掛起態(tài)*/消防狀態(tài)運(yùn)行控制程序}}7.9、CAN總線接收的數(shù)據(jù)處理模塊電梯控制系統(tǒng)的CAN總線接收的數(shù)據(jù)處理模塊主要完成電梯主控制器從轎廂控制器、呼梯控制器接收的數(shù)據(jù)的處理。采用操作系統(tǒng)μC/OS—Ⅱ創(chuàng)立故障處理模塊任務(wù)如下:OSTaskCreate(Ctr_CanRxTask,(void*)0,(void*)&TaskstkCanRx[29],7)任務(wù)名稱:Ctr_CanRx()任務(wù)堆棧:分配給電梯控制系統(tǒng)CAN總線接收的數(shù)據(jù)處理模塊Ctr_CanRx()堆棧的棧頂指針&TaskstkCanRx[29]。優(yōu)先級(jí):7采用μC/OS—Ⅱ?qū)?shù)據(jù)處理模塊管理的流程如下:voidCtr_CanRx(){while(1){MailCanRx=OSMboxPend(CanRxMbox,30,&error):/*采用消息郵箱與其它任務(wù)模塊進(jìn)行信息傳遞*/eznrxsign=*MailCanRx:/*讀取返回值,根據(jù)郵箱返回的值執(zhí)行相應(yīng)的功能*/if(eznrxsign==轎廂信息){轎廂數(shù)據(jù)處理子程序}CAN總線接收的數(shù)據(jù)進(jìn)行處理的其它子程序7.10、系統(tǒng)斷電數(shù)據(jù)保存模塊電梯控制系統(tǒng)的系統(tǒng)斷電數(shù)據(jù)保存模塊主要完成電梯控制系統(tǒng)在突然斷電時(shí)數(shù)據(jù)的非易失保存。采用操作系統(tǒng)μC/OS—Ⅱ創(chuàng)立斷電數(shù)據(jù)保存模塊任務(wù)如下:OSTaskCreate(Ctr_SaveTask,(void*)0,(vosd*)&Taskstksave[29],8)任務(wù)名稱:Ctr_Save()任務(wù)堆棧:分配給電梯控制系統(tǒng)斷電數(shù)據(jù)保存模塊Ctr_Save()堆棧的棧頂指針&Taskstksave[29]。優(yōu)先級(jí):8恢復(fù)就緒態(tài)方式:由I/0輸入模塊函數(shù)10_REcEIVEO根據(jù)I/0口狀態(tài)執(zhí)行恢復(fù)函數(shù)進(jìn)入就緒態(tài)。采用μC/OS—Ⅱ?qū)嚯姅?shù)據(jù)保存模塊管理的流程如下:voidCtr_Save(){while(1){OSTasksuspend(S);/*采用任務(wù)掛起方式將任務(wù)先置于掛起態(tài)*/系統(tǒng)斷電數(shù)據(jù)非易失保存程序}}7.11、軟件定時(shí)器模塊電梯控制系統(tǒng)的軟件定時(shí)器模塊主要完成電梯主控制器的各個(gè)軟件定時(shí)器的計(jì)算和處理。采用操作系統(tǒng)μC/OS—Ⅱ創(chuàng)立軟件定時(shí)器模塊任務(wù)如下:OSTaskCreate(CtrjimerTask,(void*)0,(v。id*)&TaskstkTimer[29],10)任務(wù)名稱:Ctr_TimerO任務(wù)堆棧:分配給電梯控制系統(tǒng)軟件定時(shí)器模塊ctr_Timero堆棧的棧頂指針&TaskstkTimer[29]。優(yōu)先級(jí):10采用μC/OS—Ⅱ?qū)?shù)據(jù)處理模塊管理的流程如下:voidCtrjimer(){while(l)MaiITimer=OSMboxPend(TimerMbox,10,&error):/*采用消息郵箱與其它任務(wù)模塊進(jìn)行信息傳遞*/timersign=*Mai1Timer:/*讀取返回值,根據(jù)郵箱返回的值執(zhí)行相應(yīng)的功能*/if(timersign==looms到有效){以100ms為根本計(jì)數(shù)單位的軟件定時(shí)器處理子程序軟件定時(shí)器其它子程序;}}八、實(shí)驗(yàn)調(diào)試結(jié)果本設(shè)計(jì)將重點(diǎn)運(yùn)用μC/OS—Ⅱ嵌入式實(shí)時(shí)操作系統(tǒng)作為軟件開(kāi)發(fā)平臺(tái),進(jìn)行應(yīng)用系統(tǒng)軟件的設(shè)計(jì)。1.μC/OS—Ⅱ的初始化和啟動(dòng)在調(diào)用μC/OS—Ⅱ的其他效勞之前,μC/OS—Ⅱ總要求用戶首先調(diào)用系統(tǒng)初始化函數(shù)OSInit(),完成對(duì)μC/OS—Ⅱ中一些變量和數(shù)據(jù)結(jié)構(gòu)的初始化。μC/OS—Ⅱ還初始化了4個(gè)空數(shù)據(jù)結(jié)構(gòu)緩沖區(qū)。每個(gè)緩沖區(qū)都是單向鏈表,允許μC/OS—Ⅱ從緩沖區(qū)迅速得到或釋放一個(gè)其中的元素。μC/OS—Ⅱ安排總的系統(tǒng)任務(wù)數(shù)OS_N_SYS_TASKS,控制塊OS-TCB的數(shù)目也就自動(dòng)確定了。當(dāng)然,包括組合結(jié)構(gòu)的任務(wù)控制塊分配給空閑任務(wù)和統(tǒng)計(jì)任務(wù)。多任務(wù)的啟動(dòng)是用戶通過(guò)調(diào)用OSStart()實(shí)現(xiàn)的。然而,啟動(dòng)μC/OS—Ⅱ前,用戶至少要建立一個(gè)應(yīng)用任務(wù)。當(dāng)調(diào)用OSStart()時(shí),OSStart()從任務(wù)就緒表中找出那個(gè)用戶建立的優(yōu)先級(jí)最高任務(wù)的任務(wù)控制塊。然后,OSStart()調(diào)用最高優(yōu)先級(jí)就緒任務(wù)啟動(dòng)函數(shù)OSStartHighRdy(),這個(gè)文件與選擇的微處理器有關(guān)。實(shí)質(zhì)上,函數(shù)OSStartHighRdy()是將任務(wù)棧中保存的值彈回到CPU存放器中,然后執(zhí)行一條中斷返回指令,中斷返回指令強(qiáng)制執(zhí)行該任務(wù)代碼。注意,OSStartHighRdy()將永遠(yuǎn)不會(huì)返回到OSStart()。2.任務(wù)管理在μC/OS—Ⅱ中,任務(wù)通常是一個(gè)無(wú)限的循環(huán),任務(wù)是絕對(duì)不會(huì)返回的。故返回參數(shù)必須定義成void。協(xié)μC/OS—Ⅱ可管理多達(dá)64個(gè)任務(wù),但μC/OS—Ⅱ保存了優(yōu)先級(jí)為0、1、2的任務(wù)。可供用戶使用的有多達(dá)56個(gè)應(yīng)用任務(wù)。必須給每個(gè)任務(wù)賦以不同的優(yōu)先級(jí),μC/OS—Ⅱ初始化時(shí),最低優(yōu)先級(jí)總是被賦給空閑任務(wù)。為了使μC/OS—Ⅱ能夠管理用戶任務(wù),用戶必須在建立一個(gè)任務(wù)的時(shí)候,將任務(wù)的起始地址與其他參數(shù)一起傳給OSTaskCreate()或OSTaskCreateExt()函數(shù)。每個(gè)任務(wù)的就緒標(biāo)志都放在就緒表(ready1ist)中,就緒表中有兩個(gè)變量OSRdyGrp和OSRdyTbl[]。在OSRdyGrp中,任務(wù)按優(yōu)先級(jí)分組,8個(gè)任務(wù)即為一組。OSRdyGrp中的每一位表示8組任務(wù)中每一組中是否有進(jìn)入就緒狀態(tài)的任務(wù),任務(wù)進(jìn)入就緒態(tài),就緒表OSRdyTbl[]中相應(yīng)元素的相應(yīng)位也置位。在μC/OS—Ⅱ中,確定該哪個(gè)任務(wù)運(yùn)行的工作是由調(diào)度器(scheduler)完成的。任務(wù)級(jí)的調(diào)度是由函數(shù)OSSched()完成的。任務(wù)切換很簡(jiǎn)單,將被掛起任務(wù)的微處理器存儲(chǔ)器推入堆棧,然后將較高優(yōu)先級(jí)的任務(wù)的存放器值從棧中恢復(fù)到存放器中。OSSched()的所有代碼都屬于臨界區(qū)代碼。在尋找進(jìn)入就緒態(tài)的最高優(yōu)先級(jí)的任務(wù)的過(guò)程中,為防止中斷效勞程序把一個(gè)或幾個(gè)任務(wù)的就緒位置位,中斷是被關(guān)掉的。3.常用的任務(wù)管理函數(shù)OSTaskDel()用于將任務(wù)返回并處于休眠態(tài),其代碼不再被μC/OS—Ⅱ調(diào)用,也就是刪除任務(wù)。刪除空閑任務(wù)和在中斷效勞子程序中(ISR)刪除一個(gè)任務(wù)是不允許的,但可以刪除統(tǒng)計(jì)任務(wù)??赏ㄟ^(guò)指定OS_PRIO--SELF參數(shù)來(lái)刪除自己。OSTaskChangePrio()用來(lái)改變建立任務(wù)的時(shí)候分配給任務(wù)的優(yōu)先級(jí)。用戶需要指定任務(wù)當(dāng)前的優(yōu)先級(jí)和新的優(yōu)先級(jí)。OSTasksuspend()用來(lái)掛起任務(wù)。如果被掛起的任務(wù)同時(shí)也在等待延時(shí)的期滿,那么掛起操作需要被取消,任務(wù)繼續(xù)等待延時(shí)期滿,并轉(zhuǎn)入就緒態(tài)。任務(wù)可掛起自己或其他任務(wù),但必須確保不是在掛起優(yōu)先級(jí)是無(wú)效的任務(wù)或空閑任務(wù)。OSTaskResume()用于恢復(fù)被掛起的任務(wù)。OSTaskResume()首先要確保被恢復(fù)的任務(wù)不是空閑任務(wù),這個(gè)測(cè)試也是在恢復(fù)優(yōu)先級(jí)為OS_RIO_SELF的任務(wù)。接著,檢查要恢復(fù)的任務(wù)是否存在,是否是被掛起的。OSTaskQuery()用來(lái)獲得自身或其他應(yīng)用任務(wù)的信息。OSTaskQuery()獲得的是對(duì)應(yīng)任務(wù)的OS_TCB中內(nèi)容的拷貝。4.時(shí)間管理μC/OS—Ⅱ一日的時(shí)鐘節(jié)拍μC/OS—Ⅱ需要用戶提供周期性信號(hào)源,用于實(shí)現(xiàn)延時(shí)和確認(rèn)超時(shí)。時(shí)鐘節(jié)拍的實(shí)際頻率取決于用戶應(yīng)用程序的精度。時(shí)鐘節(jié)拍源可以采用嵌入式處理器的硬件定時(shí)器。μC/OS—Ⅱ中的時(shí)鐘節(jié)拍效勞是通過(guò)在中斷子程序中調(diào)用OSTimeTick()實(shí)現(xiàn)的。時(shí)鐘節(jié)拍中斷效勞子程序的代碼必須用匯編語(yǔ)言編寫(xiě)。OSTimeTiekHook()開(kāi)始,這個(gè)外連函數(shù)可以將時(shí)鐘節(jié)拍函數(shù)OSTimeTiek()予以擴(kuò)展。OSTiIneTiok()中大量工作是給每個(gè)用戶任務(wù)控制塊OS_TCB中的時(shí)間延時(shí)項(xiàng)OSTCBDly減1(該項(xiàng)不為零時(shí))。OSTimeTiek()從OSTCBList開(kāi)始,沿著OS_TCB鏈表做,一直到空閑任務(wù)。當(dāng)某個(gè)任務(wù)的任務(wù)控制塊中的時(shí)間延時(shí)項(xiàng)OSTCBDly減到了零,這個(gè)任務(wù)就進(jìn)入就緒態(tài)。被任務(wù)掛起函數(shù)OSTasksuspend()掛起的任務(wù)那么不會(huì)進(jìn)入就緒態(tài)。OSTimeTiek()的執(zhí)行時(shí)間直接與應(yīng)用程序中建立的任務(wù)數(shù)成正比。5.郵箱郵箱是協(xié)μC/OS—Ⅱ中一種通信機(jī)制,它可使一個(gè)任務(wù)或者中斷效勞子程向另一個(gè)任務(wù)發(fā)送一個(gè)指針型變量。該指針指向一個(gè)包含了特定“消息〞的數(shù)據(jù)結(jié)構(gòu)。要在μC/OS—Ⅱ中使用郵箱,必須將OS_CFG.H文件中的常數(shù)BOX_EN置為1。使用郵箱前,必須先建立該郵箱,并指定指針初始值。OS_M如果郵箱用來(lái)通知一個(gè)事件的發(fā)生,就要初始化該郵箱為NULL;如果郵箱用來(lái)共享某些資源,就要初始化該郵箱為一個(gè)非NULL的指針。6.μC/OS—Ⅱ的中斷處理下面我們來(lái)了解一下在協(xié)μC/OS—Ⅱ中是如何處理中斷的。在用戶中斷效勞子程序中,用戶代碼應(yīng)該將全部CPU存放器推入當(dāng)前任務(wù)棧。μC/OS—Ⅱ需要知道用戶在做中斷效勞,故用戶應(yīng)該調(diào)用OSIntEnter(),或者將全局變量OSIntNesting直接加1,這兩種方法的選擇取決于用戶的微處理器。因?yàn)?,如果用戶使用的微處理器有存?chǔ)器直接加1指令,用將全局變量OSIntNesting直接加1的方法比調(diào)用OSIntEnter()快得多。但如果用戶使用的微處理器沒(méi)有這樣的指令,就必須先將OSIntNesting讀入存放器,再將存放器加l,然后再寫(xiě)回到變量OSIntNesting中去,這種情況下調(diào)用OSIntEnter()更簡(jiǎn)單。要留神的是,有些情況下,從OSIntEnter()返回時(shí),會(huì)把中斷開(kāi)了。這時(shí),在調(diào)用OS1ntEnter()前要先清中斷源,否那么,中斷會(huì)連續(xù)反復(fù)發(fā)生,程序就會(huì)崩潰。μC/OS—Ⅱ允許中斷嵌套,因?yàn)棣藽/OS—Ⅱ跟蹤嵌套層數(shù)OSIntNesting。然而,為了允許中斷嵌套,在多數(shù)情況下,用戶應(yīng)在開(kāi)中斷前先清中斷源。調(diào)用脫離中斷函數(shù)OS1ntExit()標(biāo)志中斷效勞子程序的終結(jié),OSIntExit()將中斷嵌套層數(shù)計(jì)數(shù)器減1。當(dāng)中斷嵌套層數(shù)計(jì)數(shù)器減到O時(shí),所有中斷就都完成了,此時(shí)μC/OS—Ⅱ要判斷有沒(méi)有優(yōu)先級(jí)較高的任務(wù)被中斷效勞子程序喚醒了。如果有,μC/OS—Ⅱ就返回到那個(gè)高優(yōu)先級(jí)的任務(wù),OSIntExit()返回到調(diào)用點(diǎn),此時(shí)OSIntExit()將占用較長(zhǎng)的運(yùn)行時(shí)間。保存的存放器的值是在這個(gè)時(shí)候恢復(fù)的,然后是執(zhí)行中斷返回指令。注意,如果調(diào)度被禁止了,μC/OS—Ⅱ?qū)⒈环祷氐奖恢袛嗔说娜蝿?wù)。用戶中斷效勞中做的要盡可能少,要把大局部工作留給任務(wù)做。如果需要做任務(wù)切換,OSIntExit()將調(diào)用OSIntctxsw()。九、設(shè)計(jì)中的問(wèn)題及解決方法本設(shè)計(jì)遇到的最大問(wèn)題在于對(duì)μC/OS—Ⅱ操作系統(tǒng)沒(méi)有掌握好。在零根底的情況下,完成課程設(shè)計(jì)是有一定難度的。經(jīng)過(guò)查找資料,對(duì)相關(guān)知識(shí)有了一定程度上的了解。本系統(tǒng)是以嵌入式實(shí)時(shí)操作系統(tǒng)在智能電梯控制系統(tǒng)中的應(yīng)用為背景的,以優(yōu)化系統(tǒng)結(jié)構(gòu)、合理分配任務(wù)和提高系統(tǒng)的可靠性為目的,引入了嵌入式的實(shí)時(shí)操作系統(tǒng)μC/OS—Ⅱ,實(shí)現(xiàn)了μC/OS—Ⅱ作為開(kāi)發(fā)平臺(tái)的智能電梯單梯控制系統(tǒng)的設(shè)計(jì)。本設(shè)計(jì)中電梯主控制器硬件上采用數(shù)字信號(hào)處理器DSP56F8025MFBE與可編程器件MAX7128S相結(jié)合的一種高性能的結(jié)構(gòu)。同時(shí)軟件上采用嵌入式實(shí)時(shí)操作系統(tǒng)抖μC/OS—Ⅱ?qū)崿F(xiàn)多任務(wù)管理、中斷管理、定時(shí)器管理和任務(wù)間的通信與同步,這種設(shè)計(jì)方案具有的特點(diǎn)如下:1.提高了系統(tǒng)的實(shí)時(shí)性和可靠性在嵌入式系統(tǒng)中使用RTOS的最主要的原因
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《習(xí)慣領(lǐng)域與決策》課件
- 游戲版權(quán)保護(hù)機(jī)制概述-洞察分析
- 油氣加工節(jié)能減排-洞察分析
- 推廣服務(wù)品牌建設(shè)-洞察分析
- 壓延設(shè)備智能化節(jié)能控制-洞察分析
- 虛擬化技術(shù)在物聯(lián)網(wǎng)的應(yīng)用探索-洞察分析
- 醫(yī)院科室調(diào)整申請(qǐng)書(shū)(6篇)
- 《有效解答顧客疑慮》課件
- 從細(xì)節(jié)出發(fā)如何通過(guò)標(biāo)準(zhǔn)化的操作提升實(shí)驗(yàn)效率
- 冰雪運(yùn)動(dòng)中的自我認(rèn)知與挑戰(zhàn)
- 2024至2030年中國(guó)SPA行業(yè)市場(chǎng)消費(fèi)調(diào)研及投融資戰(zhàn)略咨詢報(bào)告
- 成語(yǔ)故事《打草驚蛇》故事簡(jiǎn)介
- 北京水務(wù)投資集團(tuán)有限公司招聘筆試題庫(kù)2024
- GB 1002-2024家用和類似用途單相插頭插座型式、基本參數(shù)和尺寸
- 2024年國(guó)家開(kāi)放大學(xué)電大《文學(xué)概論》機(jī)考2套網(wǎng)絡(luò)課題庫(kù)及答案4-圖文
- 道路維修勞務(wù)合同協(xié)議書(shū)
- 暑假工雇傭協(xié)議模板
- 九年級(jí)化學(xué)下冊(cè) 9.1 溶液的形成教案2 (新版)新人教版
- 計(jì)算機(jī)設(shè)備出租行業(yè)發(fā)展趨勢(shì)及前景展望分析報(bào)告
- 體育賽事合作終止協(xié)議模板
- 地彈門(mén)施工合同施工合同協(xié)議
評(píng)論
0/150
提交評(píng)論