版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 本文主要介紹了基于AVR的移動小車通信與控制軟件設(shè)計(jì)。</p><p> AVR單片機(jī)是ATMEL公司推出的世界上著名的高性能低功耗非易失性存儲器和數(shù)字集成電路的一流半導(dǎo)體,它的EEPROM電可擦除技術(shù)、閃速存儲器技術(shù)和質(zhì)量、高可靠性的生產(chǎn)技術(shù),在COMS器件生產(chǎn)領(lǐng)域中,ATMEL的先進(jìn)設(shè)計(jì)水平、優(yōu)秀
2、的生產(chǎn)工藝及封裝技術(shù)一直處于世界的領(lǐng)先地位。</p><p> 軟件設(shè)計(jì)的核心芯片選用8位的AVR單片機(jī)ATmega32。采用C語言設(shè)計(jì)單片機(jī)應(yīng)用系統(tǒng)程序,C語言具有良好的程序結(jié)構(gòu),適用于模塊化程序設(shè)計(jì)。通過C語言編譯器ICC AVR和集成開發(fā)環(huán)境AVR studio編譯和寫入硬件。連接PC機(jī)進(jìn)行程序調(diào)試,按下鍵盤“m”“n”和空格鍵,在PC機(jī)中中能正確顯示。按下鍵盤“上”“下”“左”“右”鍵,小車能按照鍵盤的
3、指示,左轉(zhuǎn)、右轉(zhuǎn),或者前進(jìn)、后退。</p><p> 軟件編程主要是依據(jù)PS/2鍵盤協(xié)議的,它是一種雙向同步串行協(xié)議。每次數(shù)據(jù)線上發(fā)送一位數(shù)據(jù)并且每在時(shí)鐘線上發(fā)一個(gè)脈沖就被讀入。鍵盤可以發(fā)送數(shù)據(jù)到主機(jī),而主機(jī)也可以發(fā)送數(shù)據(jù)到設(shè)備,但主機(jī)總是在總線上有優(yōu)先權(quán),它可以在任何時(shí)候抑制來自于鍵盤的通訊,只要把時(shí)鐘拉低即可。所有數(shù)據(jù)安排在字節(jié)中,每個(gè)字節(jié)為一幀,包含了11-12個(gè)位。程序?qū)懭牒?,小車能按照鍵盤的指示正常運(yùn)
4、行。</p><p> 關(guān)鍵詞:AVR單片機(jī);移動小車;C語言;PS/2鍵盤協(xié)議</p><p><b> Abstract</b></p><p> The article mainly introduced based on the AVR traversing crane correspondence and the control
5、 software design.</p><p> The AVR microcontroller is in the world which ATMEL Corporation promotes the famous high performance low power loss nonvolatile storage and digital integrated circuit's first-c
6、lass semiconductor, its EEPROM electricity may clean the technology, dodge the fast memory technology and the quality, the redundant reliable production technology, in the COMS component realm of production, the ATMEL ad
7、vanced design horizontal, the outstanding technique of production and the seal technology has been in th</p><p> Software design's core chip selects 8-bit AVR microcontroller ATmega32. Uses the C langua
8、ge design monolithic integrated circuit application system procedure, the C language has the good program structure, is suitable in the modularized program design.Through C language compiler ICC AVR and integrated develo
9、pment environment AVR studio translates and reads in the hardware. 窗體頂端Connects PC machine to carry on the program debugging, presses down the keyboard “m” “n” and the space bar, can demonstr</p><p> The so
10、ftware programming is mainly based on the PS/2 keyboard protocol, its a bidirectional synchronous serial protocol. Data is sent one bit at a time on the Data line and is read on each time Clock is pulsed. The keyboard/mo
11、use can send data to the host and the host can send data to the device, but the host always has priority over the bus and can inhibit communication from the keyboard/mouse at any time by holding Clock low. All data is ar
12、ranged in bytes with each byte sent in a frame consist</p><p> Key words: 窗體頂端</p><p> AVR microcontroller; Traversing crane; C language; PS/2 keyboard protocol 窗體底端</p><p><b&
13、gt; 目 錄</b></p><p><b> 1 緒 論1</b></p><p> 1.1 AVR單片機(jī)的發(fā)展過程及現(xiàn)狀1</p><p> 1.2 基于AVR的移動小車設(shè)計(jì)原則1</p><p> 1.3 課題背景及意義2</p><p> 1.4
14、 論文結(jié)構(gòu)2</p><p> 2 AVR單片機(jī)簡介4</p><p> 2.1 AVR單片機(jī)的主要特征4</p><p> 2.2 AVR單片機(jī)的選型6</p><p> 2.3 AVR單片機(jī)的型號標(biāo)識解析7</p><p> 3 移動小車硬件與編程環(huán)境9</p><
15、;p> 3.1 硬件電路原理圖9</p><p> 3.2 主要元器件的工作原理10</p><p> 3.3 軟件開發(fā)工具11</p><p> 3.3.1 C編譯器11</p><p> 3.3.2 集成開發(fā)環(huán)境16</p><p> 4 PS/2簡介17</p>
16、;<p> 4.1 PS/2鍵盤協(xié)議17</p><p> 4.1.1 概述17</p><p> 4.1.2 設(shè)備到主機(jī)的通訊17</p><p> 4.1.3 主機(jī)到設(shè)備的通訊20</p><p> 4.2 PS/2鍵盤接口22</p><p> 4.2.1 PS/2
17、接口簡介22</p><p> 4.2.2 掃描碼23</p><p> 4.2.2 通碼、斷碼和機(jī)打重復(fù)率23</p><p> 4.2.3 命令集24</p><p> 5 程序設(shè)計(jì)26</p><p> 5.1 移動小車的結(jié)構(gòu)框圖26</p><p> 5
18、.2 單片機(jī)C語言的主要特點(diǎn)26</p><p> 5.3 主流程圖27</p><p> 6 運(yùn)行結(jié)果29</p><p> 6.1 程序下載方法29</p><p> 6.2 系統(tǒng)運(yùn)行結(jié)果32</p><p><b> 結(jié) 論34</b></p>
19、<p><b> 致 謝35</b></p><p><b> 參考文獻(xiàn)36</b></p><p> 附錄A:英文原文37</p><p> 附錄B:中文翻譯49</p><p> 附錄C:程序代碼58</p><p><b> 1
20、 緒 論</b></p><p> 1.1 AVR單片機(jī)的發(fā)展過程及現(xiàn)狀</p><p> 早期單片機(jī)主要由于工藝及設(shè)計(jì)水平不高、功耗高和抗干擾性能差等原因,所以采取穩(wěn)妥方案:即采用較高的分頻系數(shù)對時(shí)鐘分頻,使得指令周期長,執(zhí)行速度慢。以后的CMOS單片機(jī)雖然采用提高時(shí)鐘頻率和縮小分頻系數(shù)等措施,但這種狀態(tài)并未被徹底改觀;此間雖有某些精簡指令集單片機(jī)(RISC)問世,但
21、依然沿襲對時(shí)鐘分頻的做法。</p><p> ATMEL公司是世界上著名的高性能、低功耗、非易失性存儲器和數(shù)字集成電路的一流半導(dǎo)體制造公司。20世紀(jì)90年代初 ,ATMEL率先把MCS-51內(nèi)核與其擅長的Flash技術(shù)相結(jié)合,推出轟動世界的AT89系列單片機(jī)。1997年,ATMEL挪威設(shè)計(jì)中心出于市場需求考慮,充分發(fā)揮其Flash技術(shù)優(yōu)勢,推出全新配置的精簡指令集(RISC)單片機(jī),簡稱AVR。幾年來,AVR單
22、片機(jī)已形成系列產(chǎn)品,其Attiny,AT90,Atmega分別對應(yīng)為低、中、高檔產(chǎn)品。</p><p> 電子技術(shù)如今迅猛發(fā)展,尤其是單片機(jī)已廣泛地應(yīng)用于軍事、工業(yè)、家用電器、智能玩具、便攜式智能儀表、機(jī)器人制作等領(lǐng)域,使產(chǎn)品功能、精度和質(zhì)量大幅度提高,且電路簡單,故障率低,可靠性高,成本低廉。AVR單片機(jī)價(jià)格低廉、可擦除1000次以上,不再有報(bào)廢品產(chǎn)生,且對掉電后數(shù)據(jù)的保存帶來方便,來電時(shí)能記住掉電時(shí)的工作狀
23、態(tài),給用戶帶來極高的可靠性,受到一致好評。</p><p> 1.2 基于AVR的移動小車設(shè)計(jì)原則</p><p> 可靠性:系統(tǒng)應(yīng)保證長期安全地進(jìn)行。系統(tǒng)中的硬軟件及信息資源應(yīng)滿足可靠性的設(shè)計(jì)要求。</p><p> 安全性:系統(tǒng)應(yīng)具有必要的安全保護(hù)和保密措施。</p><p> 抗干擾性:系統(tǒng)應(yīng)具有較強(qiáng)的抗干擾性,對各類用戶的誤
24、操作應(yīng)有提示或自動消除的能力。</p><p> 適應(yīng)性:系統(tǒng)應(yīng)對不斷發(fā)展和完善的統(tǒng)計(jì)核算方法,調(diào)查方法和指標(biāo)體系具有廣泛的適應(yīng)性。</p><p> 可擴(kuò)充性:系統(tǒng)的硬件應(yīng)具有擴(kuò)充升級的余地,不可因硬軟件擴(kuò)充、升級或改型而使原有的系統(tǒng)失去作用。</p><p> 實(shí)用性:注重采用成熟實(shí)用的技術(shù),使系統(tǒng)建設(shè)的投入產(chǎn)出比最高,能產(chǎn)生良好的社會效益和經(jīng)濟(jì)效益。&l
25、t;/p><p> 先進(jìn)性:在實(shí)用的前提下,應(yīng)盡可能跟蹤國內(nèi)外最先進(jìn)的計(jì)算機(jī)硬軟件技術(shù)、信息技術(shù)及網(wǎng)絡(luò)通信技術(shù),使系統(tǒng)具有較高的性能指標(biāo)。</p><p> 易操作性:貫徹面向最終用戶的原則,使用戶操作簡單直觀,易于掌握。</p><p> 1.3 課題背景及意義</p><p> 近十幾年來,隨著移動通信技術(shù)飛速發(fā)展,越來越多的信息采
26、集和遠(yuǎn)程控制系統(tǒng)采用了無線數(shù)據(jù)傳送技術(shù),它與有線數(shù)傳相比主要有布線成本低、安裝簡便、便于移動的優(yōu)點(diǎn),而且隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展和快速普及,越來越多的基于單片機(jī)為微控制器的的測控設(shè)備或智能儀器儀表都需要通過互聯(lián)網(wǎng)上進(jìn)行數(shù)據(jù)交換或傳輸數(shù)據(jù)。</p><p> 隨著技術(shù)的飛速發(fā)展,單片機(jī)的應(yīng)用范圍日益廣泛,已遠(yuǎn)遠(yuǎn)超出了計(jì)算機(jī)科學(xué)的領(lǐng)域。小道玩具、信用卡,大到航天器、機(jī)器人,從實(shí)現(xiàn)數(shù)據(jù)采集、過程控制、模糊控制等智能系
27、統(tǒng)到人類的日常生活,到處離不開單片機(jī),而AVR的應(yīng)用目前占主導(dǎo)地位,研究它的發(fā)展和應(yīng)用具有現(xiàn)實(shí)意義。</p><p> 移動小車的設(shè)計(jì)也是對移動機(jī)器人技術(shù)的延伸,移動機(jī)器人是近年來發(fā)展起來的一門綜合學(xué)科,集中了機(jī)械、電子、計(jì)算機(jī)、自動控制以及人工智能等多學(xué)科最新研究成果,代表了機(jī)電一體化的最高成就。移動機(jī)器人在工業(yè)生產(chǎn)中常用來完成運(yùn)輸和上下科等任務(wù),同時(shí)也被廣泛用于農(nóng)業(yè)、醫(yī)療、軍事等不同行業(yè)。</p>
28、;<p> 雖然移動機(jī)器人的概念和工作硬件已經(jīng)出現(xiàn)了幾十年,但是近年又不斷發(fā)生的自然災(zāi)害和持續(xù)的軍事沖突,促使世界各國工程師以新的眼光去重視機(jī)器人技術(shù)。移動機(jī)器人技術(shù)的范圍廣泛,從帶攝像頭的獨(dú)輪車,到攜有軍事裝備的無人駕駛飛機(jī),它可以挽救無數(shù)人的生命,因此成為最有希望的開發(fā)項(xiàng)目。</p><p> 本設(shè)計(jì)就是在Atmega32單片機(jī)的基礎(chǔ)上將小車的通信與控制智能化,便于人們使用和改進(jìn),并能在此基
29、礎(chǔ)上做進(jìn)一步的開發(fā)。</p><p><b> 1.4 論文結(jié)構(gòu)</b></p><p> 本論文主要介紹了基于AVR單片機(jī)的移動小車控制與通信軟件設(shè)計(jì),共從以下六部分進(jìn)行了介紹:</p><p> 第一部分介紹了AVR單片機(jī)的發(fā)展過程及現(xiàn)狀,設(shè)計(jì)原則以及課題相關(guān)的背景和意義;</p><p> 第二部分對于A
30、VR單片機(jī)的主要特征、選型和型號標(biāo)識做了介紹;</p><p> 第三部分介紹了小車的部分硬件和開發(fā)環(huán)境;</p><p> 第四部分對PS/2鍵盤協(xié)議和接口進(jìn)行了說明;</p><p> 第五部分是程序設(shè)計(jì)部分,介紹了移動小車的結(jié)構(gòu)框圖,單片機(jī)C語言編程的主要特點(diǎn)和程序的主流程圖;</p><p> 第六部分介紹了移動小車的程序下載
31、方法和系統(tǒng)運(yùn)行結(jié)果。</p><p> 2 AVR單片機(jī)簡介</p><p> 2.1 AVR單片機(jī)的主要特征</p><p> 高可靠性、功能強(qiáng)、高速度、低功耗和低價(jià)位,一直是衡量單片機(jī)性能的重要指標(biāo),也是單片機(jī)占領(lǐng)市場、賴以生存的必要條件。</p><p> AVR單片機(jī)廢除了機(jī)器周期,拋棄復(fù)雜指令計(jì)算機(jī)(CISC)追求指令完
32、備的做法;采用精簡指令集,以字作為指令長度單位,將內(nèi)容豐富的操作數(shù)與操作碼安排在一字之中(指令集中占大多數(shù)的單周期指令都是如此),取指周期短,又可預(yù)取指令,實(shí)現(xiàn)流水作業(yè),故可高速執(zhí)行指令。當(dāng)然這種速度上的升躍,是以高可靠性為其后盾的。</p><p> AVR單片機(jī)硬件結(jié)構(gòu)采取8位機(jī)與16位機(jī)的折中策略,即采用局部寄存器存堆(32個(gè)寄存器文件)和單體高速輸入/輸出的方案(即輸入捕獲寄存器、輸出比較匹配寄存器及相
33、應(yīng)控制邏輯)。提高了指令執(zhí)行速度(1Mips/MHz),克服了瓶頸現(xiàn)象,增強(qiáng)了功能;同時(shí)又減少了對外設(shè)管理的開銷,相對簡化了硬件結(jié)構(gòu),降低了成本。故AVR單片機(jī)在軟/硬件開銷、速度、性能和成本諸多方面取得了優(yōu)化平衡,是高性價(jià)比的單片機(jī)。 </p><p> AVR單片機(jī)內(nèi)嵌高質(zhì)量的Flash程序存儲器,擦寫方便,支持ISP和IAP,便于產(chǎn)品的調(diào)試、開發(fā)、生產(chǎn)、更新。內(nèi)嵌長壽命的EEProm可長期保存關(guān)鍵數(shù)據(jù),避
34、免斷電丟失。片內(nèi)大容量的RAM不僅能滿足一般場合的使用,同時(shí)也更有效的支持使用高級語言開發(fā)系統(tǒng)程序,并可像MCS-51單片機(jī)那樣擴(kuò)展外部 RAM。 </p><p> AVR單片機(jī)的I/O線全部帶可設(shè)置的上拉電阻、可單獨(dú)設(shè)定為輸入/輸出、可設(shè)定(初始)高阻輸入、驅(qū)動能力強(qiáng)(可省去功率驅(qū)動器件)等特性,使的得I/O口資源靈活、功能強(qiáng)大、可充分利用。 </p><p> AVR單片機(jī)片內(nèi)具
35、備多種獨(dú)立的時(shí)鐘分頻器,分別供URAT、I2C、SPI使用。其中與8/16位定時(shí)器配合的具有多達(dá)10 位的預(yù)分頻器,可通過軟件設(shè)定分頻系數(shù)提供多種檔次的定時(shí)時(shí)間。AVR單片機(jī)獨(dú)有的“以定時(shí)器/計(jì)數(shù)器(單)雙向計(jì)數(shù)形成三角波,再與輸出比較匹配寄存器配合,生成占空比可變、頻率可變、相位可變方波的設(shè)計(jì)方法(即脈寬調(diào)制輸出PWM)”更是令人耳目一新。</p><p> 增強(qiáng)性的高速同/異步串口,具有硬件產(chǎn)生校驗(yàn)碼、硬件
36、檢測和校驗(yàn)偵錯(cuò)、兩級接收緩沖、波特率自動調(diào)整定位(接收時(shí))、屏蔽數(shù)據(jù)幀等功能,提高了通信的可靠性,方便程序編寫,更便于組成分布式網(wǎng)絡(luò)和實(shí)現(xiàn)多機(jī)通信系統(tǒng)的復(fù)雜應(yīng)用,串口功能大大超過MCS-51/96單片機(jī)的串口,加之AVR單片機(jī)高速,中斷服務(wù)時(shí)間短,故可實(shí)現(xiàn)高波特率通訊。 </p><p> 面向字節(jié)的高速硬件串行接口TWI、SPI。TWI與I2C接口兼容,具備ACK信號硬件發(fā)送與識別、地址識別、總線仲裁等功能,
37、能實(shí)現(xiàn)主/從機(jī)的收/發(fā)全部4種組合的多機(jī)通信。SPI支持主/從機(jī)等4種組合的多機(jī)通信。</p><p> AVR單片機(jī)有自動上電復(fù)位電路、獨(dú)立的看門狗電路、低電壓檢測電路BOD,多個(gè)復(fù)位源(自動上下電復(fù)位、外部復(fù)位、看門狗復(fù)位、BOD復(fù)位),可設(shè)置的啟動后延時(shí)運(yùn)行程序,增強(qiáng)了嵌入式系統(tǒng)的可靠性。</p><p> AVR單片機(jī)具有多種省電休眠模式,且可寬電壓運(yùn)行(5-2.7V),抗干擾
38、能力強(qiáng),可降低一般8位機(jī)中的軟件抗干擾設(shè)計(jì)工作量和硬件的使用量。 AVR單片機(jī)技術(shù)體現(xiàn)了單片機(jī)集多種器件(包括FLASH程序存儲器、看門狗、EEPROM、同/異步串行口、TWI、SPI、A/D模數(shù)轉(zhuǎn)換器、定時(shí)器/計(jì)數(shù)器等)和多種功能(增強(qiáng)可靠性的復(fù)位系統(tǒng)、降低功耗抗干擾的休眠模式、品種多門類全的中斷系統(tǒng)、具輸入捕獲和比較匹配輸出等多樣化功能的定時(shí)器/計(jì)數(shù)器、具替換功能的I/O端口…… )于一身,充分體現(xiàn)了單片機(jī)技術(shù)的從“片自為戰(zhàn)”向“片
39、上系統(tǒng)SoC”過渡的發(fā)展方向。</p><p> 單片機(jī)已廣泛地應(yīng)用于軍事、工業(yè)、家用電器、智能玩具、便攜式智能儀表和機(jī)器人制作等領(lǐng)域,使產(chǎn)品功能、精度和質(zhì)量大幅度提升,且電路簡單,故障率低,可靠性高,成本低廉。單片機(jī)種類很多,在簡易機(jī)器人制作和創(chuàng)新中,為什么選用AVR單片機(jī)呢? </p><p> 1、簡便易學(xué),費(fèi)用低廉 </p><p> 首先,對于非專業(yè)
40、人員來說,選擇AVR單片機(jī)的最主要原因,是進(jìn)入AVR單片機(jī)開發(fā)的門檻非常低,只要會操作電腦就可以學(xué)習(xí)AVR單片機(jī)的開發(fā)。單片機(jī)初學(xué)者只需一條ISP下載線,把編輯、調(diào)試通過的軟件程序直接在線寫入AVR單片機(jī),即可以開發(fā)AVR單片機(jī)系列中的各種封裝的器件。AVR單片機(jī)因此在業(yè)界號稱“一線打天下”。 </p><p> 其次,AVR單片機(jī)便于升級。AVR程序?qū)懭胧侵苯釉陔娐钒迳线M(jìn)行程序修改、燒錄等操作,這樣便于產(chǎn)品升
41、級。 </p><p> 2、高速、低耗、保密 </p><p> 首先,AVR單片機(jī)是高速嵌入式單片機(jī):</p><p> ?。?)AVR單片機(jī)具有預(yù)取指令功能,即在執(zhí)行一條指令時(shí),預(yù)先把下一條指令取進(jìn)來,使得指令可以在一個(gè)時(shí)鐘周期內(nèi)執(zhí)行。</p><p> ?。?)多累加器型,數(shù)據(jù)處理速度快。AVR單片機(jī)具有32個(gè)通用工作寄存器,相當(dāng)
42、于有32條立交橋,可以快速通行。</p><p> ?。?)中斷響應(yīng)速度快。AVR單片機(jī)有多個(gè)固定中斷向量入口地址,可快速響應(yīng)中斷。 </p><p> 其次,AVR單片機(jī)耗能低。對于典型功耗情況,WDT關(guān)閉時(shí)為100na,更適用于電池供電的應(yīng)用設(shè)備。有的器件最低1.8 V即可工作。</p><p> 再次,AVR單片機(jī)保密性能好。它具有不可破解的位加密鎖Loc
43、k Bit技術(shù),保密位單元深藏于芯片內(nèi)部,無法用電子顯微鏡看到。</p><p> 3、I/O口功能強(qiáng),具有A/D轉(zhuǎn)換等電路 </p><p> ?。?) AVR單片機(jī)的I/O口是真正的I/O口,能正確反映I/O口輸入/輸出的真實(shí)情況。工業(yè)級產(chǎn)品,具有大電流(灌電流)10~40 am,可直接驅(qū)動可控硅SCR或繼電器,節(jié)省了外圍驅(qū)動器件。 </p><p> ?。?
44、) AVR單片機(jī)內(nèi)帶模擬比較器,I/O口可用作A/D轉(zhuǎn)換,可組成廉價(jià)的A/D轉(zhuǎn)換器。ATMega48/8/16等器件具有8路10位A/D。 </p><p> (3) 部分AVR單片機(jī)可組成零外設(shè)元件單片機(jī)系統(tǒng),使該類單片機(jī)無外加元器件即可工作,簡單方便,成本又低。</p><p> ?。?)AVR單片機(jī)可重設(shè)啟動復(fù)位,以提高單片機(jī)工作的可靠性。有看門狗定時(shí)器實(shí)行安全保護(hù),可防止程序走亂
45、(飛),提高了產(chǎn)品的抗干擾能力。</p><p> 4、有功能強(qiáng)大的定時(shí)器/計(jì)數(shù)器及通訊接口</p><p> 定時(shí)/計(jì)數(shù)器T/C有8位和16位,可用作比較器。計(jì)數(shù)器外部中斷和PWM(也可用作D/A)用于控制輸出,某些型號的AVR單片機(jī)有3~4個(gè)PWM,是作電機(jī)無級調(diào)速的理想器件。</p><p> AVR單片機(jī)有串行異步通訊UART接口,不占用定時(shí)器和SPI
46、同步傳輸功能,因其具有高速特性,故可以工作在一般標(biāo)準(zhǔn)整數(shù)頻率下,而波特率可達(dá)576K。</p><p> 2.2 AVR單片機(jī)的選型</p><p> 單片機(jī)是硬件系統(tǒng)的核心,它直接決定了整個(gè)系統(tǒng)的功能和性能,同時(shí),不同封裝形式的單片機(jī)芯片也會影響到系統(tǒng)的物理尺寸和重量,因此單片機(jī)的選型主要考慮兩個(gè)因素。</p><p> 從Atmel公司于1997年首次推
47、出AVR單片機(jī)到現(xiàn)在,AVR單片機(jī)已經(jīng)形成了一系列產(chǎn)品,其中Tiny、AT90、Atmega系列單片機(jī)分別對應(yīng)低、中、高檔產(chǎn)品,根據(jù)不同的要求,有30多種型號可供用戶選擇。 </p><p> ?。?)低檔的Tiny系列。該系列是專門為需要小型微控制器的簡單應(yīng)用而優(yōu)化設(shè)計(jì)的,有很高的性價(jià)比,主要有8個(gè)引腳的Tiny11/12/13/15、20個(gè)引腳的Tiny26和28個(gè)引腳的Tiny28。其中Tiny15和Tin
48、y26有10位的A/D轉(zhuǎn)化器,Tiny26還有128字節(jié)的RAM,Tiny11和Tiny28具有流水線特征。該系列的產(chǎn)品適用于家用電器和簡單的控制,如空調(diào)、冰箱、微波爐、煙霧報(bào)警器等。 </p><p> (2)中檔的AT90S系列。自2002年以來,Atmel公司對AVR單片機(jī)產(chǎn)品線進(jìn)行了調(diào)整,逐步停止了該系列產(chǎn)品的生產(chǎn)。主要有AT90S1200/2313/8515/8535等。</p><
49、;p> ?。?)高檔的ATmega系列。該系列是目前Atmel公司的主流產(chǎn)品,它不僅性能優(yōu)越,同時(shí)也有非常好的性價(jià)比。該系列主要有ATmega8/16/32/64/128( 存儲容量為8/16/32/64/128 KB)以及ATmega8515/8535等。</p><p> 近年來,隨著電子產(chǎn)業(yè)的發(fā)展和市場需求的變化,Atmel公司不斷調(diào)整生產(chǎn)線,在上述三個(gè)系列之外又相繼退出了LCD AVR、USB A
50、VR、CAN AVR等系列產(chǎn)品。 </p><p> 2.3 AVR單片機(jī)的型號標(biāo)識解析</p><p> (1) 型號緊跟的字母,表示電壓工作范圍。帶“V”:1.8-5.5V;若缺省,不帶“V”:2.7-5.5V。</p><p> 其中帶“L”與不帶“L”的區(qū)別:“L”是“Low”的縮寫。</p><p> “L”表示它可以支持
51、低電壓,它支持的電壓范圍為:2.7-5.5V。不帶“L”的則表示支持電壓范圍為:4.5-5.5V。 </p><p> 例:ATmega48-20AU,不帶“V”表示工作電壓為2.7-5.5V。 </p><p> ?。?) 后綴的數(shù)字部分,表示支持的最高系統(tǒng)時(shí)鐘。 </p><p> 例:ATmega48-20AU,“20”表示可支持最高為20MHZ的系統(tǒng)時(shí)鐘
52、。 </p><p> ?。?) 后綴第一(第二)個(gè)字母,表示封裝?!癙”:DIP封裝,“A”:TQFP封裝,“M”:MLF封裝。 </p><p> 例:ATmega48-20AU,“A”表示TQFP封裝。 </p><p> ?。?) 后綴最后一個(gè)字母,表示應(yīng)用級別。“C”:商業(yè)級,“I”:工業(yè)級(有鉛)、“U”工業(yè)級(無鉛)。 </p><
53、;p> 例:ATmega48-20AU,“U”表示無鉛工業(yè)級。ATmega48-20AI,“I”表示有鉛工業(yè)級。 </p><p> 3 移動小車硬件與編程環(huán)境</p><p> 3.1 硬件電路原理圖</p><p> 電路原理圖包括主芯片部分和驅(qū)動電路模塊,如圖3.1所示。</p><p> 圖3.1 移動小車通信與控
54、制電路原理圖</p><p> 3.2 主要元器件的工作原理</p><p><b> 1、AVR單片機(jī)</b></p><p> 采用ATmega系列的ATmega32作為控制系統(tǒng)的核心芯片。</p><p> ATmega32是基于增強(qiáng)的AVR RISC結(jié)構(gòu)的低功耗8位CMOS微控制器。由于其先進(jìn)的指令集以
55、及單時(shí)鐘周期指令執(zhí)行時(shí)間,ATmega32的數(shù)據(jù)吞吐率高達(dá)1 MIPS/MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。</p><p> ATmega32的片內(nèi)集成了32KB的系統(tǒng)內(nèi)可編程Flash(具有同時(shí)讀/寫的能力,即RWW)、1KB EEPROM、2KB SRAM、32個(gè)通用I/O口線、32個(gè)通用工作寄存器,具有用于邊界掃描的JTAG接口,支持片內(nèi)調(diào)試與編程,3個(gè)具有比較模式的靈活的定時(shí)器/計(jì)數(shù)器
56、(T/C),片內(nèi)/外中斷,可編程串行USART,面向字節(jié)的兩線串行接口,8路10位具有可選差分輸入級可編程增益(TQFP封裝)的ADC,具有片內(nèi)振蕩器的可編程看門狗定時(shí)器以及1個(gè)SPI串行端口。</p><p><b> 2、電機(jī)驅(qū)動模塊</b></p><p> 選用SGS公司的L298N,內(nèi)部包含4通道邏輯驅(qū)動電路。是一種二相和四相電機(jī)的專用驅(qū)動器,即內(nèi)含二個(gè)
57、H橋的高電壓大電流雙全橋式驅(qū)動器,接收標(biāo)準(zhǔn)TTL邏輯電平信號。</p><p> 芯片L298屬于H橋集成電路,其輸出電流為2000mA,最高電流4A,最高工作電壓36V,可以驅(qū)動感性負(fù)載,比如:中性直流電機(jī),驅(qū)動器、布進(jìn)電機(jī)和開關(guān)電源晶體管,特別是其輸入端可以與單片機(jī)直接相連,從而很方便地受單片機(jī)控制。當(dāng)驅(qū)動小型直流電機(jī)時(shí),可以直接控制兩路電機(jī),并可以實(shí)現(xiàn)電機(jī)正轉(zhuǎn)與反轉(zhuǎn),實(shí)現(xiàn)此功能只需改變輸入端的邏輯電平。&
58、lt;/p><p> 本模塊加入多級驅(qū)動,超高輸入阻抗,對輸入信號沒有驅(qū)動要求,適合各類I/O口,應(yīng)用廣泛。并且具有體積小,控制方便的特點(diǎn)。</p><p><b> 3、調(diào)試與編程工具</b></p><p> 選用Atmel公司日前宣布推出針對AVR(R)微控制器的AVR Dragon(TM)開發(fā)工具。AVR Dragon為30多種不同的
59、AVR Flash微控制器提供了一種完備的片上調(diào)試與編程工具,售價(jià)僅為49美元,是業(yè)界最完善的低成本開發(fā)工具。</p><p> Atmel憑借AVR Dragon,為低成本開發(fā)工具樹立了新的標(biāo)準(zhǔn)。AVR Dragon支持所有AVR微控制器的各種編程模式,還支持高達(dá)32 Kb的Flash 程序存儲器的片上調(diào)試。</p><p> AVR Dragon的售價(jià)遠(yuǎn)低于同類全功能工具的價(jià)格,卻
60、能滿足各種編程和調(diào)試需求。AVR Dragon與外部目標(biāo)板以及板上原型區(qū)共同使用,可在不添加任何硬件的情況下,進(jìn)行編程和調(diào)試。</p><p> 通過對質(zhì)量的關(guān)注,讓一個(gè)工具套件囊括整個(gè)AVR微控制器系列,工程人員只需運(yùn)用幾項(xiàng)平價(jià)工具,就可獲得完整的開發(fā)環(huán)境。Atmel 的AVR開發(fā)工具總監(jiān)Dag Arne Braend 表示:“低成本、應(yīng)用廣泛和優(yōu)質(zhì),一直是我們AVR開發(fā)工具的宗旨。AVR Dragon 是又
61、一個(gè)低成本工具,但功能強(qiáng)大,足以應(yīng)付開發(fā)環(huán)境的日常需要。它支持30多種不同的 AVR 微控制器?!?lt;/p><p> 所支持的 AVR 編程和調(diào)試協(xié)議:</p><p> ?。?)在系統(tǒng)編程 (ISP) 3線 AVR 編程協(xié)議;</p><p> (2)符合 JTAG 編程4線 IEEE(R) 1149.1的 JTAG 接口;</p><p&
62、gt; ?。?)高壓串行編程;</p><p><b> (4)平行編程;</b></p><p> ?。?)可對高達(dá)32 Kb Flash 的設(shè)備進(jìn)行 JTAG 調(diào)試;</p><p> ?。?)debugWIRE 單線 AVR 調(diào)試協(xié)議。</p><p> AVR Dragon由USB線驅(qū)動,也可由高達(dá)300 m
63、A的外部目標(biāo)驅(qū)動,進(jìn)行編程或調(diào)試。如果該目標(biāo)已由外部電源驅(qū)動,AVR Dragon會對目標(biāo)和AVR Dragon之間的所有信號進(jìn)行調(diào)適和電平轉(zhuǎn)換。</p><p> 3.3 軟件開發(fā)工具</p><p> 3.3.1 C編譯器</p><p> 1、ICC AVR簡介</p><p> AVR系列單片機(jī)的集成開發(fā)環(huán)境有Image
64、Craft公司的ICC AVR和Atmel公司的AVR Studio等。其中ICC AVR因支持標(biāo)準(zhǔn)C語言對AVR系列單片機(jī)的編程而得到了廣泛的應(yīng)用。ICC AVR嚴(yán)格來說只是支持AVR單片機(jī)程序設(shè)計(jì)的一個(gè)C編譯器,它并不提供對程序的軟件仿真功能。然而ICC AVR對源程序編譯輸出的*cof映像文件可以與AVR Studio無縫地連接,通過AVR Studio調(diào)試器來對程序進(jìn)行軟件仿真。</p><p> 自A
65、TMEL公司的AT90系列單片機(jī)誕生以來有很多第三方廠商為AT90系列開發(fā)了用于程序開發(fā)的C語言工具,ICCAVR就是ATMEL公司推薦的第三方C編譯器之一。</p><p> 圖3.2是ICC AVR7.0版本的窗口設(shè)置,分為5大區(qū):</p><p> 圖3.2 ICC AVR7.0的窗口設(shè)置</p><p><b> ?。?)菜單項(xiàng) </b
66、></p><p> 包括文件、編輯、搜索、視圖、工程菜單、工具菜單、電腦終端、幫助。</p><p><b> ?。?)快捷菜單圖標(biāo)</b></p><p> 從左到右依次為:新建,打開,保存,打印,剪切,復(fù)制,粘貼,查找,編譯,停止,工程屬性,到第一個(gè)錯(cuò)誤,下一個(gè)錯(cuò)誤,應(yīng)用向?qū)С绦駻pplication Builder,ISP對話
67、框。 </p><p><b> ?。?)程序編輯區(qū)</b></p><p> 所有的程序編輯工作在這里完成。</p><p> (4)編譯狀態(tài)顯示欄</p><p> 顯示編譯狀態(tài),查看報(bào)錯(cuò)情況進(jìn)行相應(yīng)修改。</p><p><b> ?。?)文件列表框</b><
68、;/p><p> 文件分類管理查看,這里的分類只是為了方便管理,并沒有實(shí)際的分開。 </p><p> 文件分為.c程序文件,.h頭文件,說明文檔。 </p><p> ICCAVR是一種符合ANSI標(biāo)準(zhǔn)的C語言來開發(fā)MCU(單片機(jī))程序的一個(gè)工具,功能合適、使用方便、技術(shù)支持好,它主要有以下幾個(gè)特點(diǎn): </p><p> ?。?)ICCA
69、VR是一個(gè)綜合了編輯器和工程管理器的集成工作環(huán)境(IDE); </p><p> (2)源文件全部被組織到工程之中,文件的編輯和工程的構(gòu)筑也在這個(gè)環(huán)境中完成,錯(cuò)誤顯示在狀態(tài)窗口中,并且當(dāng)你點(diǎn)擊編譯錯(cuò)誤時(shí),光標(biāo)自動跳轉(zhuǎn)到錯(cuò)誤的那一行; </p><p> ?。?)該工程管理器還能直接產(chǎn)生INTEL HEX格式文件的燒寫文件(該格式的文件可被大多數(shù)編程器所支持,可以直接下載到芯片中使用)和符
70、合AVRStudio的調(diào)試文件(COFF格式); </p><p> ?。?)ICCAVR是一個(gè)32位的程序,支持長文件名; </p><p> (5)ICCAVR是一個(gè)綜合了編輯器和工程管理器的集成開發(fā)環(huán)境(IDE),是一個(gè)純32位的程序,Win 2000、Win XP和Win 7環(huán)境下運(yùn)行。</p><p> 2、ICCAVR中的文件類型及其擴(kuò)展名</
71、p><p> 文件類型是由它們的擴(kuò)展名決定的IDE和編譯器可以使用以下幾種類型的文件。</p><p><b> ?。?)輸入文件</b></p><p> .c 擴(kuò)展名,表示是C語言源文件;</p><p> .s 擴(kuò)展名,表示是匯編語言源文件;</p>
72、<p> .h 擴(kuò)展名,表示是C語言的頭文件;</p><p> .prj 擴(kuò)展名,表示是工程文件 這個(gè)文件保存由IDE所創(chuàng)建和修改的一個(gè)工程的有關(guān)信息;</p><p> .a 擴(kuò)展名,庫文件,它可以由幾個(gè)庫封裝在一起libcavr.a是一個(gè)包含了標(biāo)準(zhǔn)C的庫和AVR特殊程序調(diào)用的基本庫,如果庫被引用,鏈接器會將
73、其鏈接到您的模塊或文件中,您也可以創(chuàng)建或修改一個(gè)符合你需要的庫。</p><p><b> ?。?)輸出文件</b></p><p> .s 對應(yīng)每個(gè)C語言源文件,由編譯器在編譯時(shí)產(chǎn)生的匯編輸出文件;</p><p> .o 由匯編文件匯編產(chǎn)生的目標(biāo)文件,多個(gè)目標(biāo)文件可以鏈接成一個(gè)可執(zhí)行文件;</p
74、><p> .hex INTEL HEX 格式文件,其中包含了程序的機(jī)器代碼;</p><p> .eep INTEL HEX 格式文件,包含了EEPROM的初始化數(shù)據(jù);</p><p> .cof COFF格式輸出文件,用于在ATMEL的AVR Studio環(huán)境下進(jìn)行程序調(diào)試;</p><p> .l
75、st 列表文件,在這個(gè)文件中列舉出了目標(biāo)代碼對應(yīng)的最終地址;</p><p> .mp 內(nèi)存映象文件,它包含了您程序中有關(guān)符號及其所占內(nèi)存大小的信息;</p><p> .cmd NoICE 2.xx,調(diào)試命令文件;</p><p> .noi
76、; NoICE 3.xx,調(diào)試命令文件;</p><p> .dbg ImageCraft ,調(diào)試命令文件。</p><p> 3、ICCAVR硬件訪問的C編程</p><p> (1)訪問 AVR 的低層硬件 </p><p> AVR 系列使用高級語言編程時(shí)有很高的 C 語言密度,它允許你對訪問目
77、標(biāo) MCU 的底層硬件進(jìn)行訪問。由于AVR 性能,除了要最大程序地優(yōu)化代碼外很少使用匯編。偶然情況下目標(biāo)MCU的硬件特點(diǎn)在C語言中不能很好地使用,很顯然使用在線匯編和預(yù)處理宏能訪問這些特點(diǎn)。</p><p> 頭文件 io*.h(如 io8515.h iom603.h)等定義了指定AVR MCU 的 IO寄存器細(xì)節(jié)。這些文件是從 ATMEL官方發(fā)布的文件經(jīng)過修改,以匹配這個(gè)編譯器的語法要求 文件。macro
78、s.h 定義了許多有用的宏,例如宏 UART_TRANSMIT_ON( )能使UART 開始工作。 </p><p> 這個(gè)編譯器的效率很高,當(dāng)訪問由IO 寄存器映射的內(nèi)存時(shí)能產(chǎn)生單周期指令象in、out 、sbis、 sbi 等。參考 IO 寄存器。 </p><p> 注意:老的頭文件 avr.h 定義IO寄存器的bit 有一些模糊,盡管 io*.h 定義了它們的bit的位置。因
79、此使用 io*.h和 IO 寄存器的 bit,很多時(shí)候你將需要使用定義在 macros.h文件中的BIT()宏。例如: </p><p><b> avr.h: </b></p><p> #define SRE 0x80 // 外部 RAM 使能 </p><p> ... (你的 C 程序) </p>
80、<p> MCUCR |= SRE; </p><p><b> io8515.h </b></p><p> #define SRE 7 </p><p> ... (你的 C 程序) </p><p> #include <macros.h> </p>
81、;<p> MCUCR |= BIT(SRE); </p><p><b> ?。?)位操作 </b></p><p> 一個(gè)共同的任務(wù)是編程微控制器 MCU 打開或關(guān)閉 IO 寄存器的一些位(bit)。很幸運(yùn), 標(biāo)準(zhǔn) C 有較好的和適用的位操作功能,而沒有借助于匯編指令或其它非標(biāo)準(zhǔn) C 結(jié)構(gòu),C 定義了一些按位進(jìn)行的運(yùn)算是很有用的。 <
82、/p><p> a | b :按位或,這個(gè)表達(dá)式指示中a 被表達(dá)式中的b按位進(jìn)行或運(yùn)算。這慣用于打開某些位,尤其常用|=的形式,例如:</p><p> PORTA |= 0x80;// 打開位7 (最高位) </p><p> a & b :按位與,這個(gè)運(yùn);算在檢查某些位是否置 1 時(shí)有用,例如:</p><p> If(
83、(PORTA & 0x81) == 0) // 檢查位7 和位0 </p><p> 注意圓括號需要括在&運(yùn)算符的周圍,因?yàn)樗?=相比運(yùn)算優(yōu)先級較低,這是 C程序中很多錯(cuò)誤的原因之一。 </p><p> a ^ b :按位異或,這個(gè)運(yùn)算對一個(gè)位取反有用。例如,在下面的例子中,位7是被翻轉(zhuǎn)的:</p><p> PORTA ^= 0x80
84、;// 翻轉(zhuǎn)位7 </p><p> ~a :按位取反,在表達(dá)式中這個(gè)運(yùn)算執(zhí)行一個(gè)取反,當(dāng)用按位與運(yùn)算關(guān)閉某些位時(shí)與這個(gè)運(yùn)算組合使用尤其有用,如: </p><p> PORTA &= ~0x80;// 關(guān)閉位7 </p><p> 這個(gè)編譯器對這些運(yùn)算能產(chǎn)生最理想的機(jī)器指令,例如:sbic 指令可以用在根據(jù)位的狀態(tài)進(jìn)行條件分枝的按位與運(yùn)算中。&l
85、t;/p><p> 3.3.2 集成開發(fā)環(huán)境</p><p> 1、AVR Studio 環(huán)境簡介</p><p> AVR Studio 軟件是一款用于開發(fā)AVR單片機(jī)的集成開發(fā)環(huán)境(IDE)。它是一款免費(fèi)軟件,由ATMEL公司開發(fā)并免費(fèi)提供給用戶,不僅支持Atmegal16單片機(jī),基本完全支持AVR全系列單片機(jī)的開發(fā)。用戶可以在ATMEL公司的官方網(wǎng)站上自由
86、下載。AVR Studio內(nèi)含了項(xiàng)目管理器、源代碼編輯器、AVR匯編語言編譯器、軟件模擬和實(shí)時(shí)仿真功能,借助于仿真器,還可以實(shí)現(xiàn)JTAG ICE實(shí)時(shí)仿真功能,以及AVR prog串行程序下載、STK500/JTAG ICE串行程序下載。但是AVR Studio 不能進(jìn)行C語言程序的編譯,但是仍然是瑕不掩瑜,借助于其強(qiáng)大的軟件仿真功能,基本上所有的第三方AVR高級語言開發(fā)軟件,如ICCAVR、CodeVersion、AVR等均以內(nèi)置或外掛
87、的形式,支持使用AVR Studio進(jìn)行仿真。</p><p> ATMEL 公司的AVR Studio軟件同時(shí)有兩種版本存在,分別是4.x和3.x。AVR Studio 3.x集成了AVR Studio之前版本的一貫風(fēng)格,而AVR Studio 4.x的內(nèi)核被重新設(shè)計(jì)過,采用了XML技術(shù),更利于對ATMEL公司的新器件與開發(fā)工具的支持,所有對于ATMEL公司的新產(chǎn)品,往往首先被AVR Studio4.x支持。
88、</p><p> 2、AVR Studio的特點(diǎn)</p><p> ?。?)支持AVR匯編程序的編輯、編譯、連接以及生成目標(biāo)代碼;</p><p> ?。?)內(nèi)嵌AVR GCC高級語言接口;</p><p> (3)內(nèi)含AVR 軟件模擬器;</p><p> (4)仿真調(diào)試平臺還可以配合ATMEL公司設(shè)計(jì)推出的
89、多種類型的仿真器,如實(shí)時(shí)在板仿真器ICE40、ICE50,實(shí)時(shí)在片仿真器JTAG ICE、JTAGICE mkⅡ等,以實(shí)現(xiàn)系統(tǒng)的在線的硬件仿真調(diào)試功能和目標(biāo)代碼的下載功能。</p><p> 本設(shè)計(jì)使用AVR Studio4.0+ICCAVR來進(jìn)行AVR單片機(jī)的開發(fā)。</p><p><b> 4 PS/2簡介</b></p><p>
90、 4.1 PS/2鍵盤協(xié)議</p><p><b> 4.1.1 概述</b></p><p> PS/2鍵盤履行一種雙向同步串行協(xié)議。換句話說,每次數(shù)據(jù)線上發(fā)送一位數(shù)據(jù)并且每在時(shí)鐘線上發(fā)一個(gè)脈沖就被讀入。鍵盤可以發(fā)送數(shù)據(jù)到主機(jī),而主機(jī)也可以發(fā)送數(shù)據(jù)到設(shè)備,但主機(jī)總是在總線上有優(yōu)先權(quán),它可以在任何時(shí)候抑制來自于鍵盤的通訊,只要把時(shí)鐘拉低即可。 </p&g
91、t;<p> 從鍵盤發(fā)送到主機(jī)的數(shù)據(jù)在時(shí)鐘信號的下降沿(當(dāng)時(shí)鐘從高變到低的時(shí)候)被讀??;從主機(jī)發(fā)送到鍵盤的數(shù)據(jù)在上升沿(當(dāng)時(shí)鐘從低變到高的時(shí)候)被讀取。不管通訊的方向怎樣,鍵盤總是產(chǎn)生時(shí)鐘信號。如果主機(jī)要發(fā)送數(shù)據(jù),它必須首先告訴設(shè)備開始產(chǎn)生時(shí)鐘信號。最大的時(shí)鐘頻率是33kHz,而且大多數(shù)設(shè)備工作在10-20kHz。如果你要制作一個(gè)PS/2設(shè)備,推薦你把頻率控制在15kHz 左右,這就意味著時(shí)鐘應(yīng)該是高40微秒低40微秒。
92、 </p><p> 所有數(shù)據(jù)安排在字節(jié)中,每個(gè)字節(jié)為一幀,包含了11-12個(gè)位,這些位的含義如下:</p><p> 1 個(gè)起始位,總是為0 ;</p><p> 8 個(gè)數(shù)據(jù)位,低位在前; </p><p> 1 個(gè)校驗(yàn)位,奇校驗(yàn); </p><p> 1 個(gè)停止位,總是為 1; </p>&
93、lt;p> 1 個(gè)應(yīng)答位,僅在主機(jī)對設(shè)備的通訊中。</p><p> 如果數(shù)據(jù)位中包含偶數(shù)個(gè)1,校驗(yàn)位就會置1;如果數(shù)據(jù)位中包含奇數(shù)個(gè)1,校驗(yàn)位就會置0。數(shù)據(jù)位中1的個(gè)數(shù)加上校驗(yàn)位總為奇數(shù)(這就是奇校驗(yàn))。這是用來錯(cuò)誤檢測。 </p><p> 當(dāng)主機(jī)發(fā)送數(shù)據(jù)給鍵盤/鼠標(biāo)時(shí),設(shè)備回送一個(gè)握手信號來應(yīng)答數(shù)據(jù)包已經(jīng)收到,這個(gè)位不會出現(xiàn)在設(shè)備發(fā)送數(shù)據(jù)到主機(jī)的過程中。 </p&g
94、t;<p> 4.1.2 設(shè)備到主機(jī)的通訊</p><p> 數(shù)據(jù)和時(shí)鐘線都是集電極開路結(jié)構(gòu)(正常保持高電平)。當(dāng)鍵盤或鼠標(biāo)等待發(fā)送數(shù)據(jù)時(shí),它首先檢查時(shí)鐘以確認(rèn)它是否是高電平。如果不是,那么是主機(jī)抑制了通訊,設(shè)備必須緩沖任何要發(fā)送的數(shù)據(jù)直到重新獲得總線的控制權(quán)(鍵盤有16字節(jié)的緩沖區(qū),而鼠標(biāo)的緩沖區(qū)僅存儲最后一個(gè)要發(fā)送的數(shù)據(jù)包)。如果時(shí)鐘線是高電平,設(shè)備就可以開始傳送數(shù)據(jù)。</p>
95、<p> 每位在時(shí)鐘的下降沿被主機(jī)讀入,如圖4.1和圖4.2所示:</p><p> 圖4.1設(shè)備到主機(jī)的通訊(當(dāng)時(shí)鐘為高,數(shù)據(jù)線改變狀態(tài),在時(shí)鐘信號的下降沿?cái)?shù)據(jù)被鎖存)</p><p> 圖4.2 Q鍵的掃描碼從鍵盤發(fā)送到計(jì)算機(jī),通道A是時(shí)鐘信號,通道B是數(shù)據(jù)信號</p><p> 時(shí)鐘頻率為10-16.7kHz。從時(shí)鐘脈沖的上升沿到一個(gè)數(shù)據(jù)
96、轉(zhuǎn)變的時(shí)間至少要有5微秒。數(shù)據(jù)變化到時(shí)鐘脈沖的下降沿的時(shí)間至少要有5微秒并且不大于25微秒。這個(gè)定時(shí)非常重要——應(yīng)該嚴(yán)格遵循它。主機(jī)可以在第11個(gè)時(shí)鐘脈沖(停止位)之前把線拉低,導(dǎo)致設(shè)備放棄發(fā)送當(dāng)前字節(jié)(這是非常罕見的)。在停止位發(fā)送后,設(shè)備在發(fā)送下個(gè)包前至少應(yīng)該等待50毫秒。這將給主機(jī)時(shí)間當(dāng)它處理接收到的字節(jié)時(shí)抑制發(fā)送(主機(jī)在收到每個(gè)包時(shí),通常自動做這個(gè))。在主機(jī)釋放抑制后,設(shè)備至少應(yīng)該在發(fā)送任何數(shù)據(jù)前等50毫秒。</p>
97、<p> 發(fā)送一個(gè)單一字節(jié)從仿真鍵盤到主機(jī)的大體過程如下:</p><p> ?。?)等待Clock = high; </p><p> ?。?)延時(shí)50微秒 ;</p><p> ?。?)Clock s 仍舊為high? </p><p> No—到第 1步; </p><p> ?。?)Data
98、= high? </p><p> No—放棄 (并且從主機(jī)讀取字節(jié)) ;</p><p> ?。?)延遲20毫秒 (=40 微秒 to the time Clock is pulled low in sending the start bit) ;</p><p> ?。?)輸出起始位0 ;</p><p> (7)輸出8個(gè)數(shù)據(jù)位 ;
99、</p><p> ?。?)輸出校驗(yàn)位 ;</p><p> ?。?)輸出停止位1 ;</p><p> (10)延遲30毫秒 (=50 微秒 from the time Clock is released in sending the stop bit)。</p><p> 在發(fā)送所有這些位的每一位后,測試時(shí)鐘確認(rèn)主機(jī)是否把它拉低了,
100、這說明主機(jī)要放棄這次傳送。</p><p> 通過以下步驟可發(fā)送單個(gè)位: </p><p> (1)準(zhǔn)備數(shù)據(jù)位(將需要發(fā)送的數(shù)據(jù)位放到數(shù)據(jù)線上); </p><p> ?。?)延時(shí)20μs; </p><p> (3)把時(shí)鐘線拉低; </p><p> ?。?)延時(shí)40μs; </p><p&
101、gt; (5)釋放時(shí)鐘線; </p><p> (6)延時(shí)20μs。</p><p> 4.1.3 主機(jī)到設(shè)備的通訊 </p><p> 被發(fā)送的包有點(diǎn)不同于主機(jī)到設(shè)備通訊過程。</p><p> 首先,PS/2設(shè)備總是產(chǎn)生時(shí)鐘信號。如果主機(jī)要發(fā)送數(shù)據(jù),它必須首先把時(shí)鐘和數(shù)據(jù)線設(shè)置為“請求發(fā)送”狀態(tài):通過下拉時(shí)鐘線至少100微秒來
102、抑制通訊;通過下拉數(shù)據(jù)線來應(yīng)用“請求發(fā)送”然后釋放時(shí)鐘。</p><p> 設(shè)備應(yīng)該在不超過10毫秒的間隔內(nèi)就要檢查這個(gè)狀態(tài)。當(dāng)設(shè)備檢測到這個(gè)狀態(tài), 它將開始產(chǎn)生時(shí)鐘信號,并且時(shí)鐘脈沖標(biāo)記下輸入八個(gè)數(shù)據(jù)位和一個(gè)停止位。主機(jī)僅當(dāng)時(shí)鐘線為低的時(shí)候改變數(shù)據(jù)線,而數(shù)據(jù)在時(shí)鐘脈沖的上升沿被鎖存。這在發(fā)生在設(shè)備到主機(jī)通訊的過程中正好相反。</p><p> 在停止位發(fā)送后,設(shè)備要應(yīng)答接收到的
103、字節(jié),就把數(shù)據(jù)線拉低并產(chǎn)生最后一個(gè)時(shí)鐘脈沖。如果主機(jī)在第11個(gè)時(shí)鐘脈沖后不釋放數(shù)據(jù)線,設(shè)備將繼續(xù)產(chǎn)生時(shí)鐘脈沖直到數(shù)據(jù)線被釋放(然后設(shè)備將產(chǎn)生一個(gè)錯(cuò)誤)。</p><p> 主機(jī)可以在第11個(gè)時(shí)鐘脈沖(應(yīng)答位)前中止一次傳送,只要下拉時(shí)鐘線至少100微秒。</p><p> 圖4.3用圖形表示,圖4.4以單獨(dú)的時(shí)序表示了由主機(jī)產(chǎn)生的信號及由PS/2設(shè)備產(chǎn)生的信號。注意應(yīng)答位時(shí)序的改變——
104、數(shù)據(jù)改變發(fā)生在時(shí)鐘線為高的時(shí)候(不同于其它11位是當(dāng)它為低的時(shí)候)。</p><p> 圖4.3 主機(jī)到設(shè)備的通訊</p><p> 圖4.4 主機(jī)到設(shè)備通訊的詳細(xì)過程</p><p> 圖4.4描述了兩個(gè)重要的定時(shí)條件:(a)和(b)。(a)在主機(jī)最初把書記現(xiàn)拉低后,設(shè)備開始產(chǎn)生時(shí)鐘脈沖的時(shí)間,必須步大于15ms;(b)數(shù)據(jù)包被發(fā)送的時(shí)間必須不大于2ms.如
105、果這兩個(gè)條件不滿足,主機(jī)將產(chǎn)生一個(gè)錯(cuò)誤。在包收到后,主機(jī)為了處理數(shù)據(jù)立刻把時(shí)鐘線拉低來抑制通訊。如果主機(jī)發(fā)送的命令要求有一個(gè)回應(yīng),這個(gè)回應(yīng)必須在書籍釋放時(shí)鐘線后20ms之內(nèi)被收到。如果沒有收到,則主機(jī)產(chǎn)生一個(gè)錯(cuò)誤。在設(shè)備到主機(jī)通訊的情況中,時(shí)鐘改變后的5微秒內(nèi)不應(yīng)該發(fā)生數(shù)據(jù)改變的情況。</p><p> 在主程序中至少每 10 毫秒檢測數(shù)據(jù)線是否為低,如果數(shù)據(jù)線已被主機(jī)拉低,則從主機(jī)讀取一個(gè)字節(jié)。</p&
106、gt;<p> PS/2設(shè)備從主機(jī)接收一個(gè)字節(jié)的步驟如下:</p><p> (1)等待時(shí)鐘線為高; </p><p> (2)數(shù)據(jù)線仍然為低嗎?</p><p> 不,有錯(cuò)誤發(fā)生,放棄; </p><p> ?。?)讀入8個(gè)數(shù)據(jù)位;</p><p><b> ?。?)讀入校驗(yàn)位;<
107、;/b></p><p><b> (5)讀入停止位;</b></p><p> ?。?)數(shù)據(jù)線仍舊為0 嗎? </p><p> 是,保持時(shí)鐘直到數(shù)據(jù)=1,然后產(chǎn)生一個(gè)錯(cuò)誤; </p><p> ?。?)輸出應(yīng)答位; </p><p> ?。?)檢查校驗(yàn)位; </p>&
108、lt;p> 如果校驗(yàn)位不正確則產(chǎn)生一個(gè)錯(cuò)誤; </p><p> ?。?)延遲45微秒,給主機(jī)時(shí)間抑制下次的傳送。</p><p> 在讀入這些位后,測試時(shí)鐘線數(shù)否被主機(jī)拉低,這就意味著放棄這次傳送。</p><p> 下面的步驟可用于發(fā)出應(yīng)答位。 </p><p> ?。?)延時(shí)15μs; </p><p&g
109、t; ?。?)把數(shù)據(jù)線拉低; </p><p> ?。?)延時(shí)5μs; </p><p> ?。?)把時(shí)鐘線拉低; </p><p> ?。?)延時(shí)40μs; </p><p> ?。?)釋放時(shí)鐘線; </p><p> ?。?)延時(shí)5μs; </p><p><b> ?。?)釋放數(shù)
110、據(jù)線。</b></p><p> 4.2 PS/2鍵盤接口</p><p> 4.2.1 PS/2接口簡介</p><p> 隨著計(jì)算機(jī)工業(yè)的發(fā)展,作為計(jì)算機(jī)最常用輸入設(shè)備的鍵盤也日新月異。1981年IBM推出了IBM PC/XT鍵盤及其接口標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)定義了83鍵,采用5腳DIN連接器和簡單的串行協(xié)議。實(shí)際上,第一套鍵盤掃描碼集并沒有主機(jī)到鍵
111、盤的命令。為此,1984年IBM推出了IBM AT鍵盤接口標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)定義了84~101鍵,采用5腳DIN連接器和雙向串行通訊協(xié)議,此協(xié)議依照第二套鍵盤掃描碼集設(shè)有8個(gè)主機(jī)到鍵盤的命令。到了1987年,IBM又推出了PS/2鍵盤接口標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)仍舊定義了84~101鍵,但是采用6腳mini-DIN連接器,該連接器在封裝上更小巧,仍然用雙向串行通訊協(xié)議并且提供有可選擇的第三套鍵盤掃描碼集,同時(shí)支持17個(gè)主機(jī)到鍵盤的命令?,F(xiàn)在,市面上的鍵盤
112、都和PS/2及AT鍵盤兼容,只是功能不同而已。</p><p> 物理上的PS/2 端口是兩類連接器中的一種:5腳的DIN或6腳的mini-DIN。這兩種連接器(在電氣特性上)是十分類似的。實(shí)際上兩者只有一點(diǎn)不同那就是管腳的排列, 這就意味著這兩類連接器可以很容易用一種簡單的硬件連線的適配器來轉(zhuǎn)換。這種適配器大約每個(gè)值6美元,或者你可以根據(jù)任意兩種連接器的對應(yīng)管腳關(guān)系做你自己的適配器。</p>
113、<p> PC鍵盤可以有6腳的mini-DIN或5腳的DIN連接器。如果你的鍵盤是6 腳的mini-DIN,而你的計(jì)算機(jī)是5 腳的DIN(或者相反),這兩類連接器可以用上面提到的適配器來兼容。具有6 腳mini-DIN 的鍵盤通常被叫做“PS/2”鍵盤,而那些有 5 腳 DIN 叫做“AT”設(shè)備(XT”鍵盤也使用 腳 DIN,但它們非常古老并且多年前就不生產(chǎn)了)。其實(shí)這兩種連接器都只有四個(gè)腳有意義。它們分別是Clock(時(shí)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于android平臺智能小車控制軟件設(shè)計(jì)
- 基于Android平臺的智能小車控制軟件設(shè)計(jì)_開題報(bào)告.doc
- 基于zigbee技術(shù)的無線智能小車軟件設(shè)計(jì)
- 基于avr的遙控小車設(shè)計(jì)完整
- 基于ZigBee技術(shù)的無線智能小車軟件設(shè)計(jì).doc
- 移動通信基站智能鎖系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于avr的遙控小車設(shè)計(jì)0
- 具有電子支付功能的移動通信終端軟件設(shè)計(jì).pdf
- 基于JAVA的語音通信軟件設(shè)計(jì).pdf
- can總線通信研究與軟件設(shè)計(jì)
- RFID通信軟件設(shè)計(jì).pdf
- 基于bs模式的即時(shí)通信軟件設(shè)計(jì)
- 基于Android的移動調(diào)度系統(tǒng)終端軟件設(shè)計(jì)與實(shí)現(xiàn).pdf
- 家庭移動通信及信息化系統(tǒng)的終端軟件設(shè)計(jì)與實(shí)現(xiàn).pdf
- tn924.7基于arm的短波通信控制板軟件設(shè)計(jì)
- 通信軟件設(shè)計(jì)模式的研究與應(yīng)用.pdf
- 移動通信中的移動終端天線電磁特性分析及其仿真軟件設(shè)計(jì).pdf
- CAN總線通信研究與軟件設(shè)計(jì).docx
- 短波測評與通信軟件設(shè)計(jì)與實(shí)現(xiàn).pdf
- 移動設(shè)備上基于LBS的IM軟件設(shè)計(jì)與實(shí)現(xiàn).pdf
評論
0/150
提交評論