

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 大 連 理 工 大 學(xué) 本 科 畢 業(yè) 設(shè) 計(論 文)</p><p> 自動電梯模擬控制系統(tǒng)</p><p> The Simulative Control System of The Automatic Elevator</p><p><b> 摘 要</b></p><p>
2、 隨著城市化進(jìn)程的加快,一座座現(xiàn)代化的高樓拔地而起,而電梯也成為現(xiàn)代建筑必備的基礎(chǔ)設(shè)施。電梯作為一種交通工具,不僅要關(guān)注它的安全性,而且希望與它的信息交互能更為人性化。而隨著嵌入式系統(tǒng)和設(shè)備被廣泛的應(yīng)用于各種智能控制領(lǐng)域,開發(fā)一套更為智能的電梯控制系統(tǒng)變得方便可行。 </p><p> 本文旨在使用英倍特EDUKIT-Ⅲ實驗開發(fā)板和Linux操作系統(tǒng)完成自動電梯模擬控制系統(tǒng)的設(shè)計與實現(xiàn)。首先,根據(jù)系統(tǒng)開發(fā)需求,
3、搭建了Linux開發(fā)環(huán)境。其次,本文通過對自動電梯進(jìn)行需求分析,詳細(xì)制定了電梯的運行規(guī)則,并根據(jù)運行規(guī)則設(shè)計實現(xiàn)了電梯的控制運行算法。最后,系統(tǒng)使用開發(fā)板上的液晶顯示屏作為顯示設(shè)備,完成了模擬系統(tǒng)的演示過程。本文詳細(xì)設(shè)計了乘客與電梯的信息交互過程,基于Linux幀緩沖(Framebuffer)設(shè)備驅(qū)動程序開發(fā)了在LCD上顯示電梯的狀態(tài)、乘客的請求以及電梯動態(tài)運行效果等信息的應(yīng)用程序。系統(tǒng)還使用開發(fā)板上的5*4小鍵盤上的部分按鍵模擬電梯按
4、鈕,把鍵盤作為乘客信息輸入端。</p><p> 本文使用功能性測試方法對程序進(jìn)行了測試。最終,仿真程序能夠根據(jù)不同乘客向自動電梯模擬系統(tǒng)輸入的內(nèi)、外部不同的請求信息,指揮電梯按照運行規(guī)則運行,并在LCD上顯示相應(yīng)信息。</p><p> 關(guān)鍵詞:電梯;LCD;交互;Linux;信息</p><p> The Simulative Control Syste
5、m of The Automatic Elevator </p><p><b> Abstract</b></p><p> Along with the acceleration of urbanization, lots of modern tall buildings rising straight from the ground, the elevato
6、r has become a necessary infrastructure of the modern architecture. The elevator, as one kind of transportation vehicle, is not only concerned on its security, but also is expected that the interaction with it can be use
7、r-friendly. And along with the embedded system and equipment widely used in the intelligent control domain, building a set of more intelligent elevator control s</p><p> This article is for the purpose of u
8、sing Embest EDUKIT-Ⅲ experiment board and the Linux operating system to complete the design and realization of the simulation control system of the automatic elevator. First, according to the system’s demand, build the L
9、inux development environment. Second, through carrying on analysis to the requirement of the automatic elevator, this article formulated the elevator's movement rule in detail, and realized elevator's control alg
10、orithm according to the movement</p><p> According to the functionality test method, this article carried on the test to the procedure. Finally, this simulated program can act according to the input informa
11、tion which is from the passenger outside and inside, directed the elevator to move according to the movement rule, and demonstrated the corresponding information on LCD.</p><p> Key Words:elevator;LCD;inter
12、action;Linux;information</p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p> AbstractII</p><p><b> 1 緒論1</b></p><
13、p> 1.1 課題的背景及研究意義1</p><p> 1.2 嵌入式系統(tǒng)1</p><p> 1.2.1 嵌入式系統(tǒng)簡介1</p><p> 1.2.2 嵌入式系統(tǒng)的發(fā)展2</p><p> 1.2.3 嵌入式系統(tǒng)的應(yīng)用領(lǐng)域2</p><p> 1.2.4 嵌入式系統(tǒng)的組成和特點2<
14、;/p><p> 1.3 本文主要工作3</p><p> 2 系統(tǒng)軟硬件平臺及開發(fā)環(huán)境構(gòu)建3</p><p> 2.1 Linux操作系統(tǒng)簡介3</p><p> 2.2 系統(tǒng)硬件平臺介紹5</p><p> 2.2.1 ARM微處理器簡介5</p><p> 2.2.2 E
15、DUKIT-Ⅲ實驗平臺介紹5</p><p> 2.3 系統(tǒng)開發(fā)環(huán)境的構(gòu)建7</p><p> 2.3.1 利用Cygwin安裝建立模擬開發(fā)環(huán)境7</p><p> 2.3.2 交叉編譯環(huán)境的建立7</p><p> 3 電梯系統(tǒng)總體架構(gòu)及各模塊的實現(xiàn)9</p><p> 3.1 電梯系統(tǒng)總體架構(gòu)及
16、功能模塊劃分9</p><p> 3.1.1 電梯系統(tǒng)簡介及框架9</p><p> 3.1.2 系統(tǒng)功能模塊劃分及描述10</p><p> 3.1.3 系統(tǒng)使用說明10</p><p> 3.2電梯控制模塊的設(shè)計與實現(xiàn)11</p><p> 3.2.1 系統(tǒng)設(shè)計要求11</p>
17、<p> 3.2.2 電梯運行規(guī)則12</p><p> 3.2.3 電梯系統(tǒng)流程圖12</p><p> 3.2.4 電梯控制狀態(tài)劃分及遷移規(guī)則14</p><p> 3.2.5 電梯各控制狀態(tài)的具體實現(xiàn)15</p><p> 3.3 系統(tǒng)輸入模塊的設(shè)計與實現(xiàn)19</p><p> 3
18、.3.1 系統(tǒng)輸入模塊功能分析19</p><p> 3.3.2 ZLG7290器件工作原理19</p><p> 3.3.3 加載I2C模塊20</p><p> 3.3.4 輸入模塊應(yīng)用程序?qū)崿F(xiàn)20</p><p> 3.4 系統(tǒng)顯示模塊的設(shè)計與實現(xiàn)21</p><p> 3.4.1 顯示系統(tǒng)界
19、面設(shè)計21</p><p> 3.4.2 LCD設(shè)備顯示原理24</p><p> 3.4.3 基礎(chǔ)圖形顯示實現(xiàn)25</p><p> 3.4.4 字符的顯示實現(xiàn)26</p><p> 3.4.5 圖片的顯示實現(xiàn)27</p><p> 4 電梯系統(tǒng)的測試28</p><p>
20、;<b> 結(jié) 論29</b></p><p> 參 考 文 獻(xiàn)30</p><p><b> 致 謝31</b></p><p><b> 1 緒論</b></p><p> 1.1 課題的背景及研究意義</p><p>
21、 1854年,在紐約水晶宮舉行的世界博覽會上,美國人奧的斯第一次向世人展示了他的發(fā)明——歷史上第一部安全升降梯。1900年,美國奧的斯電梯公司為上海提供2臺電梯。從此,世界電梯歷史上展開了中國的一頁。一個半世紀(jì)的風(fēng)風(fēng)雨雨,翻天覆地的是歷史的變遷,永恒不變的是電梯提升現(xiàn)代人生活質(zhì)量的承諾。現(xiàn)代人的生活已離不開電梯。</p><p> 隨著高層樓宇在一些大中城市迅速增多,電梯越來越多地走進(jìn)人們的生活,成為現(xiàn)代高層建
22、筑所必須的基本設(shè)備,作為一種特殊的垂直交通工具,存在著這樣的需求:目前大部分電梯內(nèi)部和樓道外部,顯示電梯運行狀態(tài)(層站、運行方向等信息)多采用LED顯示板,顯示內(nèi)容單調(diào),所以設(shè)計和開發(fā)一套使用LCD作為顯示設(shè)備的自動電梯模擬控制系統(tǒng)軟件,能顯示更加豐富多彩信息,具有很大的實用價值。</p><p> 近年來,嵌入式技術(shù)迅速發(fā)展,成為技術(shù)研究和產(chǎn)品開發(fā)的熱點之一,嵌入式系統(tǒng)的應(yīng)用逐步滲透到工業(yè)控制、智能儀器、通信
23、設(shè)備等人們生活的各個領(lǐng)域。極大地提高了設(shè)備、儀器和生產(chǎn)過程的智能化、自動化水平,方便了人們的生產(chǎn)和生活。本系統(tǒng)采用以嵌入式微處理器S3C2410為核心的硬件平臺,利用英蓓特EDUKIT-Ⅲ實驗箱上外掛的液晶顯示屏,通過綜合設(shè)計開發(fā),可以顯示中文漢字、英文字母、動態(tài)圖形,并可以實時更新,畫面色彩豐富,動畫流暢,界面設(shè)計人性化。按照用戶需求進(jìn)行個性化定制,在嵌入式ARM平臺上實現(xiàn)自動電梯模擬控制系統(tǒng)的功能。本系統(tǒng)設(shè)計合理,運行高效可靠,通用
24、性強(qiáng),安裝升級方便。</p><p><b> 1.2 嵌入式系統(tǒng)</b></p><p> 1.2.1 嵌入式系統(tǒng)簡介</p><p> 嵌入式系統(tǒng)可以看作是與通用計算機(jī)相對應(yīng)的概念,通用計算機(jī)系統(tǒng)具有計算機(jī)的標(biāo)準(zhǔn)形態(tài),裝配各種應(yīng)用軟件,以雷同的面目出現(xiàn)并應(yīng)用于社會的各個方面,而嵌入式系統(tǒng)硬件差異巨大,幾乎沒有可以通用的驅(qū)動和應(yīng)用軟件,
25、以嵌入式的形式隱藏在各種裝置、產(chǎn)品和系統(tǒng)中。嵌入式系統(tǒng)在應(yīng)用數(shù)量上遠(yuǎn)遠(yuǎn)超過了通用計算機(jī)系統(tǒng),許多大型電腦系統(tǒng),事實上也是許許多多小的嵌入式系統(tǒng)組成的。</p><p> 從應(yīng)用上考慮,嵌入式系統(tǒng)是用于控制、監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝置;微機(jī)學(xué)會定義嵌入式系統(tǒng)是以嵌入式應(yīng)用為目的的計算機(jī)系統(tǒng),可分為系統(tǒng)級、板級、片級。嵌入式系統(tǒng)是設(shè)計完成特定功能的硬件和軟件,并使其緊密偶合在一起的專用計算機(jī)系統(tǒng),該專用計算機(jī)
26、系統(tǒng)對軟件和硬件的可裁剪性、功能、可靠性、成本、體積、功耗等方面提出嚴(yán)格要求。</p><p> 1.2.2 嵌入式系統(tǒng)的發(fā)展</p><p> 嵌入式系統(tǒng)發(fā)展有30多年的歷史,期間從8位、16位的微處理器,形成系列化、模塊化的單板計算機(jī),軟件大多采用匯編語言或者宏語言來編寫,到20世紀(jì)80年代,得益于微電子工藝水平的提高,能夠?qū)⑶度胧綉?yīng)用所需要的微處理器、 I/O接口、A/D、D/A
27、轉(zhuǎn)換器、串行接口以及RAM、ROM等都集成到一個超大規(guī)模的集成電路(VLSL)中,制造出面向I/0設(shè)計的微控制器,俗稱單片機(jī)。隨后,出現(xiàn)了嵌入式操作系統(tǒng)如VxWorks、WinCE以及嵌入式Linux等。近年來,嵌入式系統(tǒng)發(fā)展更是日新月異,硬件方面,面向?qū)崟r信號處理算法的DSP向高速、高精度、低功耗方向發(fā)展,32位微控制器己成為市場主流,嵌入式CPU主頻越來越高,并開始支持多媒體,軟件方面,出現(xiàn)了很多優(yōu)秀的嵌入式操作系統(tǒng)系列,跨平臺的軟
28、件開發(fā)技術(shù)也開始從通用計算機(jī)延展到嵌入式設(shè)備上。</p><p> 1.2.3 嵌入式系統(tǒng)的應(yīng)用領(lǐng)域</p><p> 近年來,嵌入式產(chǎn)品成為信息產(chǎn)業(yè)的主流,應(yīng)用領(lǐng)域非常廣泛。消費產(chǎn)品及信息家電方面包括手機(jī)、數(shù)碼相機(jī)、數(shù)字電視機(jī)頂盒等;通信設(shè)備如程控交換機(jī)、路由器、集線器等;智能儀器方面包括數(shù)字示波器、醫(yī)療儀器等;在計算機(jī)外部設(shè)備、機(jī)器人、軍事電子設(shè)備和現(xiàn)代武器以及太空科學(xué)方面都有廣泛
29、應(yīng)用,可以說嵌入式系統(tǒng)和嵌入式技術(shù)無處不在。近年來嵌入式系統(tǒng)還廣泛應(yīng)用于工業(yè)控制領(lǐng)域,對生產(chǎn)過程和工業(yè)設(shè)備的各種動作流程進(jìn)行控制,在此類監(jiān)控系統(tǒng)中,嵌入式系統(tǒng)通過傳感器或者信號采集器從外部接收有關(guān)過程的信息,對這些信息進(jìn)行加工處理,然后對執(zhí)行機(jī)構(gòu)發(fā)出控制指令。</p><p> 1.2.4 嵌入式系統(tǒng)的組成和特點</p><p> 整個嵌入式系統(tǒng)由硬件和軟件兩部分組成。其中硬件部分包括
30、嵌入式處理器、存儲器和各類輸入輸出模塊。嵌入式處理器是嵌入式系統(tǒng)的核心。軟件部分包括板級支持包、嵌入式操作系統(tǒng)和應(yīng)用程序。嵌入式系統(tǒng)相對于通用計算機(jī)系統(tǒng)而言具有顯著的特點:</p><p> 嵌入式系統(tǒng)通常是面向特定應(yīng)用的。</p><p> 嵌入式系統(tǒng)的硬件和軟件都必須是高效率地設(shè)計,量體裁衣,去除冗余的。</p><p> 實時操作系統(tǒng)的支持。</p
31、><p> 嵌入式系統(tǒng)與具體應(yīng)用有機(jī)的結(jié)合,其產(chǎn)品具有較長的生命周期。</p><p> 嵌入式系統(tǒng)一般具有一套專門的開發(fā)工具支持。</p><p> 1.3 本文主要工作</p><p> 完成系統(tǒng)的需求分析,整體規(guī)劃系統(tǒng)的設(shè)計與實現(xiàn),并設(shè)計人機(jī)交互界面。</p><p> Linux操作系統(tǒng)內(nèi)核的配置和移植。
32、</p><p> 調(diào)用相關(guān)驅(qū)動的接口函數(shù)實現(xiàn)上層鍵盤和lcd的應(yīng)用程序編寫。</p><p> 自動電梯模擬控制系統(tǒng)的電梯控制算法的實現(xiàn)。</p><p> 2 系統(tǒng)軟硬件平臺及開發(fā)環(huán)境構(gòu)建</p><p> 2.1 Linux操作系統(tǒng)簡介</p><p> Linux操作系統(tǒng)是UNIX操作系統(tǒng)的一種克隆系
33、統(tǒng)。它是由芬蘭赫爾辛基大學(xué)的學(xué)生Linus Torvalds在1991年開發(fā)出來的。此后借助于因特網(wǎng),經(jīng)過全世界各地計算機(jī)愛好者的共同努力,Linux已發(fā)展成一個功能強(qiáng)大的操作系統(tǒng),可以移植在各種不同的體系結(jié)構(gòu)的處理器上,其中主要是32位或是64位處理器。Linux的開發(fā)及其源代碼都是遵守GPL協(xié)議的。Linux相較于其它操作系統(tǒng)具有以下特點:</p><p><b> 源代碼的開放性</b&g
34、t;</p><p> 選用Linux作為嵌入式開發(fā)的操作系統(tǒng),很重要的原因就是Linux的開發(fā)及其源代碼都是遵守GPL協(xié)議的。Linux操作系統(tǒng)源代碼可以從互聯(lián)網(wǎng)上免費下載使用,而且Linux上運行的絕大多數(shù)應(yīng)用程序也是免費得到的。除了公開的源代碼,用戶可以根據(jù)自己的需要對Linux源代碼進(jìn)行修改、剪裁、散布。Linux作為一種可裁剪的軟件平臺系統(tǒng),是發(fā)展未來嵌入式設(shè)備產(chǎn)品的絕佳資源[1]。</p>
35、;<p><b> 設(shè)備的獨立性</b></p><p> 設(shè)備獨立性是指操作系統(tǒng)把所有外部設(shè)備一當(dāng)做文件來看待,只要安裝它們的驅(qū)動程序,任何用戶都可以像使用文件一樣,操縱、使用這些設(shè)備,而不必知道它們的具體存在形式。Linux是具有設(shè)備獨立性的操作系統(tǒng),它的內(nèi)核具有高度的適應(yīng)能力。隨著程序員不斷加入到Linux編程,會有更多的硬件設(shè)備加入到各種Linux內(nèi)核和發(fā)行版本中。
36、另外,由于用戶可以免費得到Linux內(nèi)核源碼,因此,用戶可以修改內(nèi)核源代碼,以便適應(yīng)新增加的外部設(shè)備。</p><p><b> 穩(wěn)定性強(qiáng)</b></p><p> Linux不僅繼承了Unix的優(yōu)點,而且在全球有無數(shù)的人參與Linux核心的改進(jìn)、調(diào)試與測試,因此造就了穩(wěn)定性強(qiáng)的Linux。高可靠性是嵌入式Linux領(lǐng)先于其他嵌入式操作系統(tǒng)最明顯的地方。Linux
37、原先用于服務(wù)器領(lǐng)域,有較高的可靠性。嵌入式Linux中雖然對內(nèi)核進(jìn)行了一些裁減,但是仍然保持了原Linux高可靠性的特點,在應(yīng)用Linux開發(fā)的產(chǎn)品中一般很少有系統(tǒng)崩潰的現(xiàn)象。</p><p><b> 可靠的系統(tǒng)安全</b></p><p> 在Linux操作系統(tǒng)中采取了許多安全技術(shù)措施,包括對讀、寫進(jìn)行權(quán)限控制、帶保護(hù)的子系統(tǒng)、審計跟蹤、核心授權(quán)等,這些措施為
38、網(wǎng)絡(luò)多用戶環(huán)境中的用戶提供了必要的安全保障。</p><p><b> 具有成熟的開發(fā)工具</b></p><p> 開發(fā)嵌入式系統(tǒng)的關(guān)鍵是需要一套良好的開發(fā)和調(diào)試工具,Linux有一套完整的免費的開發(fā)和調(diào)試工具,嵌入式Linux利用GNU項目的C編譯器來編譯程序,使用gdb源程序級調(diào)試器來調(diào)試程序。它們提供了合適的手段,使客戶能夠方便地開發(fā)嵌入式Linux的各種
39、應(yīng)用程序。開發(fā)時可在PC上交叉編譯應(yīng)用程序,調(diào)試時可通過串口telnet登陸硬件平臺,同時可利用NFS調(diào)試已存在PC機(jī)中的文件。</p><p> 可以根據(jù)需要靈活地配置內(nèi)核</p><p> 因為可供嵌入式操作系統(tǒng)使用的存儲容量都十分有限,嵌入式系統(tǒng)要盡量減少體積,不能像普通計算機(jī)那樣采用海量存儲器來進(jìn)行數(shù)據(jù)存儲。通常采用軟件固化的方法,將程序和操作系統(tǒng)嵌入到整個產(chǎn)品里面。而Linu
40、x核心本身采用模塊化的設(shè)計,讓用戶可以根據(jù)自己需要裁減內(nèi)核。用戶完全可以根據(jù)不同的任務(wù)來選擇特定內(nèi)核模塊,而將不用的部分去掉,減少體積,從根本上解決了體積和功能的矛盾。</p><p> 構(gòu)建一個最小的嵌入式Linux系統(tǒng)僅需要三個基本元素:引導(dǎo)實用程序;Linux微內(nèi)核,由內(nèi)存管理、進(jìn)程管理和定時服務(wù)構(gòu)成;初始化過程。而要實現(xiàn)最低限度的工作能力,還需要添加:硬件驅(qū)動程序;一個或多個應(yīng)用進(jìn)程,以提供所需功能。與
41、其他操作系統(tǒng)相比Linux具有更小、更穩(wěn)定、價格競爭力等優(yōu)勢。正是嵌入式操作系統(tǒng)的特殊要求為Linux在嵌入式系統(tǒng)中的發(fā)展提供了廣闊的空間,使得Linux成為嵌入式操作系統(tǒng)中的新貴。</p><p><b> 良好的可移植性</b></p><p> 可移植性是指操作系統(tǒng)從一個平臺轉(zhuǎn)移到另一個平臺,并使它仍能按其自身方式運行的能力。Linux一開始是基于Intel
42、386機(jī)器設(shè)計的,但隨著網(wǎng)絡(luò)的散布,加上有許多工程師致力于各種平臺的移植,使得Linux可以在幾乎覆蓋了所有嵌入式系統(tǒng)的CPU種類的平臺上運行。</p><p> ARM Linux是指成功移植在ARM體系結(jié)構(gòu)上的Linux內(nèi)核[2]。在ARM Linux工程的帶領(lǐng)下,Linux內(nèi)核對ARM體系結(jié)構(gòu)有很好的支持。本系統(tǒng)采用的是Linux 2.6內(nèi)核。</p><p> 2.2 系統(tǒng)硬件
43、平臺介紹</p><p> 2.2.1 ARM微處理器簡介</p><p> ARM公司是全球領(lǐng)先的32位RISC微處理器知識產(chǎn)權(quán)(IP)供應(yīng)商。當(dāng)前,ARM也被當(dāng)作一種技術(shù)的名字(Advanced RISC Machines)和一類微處理器的統(tǒng)稱,是目前應(yīng)用最為廣泛的32位RISC微處理器。</p><p> ARM微處理器及技術(shù)己經(jīng)深入到無線通信、網(wǎng)絡(luò)應(yīng)用
44、、消費類電子產(chǎn)品、成像和安全產(chǎn)品以及工業(yè)控制等各個領(lǐng)域。ARM微處理器的特點是指令長度固定,尋址方式靈活簡單,執(zhí)行效率高,寄存器數(shù)量多,大多數(shù)數(shù)據(jù)操作都可以在寄存器中完成,指令執(zhí)行速度更快,采用16位Thumb和32位ARM雙指令集,能夠兼容8位和16位芯片,并且體積小、低功耗、低成本和高性能。</p><p> ARM公司的各合作廠商生產(chǎn)基于ARM體系結(jié)構(gòu)的處理器,除了具有ARM體系結(jié)構(gòu)的共同特點以外,每個系
45、列的ARM微處理器都具有各自特點和應(yīng)用領(lǐng)域。目前包括以下幾個系列:ARM7系列,ARM9系列,ARM9E系列,ARM10E系列,SecurCore系列,Intel的StrongARM系列和Intel的Xscale系列。</p><p> 2.2.2 EDUKIT-Ⅲ實驗平臺介紹</p><p> 本系統(tǒng)軟件運行的硬件平臺是EMBEST公司生產(chǎn)的英倍特EDUKIT-Ⅲ實驗平臺。該實驗平臺
46、是一款功能強(qiáng)大的32位ARM開發(fā)板,擴(kuò)展了許多外圍硬件資源。根據(jù)本系統(tǒng)需要,主要用到硬件資源包括:</p><p> CPU采用三星公司的S3C2410X微處理器,S3C2410X處理器的工作頻率可達(dá)到203MHZ,但不是只能工作在這個頻率下,通過修改內(nèi)部寄存器的值可以使其工作在不同頻率下,通常所說的超頻也是通過更改CPU的時鐘控制寄存器值實現(xiàn)的。</p><p> 2個標(biāo)準(zhǔn)3線RS2
47、32串行口,波特率可達(dá)bps,串口0作為ARM目標(biāo)板的串口控制終端,用于傳輸編譯好的代碼,并且輸出電梯系統(tǒng)的相關(guān)提示信息。</p><p> Flash在嵌入式系統(tǒng)中常用作存儲需要永久保存的代碼和數(shù)據(jù),鑒于NorFlash和 NandFlash各自的優(yōu)勢和不足,很多設(shè)備的最佳設(shè)計需要同時采用這兩種Flash芯片,本系統(tǒng)中的ARM平臺就是如此。因為 NorFlash可靠性高,讀取操作快和隨機(jī)訪問能力,使得它非常適
48、合用在代碼存儲方面,它的特點是芯片內(nèi)執(zhí)行應(yīng)用程序可以直接在Flash閃存內(nèi)運行,不必把代碼讀到系統(tǒng)RAM中。NandFlash的特點是高密度(同等容量下尺寸小),低價格,較快的寫入和擦除速度,較長的復(fù)寫壽命,NandFlash較 NorFlash容易出現(xiàn)壞塊和位反轉(zhuǎn),在使用NandFlash的時候,需要使用錯誤探測錯誤更正(EDC/ECC)等嚴(yán)格的算法以確??煽啃浴1鞠到y(tǒng)采用NorFlash存儲vivi,嵌入式Linux鏡像,根文件系統(tǒng)
49、和應(yīng)用程序。</p><p> 內(nèi)存為64MByteSDRAM,采用兩片K4S組成,工作在32位模式下,SDRARM是一種揮發(fā)存儲記憶體,不能永久保存數(shù)據(jù),在嵌入式系統(tǒng)中用作代碼運行載體,系統(tǒng)和用戶數(shù)據(jù)、堆棧等均位于SDRAM存儲器中。</p><p> 鍵盤:本系統(tǒng)采用實驗開發(fā)板上自帶的一個5*4的小鍵盤,參看圖2.1。該芯片為工業(yè)級芯片,抗干擾能力強(qiáng),在工業(yè)測控中已有大量應(yīng)用。&l
50、t;/p><p><b> 圖2.1 鍵位圖</b></p><p> 液晶顯示屏(LCD:Liquid Crystal Display)主要用于顯示文本及圖形信息。液晶顯示屏(LCD)具有輕薄、體積小、低耗電量、無輻射危險、平面直角顯示以及影像穩(wěn)定不閃爍等特點,因此在許多電子應(yīng)用系統(tǒng)中,常使用液晶屏作為人機(jī)界面。實驗板外掛有一塊5.7英寸的液晶屏,具體參數(shù)參照表2.
51、1:</p><p> 表2.1 液晶屏主要技術(shù)參數(shù)</p><p> 液晶顯示屏的顯示,要求設(shè)計專門的驅(qū)動與顯示控制電路。驅(qū)動電路包括提供液晶顯示屏的驅(qū)動電源和液晶分子偏置電壓,以及液晶顯示屏的驅(qū)動邏輯;顯示控制部分可以由專門的硬件電路組成,也可以采用集成電路模塊;還可以使用處理器外圍LCD控制模塊。液晶顯示屏按顯示原理分為STN 和TFT 兩種。S3C2410X 處理器集成了LCD
52、 控制器,主要功能是S3C2410X LCD 控制器用于傳輸顯示數(shù)據(jù)和產(chǎn)生控制信號。它支持屏幕水平和垂直滾動顯示。數(shù)據(jù)的傳送采用DMA(直接內(nèi)存訪問)方式,以達(dá)到最小的延遲。它可以支持多種液晶屏,本系統(tǒng)采用STN LCD,屏幕實際大小為320*240。實驗板的驅(qū)動與顯示系統(tǒng)包括S3C2410X片內(nèi)外設(shè)LCD 控制器、液晶顯示屏的驅(qū)動邏輯以及外圍驅(qū)動電路。</p><p> 2.3 系統(tǒng)開發(fā)環(huán)境的構(gòu)建</p
53、><p> 嵌入式系統(tǒng)開發(fā)一般采用開發(fā)主機(jī)和目標(biāo)板模式,需要在開發(fā)主機(jī)上建立開發(fā)環(huán)境。目標(biāo)板用于運行操作系統(tǒng)和系統(tǒng)應(yīng)用軟件,而目標(biāo)板所有到的操作系統(tǒng)的內(nèi)核編譯、應(yīng)用程序的開發(fā)和調(diào)試則需要通過宿主機(jī)來完成。所以需要建立Linux開發(fā)環(huán)境[3]。</p><p> 2.3.1 利用Cygwin安裝建立模擬開發(fā)環(huán)境</p><p> Cygwin是一個在Windows平
54、臺上運行的UNIX模擬環(huán)境。它幾乎包含了所有Linux系統(tǒng)下可用的軟件包,包括各種開發(fā)工具。</p><p> 2.3.2 交叉編譯環(huán)境的建立</p><p> 交叉編譯就是在一個平臺上生成可以在另一個平臺上執(zhí)行的代碼。采用交叉編譯的主要原因在于,多數(shù)嵌入式目標(biāo)機(jī)不能提供足夠的資源供編譯過程使用,因而只好將編譯工作轉(zhuǎn)移到高性能的宿主機(jī)中進(jìn)行。在宿主機(jī)上對即將運行在目標(biāo)機(jī)上的應(yīng)用程序進(jìn)行
55、編譯,生成可在目標(biāo)機(jī)上運行的代碼格式。交叉編譯環(huán)境是由一個編譯器、連接器和解釋器組成的綜合開發(fā)環(huán)境。</p><p> 交叉編譯工具安裝。在Cygwin 開發(fā)環(huán)境下,我們把交叉編譯工具鏈安裝到:$CROSSDIR 目錄下。按以下操作完成安裝:</p><p> 把工具代碼包cross-armtools-linux-edukit2410.tar.bz2 拷貝到/tmp/目錄下。</
56、p><p> 運行Cygwin,執(zhí)行以下命令完成Cygwin 環(huán)境下的Linux 交叉編譯工具安裝:</p><p> $>cd /tmp/</p><p> $>tar –P –xvjf cross-armtools-linux-edukit2410.tar.bz2</p><p> $>source armtools
57、-linux/cross-install.sh</p><p> 環(huán)境變量及編譯開關(guān)設(shè)置搭建一個Linux 開發(fā)、編譯和應(yīng)用程序測試的環(huán)境,需要設(shè)置的開關(guān)較多,為了方便操作,采用提供了的一個命令配置文件set_env_linux.sh,運行命令即可。</p><p> $>souce /tmp/edukit-2410/set_env_linux.sh</p><
58、;p> 源代碼文件安裝和編譯。</p><p> 首先,vivi源代碼安裝與編譯:</p><p> 拷貝Linux Source 文件夾下的vivi-.tar.bz2 文件和Source\patch整個文件夾到$SOURCEDIR/目錄下。</p><p> 運行cygwin,執(zhí)行以下命令完成cygwin 環(huán)境下的vivi 源代碼的安裝:</p
59、><p> $>cd $WORKDIR</p><p> $>tar –xvjf /tmp/edukit-2410/vivi-.tar.bz</p><p> 進(jìn)入vivi源代碼安裝目錄,為實驗系統(tǒng)打入vivi源代碼補(bǔ)?。?lt;/p><p><b> $>cd vivi</b></p>
60、<p> $>patch –p1</tmp/edukit-2410/patch/vivi-.tar.bz2.edukit2410.patch</p><p><b> vivi編譯:</b></p><p> $>make clean</p><p> $>make menuconfig</p&g
61、t;<p><b> $>make</b></p><p> 其次,Linux源代碼安裝和編譯:</p><p> 拷貝Linux Source 文件夾下的linux-2.4.18-rmk7-pxa1-mz5.tar.bz2 文件(和Source\patch 整個文件夾)到$SOURCEDIR/目錄下。</p><p&g
62、t; 運行cygwin,執(zhí)行以下命令完成cygwin 環(huán)境下的Linux 源代碼的安裝:</p><p> $>cd $WORKDIR</p><p> $>tar –xvjf /tmp/edukit-2410/linux-2.4.18-rmk7-pxa1-mz5.tar.bz2</p><p> 進(jìn)入kernel源代碼安裝目錄,為實驗系統(tǒng)打入L
63、inux 源代碼的補(bǔ)丁文件:</p><p> $>cd kernel</p><p> $> patch –p1 </tmp/edukit-2410/patch/linux-2.4.18-rmk7-pxa1-mz5.tar.bz2.edukit2410.patch</p><p> 直接加載配置文件(edukit2410-amd)配置內(nèi)核然
64、后編譯Linux內(nèi)核:</p><p> $>make mrproper</p><p> $>make xconfig</p><p> $>make dep</p><p> $>make clean</p><p> $>make zImage</p><
65、;p> 第三,root文件系統(tǒng)安裝:</p><p> 拷貝Linux Source 文件夾下的root.cramfs.tar.bz2 和mkcramfs 文件到$SOURCEDIR/目錄下。</p><p> 運行cygwin,執(zhí)行以下命令完成cramfs 文件系統(tǒng)源代碼的安裝:</p><p> $>cd $WORKDIR</p>
66、<p> $>tar –xvjf /tmp/edukit-2410/root.cramfs.tar.bz2</p><p><b> 編譯文件系統(tǒng)。</b></p><p> 最后,燒寫文件到Nor flash中(SW104斷開):</p><p> 燒寫vivi映像:選擇1-5扇區(qū)。</p><
67、p> 燒寫Linux內(nèi)核映像:選擇6-17扇區(qū)。</p><p> 燒寫root文件系統(tǒng):選擇18-35扇區(qū)。 </p><p> 3 電梯系統(tǒng)總體架構(gòu)及各模塊的實現(xiàn)</p><p> 3.1 電梯系統(tǒng)總體架構(gòu)及功能模塊劃分</p><p> 3.1.1 電梯系統(tǒng)簡介及框架</p><p> (1)
68、自動電梯模擬控制系統(tǒng)介紹:本系統(tǒng)主要設(shè)計目標(biāo)就是在實驗開發(fā)板上模擬單部電梯運送乘客的整個運行過程,并將整個運行過程在液晶顯示屏上演示。所以本課題所設(shè)計的系統(tǒng)主要完成三項任務(wù):一、仿真程序演示界面的設(shè)計與實現(xiàn),系統(tǒng)使用液晶顯示屏完成這個任務(wù);二、電梯控制運行算法的設(shè)計與實現(xiàn);三、用戶信息輸入的采集。系統(tǒng)使用8個按鍵模擬八個樓層按鈕,2個按鍵模擬上、下請求按鈕,另使用4個按鍵作為輔助按鈕。</p><p> (2)
69、 電梯的總體框架:根據(jù)本系統(tǒng)的主要功能,把電梯劃分為三大部分,具體參照圖3.1:</p><p> 圖3.1 系統(tǒng)總體框架圖</p><p> 3.1.2 系統(tǒng)功能模塊劃分及描述</p><p> 參照上面的總體框架,本文所研究的電梯模擬控制系統(tǒng)可以把組成系統(tǒng)的三大部分劃分為以下五個功能模塊:</p><p> (1) 系統(tǒng)初始化模塊
70、:本模塊是系統(tǒng)的基礎(chǔ)模塊,負(fù)責(zé)對電梯、界面進(jìn)行初始化。并顯示一些說明性的文字和標(biāo)題圖片。</p><p> (2) 電梯控制模塊:本模塊是整個系統(tǒng)的最關(guān)鍵模塊,它負(fù)責(zé)派遣電梯執(zhí)行停止、運行、開門、關(guān)門的任務(wù),指揮電梯按照運行規(guī)則運行從而滿足乘客需求。</p><p> (3) 系統(tǒng)輸入控制模塊:本模塊把5*4小鍵盤作為乘客信息輸入端,乘客通過鍵盤上模擬的電梯按鈕向系統(tǒng)輸入請求信息。鍵盤
71、掃描程序通過掃描按鍵采集輸入信息。輸入控制程序?qū)π畔⑦M(jìn)行篩選、封裝。</p><p> (4) 系統(tǒng)顯示控制模塊:本模塊通過LCD顯示電梯目前的運行信息,如電梯狀態(tài)、目前的位置、內(nèi)部樓層和外部樓道的請求信息等;并且顯示出電梯運行的動態(tài)效果。</p><p> (5) 系統(tǒng)時間控制模塊:本模塊負(fù)責(zé)對電梯的運行,停止,開門,關(guān)門的時間進(jìn)行控制。</p><p>
72、3.1.3 系統(tǒng)使用說明</p><p> 本文所研究的系統(tǒng)是一個電梯控制的模擬系統(tǒng),由于硬件條件的限制,所以模擬系統(tǒng)使用時難免沒有目前市場上被廣泛使用著的真實電梯簡單方便。為了方便用戶使用本系統(tǒng),本文制定了一些針對本系統(tǒng)的使用規(guī)定,下面進(jìn)行詳細(xì)的說明。</p><p><b> (1) 電梯內(nèi)部</b></p><p> 本系統(tǒng)有八個按
73、鍵模擬電梯里的八個樓層按鈕,每一個按鈕對應(yīng)一個樓層,內(nèi)部乘客使用這些按鈕呼叫所請求的樓層。</p><p> (2) 電梯外部(樓道)</p><p> 除了地下一層和頂層,每一層都有一個上行按鈕和一個下行按鈕,乘客可以呼叫上樓或下樓。頂樓只有一個下樓按鈕,而地下一層(-1樓)只有一個上樓按鈕。本系統(tǒng)有兩個按鍵用于模擬上行和向下這兩個按鈕。</p><p>
74、(3) 特殊使用規(guī)則</p><p> 本系統(tǒng)規(guī)定:首先,系統(tǒng)有按鍵A和按鍵B用于判定乘客的請求是在電梯外部發(fā)出的還是電梯從內(nèi)部發(fā)出的。系統(tǒng)用戶必需先按下這兩個按鍵之一,否則輸入的請求視為無效。其次,發(fā)出外部請求的乘客必需輸入樓層按鈕,表明他發(fā)出外部請求時所位于的樓層。系統(tǒng)有八個按鍵分別表示樓層按鈕。最后,內(nèi)部和外部請求都輸入完成后必須輸入結(jié)束鍵,沒按下結(jié)束鍵,程序不會執(zhí)行下去。具體按鍵定義請求參照表3.1。&
75、lt;/p><p> 根據(jù)特殊使用規(guī)則并參照表3.1,我們制定了以下的使用步驟,用戶必需嚴(yán)格按照使用步驟使用本模擬系統(tǒng):</p><p> (1) 輸入A或是B。</p><p> (2) 輸入0-7。</p><p> 注意:如果輸入A,0-7表示內(nèi)部乘客請求到達(dá)的樓層;如果輸入的是B,表示外部乘客發(fā)出請求時位于的樓層。</p&g
76、t;<p> (3) 如果輸入的是B,輸入+或是-。</p><p> 注意:輸入0時不能輸入-;輸入7時不能輸入+。</p><p><b> (4) 輸入E。</b></p><p> 表3.1 按鍵定義表</p><p> 舉例說明:輸入A,3,B,2,+,E表示內(nèi)部(A)有乘客想要去三樓(
77、3);同時二樓(2)有乘客想要上樓(+),所有請求輸入完成(E)。</p><p> 3.2電梯控制模塊的設(shè)計與實現(xiàn)</p><p> 3.2.1 系統(tǒng)設(shè)計要求</p><p> 本文采用了傳統(tǒng)的軟件工程方法對自動電梯模擬系統(tǒng)進(jìn)行了需求分析。通過分析我們了解到電梯模擬控制系統(tǒng)需要在一個共有8層的樓宇中運行,它必需具備以下功能:</p><p
78、> (1) 每層樓電梯入口處設(shè)有上行、下行請求按鈕,電梯內(nèi)設(shè)有乘客請求停站的樓層呼叫按鈕。</p><p> (2) 有電梯所處位置指示裝置,電梯上行、下行狀態(tài)指示裝置,所有系統(tǒng)請求信息指示裝置。</p><p> (3) 每隔一定時間,電梯上升或是下降一層樓,同時顯示電梯上升和下降的信息。</p><p> (4) 電梯到達(dá)有停站請求的樓層后,該樓層
79、有指示裝置表明到達(dá)了停站請求樓層,電梯切換為開門狀態(tài)。開門一定時間后,電梯自動進(jìn)入關(guān)門狀態(tài),然后電梯繼續(xù)運行。</p><p> (5) 系統(tǒng)能夠記憶電梯內(nèi)、外部的所有請求信號,并按照電梯運行規(guī)則依次的響應(yīng)這些請求,每個請求信號保留至執(zhí)行后撤除。 </p><p> 3.2.2 電梯運行規(guī)則</p><p> 本文針對系統(tǒng)設(shè)計要求,制定出了以下六條運行規(guī)則:&
80、lt;/p><p> (1) 電梯接通電源時,電梯必需停留在最底層。</p><p> (2) 電梯可以到達(dá)并且必需能夠到達(dá)所在樓宇的每一層,但是電梯只能在該樓宇的最低層至最高層之間運行。</p><p> (3) 嚴(yán)格規(guī)定:電梯內(nèi)部請求信號優(yōu)先級高于電梯外部請求信號。</p><p> (4) 電梯處于上升模式時,只響應(yīng)比電梯所在位置高
81、的樓層的上樓請求信號,而保留下樓的信號,由下而上逐個執(zhí)行;直到最后一個請求執(zhí)行完畢,再執(zhí)行下樓的信號請求(同時由上往下執(zhí)行);如更高樓層次有下樓請求,則直接升到有下樓請求的樓層接收乘客,然后轉(zhuǎn)換電梯到下降模式。</p><p> (5) 電梯處于下降模式時與上升模式時相反,只響應(yīng)比電梯所在位置低的樓層的下樓請求信號,而保留上樓的信號,由上而下逐個執(zhí)行;直至最后一個請示執(zhí)行完畢,再響應(yīng)向上樓的信號(同時由下往上執(zhí)
82、行);如更低樓層有上樓請求,則直接降到有上樓請求的樓層接收乘客,然后轉(zhuǎn)換電梯到上升模式。</p><p> (6) 電梯執(zhí)行完所有的請求后,應(yīng)停留在最后所在的樓層不動,等待新的請求。</p><p> 3.2.3 電梯系統(tǒng)流程圖</p><p> 現(xiàn)在,我們經(jīng)常使用到電梯。在日常的使用中我們發(fā)現(xiàn):電梯的整個運行過程是一個不斷循環(huán)往復(fù)的過程,不斷重復(fù)著停止、開門
83、、關(guān)門、運行的狀態(tài)。圖3.2是電梯運行過程的流程圖。</p><p> 圖3.2 電梯系統(tǒng)流程圖</p><p> 3.2.4 電梯控制狀態(tài)劃分及遷移規(guī)則</p><p> 根據(jù)電梯運行的流程,本文對電梯的運行過程進(jìn)行簡化和規(guī)范。我們把電梯劃分為停止、運行、開門、關(guān)門四種控制狀態(tài),詳情請參考圖3.3。本文的停止?fàn)顟B(tài)是指電梯在沒有任何請求的情況下的靜止?fàn)顟B(tài),而不
84、是指電梯在運行過程中開門前的停頓狀況。本文忽略停頓狀況把電梯從運行狀態(tài)直接遷移為開門狀態(tài)。</p><p> 圖3.3 電梯控制狀態(tài)遷移圖</p><p> 從上圖我們可以看到,電梯根據(jù)控制狀態(tài)的遷移規(guī)則進(jìn)行狀態(tài)遷移。</p><p> (1) 系統(tǒng)初始時,電梯處于停止?fàn)顟B(tài)。</p><p> (2) 電梯處于停止?fàn)顟B(tài)時,根據(jù)發(fā)出請求
85、的樓層不同可以分別遷移到運行或者開門兩個不同狀態(tài)。</p><p> (3) 電梯在運行狀態(tài)時,如果沒有到達(dá)請求樓層是發(fā)生自遷移,即保持運行狀態(tài)不變;當(dāng)?shù)竭_(dá)請求樓層時,遷移到開門狀態(tài)。</p><p> (4) 電梯處于開門狀態(tài)一段時間后必然會遷移到關(guān)門狀態(tài)。</p><p> (5) 電梯處于關(guān)門狀態(tài)是根據(jù)是否有請求可以遷移到運行狀態(tài)或者遷移到停止?fàn)顟B(tài)。&l
86、t;/p><p> 3.2.5 電梯各控制狀態(tài)的具體實現(xiàn)</p><p> 電梯各個狀態(tài)具體實現(xiàn)時,主要依靠電梯派遣函數(shù),通過判定電梯信息結(jié)構(gòu)體中的電梯狀態(tài),調(diào)用相應(yīng)控制狀態(tài)的子程序來控制電梯的運行。</p><p> (1) 電梯停止?fàn)顟B(tài)子程序流程圖</p><p> 圖3.4 電梯停止?fàn)顟B(tài)子程序流程圖</p><p
87、> (2) 電梯運行狀態(tài)子程序流程圖</p><p> 圖3.5 電梯運行狀態(tài)子程序流程圖</p><p> (3) 電梯開門狀態(tài)子程序流程圖</p><p> 圖3.6電梯開門狀態(tài)子程序流程圖</p><p> (4) 電梯關(guān)門狀態(tài)子程序流程圖</p><p> 圖3.7電梯關(guān)門狀態(tài)子程序流程圖&l
88、t;/p><p> 3.3 系統(tǒng)輸入模塊的設(shè)計與實現(xiàn)</p><p> 3.3.1 系統(tǒng)輸入模塊功能分析</p><p> 本功能模塊的主要功能有三個:一、設(shè)置鍵盤鍵值;二、掃描鍵盤,采集按鍵信息;三、獲取乘客請求結(jié)構(gòu)體信息,并對這些信息進(jìn)行封裝、判斷、轉(zhuǎn)換一系列的處理。</p><p> 3.3.2 ZLG7290器件工作原理</
89、p><p> 在設(shè)計當(dāng)中,為了使鍵盤部分能夠及時有效的響應(yīng),實驗開發(fā)板上接有鍵盤專用芯片ZLG7290來做鍵盤部分的擴(kuò)展。該芯片是周立功公司針對儀器儀表行業(yè)的需要自行研制的一款芯片。該芯片能自動完成8位LED 數(shù)碼管的動態(tài)掃描和最多64(8*8)個按鍵檢測掃描,大大減輕單片機(jī)的用于顯示和鍵盤的工作時間和程序負(fù)擔(dān),可集中資源用于信號的檢測和控制,本實驗的鍵盤只需要完成20個按鍵的按鍵檢測掃描即可。由于采用I2C總線方
90、式使得芯片與S3C2410X之間的通訊I2C總線接口便可完成,節(jié)省了單片機(jī)有限的I/O口資源。該芯片為工業(yè)級芯片,抗干擾能力強(qiáng),在工業(yè)測控中已有大量應(yīng)用。</p><p> 鍵盤的管理與控制。ZLG7290可采樣64個按鍵或傳感器,可檢測每個按鍵的連擊次數(shù),并具有如下功能:鍵盤去抖動處理;雙鍵互鎖處理,即當(dāng)有兩個以上按鍵被同時按下時,ZLG7290只采樣優(yōu)先級高的按鍵:連擊按鍵處理,即當(dāng)某個按鍵按下輸出一次鍵值
91、后。如果該按鍵還未釋放,該鍵值連續(xù)有效,就像連續(xù)壓按該鍵一樣,這種功能稱為連擊。連擊次數(shù)計數(shù)器RepeatCnt可區(qū)別出單擊(某些功能不允許連擊如開關(guān))或連擊,判斷連擊次數(shù),可以檢測被按下時間。以防止某些功能的誤操作。</p><p> 內(nèi)部寄存器的定義。ZLG7290內(nèi)部可通過I2C總線訪問的寄存器地址范圍為00H-17H,任意寄存器都可按字節(jié)直接讀寫,也可以通過命令接口間接讀寫或按位讀寫。 ZLG7290的
92、控制和狀態(tài)查詢均通過讀或?qū)懠拇嫫鲗崿F(xiàn),用戶只需像讀寫24C02內(nèi)的單元一樣操作即可實現(xiàn)對ZLG7290的控制。</p><p> ZLG7290里主要使用到的寄存器如下:</p><p> 系統(tǒng)寄存器(SystemReg):地址00H,復(fù)位值B,系統(tǒng)寄存器可以保存ZLG7290系統(tǒng)狀態(tài)并可對系統(tǒng)運行狀態(tài)進(jìn)行配置。</p><p> 鍵值寄存器(Key):地址0
93、1H,復(fù)位值00H,Key表示被按下鍵的鍵值,當(dāng)Key=0時表示沒有鍵被按下。</p><p> 連擊次數(shù)計數(shù)器(RepeatCnt):地址02H。復(fù)位值00H,RepeatCnt=0時表示單擊鍵,RepeatCnt大于0時表示鍵的連擊次數(shù),用于區(qū)別出單擊鍵或連擊鍵,判斷連擊次數(shù)可以檢測被按下時間。 </p><p> 鍵盤的工作過程:鍵盤的動作由芯片ZLG7290檢測,當(dāng)鍵盤按下時,
94、芯片檢測到后在INT引腳產(chǎn)生中斷觸發(fā)電平通知處理器,處理器通過I2C總線讀取芯片ZLG7290鍵值寄存器中保留的鍵值[4]。</p><p> 3.3.3 加載I2C模塊</p><p> 總線為同步串行數(shù)據(jù)傳輸總線,由兩根線組成,一根串行數(shù)據(jù)線和一根串行時鐘線。其標(biāo)準(zhǔn)模式總線傳輸位速率為0~100kb/s,增強(qiáng)模式將總線傳輸位速率增加到4倍,可達(dá)400kb/s,并且向下兼容。I2C總
95、線驅(qū)動能力為400pF,整個I2C系統(tǒng)的總線電容不可超過此值。I2C總線可構(gòu)成多主和主從系統(tǒng)。在多主系統(tǒng)結(jié)構(gòu)中,系統(tǒng)通過硬件或軟件仲裁獲得總線控制使用權(quán)。應(yīng)用系統(tǒng)中I2C總線多采用主從結(jié)構(gòu),即總線上只有一個主控節(jié)點,總線上的其它設(shè)備都作為從設(shè)備。I2C總線上的設(shè)備尋址由器件地址接線決定,與總線相連的每個器件都對應(yīng)一個特定的地址,采用軟件尋址方式,并且通過訪問地址最低位來控制讀寫方向[5]。</p><p> I
96、2C通信。ZLG7290的I2C接口傳輸速率可達(dá)32 kbit/s,容易與處理器接口,并提供鍵盤中斷信號,提高了主處理器的時間效率。有效的按鍵動作、普通鍵的單擊、連擊和功能鍵狀態(tài)的變化都會令系統(tǒng)寄存器SystemReg的KeyAvi位置1。INT引腳信號信號為低電平有效,用戶的鍵盤處理程序可由INT引腳低電平中斷觸發(fā),以提高程序效率,也可以 不采樣INT引腳信號,節(jié)省系統(tǒng)的I/O數(shù)而采取輪詢系統(tǒng)寄存器KeyAvi位的方式,在讀鍵值寄存器
97、時會使KeyAvi位清0,并會使INT引腳信號無 效,為確保某個有效的按鍵動作及所有參數(shù)寄存器的同步性??衫肐2C通信的地址自動遞增功能。連續(xù)讀取RepeatCnt FunctionKey和Key寄存器。</p><p> 由于已編譯的內(nèi)核中沒有包含I2C驅(qū)動,所以運行測試程序前需要安裝驅(qū)動程序,對于本實驗開發(fā)系統(tǒng),我們加載一個動態(tài)模塊文件i2c.o。 </p><p> 3.3.4
98、 輸入模塊應(yīng)用程序?qū)崿F(xiàn)</p><p> 由于使用了ZLG7290芯片,我們在系統(tǒng)輸入模塊的設(shè)計與實現(xiàn)的主要工作都放在應(yīng)用程序的實現(xiàn)上。應(yīng)用程序主要實現(xiàn)對乘客請求信息結(jié)構(gòu)體獲取,并對信息進(jìn)行處理。因此此部分可以分為兩個函數(shù):一個用于獲取信息,另一個用于信息處理。</p><p> 因為從鍵盤獲得輸入信息繁多而復(fù)雜。信息處理分兩大部分進(jìn)行。首先,對信息進(jìn)行篩選和封裝。由于信息鍵盤信息掃描
99、檢測函數(shù)是在不斷的在等待按鍵被按下,而用戶使用鍵盤輸入信息是間歇性的,所以我們需要對從鍵盤按鍵檢測程序獲取的值進(jìn)行篩選,保留用戶有效按鍵值。并且由于我們系統(tǒng)使用規(guī)則的限制,每次用戶發(fā)出的請求,并不能由單個按鍵完成,需要組合使用按鍵,所以我們需要設(shè)計函數(shù)把篩選下來的多個有效鍵值一一封裝在乘客請求信息結(jié)構(gòu)體里并對其進(jìn)行存儲。其次,在完整獲得了正確的用戶請求信息后,我們還有對信息進(jìn)行轉(zhuǎn)化。因為我們從鍵盤獲得的乘客用戶信息結(jié)構(gòu)體里的信息,是站在
100、乘客使用角度封裝的,但電梯的控制必需從電梯的角度處理請求,所以我們設(shè)計處理函數(shù)把乘客信息結(jié)構(gòu)體里的相應(yīng)信息轉(zhuǎn)化為電梯信息結(jié)構(gòu)體里需要的信息。</p><p> 3.4 系統(tǒng)顯示模塊的設(shè)計與實現(xiàn)</p><p> 電梯轎廂作為一個相對封閉的乘行空間,乘梯環(huán)境顯得非常單調(diào),如何為乘客營造一個溫馨舒適的乘梯環(huán)境一直是電梯企業(yè)努力的方向,除了新的轎廂設(shè)計裝演外,各種電梯轎廂中的顯示系統(tǒng)也不斷推
101、陳出新。區(qū)別于目前市場上主流的把LED作為顯示工具,本系統(tǒng)使用一塊256色的5.7英寸LCD作為顯示工具。并且系統(tǒng)基于Linux的幀緩沖對LCD進(jìn)行圖形界面的設(shè)計。</p><p> 3.4.1 顯示系統(tǒng)界面設(shè)計</p><p> 設(shè)計圖形界面時本文把顯示分為四個界面:系統(tǒng)啟動界面、系統(tǒng)使用說明界面、系統(tǒng)主界面和系統(tǒng)退出界面。其中除了系統(tǒng)主界面不涉及到圖片顯示外,其它三個界面都是以圖片
102、顯示為主。下面對四個界面做詳細(xì)闡述:</p><p> (1) 系統(tǒng)啟動界面參照圖3.8所示:</p><p> 圖3.8 系統(tǒng)開始界面圖</p><p> 系統(tǒng)啟動后立即顯示圖,顯示持續(xù)三秒后,自動切換為圖3.9。</p><p> (2) 系統(tǒng)使用說明界面參照圖3.9所示:</p><p> 該界面簡要介
103、紹了自動電梯模擬系統(tǒng)的使用方法,詳細(xì)使用說明參照本文中的系統(tǒng)使用說明。界面顯示10秒后,自動切換到系統(tǒng)主界面。</p><p> 圖 3.9 系統(tǒng)使用說明界面圖</p><p> (3) 系統(tǒng)主界面參照圖3.10所示</p><p> 程序主界面按照顯示功能被劃分為四大區(qū)域:一、電梯信息顯示區(qū)域,這個區(qū)域位于顯示屏最左側(cè),顯示電梯狀態(tài)、電梯方向、電梯位置;二、
104、乘客請求信息顯示區(qū)域,這個區(qū)域位于屏幕中部,該欄的字母和數(shù)字具體代表意義參照表3.2;三、電梯動態(tài)效果圖,本圖緊鄰請求信息顯示區(qū)域,圖中每一個方塊代表一個樓層,當(dāng)電梯運行時,方塊發(fā)生相應(yīng)的動態(tài)變化;四、主界面信息說明區(qū)域,這個區(qū)域位于屏幕最右側(cè),列出了區(qū)域二中字母簡寫對應(yīng)的英文單詞。</p><p> 圖3.10 系統(tǒng)主界面圖</p><p> 參照表3.2如下所示:</p>
105、;<p> 表3.2 乘客請求顯示區(qū)域字母、數(shù)字意義參照表</p><p> (4) 系統(tǒng)結(jié)束界面參照圖3.11所示</p><p> 當(dāng)按下程序退出鍵時,仿真程序顯示結(jié)束,顯示系統(tǒng)結(jié)束界面圖。</p><p> 圖3.11 系統(tǒng)結(jié)束界面圖</p><p> 3.4.2 LCD設(shè)備顯示原理</p><
106、;p> Framebuffer是Linux為圖形設(shè)備提供的一個抽象接口,它允許上層應(yīng)用程序在圖形模式下直接對顯示緩沖區(qū)進(jìn)行讀寫操作。由于Linux工作在保護(hù)模式,所以用戶態(tài)進(jìn)程無法像DOS那樣使用顯卡BIOS里提供的中斷調(diào)用來實現(xiàn)直接寫屏,Linux抽象出Framebuffer這個設(shè)備來供用戶態(tài)進(jìn)程實現(xiàn)直接寫屏。在使用Framebuffer時,Linux是將顯卡置于圖形模式下的。Framebuffer就是模仿顯卡的功能,相當(dāng)于抽
107、象的顯卡硬件結(jié)構(gòu),實現(xiàn)了通過Framebuffer的讀寫直接對顯存進(jìn)行操作。用戶可以將Framebuffer看成是顯示內(nèi)存的一個映像,將其映射到進(jìn)程地址空間之后,就可以直接進(jìn)行讀寫操作,而寫操作可以立即反映在屏幕上。這種操作是抽象的、統(tǒng)一的。用戶不必關(guān)心物理顯存的位置、換頁機(jī)制等具體細(xì)節(jié),因為這些都是有Framebuffer設(shè)備驅(qū)動來完成的。Framebuffer設(shè)備還提供了若干ioctl命令,通過這些命令,可以獲得顯示設(shè)備的一些固定信
108、息與顯示模式有關(guān)的可變信息等[6]。</p><p> 實現(xiàn)在LCD顯示的關(guān)鍵是Framebuffer驅(qū)動程序的使用,利用驅(qū)動程序?qū)CD的顯存與實驗板的內(nèi)存映射到一起,向映射的內(nèi)存中寫東西,然后刷新顯存,LCD就會按照計算的位置在LCD屏幕上顯示寫入的數(shù)據(jù)信息。</p><p> 要實現(xiàn)LCD的顯示,首先需要清楚相關(guān)的硬件信息,包括屏幕的大小、能夠映射的內(nèi)存空間大小。其次,需要知道顯
109、示緩存與顯示點的對應(yīng)關(guān)系,而要搞清楚它們之間的關(guān)系必需弄明白液晶顯示屏在當(dāng)前顯示狀態(tài)下的顯示灰度。灰度級別能夠控制LCD顯示的色彩信息,并且能夠確定每一個像素是由多少位來控制的,如果1級灰度,那么在此情況下LCD只可以顯示黑白兩種顏色,一個bit位就可以一個像素點,也就是說一個內(nèi)存單元可以容納8個像素點的信息,只有了解了這些才能在寫顯存的時候確定好像素的顏色和位置等信息[7]。</p><p> 3.4.3 基
110、礎(chǔ)圖形顯示實現(xiàn)</p><p> 本文這一部分主要就是在已建立的Framebuffer驅(qū)動基礎(chǔ)上,建立自己的圖形界面基礎(chǔ)圖形庫。因為已經(jīng)使用函數(shù)映射LCD內(nèi)容到內(nèi)存,所以接下來就可以直接更新內(nèi)存來更新LCD的內(nèi)容,也就是說在LCD上顯示圖形實質(zhì)就是把數(shù)據(jù)寫到顯示緩沖區(qū)中對應(yīng)的位置。所以本部分的功能包括三個:一、根據(jù)顯示緩存與顯示點的對應(yīng)關(guān)系計算顯示點的數(shù)據(jù)寫入顯示緩沖區(qū)中的位置。二、寫數(shù)據(jù)到顯示緩存中。三、編寫
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電梯控制系統(tǒng)畢業(yè)論文
- plc電梯控制系統(tǒng)畢業(yè)論文
- plc電梯控制系統(tǒng)畢業(yè)論文
- plc電梯控制系統(tǒng)畢業(yè)論文
- 電氣自動化電梯畢業(yè)論文---五層電梯plc控制系統(tǒng)
- 五層電梯控制系統(tǒng) 畢業(yè)論文
- 基于fpga電梯控制系統(tǒng)畢業(yè)論文
- plc電梯控制系統(tǒng)設(shè)計-畢業(yè)論文
- 基于plc的電梯控制系統(tǒng)設(shè)計-自動化畢業(yè)論文
- 基于plc的電梯控制系統(tǒng)設(shè)計-自動化畢業(yè)論文
- 電梯自動控制畢業(yè)論文
- 電氣自動化畢業(yè)論文----五層電梯plc控制系統(tǒng)
- 畢業(yè)論文---五層電梯plc控制系統(tǒng)
- 電梯控制系統(tǒng)的仿真設(shè)計畢業(yè)論文
- 電氣自動化畢業(yè)論文--五層電梯plc控制系統(tǒng)
- 電梯裝置plc控制系統(tǒng)設(shè)計畢業(yè)論文
- 模擬路燈控制系統(tǒng)畢業(yè)論文
- plc畢業(yè)論文--14層電梯控制系統(tǒng)
- plc的電梯控制系統(tǒng)(畢業(yè)論文設(shè)計)
- 電梯的plc控制系統(tǒng)設(shè)計畢業(yè)論文
評論
0/150
提交評論