畢業(yè)設(shè)計(論文)基于ATMega16和iButton的電子鎖控制器設(shè)計_第1頁
畢業(yè)設(shè)計(論文)基于ATMega16和iButton的電子鎖控制器設(shè)計_第2頁
畢業(yè)設(shè)計(論文)基于ATMega16和iButton的電子鎖控制器設(shè)計_第3頁
畢業(yè)設(shè)計(論文)基于ATMega16和iButton的電子鎖控制器設(shè)計_第4頁
畢業(yè)設(shè)計(論文)基于ATMega16和iButton的電子鎖控制器設(shè)計_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 摘 要近年來,美國的達拉斯半導(dǎo)體公司(dallas semiconductor)推出了一項特有的單總線(1-wire bus)技術(shù),它采用單根信號線,既可傳輸時鐘,又能傳輸數(shù)據(jù),而且數(shù)據(jù)傳輸是雙向的,因而這種單總線技術(shù)具有線路簡單,硬件開銷少,成本低廉,便于總線擴展和維護等優(yōu)點。本文設(shè)計了一種基于atmega16單片機和ibutton的電子鎖的控制器,從硬件和軟件兩方面闡述了atmega16單片機對ibutton電子鎖進行控制的設(shè)計方法。首先,本文介紹了基于單總線的ibutton電子鎖的發(fā)展背景,單總線的原理以及現(xiàn)在國內(nèi)外的ibutton電子鎖的發(fā)展現(xiàn)狀。其次,介紹了基于atmega16和i

2、button的電子鎖控制器的硬件設(shè)計。再次,介紹了該系統(tǒng)的軟件設(shè)計,包括對ibutton仿真模擬器的軟件設(shè)計。最后,進行了系統(tǒng)的仿真和測試。結(jié)果表明,該atmega16單片機能夠?qū)button進行各種控制,因此該基于atmega16和ibutton的電子鎖控制器的設(shè)計達到了設(shè)計的要求。關(guān)鍵詞:單總線,ibutton,atmega16注:本設(shè)計題目來源于教師的企業(yè)科研項目,項目編號為:1920 abstractin recent days, an american company named dallas semiconductor had launched the unique 1-wire

3、 bus technology, which could transfer the clock signal and data simultaneously. one signal wire is its tool, and the transmission of it comprises a bidirectional way. owing to the special design, the 1-wire bus technology operates with simple lines, low hardware expenses and costs, being available t

4、o expand the bus circuit and implement maintenance.this paper designs a controller based on the atmega16 microcontroller and ibutton electronic lock, expounding how to control the ibutton electronic lock by atmega16 microcontroller from both the softwares and hardwares sides.at first, the developmen

5、t of the ibutton electronic lock based on 1-wire bus is introduced, accompanying the principle of 1-wire bus and the current condition of ibutton electronic lock.second, the hardware design of the controller based on atmega16 and ibutton is introduced. third, the software design of the system is pre

6、sented, including a simulative software of ibutton. finally, the simulation and the test of the system are carried out. the results show that the atmega16 microcontroller is able to conduct various controls on ibutton, which eventually implies the eligibility of the designed electronic controllerkey

7、 words: 1-wire bus, ibutton, atmega16目 錄1緒 論11.1題目背景及目的11.2國內(nèi)外發(fā)展現(xiàn)狀21.2.1單總線技術(shù)31.2.2多密鑰ibutton-ds199141.3論文的主要內(nèi)容62系統(tǒng)的硬件設(shè)計72.1開發(fā)環(huán)境介紹proteus72.2avr單片機簡介82.3系統(tǒng)硬件電路構(gòu)成92.3.1系統(tǒng)主控制器102.3.2系統(tǒng)顯示器112.3.3系統(tǒng)單總線接線112.3.4系統(tǒng)ibutton模擬器122.3.5系統(tǒng)控制鍵盤133軟件設(shè)計153.1主控制器設(shè)計153.1.1lcd顯示器模塊設(shè)計163.1.2總線基本操作模塊203.1.3總線主要功能模塊233.

8、2ibutton模擬器設(shè)計263.2.1模擬器總線基本操作模塊273.2.2模擬器主要功能模塊284系統(tǒng)的仿真314.1主控制器rom操作仿真314.2主控制器存儲器操作仿真32結(jié) 論34參 考 文 獻35致 謝361 緒 論1.1 題目背景及目的門禁系統(tǒng)1發(fā)展到今天,舊式的機械門鎖已逐步加上電子的成分,電子門鎖已開始廣泛地在一些機密單位、高級賓館及宅區(qū)得到使用。在密碼鎖、磁卡、ic卡等名目縱多的電子門鎖中,由于條形碼、磁卡、ic卡等構(gòu)成的數(shù)字識別系統(tǒng)存在著攜帶不便、易受損壞、不能應(yīng)用于惡劣環(huán)境等不足2;指紋識別系統(tǒng)、人像識別系統(tǒng)有著很高的安全性,不存在以上所說的問題,但是,開發(fā)起來十分繁瑣,

9、且由于數(shù)據(jù)量大,由于ibutton電子瑣保密性強、使用方便、耐用,作為更新一代產(chǎn)品脫穎而出,引起了廣泛內(nèi)的關(guān)注。ibutton是information button的簡稱,它是一種能夠授權(quán)給持有它的人的一種電子元件,每一顆ibutton內(nèi)的存儲器是記錄著一組獨一無二的識別碼(有64位二進制碼組成)3,當(dāng)ibutton接觸到門鎖的藍點接收器時,識別碼便會被讀出。ibutton的外型為紐扣狀(形同紐扣電池狀),封裝在耐用的不銹鋼外殼內(nèi),可在惡劣的環(huán)境中使用。除用它可加一個把做成鑰匙外,還可以做在戒指上、或裝在皮夾上等,使用十分方便。ibutton電子鎖正是用ibutton作為鑰匙,當(dāng)來到受管制的地

10、方,只要將ibutton鑰匙輕輕接觸鎖上的藍點接收器,只要識別碼與接收器中存的碼相同,門即打開,便馬上可以進出。除此之外,系統(tǒng)管理員還可以指定哪扇門,何時,由誰能夠打開。儲存鎖內(nèi)部的進出資料檔可以記錄最近的1240筆門鎖操作記錄。ibutton利用單總線技術(shù)來與外界溝通,數(shù)字化單總線技術(shù)4 是dallas獨特的單線傳輸協(xié)定。每個ibutton lp中的ds3708都有一個microlan腳,它可連到host pc作為資料傳輸。因microlan具有multidrop的功能,數(shù)個鎖可同時連到host pc,由host pc監(jiān)控。ibutton電子提供online和offline兩種操作模式。在o

11、nline模式下,各個鎖皆能夠快速更新資料庫,而相對應(yīng)的分散式管理則意味著使用者能立即得到回應(yīng)。ibutton電子鎖完全具備這兩項條件。ibutton電子鎖以其靈活方便的操作方式和極強的保密性能被廣泛地利用于門鎖、車庫鎖、電梯控制、汽車防盜等領(lǐng)域4,必將成為新一代電子鎖中的佼佼者。本課題即以上述問題為出發(fā)點,設(shè)計實現(xiàn)了基于atmega16和ibutton的電子鎖控制器,該系統(tǒng)不僅實現(xiàn)了atmega16單片機對ibutton的讀寫操作,而且能夠迅速處理數(shù)據(jù),并將處理結(jié)果通過友好的界面顯示給用戶,并且使用另一個單片機模擬ibutton的輸入輸出時序和各種功能操作,這樣在進行系統(tǒng)開發(fā)時便可在prot

12、eus這個軟件里面仿真了,不用真的下載到開發(fā)板后再進行仿真,從而提高了系統(tǒng)開發(fā)的效率。1.2 國內(nèi)外發(fā)展現(xiàn)狀 ibutton是基于1-wire總線技術(shù)發(fā)展起來的,1-wire總線與目前多數(shù)標(biāo)準(zhǔn)串行數(shù)據(jù)通信方式如spi/i2c/microwire不同,采用單根信號線,既傳輸時鐘又傳輸數(shù)據(jù),同時還為從機(slave)提供寄生電源,數(shù)據(jù)傳輸是雙向半工的。由于它只有一個信號線,因此具有節(jié)省i/o口線資源、結(jié)構(gòu)簡單、成本低廉、便于擴展和維護等優(yōu)點6?;谝陨系膬?yōu)點,國內(nèi)外對1-wire總線的開發(fā)已經(jīng)十分廣泛。例如,基于1-wire信號采集系統(tǒng)、基于1-wire總線的分布式溫濕度測控系統(tǒng)、1-wire總線

13、協(xié)議的數(shù)字ic溫度傳感器等。美國達拉斯半導(dǎo)體公司(dallas semiconductor corporation)在99年推出的1種智能化信息載體信息紐扣(ibutton),較好地解決了數(shù)字識別系統(tǒng)存在的這些問題,為開發(fā)更加完善、新穎的數(shù)字識別系統(tǒng)提供了技術(shù)支持和實現(xiàn)手段7。由于ibutton方便、可靠的特點,越來越得到廣泛的開發(fā)應(yīng)用,美國的dallas公司一直在進行1-wire的研制和開發(fā),國內(nèi)像遠志科技公司就專門提供1-wire完整的解決方案。ibutton的應(yīng)用包括替代現(xiàn)金用于小額交易、搬運系統(tǒng)、停車計時器、自動販賣機、巡檢系統(tǒng)、考勤門禁系統(tǒng)等。ibutton采用直徑17mm、厚36m

14、m的鈕扣狀不銹鋼外殼封裝。內(nèi)部由i/o處理器和存儲器兩個基本部分組成,某些應(yīng)用于特殊場合的ibutton還內(nèi)置有感溫、時鐘。ibutton以1-wire規(guī)范作為通信協(xié)議,僅用1根數(shù)據(jù)線來實現(xiàn)與外界的信息交換。本文研究的內(nèi)容就是對1-wire總線和多密鑰ibutton的介紹,并設(shè)計基于atmega16的ibutton電子鎖控制器。1.2.1 單總線技術(shù)單總線技術(shù)(1-wire)是maxim全資子公司dallas的一項專有技術(shù)。dallas半導(dǎo)體公司1-wire器件采用一種特殊的接口協(xié)議,通過單條連接線解決了控制、通信和供電,降低了系統(tǒng)成本并簡化了設(shè)計。1-wire芯片包含多種功能的器件,例如電子

15、標(biāo)識、傳感器、控制和存儲等,既有各種傳統(tǒng)的ic封裝形式,還可提供超小型csp、不銹鋼愷裝ibuttons等新型封裝。單總線(1-wire)技術(shù)與目前多數(shù)標(biāo)準(zhǔn)的串行數(shù)據(jù)通信方式(如i2c串行總線)不同,它將地址線、數(shù)據(jù)線、控制線合為一根信號線,采用單根信號線雙向傳輸,允許在這根信號線上掛上百個由dallas公司提供的芯片控制的對象,具有節(jié)省i/o口線資源、結(jié)構(gòu)簡單、成本低廉、便于總線擴展等優(yōu)點。 單總線的工作原理顧名思義,單總線即只有一根數(shù)據(jù)線,系統(tǒng)中的數(shù)據(jù)交換、控制都由這根線完成。設(shè)備(主機或從機)通過一個漏極開路或三態(tài)端口連至該數(shù)據(jù)線,以允許設(shè)備在不發(fā)送數(shù)據(jù)時能夠釋放總線,而讓其它設(shè)備使用總

16、線。單總線通常要求外接一個約為4.7k的上拉電阻,這樣,當(dāng)總線閑置時,其狀態(tài)為高電平。主機和從機之間的通信可通過3個步驟完成,分別為初始化1-wire器件、識別1-wire器件和交換數(shù)據(jù)。由于它們是主從結(jié)構(gòu),只有主機呼叫從機時,從機才能應(yīng)答,因此主機訪問1-wire器件都必須嚴(yán)格遵循單總線命令序列,即初始化、rom、命令功能命令。如果出現(xiàn)序列混亂,1-wire器件將不響應(yīng)主機(搜索rom命令,報警搜索命令除外)。通常把掛在單總線上的器件稱之為單總線器件,單總線器件內(nèi)一般都具有控制、收/發(fā)、存儲等電路。為了區(qū)分不同的單總線器件,廠家生產(chǎn)單總線器件時都要刻錄一個64位的二進制rom代碼,以標(biāo)志其i

17、d號。目前,單總線器件主要有數(shù)字溫度傳感器(如ds18b20)、a/d轉(zhuǎn)換器(如ds2450)、門標(biāo)、身份識別器(如ds1990a)、單總線控制器(如ds1wm)等。這里介紹一種ibutton形式的單總線器件,它是利用瞬間接觸來進行數(shù)字通信的,這些器件的應(yīng)用已經(jīng)滲透到貨幣交易和高度安全的認(rèn)證系統(tǒng)之中。ibutton是采用紐扣狀不銹鋼外殼封裝的微型計算機晶片,它具有抗撞擊、防水漬、耐腐蝕、抗磁擾、防折疊、價格便宜等特點,能較好的解決傳統(tǒng)識別器存在的不足,同時又可滿足系統(tǒng)在可靠性、穩(wěn)定性方面的要求。ibutton主要有三種類型,分別是memory ibutton(存儲器);java-powered

18、 cryptographic ibutton(加密型);thermochron ibutton(溫度型)。存儲型ibutton最大存儲空間為64kb,可以存儲文本或數(shù)字照片。加密型ibutton是一種微處理器和高速算法加速器,可以產(chǎn)生大量需要加密和解密的數(shù)據(jù)信息,它的運行速度非常快,可與internet應(yīng)用相結(jié)合,并可應(yīng)用于遠程鑒定識別。溫度型ibutton可以測量溫度變化,它內(nèi)含溫度計、時鐘、熱記錄和存儲單元等。1.2.2 多密鑰ibutton-ds1991多密鑰 ibutton ds1991 是進行讀/寫操作的數(shù)據(jù)載體,它有三個獨立的電子密鑰,提供 1,152 位安全、非易失存儲器。其外型

19、如圖1.1所示。每個密鑰分區(qū)包括 384位,具有獨立的 64位密碼和公共識別區(qū);密碼區(qū)必須匹配才能訪問安全存儲器。數(shù)據(jù)按照 1-wire 協(xié)議傳輸,只需單條數(shù)據(jù)線和地回路。512位的暫存器能夠保證安全存儲器的數(shù)據(jù)完整性。數(shù)據(jù)首先寫到能讀回的暫存器;數(shù)據(jù)被校驗確認(rèn)后,發(fā)出復(fù)制暫存器命令,以便將數(shù)據(jù)傳送到存儲器。這個過程確保了在改變存儲器內(nèi)容時的數(shù)據(jù)完整性。每片 圖1.1 ibutton元件ds1991 內(nèi)部都有在工廠光刻的 48位序列碼,為唯一的身份驗證提供了保證,也確保了可絕對跟蹤功能;ds1991的家族碼是 02h。由于 ibutton采用了 microcan封裝,所以具有防塵、防潮、抗震等

20、特性,適用于在惡劣環(huán)境中工作。另外,工程技術(shù)人員操作起來也很方便;ds1991 緊湊的紐扣外型使其可以自動對準(zhǔn)相應(yīng)的接收器。與 ds1991 配套的附件使其可以裝在塑料鑰匙環(huán)上、圖像身份證上、印刷電路板或任何其它表面平滑的物體上。應(yīng)用領(lǐng)域包括:安全訪問控制、銀行存儲借貸信息、工作進程的跟蹤、旅行者的電子支票和私有資料的保存等。每片ds1991 都有唯一的 64 位rom代碼。6個特定的設(shè)備檢測命令,包括3個中間結(jié)果暫存器命令:write scratchpad、read scratchpad和copy scratchpad;還有3個子密鑰命令:write password、write subke

21、y 和read subkey。當(dāng)選中某個從機設(shè)備后,存儲器功能命令就會寫入ds1991中。這些命令由三段組成,每段長為一個字節(jié);第一個字節(jié)為功能代碼段,它定義了6個可執(zhí)行的命令;第二個字節(jié)是地址段,其中的前六位定義了命令的起始地址值,后兩位是子密鑰的地址代碼;命令的第三個字節(jié)是第二個字節(jié)的補碼。其暫存器命令和子密鑰命令如下:(1) 暫存器命令ds1991中64位的讀/寫暫存器是沒有密碼保護的;它通常用于構(gòu)建數(shù)據(jù)以進行校驗,然后再復(fù)制到安全子密鑰分區(qū)。write scratchpad 96h 命令用于將數(shù)據(jù)輸入到暫存器。 read scratchpad 69h 令用于提取來自暫存器的數(shù)據(jù)。 co

22、py scratchpad 3ch 命令將指定的數(shù)據(jù)塊從暫存器傳遞到選中的子密鑰分區(qū)中。(2) 子密鑰命令 ds1991中的每個子密鑰塊都是單獨地進行訪問的。處理安全子密鑰的數(shù)據(jù)讀、寫從命令指定的地址開始,處理過程持續(xù)進行直到從機設(shè)備復(fù)位或子密鑰數(shù)據(jù)讀、寫完畢。write password 5ah 命令用來向已選中的子密鑰分區(qū)輸入識別碼和密碼。write subkey 99h 命令用來將數(shù)據(jù) 輸入到選中的子密鑰中。read subkey 66h 命令用于提取選中的子密鑰區(qū)內(nèi)的數(shù)據(jù)。初次使用時,無法確定存儲在從機設(shè)備里的密碼,所以需要先對 ds1991 進行初始化。初始化時對選定的子密鑰區(qū)利用w

23、rite password 命令直接寫入新的識別碼和密碼(而不必通過暫存器),一旦新的識別碼和密碼存入從機設(shè)備里,再進行修改時,就要通過暫存器。一旦主機檢測到在線應(yīng)答脈沖,就可以發(fā)出4條ds1991支持的rom功能命令。所有rom操作命令的長度為8位。 read rom 33h:此命令允許主機讀取的 8 位家族碼、48 位唯一的序列號和 8 位crc校驗碼。 match rom 55h:此命令跟隨 64位rom序列號,允許主機訪問多從機總線系統(tǒng)中某個特定的ds1991。 skip rom cch:此命令在單從機總線系統(tǒng)中允許主機直接訪問存儲器,而無須提 供64位rom代碼,節(jié)省時間。 sear

24、ch rom f0h:此系統(tǒng)初次上電時,主機可能檢測不出 1-wire總線上從機設(shè)備的數(shù)目和它們的64位rom代碼,而search rom命令能夠使得主機通過排除法來檢測出總線上所有從機設(shè)備的64位rom代碼。1.3 論文的主要內(nèi)容本設(shè)計在軟件開發(fā)的過程中,盡可能的采用模塊化的設(shè)計思想設(shè)計,構(gòu)建“平臺的模式”,便于儀器的調(diào)試、升級和移植。整個系統(tǒng)是在proteus這個仿真軟件里面進行仿真的。第二章介紹了系統(tǒng)的硬件設(shè)計,包括控制器的發(fā)送單元和接收單元(模擬部分)、信號處理模塊(數(shù)字部分),界面顯示方面等的器件選擇和電路原理圖。第三章介紹了系統(tǒng)的軟件設(shè)計,整個程序以模塊化的思想設(shè)計,大致可有顯示器

25、初始化,顯示,控制,單總線的初始化,讀寫操作等延時等幾個模塊供主控模塊調(diào)用。其中大部分模塊可以形成標(biāo)準(zhǔn)函數(shù)庫,可方便地實現(xiàn)移植。第四章對系統(tǒng)進行測試和仿真,對系統(tǒng)程序運行是否正確進行測試,并對系統(tǒng)的功能實現(xiàn)效果進行仿真。 2 系統(tǒng)的硬件設(shè)計 由于系統(tǒng)是要實現(xiàn)atmega16單片機對ibutton電子鎖的控制,硬件設(shè)計選用的環(huán)境是proteus 6.7,proteus是labcenter出品的電路分析實物仿真系統(tǒng),可仿真各種電路和ic,并支持單片機,元件庫齊全,使用方便,是不可多得的好軟件。2.1 開發(fā)環(huán)境介紹proteusprospice是結(jié)合isis原理圖設(shè)計環(huán)境使用的混合型電路仿真器。基于

26、工業(yè)標(biāo)準(zhǔn)spice3f5的模擬內(nèi)核,加上混合型仿真的擴展以及交互電路動態(tài),prospice為您提供開發(fā)和測試設(shè)計的強大交互式環(huán)境。其系統(tǒng)特性如下: 完全集成原理圖布圖環(huán)境; 以虛擬儀器以及用戶可定義的動態(tài)元件支持基于曲線圖和交互電路模型; 14種虛擬儀器:直流電壓/電流表、交流電壓/電流表、信號發(fā)生器、數(shù)字發(fā)生器、 示波器、邏輯分析儀頻率計數(shù)虛擬終端、spi調(diào)試器、i2c調(diào)試器和邏輯探頭; 獨特的proteus vsm技術(shù)以實現(xiàn)微處理器設(shè)計的協(xié)同仿真;數(shù)字仿真: 事件驅(qū)動數(shù)字仿真模型定時,失靈以及浮空輸入特性; 熔絲圖模型允許從jedec文件中直接仿真pld; 完全以定時信息設(shè)置ttl和cmo

27、s模型; 一致性分析便易于嵌入系統(tǒng)的自動測試。單片機技術(shù)是現(xiàn)代電子工程領(lǐng)域一門迅速發(fā)展的技術(shù),應(yīng)用于各種嵌入式系統(tǒng)中。單片機技術(shù)的發(fā)展和推廣極大地推動了電子工業(yè)的發(fā)展,其在教學(xué)和產(chǎn)業(yè)界的技術(shù)推廣仍然是當(dāng)今業(yè)界的一個熱點。單片機技術(shù)是現(xiàn)代電子工業(yè)中不可缺少的一項技術(shù),掌握單片機技術(shù)是電子信息類專業(yè)學(xué)生就業(yè)的一個基本條件。過去,在單片機實驗室的建設(shè)中基本都是采用硬件仿真系統(tǒng),所以為了保證實驗的順利開設(shè),同類型的硬件仿真開發(fā)系統(tǒng)就需要采購多套設(shè)備,這樣硬件的投資成本相對較高,然而使用單片機軟件仿真系統(tǒng),就可以大大減少硬件設(shè)備的采購,同時降低對硬件設(shè)備進行維護的工作量。根據(jù)以上的原因所以本系統(tǒng)采用pr

28、oteus這個軟件進行硬件設(shè)計。2.2 avr單片機簡介 單片機就是包括了中央處理器cpu(contral prosessor unit)、隨機存儲器(ramdom access memory)、只讀存儲器rom(read only memory)和各種輸入輸出的單芯片微機系統(tǒng)。 單片微型計算機也稱為單片機,目前已被廣泛地應(yīng)用在自動測量、智能儀表、工業(yè)控制以及家用電器等各個方面。 avr單片機是atmel公司1997年推出的risc單片機,risc(精簡指令系統(tǒng)計算機)是相對于cisc(復(fù)雜指令系統(tǒng)計算機)而言的。risc并非只是簡單地減去指令,而是通過使計算機的結(jié)構(gòu)更加簡單合理而提高運算速度

29、的。risc優(yōu)先的選取使用頻率最高的簡單指令,避免復(fù)雜指令,并固定指令長度,減少指令格式和尋址方式的種類,從而縮短指令周期,提高運行速度。由于avr單片機采用了risc的這種結(jié)構(gòu),使avr系列的單片機都具備了1mips/mhz(百萬條指令每秒/兆赫茲)的高速處理能力。 avr單片機吸收了dsp雙總線的特點,采用harvard總線結(jié)構(gòu),因此單片機的程序存儲器和數(shù)據(jù)存儲器是分離的,并且可對具有相同的地址的程序存儲器和數(shù)據(jù)存儲器進行。與傳統(tǒng)的mcs51系列單片機相比,avr單片機中,寄存器有32個通用工作寄存器組成,并且任何一個寄存器都可以充當(dāng)累加器,從而有效的避免了累加器的瓶頸效應(yīng),提高了系統(tǒng)的性

30、能2。atmega16是基于增強的avr risc結(jié)構(gòu)的低功耗8位cmos微控制器。由于其先進的指令集以及單時鐘周期指令執(zhí)行時間,atmega16的數(shù)據(jù)吞吐率高達1mips/mhz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。atmega16有如下特點:16k字節(jié)的系統(tǒng)內(nèi)可編程flash(具有同時讀寫的能力,即rww),512字節(jié)eeprom,1k字節(jié)sram,32個通用i/o 口線,32個通用工作寄存器,用于邊界掃描的jtag接口,支持片內(nèi)調(diào)試與編程,三個具有比較模式的靈活的定時器 / 計數(shù)器(t/c),片內(nèi)/外中斷,可編程串行usart,有起始條件檢測器的通用串行接口,8路10位具有可選差

31、分輸入級可編程增益 (tqfp 封裝 ) 的adc,具有片內(nèi)振蕩器的可編程看門狗定時器,一個spi串行端口,以及六個可以通過軟件進行選擇的省電模式。 工作于空閑模式時 cpu 停止工作,而 usart、兩線接口、a/d 轉(zhuǎn)換器、 sram、t/c、spi端口以及中斷系統(tǒng)繼續(xù)工作;掉電模式時晶體振蕩器停止振蕩,所有功能除了中斷和硬件復(fù)位外都停止工作;在省電模式下,異步定時器繼續(xù)運行,允許用戶保持一個時間基準(zhǔn),而其余功能模塊處于休眠狀態(tài);adc噪聲抑制模式時終止cpu和除了異步定時器與adc以外所有i/o模塊的工作,以降低adc轉(zhuǎn)換時的開關(guān)噪聲; standby模式下只有晶體或諧振振蕩器運行,其余

32、功能模塊處于休眠狀態(tài),使得器件只消耗極少的電流,同時具有快速啟動能力;擴展standby模式下則允許振蕩器和異步定時器繼續(xù)工作。本芯片是以atmel高密度非易失性存儲器技術(shù)生產(chǎn)的。片內(nèi)isp flash允許程序存儲器通過isp串行接口,或者通用編程器進行編程,也可以通過運行于avr內(nèi)核之中的引導(dǎo)程序進行編程。引導(dǎo)程序可以使用任意接口將應(yīng)用程序下載到應(yīng)用flash存儲區(qū)(application flash memory)。在更新應(yīng)用flash存儲區(qū)時引導(dǎo)flash區(qū)(boot flash memory)的程序繼續(xù)運行,實現(xiàn)了rww操作。通過將8位risc cpu與系統(tǒng)內(nèi)可編程的flash集成在一

33、個芯片內(nèi), atmega16成為一個功能強大的單片機,為許多嵌入式控制應(yīng)用提供了靈活而低成本的解決方案。2.3 系統(tǒng)硬件電路構(gòu)成圖2.1 系統(tǒng)硬件結(jié)構(gòu)圖 本系統(tǒng)是以單片機為核心,組成一個集數(shù)據(jù)的采集、處理、顯示及控制為一身的閉環(huán)控制系統(tǒng),其原理圖如圖2.1所示。系統(tǒng)電路有單片機、控制鍵盤、單總線線路、lcd顯示器和ibutton模擬器五個部分組成。2.3.1 系統(tǒng)主控制器系統(tǒng)的主控制器采用atmega16單片機,如圖2.2所示。主控制器c口的第0位作為單總線鏈接的i/o口線,其執(zhí)行與掛在總線上的單總線器件進行通信,負(fù)責(zé)數(shù)據(jù)的輸入輸出;主控制器的a口高四位的i/o口與顯示器的低四位的數(shù)據(jù)口相連接

34、;而a.2口則鏈接到顯示器的rs口,用于控制著與顯示器交換信息時,數(shù)據(jù)輸入輸出的方向;a.3口連接到顯示器的使能驅(qū)動口,用于對顯示器進行使能或否的控制,在系統(tǒng)運行期間該口一直是出于使能的。圖2.2 系統(tǒng)主控制器主控制器的b口的第1,2位,作為系統(tǒng)控制鍵盤的輸入口,用于控制主控制器對總線上的單總線器件ibutton的操作。2.3.2 系統(tǒng)顯示器圖2.3 系統(tǒng)顯示器該系統(tǒng)使用lm016l型號的lcd顯示器,如圖2.3所示。lm016l lcd顯示器是一個2行16列液晶 可顯示2行16列英文字符,有8位數(shù)據(jù)總線d0-d7,rs,r/w,en三個控制端口(共14線),工作電壓為5v。沒背光,和常用的1

35、602b功能和引腳一樣(除了調(diào)背光的二個線腳),詳細使用請查看lm016l的使用手冊。2.3.3 系統(tǒng)單總線接線本系統(tǒng)的單總線連接線路線路圖如圖2.4所示,由于proteus6.7這個軟件里面沒有ibutton的ds1991的仿真元件,在進行系統(tǒng)設(shè)計時采用另一個atmega16的avr單片機模擬ibutton的時序。使用另個單片機模擬ibutton工作的過程中,如果按照單總線的接線方法進行接線,即主控制器的c0口通過上拉電阻,然后接到ibutton模擬器上的單總線i/o口中。在這樣的情況下,當(dāng)執(zhí)行總線操作時,當(dāng)主控制器輸出低電平拉低單總線的電平時,由于沒有真正的地線,所以在ibutton模擬器

36、上是感應(yīng)不到電平的下降的,所以如果按照這種接法是無法實現(xiàn)單總線操作的。主控制器和ibutton模擬器是無法通信的。為了解決上述的問題,利用三極管,如圖2.5的接法,當(dāng)主控制器輸出低電平時,反向器u3 b輸出高電平,這時三極管q2的基極也為高電平,三極管導(dǎo)通,ibutton模擬器的總線輸入口上的電平給拉低,模擬器就能正確的讀取主控制器的輸出信圖2.4單總線接線圖號;同理當(dāng)主控制器輸出高電平時,由于三極管u3 b為阻斷狀態(tài),模擬器的輸入引腳上的電平也為高電平,這樣就可以實現(xiàn)單總線上的電平能夠被兩控制器的引腳控制,控制器引腳又可釋放總線,達到真正進行總線操作時電平的變化效果。2.3.4 系統(tǒng)ibut

37、ton模擬器在進行系統(tǒng)設(shè)計時由于proteus這個軟件里面沒有ibutton的單總線器件,要進行調(diào)試時不得不把程序下載到真實的硬件開發(fā)板上,這樣設(shè)計起來不但成本高而且還增加了調(diào)試的難度、降低了設(shè)計的效率,因為使用硬件開發(fā)板進行仿真時,又要花時間制作開發(fā)板,每次程序修改都要花時間下載到開發(fā)板上來進行調(diào)試。所以為了方便設(shè)計利用另一個單片機模擬了ibutton的輸出時序,然后就直接在proteus軟件里面進行電腦的仿真和調(diào)試,這樣就方便了很多,不必再去做開發(fā)板,而且調(diào)試起來也特別容易,大大提高了系統(tǒng)的開發(fā)。該ibutton模擬器的接線圖如圖2.5,僅使用atmega16這個單片機的兩個i/o端口,其

38、中b7口作為ibutton元件在進行單總線操作時的輸出口,而a7口則作為輸入口,在這里是把ibutton元件的單獨的總線i/o口的功能分開,用兩個單片機的端口來實現(xiàn)其代替這兩個功能。圖2.5 ibutton模擬器接線圖2.3.5 系統(tǒng)控制鍵盤圖2.6 主控制器鍵盤接線系統(tǒng)中的控制鍵盤實現(xiàn)了兩個功能,讀取在線的ibutton元件的rom和ibutton存儲區(qū)操作時的密碼驗證。鍵r1實現(xiàn)rom讀取功能,鍵r2實現(xiàn)密碼驗證功能。具體接線圖如2.6,主控制器的b0口接r2,b1口接r1。以上就是系統(tǒng)的所有硬件接線的介紹,由于是在proteus里面仿真,所以單片機的電源,地和晶振的接線都可以忽略。但是在

39、實物上仿真時就必須按要求進行設(shè)計。3 軟件設(shè)計 軟件設(shè)計部分主要介紹一下主程序的設(shè)計方法,模擬器程序的設(shè)計方法。在開始介紹之前先對開發(fā)的語言和環(huán)境進行介紹一下。軟件編程是開發(fā)單片機應(yīng)用系統(tǒng)中的一個重要環(huán)節(jié)。好的程序不僅能擴充單片機的功能而且還能提高系統(tǒng)的可靠性,便于系統(tǒng)的改進和功能的擴充。對于avr系列的單片機,既可以采用匯編語言編程,也可以采用basic和c等高級語言編程。由于匯編語言編寫的系統(tǒng)的程序可讀性和可移植性都比較差,因此系統(tǒng)的調(diào)試工作比較困難,產(chǎn)品的開發(fā)周期也較長。為了提高系統(tǒng)應(yīng)用程序的編寫效率,縮短產(chǎn)品的開發(fā)周期,采用basic和c等高級語言進行單片機應(yīng)用程序的設(shè)計已經(jīng)成為軟件開

40、發(fā)的一個主流,它不僅大大縮短開發(fā)周期,而且可以顯著地增加軟件的可讀性,從而便于研制開發(fā)更大的系統(tǒng)。實踐證明,采用高級語言進行單片機系統(tǒng)程序開發(fā)的效率要比使用匯編語言高幾十倍。c語言是一種編譯性的結(jié)構(gòu)化程序設(shè)計語言,它具有簡單而強大的處理功能,具有運行速度快、編譯效率高、移植性好和可讀性強等多種優(yōu)點,并且可以實現(xiàn)對系統(tǒng)硬件的直接操作,c語言支持自頂向下的結(jié)構(gòu)化程序設(shè)計方法,并且支持模塊化程序設(shè)計結(jié)構(gòu)。icc avr是imagecraft公司針對avr單片機而開發(fā)的一個c語言編譯器,它采用符合ansi標(biāo)準(zhǔn)的c語言來開飯單片機程序,并具有以下幾個特點: 支持不帶sram的單片機器件。 帶嵌入式的應(yīng)用

41、程序編譯器。 帶全局優(yōu)化器。 支持在線編程(stk200/300)。因此本系統(tǒng)采用c語言進行設(shè)計,開發(fā)環(huán)境為icc avr。3.1 主控制器設(shè)計主程序設(shè)計采用的是循環(huán)的方式來進行,工作過程中不斷查詢是否控制按鈕被按下。當(dāng)有控制按鈕被按下的時候,就調(diào)用相應(yīng)的功能模塊的程序以完成操作,進行對總線上的ibutton元件的數(shù)據(jù)交換,處理接收到的數(shù)據(jù),并顯示處理結(jié)果。圖3.1所示的主控制器程序的流程框圖。圖3.1 主控制器流程框圖3.1.1 lcd顯示器模塊設(shè)計 系統(tǒng)為了更好實現(xiàn)人機操作界面,使用兩行16位、型號為lm016l的lcd顯示器,它能夠很好的反映系統(tǒng)的運行狀態(tài)。顯示器模塊的代碼如下:/*=/

42、函數(shù)功能: 初始化lm016l/形參: void/返回: void=*/void lcd_init(void) /lcd顯示器的初始化 lcd_data_ddr|=lcd_data; /數(shù)據(jù)口方向為輸出 lcd_en_ddr|=lcd_en; /設(shè)置en方向為輸出 lcd_rs_ddr|=lcd_rs; /設(shè)置rs方向為輸出 lcd_write_command(0x28); lcd_en_write(); delay_nus(40); lcd_write_command(0x28); /4位顯示 lcd_write_command(0x0c); /顯示開 lcd_write_command(0

43、x01); /清屏 delay_nms(2); /*=/函數(shù)功能: 顯示器使能/形參: void/返回: void=*/void lcd_en_write(void) lcd_en_port|=lcd_en; /設(shè)置lcd的使能端口en為使能狀態(tài) delay_nus(1); lcd_en_port&=lcd_en; /*=/函數(shù)功能: 顯示器寫指令/形參: 指令代碼/返回: void=*/void lcd_write_command(unsigned char command) delay_nus(16); lcd_rs_port&=lcd_rs; /rs=0 lcd_data_port&=0

44、x0f; /清高四位 lcd_data_port|=command&0xf0; /寫高四位 lcd_en_write(); command=command4; /低四位移到高四位 lcd_data_port&=0x0f; /清高四位 lcd_data_port|=command&0xf0; /寫低四位 lcd_en_write(); /*=/函數(shù)功能: lm016l寫數(shù)據(jù)/形參: unsigned char/返回: void=*/void lcd_write_data(unsigned char data) delay_nus(16); lcd_rs_port|=lcd_rs; /rs=1 l

45、cd_data_port&=0x0f; /清高四位 lcd_data_port|=data&0xf0; /寫高四位 lcd_en_write(); data=data4; /低四位移到高四位 lcd_data_port&=0x0f; /清高四位 lcd_data_port|=data&0xf0; /寫低四位 lcd_en_write(); void lcd_set_xy( unsigned char x, unsigned char y ) /寫地址函數(shù) unsigned char address; if (y = 0) address = 0x80 + x; else address = 0

46、xc0 + x; lcd_write_command( address); void lcd_write_string(unsigned char x,unsigned char y,unsigned char *s) /lcd顯示字符串函數(shù) lcd_set_xy( x, y ); /向lcd寫入要顯示的字符串的顯示地址 while (*s) / 寫要顯示字符串 lcd_write_data( *s ); s +; void lcd_write_char(unsigned char x,unsigned char y,unsigned char data) /lcd顯示字符函數(shù) lcd_set

47、_xy( x, y ); /向lcd寫入藥顯示的字符的地址 lcd_write_data( data); /寫入要顯示的字符串 void delay_1us(void) /1us延時函數(shù) asm(nop); void delay_nus(unsigned int n) /n us延時函數(shù) unsigned int i=0; for (i=0;in;i+) / n次調(diào)用延時1us函數(shù) delay_1us(); void delay_1ms(void) /1ms延時函數(shù) unsigned int i; for (i=0;i1140;i+); void delay_nms(unsigned int

48、n) /n ms延時函數(shù) unsigned int i=0; for (i=0;i 0; i-)value = 1;/移位ddrc |= dq; portc &= dq;/拉低總線,引起單總線讀時序delay_us(30); / 延時,等待ibutton的響應(yīng)/delay_us(3);/為了簡便調(diào)試,使用另一個單片機模擬ibutton,此處把讀寫時間都延長.portc |= dq; / 端口設(shè)置為輸出ddrc &= dq;/釋放總線delay_us(100);/delay_us(10);if(dq & pinc) / 暫存讀取的數(shù)據(jù)value|=0x80;delay_us(100);ddrc

49、|= dq;delay_us(5);/ 延時,返回繼續(xù)讀取數(shù)據(jù)return(value);/*=/函數(shù)功能:向 1-wire 總線上寫一個字節(jié)/形參:value寫到總線上的值/返回:void=*/voidwrite_byte(unsigned char value)unsigned chari;ddrc |= dq; /設(shè)置端口為輸出for(i = 8; i 0; i-)if(value & 0x01)portc &= dq; /拉低總線,引起寫1時序delay_us(100); /延時/delay_us(10);portc |= dq; / 輸出1delay_us(200);/delay_us(100);elseportc &= dq;/拉低總線,引起寫0時序delay_us(200);/delay_us(100);portc |= dq; /輸出0delay_us(100);/delay_us(10);value = 1; /要輸出的字節(jié)右移,準(zhǔn)備輸出下一位3.1.

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論