版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、51單片機(jī)的接口技術(shù) 傳統(tǒng)的單片機(jī)外圍擴(kuò)展接口采用并行方式,即單片機(jī)與外圍器件用8根數(shù)據(jù)線進(jìn)行數(shù)據(jù)交換,再加上一些地址線和一些控制線,占用了大量的單片機(jī)I/O口。這不僅造成單片機(jī)資源的浪費(fèi),甚至?xí)绊憜纹瑱C(jī)其他功能的實(shí)現(xiàn)。因此近年來(lái),越來(lái)越多的新型外圍器件采用了串行接口,絕大多數(shù)單片機(jī)應(yīng)用系統(tǒng)的外圍擴(kuò)展接口也從并行方式過(guò)渡到串行方式。 I2C總線是Inter IC Bus(內(nèi)部集成電路總線)的縮寫,是Phulips公司研發(fā)的一種雙向二線制總線,用于單片機(jī)及其外圍設(shè)備,是近年來(lái)應(yīng)用較多的串行總線之一。I2C總線的優(yōu)點(diǎn)是簡(jiǎn)單、有效,并且占用的空間非常小,減少了電路板的空間以及芯片引腳的數(shù)量,降低了
2、互聯(lián)成本??偩€的長(zhǎng)度可達(dá)總線的長(zhǎng)度可達(dá)8m8m,最多可支持最多可支持4040個(gè)器件。個(gè)器件。目前具備I2C接口的芯片有很多,如AT24系列EEPROM、PCF8563日歷時(shí)鐘芯片、PCF8576LCD驅(qū)動(dòng)器及PCF8591A/D轉(zhuǎn)換器等。1. I2C總線接口總線接口 I2C總線只有兩根信號(hào)線,一根是雙向的數(shù)據(jù)/地址線SDA,另一根是串行時(shí)鐘總線SCL。所有連接到I2C總線上的設(shè)備的串行數(shù)據(jù)線都接到SDA上,而所有設(shè)備的串行時(shí)鐘線都接到SCL上。應(yīng)用時(shí)兩根總線必須接有510K的上拉電阻。 一個(gè)單片機(jī)系統(tǒng)外圍可以擴(kuò)展多個(gè)I2C總線器件,每個(gè)器件需要設(shè)定不同的地址。這樣單片機(jī)可以根據(jù)器件的不同地址進(jìn)
3、行識(shí)別并與之進(jìn)行數(shù)據(jù)傳輸。 I2C總線的數(shù)據(jù)傳輸速率在標(biāo)準(zhǔn)工作方式下為100Kb/S,高傳輸速率可達(dá)到400Kb/S 。 當(dāng)某個(gè)器件向總線上發(fā)送信息時(shí),它就是發(fā)送器(也叫主器件)(在任何時(shí)刻總線上只有一個(gè)主控器件實(shí)現(xiàn)總線的控制操作),而當(dāng)從總線上接收信息時(shí),該器件又稱為接收器(也叫從器件)。主器件用于啟動(dòng)總線上傳送數(shù)據(jù)并產(chǎn)生時(shí)鐘信號(hào)以開放傳送的器件,此時(shí)任何被尋址的器件都被認(rèn)為是從器件。I2C總線器件完全由掛接在總線上的主器件送出的地址和數(shù)據(jù)控制。 2. I2C總線器件的地址總線器件的地址 I2C總線可進(jìn)行雙向的信息傳送。外圍器件并聯(lián)在總線上,就像電話機(jī)一樣只有撥通各自的電話號(hào)碼才能工作,所以
4、每一個(gè)器件都有唯一的地址。器件的地址共7位,它與方向位構(gòu)成了I2C總線器件的尋址字節(jié)SLA。位位D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0含義含義DA3DA3DA2DA2DA1DA1DA0DA0A2A2A1A1A0A0R/WR/WDA3、DA2、DA1和DA0:器件的地址位,是I2C總線外圍接口器件固有的地址編碼,器件出廠時(shí)就已經(jīng)定了,使用者不能更改。例如I2C總線器件AT24Cxx系列器件的地址是1010。A2、A1和A0:引腳地址位,是由I2C總線外圍器件的地址端口根據(jù)接地或接電源的不同而形成的地址數(shù)據(jù),由使用者控制。R/W:數(shù)據(jù)方向位,規(guī)定了總線上主節(jié)點(diǎn)對(duì)從節(jié)點(diǎn)的數(shù)
5、據(jù)方向。R/W = 1時(shí),為接收,R/W = 0時(shí)為發(fā)送。3. I2C總線上的時(shí)鐘信號(hào)總線上的時(shí)鐘信號(hào) I2C總線上的時(shí)鐘信號(hào)是掛接在SCL時(shí)鐘線上的所有器件的時(shí)鐘信號(hào)邏輯“與”運(yùn)算的結(jié)果。一旦某個(gè)器件的時(shí)鐘信號(hào)下跳變?yōu)榈碗娖?,將使SCL線一直保持低電平,所有器件都開始低電平期。當(dāng)所有器件的時(shí)鐘信號(hào)都跳變?yōu)楦唠娖綍r(shí),低電平期結(jié)束,SCL線被釋放返回高電平。其后,第一個(gè)結(jié)束高電平期的器件又使SCL線的信號(hào)變成低電平。這樣就在SCL線上產(chǎn)生一個(gè)同步脈沖,可見(jiàn)時(shí)鐘低電平時(shí)間由時(shí)鐘低電平期最長(zhǎng)的器件確定,而時(shí)鐘高電平時(shí)間由時(shí)鐘高電平期最短的器件決定。4. I2C總線的傳輸協(xié)議與數(shù)據(jù)傳送總線的傳輸協(xié)議與
6、數(shù)據(jù)傳送(1)起始和停止條件 在數(shù)據(jù)傳送過(guò)程中,必須確認(rèn)數(shù)據(jù)傳送的開始和結(jié)束。在I2C總線技術(shù)規(guī)范中,開始和結(jié)束信號(hào)(也稱為啟動(dòng)和停止信號(hào))的定義如圖所示。2)數(shù)據(jù)格式在I2C總線開始信號(hào)后,送出的第一個(gè)字節(jié)數(shù)據(jù)是用來(lái)選擇從器件地址的。方向位為0表示發(fā)送,即主器件把信息寫到所選擇的從器件。方向位為1表示接收,即主器件將從從器件讀信息。開始信號(hào)后系統(tǒng)中的各個(gè)器件將自己的地址和主器件送到總線上的地址進(jìn)行比較,如果兩者一致,則該器件為被主器件尋址的器件。 I2C總線上的數(shù)據(jù)傳輸采用時(shí)鐘脈沖逐位串行傳送方式,時(shí)序如下圖所示。在SCL的低電平期間,SDA線上高、低電平能變化,即數(shù)據(jù)可以變化。在SCL高電
7、平期間,SDA線上的數(shù)據(jù)必須保持穩(wěn)定,不允許變化。因?yàn)榇藭r(shí)SDA狀態(tài)的改變已經(jīng)被用來(lái)表示起始和停止條件,以便接收器件的采樣接收。5. 響應(yīng)響應(yīng) I2C總線協(xié)議規(guī)定:每傳送一個(gè)字節(jié)數(shù)據(jù)(含地址及命令字)后,都要有一個(gè)應(yīng)答信號(hào)(也叫應(yīng)答位,用ACK表示),以確定數(shù)據(jù)傳送是否正確。應(yīng)答位的時(shí)鐘脈沖由主機(jī)產(chǎn)生,發(fā)送器件需要在應(yīng)答時(shí)鐘脈沖的高電平期間釋放(送高電平)數(shù)據(jù)/地址線SDA,轉(zhuǎn)由接收器件控制。通常接收器件在這個(gè)時(shí)鐘脈沖內(nèi)必須向SDA傳送低電平,以產(chǎn)生有效的應(yīng)答信號(hào)表示接收正常。如接收器件不能接收或不能產(chǎn)生應(yīng)答信號(hào)時(shí),則保持SDA為高電平。此時(shí)主機(jī)產(chǎn)生一個(gè)停止信號(hào),表示接收異常,使傳送異常結(jié)束。
8、 當(dāng)主機(jī)為接收器件時(shí),主機(jī)對(duì)最后一個(gè)字節(jié)不應(yīng)答,以向發(fā)送器件表示數(shù)據(jù)傳送結(jié)束。此時(shí)發(fā)送器件應(yīng)釋放SDA,以便主機(jī)產(chǎn)生一個(gè)停止信號(hào)。 考慮I2C器件驅(qū)動(dòng)過(guò)程都一樣,我們采用統(tǒng)一的I2C_driver.h來(lái)實(shí)現(xiàn)對(duì)I2C器件的使用。具體見(jiàn)L16M相關(guān)I2C的范例。7.9.3 單總線器件及其接口技術(shù)單總線器件及其接口技術(shù) I2C總線器件與單片機(jī)之間的通信需要兩根線,而單總線器件與單片機(jī)的數(shù)據(jù)通信只需要一根線。美國(guó)DALLAS公司推出的單總線技術(shù)與I2C總線不同,它采用單根信號(hào)線,既可以傳輸時(shí)鐘信號(hào)又可以傳輸數(shù)據(jù)信號(hào),且數(shù)據(jù)又可以雙向傳輸,因而這種總線技術(shù)具有線路簡(jiǎn)單、成本低廉、便于擴(kuò)展和維護(hù)等優(yōu)點(diǎn)。1
9、. 1. 單總線簡(jiǎn)介單總線簡(jiǎn)介單總線適用于單主機(jī)系統(tǒng),能夠控制一個(gè)或多個(gè)從機(jī)設(shè)備。主機(jī)通常是單片機(jī),從機(jī)可以是單總線器件,它們之間通過(guò)一條信號(hào)線進(jìn)行數(shù)據(jù)交換。單總線上同樣允許掛接多個(gè)單總線器件。因此,每個(gè)單總線器件必須有各自固有的地址。單總線通常需要接一個(gè)4.7K歐姆的上拉電阻。這樣當(dāng)總線空閑時(shí),狀態(tài)為高電平。(1)初始化單總線器件單總線上的所有處理均從初始化開始,單片機(jī)先發(fā)出一個(gè)“復(fù)位”脈沖,當(dāng)單總線器件接收到復(fù)位脈沖后向單片機(jī)發(fā)出“存在”脈沖信號(hào),以“告知” 單片機(jī)該器件在總線上并且已經(jīng)準(zhǔn)備好,等待操作。(2)識(shí)別單總線器件總線上允許掛接多個(gè)單總線器件,為便于單片機(jī)識(shí)別,每個(gè)單總線器件在出
10、廠前都光刻好了64位的序列號(hào)作為地址序列碼。所以單片機(jī)能夠根據(jù)該地址來(lái)識(shí)別,并判斷對(duì)哪一個(gè)單總線器件進(jìn)行操作。(3)數(shù)據(jù)交換單片機(jī)與單總線器件之間的數(shù)據(jù)交換必須遵循嚴(yán)格的通信協(xié)議。單總線協(xié)議定義了復(fù)位信號(hào)、應(yīng)答信號(hào)、寫“0”、讀“0”、寫“1”、讀“1”的幾種信號(hào)類型。所有的單總線命令序列都是由這些基本的信號(hào)類型組成的。除了應(yīng)答信號(hào)外,其他均由單片機(jī)發(fā)出同步信號(hào),并且發(fā)送的所有命令和數(shù)據(jù)的低位字節(jié)在前。2. DS18B20數(shù)字溫度傳感器簡(jiǎn)介數(shù)字溫度傳感器簡(jiǎn)介(1)DS18B20基本情況DS1820具有以下基本特性:只要有一個(gè)I/O腳即可實(shí)現(xiàn)溫度的采集,實(shí)際應(yīng)用中不需要外部任何元器件即可實(shí)現(xiàn)測(cè)溫
11、;測(cè)量溫度范圍在55到125 之間;數(shù)字溫度計(jì)的分辨率用戶可以從9位到12位選擇,精度為0.5C。內(nèi)部有E2PROM,用戶可以進(jìn)行溫度上、下限報(bào)警設(shè)置;(2)DS18B20的引腳功能描述DS18B20的外觀如圖所示。GND:地信號(hào);DQ:數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源。VDD:外接供電電源輸入端。當(dāng)工作于寄生電源時(shí),此引腳必須接地。(3)DS18B20數(shù)據(jù)輸出格式 DS18B20讀出的溫度結(jié)果的數(shù)據(jù)為兩個(gè)字節(jié),用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供。因此,在系統(tǒng)中要將得到溫度值數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,才能用于顯示。 高8位中的低3位D6D5D4和
12、低8位中的高4位D3D2D1D0構(gòu)成溫度的整數(shù)部分。低8位中的D-1D-2D-3D-4為 溫 度 的 小 數(shù) 部 分 ( 為0.5+0.25+0.125+0.0625)。溫度值數(shù)據(jù)輸出高位字節(jié) 低位字節(jié)數(shù)據(jù)輸出(十六進(jìn)制)+12500000 111 1101 000007D0H+8500000 101 0101 00000550H+25.062500000 001 1001 00010191H+10.12500000 000 1010 001000A2H+0.500000 000 0000 10000008H000000 000 0000 00000000H-0.511111 111 1111
13、 1000FFF8H-10.12511111 111 0101 1101FF5DH-25.062511111 110 0110 1111FE6FH-5511111 100 1001 0000FC90HDS18B20的溫度舉例的溫度舉例(4)DS18B20相關(guān)操作命令 使用DS18B20測(cè)溫時(shí),首先要對(duì)DS18B20進(jìn)行初始化,由主機(jī)發(fā)出的復(fù)位脈沖(下拉500uS,然后釋放),DS18B20收到信號(hào)后等待1660uS,然后發(fā)出應(yīng)答脈沖(60240uS的低電平脈沖)。當(dāng)DS18B20發(fā)出響應(yīng)主機(jī)的應(yīng)答脈沖時(shí),即向主機(jī)表明DS18B20已處在總線上并且準(zhǔn)備工作。 DS18B20相關(guān)操作命令有兩類,一
14、類是ROM命令,通過(guò)每個(gè)器件64-bit的ROM碼,使主機(jī)指定某一特定器件(如果有多個(gè)器件掛在總線上)與之進(jìn)行通信。另一類是功能命 令 , 通 過(guò) 功 能 命 令 對(duì) D S 1 8 B 2 0 的Scratchpad存儲(chǔ)器進(jìn)行讀/寫,或者啟動(dòng)溫度轉(zhuǎn)換。ROM及功能命令及功能命令指令約定代碼功 能讀ROM0 x33讀DSl8820溫度傳感器ROM中的編碼(即64位地址)匹配ROM0 x55發(fā)出此命令之后,接著發(fā)出64位ROM編碼,訪問(wèn)單總線上與該編碼相對(duì)應(yīng)的DS18B20使之做出響應(yīng),為下一步對(duì)該DSl8820的讀寫作準(zhǔn)備搜索ROM0 xF0用于確定掛接在同一總線上DSl8820的個(gè)數(shù)和識(shí)別6
15、4位ROM地址。為操作各器件作好準(zhǔn)備跳過(guò)ROM0 xCC忽略64位ROM地址,直接向DSl8820發(fā)溫度變換命令。適用于單只DSl8820工作報(bào)警搜索命令0 xEC執(zhí)行后只有溫度超過(guò)設(shè)定值上限或下限的芯片才做出響應(yīng)指令約定代碼功 能溫度變換0 x44啟動(dòng)DS18B20進(jìn)行溫度轉(zhuǎn)換,12位轉(zhuǎn)換時(shí)最長(zhǎng)為1750 ms(9位為93.75 ms)。結(jié)果存入內(nèi)部9字節(jié)RAM中讀高速緩存0 xBE讀內(nèi)部RAM中9字節(jié)的內(nèi)容寫高速緩存 0 x4E發(fā)出向內(nèi)部RAM的字節(jié)2、3寫上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是傳送兩字節(jié)的數(shù)據(jù)復(fù)制高速緩存0 x48將RAM中字節(jié)2、3的內(nèi)容復(fù)制到EEPROM中重調(diào)EEP
16、ROM 0XB8將EEPROM中內(nèi)容恢復(fù)到RAM中的第3、4字節(jié)讀供電方式0XB4寄生供電時(shí)DS18B20發(fā)送0,外接電源供電時(shí)DS18B20發(fā)送1 DS18B20使用注意事項(xiàng) DS18B20雖然具有諸多優(yōu)點(diǎn),但在使用時(shí)也應(yīng)注意以下幾個(gè)問(wèn)題: 于DS18B20與微處理器間采用串行數(shù)據(jù)傳送方式,因此,在對(duì)DS18B20進(jìn)行讀寫編程時(shí),必須嚴(yán)格地保證讀寫時(shí)序,否則,將無(wú)法正確讀取測(cè)溫結(jié)果。對(duì)于在單總線上所掛DS18B20的數(shù)量問(wèn)題,若單總線上所掛DSl8:B20超過(guò)8個(gè)時(shí),則需要解決單片機(jī)的總線驅(qū)動(dòng)問(wèn)題,這一點(diǎn),在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。連接DS18B20的總線電纜是有長(zhǎng)度限制的。當(dāng)采用
17、普通信號(hào)電纜且其傳輸長(zhǎng)度超過(guò)50 m時(shí),讀取的測(cè)溫?cái)?shù)據(jù)將發(fā)生錯(cuò)誤。而將總線電纜改為雙絞線帶屏蔽電纜時(shí),正常通訊距離可達(dá)150 m,如采用帶屏蔽層且每米絞合次數(shù)更多的雙絞線電纜,則正常通信距離還可以進(jìn)一步加長(zhǎng)。這種情況主要是由總線分布電容使信號(hào)波形產(chǎn)生畸變?cè)斐傻?。因此,在用DSl8B20進(jìn)行長(zhǎng)距離測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要充分考慮總線分布電容和阻抗匹配問(wèn)題。在DS18B20測(cè)溫程序設(shè)計(jì)中,當(dāng)向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待Dsl8820的返回信號(hào)。這樣,一旦某個(gè)DS18B20接觸不好或斷線,在程序讀該DSl8B20時(shí)就沒(méi)有返回信號(hào),從而使程序進(jìn)入死循環(huán)。因此,在進(jìn)行DSl8B20硬件連接和
18、軟件設(shè)計(jì)時(shí),應(yīng)當(dāng)加以注意。如果單片機(jī)對(duì)多只DS18B20進(jìn)行操作,需要先執(zhí)行讀ROM命令,逐個(gè)讀出其序列號(hào),然后再發(fā)出匹配命令,就可以進(jìn)行溫度轉(zhuǎn)換和讀寫操作了。單片機(jī)只對(duì)一只DS18B20進(jìn)行操作,一般不需要讀取ROM編碼以及匹配ROM編碼,只要用跳過(guò)ROM命令,就可以進(jìn)行溫度轉(zhuǎn)換和讀寫操作。溫度傳感器DS18B20驅(qū)動(dòng)程序軟件包 由于DS18B20的驅(qū)動(dòng)過(guò)程象LCD驅(qū)動(dòng)一樣,都是程式化的程序軟件,所以為方便使用將其編成名為DS18B20_drive.h的軟件包文件。 DS18B20_drive.h DS18B20_drive.h具體內(nèi)容如下:具體內(nèi)容如下: #define uchar unsigned char #define uint unsigned int sbit DQ=P13; /定義DSl8820端口DQ uchar yes0;*以下是延時(shí)函數(shù)* void Delay(uint num) while( -num); *以下是DSl8820初始化函數(shù)。若返回值為0,則DSl8820正常;若返回值為1,則不正常 Init DSl8820( ) DO=l;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學(xué)學(xué)生社團(tuán)財(cái)務(wù)管理制度
- 企業(yè)招聘與選拔標(biāo)準(zhǔn)制度
- 企業(yè)財(cái)務(wù)預(yù)算與審核制度
- 2026年律師資格考試邏輯推理與法律實(shí)務(wù)題集
- 2026年體育賽事組織與管理規(guī)范題庫(kù)
- 2026年虛擬化技術(shù)專家認(rèn)證考試題及答案詳解
- 2026年IT項(xiàng)目管理師專業(yè)知識(shí)與實(shí)踐技能認(rèn)證題集
- 2025年煤矸石山生態(tài)修復(fù)合同
- 加油站安全事故報(bào)告與處理制度內(nèi)容
- 2025年鄭州智能科技職業(yè)學(xué)院馬克思主義基本原理概論期末考試模擬題帶答案解析(必刷)
- 2026屆南通市高二數(shù)學(xué)第一學(xué)期期末統(tǒng)考試題含解析
- 寫字樓保潔培訓(xùn)課件
- 2026中國(guó)電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會(huì)成熟人才招聘?jìng)淇碱}庫(kù)有完整答案詳解
- 計(jì)量宣貫培訓(xùn)制度
- 2026中國(guó)電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會(huì)成熟人才招聘?jìng)淇碱}庫(kù)有答案詳解
- 《老年服務(wù)禮儀與溝通技巧》-《老年服務(wù)禮儀與溝通技巧》-老年服務(wù)禮儀與溝通技巧
- 2026.05.01施行的中華人民共和國(guó)漁業(yè)法(2025修訂)課件
- 原始股認(rèn)購(gòu)協(xié)議書
- 嚴(yán)肅財(cái)經(jīng)紀(jì)律培訓(xùn)班課件
- 上海市復(fù)旦大學(xué)附中2026屆數(shù)學(xué)高一上期末質(zhì)量檢測(cè)試題含解析
- 企業(yè)員工食堂營(yíng)養(yǎng)搭配方案
評(píng)論
0/150
提交評(píng)論