自動(dòng)電梯模擬控制系統(tǒng)--畢業(yè)論文_第1頁
已閱讀1頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p>  大 連 理 工 大 學(xué) 本 科 畢 業(yè) 設(shè) 計(jì)(論 文)</p><p>  自動(dòng)電梯模擬控制系統(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-Ⅲ實(shí)驗(yàn)開發(fā)板和Linux操作系統(tǒng)完成自動(dòng)電梯模擬控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。首先,根據(jù)系統(tǒng)開發(fā)需求,

3、搭建了Linux開發(fā)環(huán)境。其次,本文通過對自動(dòng)電梯進(jìn)行需求分析,詳細(xì)制定了電梯的運(yùn)行規(guī)則,并根據(jù)運(yùn)行規(guī)則設(shè)計(jì)實(shí)現(xiàn)了電梯的控制運(yùn)行算法。最后,系統(tǒng)使用開發(fā)板上的液晶顯示屏作為顯示設(shè)備,完成了模擬系統(tǒng)的演示過程。本文詳細(xì)設(shè)計(jì)了乘客與電梯的信息交互過程,基于Linux幀緩沖(Framebuffer)設(shè)備驅(qū)動(dòng)程序開發(fā)了在LCD上顯示電梯的狀態(tài)、乘客的請求以及電梯動(dòng)態(tài)運(yùn)行效果等信息的應(yīng)用程序。系統(tǒng)還使用開發(fā)板上的5*4小鍵盤上的部分按鍵模擬電梯按

4、鈕,把鍵盤作為乘客信息輸入端。</p><p>  本文使用功能性測試方法對程序進(jìn)行了測試。最終,仿真程序能夠根據(jù)不同乘客向自動(dòng)電梯模擬系統(tǒng)輸入的內(nèi)、外部不同的請求信息,指揮電梯按照運(yùn)行規(guī)則運(yùn)行,并在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)的組成和特點(diǎn)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-Ⅲ實(shí)驗(yàn)平臺介紹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)及各模塊的實(shí)現(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è)計(jì)與實(shí)現(xiàn)11</p><p>  3.2.1 系統(tǒng)設(shè)計(jì)要求11</p>

17、<p>  3.2.2 電梯運(yùn)行規(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)的具體實(shí)現(xiàn)15</p><p>  3.3 系統(tǒng)輸入模塊的設(shè)計(jì)與實(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è)計(jì)與實(shí)現(xiàn)21</p><p>  3.4.1 顯示系統(tǒng)界

19、面設(shè)計(jì)21</p><p>  3.4.2 LCD設(shè)備顯示原理24</p><p>  3.4.3 基礎(chǔ)圖形顯示實(shí)現(xiàn)25</p><p>  3.4.4 字符的顯示實(shí)現(xiàn)26</p><p>  3.4.5 圖片的顯示實(shí)現(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ā)明——?dú)v史上第一部安全升降梯。1900年,美國奧的斯電梯公司為上海提供2臺電梯。從此,世界電梯歷史上展開了中國的一頁。一個(gè)半世紀(jì)的風(fēng)風(fēng)雨雨,翻天覆地的是歷史的變遷,永恒不變的是電梯提升現(xiàn)代人生活質(zhì)量的承諾?,F(xiàn)代人的生活已離不開電梯。</p><p>  隨著高層樓宇在一些大中城市迅速增多,電梯越來越多地走進(jìn)人們的生活,成為現(xiàn)代高層建

22、筑所必須的基本設(shè)備,作為一種特殊的垂直交通工具,存在著這樣的需求:目前大部分電梯內(nèi)部和樓道外部,顯示電梯運(yùn)行狀態(tài)(層站、運(yùn)行方向等信息)多采用LED顯示板,顯示內(nèi)容單調(diào),所以設(shè)計(jì)和開發(fā)一套使用LCD作為顯示設(shè)備的自動(dòng)電梯模擬控制系統(tǒng)軟件,能顯示更加豐富多彩信息,具有很大的實(shí)用價(jià)值。</p><p>  近年來,嵌入式技術(shù)迅速發(fā)展,成為技術(shù)研究和產(chǎn)品開發(fā)的熱點(diǎn)之一,嵌入式系統(tǒng)的應(yīng)用逐步滲透到工業(yè)控制、智能儀器、通信

23、設(shè)備等人們生活的各個(gè)領(lǐng)域。極大地提高了設(shè)備、儀器和生產(chǎn)過程的智能化、自動(dòng)化水平,方便了人們的生產(chǎn)和生活。本系統(tǒng)采用以嵌入式微處理器S3C2410為核心的硬件平臺,利用英蓓特EDUKIT-Ⅲ實(shí)驗(yàn)箱上外掛的液晶顯示屏,通過綜合設(shè)計(jì)開發(fā),可以顯示中文漢字、英文字母、動(dòng)態(tài)圖形,并可以實(shí)時(shí)更新,畫面色彩豐富,動(dòng)畫流暢,界面設(shè)計(jì)人性化。按照用戶需求進(jìn)行個(gè)性化定制,在嵌入式ARM平臺上實(shí)現(xiàn)自動(dòng)電梯模擬控制系統(tǒng)的功能。本系統(tǒng)設(shè)計(jì)合理,運(yùn)行高效可靠,通用

24、性強(qiáng),安裝升級方便。</p><p><b>  1.2 嵌入式系統(tǒng)</b></p><p>  1.2.1 嵌入式系統(tǒng)簡介</p><p>  嵌入式系統(tǒng)可以看作是與通用計(jì)算機(jī)相對應(yīng)的概念,通用計(jì)算機(jī)系統(tǒng)具有計(jì)算機(jī)的標(biāo)準(zhǔn)形態(tài),裝配各種應(yīng)用軟件,以雷同的面目出現(xiàn)并應(yīng)用于社會的各個(gè)方面,而嵌入式系統(tǒng)硬件差異巨大,幾乎沒有可以通用的驅(qū)動(dòng)和應(yīng)用軟件,

25、以嵌入式的形式隱藏在各種裝置、產(chǎn)品和系統(tǒng)中。嵌入式系統(tǒng)在應(yīng)用數(shù)量上遠(yuǎn)遠(yuǎn)超過了通用計(jì)算機(jī)系統(tǒng),許多大型電腦系統(tǒng),事實(shí)上也是許許多多小的嵌入式系統(tǒng)組成的。</p><p>  從應(yīng)用上考慮,嵌入式系統(tǒng)是用于控制、監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝置;微機(jī)學(xué)會定義嵌入式系統(tǒng)是以嵌入式應(yīng)用為目的的計(jì)算機(jī)系統(tǒng),可分為系統(tǒng)級、板級、片級。嵌入式系統(tǒng)是設(shè)計(jì)完成特定功能的硬件和軟件,并使其緊密偶合在一起的專用計(jì)算機(jī)系統(tǒng),該專用計(jì)算機(jī)

26、系統(tǒng)對軟件和硬件的可裁剪性、功能、可靠性、成本、體積、功耗等方面提出嚴(yán)格要求。</p><p>  1.2.2 嵌入式系統(tǒng)的發(fā)展</p><p>  嵌入式系統(tǒng)發(fā)展有30多年的歷史,期間從8位、16位的微處理器,形成系列化、模塊化的單板計(jì)算機(jī),軟件大多采用匯編語言或者宏語言來編寫,到20世紀(jì)80年代,得益于微電子工藝水平的提高,能夠?qū)⑶度胧綉?yīng)用所需要的微處理器、 I/O接口、A/D、D/A

27、轉(zhuǎn)換器、串行接口以及RAM、ROM等都集成到一個(gè)超大規(guī)模的集成電路(VLSL)中,制造出面向I/0設(shè)計(jì)的微控制器,俗稱單片機(jī)。隨后,出現(xiàn)了嵌入式操作系統(tǒng)如VxWorks、WinCE以及嵌入式Linux等。近年來,嵌入式系統(tǒng)發(fā)展更是日新月異,硬件方面,面向?qū)崟r(shí)信號處理算法的DSP向高速、高精度、低功耗方向發(fā)展,32位微控制器己成為市場主流,嵌入式CPU主頻越來越高,并開始支持多媒體,軟件方面,出現(xiàn)了很多優(yōu)秀的嵌入式操作系統(tǒng)系列,跨平臺的軟

28、件開發(fā)技術(shù)也開始從通用計(jì)算機(jī)延展到嵌入式設(shè)備上。</p><p>  1.2.3 嵌入式系統(tǒng)的應(yīng)用領(lǐng)域</p><p>  近年來,嵌入式產(chǎn)品成為信息產(chǎn)業(yè)的主流,應(yīng)用領(lǐng)域非常廣泛。消費(fèi)產(chǎn)品及信息家電方面包括手機(jī)、數(shù)碼相機(jī)、數(shù)字電視機(jī)頂盒等;通信設(shè)備如程控交換機(jī)、路由器、集線器等;智能儀器方面包括數(shù)字示波器、醫(yī)療儀器等;在計(jì)算機(jī)外部設(shè)備、機(jī)器人、軍事電子設(shè)備和現(xiàn)代武器以及太空科學(xué)方面都有廣泛

29、應(yīng)用,可以說嵌入式系統(tǒng)和嵌入式技術(shù)無處不在。近年來嵌入式系統(tǒng)還廣泛應(yīng)用于工業(yè)控制領(lǐng)域,對生產(chǎn)過程和工業(yè)設(shè)備的各種動(dòng)作流程進(jìn)行控制,在此類監(jiān)控系統(tǒng)中,嵌入式系統(tǒng)通過傳感器或者信號采集器從外部接收有關(guān)過程的信息,對這些信息進(jìn)行加工處理,然后對執(zhí)行機(jī)構(gòu)發(fā)出控制指令。</p><p>  1.2.4 嵌入式系統(tǒng)的組成和特點(diǎn)</p><p>  整個(gè)嵌入式系統(tǒng)由硬件和軟件兩部分組成。其中硬件部分包括

30、嵌入式處理器、存儲器和各類輸入輸出模塊。嵌入式處理器是嵌入式系統(tǒng)的核心。軟件部分包括板級支持包、嵌入式操作系統(tǒng)和應(yīng)用程序。嵌入式系統(tǒng)相對于通用計(jì)算機(jī)系統(tǒng)而言具有顯著的特點(diǎn):</p><p>  嵌入式系統(tǒng)通常是面向特定應(yīng)用的。</p><p>  嵌入式系統(tǒng)的硬件和軟件都必須是高效率地設(shè)計(jì),量體裁衣,去除冗余的。</p><p>  實(shí)時(shí)操作系統(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è)計(jì)與實(shí)現(xiàn),并設(shè)計(jì)人機(jī)交互界面。</p><p>  Linux操作系統(tǒng)內(nèi)核的配置和移植。

32、</p><p>  調(diào)用相關(guān)驅(qū)動(dòng)的接口函數(shù)實(shí)現(xiàn)上層鍵盤和lcd的應(yīng)用程序編寫。</p><p>  自動(dòng)電梯模擬控制系統(tǒng)的電梯控制算法的實(shí)現(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ì)算機(jī)愛好者的共同努力,Linux已發(fā)展成一個(gè)功能強(qiáng)大的操作系統(tǒng),可以移植在各種不同的體系結(jié)構(gòu)的處理器上,其中主要是32位或是64位處理器。Linux的開發(fā)及其源代碼都是遵守GPL協(xié)議的。Linux相較于其它操作系統(tǒng)具有以下特點(diǎn):</p><p><b>  源代碼的開放性</b&g

34、t;</p><p>  選用Linux作為嵌入式開發(fā)的操作系統(tǒng),很重要的原因就是Linux的開發(fā)及其源代碼都是遵守GPL協(xié)議的。Linux操作系統(tǒng)源代碼可以從互聯(lián)網(wǎng)上免費(fèi)下載使用,而且Linux上運(yùn)行的絕大多數(shù)應(yīng)用程序也是免費(fèi)得到的。除了公開的源代碼,用戶可以根據(jù)自己的需要對Linux源代碼進(jìn)行修改、剪裁、散布。Linux作為一種可裁剪的軟件平臺系統(tǒng),是發(fā)展未來嵌入式設(shè)備產(chǎn)品的絕佳資源[1]。</p>

35、;<p><b>  設(shè)備的獨(dú)立性</b></p><p>  設(shè)備獨(dú)立性是指操作系統(tǒng)把所有外部設(shè)備一當(dāng)做文件來看待,只要安裝它們的驅(qū)動(dòng)程序,任何用戶都可以像使用文件一樣,操縱、使用這些設(shè)備,而不必知道它們的具體存在形式。Linux是具有設(shè)備獨(dú)立性的操作系統(tǒng),它的內(nèi)核具有高度的適應(yīng)能力。隨著程序員不斷加入到Linux編程,會有更多的硬件設(shè)備加入到各種Linux內(nèi)核和發(fā)行版本中。

36、另外,由于用戶可以免費(fèi)得到Linux內(nèi)核源碼,因此,用戶可以修改內(nèi)核源代碼,以便適應(yīng)新增加的外部設(shè)備。</p><p><b>  穩(wěn)定性強(qiáng)</b></p><p>  Linux不僅繼承了Unix的優(yōu)點(diǎn),而且在全球有無數(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高可靠性的特點(diǎn),在應(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)、審計(jì)跟蹤、核心授權(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èi)的開發(fā)和調(diào)試工具,嵌入式Linux利用GNU項(xiàng)目的C編譯器來編譯程序,使用gdb源程序級調(diào)試器來調(diào)試程序。它們提供了合適的手段,使客戶能夠方便地開發(fā)嵌入式Linux的各種

39、應(yīng)用程序。開發(fā)時(shí)可在PC上交叉編譯應(yīng)用程序,調(diào)試時(shí)可通過串口telnet登陸硬件平臺,同時(shí)可利用NFS調(diào)試已存在PC機(jī)中的文件。</p><p>  可以根據(jù)需要靈活地配置內(nèi)核</p><p>  因?yàn)榭晒┣度胧讲僮飨到y(tǒng)使用的存儲容量都十分有限,嵌入式系統(tǒng)要盡量減少體積,不能像普通計(jì)算機(jī)那樣采用海量存儲器來進(jìn)行數(shù)據(jù)存儲。通常采用軟件固化的方法,將程序和操作系統(tǒng)嵌入到整個(gè)產(chǎn)品里面。而Linu

40、x核心本身采用模塊化的設(shè)計(jì),讓用戶可以根據(jù)自己需要裁減內(nèi)核。用戶完全可以根據(jù)不同的任務(wù)來選擇特定內(nèi)核模塊,而將不用的部分去掉,減少體積,從根本上解決了體積和功能的矛盾。</p><p>  構(gòu)建一個(gè)最小的嵌入式Linux系統(tǒng)僅需要三個(gè)基本元素:引導(dǎo)實(shí)用程序;Linux微內(nèi)核,由內(nèi)存管理、進(jìn)程管理和定時(shí)服務(wù)構(gòu)成;初始化過程。而要實(shí)現(xiàn)最低限度的工作能力,還需要添加:硬件驅(qū)動(dòng)程序;一個(gè)或多個(gè)應(yīng)用進(jìn)程,以提供所需功能。與

41、其他操作系統(tǒng)相比Linux具有更小、更穩(wěn)定、價(jià)格競爭力等優(yōu)勢。正是嵌入式操作系統(tǒng)的特殊要求為Linux在嵌入式系統(tǒng)中的發(fā)展提供了廣闊的空間,使得Linux成為嵌入式操作系統(tǒng)中的新貴。</p><p><b>  良好的可移植性</b></p><p>  可移植性是指操作系統(tǒng)從一個(gè)平臺轉(zhuǎn)移到另一個(gè)平臺,并使它仍能按其自身方式運(yùn)行的能力。Linux一開始是基于Intel

42、386機(jī)器設(shè)計(jì)的,但隨著網(wǎng)絡(luò)的散布,加上有許多工程師致力于各種平臺的移植,使得Linux可以在幾乎覆蓋了所有嵌入式系統(tǒng)的CPU種類的平臺上運(yùn)行。</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、、消費(fèi)類電子產(chǎn)品、成像和安全產(chǎn)品以及工業(yè)控制等各個(gè)領(lǐng)域。ARM微處理器的特點(diǎn)是指令長度固定,尋址方式靈活簡單,執(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)的共同特點(diǎn)以外,每個(gè)系

45、列的ARM微處理器都具有各自特點(diǎn)和應(yīng)用領(lǐng)域。目前包括以下幾個(gè)系列:ARM7系列,ARM9系列,ARM9E系列,ARM10E系列,SecurCore系列,Intel的StrongARM系列和Intel的Xscale系列。</p><p>  2.2.2 EDUKIT-Ⅲ實(shí)驗(yàn)平臺介紹</p><p>  本系統(tǒng)軟件運(yùn)行的硬件平臺是EMBEST公司生產(chǎn)的英倍特EDUKIT-Ⅲ實(shí)驗(yàn)平臺。該實(shí)驗(yàn)平臺

46、是一款功能強(qiáng)大的32位ARM開發(fā)板,擴(kuò)展了許多外圍硬件資源。根據(jù)本系統(tǒng)需要,主要用到硬件資源包括:</p><p>  CPU采用三星公司的S3C2410X微處理器,S3C2410X處理器的工作頻率可達(dá)到203MHZ,但不是只能工作在這個(gè)頻率下,通過修改內(nèi)部寄存器的值可以使其工作在不同頻率下,通常所說的超頻也是通過更改CPU的時(shí)鐘控制寄存器值實(shí)現(xiàn)的。</p><p>  2個(gè)標(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è)計(jì)需要同時(shí)采用這兩種Flash芯片,本系統(tǒng)中的ARM平臺就是如此。因?yàn)?NorFlash可靠性高,讀取操作快和隨機(jī)訪問能力,使得它非常適

48、合用在代碼存儲方面,它的特點(diǎn)是芯片內(nèi)執(zhí)行應(yīng)用程序可以直接在Flash閃存內(nèi)運(yùn)行,不必把代碼讀到系統(tǒng)RAM中。NandFlash的特點(diǎn)是高密度(同等容量下尺寸小),低價(jià)格,較快的寫入和擦除速度,較長的復(fù)寫壽命,NandFlash較 NorFlash容易出現(xiàn)壞塊和位反轉(zhuǎn),在使用NandFlash的時(shí)候,需要使用錯(cuò)誤探測錯(cuò)誤更正(EDC/ECC)等嚴(yán)格的算法以確??煽啃?。本系統(tǒng)采用NorFlash存儲vivi,嵌入式Linux鏡像,根文件系統(tǒng)

49、和應(yīng)用程序。</p><p>  內(nèi)存為64MByteSDRAM,采用兩片K4S組成,工作在32位模式下,SDRARM是一種揮發(fā)存儲記憶體,不能永久保存數(shù)據(jù),在嵌入式系統(tǒng)中用作代碼運(yùn)行載體,系統(tǒng)和用戶數(shù)據(jù)、堆棧等均位于SDRAM存儲器中。</p><p>  鍵盤:本系統(tǒng)采用實(shí)驗(yàn)開發(fā)板上自帶的一個(gè)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)具有輕薄、體積小、低耗電量、無輻射危險(xiǎn)、平面直角顯示以及影像穩(wěn)定不閃爍等特點(diǎn),因此在許多電子應(yīng)用系統(tǒng)中,常使用液晶屏作為人機(jī)界面。實(shí)驗(yàn)板外掛有一塊5.7英寸的液晶屏,具體參數(shù)參照表2.

51、1:</p><p>  表2.1 液晶屏主要技術(shù)參數(shù)</p><p>  液晶顯示屏的顯示,要求設(shè)計(jì)專門的驅(qū)動(dòng)與顯示控制電路。驅(qū)動(dòng)電路包括提供液晶顯示屏的驅(qū)動(dòng)電源和液晶分子偏置電壓,以及液晶顯示屏的驅(qū)動(dòng)邏輯;顯示控制部分可以由專門的硬件電路組成,也可以采用集成電路模塊;還可以使用處理器外圍LCD控制模塊。液晶顯示屏按顯示原理分為STN 和TFT 兩種。S3C2410X 處理器集成了LCD

52、 控制器,主要功能是S3C2410X LCD 控制器用于傳輸顯示數(shù)據(jù)和產(chǎn)生控制信號。它支持屏幕水平和垂直滾動(dòng)顯示。數(shù)據(jù)的傳送采用DMA(直接內(nèi)存訪問)方式,以達(dá)到最小的延遲。它可以支持多種液晶屏,本系統(tǒng)采用STN LCD,屏幕實(shí)際大小為320*240。實(shí)驗(yàn)板的驅(qū)動(dòng)與顯示系統(tǒng)包括S3C2410X片內(nèi)外設(shè)LCD 控制器、液晶顯示屏的驅(qū)動(dòng)邏輯以及外圍驅(qū)動(dòng)電路。</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)板用于運(yùn)行操作系統(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是一個(gè)在Windows平

54、臺上運(yùn)行的UNIX模擬環(huán)境。它幾乎包含了所有Linux系統(tǒng)下可用的軟件包,包括各種開發(fā)工具。</p><p>  2.3.2 交叉編譯環(huán)境的建立</p><p>  交叉編譯就是在一個(gè)平臺上生成可以在另一個(gè)平臺上執(zhí)行的代碼。采用交叉編譯的主要原因在于,多數(shù)嵌入式目標(biāo)機(jī)不能提供足夠的資源供編譯過程使用,因而只好將編譯工作轉(zhuǎn)移到高性能的宿主機(jī)中進(jìn)行。在宿主機(jī)上對即將運(yùn)行在目標(biāo)機(jī)上的應(yīng)用程序進(jìn)行

55、編譯,生成可在目標(biāo)機(jī)上運(yùn)行的代碼格式。交叉編譯環(huán)境是由一個(gè)編譯器、連接器和解釋器組成的綜合開發(fā)環(huán)境。</p><p>  交叉編譯工具安裝。在Cygwin 開發(fā)環(huán)境下,我們把交叉編譯工具鏈安裝到:$CROSSDIR 目錄下。按以下操作完成安裝:</p><p>  把工具代碼包c(diǎn)ross-armtools-linux-edukit2410.tar.bz2 拷貝到/tmp/目錄下。</

56、p><p>  運(yùn)行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è)置搭建一個(gè)Linux 開發(fā)、編譯和應(yīng)用程序測試的環(huán)境,需要設(shè)置的開關(guān)較多,為了方便操作,采用提供了的一個(gè)命令配置文件set_env_linux.sh,運(yùn)行命令即可。</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整個(gè)文件夾到$SOURCEDIR/目錄下。</p><p>  運(yùn)行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源代碼安裝目錄,為實(shí)驗(yàn)系統(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 整個(gè)文件夾)到$SOURCEDIR/目錄下。</p><p&g

62、t;  運(yùn)行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源代碼安裝目錄,為實(shí)驗(yàn)系統(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>  運(yùn)行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)及各模塊的實(shí)現(xiàn)</p><p>  3.1 電梯系統(tǒng)總體架構(gòu)及功能模塊劃分</p><p>  3.1.1 電梯系統(tǒng)簡介及框架</p><p>  (1)

68、自動(dòng)電梯模擬控制系統(tǒng)介紹:本系統(tǒng)主要設(shè)計(jì)目標(biāo)就是在實(shí)驗(yàn)開發(fā)板上模擬單部電梯運(yùn)送乘客的整個(gè)運(yùn)行過程,并將整個(gè)運(yùn)行過程在液晶顯示屏上演示。所以本課題所設(shè)計(jì)的系統(tǒng)主要完成三項(xiàng)任務(wù):一、仿真程序演示界面的設(shè)計(jì)與實(shí)現(xiàn),系統(tǒng)使用液晶顯示屏完成這個(gè)任務(wù);二、電梯控制運(yùn)行算法的設(shè)計(jì)與實(shí)現(xiàn);三、用戶信息輸入的采集。系統(tǒng)使用8個(gè)按鍵模擬八個(gè)樓層按鈕,2個(gè)按鍵模擬上、下請求按鈕,另使用4個(gè)按鍵作為輔助按鈕。</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)的三大部分劃分為以下五個(gè)功能模塊:</p><p>  (1) 系統(tǒng)初始化模塊

70、:本模塊是系統(tǒng)的基礎(chǔ)模塊,負(fù)責(zé)對電梯、界面進(jìn)行初始化。并顯示一些說明性的文字和標(biāo)題圖片。</p><p>  (2) 電梯控制模塊:本模塊是整個(gè)系統(tǒng)的最關(guān)鍵模塊,它負(fù)責(zé)派遣電梯執(zhí)行停止、運(yùn)行、開門、關(guān)門的任務(wù),指揮電梯按照運(yùn)行規(guī)則運(yùn)行從而滿足乘客需求。</p><p>  (3) 系統(tǒng)輸入控制模塊:本模塊把5*4小鍵盤作為乘客信息輸入端,乘客通過鍵盤上模擬的電梯按鈕向系統(tǒng)輸入請求信息。鍵盤

71、掃描程序通過掃描按鍵采集輸入信息。輸入控制程序?qū)π畔⑦M(jìn)行篩選、封裝。</p><p>  (4) 系統(tǒng)顯示控制模塊:本模塊通過LCD顯示電梯目前的運(yùn)行信息,如電梯狀態(tài)、目前的位置、內(nèi)部樓層和外部樓道的請求信息等;并且顯示出電梯運(yùn)行的動(dòng)態(tài)效果。</p><p>  (5) 系統(tǒng)時(shí)間控制模塊:本模塊負(fù)責(zé)對電梯的運(yùn)行,停止,開門,關(guān)門的時(shí)間進(jìn)行控制。</p><p>  

72、3.1.3 系統(tǒng)使用說明</p><p>  本文所研究的系統(tǒng)是一個(gè)電梯控制的模擬系統(tǒng),由于硬件條件的限制,所以模擬系統(tǒng)使用時(shí)難免沒有目前市場上被廣泛使用著的真實(shí)電梯簡單方便。為了方便用戶使用本系統(tǒng),本文制定了一些針對本系統(tǒng)的使用規(guī)定,下面進(jìn)行詳細(xì)的說明。</p><p><b>  (1) 電梯內(nèi)部</b></p><p>  本系統(tǒng)有八個(gè)按

73、鍵模擬電梯里的八個(gè)樓層按鈕,每一個(gè)按鈕對應(yīng)一個(gè)樓層,內(nèi)部乘客使用這些按鈕呼叫所請求的樓層。</p><p>  (2) 電梯外部(樓道)</p><p>  除了地下一層和頂層,每一層都有一個(gè)上行按鈕和一個(gè)下行按鈕,乘客可以呼叫上樓或下樓。頂樓只有一個(gè)下樓按鈕,而地下一層(-1樓)只有一個(gè)上樓按鈕。本系統(tǒng)有兩個(gè)按鍵用于模擬上行和向下這兩個(gè)按鈕。</p><p>  

74、(3) 特殊使用規(guī)則</p><p>  本系統(tǒng)規(guī)定:首先,系統(tǒng)有按鍵A和按鍵B用于判定乘客的請求是在電梯外部發(fā)出的還是電梯從內(nèi)部發(fā)出的。系統(tǒng)用戶必需先按下這兩個(gè)按鍵之一,否則輸入的請求視為無效。其次,發(fā)出外部請求的乘客必需輸入樓層按鈕,表明他發(fā)出外部請求時(shí)所位于的樓層。系統(tǒng)有八個(gè)按鍵分別表示樓層按鈕。最后,內(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ā)出請求時(shí)位于的樓層。</p&g

76、t;<p>  (3) 如果輸入的是B,輸入+或是-。</p><p>  注意:輸入0時(shí)不能輸入-;輸入7時(shí)不能輸入+。</p><p><b>  (4) 輸入E。</b></p><p>  表3.1 按鍵定義表</p><p>  舉例說明:輸入A,3,B,2,+,E表示內(nèi)部(A)有乘客想要去三樓(

77、3);同時(shí)二樓(2)有乘客想要上樓(+),所有請求輸入完成(E)。</p><p>  3.2電梯控制模塊的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  3.2.1 系統(tǒng)設(shè)計(jì)要求</p><p>  本文采用了傳統(tǒng)的軟件工程方法對自動(dòng)電梯模擬系統(tǒng)進(jìn)行了需求分析。通過分析我們了解到電梯模擬控制系統(tǒng)需要在一個(gè)共有8層的樓宇中運(yùn)行,它必需具備以下功能:</p><p

78、>  (1) 每層樓電梯入口處設(shè)有上行、下行請求按鈕,電梯內(nèi)設(shè)有乘客請求停站的樓層呼叫按鈕。</p><p>  (2) 有電梯所處位置指示裝置,電梯上行、下行狀態(tài)指示裝置,所有系統(tǒng)請求信息指示裝置。</p><p>  (3) 每隔一定時(shí)間,電梯上升或是下降一層樓,同時(shí)顯示電梯上升和下降的信息。</p><p>  (4) 電梯到達(dá)有停站請求的樓層后,該樓層

79、有指示裝置表明到達(dá)了停站請求樓層,電梯切換為開門狀態(tài)。開門一定時(shí)間后,電梯自動(dòng)進(jìn)入關(guān)門狀態(tài),然后電梯繼續(xù)運(yùn)行。</p><p>  (5) 系統(tǒng)能夠記憶電梯內(nèi)、外部的所有請求信號,并按照電梯運(yùn)行規(guī)則依次的響應(yīng)這些請求,每個(gè)請求信號保留至執(zhí)行后撤除。 </p><p>  3.2.2 電梯運(yùn)行規(guī)則</p><p>  本文針對系統(tǒng)設(shè)計(jì)要求,制定出了以下六條運(yùn)行規(guī)則:&

80、lt;/p><p>  (1) 電梯接通電源時(shí),電梯必需停留在最底層。</p><p>  (2) 電梯可以到達(dá)并且必需能夠到達(dá)所在樓宇的每一層,但是電梯只能在該樓宇的最低層至最高層之間運(yùn)行。</p><p>  (3) 嚴(yán)格規(guī)定:電梯內(nèi)部請求信號優(yōu)先級高于電梯外部請求信號。</p><p>  (4) 電梯處于上升模式時(shí),只響應(yīng)比電梯所在位置高

81、的樓層的上樓請求信號,而保留下樓的信號,由下而上逐個(gè)執(zhí)行;直到最后一個(gè)請求執(zhí)行完畢,再執(zhí)行下樓的信號請求(同時(shí)由上往下執(zhí)行);如更高樓層次有下樓請求,則直接升到有下樓請求的樓層接收乘客,然后轉(zhuǎn)換電梯到下降模式。</p><p>  (5) 電梯處于下降模式時(shí)與上升模式時(shí)相反,只響應(yīng)比電梯所在位置低的樓層的下樓請求信號,而保留上樓的信號,由上而下逐個(gè)執(zhí)行;直至最后一個(gè)請示執(zhí)行完畢,再響應(yīng)向上樓的信號(同時(shí)由下往上執(zhí)

82、行);如更低樓層有上樓請求,則直接降到有上樓請求的樓層接收乘客,然后轉(zhuǎn)換電梯到上升模式。</p><p>  (6) 電梯執(zhí)行完所有的請求后,應(yīng)停留在最后所在的樓層不動(dòng),等待新的請求。</p><p>  3.2.3 電梯系統(tǒng)流程圖</p><p>  現(xiàn)在,我們經(jīng)常使用到電梯。在日常的使用中我們發(fā)現(xiàn):電梯的整個(gè)運(yùn)行過程是一個(gè)不斷循環(huán)往復(fù)的過程,不斷重復(fù)著停止、開門

83、、關(guān)門、運(yùn)行的狀態(tài)。圖3.2是電梯運(yùn)行過程的流程圖。</p><p>  圖3.2 電梯系統(tǒng)流程圖</p><p>  3.2.4 電梯控制狀態(tài)劃分及遷移規(guī)則</p><p>  根據(jù)電梯運(yùn)行的流程,本文對電梯的運(yùn)行過程進(jìn)行簡化和規(guī)范。我們把電梯劃分為停止、運(yùn)行、開門、關(guān)門四種控制狀態(tài),詳情請參考圖3.3。本文的停止?fàn)顟B(tài)是指電梯在沒有任何請求的情況下的靜止?fàn)顟B(tài),而不

84、是指電梯在運(yùn)行過程中開門前的停頓狀況。本文忽略停頓狀況把電梯從運(yùn)行狀態(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)初始時(shí),電梯處于停止?fàn)顟B(tài)。</p><p>  (2) 電梯處于停止?fàn)顟B(tài)時(shí),根據(jù)發(fā)出請求

85、的樓層不同可以分別遷移到運(yùn)行或者開門兩個(gè)不同狀態(tài)。</p><p>  (3) 電梯在運(yùn)行狀態(tài)時(shí),如果沒有到達(dá)請求樓層是發(fā)生自遷移,即保持運(yùn)行狀態(tài)不變;當(dāng)?shù)竭_(dá)請求樓層時(shí),遷移到開門狀態(tài)。</p><p>  (4) 電梯處于開門狀態(tài)一段時(shí)間后必然會遷移到關(guān)門狀態(tài)。</p><p>  (5) 電梯處于關(guān)門狀態(tài)是根據(jù)是否有請求可以遷移到運(yùn)行狀態(tài)或者遷移到停止?fàn)顟B(tài)。&l

86、t;/p><p>  3.2.5 電梯各控制狀態(tài)的具體實(shí)現(xiàn)</p><p>  電梯各個(gè)狀態(tài)具體實(shí)現(xiàn)時(shí),主要依靠電梯派遣函數(shù),通過判定電梯信息結(jié)構(gòu)體中的電梯狀態(tài),調(diào)用相應(yīng)控制狀態(tài)的子程序來控制電梯的運(yùn)行。</p><p>  (1) 電梯停止?fàn)顟B(tài)子程序流程圖</p><p>  圖3.4 電梯停止?fàn)顟B(tài)子程序流程圖</p><p

87、>  (2) 電梯運(yùn)行狀態(tài)子程序流程圖</p><p>  圖3.5 電梯運(yùn)行狀態(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è)計(jì)與實(shí)現(xiàn)</p><p>  3.3.1 系統(tǒng)輸入模塊功能分析</p><p>  本功能模塊的主要功能有三個(gè):一、設(shè)置鍵盤鍵值;二、掃描鍵盤,采集按鍵信息;三、獲取乘客請求結(jié)構(gòu)體信息,并對這些信息進(jìn)行封裝、判斷、轉(zhuǎn)換一系列的處理。</p><p>  3.3.2 ZLG7290器件工作原理</

89、p><p>  在設(shè)計(jì)當(dāng)中,為了使鍵盤部分能夠及時(shí)有效的響應(yīng),實(shí)驗(yàn)開發(fā)板上接有鍵盤專用芯片ZLG7290來做鍵盤部分的擴(kuò)展。該芯片是周立功公司針對儀器儀表行業(yè)的需要自行研制的一款芯片。該芯片能自動(dòng)完成8位LED 數(shù)碼管的動(dòng)態(tài)掃描和最多64(8*8)個(gè)按鍵檢測掃描,大大減輕單片機(jī)的用于顯示和鍵盤的工作時(shí)間和程序負(fù)擔(dān),可集中資源用于信號的檢測和控制,本實(shí)驗(yàn)的鍵盤只需要完成20個(gè)按鍵的按鍵檢測掃描即可。由于采用I2C總線方

90、式使得芯片與S3C2410X之間的通訊I2C總線接口便可完成,節(jié)省了單片機(jī)有限的I/O口資源。該芯片為工業(yè)級芯片,抗干擾能力強(qiáng),在工業(yè)測控中已有大量應(yīng)用。</p><p>  鍵盤的管理與控制。ZLG7290可采樣64個(gè)按鍵或傳感器,可檢測每個(gè)按鍵的連擊次數(shù),并具有如下功能:鍵盤去抖動(dòng)處理;雙鍵互鎖處理,即當(dāng)有兩個(gè)以上按鍵被同時(shí)按下時(shí),ZLG7290只采樣優(yōu)先級高的按鍵:連擊按鍵處理,即當(dāng)某個(gè)按鍵按下輸出一次鍵值

91、后。如果該按鍵還未釋放,該鍵值連續(xù)有效,就像連續(xù)壓按該鍵一樣,這種功能稱為連擊。連擊次數(shù)計(jì)數(shù)器RepeatCnt可區(qū)別出單擊(某些功能不允許連擊如開關(guān))或連擊,判斷連擊次數(shù),可以檢測被按下時(shí)間。以防止某些功能的誤操作。</p><p>  內(nèi)部寄存器的定義。ZLG7290內(nèi)部可通過I2C總線訪問的寄存器地址范圍為00H-17H,任意寄存器都可按字節(jié)直接讀寫,也可以通過命令接口間接讀寫或按位讀寫。 ZLG7290的

92、控制和狀態(tài)查詢均通過讀或?qū)懠拇嫫鲗?shí)現(xiàn),用戶只需像讀寫24C02內(nèi)的單元一樣操作即可實(shí)現(xiàn)對ZLG7290的控制。</p><p>  ZLG7290里主要使用到的寄存器如下:</p><p>  系統(tǒng)寄存器(SystemReg):地址00H,復(fù)位值B,系統(tǒng)寄存器可以保存ZLG7290系統(tǒng)狀態(tài)并可對系統(tǒng)運(yùn)行狀態(tài)進(jìn)行配置。</p><p>  鍵值寄存器(Key):地址0

93、1H,復(fù)位值00H,Key表示被按下鍵的鍵值,當(dāng)Key=0時(shí)表示沒有鍵被按下。</p><p>  連擊次數(shù)計(jì)數(shù)器(RepeatCnt):地址02H。復(fù)位值00H,RepeatCnt=0時(shí)表示單擊鍵,RepeatCnt大于0時(shí)表示鍵的連擊次數(shù),用于區(qū)別出單擊鍵或連擊鍵,判斷連擊次數(shù)可以檢測被按下時(shí)間。 </p><p>  鍵盤的工作過程:鍵盤的動(dòng)作由芯片ZLG7290檢測,當(dāng)鍵盤按下時(shí),

94、芯片檢測到后在INT引腳產(chǎn)生中斷觸發(fā)電平通知處理器,處理器通過I2C總線讀取芯片ZLG7290鍵值寄存器中保留的鍵值[4]。</p><p>  3.3.3 加載I2C模塊</p><p>  總線為同步串行數(shù)據(jù)傳輸總線,由兩根線組成,一根串行數(shù)據(jù)線和一根串行時(shí)鐘線。其標(biāo)準(zhǔn)模式總線傳輸位速率為0~100kb/s,增強(qiáng)模式將總線傳輸位速率增加到4倍,可達(dá)400kb/s,并且向下兼容。I2C總

95、線驅(qū)動(dòng)能力為400pF,整個(gè)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),即總線上只有一個(gè)主控節(jié)點(diǎn),總線上的其它設(shè)備都作為從設(shè)備。I2C總線上的設(shè)備尋址由器件地址接線決定,與總線相連的每個(gè)器件都對應(yīng)一個(gè)特定的地址,采用軟件尋址方式,并且通過訪問地址最低位來控制讀寫方向[5]。</p><p>  I

96、2C通信。ZLG7290的I2C接口傳輸速率可達(dá)32 kbit/s,容易與處理器接口,并提供鍵盤中斷信號,提高了主處理器的時(shí)間效率。有效的按鍵動(dòng)作、普通鍵的單擊、連擊和功能鍵狀態(tài)的變化都會令系統(tǒng)寄存器SystemReg的KeyAvi位置1。INT引腳信號信號為低電平有效,用戶的鍵盤處理程序可由INT引腳低電平中斷觸發(fā),以提高程序效率,也可以 不采樣INT引腳信號,節(jié)省系統(tǒng)的I/O數(shù)而采取輪詢系統(tǒng)寄存器KeyAvi位的方式,在讀鍵值寄存器

97、時(shí)會使KeyAvi位清0,并會使INT引腳信號無 效,為確保某個(gè)有效的按鍵動(dòng)作及所有參數(shù)寄存器的同步性??衫肐2C通信的地址自動(dòng)遞增功能。連續(xù)讀取RepeatCnt FunctionKey和Key寄存器。</p><p>  由于已編譯的內(nèi)核中沒有包含I2C驅(qū)動(dòng),所以運(yùn)行測試程序前需要安裝驅(qū)動(dòng)程序,對于本實(shí)驗(yàn)開發(fā)系統(tǒng),我們加載一個(gè)動(dòng)態(tài)模塊文件i2c.o。 </p><p>  3.3.4

98、 輸入模塊應(yīng)用程序?qū)崿F(xiàn)</p><p>  由于使用了ZLG7290芯片,我們在系統(tǒng)輸入模塊的設(shè)計(jì)與實(shí)現(xiàn)的主要工作都放在應(yīng)用程序的實(shí)現(xiàn)上。應(yīng)用程序主要實(shí)現(xiàn)對乘客請求信息結(jié)構(gòu)體獲取,并對信息進(jìn)行處理。因此此部分可以分為兩個(gè)函數(shù):一個(gè)用于獲取信息,另一個(gè)用于信息處理。</p><p>  因?yàn)閺逆I盤獲得輸入信息繁多而復(fù)雜。信息處理分兩大部分進(jìn)行。首先,對信息進(jìn)行篩選和封裝。由于信息鍵盤信息掃描

99、檢測函數(shù)是在不斷的在等待按鍵被按下,而用戶使用鍵盤輸入信息是間歇性的,所以我們需要對從鍵盤按鍵檢測程序獲取的值進(jìn)行篩選,保留用戶有效按鍵值。并且由于我們系統(tǒng)使用規(guī)則的限制,每次用戶發(fā)出的請求,并不能由單個(gè)按鍵完成,需要組合使用按鍵,所以我們需要設(shè)計(jì)函數(shù)把篩選下來的多個(gè)有效鍵值一一封裝在乘客請求信息結(jié)構(gòu)體里并對其進(jìn)行存儲。其次,在完整獲得了正確的用戶請求信息后,我們還有對信息進(jìn)行轉(zhuǎn)化。因?yàn)槲覀儚逆I盤獲得的乘客用戶信息結(jié)構(gòu)體里的信息,是站在

100、乘客使用角度封裝的,但電梯的控制必需從電梯的角度處理請求,所以我們設(shè)計(jì)處理函數(shù)把乘客信息結(jié)構(gòu)體里的相應(yīng)信息轉(zhuǎn)化為電梯信息結(jié)構(gòu)體里需要的信息。</p><p>  3.4 系統(tǒng)顯示模塊的設(shè)計(jì)與實(shí)現(xiàn)</p><p>  電梯轎廂作為一個(gè)相對封閉的乘行空間,乘梯環(huán)境顯得非常單調(diào),如何為乘客營造一個(gè)溫馨舒適的乘梯環(huán)境一直是電梯企業(yè)努力的方向,除了新的轎廂設(shè)計(jì)裝演外,各種電梯轎廂中的顯示系統(tǒng)也不斷推

101、陳出新。區(qū)別于目前市場上主流的把LED作為顯示工具,本系統(tǒng)使用一塊256色的5.7英寸LCD作為顯示工具。并且系統(tǒng)基于Linux的幀緩沖對LCD進(jìn)行圖形界面的設(shè)計(jì)。</p><p>  3.4.1 顯示系統(tǒng)界面設(shè)計(jì)</p><p>  設(shè)計(jì)圖形界面時(shí)本文把顯示分為四個(gè)界面:系統(tǒng)啟動(dòng)界面、系統(tǒng)使用說明界面、系統(tǒng)主界面和系統(tǒng)退出界面。其中除了系統(tǒng)主界面不涉及到圖片顯示外,其它三個(gè)界面都是以圖片

102、顯示為主。下面對四個(gè)界面做詳細(xì)闡述:</p><p>  (1) 系統(tǒng)啟動(dòng)界面參照圖3.8所示:</p><p>  圖3.8 系統(tǒng)開始界面圖</p><p>  系統(tǒng)啟動(dòng)后立即顯示圖,顯示持續(xù)三秒后,自動(dòng)切換為圖3.9。</p><p>  (2) 系統(tǒng)使用說明界面參照圖3.9所示:</p><p>  該界面簡要介

103、紹了自動(dòng)電梯模擬系統(tǒng)的使用方法,詳細(xì)使用說明參照本文中的系統(tǒng)使用說明。界面顯示10秒后,自動(dòng)切換到系統(tǒng)主界面。</p><p>  圖 3.9 系統(tǒng)使用說明界面圖</p><p>  (3) 系統(tǒng)主界面參照圖3.10所示</p><p>  程序主界面按照顯示功能被劃分為四大區(qū)域:一、電梯信息顯示區(qū)域,這個(gè)區(qū)域位于顯示屏最左側(cè),顯示電梯狀態(tài)、電梯方向、電梯位置;二、

104、乘客請求信息顯示區(qū)域,這個(gè)區(qū)域位于屏幕中部,該欄的字母和數(shù)字具體代表意義參照表3.2;三、電梯動(dòng)態(tài)效果圖,本圖緊鄰請求信息顯示區(qū)域,圖中每一個(gè)方塊代表一個(gè)樓層,當(dāng)電梯運(yùn)行時(shí),方塊發(fā)生相應(yīng)的動(dòng)態(tài)變化;四、主界面信息說明區(qū)域,這個(gè)區(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)按下程序退出鍵時(shí),仿真程序顯示結(jié)束,顯示系統(tǒng)結(jié)束界面圖。</p><p>  圖3.11 系統(tǒng)結(jié)束界面圖</p><p>  3.4.2 LCD設(shè)備顯示原理</p><

106、;p>  Framebuffer是Linux為圖形設(shè)備提供的一個(gè)抽象接口,它允許上層應(yīng)用程序在圖形模式下直接對顯示緩沖區(qū)進(jìn)行讀寫操作。由于Linux工作在保護(hù)模式,所以用戶態(tài)進(jìn)程無法像DOS那樣使用顯卡BIOS里提供的中斷調(diào)用來實(shí)現(xiàn)直接寫屏,Linux抽象出Framebuffer這個(gè)設(shè)備來供用戶態(tài)進(jìn)程實(shí)現(xiàn)直接寫屏。在使用Framebuffer時(shí),Linux是將顯卡置于圖形模式下的。Framebuffer就是模仿顯卡的功能,相當(dāng)于抽

107、象的顯卡硬件結(jié)構(gòu),實(shí)現(xiàn)了通過Framebuffer的讀寫直接對顯存進(jìn)行操作。用戶可以將Framebuffer看成是顯示內(nèi)存的一個(gè)映像,將其映射到進(jìn)程地址空間之后,就可以直接進(jìn)行讀寫操作,而寫操作可以立即反映在屏幕上。這種操作是抽象的、統(tǒng)一的。用戶不必關(guān)心物理顯存的位置、換頁機(jī)制等具體細(xì)節(jié),因?yàn)檫@些都是有Framebuffer設(shè)備驅(qū)動(dòng)來完成的。Framebuffer設(shè)備還提供了若干ioctl命令,通過這些命令,可以獲得顯示設(shè)備的一些固定信

108、息與顯示模式有關(guān)的可變信息等[6]。</p><p>  實(shí)現(xiàn)在LCD顯示的關(guān)鍵是Framebuffer驅(qū)動(dòng)程序的使用,利用驅(qū)動(dòng)程序?qū)CD的顯存與實(shí)驗(yàn)板的內(nèi)存映射到一起,向映射的內(nèi)存中寫東西,然后刷新顯存,LCD就會按照計(jì)算的位置在LCD屏幕上顯示寫入的數(shù)據(jù)信息。</p><p>  要實(shí)現(xiàn)LCD的顯示,首先需要清楚相關(guān)的硬件信息,包括屏幕的大小、能夠映射的內(nèi)存空間大小。其次,需要知道顯

109、示緩存與顯示點(diǎn)的對應(yīng)關(guān)系,而要搞清楚它們之間的關(guān)系必需弄明白液晶顯示屏在當(dāng)前顯示狀態(tài)下的顯示灰度?;叶燃墑e能夠控制LCD顯示的色彩信息,并且能夠確定每一個(gè)像素是由多少位來控制的,如果1級灰度,那么在此情況下LCD只可以顯示黑白兩種顏色,一個(gè)bit位就可以一個(gè)像素點(diǎn),也就是說一個(gè)內(nèi)存單元可以容納8個(gè)像素點(diǎn)的信息,只有了解了這些才能在寫顯存的時(shí)候確定好像素的顏色和位置等信息[7]。</p><p>  3.4.3 基

110、礎(chǔ)圖形顯示實(shí)現(xiàn)</p><p>  本文這一部分主要就是在已建立的Framebuffer驅(qū)動(dòng)基礎(chǔ)上,建立自己的圖形界面基礎(chǔ)圖形庫。因?yàn)橐呀?jīng)使用函數(shù)映射LCD內(nèi)容到內(nèi)存,所以接下來就可以直接更新內(nèi)存來更新LCD的內(nèi)容,也就是說在LCD上顯示圖形實(shí)質(zhì)就是把數(shù)據(jù)寫到顯示緩沖區(qū)中對應(yīng)的位置。所以本部分的功能包括三個(gè):一、根據(jù)顯示緩存與顯示點(diǎn)的對應(yīng)關(guān)系計(jì)算顯示點(diǎ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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論