基于USB單片機的模擬電梯設計與實現
摘要:為了更好地認識電梯、驗證個人編制的電梯調度算法及控制程序,開發一套基于USB單片機(CY7C680013A)的模擬電梯平臺,配合下位機軟件及上位機軟件,實現電梯的部分功能如:轎廂內呼梯、轎廂外呼梯、電梯故障報警、電梯狀態信息顯示、電梯在線調試等。
本文引用地址:http://www.j9360.com/article/201610/308071.htm電梯是近代物質文明發展的產物,是科技進步的結晶。作為一種垂直運輸工具,電梯已經融入到了人們日常生活當中。截止到2010年底我國在運行電梯近170萬臺,從事與電梯有關工作人員近百萬。電梯是一套復雜的機電一體化產品,其涉及到機械工程技術、電力電子技術、嵌入式技術、網絡技術、軟件技術以及土建工程等多個學科領域。如此復雜的系統對于一個初學者來說具有很大的困難,因此有必要開發出一套簡易仿真系統來激發學生的興趣,發揮其主觀能動性,進一步深化其對于電梯的認識。本文通過搭建模擬電梯硬件平臺,開發下位機軟件及上位機應用程序來實現電梯的各種功能。
1 硬件電路設計
本系統采用CYPRESS公司的USB控制器CY7C680013A作為主控制器,該芯片是一款低功耗、高集成度符合USB 2.0規范的集成51核的微處理器芯片。通過步進電機的正轉、反轉和停止來代表電梯的上升、下降和暫停;用液晶顯示屏來顯示系統狀態信息,如當前電梯樓層、系統時間、診斷信息、調試信息等;利用蜂鳴器來模擬電梯開關門的提示聲。系統結構圖如圖1所示。

1.1 CY7C680013A的介紹
CYPRESS的EZ-USB FX2LP (CY7C680013A/14/15/16A)是一款低功耗,高集成度符合USB2.0規范的單片機。
FX2LP具有可以自定義功能的通用可編程接口(GPIF),其主要特點包括高集成度:集成USB 2.0收發器,增強型8051微處理器以及16KB的片上程序/數據存儲器;接口豐富:具有I2C/USART/GPIF等,其功能結構圖如圖2所示。

1.2 供電及復位電路
為了滿足系統低功耗的要求,該51單片機采用3.3 V的供電電壓。由于系統無外接電源,故需對來自USB總線的5 V電壓進行轉換。系統采用ANALOG DEVICES公司的ADP3309線性電壓轉換芯片進行電壓變換,其接口電路如圖3所示。

本系統通過RC網絡直接連接到CY7C680013A的RESET引腳上進行復位操作,如圖4所示。須保證復位時間常數>5 ms。根據RC濾波電路時間常數計算公式t=R*C,可得t=R*C=10 E3*1.0E-6=10.0E-3=10 ms>5 ms,滿足系統復位操作要求。

1.3 LCD接口電路
本系統LCD顯示采用了3.3 V供電的液晶模塊。串行接口使得對處理器的端口要求大大降低,犧牲的僅僅是少量的系統占用時間,但對要求不是很高的場合這種占用可以忽略不計。液晶的接口引腳包括了供電、I2C接口以及背光接口。如圖5示為液晶接口電路。

圖5中的符號CS、SCL、SDA、LED分別表示片選信號、時鐘信號、數據和背光開關。從圖中可以看出,液晶占用了很少的IO資源,緩解了單片機資源緊張的狀況。所有的控制時序均由軟件模擬產生。
1.4 步進電機電路
步進電機是一種能夠將電脈沖信號轉換成角位移或線位移的開環控制組件。在非超載的情況下,電機的轉速和停止的位置只取決于脈沖信號的頻率和脈沖個數,而不受負載變化的影響,非常適合于微機的控制。當步進電機接收到一個脈沖信號,它就旋轉一個固定的角度,此角度被稱為“步距角”,其旋轉方向與繞組的通電方向有關??刂泼}沖個數來決定電機的角位移量,以達到精確定位的目的;同時控制脈沖頻率來決定電機的速度,以達到調速的目的。控制器與步進電機的接口使用了專用的電機驅動器,因此連接簡單,編程調試方便。
2 下位機軟件設計
系統下位機軟件的開發環境為Keil C51,為簡化程序開發,提高程序的易讀性和可移植性,采用C語言為開發語言,并采用結構化編程進行模塊化設計。本系統將整個軟件劃分為六個模塊,其中包括:系統初始化模塊、硬件驅動模塊、USB數據傳輸模塊、用戶自定義命令解析模塊、系統監控模塊以及電梯調度算法模塊。
系統初始化模塊的作用是初始化系統的內部資源和外部資源,內部資源包括時鐘頻率的設定、I2C總線的設定、GPIF功能定義等,外部資源主要包括LCD模塊的配置、步進電機驅動器的配置等。通過系統初始化模塊的功能定義,保證系統運行在設定狀態。
硬件驅動模塊屬于驅動程序的范疇,本固件依據芯片廠商提供范例編寫,在大大簡化了編程難度的同時提高了程序的可讀性和移植性。
USB數據傳輸模塊屬于程序的通信范疇,除了對于USB模塊的功能配置外,該模塊還包含USB數據幀傳輸的定義、USB命令的解析及實現、USB傳輸異常的處理及數據重發機制的實現等。
用戶自定義命令解析模塊的主要功能是解析來自于上位機的命令,如“電梯上升到某層”、“電梯下降到某層”、“電梯停止運行”等。該模塊輪詢上位機用戶命令,并且查詢設備狀態及用戶命令優先級,在滿足該命令執行的條件后執行該命令,并將運行狀態及結果反饋給上位機,或者將錯誤信息反饋給上位機。
系統監控模塊屬于系統資源管理模塊的范疇,包括看門狗的復位,定時器的復位,模擬電梯系統運行狀態的更新等。
電梯調度算法是本系統的核心。由于核心目的是實現電梯的調度,該算法只考慮電梯主體功能,忽略超重檢測、防夾檢測、用戶權限識別等功能,但是在固件中預留該功能的調用,以便日后完善。調度算法兼顧公平性和電梯的運行效率,要求電梯遵循時間優先、順向優先和最遠反向截梯控制原則。
3 上位機應用軟件設計
上位機采用VS2010為開發工具,C++為開發語言,采用了面向對象的編程方式進行編程。為了進一步簡化編程和提高編程效率,沒有采用直接調用Windows API的模式進行代碼調用而是采用了MFC(Microsoft Foundation Classes)庫進行編程。MFC是一個微軟公司提供的類庫,以C++類的形式封裝了Windows API,并且包含一個應用程序框架,以減少應用程序開發人員的工作量。其中包含的類包含大量Windows句柄封裝類和很多Windows的內建控件和組件的封裝類。MFC的主要優點是可以用面向對象的方法來調用Windows API,以及應用程序開發的便捷。
上位機模塊的主要功能是模擬真實電梯轎廂內、外的按鍵,用戶點擊相應樓層按鈕后,下位機解析用戶命令并通過電梯的正、反轉轉動及液晶顯示屏等來顯示用戶命令執行情況,同時將狀態及結果等反饋到上位機中。上位機的軟件運行界面如圖6所示。

4 結論
本文設計了一種實用的電梯模擬系統,該系統采用CY7C680013A作為主控制器,外擴液晶顯示模塊、步進電機和蜂鳴器,可以模擬電梯的各種狀態,下位機軟件實現了電梯硬件資源的控制及調度。上位機采用VC2010開發,顯示電梯樓層按鍵、電梯運行狀態、系統診斷信息等。本系統可以實現大部分電梯的功能,便于初學者掌握電梯的相關知識,通過學生的動手實踐,提高其軟件編制能力和故障診斷能力,為其將來的發展打堅實基礎。
評論