摘要:本文首先簡要介紹飛思卡爾MK10N512微控制器以及MQX操作系統(tǒng),然后詳細(xì)介紹基于它們的電梯主控系統(tǒng)硬件和軟件設(shè)計(jì)。硬件系統(tǒng)設(shè)計(jì)重點(diǎn)介紹微控制器通信外設(shè)接口與總線接口的設(shè)計(jì)。軟件系統(tǒng)設(shè)計(jì)從開發(fā)環(huán)境、軟件架構(gòu)、系統(tǒng)初始化、任務(wù)設(shè)計(jì)、通信設(shè)計(jì)、電梯控制運(yùn)行等方面來詳細(xì)論述。本文網(wǎng)絡(luò)版地址:http://www.eepw.com.cn/ article/248893.htm
關(guān)鍵詞:電梯主控系統(tǒng);飛思卡爾;MK10N512;MQX操作系統(tǒng)
DOI: 10.3969/j.issn.1005-5517.2014.6.008
前言
隨著社會(huì)的快速發(fā)展,人們對(duì)電梯的需求從最初的提供大樓上上下下的運(yùn)輸服務(wù),到現(xiàn)在的安全、舒適、可靠的乘坐體驗(yàn)。這對(duì)電梯控制的要求越來越高,以前的繼電器控制技術(shù)已經(jīng)不能滿足現(xiàn)在的需求。帶微處理器、微控制器的嵌入式控制系統(tǒng)已取代繼電器控制系統(tǒng),成為當(dāng)今電梯主流控制系統(tǒng)。
1 主控芯片介紹
MK10N512是飛思卡爾公司提供的超低功耗、高數(shù)據(jù)安全性、高性能的ARM Cortex-M4微控制器系列芯片。ARM Cortex-M4內(nèi)核的SVCall和PendSV中斷非常適用于實(shí)時(shí)操作系統(tǒng)的任務(wù)切換,內(nèi)置的系統(tǒng)時(shí)鐘節(jié)拍模塊能夠?yàn)閷?shí)時(shí)操作系統(tǒng)提供系統(tǒng)時(shí)鐘。
MK10N512芯片具有1.71~3.6V寬工作電壓,閃存編程電壓低至 1.71 V;其最高工作頻率為100MHz,在此頻率下的處理性能達(dá)到125DMIPS,性能滿足電梯控制要求。MK10N512內(nèi)置512kB Flash ROM、128kB RM內(nèi)部高速存儲(chǔ)器,更配置多功能外部總線接口FlexBus,方便擴(kuò)展外部存儲(chǔ)器以及I/O。其通訊模塊包括2路CAN、5路UART、3路SPI通信模塊,滿足系統(tǒng)與外部通信及擴(kuò)展需求。內(nèi)置的實(shí)時(shí)時(shí)鐘模塊RTC,實(shí)現(xiàn)電梯主控系統(tǒng)記錄故障發(fā)生時(shí)間,方便現(xiàn)場工程人員跟蹤、解決故障。MK10N512的-40~105℃寬溫度特性更是符合電梯控柜較為惡劣的使用環(huán)境。
總體來說,MK10N512是一款符合電梯控制系統(tǒng)要求的、高性能、低成本、可靠性高的微控制器。
2 MQX操作系統(tǒng)介紹
MQX是飛思卡爾半導(dǎo)體公司推出的應(yīng)用于工業(yè)控制、汽車電子及消費(fèi)電子的嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)。MQX采用微內(nèi)核結(jié)構(gòu),具有標(biāo)準(zhǔn)的API接口、模塊化架構(gòu),支持DOS文件系統(tǒng)、TCP/IP協(xié)議棧和USB協(xié)議棧等,在實(shí)時(shí)性、裁減性和移植性上都具有較理想的性能。
MQX為免費(fèi)、開源操作系統(tǒng),對(duì)飛思卡爾微控制器提供大量BSP、PSP包、范例應(yīng)用支持,使用飛思卡爾微控制器的用戶可免費(fèi)使用MQX操作系統(tǒng),特別適合于基于飛思卡爾微控制器的實(shí)時(shí)嵌入式系統(tǒng)的開發(fā)。
MQX包含嵌入式操作系統(tǒng)的基本功能和自有功能,如任務(wù)管理、中斷管理、內(nèi)存管理、時(shí)間管理和日志管理等。MQX以組件(component)的形式來實(shí)現(xiàn)其功能,MQX組件可以分為核心組件和可選組件,如圖1[1]所示。
圖1中心部分為核心組件,周圍環(huán)繞部分為可選組件。核心組件包括初始化組件(Initialization)、RR(Round Robin輪詢)FIFO(先進(jìn)先出)調(diào)度組件(Scheduling)、輕量級(jí)信號(hào)量(lightweight semaphores)、核心內(nèi)存服務(wù)(C o r e m e m o r y services)等組件。可選組件包括任務(wù)管理(Task management)、格式化I/O(Formatted I/O)、中斷管理(interrupts)等。
3 電梯控制系統(tǒng)組成
電梯控制系統(tǒng)由主控系統(tǒng)、召喚通信驅(qū)動(dòng)系統(tǒng)、電機(jī)拖動(dòng)系統(tǒng)以及門控系統(tǒng)組成,如圖2所示。主控系統(tǒng)是電梯控制系統(tǒng)的核心,負(fù)責(zé)處理召喚,傳輸指令給電機(jī)拖動(dòng)系統(tǒng)和門控系統(tǒng),控制電梯運(yùn)行和開關(guān)門,檢測電梯故障等。召喚通信驅(qū)動(dòng)系統(tǒng)負(fù)責(zé)把位于層站以及轎廂的召喚按鈕信號(hào)傳輸給主控系統(tǒng)。電機(jī)拖動(dòng)系統(tǒng)負(fù)責(zé)接收主控系統(tǒng)的運(yùn)行指令,利用變頻技術(shù)驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn)。門控系統(tǒng)則負(fù)責(zé)接收主控系統(tǒng)的開關(guān)門指令,控制電梯自動(dòng)開關(guān)門。電機(jī)拖動(dòng)系統(tǒng)和門控系統(tǒng)同時(shí)也會(huì)把自身的運(yùn)行狀態(tài)信息反饋給主控系統(tǒng)。下面詳細(xì)介紹主控系統(tǒng)軟硬件設(shè)計(jì)。
4 主控系統(tǒng)硬件設(shè)計(jì)
電梯主控系統(tǒng)的硬件結(jié)構(gòu)圖如圖 3所示。CAN通信模塊采用TJA1040T芯片,主要與電梯的層站召喚通信電子板、轎廂操縱箱召喚通信電子板通信,通信波特率為100kbps。RS485通信模塊采用MAX485EESA+芯片,提供電梯與智能大樓管理系統(tǒng)的通信,通信波特率最高可達(dá)57.6kpbs。RS232通信模塊采用SP232ACN-L/TR芯片,用于電梯主控系統(tǒng)的調(diào)試。MK10N512微控制器通過FlexBus與外部存儲(chǔ)器連接,以擴(kuò)展系統(tǒng)所需靜態(tài)SRM和掉電保持FeRM。靜態(tài)SRM采用Cypress公司CY7C1049DV33 SRAM,其容量達(dá)512kB,8位數(shù)據(jù)總線;掉電保持采用Ramtron的鐵電FeRAM FM28V020芯片,其容量達(dá)32kB,8位數(shù)據(jù)總線。
MK10N512微控制器采用多功能外部總線接口FlexBus與外部芯片CY7C1049DV33和FM28V020相連接,如圖4所示。
FlexBus接口具有5個(gè)用戶可編程片選信號(hào)(FB_CS[5:0]),F(xiàn)B_ CS[5:0]片選信號(hào)通過片選基址寄存器FB_CSARn和片選掩碼寄存器FB_CSMRn來控制。基址寄存器FB_CSARn[31:16]設(shè)置訪問地址的高16位,片選掩碼寄存器FB_CSMRn[31:16]用于屏蔽訪問地址的低16位。基址寄存器FB_CSARn設(shè)置訪問外設(shè)最大空間為216=64kbyte,配合掩碼寄存器設(shè)置訪問外設(shè)最大空間為232=4GByte。本設(shè)計(jì)中SRAM容量為512kbyte,位于CS0區(qū)域,故需要配合掩碼寄存器一并設(shè)置,如FB_CSAR0[31:16] = 0x6000;FB_ CSMR0[31:16] = 0x0007,其區(qū)域容量為2(16+3)=512Kbyte。而FeRAM容量為32kbyte,位于C S 1區(qū)域,只需設(shè)置基址寄存器即可,如FB_ CSAR0[31:16]= 0x6010。
FlexBus接口可以連接8位、16位、32位數(shù)據(jù)總線,支持字節(jié)、字和長字操作數(shù)傳輸。FlexBus接口還支持Bur st傳輸,實(shí)現(xiàn)一個(gè)周期最多可以傳輸16 Byte。本設(shè)計(jì)采用8位數(shù)據(jù)總線,為了提高效率,采用Burst傳輸,實(shí)現(xiàn)一個(gè)周期傳輸4By te。M K 1 0 N 5 1 2的FB_AD31-24管腳連接存儲(chǔ)器的數(shù)據(jù)線D 7 - D 0管腳,故數(shù)據(jù)傳輸采用左對(duì)齊的方式,控制寄存器FB_CSCR0設(shè)置如下:FB_CSCR0[BLS]=0b,F(xiàn) B _ C S C R 0 [ P S ] = 0 1 b,F(xiàn) B _ B S T R 0 [ P S ] = 1 b,F(xiàn) B _ CSCR0[BSTW]=1b。
5 主控系統(tǒng)軟件設(shè)計(jì)
5.1 開發(fā)環(huán)境
Code Warrior Developer Studio 10.2
開發(fā)環(huán)境是飛思卡爾專門針對(duì)其微控制器的集成開發(fā)環(huán)境。它是基于eclipse框架的集成開發(fā)環(huán)境,包括項(xiàng)目管理器、文本編輯器、匯編器、C/C++編譯器、連接器和調(diào)試器。通過安裝插件的方式,可以添加MQX實(shí)時(shí)操作系統(tǒng)調(diào)試工具。MQX調(diào)試工具能實(shí)現(xiàn)監(jiān)控系統(tǒng)內(nèi)核數(shù)據(jù)、任務(wù)的運(yùn)行情況和占用內(nèi)存、信號(hào)量(Semaphores)和事件(Event)等的使用情況,非常便于基于MQX操作系統(tǒng)的程序調(diào)試。相比其他集成開發(fā)環(huán)境,Code Warrior Developer Studio 10.2對(duì)飛思卡爾公司開發(fā)的微控制器和MQX實(shí)時(shí)操作系統(tǒng),能提供最新、最快、最好的支持。
5.2 軟件架構(gòu)
軟件架構(gòu)如圖5所示,采用分層結(jié)構(gòu),包括PSP(Processor Service Package)、BSP(Board Service Package)、MQX內(nèi)核、定時(shí)控制程序、中斷控制程序、電梯控制任務(wù)和通信數(shù)據(jù)處理任務(wù)。PSP和BSP是硬件驅(qū)動(dòng)層,負(fù)責(zé)初始化CPU、板上外設(shè)、總線接口、通信接口、以及提供訪問硬件的接口。MQX內(nèi)核是操作系統(tǒng)層,提供任務(wù)管理、內(nèi)存管理、任務(wù)間的通信與同步、中斷管理、時(shí)間管理等系統(tǒng)級(jí)服務(wù)及接口函數(shù)。定時(shí)控制程序及中斷控制程序?yàn)橄到y(tǒng)中間層,為電梯任務(wù)與操作系統(tǒng)的中間控制層,是根據(jù)電梯任務(wù)的特點(diǎn),調(diào)用操作系統(tǒng)的任務(wù)接口API實(shí)現(xiàn)對(duì)電梯任務(wù)的調(diào)度處理。電梯控制任務(wù)和通信數(shù)據(jù)處理任務(wù)為用戶層。電梯控制任務(wù)負(fù)責(zé)根據(jù)召喚信息控制電梯的運(yùn)行。通信數(shù)據(jù)處理任務(wù)負(fù)責(zé)處理電梯主制系統(tǒng)與調(diào)試工具、召喚系統(tǒng)、大樓智能控制系統(tǒng)的數(shù)據(jù)通信,并把通信數(shù)據(jù)傳輸給電梯控制任務(wù)。
5.3 系統(tǒng)初始化
系統(tǒng)上電后,首先對(duì)硬件進(jìn)行初始化,即對(duì)MCU的內(nèi)部寄存器和外設(shè)寄存器賦初始值,包括初始化棧指針寄存器SP的值。接著對(duì)程序定義的變量進(jìn)行初始化,包括對(duì)不帶初始值的變量進(jìn)行清零;對(duì)有初始值的變量,把其初始值從ROM賦值到RAM;對(duì)程序定義的對(duì)象進(jìn)行初始化。完成上述初始化之后,就可以對(duì)實(shí)時(shí)操作系統(tǒng)MQX進(jìn)行初始化,創(chuàng)建MQX系統(tǒng)內(nèi)存空間,初始化最基本的組件,創(chuàng)建IDLE空閑任務(wù)和Main_task自動(dòng)運(yùn)行任務(wù),并且進(jìn)入Main_task自動(dòng)運(yùn)行任務(wù)。至此MQX系統(tǒng)初始化就基本完成,接著可以開始用戶任務(wù)程序初始化。Main_task任務(wù)初始化定時(shí)控制程序、中斷控制程序、電梯控制任務(wù)和通信數(shù)據(jù)處理任務(wù)。Main_task任務(wù)完成用戶任務(wù)初始化后,把任務(wù)運(yùn)行的控制權(quán)交給定時(shí)控制程序和中斷控制程序,系統(tǒng)開始運(yùn)行電梯控制任務(wù)和通信數(shù)據(jù)處理任務(wù)。系統(tǒng)初始化流程如圖6所示。
5.4 任務(wù)設(shè)計(jì)
由圖5可知,用戶任務(wù)包括通信數(shù)據(jù)處理任務(wù)和電梯控制任務(wù)。任務(wù)按優(yōu)先級(jí)順序運(yùn)行,高優(yōu)先級(jí)任務(wù)能夠搶占低優(yōu)先級(jí)任務(wù)。
通信數(shù)據(jù)處理任務(wù)的特點(diǎn)是代碼量小,實(shí)時(shí)性要求高。通信數(shù)據(jù)處理任務(wù)的優(yōu)先級(jí)設(shè)置高于電梯控制任務(wù),由中斷控制程序調(diào)用MQX任務(wù)調(diào)度API函數(shù)實(shí)現(xiàn)對(duì)其運(yùn)行控制。
電梯控制任務(wù)為電梯控制應(yīng)用程序的主要構(gòu)成部分,特點(diǎn)是代碼量大、占用大量的內(nèi)存和CPU資源。為了使各部分程序能按要求實(shí)時(shí)運(yùn)行,把電梯控制任務(wù)劃分為不同周期運(yùn)行的任務(wù)(詳見5.6 電梯運(yùn)行控制設(shè)計(jì))。實(shí)時(shí)性要求較高的電梯運(yùn)行控制處理,則運(yùn)行周期短,如設(shè)定20ms的運(yùn)行周期。而實(shí)時(shí)性要求較低的電梯運(yùn)行狀態(tài)信息處理,則運(yùn)行周期長,如設(shè)定200ms的運(yùn)行周期。周期任務(wù)的運(yùn)行調(diào)度由定時(shí)控制程序調(diào)用MQX任務(wù)調(diào)度API函數(shù)來實(shí)現(xiàn)。為了保證周期任務(wù)運(yùn)行的實(shí)時(shí)性,定時(shí)控制程序監(jiān)控周期任務(wù)的運(yùn)行時(shí)間,當(dāng)其運(yùn)行時(shí)間超過預(yù)先設(shè)定的超時(shí)時(shí)間,則說明CPU的負(fù)荷率過高,定時(shí)控制程序報(bào)出故障信息。
5.5 召喚通信設(shè)計(jì)
召喚通信包括轎廂召喚通信和層站召喚通信,分別使用獨(dú)立的CAN端口通信來實(shí)現(xiàn),如圖7所示。轎廂召喚通信網(wǎng)絡(luò)包括主門操縱箱、主門殘疾人操縱箱、副門操縱箱和副門殘疾人操縱箱等節(jié)點(diǎn)。層站召喚通信網(wǎng)絡(luò)包括32層站召喚節(jié)點(diǎn)。
通信采用主從式通信方式,主控系統(tǒng)為主機(jī),轎廂召喚和層站召喚為從機(jī)。主機(jī)輪詢每個(gè)通信通道的所有從機(jī)。通信數(shù)據(jù)包分為共通數(shù)據(jù)和終端數(shù)據(jù)。共通數(shù)據(jù)為廣播數(shù)據(jù),網(wǎng)絡(luò)每個(gè)通信終端都接收、處理此數(shù)據(jù)包。共通數(shù)據(jù)的內(nèi)容主要是電梯運(yùn)行方向、所在層樓數(shù)顯數(shù)據(jù),用于操縱箱和召喚箱顯示電梯運(yùn)行信息。通信終端只接收共通數(shù)據(jù),而無需做出響應(yīng)。在每個(gè)通信周期,主控系統(tǒng)發(fā)送完共通數(shù)據(jù)后,開始發(fā)送終端數(shù)據(jù)輪詢每個(gè)終端。終端數(shù)據(jù)包括ID號(hào)信息。各終端偵聽通信網(wǎng)絡(luò)的數(shù)據(jù),當(dāng)ID號(hào)信息與本終端一致,則接收、處理并做出響應(yīng)。轎廂通信網(wǎng)絡(luò)通信時(shí)序圖如圖8所示,層站通信網(wǎng)絡(luò)通信時(shí)序圖如圖9所示。
5.6 電梯運(yùn)行控制設(shè)計(jì)
電梯運(yùn)行控制任務(wù)包括信號(hào)輸入/輸出處理、電梯運(yùn)行模式處理、召喚處理、門開關(guān)處理、電梯運(yùn)行控制處理、電梯運(yùn)行狀態(tài)信息處理和故障處理等。信號(hào)輸入/輸出處理負(fù)責(zé)處理電氣系統(tǒng)的各種操作、檢測開關(guān)信號(hào)輸入、召喚信號(hào)輸入,以及各種電氣裝置的驅(qū)動(dòng)輸出信號(hào)。電梯運(yùn)行模式是根據(jù)操作開關(guān)輸入來決定電梯的運(yùn)行模式,如高速正常運(yùn)行模式、低速維保運(yùn)行模式、消防員運(yùn)行模式等。不同模式下,電梯的運(yùn)行速度、開關(guān)門方式、召喚處理都不一樣。召喚處理負(fù)責(zé)處理經(jīng)過通信網(wǎng)絡(luò)、信號(hào)輸入處理進(jìn)來的轎廂和層樓召喚信號(hào)。召喚處理根據(jù)用戶服務(wù)層需求、IC卡等自動(dòng)召喚需求、群控多臺(tái)電梯群組對(duì)層站召喚的分配響應(yīng)來處理電梯召喚。門開關(guān)處理負(fù)責(zé)根據(jù)電梯的運(yùn)行狀態(tài)、開關(guān)門操作信號(hào)以及門安全觸板、光幕等檢測信號(hào)來決定電梯開關(guān)門,并通過輸入/輸出處理模塊把開關(guān)門指令發(fā)送給門控系統(tǒng)。電梯運(yùn)行控制處理則是根據(jù)召喚信號(hào),控制電梯的起動(dòng)、加速、運(yùn)行、減速、停車等一系列運(yùn)行動(dòng)作。電梯運(yùn)行狀態(tài)信息處理負(fù)責(zé)處理電梯層樓顯示、運(yùn)行狀態(tài)顯示、乘梯語音提示、報(bào)站鐘、報(bào)站燈等內(nèi)容,處理后的信息由信息輸入/輸出處理模塊輸出給各終端。故障處理負(fù)責(zé)監(jiān)視電梯各部件的動(dòng)作情況,如有異常,根據(jù)故障的等級(jí)控制電梯的下一步運(yùn)行動(dòng)作,如立即停車、或者到達(dá)最近樓層后開門,然后停止服務(wù);故障處理同時(shí)記錄故障發(fā)生的時(shí)間、電梯的運(yùn)行狀態(tài)信息、各輸入輸出口狀態(tài),方便維保人員快速處理故障,恢復(fù)電梯運(yùn)行。
6 結(jié)束語
隨著社會(huì)進(jìn)步、信息技術(shù)的快速發(fā)展,需要電梯主控系統(tǒng)向智能化、網(wǎng)絡(luò)化方向發(fā)展。電梯需要具有智能調(diào)整、智能預(yù)診斷功能,能夠根據(jù)用戶的需求、季節(jié)的變化來自動(dòng)調(diào)整自身參數(shù),提供更個(gè)性化的服務(wù)。主控系統(tǒng)在故障未發(fā)生前,診斷出電梯某些部件已經(jīng)問題,及時(shí)通知維保人員維修或者更換,避免電梯發(fā)生故障而困人或者停止服務(wù)。電梯需要實(shí)現(xiàn)網(wǎng)絡(luò)化,成為物聯(lián)網(wǎng)的組成部分。電梯監(jiān)督、制造廠商、保養(yǎng)單位可以通過電腦和手機(jī)等終端監(jiān)控、查詢電梯的運(yùn)行情況,減少不必要的現(xiàn)場檢查,提高運(yùn)維效率。本文所述電梯主控制系統(tǒng),可以通過加裝傳感器、檢測開關(guān)來實(shí)現(xiàn)智能調(diào)整和智能預(yù)診斷功能,可以通過預(yù)留的RS485接口與無線通信模塊連接,實(shí)現(xiàn)電梯網(wǎng)絡(luò)化。
參考文獻(xiàn):
[1]飛思卡爾半導(dǎo)體公司.Freescale MQX Real-Time Operating System User’s Guide[EB/OL].4th ed.2011.12
[2]飛思卡爾半導(dǎo)體公司.Freescale MQX I/O Drivers Users Guide[EB/OL].10th ed.2011.12
[3]飛思卡爾半導(dǎo)體公司.Freescale MQX RTOS Reference Manual[EB/OL].7th ed.2011.12
[4]飛思卡爾半導(dǎo)體公司.K10 Sub-Family Data Sheet[EB/ OL].4th ed.2011.3
[5]飛思卡爾半導(dǎo)體公司.K10 Sub-Family Reference Manual[EB/OL].5th ed.2011.5
[6]毛宗源,彭汝華,尤裕祥,等.微機(jī)控制電梯[M].北京:國防工業(yè)出版社,1996
[7]葉安麗.電梯控制技術(shù)[M].北京:機(jī)械工業(yè)出版社, 2007.7