基于USB單片機(jī)的模擬電梯設(shè)計(jì)與實(shí)現(xiàn)
摘要:為了更好地認(rèn)識(shí)電梯、驗(yàn)證個(gè)人編制的電梯調(diào)度算法及控制程序,開發(fā)一套基于USB單片機(jī)(CY7C680013A)的模擬電梯平臺(tái),配合下位機(jī)軟件及上位機(jī)軟件,實(shí)現(xiàn)電梯的部分功能如:轎廂內(nèi)呼梯、轎廂外呼梯、電梯故障報(bào)警、電梯狀態(tài)信息顯示、電梯在線調(diào)試等。
本文引用地址:http://2s4d.com/article/201610/308071.htm電梯是近代物質(zhì)文明發(fā)展的產(chǎn)物,是科技進(jìn)步的結(jié)晶。作為一種垂直運(yùn)輸工具,電梯已經(jīng)融入到了人們?nèi)粘I町?dāng)中。截止到2010年底我國(guó)在運(yùn)行電梯近170萬臺(tái),從事與電梯有關(guān)工作人員近百萬。電梯是一套復(fù)雜的機(jī)電一體化產(chǎn)品,其涉及到機(jī)械工程技術(shù)、電力電子技術(shù)、嵌入式技術(shù)、網(wǎng)絡(luò)技術(shù)、軟件技術(shù)以及土建工程等多個(gè)學(xué)科領(lǐng)域。如此復(fù)雜的系統(tǒng)對(duì)于一個(gè)初學(xué)者來說具有很大的困難,因此有必要開發(fā)出一套簡(jiǎn)易仿真系統(tǒng)來激發(fā)學(xué)生的興趣,發(fā)揮其主觀能動(dòng)性,進(jìn)一步深化其對(duì)于電梯的認(rèn)識(shí)。本文通過搭建模擬電梯硬件平臺(tái),開發(fā)下位機(jī)軟件及上位機(jī)應(yīng)用程序來實(shí)現(xiàn)電梯的各種功能。
1 硬件電路設(shè)計(jì)
本系統(tǒng)采用CYPRESS公司的USB控制器CY7C680013A作為主控制器,該芯片是一款低功耗、高集成度符合USB 2.0規(guī)范的集成51核的微處理器芯片。通過步進(jìn)電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)和停止來代表電梯的上升、下降和暫停;用液晶顯示屏來顯示系統(tǒng)狀態(tài)信息,如當(dāng)前電梯樓層、系統(tǒng)時(shí)間、診斷信息、調(diào)試信息等;利用蜂鳴器來模擬電梯開關(guān)門的提示聲。系統(tǒng)結(jié)構(gòu)圖如圖1所示。
1.1 CY7C680013A的介紹
CYPRESS的EZ-USB FX2LP (CY7C680013A/14/15/16A)是一款低功耗,高集成度符合USB2.0規(guī)范的單片機(jī)。
FX2LP具有可以自定義功能的通用可編程接口(GPIF),其主要特點(diǎn)包括高集成度:集成USB 2.0收發(fā)器,增強(qiáng)型8051微處理器以及16KB的片上程序/數(shù)據(jù)存儲(chǔ)器;接口豐富:具有I2C/USART/GPIF等,其功能結(jié)構(gòu)圖如圖2所示。
1.2 供電及復(fù)位電路
為了滿足系統(tǒng)低功耗的要求,該51單片機(jī)采用3.3 V的供電電壓。由于系統(tǒng)無外接電源,故需對(duì)來自USB總線的5 V電壓進(jìn)行轉(zhuǎn)換。系統(tǒng)采用ANALOG DEVICES公司的ADP3309線性電壓轉(zhuǎn)換芯片進(jìn)行電壓變換,其接口電路如圖3所示。
本系統(tǒng)通過RC網(wǎng)絡(luò)直接連接到CY7C680013A的RESET引腳上進(jìn)行復(fù)位操作,如圖4所示。須保證復(fù)位時(shí)間常數(shù)>5 ms。根據(jù)RC濾波電路時(shí)間常數(shù)計(jì)算公式t=R*C,可得t=R*C=10 E3*1.0E-6=10.0E-3=10 ms>5 ms,滿足系統(tǒng)復(fù)位操作要求。
1.3 LCD接口電路
本系統(tǒng)LCD顯示采用了3.3 V供電的液晶模塊。串行接口使得對(duì)處理器的端口要求大大降低,犧牲的僅僅是少量的系統(tǒng)占用時(shí)間,但對(duì)要求不是很高的場(chǎng)合這種占用可以忽略不計(jì)。液晶的接口引腳包括了供電、I2C接口以及背光接口。如圖5示為液晶接口電路。
圖5中的符號(hào)CS、SCL、SDA、LED分別表示片選信號(hào)、時(shí)鐘信號(hào)、數(shù)據(jù)和背光開關(guān)。從圖中可以看出,液晶占用了很少的IO資源,緩解了單片機(jī)資源緊張的狀況。所有的控制時(shí)序均由軟件模擬產(chǎn)生。
1.4 步進(jìn)電機(jī)電路
步進(jìn)電機(jī)是一種能夠?qū)㈦娒}沖信號(hào)轉(zhuǎn)換成角位移或線位移的開環(huán)控制組件。在非超載的情況下,電機(jī)的轉(zhuǎn)速和停止的位置只取決于脈沖信號(hào)的頻率和脈沖個(gè)數(shù),而不受負(fù)載變化的影響,非常適合于微機(jī)的控制。當(dāng)步進(jìn)電機(jī)接收到一個(gè)脈沖信號(hào),它就旋轉(zhuǎn)一個(gè)固定的角度,此角度被稱為“步距角”,其旋轉(zhuǎn)方向與繞組的通電方向有關(guān)??刂泼}沖個(gè)數(shù)來決定電機(jī)的角位移量,以達(dá)到精確定位的目的;同時(shí)控制脈沖頻率來決定電機(jī)的速度,以達(dá)到調(diào)速的目的??刂破髋c步進(jìn)電機(jī)的接口使用了專用的電機(jī)驅(qū)動(dòng)器,因此連接簡(jiǎn)單,編程調(diào)試方便。
2 下位機(jī)軟件設(shè)計(jì)
系統(tǒng)下位機(jī)軟件的開發(fā)環(huán)境為Keil C51,為簡(jiǎn)化程序開發(fā),提高程序的易讀性和可移植性,采用C語言為開發(fā)語言,并采用結(jié)構(gòu)化編程進(jìn)行模塊化設(shè)計(jì)。本系統(tǒng)將整個(gè)軟件劃分為六個(gè)模塊,其中包括:系統(tǒng)初始化模塊、硬件驅(qū)動(dòng)模塊、USB數(shù)據(jù)傳輸模塊、用戶自定義命令解析模塊、系統(tǒng)監(jiān)控模塊以及電梯調(diào)度算法模塊。
系統(tǒng)初始化模塊的作用是初始化系統(tǒng)的內(nèi)部資源和外部資源,內(nèi)部資源包括時(shí)鐘頻率的設(shè)定、I2C總線的設(shè)定、GPIF功能定義等,外部資源主要包括LCD模塊的配置、步進(jìn)電機(jī)驅(qū)動(dòng)器的配置等。通過系統(tǒng)初始化模塊的功能定義,保證系統(tǒng)運(yùn)行在設(shè)定狀態(tài)。
硬件驅(qū)動(dòng)模塊屬于驅(qū)動(dòng)程序的范疇,本固件依據(jù)芯片廠商提供范例編寫,在大大簡(jiǎn)化了編程難度的同時(shí)提高了程序的可讀性和移植性。
USB數(shù)據(jù)傳輸模塊屬于程序的通信范疇,除了對(duì)于USB模塊的功能配置外,該模塊還包含USB數(shù)據(jù)幀傳輸?shù)亩x、USB命令的解析及實(shí)現(xiàn)、USB傳輸異常的處理及數(shù)據(jù)重發(fā)機(jī)制的實(shí)現(xiàn)等。
用戶自定義命令解析模塊的主要功能是解析來自于上位機(jī)的命令,如“電梯上升到某層”、“電梯下降到某層”、“電梯停止運(yùn)行”等。該模塊輪詢上位機(jī)用戶命令,并且查詢?cè)O(shè)備狀態(tài)及用戶命令優(yōu)先級(jí),在滿足該命令執(zhí)行的條件后執(zhí)行該命令,并將運(yùn)行狀態(tài)及結(jié)果反饋給上位機(jī),或者將錯(cuò)誤信息反饋給上位機(jī)。
系統(tǒng)監(jiān)控模塊屬于系統(tǒng)資源管理模塊的范疇,包括看門狗的復(fù)位,定時(shí)器的復(fù)位,模擬電梯系統(tǒng)運(yùn)行狀態(tài)的更新等。
電梯調(diào)度算法是本系統(tǒng)的核心。由于核心目的是實(shí)現(xiàn)電梯的調(diào)度,該算法只考慮電梯主體功能,忽略超重檢測(cè)、防夾檢測(cè)、用戶權(quán)限識(shí)別等功能,但是在固件中預(yù)留該功能的調(diào)用,以便日后完善。調(diào)度算法兼顧公平性和電梯的運(yùn)行效率,要求電梯遵循時(shí)間優(yōu)先、順向優(yōu)先和最遠(yuǎn)反向截梯控制原則。
3 上位機(jī)應(yīng)用軟件設(shè)計(jì)
上位機(jī)采用VS2010為開發(fā)工具,C++為開發(fā)語言,采用了面向?qū)ο蟮木幊谭绞竭M(jìn)行編程。為了進(jìn)一步簡(jiǎn)化編程和提高編程效率,沒有采用直接調(diào)用Windows API的模式進(jìn)行代碼調(diào)用而是采用了MFC(Microsoft Foundation Classes)庫(kù)進(jìn)行編程。MFC是一個(gè)微軟公司提供的類庫(kù),以C++類的形式封裝了Windows API,并且包含一個(gè)應(yīng)用程序框架,以減少應(yīng)用程序開發(fā)人員的工作量。其中包含的類包含大量Windows句柄封裝類和很多Windows的內(nèi)建控件和組件的封裝類。MFC的主要優(yōu)點(diǎn)是可以用面向?qū)ο蟮姆椒▉碚{(diào)用Windows API,以及應(yīng)用程序開發(fā)的便捷。
上位機(jī)模塊的主要功能是模擬真實(shí)電梯轎廂內(nèi)、外的按鍵,用戶點(diǎn)擊相應(yīng)樓層按鈕后,下位機(jī)解析用戶命令并通過電梯的正、反轉(zhuǎn)轉(zhuǎn)動(dòng)及液晶顯示屏等來顯示用戶命令執(zhí)行情況,同時(shí)將狀態(tài)及結(jié)果等反饋到上位機(jī)中。上位機(jī)的軟件運(yùn)行界面如圖6所示。
4 結(jié)論
本文設(shè)計(jì)了一種實(shí)用的電梯模擬系統(tǒng),該系統(tǒng)采用CY7C680013A作為主控制器,外擴(kuò)液晶顯示模塊、步進(jìn)電機(jī)和蜂鳴器,可以模擬電梯的各種狀態(tài),下位機(jī)軟件實(shí)現(xiàn)了電梯硬件資源的控制及調(diào)度。上位機(jī)采用VC2010開發(fā),顯示電梯樓層按鍵、電梯運(yùn)行狀態(tài)、系統(tǒng)診斷信息等。本系統(tǒng)可以實(shí)現(xiàn)大部分電梯的功能,便于初學(xué)者掌握電梯的相關(guān)知識(shí),通過學(xué)生的動(dòng)手實(shí)踐,提高其軟件編制能力和故障診斷能力,為其將來的發(fā)展打堅(jiān)實(shí)基礎(chǔ)。
評(píng)論