紅外線空調(diào)智能控制器的設(shè)計(jì)_第1頁
紅外線空調(diào)智能控制器的設(shè)計(jì)_第2頁
紅外線空調(diào)智能控制器的設(shè)計(jì)_第3頁
紅外線空調(diào)智能控制器的設(shè)計(jì)_第4頁
紅外線空調(diào)智能控制器的設(shè)計(jì)_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 引 言 單片機(jī)是一種特殊的計(jì)算機(jī),它是在一塊半導(dǎo)體芯片上集成了cpu,存儲器ram,rom以及輸入輸出借口電路,由于單片機(jī)的集成度高,功能強(qiáng),通用性好,特別是它的體積小,重量輕,能耗低價(jià)格便宜,可靠性高,抗干擾能力強(qiáng)和使用方便等獨(dú)特優(yōu)點(diǎn),使單片機(jī)迅速得到了推廣運(yùn)用,目前已成為測量控制應(yīng)用系統(tǒng)中的優(yōu)選機(jī)種和新電子產(chǎn)品的關(guān)鍵部件。紅外遙控技術(shù)在這十年中也得到了迅猛的發(fā)展,尤其是在家電領(lǐng)域如彩電、vcd、空調(diào)等地方,在其它電子領(lǐng)域也得到了廣泛應(yīng)用。隨著人們生活水平的提高,對新產(chǎn)品的追求是方便且智能化,紅外遙控技術(shù)正是這一重點(diǎn)的開發(fā)向。隨著空調(diào)器普及率的提高,空調(diào)遙控器的品種和產(chǎn)量不斷上升,如何為空

2、調(diào)搭配方便好用操作穩(wěn)定的空調(diào)遙控器,使它能夠滿足短的設(shè)計(jì)和生產(chǎn)周期,能夠在大批量生產(chǎn)時(shí)有較強(qiáng)的價(jià)格競爭力的空調(diào)遙控器是眾多遙控器設(shè)計(jì)和生產(chǎn)廠商面臨到的一個(gè)問題,本課題通過單片機(jī)紅外線遙控發(fā)射技術(shù),實(shí)現(xiàn)對空調(diào)實(shí)現(xiàn)控制空調(diào)制冷、溫度、制熱等功能的實(shí)現(xiàn),從而達(dá)到遙控器的體積小、功耗低、功能強(qiáng)、成本低的目的。1 系統(tǒng)設(shè)計(jì)的總概括 1.1系統(tǒng)設(shè)計(jì)思路 本設(shè)計(jì)利用at89s52進(jìn)行總體控制,接收和處理系統(tǒng)設(shè)計(jì)的幾個(gè)模塊的遙控器信息并與pc機(jī)進(jìn)行通信;利用c語言編程完成整個(gè)系統(tǒng)的對市內(nèi)溫度控制模式。使遙控完成空調(diào)器空調(diào)模式運(yùn)用、在自動情況下,如果室內(nèi)溫度小于所設(shè)的下限值,空調(diào)關(guān)。如果室內(nèi)溫度大于所設(shè)上限值,

3、強(qiáng)制開空調(diào)。手動設(shè)置溫度上下限,并用lmc1602顯示當(dāng)前運(yùn)行模式、工作狀態(tài)和當(dāng)前室溫等。 1.2系統(tǒng)軟硬件方案的提出1.2.1 硬件方案的提出 本系統(tǒng)以實(shí)現(xiàn)模擬空調(diào)機(jī)的紅外遙控器的操作。該控制器在預(yù)先設(shè)置空調(diào)啟動時(shí)間,空調(diào)啟動的溫度最低和最高溫度閾值等參數(shù)后, 一旦滿足操作條件,控制器將自動啟動空調(diào)機(jī)。本設(shè)計(jì)最初的設(shè)計(jì)是基于紅外發(fā)射電路,存儲電路模塊電路,rs232通信模塊電路,時(shí)鐘模塊電路,數(shù)字溫度傳感模塊電路,液晶顯示模塊電路,復(fù)位電路,按鍵部分,系統(tǒng)電源電路9個(gè)模塊組成(系統(tǒng)總硬件電路圖如附錄1)。(1)紅外發(fā)射電路 根據(jù)設(shè)計(jì)電路要實(shí)現(xiàn)的功能對紅外進(jìn)行編碼,當(dāng)按壓功能指令鍵盤時(shí),產(chǎn)生經(jīng)

4、過調(diào)制的串行編碼,通過激勵(lì)電路,驅(qū)動紅外發(fā)光二極管發(fā)光,發(fā)射給接收端。(2)存儲電路模塊 本模塊主要由at24c02與單片機(jī)連接。用于模擬i2c接口,用于存儲本設(shè)計(jì)中的紅外編碼的數(shù)據(jù)信息,以防止系統(tǒng)掉電后數(shù)據(jù)丟失,保證數(shù)據(jù)的可靠性。且足夠的存儲空間可用于以后的擴(kuò)展功能指令存儲。(3)rs232通信模塊電路 本模塊主要由rs232與pc、單片機(jī)連接,完成pc機(jī)和單片機(jī)的數(shù)據(jù)通信功能。作為日后系統(tǒng)功能擴(kuò)展,以滿足家居,辦公等pc通信控制溫度的系統(tǒng)完善運(yùn)用參考。(4)數(shù)字溫度傳感模塊電路 由數(shù)字溫度傳感器ds18b20與單片機(jī)連接組成 ,用于測試采集溫度數(shù)據(jù)。(5)時(shí)鐘模塊電路 本模塊由ds1302

5、與單片機(jī)連接,使系統(tǒng)具有實(shí)時(shí)性,由時(shí)鐘芯片ds1302給系統(tǒng)提供時(shí)鐘信號(年,月,日,時(shí),分,秒),并通過i/o口連接方式,對ds1302寫入數(shù)據(jù)和讀取數(shù)據(jù)。(6)液晶顯示模塊電路 本模塊使用了lmc1602液晶顯示與單片機(jī)連接,用于讀取顯示設(shè)計(jì)中要求顯示的各項(xiàng)數(shù)據(jù)(年,月,日,時(shí),分,秒,上下限溫度,現(xiàn)時(shí)溫度,定時(shí)時(shí)間),并與按鍵一起用于系統(tǒng)運(yùn)行參數(shù)的設(shè)定(包括分辨力、上限和下限超限報(bào)警等)及運(yùn)行狀態(tài)與測溫結(jié)果(包括讀出64位rom 碼和各點(diǎn)測溫值)的顯示。(7)復(fù)位電路 本系統(tǒng)的復(fù)位電路上電后或按下開關(guān)系統(tǒng)復(fù)位,使處于隨機(jī)狀態(tài)的內(nèi)部各寄存器數(shù)據(jù)復(fù)位為原值。(8)按鍵部分 用于存儲后功能操作

6、,作為人機(jī)交互接口的信息輸入,輸出。(9)系統(tǒng)電源電路 由三端穩(wěn)壓7805穩(wěn)壓和在輸入和輸出兩端各接100uf電容組成,用于系統(tǒng)電源穩(wěn)定。1.2.2 軟件方案的提出 本系統(tǒng)軟件編程采用的是c語言編程,運(yùn)用keil uvision3平臺進(jìn)行編程,進(jìn)行編程查錯(cuò),再通過編程器下載程序(系統(tǒng)總設(shè)計(jì)程序如附錄2)。 針對硬件設(shè)計(jì)模塊,軟件部分也采取分模塊編程,再通過主程序調(diào)用實(shí)現(xiàn)系統(tǒng)功能。使用模塊化結(jié)構(gòu)形式是為了使程序的組裝、調(diào)試及控制系統(tǒng)方案變的方便,也為了便于推廣到其他過程控制對象??刂瞥绦蚬灿?部分子程序,分別為遙控發(fā)射程序、測溫控制程序、液晶顯示程序和擴(kuò)展功能rs-232通信控制部分。主程序在初

7、始化完成后,依次循環(huán)執(zhí)行上述子程序,分別實(shí)現(xiàn)其相應(yīng)功能。此外,還有三個(gè)中斷服務(wù)程序,分別是時(shí)鐘中斷程序,24c02驅(qū)動中斷程序和紅外發(fā)射中斷程序。2 系統(tǒng)硬件部分理論分析及設(shè)計(jì)2.1 單片機(jī)應(yīng)用及atmel89s52芯片結(jié)構(gòu)2.1.1單片機(jī)應(yīng)用 在一個(gè)應(yīng)用系統(tǒng)中,只使用一個(gè)單片機(jī),這是目前應(yīng)用最多的方式。單片機(jī)應(yīng)用的主要領(lǐng)域有:(1)智能產(chǎn)品 單片機(jī)與傳統(tǒng)機(jī)械產(chǎn)品相結(jié)合,使傳統(tǒng)機(jī)械產(chǎn)品結(jié)構(gòu)簡化,控制智能化,結(jié)構(gòu)成新一代機(jī)電一體化產(chǎn)品。目前,利用單片機(jī)構(gòu)成的智能產(chǎn)品已廣泛應(yīng)用于家用電器,辦公設(shè)備,數(shù)控機(jī)床,紡織機(jī)械,工業(yè)設(shè)備等行業(yè)。(2)智能儀表目前各種傳感器,變送器,控制儀表已經(jīng)普遍采用單片機(jī)

8、應(yīng)用系統(tǒng)。它集測量,處理,控制功能于一體,具有各種智能化功能,如存儲,數(shù)據(jù)處理,查找,判斷,聯(lián)網(wǎng)和語音功能。單片機(jī)構(gòu)成的職能儀表,能使儀表具有數(shù)字化,智能化,多功能化,綜合化,柔性化等特點(diǎn),賦予測量儀表以嶄新的面貌,使傳統(tǒng)的儀器,儀表發(fā)生根本性的變革,它代表了儀器儀表的發(fā)展趨勢。(3)測控系統(tǒng) 用單片機(jī)構(gòu)成的各種工業(yè)控制系統(tǒng)中的數(shù)據(jù)采集系統(tǒng)具有工作穩(wěn)定可靠,抗干擾能力強(qiáng)等特點(diǎn),如爐溫控制系統(tǒng),電鍍生產(chǎn)自動控制系統(tǒng)等。(4)智能接口由于單片機(jī)可對接口信息進(jìn)行加工處理,可以大量降低接口界面的通信密度,極大地提高接口控制管理水平。在一些通用計(jì)算機(jī)外部設(shè)備上,已實(shí)現(xiàn)了單片機(jī)的鍵盤管理等。2.1.2單片

9、機(jī)系統(tǒng)的擴(kuò)展和本系統(tǒng)配置單片機(jī)加上適當(dāng)?shù)耐鈬骷蛻?yīng)用程序,構(gòu)成了應(yīng)用系統(tǒng)稱為最小系統(tǒng)。這種采用“單片”形式構(gòu)成的應(yīng)用系統(tǒng)主要用于家電類產(chǎn)品和簡單的儀器儀表中。隨著單片機(jī)應(yīng)用的深入和發(fā)展,特別是近年來比較復(fù)雜的測控系統(tǒng)和高科技的應(yīng)用,單片機(jī)本體上集成的功能元件已經(jīng)滿足不了需求。為了使測控系統(tǒng)覆蓋更寬的應(yīng)用范圍,一般不得不在單片機(jī)的基礎(chǔ)上擴(kuò)展存儲器和i/o接口。因此,利用單片機(jī)構(gòu)成一個(gè)完整的智能空調(diào)控制系統(tǒng),必須考慮單片機(jī)的系統(tǒng)擴(kuò)展和系統(tǒng)配置。(1)系統(tǒng)擴(kuò)展指單片機(jī)內(nèi)部的基本單元不能滿足系統(tǒng)要求時(shí),在片外擴(kuò)展相應(yīng)的電路或器件。不同類型的單片機(jī),其擴(kuò)展方法各異。某些類型的單片機(jī),則采用片內(nèi)串行總線

10、進(jìn)行擴(kuò)展,如i2c,spi等總線擴(kuò)展,主要擴(kuò)展存儲器和i/o接口。還有一些單片機(jī),如intel8-51和8096系列,為了滿足單片機(jī)的系統(tǒng)擴(kuò)展要求,設(shè)置有可供外部擴(kuò)展電路使用的三態(tài)總線(db,ab,cb)結(jié)構(gòu)。例如,mcs-51系列單片機(jī)由p0口構(gòu)成8位數(shù)據(jù)總線,p2+p0構(gòu)成的16位地址總線,以供外部分別擴(kuò)展程序存儲器與數(shù)據(jù)存儲器。(2)系統(tǒng)配置系統(tǒng)配置是指為了滿足系統(tǒng)功能要求而配置的各種接口電路。例如在本設(shè)計(jì)中,為構(gòu)成溫度采集系統(tǒng),必須配置傳感器接口等;為構(gòu)成伺服系統(tǒng)必須配置伺服控制接口以及滿足對話人-機(jī)接口和用于構(gòu)成多機(jī)或網(wǎng)絡(luò)系統(tǒng)的相互通信接口(如系統(tǒng)的rs232)等。系統(tǒng)配置與控制對象

11、和操作要求密切相關(guān)。用單片機(jī)構(gòu)成一個(gè)能夠滿足對象測控功能要求的應(yīng)用系統(tǒng),在硬件系統(tǒng)設(shè)計(jì)上包括兩層次的任務(wù):一是由單片機(jī)最小系統(tǒng)通過系統(tǒng)擴(kuò)展構(gòu)成能滿足測控任務(wù)處理要求的計(jì)算機(jī)基本系統(tǒng)(或平臺系統(tǒng));二是根據(jù)用戶及對象的技術(shù)要求,通過系統(tǒng)配置,為單片機(jī)系統(tǒng)配置各種接口電路,以構(gòu)成與對象相匹配的系統(tǒng),則稱為單片機(jī)應(yīng)用系統(tǒng)。由此,本設(shè)計(jì)由單片機(jī)構(gòu)成的應(yīng)用系統(tǒng)如下圖2-1:單片機(jī)數(shù)字溫度傳感模塊存儲電路模塊時(shí)鐘模塊rs-232紅外發(fā)射模塊按鍵部分液晶顯示模塊復(fù)位電路 圖2-1總應(yīng)用系統(tǒng)圖2.1.3 atmel89s52芯片結(jié)構(gòu)介紹(1)89s52芯片結(jié)構(gòu)介紹 atmel89系列單片機(jī)與8051系列單片機(jī)

12、兼容,這個(gè)系統(tǒng)對于以8051系列為基礎(chǔ)的系統(tǒng)來說,十分容易進(jìn)行取代。同時(shí),對那些熟悉8051的用戶來說。用atmel公司的89系列單片機(jī)來取代8051進(jìn)行系統(tǒng)的設(shè)計(jì)也是輕而易舉的事。本系統(tǒng)采用的atmel89系列單片機(jī)中的at89s8252型號at89s8252采用atmel的高密度非易失性存儲器技術(shù)制造,與工業(yè)上標(biāo)準(zhǔn)的80c51的指令系統(tǒng)及引腳兼容內(nèi)可向下裝flash允許程序存儲器在系統(tǒng)內(nèi)通過spi串行口改寫或用通用的非易失性存儲器編程器改寫。通過把通用的8位cpu與可向下裝載的flash集成在一個(gè)芯片上,at89s8252便成為一個(gè)高效的微型計(jì)算機(jī)。at89s8252型單片機(jī)除了具備一般的

13、單片機(jī)性能之外還具備如下的特點(diǎn):· 兼容mcs一51tm 系列。· 8 kb可下載編程的fi ash存儲器 可循環(huán)寫人擦除l 000砍。· 2 kb的eeprom 存儲器, 可循環(huán)寫人擦除100 000次。· 40h60 v的工作電壓。· 全靜態(tài)設(shè)計(jì):024 mhz。· 256×8位的內(nèi)部ram。· 三級程序加密,· 32個(gè)可編程1o 口。· 3個(gè)16位定時(shí)器。· 9個(gè)中斷源。· 可編程“看門狗 定時(shí)器。· 通用uart串行通道。· spi串行接口。

14、83; 低功耗空閑和省電模式。 引腳及其功能: at89s8252提供有pdip、plcc、pqfptqfp3種封裝形式,引腳與89c51的引腳完全相同(如圖2-2)。at89s52的io口。p0、p1、p2、p3口除具有與89c51相同的一些性能和用途外,p1還提供有新的附加功能,p10和p11可配置為定時(shí)器計(jì)數(shù)器2的外部輸入(p1ot2)和觸發(fā)輸入(p1it2ex)。此外,p1.4、p15、p16、p17可配置串行編程端口選擇,數(shù)據(jù)輸入輸出,時(shí)鐘輸入輸出端,詳見表2-1。 表2-1 p1端口功能表端口號附加功能p1.0t2時(shí)鐘輸出(定時(shí)器計(jì)數(shù)器2外部計(jì)數(shù)輸入)p1.1t2 ex(定時(shí)器計(jì)數(shù)

15、器2觸發(fā)輸入和方向控制)p1.4ss(從端口選擇輸入)p1.5mosi(串行編程主數(shù)據(jù)輸出,從數(shù)據(jù)輸入)p1.6miso(串行編程主數(shù)據(jù)輸入,從數(shù)據(jù)輸出)p1.7ck (串行編程主時(shí)鐘輸出,從時(shí)鐘輸入)表2-1 圖2-2 at89s52引腳圖(2)芯片選擇優(yōu)點(diǎn)在本系統(tǒng)設(shè)計(jì)中,對單片機(jī)作為主控核心是因?yàn)閱纹瑱C(jī)具有以下突出特點(diǎn) 體積小,價(jià)格低,應(yīng)用廣。由于計(jì)算機(jī)的主要器件集成在一塊芯片上,而且適合大規(guī)模生產(chǎn),因此在體積、重量、價(jià)格上具有優(yōu)勢,便于在中小設(shè)備、廉價(jià)設(shè)備上使用,從而使計(jì)算機(jī)深入到過去無法進(jìn)入的領(lǐng)域,拓展了微型計(jì)算機(jī)的應(yīng)用范圍。 通用性、靈活性強(qiáng)。在改變單片機(jī)的控制對象時(shí),可以基本上不動

16、硬件,而只需改變程序。另外,可以很方便的對其進(jìn)行擴(kuò)展。 可靠性高、抗干擾能力強(qiáng)。單片機(jī)的高集成度,避免了功能器件之間的連線焊接、插接,縮短了系統(tǒng)內(nèi)部的信息傳送距離,從而提高了可靠性和減少了外部干擾的影響,能夠適用于工作環(huán)境較惡劣的場合。 實(shí)時(shí)控制能力強(qiáng)。實(shí)時(shí)控制又稱過程控制,是指及時(shí)的檢測設(shè)備、采集數(shù)據(jù)信息,并按最佳方案對設(shè)備進(jìn)行自動調(diào)節(jié)和控制。單片機(jī)具有很強(qiáng)的邏輯操作、位處理和判斷轉(zhuǎn)移功能,運(yùn)行速度快,特別適合于工業(yè)系統(tǒng)實(shí)時(shí)控制。 應(yīng)用開發(fā)周期短。單片機(jī)結(jié)構(gòu)簡單,硬件組合、軟件編程都很方便,又容易進(jìn)行模擬試驗(yàn),因此付諸實(shí)際應(yīng)用快。2.2 紅外發(fā)射模塊電路設(shè)計(jì)分析2.2.1紅外無線通信原理(1

17、)紅外無線通信組成結(jié)構(gòu) 紅外無線通信以紅外線作為通信載體,利用紅外技術(shù)實(shí)現(xiàn)兩點(diǎn)間的近距離通信和信息轉(zhuǎn)發(fā)。紅外無線通信系統(tǒng)采用光傳輸及無線工作機(jī)制,其組成結(jié)構(gòu)包括:發(fā)射器部分,信道部分,終端部分。其工作原理如圖2-3所示.圖2-3 紅外無線通信示意圖(2)紅外無線通信的特點(diǎn)無線通信的方式有很多種,利用紅外光進(jìn)行通信具有以下特點(diǎn): 頻率高,波長短,所發(fā)射的能量集中; 紅外線是人的肉眼看不見的光線,保密性強(qiáng),選用它作為信息載體,裝置工作時(shí)不存在視覺污染 ,對人體沒有傷害; 傳播范圍不受局限,不存在頻率干擾問題,與無線電波方式相比,不必就頻譜資源問題向有關(guān)部門進(jìn)行請和登記,易于實(shí)施: 具有良好的指向性

18、,當(dāng)傳送設(shè)備和紅外接收端口排成直線,左右偏差不超過15度的時(shí)候,紅外裝置運(yùn)行效果最好; 紅外線不能穿過或繞過人和物體,在數(shù)據(jù)傳輸時(shí),不能阻斷光路; 目前產(chǎn)生和接收紅外信號的技術(shù)已經(jīng)比較成熟,元件體積小,成本低; 空間傳播時(shí)的衰減系數(shù)小,可保證信號的有效傳送; 制作簡單、易于產(chǎn)生和調(diào)制等優(yōu)勢2.2.2 紅外遙控信號編碼及發(fā)射原理通常,紅外遙控器是將遙控信號(二進(jìn)制脈沖碼)調(diào)制在38khz的載波上,經(jīng)緩沖放大后送至紅外發(fā)光二極管,轉(zhuǎn)化為紅外信號發(fā)射出去的。二進(jìn)制脈沖碼的形式有多種,其中最為常用的是pwm碼(脈沖寬度調(diào)制碼)和ppm碼(脈沖位置調(diào)制碼)。前者以寬脈沖表示1,窄脈沖表示0,如圖2-4所

19、示。后者脈沖寬度一樣,但是碼位的寬度不一樣,碼位寬的代表1,碼位窄的代表0。如圖2-5所示。 圖2-4pwm碼圖2-5 ppm碼遙控編碼脈沖信號(以ppm碼為例)通常由引導(dǎo)碼、系統(tǒng)碼、系統(tǒng)反碼、功能碼、功能反碼等信號組成,如圖3-4所示。引導(dǎo)碼也叫起始碼,由寬度為9ms的高電平和寬度為4.5ms的低電平組成(不同的遙控系統(tǒng)在高低電平的寬度上有一定區(qū)別),用來標(biāo)志遙控編碼脈沖信號的開始。系統(tǒng)碼也叫識別碼,它用來指示遙控系統(tǒng)的種類,以區(qū)別其它遙控系統(tǒng),防止各遙控系統(tǒng)的誤動作。功能碼也叫指令碼,它代表了相應(yīng)的控制功能,接收機(jī)中的微控制器可根據(jù)功能碼的數(shù)值去完成各種功能操作。系統(tǒng)反碼與功能反碼分別是系

20、統(tǒng)碼與功能碼的反碼,反碼的加入是為了能在接收端校對傳輸過程中是否產(chǎn)生差錯(cuò)。為了提高抗干擾性能和降低電源消耗,將上述的遙控編碼脈沖對頻率為38khz(周期為26.3us)的載波信號進(jìn)行脈幅調(diào)制(pam),再經(jīng)緩沖放大后送到紅外發(fā)光管,將遙控信號發(fā)射出去。圖2-6 遙控編碼脈沖信號2.2.3 紅外發(fā)射硬件接口電路(1)紅外發(fā)射電路設(shè)計(jì)原理:本系統(tǒng)在紅外設(shè)計(jì)方面主要用一個(gè)紅外發(fā)射頭接一個(gè)驅(qū)動電路再與單片機(jī)連接既可。實(shí)際設(shè)計(jì)電路如圖2-7:圖2-7 紅外發(fā)射部分電路圖(2)電路功能:紅外發(fā)射電路主要是當(dāng)單片機(jī)掃描按鍵,按壓功能指令鍵盤時(shí)或溫度達(dá)到上下限設(shè)置時(shí),產(chǎn)生經(jīng)過調(diào)制的串行編碼,通過激勵(lì)電路,驅(qū)動

21、紅外發(fā)光二極管發(fā)光,發(fā)射給接收端,對空調(diào)實(shí)行開機(jī),關(guān)機(jī),制冷和制熱的遙控。2.3 存儲模塊電路分析2.3.1 i2c總線的結(jié)構(gòu)及運(yùn)用原理 i2c總線是一種用于ic器件之間連接的二線制總線。它通過sda(串行數(shù)據(jù)線)及scl(串行時(shí)鐘線)兩根線在連到總線上的器件之間傳送信息,并根據(jù)地址識別每個(gè)器件:不管是單片機(jī)、存儲器、lcd驅(qū)動器還是鍵盤接口。在系統(tǒng)設(shè)計(jì)中,選用的at24c02將利用i2c總線傳輸數(shù)據(jù),所以對i2c總線的原理知識有必要掌握。(1) i2c總線的基本結(jié)構(gòu)采用i2c總線標(biāo)準(zhǔn)的單片機(jī)或ic器件,其內(nèi)部不僅有i2c接口電路,而且將內(nèi)部各單元電路按功能劃分為若干相對獨(dú)立的模塊,通過軟件尋

22、址實(shí)現(xiàn)片選,減少了器件片選線的連接。cpu不僅能通過指令將某個(gè)功能單元電路掛靠或摘離總線,還可對該單元的工作狀況進(jìn)行檢測,從而實(shí)現(xiàn)對硬件系統(tǒng)的既簡單又靈活的擴(kuò)展與控制。i2c總線接口電路結(jié)構(gòu)如圖2-8所示。 圖2-8 i2c總線接口電路結(jié)構(gòu)圖 (2)雙向傳輸?shù)慕涌谔匦詡鹘y(tǒng)的單片機(jī)串行接口的發(fā)送和接收一般都各用一條線,如mcs51系列的txd和rxd,而i2c總線則根據(jù)器件的功能通過軟件程序使其可工作于發(fā)送或接收方式。,它就是發(fā)送器(也叫主器件),而當(dāng)其從總線上接收信息時(shí),又成為接收器(也叫從器件)。主器件用于啟動總線上傳送數(shù)據(jù)并產(chǎn)生時(shí)鐘以開放傳送的器件,此時(shí)任何被尋址的器件均被認(rèn)為是從器件。i

23、2c總線的控制完全由掛接在總線上的主器件送出的地址和數(shù)據(jù)決定。在總線上,既沒有中心機(jī),也沒有優(yōu)先機(jī)??偩€上主和從(即發(fā)送和接收)的關(guān)系不是一成不變的,而是取決于此時(shí)數(shù)據(jù)傳送的方向。sda和scl均為雙向i/o線,通過上拉電阻接正電源。當(dāng)總線空閑時(shí),兩根線都是高電平。連接總線的器件的輸出級必須是集電極或漏極開路,以具有線“與”功能。i2c總線的數(shù)據(jù)傳送速率在標(biāo)準(zhǔn)工作方式下為100kbit/s,在快速方式下,最高傳送速率可達(dá)400kbit/s。(3)i2c總線上的時(shí)鐘信號在i2c總線上傳送信息時(shí)的時(shí)鐘同步信號是由掛接在scl時(shí)鐘線上的所有器件的邏輯“與”完成的。scl線上由高電平到低電平的跳變將影

24、響到這些器件,一旦某個(gè)器件的時(shí)鐘信號下跳為低電平,將使scl線一直保持低電平,使scl線上的所有器件開始低電平期。此時(shí),低電平周期短的器件的時(shí)鐘由低至高的跳變并不能影響scl線的狀態(tài),于是這些器件將進(jìn)入高電平等待的狀態(tài)。當(dāng)所有器件的時(shí)鐘信號都上跳為高電平時(shí),低電平期結(jié)束,scl線被釋放返回高電平,即所有的器件都同時(shí)開始它們的高電平期。其后,第一個(gè)結(jié)束高電平期的器件又將scl線拉成低電平。這樣就在scl線上產(chǎn)生一個(gè)同步時(shí)鐘??梢?,時(shí)鐘低電平時(shí)間由時(shí)鐘低電平期最長的器件確定,而時(shí)鐘高電平時(shí)間由時(shí)鐘高電平期最短的器件確定。(4)數(shù)據(jù)的傳送在數(shù)據(jù)傳送過程中,必須確認(rèn)數(shù)據(jù)傳送的開始和結(jié)束。在i2c總線技

25、術(shù)規(guī)范中,開始和結(jié)束信號(也稱啟動和停止信號)的定義如圖如圖2-9所示。當(dāng)時(shí)鐘線scl為高電平時(shí),數(shù)據(jù)線sda由高電平跳變?yōu)榈碗娖蕉x為“開始”信號;當(dāng)scl線為高電平時(shí),sda線發(fā)生低電平到高電平的跳變?yōu)椤敖Y(jié)束”信號。開始和結(jié)束信號都是由主器件產(chǎn)生。在開始信號以后,總線即被認(rèn)為處于忙狀態(tài);在結(jié)束信號以后的一段時(shí)間內(nèi),總線被認(rèn)為是空閑的。圖2-9 數(shù)據(jù)傳送時(shí)序圖i2c總線的數(shù)據(jù)傳送格式是:在i2c總線開始信號后,送出的第一個(gè)字節(jié)數(shù)據(jù)是用來選擇從器件地址的,其中前7位為地址碼,第8位為方向位(r/w)。方向位為“0”表示發(fā)送,即主器件把信息寫到所選擇的從器件;方向位為“1”表示主器件將從從器件讀

26、信息。開始信號后,系統(tǒng)中的各個(gè)器件將自己的地址和主器件送到總線上的地址進(jìn)行比較,如果與主器件發(fā)送到總線上的地址一致,則該器件即為被主器件尋址的器件,其接收信息還是發(fā)送信息則由第8位(r/w)確定。在i2c總線上每次傳送的數(shù)據(jù)字節(jié)數(shù)不限,但每一個(gè)字節(jié)必須為8位,而且每個(gè)傳送的字節(jié)后面必須跟一個(gè)認(rèn)可位(第9位),也叫應(yīng)答位(ack)。數(shù)據(jù)的傳送過程如圖2-10所示。每次都是先傳最高位,通常從器件在接收到每個(gè)字節(jié)后都會作出響應(yīng),即釋放scl線返回高電平,準(zhǔn)備接收下一個(gè)數(shù)據(jù)字節(jié),主器件可繼續(xù)傳送。如果從器件正在處理一個(gè)實(shí)時(shí)事件而不能接收數(shù)據(jù)時(shí),(例如正在處理一個(gè)內(nèi)部中斷,在這個(gè)中斷處理完之前就不能接收

27、i2c總線上的數(shù)據(jù)字節(jié))可以使時(shí)鐘scl線保持低電平,從器件必須使sda保持高電平,此時(shí)主器件產(chǎn)生1個(gè)結(jié)束信號,使傳送異常結(jié)束,迫使主器件處于等待狀態(tài)。當(dāng)從器件處理完畢時(shí)將釋放scl線,主器件繼續(xù)傳送。 圖2-10 數(shù)據(jù)傳送過程 當(dāng)主器件發(fā)送完一個(gè)字節(jié)的數(shù)據(jù)后,接著發(fā)出對應(yīng)于scl線上的一個(gè)時(shí)鐘(ack)認(rèn)可位,在此時(shí)鐘內(nèi)主器件釋放sda線,一個(gè)字節(jié)傳送結(jié)束,而從器件的響應(yīng)信號將sda線拉成低電平,使sda在該時(shí)鐘的高電平期間為穩(wěn)定的低電平。從器件的響應(yīng)信號結(jié)束后,sda線返回高電平,進(jìn)入下一個(gè)傳送周期。i2c總線還具有廣播呼叫地址用于尋址總線上所有器件的功能。若一個(gè)器件不需要廣播呼叫尋址中所

28、提供的任何數(shù)據(jù),則可以忽略該地址不作響應(yīng)。如果該器件需要廣播呼叫尋址中提供的數(shù)據(jù),則應(yīng)對地址作出響應(yīng),其表現(xiàn)為一個(gè)接收器。(5) 總線競爭的仲裁總線上可能掛接有多個(gè)器件,有時(shí)會發(fā)生兩個(gè)或多個(gè)主器件同時(shí)想占用總線的情況。例如,多單片機(jī)系統(tǒng)中,可能在某一時(shí)刻有兩個(gè)單片機(jī)要同時(shí)向總線發(fā)送數(shù)據(jù),這種情況叫做總線競爭。i2c總線具有多主控能力,可以對發(fā)生在sda線上的總線競爭進(jìn)行仲裁,其仲裁原則是這樣的:當(dāng)多個(gè)主器件同時(shí)想占用總線時(shí),如果某個(gè)主器件發(fā)送高電平,而另一個(gè)主器件發(fā)送低電平,則發(fā)送電平與此時(shí)sda總線電平不符的那個(gè)器件將自動關(guān)閉其輸出級。總線競爭的仲裁是在兩個(gè)層次上進(jìn)行的。首先是地址位的比較,

29、如果主器件尋址同一個(gè)從器件,則進(jìn)入數(shù)據(jù)位的比較,從而確保了競爭仲裁的可靠性。由于是利用i2c總線上的信息進(jìn)行仲裁,因此不會造成信息的丟失。(6)i2c總線接口器件目前在視頻處理、移動通信等領(lǐng)域采用i2c總線接口器件已經(jīng)比較普遍。另外,通用的i2c總線接口器件,如帶i2c總線的單片機(jī)、ram、rom、a/d、d/a、lcd驅(qū)動器等器件,也越來越多地應(yīng)用于計(jì)算機(jī)及自動控制系統(tǒng)中。2.3.2 at24c02芯片結(jié)構(gòu)及接口電路(1) at24c02芯片結(jié)構(gòu)及工作原理at24c02芯片結(jié)構(gòu)如圖表2-2 引腳功能表引號符號名稱及功能1,2,3a0,a2,a3地址輸入5sda數(shù)據(jù)輸入6scl時(shí)鐘輸入7wp寫

30、保護(hù)8vcc電源 圖2-11 at24c02引腳圖工作原理 at24c02具有256×8(2k)bit的存儲容量,頁寫入字節(jié)數(shù)為8。通常eeprom器件寫入時(shí)總需要一定的時(shí)間(5ms10ms),因此在寫入程序中無法連續(xù)寫入多個(gè)數(shù)據(jù)字節(jié)。一次寫入eeprom的字節(jié)數(shù)不大于器件的頁寫入字節(jié)數(shù)時(shí),可按通常ram的寫入速度將數(shù)據(jù)裝入eeprom的數(shù)據(jù)寄存器中,隨后啟動自動寫入定時(shí)控制邏輯,經(jīng)過5ms10ms的時(shí)間,自動將數(shù)據(jù)寄存器中的數(shù)據(jù)同步寫入eeprom的指定單元。這樣只要一次寫入的字節(jié)數(shù)不多于頁寫入容量,總線對eeprom的操作可視為對靜態(tài)ram的操作,但要求下次數(shù)據(jù)寫入操作在5ms1

31、0ms之后進(jìn)行。   at24c02器件地址格式如圖2-12所示。其中da3到da0位為器件固有地址編碼,由工廠給定,為1010,不能更改。a2到a0 3位引腳地址用于相同地址器件的識別。本電路為000。r/w為數(shù)據(jù)傳送方向。r/w=1時(shí),主機(jī)接(讀);r/w=0時(shí),主機(jī)發(fā)送(寫)。 圖2-12 at24c02器件地址格式(2)at24c02芯片在設(shè)計(jì)中的實(shí)際硬件電路 設(shè)計(jì)實(shí)際接口電路 at24c02的1、2、3腳是三條地址線,用于確定芯片的硬件地址。在設(shè)計(jì)電路中它們都接地,第8腳和第4腳分別為正、負(fù)電源。第5腳sda為串行數(shù)據(jù)輸入/輸出,數(shù)據(jù)通過這條雙向i2c總線串行傳送,在所設(shè)計(jì)

32、的電路中與單片機(jī)的p1.4連接。第6腳scl為串行時(shí)鐘輸入線,在本設(shè)計(jì)中與單片機(jī)的p1.5連接。sda和scl都需要和正電源間各接一個(gè)5.1k的電阻上拉。第7腳需要接地。實(shí)際電路連接如圖2-13: 電路功能 系統(tǒng)中外部at24c02擴(kuò)展了串行的電路,用來保存識別出來的遙控信號的高電平與低電平脈寬數(shù)據(jù)。圖2-13 at24c02與單片機(jī)接口圖電路及其芯片選擇優(yōu)點(diǎn) 該芯片不占用任何數(shù)據(jù)總線,連接簡單且節(jié)約大量系統(tǒng)資源。并且防止系統(tǒng)掉電后數(shù)據(jù)丟失,保證數(shù)據(jù)的可靠性。2.4 rs-232c通信模塊電路設(shè)計(jì)分析2.4.1 rs-232c芯片結(jié)構(gòu)及工作原理(1)rs-232c芯片的內(nèi)部結(jié)構(gòu)rs -232c

33、 通信接口是一種標(biāo)準(zhǔn)化的串行接口,是為遠(yuǎn)程通信連接數(shù)據(jù)終端設(shè)備與數(shù)據(jù)通信設(shè)備定義的物理接口?,F(xiàn)在普遍應(yīng)用于計(jì)算機(jī)之間和計(jì)算機(jī)與外設(shè)之間的近端連接標(biāo)準(zhǔn)。符合eia(電子工業(yè)協(xié)會)規(guī)格要求,在國際上得到廣泛應(yīng)用。其特點(diǎn)是信號少,有多種數(shù)據(jù)傳輸速率可以選擇,使用簡單,方便。電氣特性: rs-232c的每個(gè)腳線的信號和電平規(guī)定采用負(fù)邏輯電平,dc (-15-5v)規(guī)定為邏輯"1", dc (+5_+isv)規(guī)定為邏輯"0", dc (-5一+5v)規(guī)定為過渡區(qū)。計(jì)算機(jī)接口或終端的ttlimos電平與rs-232c通信接口的邏輯電平不兼容,需要外加電路實(shí)現(xiàn)電平轉(zhuǎn)換

34、。 機(jī)械特性:rs-232c規(guī)定使用25針的標(biāo)準(zhǔn)連接口,使用db-25型連接器。但實(shí)際使用時(shí)只需2個(gè)數(shù)據(jù)線、6個(gè)控制線、1個(gè)地線,共九個(gè)信號。一些廠家對rs-232c標(biāo)準(zhǔn)的機(jī)械特性進(jìn)行了簡化,使用9針標(biāo)準(zhǔn)接口,即db-9型連接器。由于rs-232c發(fā)送端與接受端之間的信號傳遞采用多芯信號線,而多芯信號線的總負(fù)載電容不能超過2500pf,所以rs-232c的信號傳輸距離為十幾米。 功能特性:rs-232c接口的主要信號線及功能如下表2-3: 表2-3 引腳功能表引號符號名稱及功能1pgnd保護(hù)接地2txd發(fā)送數(shù)據(jù)3rxd接收數(shù)據(jù)4rts請求發(fā)送5cts允許接收6dsr數(shù)據(jù)建立就緒7sgnd信號接

35、地8cd載波檢測20dtr數(shù)據(jù)終端準(zhǔn)備就緒22ri振鈴指示圖2-14 max232引腳圖(2)工作原理串行接口的有異步和同步兩種基本通信方式。異步通信采用異步傳送格式,如圖2-15 所示。數(shù)據(jù)發(fā)送和接收均將起始位和停止位作為開始和結(jié)束的標(biāo)志。在異步通信中,起始位占用一位(低電平),用來表示字符開始。其后為 7 或 8 位的數(shù)據(jù)編碼,第 8 位通常做為奇偶校驗(yàn)位。最后為停止位(高電平)用來表示字符傳送結(jié)束。上述字符格式通常作為一個(gè)串行幀,如無奇偶校驗(yàn)位,即為常見的n.8.1幀格式。串行通信中,每秒傳送的數(shù)據(jù)位稱為波特率。如數(shù)據(jù)傳送的波特率為1200 波特,采用 n.8.1 幀格式(10 位),則

36、每秒傳送字節(jié)為 120 個(gè),而字節(jié)中每一位傳送時(shí)間即為波特率的倒數(shù):t=i/1200=0.833ms。同樣,如數(shù)據(jù)傳送的波特率為 9600 波特,則字節(jié)中每一位傳送時(shí)間為 t=1/9600=0.104 ms。根據(jù)數(shù)據(jù)傳送的波特率即字節(jié)中每一位的傳送時(shí)間,我們便可用普通 i/o 口來模擬實(shí)現(xiàn)串行通信的時(shí)序。圖2-15 異步通信格式2.4.2 rs-232c硬件接口電路 (1)設(shè)計(jì)實(shí)際接口電路 89s52單片機(jī)通過普通 i/o 口與 pc 機(jī) rs232 串口實(shí)現(xiàn)通信,本設(shè)計(jì)實(shí)際硬件接口電路如圖 2 所示。max232芯片內(nèi)部有一個(gè)電源電壓變換器,可以把5v電壓變換成rs-232c輸出電平所需的正

37、負(fù)10v電壓。所以,采用此芯片接口的串行通信系統(tǒng)只需單一的+5v電源就可以了。圖2-16中的 p3.0 模擬發(fā)送端,p3.1模擬接收端。圖2-16 rs-232c通信模塊電路圖(2)電路功能 在本設(shè)計(jì)中,rs-232c主要用于對系統(tǒng)的擴(kuò)展,以實(shí)現(xiàn)pc機(jī)89s52 單片機(jī)通過普通i/o 口與pc 機(jī)rs-232c串口實(shí)現(xiàn)通信的硬件。由于pc 系列微機(jī)串行口rs-232c 標(biāo)準(zhǔn)接口,與輸入、輸出均采用ttl 電平的89s52單片機(jī)在接口規(guī)范上不一致,因此ttl電平rs-232c 接口電平的轉(zhuǎn)換采用maxim 公司的max232 標(biāo)準(zhǔn)rs-232c接口芯片,該芯片可以用單電壓(+5v)實(shí)現(xiàn)rs-23

38、2c接口邏輯“1”(-3v15v)和邏輯“0”(+3v15v)的電平轉(zhuǎn)換。(3)電路及芯片選擇優(yōu)點(diǎn)一種用單片機(jī)普通i/o 口實(shí)現(xiàn)串行通信的方法,可在單片機(jī)的最小應(yīng)用系統(tǒng)中實(shí)現(xiàn)與兩個(gè)以上串行接口設(shè)備的多機(jī)通信。2.5 數(shù)字溫度模塊電路設(shè)計(jì)分析2.5.1 dsl820 內(nèi)部結(jié)構(gòu)及工作原理dsl820 數(shù)字溫度計(jì)提供9 位(二進(jìn)制)溫度讀數(shù)指示器件的溫度信息經(jīng)過單線接收送入dsl820或從dsl820 送出,因此從主機(jī)cpu 到dsl820 僅需一條線(和地線)。 (1) dsl820 的引腳及功能表2-5 ds1820引腳功能引號名稱功能說明1gnd接地2dq數(shù)據(jù)輸入/輸出腳。對于單線操作:漏極開

39、路3vdd可選的vdd引腳。 圖2-17 ds1820引腳圖 獨(dú)特的單線接口方式:ds18b20與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與ds18b20的雙向通訊。 在使用中不需要任何外圍元件。 可用數(shù)據(jù)線供電,電壓范圍:+3.0到+5.5 v。 測溫范圍:-55 +125 。固有測溫分辨率為0.5 。 通過編程可實(shí)現(xiàn)912位的數(shù)字讀數(shù)方式。 用戶可自設(shè)定非易失性的報(bào)警上下限值。 支持多點(diǎn)組網(wǎng)功能,多個(gè)ds18b20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)測溫。 負(fù)壓特性,電源極性接反時(shí),溫度計(jì)不會因發(fā)熱而燒毀,但不能正常工作。ds18b20采用3腳pr35封裝或8腳soic封裝,其內(nèi)部結(jié)構(gòu)框圖

40、如圖2-18所示。圖2-18 ds18b20內(nèi)部結(jié)構(gòu)圖(2)ds18b20內(nèi)部存儲功能    64 b閃速rom的結(jié)構(gòu)如圖2-19所示:8b檢驗(yàn)crc48b序列號8b工廠代碼(10h) msb lsb msb lsb msb lsb圖2-19 64 b閃速rom的結(jié)構(gòu)圖開始8位是產(chǎn)品類型的編號,接著是每個(gè)器件的惟一的序號,共有48位,最后8位是前56位的crc校驗(yàn)碼,這也是多個(gè)ds18b20可以采用一線進(jìn)行通信的原因。 非易市失性溫度報(bào)警觸發(fā)器th和tl,可通過軟件寫入用戶報(bào)警上下限。 高速暫存存儲器,ds18b20溫度傳感器的內(nèi)部存儲器包括一個(gè)高速暫存ram和一

41、個(gè)非易失性的可電擦除的eepram。后者用于存儲th,tl值。數(shù)據(jù)先寫入ram,經(jīng)校驗(yàn)后再傳給eppram。而配置寄存器為高速暫存器中的第5個(gè)字節(jié),它的內(nèi)容用于確定溫度值的數(shù)字轉(zhuǎn)換分辨率,ds18b20工作時(shí)按此寄存器中的分辨率將溫度轉(zhuǎn)換為相應(yīng)精度的數(shù)值。該字節(jié)各位的定義如下圖2-20:    圖2-20 存儲器字節(jié)定義圖低5位一直都是1,tm是測試模式位,用于設(shè)置ds18b20在工作模式還是在測試模式。在ds18b20出廠時(shí)該位被設(shè)置為0,用戶不要去改動,r1和r0決定溫度轉(zhuǎn)換的精度位數(shù),即是來設(shè)置分辨率,如表2-6所示(ds18b20出廠時(shí)被設(shè)置為12位)。

42、表2-6 配置寄存器與分辨率關(guān)系表r0r1溫度計(jì)分辨率/bit最大轉(zhuǎn)換時(shí)間/ms00993.750110187.510113751112750由表2-6可見,設(shè)定的分辨率越高,所需要的溫度數(shù)據(jù)轉(zhuǎn)換時(shí)間就越長。因此,在實(shí)際應(yīng)用中要在分辨率和轉(zhuǎn)換時(shí)間權(quán)衡考慮。    高速暫存存儲器除了配置寄存器外,還有其他8個(gè)字節(jié)組成,其分配如下所示。其中溫度信息(第1,2字節(jié))、th和tl值第3,4字節(jié)、第68字節(jié)未用,表現(xiàn)為全邏輯1;第9字節(jié)讀出的是前面所有8個(gè)字節(jié)的crc碼,可用來保證通信正確。溫度低位溫度高位thtl配置保留保留保留8位crclsb msb 圖2-21 ds1

43、8b20 存儲器映像圖當(dāng)ds18b20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲在高速暫存存儲器的第1,2字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后。溫度值格式如下: 圖2-22 ds18b20溫度值格式對應(yīng)的溫度計(jì)算:當(dāng)符號位s=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)s=1時(shí),先將補(bǔ)碼變換為原碼,再計(jì)算十進(jìn)制值。表2-7是對應(yīng)的一部分溫度值。 表2-7 ds18b20 溫度數(shù)據(jù)表溫度/二進(jìn)制表示十六進(jìn)制表示+125 +25.0625+10.125+0.50-0.5-10.125-25.0625-5500000111 110

44、1000000000001 1001000100000000 1010001000000000 0000100000000000 0000000011111111 1111100011111111 0101111011111110 0110111111111100 1001000007d0h0191h00a2h0008h0000hfff8hff5ehfe6fhfc90hds18b20完成溫度轉(zhuǎn)換后,就把測得的溫度值與th,tl作比較,若t>th或t<tl,則將該器件內(nèi)的告警標(biāo)志置位,并對主機(jī)發(fā)出的告警搜索命令作出響應(yīng)。因此,可用多只ds18b20同時(shí)測量溫度并進(jìn)行告警搜索。 crc

45、的產(chǎn)生    在64 b rom的最高有效字節(jié)中存儲有循環(huán)冗余校驗(yàn)碼(crc)。主機(jī)根據(jù)rom的前56位來計(jì)算crc值,并和存入ds18b20中的crc值做比較,以判斷主機(jī)收到的rom數(shù)據(jù)是否正確。另外,由于ds18b20單線通信功能是分時(shí)完成的,他有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對ds18b20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化ds18b20(發(fā)復(fù)位脈沖)發(fā)rom功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。 表2-8 命令字功能代號表rom命令ram命令 33h讀rom4eh寫ram55h 匹配rombeh 讀ramcch忽略rom48h拷貝ramfo

46、h查找rom44h溫度轉(zhuǎn)化foh警報(bào)查找b8h配置寄存器數(shù)據(jù)到ramb4h讀供電方式主芯片對ds18b20的操作通過發(fā)命令字進(jìn)行。命令字分為二種:rom命令字和ram命令字。不同的命令字代表不同的操作,如33h表示讀ds18b20的64位序列號。特別注意的是在發(fā)送每一個(gè)rom命令字和ram命令字之前,都要先發(fā)送初始化時(shí)序,命令字的代號與其對應(yīng)的功能如表2-8所示。命令字的發(fā)送由單片機(jī)主芯一位一位地發(fā)送。同樣,主芯片接收數(shù)據(jù)也是從低位到高位一位一位地接收。ds18b20d的復(fù)位時(shí)序如圖2-23所示,讀時(shí)序如圖2-24所示,寫時(shí)序如圖2-25所示: ds18b20的復(fù)位時(shí)序圖2-23 ds18b2

47、0的復(fù)位時(shí)序圖ds18b20的讀時(shí)序?qū)τ赿s18b20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序兩個(gè)過程。對于ds18b20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15 微秒之內(nèi)就得釋放單總線,以讓ds18b20把數(shù)據(jù)傳輸?shù)絾慰偩€上。ds18b20在完成一個(gè)讀時(shí)序過程,至少需要60us才能完成。圖2-24 ds18b20的讀時(shí)隙時(shí)序圖 ds18b20的寫時(shí)序?qū)τ赿s18b20的寫時(shí)序仍然分為寫0時(shí)序和寫1時(shí)序兩個(gè)過程。對于ds18b20寫0時(shí)序和寫1時(shí)序的要求不同,當(dāng)要寫0時(shí)序時(shí),單總線要被拉低至少60us,保證ds18b20能夠在15us到45us之間能夠正確地采樣io總線上的“0”電平,當(dāng)要寫1時(shí)序時(shí),單

48、總線被拉低之后,在15us之內(nèi)就得釋放單總線。圖2-25 ds18b20的寫時(shí)隙時(shí)序圖2.5.2 ds1820硬件接口電路 (1)實(shí)際電路連接圖 在本設(shè)計(jì)中ds1820中的dq口與單片機(jī)的p3.5口相連接,用于數(shù)據(jù)輸入/輸出(連接如下圖2-26),電路中r15為上拉電阻。圖2-26 ds18b20與單片機(jī)接口電路圖(2)模塊功能 由ds1820與單片機(jī)構(gòu)成的測溫系統(tǒng),隨時(shí)監(jiān)測室內(nèi)溫度變化,及時(shí)采集溫度數(shù)據(jù),使其他模塊能夠根據(jù)溫度變化而工作,實(shí)行本設(shè)計(jì)的智能控溫功能。(3)電路及芯片選擇優(yōu)點(diǎn)與模擬傳感器相比,由于采取的高集成度設(shè)計(jì),使數(shù)字式傳感器在可靠性、抗干擾能力以及器件微小化方面都有明顯的優(yōu)

49、點(diǎn),但是受半導(dǎo)體器件本身限制,數(shù)字式傳感器還存在一些不夠理想的地方,比如實(shí)際應(yīng)用時(shí)需加修正值,測溫范圍不寬,一般為-50攝氏度到+150攝氏度。雖然存在一些不足,但是充分利用微處理技術(shù)發(fā)展數(shù)字化、集成化和自動化的溫度傳感器仍是溫度傳感器的發(fā)展方向之一。數(shù)字化溫度傳感器ds18b20s是集成數(shù)字化溫度傳感器的典型代表。2.6 時(shí)鐘模塊電路設(shè)計(jì)分析2.6.1 ds1302內(nèi)部結(jié)構(gòu)ds1302是一種高性能、低功耗、帶ram的實(shí)時(shí)時(shí)鐘電路,它可以對年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5v5.5v。采用三線接口與cpu進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘

50、信號或ram數(shù)據(jù)ds1302是ds1202的升級產(chǎn)品,與ds1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對后背電源進(jìn)行涓細(xì)電流充電的能力。圖2-27 ds1302內(nèi)部結(jié)構(gòu)(1) 引腳功能及結(jié)構(gòu) 表2-9 ds1302引腳功能引號符號名稱2,3x1,x232。76khz晶振管腳4gnd地5rst復(fù)位腳6i/o數(shù)據(jù)輸入/輸出引腳7sclk串行時(shí)鐘1,8vcc1,vcc2電源供電管腳 圖2-28 ds1302引腳圖圖2-28示出ds1302的引腳排列,其中vcc1為后備電源,vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。ds1302由vcc1或vcc2兩者中的較大者

51、供電。當(dāng)vcc2大于vcc10.2v時(shí),vcc2給ds1302供電。當(dāng)vcc2小于vcc1時(shí),ds1302由vcc1供電。x1和x2是振蕩源,外接32.768khz晶振。rst是復(fù)位/片選線,通過把rst輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。rst輸入有兩種功能:首先,rst接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,rst提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)rst為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對ds1302進(jìn)行操作。如果在傳送過程中rst置為低電平,則會終止此次數(shù)據(jù)傳送,i/o引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在vcc2.5v之前,rst必須保持低電平。只有在sclk為低電

52、平時(shí),才能將rst置為高電平。i/o為串行數(shù)據(jù)輸入輸出端(雙向)。sclk始終是輸入端。 ds1302在本設(shè)計(jì)軟件部分,主要針對芯片功能為系統(tǒng)設(shè)計(jì)進(jìn)行采集實(shí)時(shí)時(shí)間,對年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),對數(shù)字時(shí)鐘模塊在本設(shè)計(jì)的工作電路編寫實(shí)現(xiàn)功能的相應(yīng)程序主要分為實(shí)時(shí)時(shí)鐘的數(shù)據(jù)讀寫,初始時(shí)間的設(shè)置。(2)數(shù)據(jù)輸入輸出(i/o)串行時(shí)鐘芯片主要由移位寄存器,控制邏輯,振蕩器,實(shí)時(shí)時(shí)鐘及31個(gè)字節(jié)ram存組成。為了開始任何的數(shù)據(jù)傳送,必須把rst置為高電平且把提供地址和命令信息的8位字節(jié)裝入到移位寄存器。 在進(jìn)行單字節(jié)傳送或多字節(jié)傳送時(shí),開始的8位命令字節(jié)用于指定40個(gè)字節(jié)(31個(gè)字節(jié)ram和9

53、個(gè)字節(jié)時(shí)鐘寄存器)中哪個(gè)將被訪問。在開始8個(gè)時(shí)鐘周期把命令裝入移位寄存器之后,另外的時(shí)鐘在讀操作時(shí)輸出數(shù)據(jù),在寫操作時(shí)輸入數(shù)據(jù)。 ds1032的控制字 ds1302 的控制字如圖2-29所示。控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入ds1302中,位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取ram數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出。圖2-29 ds1302控制字 ds1302的寄存器 ds1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為bcd碼

54、形式,其日歷、時(shí)間寄存器及其控制字。 此外,ds1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與ram相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 ds1302與ram相關(guān)的寄存器分為兩類:一類是單個(gè)ram單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為c0hfdh,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的ram寄存器,此方式下可一次性讀寫所有的ram的31個(gè)字節(jié),命令控制字為feh(寫)、ffh(讀)。 數(shù)據(jù)傳輸時(shí)序 ds1302有單字節(jié)傳送方式和多字節(jié)傳送方式。通過把rst復(fù)位線驅(qū)動至高電平來啟動所有的數(shù)據(jù)傳送。rst輸入線有兩種功能,首先rst接通控制邏輯,允許地址命令序列送入移位寄存器;其次,rst提供了中止單字節(jié)或多字節(jié)數(shù)據(jù)傳送的手段。數(shù)據(jù)輸入時(shí),時(shí)鐘的上升沿?cái)?shù)據(jù)必須有效,數(shù)據(jù)的輸出在時(shí)鐘的下降沿。如果rst為低電平,那么所有的數(shù)據(jù)傳送將被中止且i0引腳變?yōu)楦咦锠顟B(tài)。上電時(shí),在vc>2.5伏之前,rst必須為邏輯0。當(dāng)把rst驅(qū)動至邏輯1狀態(tài)時(shí),sclk必須為邏輯0。數(shù)據(jù)傳送時(shí)序如圖2-30所示。單字節(jié)數(shù)據(jù)輸入跟隨在寫命令字節(jié)的8個(gè)sclk周期之后,在隨后的8個(gè)sc

溫馨提示

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

評論

0/150

提交評論