自動(dòng)升降電梯控制設(shè)計(jì).doc
《自動(dòng)升降電梯控制設(shè)計(jì).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《自動(dòng)升降電梯控制設(shè)計(jì).doc(50頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
武漢理工大學(xué)FPGA課程設(shè)計(jì) 課程設(shè)計(jì)任務(wù)書 學(xué)生姓名: 鄭義 專業(yè)班級(jí): 通信1103 指導(dǎo)教師: 陳適 工作單位: 信息學(xué)院 題 目: 頻分復(fù)用 初始條件:Quartus II軟件、PC機(jī) 要求完成的主要任務(wù): (包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說(shuō)明書撰寫等具體要求) 設(shè)計(jì)任務(wù):根據(jù)自動(dòng)電梯工作原理,用quartus ii軟件設(shè)計(jì)一個(gè)自動(dòng)升降電梯控制器。該系統(tǒng)主要由四個(gè)模塊構(gòu)成:外部數(shù)據(jù)高速采集模塊設(shè)計(jì)、信號(hào)存儲(chǔ)模塊、基于FPGA的中央處理模塊和信號(hào)的輸出、顯示模塊。 設(shè)計(jì)要求: (1) 設(shè)計(jì)一個(gè)6層樓的電梯控制器; (2) 該控制器可控制電梯完成6層樓的載客服而且遵循方向優(yōu)先原則,并能響應(yīng)提前關(guān)門延時(shí)關(guān)門,并具有超載報(bào)警和故障報(bào)警; (3) 同時(shí)指示電梯運(yùn)行情況和電梯內(nèi)外請(qǐng)求信息。 時(shí)間安排: 序號(hào) 設(shè) 計(jì) 內(nèi) 容 所 用 時(shí) 間 1 根據(jù)課題的技術(shù)指標(biāo),確定整體方案,并進(jìn)行參數(shù)設(shè)計(jì)計(jì)算 2天 2 根據(jù)實(shí)驗(yàn)條件進(jìn)行全部或部分程序的編寫與調(diào)試,并完成基本功能 7天 3 總結(jié)編寫課程設(shè)計(jì)報(bào)告 1天 合 計(jì) 2周 指導(dǎo)教師簽名: 2014年 6 月 18 日 系主任(或責(zé)任教師)簽名: 2014 年 6 月 18 日 目錄 摘 要 1 ABSTRAC 2 第一章 緒論 3 第二章 EDA技術(shù)的介紹 4 2.1 EDA技術(shù)的基本特征 4 2.2 EDA技術(shù)的基本設(shè)計(jì)方法 6 2.3 QuartusII軟件介紹 9 第三章 總體方案設(shè)計(jì) 10 3.1設(shè)計(jì)的目的 10 3.2 設(shè)計(jì)要求 10 3.3設(shè)計(jì)的基礎(chǔ)依據(jù) 11 3.3.1VHDL語(yǔ)言介紹 11 3.3.2 VHDL的特點(diǎn) 11 3.3.3 VHDL的設(shè)計(jì)步驟 12 3.3.4 VHDL語(yǔ)言編程格式 12 第四章 電梯控制設(shè)計(jì)方案 14 4.1 電梯控制器的總體設(shè)計(jì)方案 14 4.2電梯運(yùn)行控制流程圖如下 15 4.3 六層電梯控制器的設(shè)計(jì)思路 16 第五章 程序設(shè)計(jì)及調(diào)試 17 5.1 程序流程分析 17 5.2 程序設(shè)計(jì)說(shuō)明 18 5.2.1端口、寄存器設(shè)計(jì)說(shuō)明 18 5.2.2模塊設(shè)計(jì)說(shuō)明 19 5.2.3具體語(yǔ)句設(shè)計(jì)說(shuō)明 20 5.3 程序調(diào)試及引腳鎖定 24 第六章 程序仿真 27 6.1建立波形輸入 27 6.2電梯功能的實(shí)現(xiàn)與仿真 28 6.2.1 仿真步驟 28 6.2.2 電梯功能實(shí)現(xiàn)與仿真結(jié)果分析 30 第七章 設(shè)計(jì)總結(jié) 34 7.1 可行性分析 34 7.2 芯片選型分析 34 參考文獻(xiàn) 36 附錄 37 摘 要 電梯作為垂直方向的交通工具,在高層建筑和公共場(chǎng)所已成為不可或缺的設(shè)備。中國(guó)是全球最大的電梯市場(chǎng),也具有最強(qiáng)的電梯生產(chǎn)能力,但由于缺乏自主知識(shí)產(chǎn)權(quán)和核心技術(shù),自主品牌占市場(chǎng)的份額很少。隨著社會(huì)需求的變化,電梯朝著節(jié)能、環(huán)保及智能化方向發(fā)展。 EDA技術(shù)打破了軟件和硬件間的壁壘,是計(jì)算機(jī)的軟件技術(shù)與硬件實(shí)現(xiàn)、設(shè)計(jì)效率與產(chǎn)品能合二為一,它代表了電子技術(shù)和應(yīng)用技術(shù)的發(fā)展方向。VHDL主要用于描述數(shù)字系統(tǒng)的接口,結(jié)構(gòu)和功能,它的語(yǔ)法簡(jiǎn)單易懂,移植性好。 本設(shè)計(jì)采用VHDL,源程序Altera公司的Quartus II軟件仿真。運(yùn)用有限狀態(tài)機(jī)的設(shè)計(jì)方法,設(shè)計(jì)了兩個(gè)進(jìn)程相互配合,狀態(tài)機(jī)進(jìn)程作為主要進(jìn)程,信號(hào)燈控制進(jìn)程作為輔助進(jìn)程。在主進(jìn)程中定義了7個(gè)狀態(tài),分別是“stopon1”“dooropen”“doorclose”“doorwait4”“up”“down”和“stop”,在電梯時(shí)鐘的觸發(fā)下,通過(guò)當(dāng)前狀態(tài)和信號(hào)燈信號(hào)判定下一狀態(tài)。信號(hào)燈控制進(jìn)程中,信號(hào)燈存儲(chǔ)按鍵請(qǐng)求情況,它的熄滅是由狀態(tài)機(jī)進(jìn)程中傳出的信號(hào)來(lái)控制。 關(guān)鍵字:電梯控制器;VHDL;狀態(tài)機(jī);CPLD ABSTRAC Elevator has become an indispensable device as a vertical transport in high-rise buildings and public places. China is the world’s largest elevator market ,and also has the highest lift capacity. But the lack of independent intellectual property rights and core technologies, the market share of own brands account for very little. With the changing of the community’s needs, elevator develop towards energy saving, environmental protection and intelligent. EDA breaks the barriers between hardware and software. Not only the computer software technology and hardware but also the design efficiency and product performance are combined. EDA represents the electronic design technology and application technology’s development. VHDL digital system is mainly used to describe the interface, structure and function. Its syntax is easy and transplantable. This design which uses VHDL simulated by Altera’s Quartus II software. I use method named finite state machine which two processes complement each other. The state machine process act as the main process, and the signal control process act as a assistant. Seven states were defined in the main process, namely “stopon1” “dooropen” “doorclose” “doorwait4” “up” “down” and “stop”. Triggered by the lift’s clock, the next state is determined by the current state and the signal. In signal control process, registers keep input value, and lamps black out when the control process, registers keep input value, and lamps black out when the control signal in the main process is high value. Key words: Elevator Controller;VHDL State Machine;CPLD 第一章 緒論 隨著社會(huì)的發(fā)展,電梯的使用越來(lái)越普遍,已經(jīng)從原來(lái)只在商業(yè)大廈,賓館使用,過(guò)度到在辦公樓,居民樓等場(chǎng)所使用,并且對(duì)電梯功能的要求也不斷提高,相應(yīng)地其控制方式也在不停地發(fā)生變化.對(duì)于電梯的控制,傳統(tǒng)的方法是使用繼電器—接觸器控制系統(tǒng)進(jìn)行控制,隨著技術(shù)的 不斷發(fā)展,微型計(jì)算機(jī)在電梯控制上的 應(yīng)用日益廣泛,現(xiàn)在已進(jìn)入全微化控制的時(shí)代。 VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式、描述風(fēng)格以及語(yǔ)法是十分類似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。 VHDL具有功能強(qiáng)大的語(yǔ)言結(jié)構(gòu),可以用簡(jiǎn)潔明確的源代碼來(lái)描述復(fù)雜的邏輯控制。它具有多層次的設(shè)計(jì)描述功能,層層細(xì)化,最后可直接生成電路級(jí)描述。VHDL支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì),這是其他硬件描述語(yǔ)言所不能比擬的。VHDL還支持各種設(shè)計(jì)方法,既支持自底向上的設(shè)計(jì),又支持自頂向下的設(shè)計(jì);既支持模塊化設(shè)計(jì),又支持層次化設(shè)計(jì)。電梯的微機(jī)化控制主要有以下幾種形式;1、PLC控制,2、單片機(jī)控制 ,3、單板機(jī)控制,4、單微機(jī)控制,5、多微機(jī)控制,6、人工智能控制。隨著EDA技術(shù)的快速發(fā)展 ,VHDL已廣泛應(yīng)用于電子設(shè)計(jì)與控制的各個(gè)方面 本文采用VHDL語(yǔ)言來(lái)設(shè)計(jì)實(shí)用六層電梯控制器,其代碼具有良好的可讀性和易理解性,源程序經(jīng)A1tera公司的 Quartus II軟件仿真,目標(biāo)器件選用CPLD器件。通過(guò)對(duì)六層電梯控制器的設(shè)計(jì),可以發(fā)現(xiàn)本設(shè)計(jì)有一定的擴(kuò)展性,而且可以作為更多層電梯控制器實(shí)現(xiàn)的基礎(chǔ)。 第二章 EDA技術(shù)的介紹 電子設(shè)計(jì)技術(shù)的核心就是EDA技術(shù),EDA是指以計(jì)算機(jī)為工作平臺(tái),融合應(yīng)用電子技術(shù)、計(jì)算機(jī)技術(shù)、智能化技術(shù)最新成果而研制成的電子CAD通用軟件包,主要能輔助進(jìn)行三方面的設(shè)計(jì)工作,即IC設(shè)計(jì)、電子電路設(shè)計(jì)和PCB設(shè)計(jì)。EDA技術(shù)已有30年的發(fā)展歷程,大致可分為三個(gè)階段。70年代為計(jì)算機(jī)輔助設(shè)計(jì)(CAD)階段,人們開始用計(jì)算機(jī)輔助進(jìn)行IC版圖編輯、PCB布局布線,取代了手工操作。80年代為計(jì)算機(jī)輔助工程(CAE)階段。與CAD相比,CAE除了有純粹的圖形繪制功能外,又增加了電路功能設(shè)計(jì)和結(jié)構(gòu)設(shè)計(jì),并且通過(guò)電氣連接網(wǎng)絡(luò)表將兩者結(jié)合在一起,實(shí)現(xiàn)了工程設(shè)計(jì)。CAE的主要功能是:原理圖輸入,邏輯仿真,電路分析,自動(dòng)布局布線,PCB后分析。90年代為電子系統(tǒng)設(shè)計(jì)自動(dòng)化(EDA)階段。 2.1 EDA技術(shù)的基本特征 EDA代表了當(dāng)今電子設(shè)計(jì)技術(shù)的最新發(fā)展方向,它的基本特征是:設(shè)計(jì)人員按照“自頂向下”的設(shè)計(jì)方法,對(duì)整個(gè)系統(tǒng)進(jìn)行方案設(shè)計(jì)和功能劃分,系統(tǒng)的關(guān)鍵電路用一片或幾片專用集成電路(ASIC)實(shí)現(xiàn),然后采用硬件描述語(yǔ)言(HDL)完成系統(tǒng)行為級(jí)設(shè)計(jì),最后通過(guò)綜合器和適配器生成最終的目標(biāo)器件,這樣的設(shè)計(jì)方法被稱為高層次的電子設(shè)計(jì)方法。下面介紹與EDA基本特征有關(guān)的幾個(gè)概念。 1.“自頂向下”的設(shè)計(jì)方法10年前,電子設(shè)計(jì)的基本思路還是選用標(biāo)準(zhǔn)集成電路“自底向上”地構(gòu)造出一個(gè)新的系統(tǒng),這樣的設(shè)計(jì)方法就如同一磚一瓦建造金字塔,不僅效率低、成本高而且容易出錯(cuò)。 高層次設(shè)計(jì)是一種“自頂向下”的全新設(shè)計(jì)方法,這種設(shè)計(jì)方法首先從系統(tǒng)設(shè)計(jì)入手,在頂層進(jìn)行功能方框圖的劃分和結(jié)構(gòu)設(shè)計(jì)。在方框圖一級(jí)進(jìn)行仿真、糾錯(cuò),并用硬件描述語(yǔ)言對(duì)高層次的系統(tǒng)行為進(jìn)行描述,在系統(tǒng)一級(jí)進(jìn)行驗(yàn)證。然后,用綜合優(yōu)化工具生成具體門電路的網(wǎng)絡(luò)表,其對(duì)應(yīng)的物理實(shí)現(xiàn)級(jí)可以是印刷電路板或?qū)S眉呻娐?。由于設(shè)計(jì)的主要仿真和調(diào)試過(guò)程是在高層次上完成的,這既有利于早期發(fā)現(xiàn)結(jié)構(gòu)設(shè)計(jì)上的錯(cuò)誤,避免設(shè)計(jì)工作的浪費(fèi),又減少了邏輯功能仿真的工作量,提高了設(shè)計(jì)的一次成功率。 2.ASIC設(shè)計(jì)現(xiàn)代電子產(chǎn)品的復(fù)雜度日益提高,一個(gè)電子系統(tǒng)可能由數(shù)萬(wàn)個(gè)中小規(guī)模集成電路構(gòu)成,這就帶來(lái)了體積大、功耗大、可靠性差的問(wèn)題。解決這一問(wèn)題的有效方法就是采用ASIC芯片進(jìn)行設(shè)計(jì)。ASIC按照設(shè)計(jì)方法的不同可分為全定制ASIC、半定制ASIC和可編程ASIC(也稱為可編程邏輯器件)。 設(shè)計(jì)全定制ASIC芯片時(shí),設(shè)計(jì)師要定義芯片上所有晶體管的幾何圖形和工藝規(guī)則,最后將設(shè)計(jì)結(jié)果交由IC廠家去進(jìn)行掩模制造,做出產(chǎn)品。這種設(shè)計(jì)方法的優(yōu)點(diǎn)是芯片可以獲得最優(yōu)的性能,即面積利用率高、速度快、功耗低,而缺點(diǎn)是開發(fā)周期長(zhǎng),費(fèi)用高,只適合大批量產(chǎn)品開發(fā)。 半定制ASIC芯片的版圖設(shè)計(jì)方法分為門陣列設(shè)計(jì)法和標(biāo)準(zhǔn)單元設(shè)計(jì)法,這兩種方法都是約束性的設(shè)計(jì)方法,其主要目的就是簡(jiǎn)化設(shè)計(jì),以犧牲芯片性能為代價(jià)來(lái)縮短開發(fā)時(shí)間可編程邏輯芯片與上述掩模ASIC的不同之處在于:設(shè)計(jì)人員完成版圖設(shè)計(jì)后,在實(shí)驗(yàn)室內(nèi)就可以燒制出自己的芯片,無(wú)須IC廠家的參與,大大縮短了開發(fā)周期。 可編程邏輯器件自70年代以來(lái),經(jīng)歷了PAL、GAL、CPLD、FPGA幾個(gè)發(fā)展階段,其中CPLD/FPGA屬高密度可編程邏輯器件,目前集成度已高達(dá)200萬(wàn)門/片,它將掩模ASIC集成度高的優(yōu)點(diǎn)和可編程邏輯器件設(shè)計(jì)生產(chǎn)方便的特點(diǎn)結(jié)合在一起,特別適合于樣品研制或小批量產(chǎn)品開發(fā),使產(chǎn)品能以最快的速度上市,而當(dāng)市場(chǎng)擴(kuò)大時(shí),它可以很容易地轉(zhuǎn)由掩模ASIC實(shí)現(xiàn),因此開發(fā)風(fēng)險(xiǎn)也大為降低。 上述ASIC芯片,尤其是CPLD/FPGA器件,已成為現(xiàn)代高層次電子設(shè)計(jì)方法的實(shí)現(xiàn)載體。 3.硬件描述語(yǔ)言硬件描述語(yǔ)言(HDL)是一種用于設(shè)計(jì)硬件電子系統(tǒng)的計(jì)算機(jī)語(yǔ)言,它用軟件編程的方式來(lái)描述電子系統(tǒng)的邏輯功能、電路結(jié)構(gòu)和連接形式,與傳統(tǒng)的門級(jí)描述方式相比,它更適合大規(guī)模系統(tǒng)的設(shè)計(jì)。例如一個(gè)32位的加法器,利用圖形輸入軟件需要輸入500至1000個(gè)門,而利用VHDL語(yǔ)言只需要書寫一行“A=B+C”即可。而且VHDL語(yǔ)言可讀性強(qiáng),易于修改和發(fā)現(xiàn)錯(cuò)誤。早期的硬件描述語(yǔ)言,如ABEL、HDL、AHDL,由不同的EDA廠商開發(fā),互不兼容,而且不支持多層次設(shè)計(jì),層次間翻譯工作要由人工完成。為了克服以上不足,1985年美國(guó)國(guó)防部正式推出了高速集成電路硬件描述語(yǔ)言VHDL,1987年IEEE采納VHDL為硬件描述語(yǔ)言標(biāo)準(zhǔn)(IEEESTD-1076)。 VHDL是一種全方位的硬件描述語(yǔ)言,包括系統(tǒng)行為級(jí)、寄存器傳輸級(jí)和邏輯門級(jí)多個(gè)設(shè)計(jì)層次,支持結(jié)構(gòu)、數(shù)據(jù)流和行為三種描述形式的混合描述,因此VHDL幾乎覆蓋了以往各種硬件描述語(yǔ)言的功能,整個(gè)自頂向下或自底向上的電路設(shè)計(jì)過(guò)程都可以用VHDL來(lái)完成。VHDL還具有以下優(yōu)點(diǎn):(1)VHDL的寬范圍描述能力使它成為高層次設(shè)計(jì)的核心,將設(shè)計(jì)人員的工作重心提高到了系統(tǒng)功能的實(shí)現(xiàn)與調(diào)試,而花較少的精力于物理實(shí)現(xiàn)。(2)VHDL可以用簡(jiǎn)潔明確的代碼描述來(lái)進(jìn)行復(fù)雜控制邏輯的設(shè)計(jì),靈活且方便,而且也便于設(shè)計(jì)結(jié)果的交流、保存和重用。(3)VHDL的設(shè)計(jì)不依賴于特定的器件,方便了工藝的轉(zhuǎn)換。(4)VHDL是一個(gè)標(biāo)準(zhǔn)語(yǔ)言,為眾多的EDA廠商支持,因此移植性好。 4.EDA系統(tǒng)框架結(jié)構(gòu)EDA系統(tǒng)框架結(jié)構(gòu)(Framework)是一套配置和使用EDA軟件包的規(guī)范。目前主要的EDA系統(tǒng)都建立了框架結(jié)構(gòu),如Cadence公司的DesignFramework,Mentor公司的FalconFramework,而且這些框架結(jié)構(gòu)都遵守國(guó)際CFI組織制定的統(tǒng)一技術(shù)標(biāo)準(zhǔn)??蚣芙Y(jié)構(gòu)能將來(lái)自不同EDA廠商的工具軟件進(jìn)行優(yōu)化組合,集成在一個(gè)易于管理的統(tǒng)一的環(huán)境之下,而且還支持任務(wù)之間、設(shè)計(jì)師之間以及整個(gè)產(chǎn)品開發(fā)過(guò)程中的信息傳輸與共享,是并行工程和自頂向下設(shè)計(jì)方法的實(shí)現(xiàn)基礎(chǔ)。 2.2 EDA技術(shù)的基本設(shè)計(jì)方法 1.電路級(jí)設(shè)計(jì)電路級(jí)設(shè)計(jì)工作流程如圖2.1所示。電子工程師接受系統(tǒng)設(shè)計(jì)任務(wù) 后,首先確定設(shè)計(jì)方案,并選擇能實(shí)現(xiàn)該方案的合適元器件,然后根據(jù)具體的元器件設(shè)計(jì)電路原理圖。接著進(jìn)行第一次仿真,其中包括數(shù)字電路的邏輯模擬、故障分析,模擬電路的交直流分析、瞬態(tài)分析。在進(jìn)行系統(tǒng)仿真時(shí),必須要有元件模型庫(kù)的支持,計(jì)算機(jī)上模擬的輸入輸出波形代替了實(shí)際電路調(diào)試中的信號(hào)源和示波器。這一次仿真主要是檢驗(yàn)設(shè)計(jì)方案在功能方面的正確性。 圖2.1電路級(jí)設(shè)計(jì)工作流程 仿真通過(guò)后,根據(jù)原理圖產(chǎn)生的電氣連接網(wǎng)絡(luò)表進(jìn)行PCB板的自動(dòng)布局布線。在制作PCB板之前還可以進(jìn)行PCB后分析,其中包括熱分析、噪聲及竄擾分析、電磁兼容分析、可靠性分析等,并可將分析后的結(jié)果參數(shù)反標(biāo)回電路圖,進(jìn)行第二次仿真,也稱為后仿真。后仿真主要是檢驗(yàn)PCB板在實(shí)際工作環(huán)境中的可行性。 由此可見,電路級(jí)的EDA技術(shù)使電子工程師在實(shí)際的電子系統(tǒng)產(chǎn)生前,就可以全面地了解系統(tǒng)的功能特性和物理特性,從而將開發(fā)風(fēng)險(xiǎn)消滅在設(shè)計(jì)階段,縮短了開發(fā)時(shí)間,降低了開發(fā)成本。 2.系統(tǒng)級(jí)設(shè)計(jì)進(jìn)入90年代以來(lái),電子信息類產(chǎn)品的開發(fā)明顯呈現(xiàn)兩個(gè)特點(diǎn):一是產(chǎn)品復(fù)雜程度提高;二是產(chǎn)品上市時(shí)限緊迫。然而,電路級(jí)設(shè)計(jì)本質(zhì)上是基于門級(jí)描述的單層次設(shè)計(jì),設(shè)計(jì)的所有工作(包括設(shè)計(jì)輸入、仿真和分析、設(shè)計(jì)修改等)都是在基本邏輯門這一層次上進(jìn)行的,顯然這種設(shè)計(jì)方法不能適應(yīng)新的形勢(shì),一種高層次的電子設(shè)計(jì)方法,也即系統(tǒng)級(jí)設(shè)計(jì)方法,應(yīng)運(yùn)而生。 高層次設(shè)計(jì)是一種“概念驅(qū)動(dòng)式”設(shè)計(jì),設(shè)計(jì)人員無(wú)須通過(guò)門級(jí)原理圖描述電路,而是針對(duì)設(shè)計(jì)目標(biāo)進(jìn)行功能描述。由于擺脫了電路細(xì)節(jié)的束縛,設(shè)計(jì)人員可以把精力集中于創(chuàng)造性的方案與概念的構(gòu)思上,一旦這些概念構(gòu)思以高層次描述的形式輸入計(jì)算機(jī),EDA系統(tǒng)就能以規(guī)則驅(qū)動(dòng)的方式自動(dòng)完成整個(gè)設(shè)計(jì)。這樣,新的概念就能迅速有效地成為產(chǎn)品,大大縮短了產(chǎn)品的研制周期。不僅如此,高層次設(shè)計(jì)只是定義系統(tǒng)的行為特性,可以不涉及實(shí)現(xiàn)工藝,因此還可以在廠家綜合庫(kù)的支持下,利用綜合優(yōu)化工具將高層次描述轉(zhuǎn)換成針對(duì)某種工藝優(yōu)化的網(wǎng)絡(luò)表,使工藝轉(zhuǎn)化變得輕而易舉。系統(tǒng)級(jí)設(shè)計(jì)的工作流程圖2.2。首先,工程師按照“自頂向下”的設(shè)計(jì)方法進(jìn)行系統(tǒng)劃分。其次,輸入VHDL代碼,這是高層次設(shè)計(jì)中最為普遍的輸入方式。此外,還可以采用圖形輸入方式(框圖,狀態(tài)圖等),這種輸入方式具有直觀、容易理解的優(yōu)點(diǎn)。第三步是,將以上的設(shè)計(jì)輸入編譯成標(biāo)準(zhǔn)的VHDL文件。第四步是進(jìn)行代碼級(jí)的功能仿真,主要是檢驗(yàn)系統(tǒng)功能設(shè)計(jì)的正確性。這一步驟適用大型設(shè)計(jì),因?yàn)閷?duì)于大型設(shè)計(jì)來(lái)說(shuō),在綜合前對(duì)源代碼仿真,就可以大大減少設(shè)計(jì)重復(fù)的次數(shù)和時(shí)間。一般情況下,這一仿真步驟可略去。第五步是,利用綜合器對(duì)VHDL源代碼進(jìn)行綜合優(yōu)化處理,生成門級(jí)描述的網(wǎng)絡(luò)表文件,這是將高層次描述轉(zhuǎn)化為硬件電路的關(guān)鍵步驟。綜合優(yōu)化是針對(duì)ASIC芯片供應(yīng)商的某一產(chǎn)品系列進(jìn)行的,所以綜合的過(guò)程要在相應(yīng)的廠家綜合庫(kù)支持下才能完成。第六步是,利用產(chǎn)生的網(wǎng)絡(luò)表文件進(jìn)行適配前的時(shí)序仿真,仿真過(guò)程不涉及具體器件的硬件特性,是較為粗略的。一般的設(shè)計(jì),也可略去這一仿真步驟。第七步是利用適配器將綜合后的網(wǎng)絡(luò)表文件針對(duì)某一具體的目標(biāo)器件進(jìn)行邏輯映射操作,包括底層器件配置、邏輯分割、邏輯優(yōu)化、布局布線。第八步是在適配完成后,產(chǎn)生多項(xiàng)設(shè)計(jì)結(jié)果:(1)適配報(bào)告,包括芯片內(nèi)部資源利用情況,設(shè)計(jì)的布爾方程描述情況等;(2)適配后的仿真模型;(3)器件編程文件。根據(jù)適配后的仿真模型,可以進(jìn)行適配后的時(shí)序仿真,因?yàn)橐呀?jīng)得到器件的實(shí)際硬件特性(如時(shí)延特性),所以仿真結(jié)果能比較精確地預(yù)期未來(lái)芯片的實(shí)際性能。如果仿真結(jié)果達(dá)不到設(shè)計(jì)要求,就需要修改VHDL源代碼或選擇不同速度和品質(zhì)的器件,直至滿足設(shè)計(jì)要求;最后一步是將適配器產(chǎn)生的器件編程文件通過(guò)編程器或下載電纜載入到目標(biāo)芯片F(xiàn)PGA或CPLD中。如果是大批量產(chǎn)品開發(fā),則通過(guò)更換相應(yīng)的廠家綜合庫(kù),輕易地轉(zhuǎn)由ASIC形式實(shí)現(xiàn)。 圖2.2 系統(tǒng)級(jí)設(shè)計(jì)的工作流程 綜上所述,EDA技術(shù)是電子設(shè)計(jì)領(lǐng)域的一場(chǎng)革命,目前正處于高速發(fā)展階段,每年都有新的EDA工具問(wèn)世。廣大電子工程人員掌握這一先進(jìn)技術(shù),這不僅是提高設(shè)計(jì)效率的需要,更是我國(guó)電子工業(yè)在世界市場(chǎng)上生存、競(jìng)爭(zhēng)與發(fā)展的需要,正因EDA在設(shè)計(jì)控制系統(tǒng)中的這些特點(diǎn),在電梯控制電路上采用EDA技術(shù)進(jìn)行開發(fā),越來(lái)越受到人們的重視。 2.3 QuartusII軟件介紹 Altera公司的QuartusII軟件提供了可編程片上系統(tǒng)(SOPC)設(shè)計(jì)的一個(gè)綜合開發(fā)環(huán)境。Quartus II 開發(fā)工具人機(jī)界面友好、易于使用、性能優(yōu)良,并自帶編譯、仿真功能。QuartusII軟件支持VHDL和Verilog硬件描述語(yǔ)言的設(shè)計(jì)輸入、基于圖形的設(shè)計(jì)輸入方式以及集成系統(tǒng)級(jí)設(shè)計(jì)工具。QuartusII軟件可以將設(shè)計(jì)、綜合、布局和布線以及系統(tǒng)的驗(yàn)證全部都整合到一個(gè)無(wú)縫的環(huán)境之中,其中也包括和第三方EDA工具的接口。QuartusII設(shè)計(jì)軟件根據(jù)設(shè)計(jì)者需要提供了一個(gè)完整的多平臺(tái)開發(fā)環(huán)境,它包含整個(gè)FPGA和CPLD設(shè)計(jì)階段的解決方案。在實(shí)際應(yīng)用設(shè)計(jì)中,對(duì)程序原理性及可執(zhí)行性的驗(yàn)證主要集中在程序修改階段,尤其在處理的數(shù)據(jù)復(fù)雜、繁多時(shí),Quartus II自帶的波形輸入仿真就很難實(shí)現(xiàn)程序的驗(yàn)證,而且輸出的數(shù)據(jù)不能方便的以波形圖示直觀的呈現(xiàn),給程序設(shè)計(jì)者在校驗(yàn)程序階段帶來(lái)了很多的不便。再有,在很多數(shù)字電路設(shè)計(jì)中,考慮成本的問(wèn)題,F(xiàn)PGA實(shí)現(xiàn)的往往是設(shè)計(jì)的核心部分,而很多的外圍電路如A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器等仍然使用傳統(tǒng)的接口芯片來(lái)實(shí)現(xiàn)。而QuartusII 設(shè)計(jì)只是針對(duì)數(shù)字信號(hào),并不支持模擬量的輸入。而僅僅為了便于程序的驗(yàn)證而用FPGA實(shí)現(xiàn)這些外圍電路,會(huì)大大延長(zhǎng)程序的開發(fā)周期,更會(huì)增大開發(fā)的成本。而MATLAB具有強(qiáng)大的運(yùn)算功能,可以容易的實(shí)現(xiàn)A/D、D/A轉(zhuǎn)換等外圍電路功能,并能以波形形式將結(jié)果直觀地呈現(xiàn),極大地方便了程序設(shè)計(jì)人員設(shè)計(jì)應(yīng)用系統(tǒng)。 第三章 總體方案設(shè)計(jì) 3.1設(shè)計(jì)的目的 針對(duì)我國(guó)樓層層數(shù)的基本水平,本著“一理通,百理明”的原則,本設(shè)計(jì)希望通過(guò)簡(jiǎn)單的六層電梯控制器的設(shè)計(jì),為廣大電梯設(shè)計(jì)者提供一個(gè)基礎(chǔ)。針對(duì)目前中小型電梯所能實(shí)現(xiàn)的功能,本控制器虛擬實(shí)現(xiàn)以下功能: 指示電梯所在樓層 電梯基本運(yùn)行 關(guān)門延時(shí)設(shè)置 提前關(guān)門設(shè)置 超載報(bào)警 故障報(bào)警 3.2 設(shè)計(jì)要求 六層電梯控制器將實(shí)現(xiàn)的功能: (1)每層電梯入口處設(shè)有上下請(qǐng)求開關(guān),電梯內(nèi)設(shè)有顧客到達(dá)層次的停站請(qǐng)求開關(guān)。 (2)設(shè)有電梯入口處位置指示裝置及電梯運(yùn)行模式(上升或下降)指示裝置。 (3)電梯每秒升(降)一層樓。 (4)電梯到達(dá)有停站請(qǐng)求的樓層,經(jīng)過(guò)1秒電梯門打開,開門指示燈亮,開門4秒后,電梯門關(guān)閉(開門指示燈滅),電梯繼續(xù)進(jìn)行,直至執(zhí)行完最后一個(gè)請(qǐng)求信號(hào)后停留在當(dāng)前層。 (5)能記憶電梯內(nèi)外所有請(qǐng)求,并按照電梯運(yùn)行規(guī)則按順序響應(yīng),每個(gè)請(qǐng)求信號(hào)保留至執(zhí)行后消除。 (6)電梯運(yùn)行規(guī)則:當(dāng)電梯處于上升模式時(shí),只響應(yīng)比電梯所在位置高的上樓請(qǐng)求信號(hào),由下而上逐個(gè)執(zhí)行,直到最后一個(gè)上樓請(qǐng)求執(zhí)行完畢;如果高層有下樓請(qǐng)求,則直接升到由下樓請(qǐng)求的最高層,然后進(jìn)入下降模式。當(dāng)電梯處于下降模式時(shí)則與上升模式相反。 (7)電梯初始狀態(tài)為一層開門狀態(tài)。 3.3設(shè)計(jì)的基礎(chǔ)依據(jù) 現(xiàn)代電子設(shè)計(jì)技術(shù)的核心是EDA技術(shù)?;贓DA技術(shù)開發(fā)的實(shí)現(xiàn)六層電梯自動(dòng)控制與目前主流的利用可編程邏輯控制器實(shí)現(xiàn)電梯控制緊密相連。硬件描述語(yǔ)言是EDA技術(shù)的重要組成部分,VHDL是作為電子設(shè)計(jì)主流硬件的描述語(yǔ)言。使用VHDL語(yǔ)言進(jìn)行程序設(shè)計(jì),在QuartusII軟件上對(duì)程序進(jìn)行編譯、仿真。在MAX2win平臺(tái)上開發(fā)具有易學(xué)易懂、控制靈活方便、抗干擾能力強(qiáng)、運(yùn)行穩(wěn)定可靠等優(yōu)點(diǎn)。 3.3.1VHDL語(yǔ)言介紹 VHDL(Very High Speed Integrated Circuit Hardware Description Language)語(yǔ)言于1983年由美國(guó)國(guó)防部發(fā)起創(chuàng)建,由電工和電子工程師協(xié)會(huì)(the institute of electrical and electronics engineer)進(jìn)一步發(fā)展并在1987年作為“IEEE1076”發(fā)布。從此,VHDL成為硬件描述語(yǔ)言的業(yè)界標(biāo)準(zhǔn)之一。 VHDL作為一個(gè)規(guī)范語(yǔ)言和建模語(yǔ)言,具有很強(qiáng)的電路描述和建模能力,能從多個(gè)層次對(duì)數(shù)字系統(tǒng)進(jìn)行建模和描述,從而大大簡(jiǎn)化了硬件設(shè)計(jì)任務(wù),提高了設(shè)計(jì)效率和可靠性。VHDL具有與具體硬件電路無(wú)關(guān)和設(shè)計(jì)平臺(tái)無(wú)關(guān)的特性,并且具有良好的電路行為描述和系統(tǒng)描述的能力,并在語(yǔ)言易讀性和層次化結(jié)構(gòu)化設(shè)計(jì)方面,表現(xiàn)了強(qiáng)大的生命力和應(yīng)用潛力。 3.3.2 VHDL的特點(diǎn) 應(yīng)用VHDL進(jìn)行系統(tǒng)設(shè)計(jì),有以下幾方面的特點(diǎn): 功能強(qiáng)大:VHDL具有功能強(qiáng)大的語(yǔ)言結(jié)構(gòu)。它可以用明確的代碼描述復(fù)雜的控制邏輯設(shè)計(jì)。并且具有多層次的設(shè)計(jì)描述功能,支持設(shè)計(jì)庫(kù)和可重復(fù)使用的元件生成。VHDL是一種設(shè)計(jì)、仿真和綜合的標(biāo)準(zhǔn)硬件描述語(yǔ)言。 可移植性:VHDL語(yǔ)言是一個(gè)標(biāo)準(zhǔn)語(yǔ)言,其設(shè)計(jì)描述可以為不同的EDA工具支持。它可以從一個(gè)仿真工具移植到另一個(gè)仿真工具,從一個(gè)綜合工具移植到另一個(gè)綜合工具,從一個(gè)工作平臺(tái)移植到另一個(gè)工作平臺(tái)。此外,通過(guò)更換庫(kù)再重新綜合很容易移植為ASIC設(shè)計(jì)。 獨(dú)立性:VHDL的硬件描述與具體的工藝技術(shù)和硬件結(jié)構(gòu)無(wú)關(guān)。設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。程序設(shè)計(jì)的硬件目標(biāo)器件有廣闊的選擇范圍,可以是各系列的CPLD、FPGA及各種門陣列器件。 可操作性:由于VHDL具有類屬描述語(yǔ)句和子程序調(diào)用等功能,對(duì)于已完成的設(shè)計(jì),在不改變?cè)闯绦虻臈l件下,只需改變端口類屬參量或函數(shù),就能輕易地改變?cè)O(shè)計(jì)的規(guī)模和結(jié)構(gòu)。 靈活性:VHDL最初是作為一種仿真標(biāo)準(zhǔn)格式出現(xiàn)的,有著豐富的仿真語(yǔ)句和庫(kù)函數(shù)。使其在任何大系統(tǒng)的設(shè)計(jì)中,隨時(shí)可對(duì)設(shè)計(jì)進(jìn)行仿真模擬。所以,即使在遠(yuǎn)離門級(jí)的高層次(即使設(shè)計(jì)尚未完成時(shí)),設(shè)計(jì)者就能夠?qū)φ麄€(gè)工程設(shè)計(jì)的結(jié)構(gòu)和功能的可行性進(jìn)行查驗(yàn),并做出決策。 3.3.3 VHDL的設(shè)計(jì)步驟 采用VHDL的系統(tǒng)設(shè)計(jì),一般有以下6個(gè)步驟。 (1)要求的功能模塊劃分; (2)VHDL的設(shè)計(jì)描述(設(shè)計(jì)輸入); (3)代碼仿真模擬(前仿真); (4)計(jì)綜合、優(yōu)化和布局布線; (5)布局布線后的仿真模擬(后仿真); (6)設(shè)計(jì)的實(shí)現(xiàn)(下載到目標(biāo)器件)。 3.3.4 VHDL語(yǔ)言編程格式 (1)一個(gè)完整的VHDL程序是以下五部分組成的: 庫(kù)(LIBRARY):儲(chǔ)存預(yù)先已經(jīng)寫好的程序和數(shù)據(jù)的集合。 程序包(PACKAGE):聲明在設(shè)計(jì)中將用到的常數(shù)、數(shù)據(jù)類型、元件及子程序。 實(shí)體(ENTITY):聲明到其他實(shí)體或其他設(shè)計(jì)的接口,即定義本定義的輸入輸出端口。 構(gòu)造體(ARCHITECTUR):定義實(shí)體的實(shí)現(xiàn)。 電路的具體描述配置(CONFIGURATION):一個(gè)實(shí)體可以有多個(gè)構(gòu)造體,可以通過(guò)配置來(lái)為實(shí)體選擇其中一個(gè)構(gòu)造體。 (2)實(shí)體 實(shí)體(ENTITY)是VHDL設(shè)計(jì)中最其本的組成部分之一(另一個(gè)是結(jié)構(gòu)體),VHDL表達(dá)的所有設(shè)計(jì)均與實(shí)體有關(guān)。實(shí)體類似于原理圖中的一個(gè)部件符號(hào),它并不描述設(shè)計(jì)的具體功能,只是定義所需的全部輸入/輸出信號(hào)。實(shí)體格式如下: ENTITY實(shí)體名IS [GENERIC(常數(shù)名:數(shù)據(jù)類型[:設(shè)定值])]類屬說(shuō)明 PORT端口說(shuō)明 (端口信號(hào)名1;模式 類型;端口信號(hào)名2:模式 類型;端口信號(hào)名3:模式類型;端口信號(hào)名4:模式類型語(yǔ)句或常量定義申明實(shí)體語(yǔ)句 END實(shí)體名; ?。?)結(jié)構(gòu)體 所有能被仿真的實(shí)體都由結(jié)構(gòu)體(ARCHITECTURE)描述,即結(jié)構(gòu)體描述實(shí)體的結(jié)構(gòu)或行為,一個(gè)實(shí)體可以有多個(gè)結(jié)構(gòu)體,每個(gè)結(jié)構(gòu)體分別代表該實(shí)體功能的不同實(shí)現(xiàn)方案。 結(jié)構(gòu)體格式: ARCHITECTURE結(jié)構(gòu)體名OF實(shí)體名IS [定義語(yǔ)句(元件例化);] BEGIN 并行處理語(yǔ)句; END結(jié)構(gòu)體名; 第四章 電梯控制設(shè)計(jì)方案 4.1 電梯控制器的總體設(shè)計(jì)方案 控制器的功能模塊如圖4.1所示,包括主控制器、樓層選擇器、狀態(tài)顯示器、譯碼器和樓層顯示器。乘客在電梯中選擇所要到達(dá)的樓層,通過(guò)主控制器的處理,電梯開始運(yùn)行,狀態(tài)顯示器顯示電梯的運(yùn)行狀態(tài),電梯所在樓層數(shù)通過(guò)譯碼器譯碼從而在樓層顯示器中顯示。由于其他模塊相對(duì)簡(jiǎn)單很多,所以主控制器是核心部分。 圖4.1電梯控制流程圖 4.2電梯運(yùn)行控制流程圖如下 電梯運(yùn)行控制流程圖如下 圖4.2電梯運(yùn)行控制流程圖 4.3 六層電梯控制器的設(shè)計(jì)思路 電梯控制器運(yùn)用狀態(tài)機(jī)的設(shè)計(jì)方法,思路比較清晰??梢詫㈦娞莸却拿棵腌娨约伴_門、關(guān)門都看成一個(gè)獨(dú)立的狀態(tài)[2]。由于電梯又是每秒上升或下降一層,所以就可以通過(guò)一個(gè)統(tǒng)一的1秒為周期的時(shí)鐘來(lái)觸發(fā)狀態(tài)機(jī)。根據(jù)電梯的實(shí)際工作情況,可以把狀態(tài)機(jī)設(shè)置7個(gè)狀態(tài),分別是“電梯停留在第1層”、“開門”、“關(guān)門”、 “開門等待4秒”、“上升”、“下降”和“停止?fàn)顟B(tài)”。各個(gè)狀態(tài)之間的轉(zhuǎn)換條件可由上面的設(shè)計(jì)要求所決定。各狀態(tài)機(jī)之間轉(zhuǎn)換圖如圖4.3: 圖4.3 狀態(tài)機(jī)轉(zhuǎn)換圖 第5章 程序設(shè)計(jì)及調(diào)試 5.1 程序流程分析 電梯的運(yùn)行規(guī)則確立后,需對(duì)整個(gè)控制程序的設(shè)計(jì)作一個(gè)流程規(guī)范。對(duì)程序進(jìn)行模塊化構(gòu)思。根據(jù)VHDL語(yǔ)言的規(guī)則,程序必須由最基本的實(shí)體和結(jié)構(gòu)體構(gòu)成。實(shí)體對(duì)控制器的端口進(jìn)行定義,結(jié)構(gòu)體對(duì)各端口的行為進(jìn)行描述。因此程序運(yùn)行需經(jīng)過(guò)以下流程:VHDL庫(kù)調(diào)用;確立控制器的端口及相關(guān)的寄存器;根據(jù)電梯運(yùn)行規(guī)則,設(shè)計(jì)相關(guān)運(yùn)行描述;對(duì)電梯內(nèi)外信號(hào)進(jìn)行處理。具體流程圖如圖5.1所示。 圖5.1流程圖 5.2 程序設(shè)計(jì)說(shuō)明 5.2.1端口、寄存器設(shè)計(jì)說(shuō)明 (1)由功能要求得到本程序設(shè)計(jì)的端口必須包括: 輸入端口:時(shí)鐘(clk,頻率為2Hz)、超載(full)、關(guān)門中斷(deng)、提前關(guān)門(quick)、清除報(bào)警(clr)、電梯外人的上升請(qǐng)求信號(hào)(c_u1,c_u2,c_u3, ,c_u4,c_u5)、電梯外人的下降請(qǐng)求信號(hào)(c_d2,c_d3,c_d4,c_d5,c_d6)、電梯內(nèi)人的請(qǐng)求信號(hào)(d1,d2,d3,d4,d5,d6)、到達(dá)樓層信號(hào)(g1,g2,g3,g4,g5,g6)。 輸出端口:電梯門控制信號(hào)(door)、電梯所在樓層顯示(led)電梯外人上升請(qǐng)求信號(hào)顯示(led_c_u)、電梯外人下降請(qǐng)求信號(hào)顯示(led_c_d)、電梯內(nèi)請(qǐng)求信號(hào)顯示(led_d)、看門狗報(bào)警信號(hào)(wahaha)、電梯運(yùn)動(dòng)方向顯示(ud)、超載警告信號(hào)(alarm)、電機(jī)控制信號(hào)(up,down)。 其分布如圖所示。 圖5.2 電梯端口分布圖 (2)程序要求的寄存器(中間信號(hào))包括: 電梯內(nèi)人請(qǐng)求信號(hào)寄存信號(hào)(d11,d22,d33,d44,d55,d66)、電梯外人上升請(qǐng)求信號(hào)寄存信號(hào)(c_u11,c_u22,c_u33,c_u44,c_u55)、電梯外人下降請(qǐng)求信號(hào)寄存信號(hào)(c_d22,c_d33,c_d44,c_d55,c_d66)、分頻信號(hào)(q)、關(guān)門延時(shí)計(jì)數(shù)器(q1)、看門狗計(jì)數(shù)器(q2)、電梯內(nèi)外請(qǐng)求信號(hào)寄存器(dd,cc_u,cc_d,dd_cc)、開門使能信號(hào)(opendoor)、電梯運(yùn)動(dòng)方向信號(hào)寄存器(updown)、預(yù)備上升、預(yù)備下降預(yù)操作使能信號(hào)(en_up,en_dw)。 5.2.2模塊設(shè)計(jì)說(shuō)明 本程序由三個(gè)基本模塊組成,包括調(diào)用VHDL庫(kù)模塊、實(shí)體設(shè)計(jì)模塊和結(jié)構(gòu)體設(shè)計(jì)模塊。而在結(jié)構(gòu)體模塊中又內(nèi)嵌有進(jìn)程執(zhí)行單元。 調(diào)用VHDL庫(kù) 使用library語(yǔ)句,本程序應(yīng)用了VHDL庫(kù)中的“通用ieee庫(kù)”和“標(biāo)準(zhǔn)std庫(kù)” 。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity實(shí)體設(shè)計(jì)模塊 entity dianti is port ( clk : in std_logic;--時(shí)鐘信號(hào)(頻率為2Hz) full,deng,quick,clr : in std_logic; --超載、關(guān)門中斷、提前關(guān)門、清除報(bào)警信號(hào) c_u1,c_u2,c_u3,c_u4,c_u5: in std_logic; --電梯外人的上升請(qǐng)求信號(hào) c_d2,c_d3,c_d4,c_d5,c_d6: in std_logic; --電梯外人的下降請(qǐng)求信號(hào) d1,d2,d3,d4,d5,d6 : in std_logic;--電梯內(nèi)人的請(qǐng)求信號(hào) g1,g2,g3,g4,g5,g6 : in std_logic;--到達(dá)樓層信號(hào) door : out std_logic_vector(1 downto 0);--電梯門控制信號(hào) led : out std_logic_vector(6 downto 0);--電梯所在樓層顯示(數(shù)碼管顯示) led_c_u:out std_logic_vector(5 downto 0);--電梯外人上升請(qǐng)求信號(hào)顯示 led_c_d:out std_logic_vector(5 downto 0);--電梯外人下降請(qǐng)求信號(hào)顯示 led_d : out std_logic_vector(5 downto 0);--電梯內(nèi)請(qǐng)求信號(hào)顯示 wahaha : out std_logic;--看門狗報(bào)警信號(hào) ud,alarm : out std_logic;--電梯運(yùn)動(dòng)方向顯示,超載警告信號(hào) up,down : out std_logic );--電機(jī)控制信號(hào)和電梯運(yùn)動(dòng) end dianti; (3)archi結(jié)構(gòu)體設(shè)計(jì)模塊和process進(jìn)程執(zhí)行單元 architecture behav of dianti is signal d11,d22,d33,d44,d55,d66:std_logic; --電梯內(nèi)人請(qǐng)求信號(hào)寄存信號(hào) signal c_u11,c_u22,c_u33,c_u44,c_u55:std_logic;--電梯外人上升請(qǐng)求信號(hào)寄存信號(hào) signal c_d22,c_d33,c_d44,c_d55,c_d66:std_logic;--電梯外人下降請(qǐng)求信號(hào)寄存信號(hào) signal q:integer range 0 to 1;--分頻信號(hào) signal q1:integer range 0 to 6;--關(guān)門延時(shí)計(jì)數(shù)器 signal q2:integer range 0 to 9;--看門狗計(jì)數(shù)器 signal dd,cc_u,cc_d,dd_cc:std_logic_vector(5 downto 0);--電梯內(nèi)外請(qǐng)求信號(hào)寄存器 signal opendoor:std_logic;--開門使能信號(hào) signal updown:std_logic;--電梯運(yùn)動(dòng)方向信號(hào)寄存器 signal en_up,en_dw:std_logic;--預(yù)備上升、預(yù)備下降預(yù)操作使能信號(hào) begin process(clk) begin 。。。(進(jìn)程語(yǔ)句具體看附錄) end behav; 5.2.3具體語(yǔ)句設(shè)計(jì)說(shuō)明 上文已說(shuō)明了構(gòu)成VHDL程序的兩大部分—實(shí)體和結(jié)構(gòu)體的相關(guān)語(yǔ)句。在這些語(yǔ)句里,賦值語(yǔ)句占了相當(dāng)一部分。在VHDL語(yǔ)言里,賦值符號(hào)一般都是“<=” 符號(hào),具體形式如下: begin if clkevent and clk=1 then if clr=1 then q1<=0;q2<=0;wahaha<=0; elsif full=1 then alarm<=1; q1<=0; if q1>=3 then door<="10"; else door<="00"; end if; 。。。 VHDL語(yǔ)言也具有與一般編程語(yǔ)言相同的一些語(yǔ)句邏輯結(jié)構(gòu),如上述中的“if…then…elsif…then…;”等。這是VHDL中的順序語(yǔ)句,與我們常見的C語(yǔ)言中的if作為條件語(yǔ)句不同。 在結(jié)構(gòu)體中對(duì)電梯的運(yùn)行行為作出描述,其中電梯處于二樓…五樓情況復(fù)雜些,以下給出二樓情況的具體說(shuō)明。 elsif g2=1 then led<="0010010"; --電梯到達(dá)2樓,數(shù)碼管顯示2 if updown=1 then --電梯前一運(yùn)動(dòng)狀態(tài)位上升 if d22=1 or c_u22=1 then d22<=0; c_u22<=0; opendoor<=1; --有當(dāng)前層的請(qǐng)求,則電梯進(jìn)入開門狀態(tài) elsif dd_cc>"00000011" then en_up<=1;en_dw<=0; opendoor<=0; --有上升請(qǐng)求,則電梯進(jìn)入預(yù)備上升狀態(tài) elsif dd_cc<"00000010" then en_dw<=1;en_up<=0; opendoor<=0;--有下降請(qǐng)求,則電梯進(jìn)入預(yù)備下降狀態(tài) end if; --電梯前一運(yùn)動(dòng)狀態(tài)為下降 elsif d22=1 or c_d22=1 then d22<=0; c_d22<=0;opendoor<=1; --有當(dāng)前層的請(qǐng)求,則電梯進(jìn)入開門狀態(tài) elsif dd_cc<"00000010" then en_dw<=1;en_up<=0; opendoor<=0; --有下降請(qǐng)求,則電梯進(jìn)入預(yù)備下降狀態(tài) elsif dd_cc>"00000011" then en_up<=1;en_dw<=0; opendoor<=0; --有上升請(qǐng)求,則電梯進(jìn)入預(yù)備上升狀態(tài) end if; 在上述語(yǔ)句中的“elsif g2=‘1’then led<=“0010010;”,led的賦值之所以為“0010010”是根據(jù)共陽(yáng)極七段數(shù)字顯示器的發(fā)光段排列的。 可發(fā)光段a、b、c、e、g形成一個(gè)2字。以此類推,在一樓時(shí)led賦值為“100111” ,三樓時(shí)為“0000110”,四樓時(shí)為…… 在進(jìn)程執(zhí)行單元里,對(duì)電梯在樓層時(shí)的操作情況作出了描述,例如:開門、關(guān)門延時(shí)、超載報(bào)警、故障報(bào)警以及電梯內(nèi)的請(qǐng)求信號(hào)處理,具體說(shuō)明給出如下: process(clk) begin if clkevent and clk=1 then if clr=1 then q1<=0;q2<=0;wahaha<=0;--清除故障報(bào)警 elsif full=1 then alarm<=1; q1<=0;--超載報(bào)警 if q1>=3 then door<="10"; else door<="00"; end if; elsif q=1 then q<=0;alarm<=0; if q2=3 then wahaha<=1; --故障報(bào)警 else if opendoor=1 then door<="10";q1<=0;q2<=0;up<=0;down<=0;--開門操作 elsif en_up=1 then --上升預(yù)操作 if deng=1 then door<="10";q1<=0;q2<=q2+1;--關(guān)門中斷 elsif quick=1 then q1<=3;--提前關(guān)門 elsif q1=6 then door<="00";updown<=1;up<=1; --關(guān)門完畢,電梯進(jìn)入上升狀態(tài) elsif q1>=3 then door<="01";q1<=q1+1; --電梯進(jìn)入關(guān)門狀態(tài) else q1<=q1+1;door<="00"; --電梯進(jìn)入等待狀態(tài) end if; elsif en_dw=1 then --下降預(yù)操作 if deng=1 then door<="10";q1<=0;q2<=q2+1; elsif quick=1 then q1<=3; elsif q1=6 then door<="00";updown<=0;down<=1; elsif q1>=3 then door<="01";q1<=q1+1; else q1<=q1+1;door<="00"; end if; end if; 。。。 else q<=1;alarm<=0; --清除超載報(bào)警 if d1=1 then d11<=d1; --對(duì)電梯內(nèi)人請(qǐng)求信號(hào)進(jìn)行檢測(cè)和寄存 elsif d2=1 then d22<=d2; elsif d3=1 then d33<=d3; elsif d4=1 then d44<=d4; elsif d5=1 then d55<=d5; elsif d6=1 then d66<=d6; end if; if c_u1=1 then c_u11<=c_u1; --對(duì)電梯外人上升請(qǐng)求信號(hào)進(jìn)行檢測(cè)和寄存 elsif c_u2=1 then c_u22<=c_u2; elsif c_u3=1 then c_u33<=c_u3; elsif c_u4=1 then c_u44<=c_u4; elsif c_u5=1 then c_u55<=c_u5; end if; if c_d2=1 then c_d22<=c_d2; --對(duì)電梯外人下降請(qǐng)求信號(hào)進(jìn)行檢測(cè)和寄存 elsif c_d3=1 then c_d33<=c_d3; elsif c_d4=1 then c_d44<=c_d4; elsif c_d5=1 then c_d55<=c_d5; elsif c_d6=1 then c_d66<=c_d6; end if; dd<=d66&d55&d44&d33&d22&d11; -電梯內(nèi)人請(qǐng)求信號(hào)并置 cc_u<=0&c_u55&c_u44&c_u33&c_u22&c_u11; --電梯外人上升請(qǐng)求信號(hào)并置 cc_d<=c_d66&c_d55&c_d44&c_d33&c_d22&0; --電梯外人下降請(qǐng)求信號(hào)并置 dd_cc<=dd or cc_u or cc_d; --電梯內(nèi)、外人請(qǐng)求信號(hào)進(jìn)行綜合 end if; ud<=updown; --電梯運(yùn)動(dòng)狀態(tài)顯示 led_d<=dd; --電梯內(nèi)人請(qǐng)求信號(hào)顯示 led_c_u<=cc_u; --電梯外人上升請(qǐng)求信號(hào)顯示 led_c_d<=cc_d; --電梯外人下降請(qǐng)求信號(hào)顯示 end if; 5.3 程序調(diào)試及引腳鎖定 (1)建立好工作目錄,以便設(shè)計(jì)工程項(xiàng)目的存儲(chǔ),打開QuartusII軟件, (2)在工具欄中選擇“新建”按鈕。選擇“Text Editor file”,如圖5.3所示。 圖5.3 (3) 在文本輸入界面內(nèi)進(jìn)行程序輸入,5.4所示 圖5.4 (4)輸入完畢后,需要對(duì)程序進(jìn)行保存。注意文件名和實(shí)體定義名必須保持一致,即dianti,文件后綴名為vhd。 (5)保存以后,對(duì)程序進(jìn)行編譯。在編譯前,需要把文件設(shè)置為頂層文件或工程文件 Project。選擇菜單“Project”中的“Set as Top-Level Entity”。 (6)在“QuartusII”里選擇“Processing”下拉菜單中的“Start Compilation”, 此時(shí),QuartusII軟件會(huì)對(duì)程序進(jìn)行糾錯(cuò)等處理。 (7)然后開始鎖引腳,參考附錄二圖2,引腳鎖定如圖5.5。 圖5.5 到此程序調(diào)式及引腳鎖定完成。 第六章 程序仿真 6.1建立波形輸入 (1) 編譯完成后,新建波形編輯器進(jìn)行設(shè)計(jì)仿真。選擇菜單“File” 中的“New”項(xiàng),在New窗口中選擇“Vector Waveform File”,單擊OK按鈕,即出現(xiàn)空白的波形編譯器如圖6.1所示。 (2)設(shè)置仿真時(shí)間區(qū)域,在“Edit”菜單中選擇“End Time”項(xiàng),在彈出窗口中設(shè)置,設(shè)置完后對(duì)文件進(jìn)行保存。同樣使用文件名dianti,后綴名則改為vwf。 (3)將工程dianti的端口信號(hào)名選入波形編輯器中。方法是在編輯器左邊Name下的空白處右擊選擇“Insert Node Or Bus”項(xiàng),彈出對(duì)話框,在Node Filter框中選“Pins:all”,單擊List按鈕,下方的Nodes Found 窗口中出現(xiàn)設(shè)計(jì)工程的所有端口引腳名。 (4) 創(chuàng)立輸入波形。對(duì)程序進(jìn)行仿真,觀察輸出信號(hào),得出結(jié)論。如對(duì)時(shí)鐘信賦于周期如下圖7.1所示。設(shè)置好的輸入波形如圖6.2所示。 圖6.1設(shè)置時(shí)鐘clk的周期 圖6.2設(shè)計(jì)好的輸入波形 6.2電梯功能的實(shí)現(xiàn)與仿真 6.2.1 仿真步驟 (1)仿真器參數(shù)設(shè)置。選擇菜單“Assignment”中的“Settings”,在“Settings” 窗口下選擇“Category”下的“Simulator”,右側(cè)設(shè)置如下圖6.3所示 圖6.3選擇仿真控制 (2) 啟動(dòng)仿真器?,F(xiàn)在所有設(shè)置進(jìn)行完畢,在菜單Processing項(xiàng)下選擇Start Simulation,直到出現(xiàn)Simulation was successful,仿真結(jié)束。仿真結(jié)果如下圖6.4和圖6.5。 圖6.4電梯控制程序仿真圖 圖6.5電梯控制程序仿真局部放大圖1 6.2.2 電梯功能實(shí)現(xiàn)與仿真結(jié)果分析 以下將以“電梯停在- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 自動(dòng) 升降 電梯 控制 設(shè)計(jì)
鏈接地址:http://www.820124.com/p-8779252.html