




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)原理及應(yīng)用教程 (C語言版)第8章 單片機(jī)系統(tǒng)(xtng)擴(kuò)展接口技術(shù)主 編:周國運(yùn)(u yn)中國水利水電出版社共九十頁第8章 單片機(jī)系統(tǒng)(xtng)擴(kuò)展接口技術(shù)目 錄 8.1 接口的基本概念 8.2 用并行方式擴(kuò)展數(shù)據(jù)存儲器 8.3 用簡單(jindn)芯片擴(kuò)展并行I/O口 8.4 用可編程芯片擴(kuò)展并行I/O口 8.5 用串行方式擴(kuò)展數(shù)據(jù)存儲器共九十頁 I/O接口是單片機(jī)與外部設(shè)備、外部存儲器、與其它單片機(jī)/計算機(jī)連接的橋梁,是單片機(jī)應(yīng)用系統(tǒng)中非常重要的部分。 本章主要介紹接口的基本概念,并行I/O口的擴(kuò)展(包括用簡單門電路擴(kuò)展和使用專用(zhunyng)可編程芯片擴(kuò)展),數(shù)據(jù)存儲器
2、的擴(kuò)展(包括通過并行口擴(kuò)展SRAM和通過IIC方式擴(kuò)展EEPROM)。 本章是單片機(jī)應(yīng)用系統(tǒng)接口的基礎(chǔ)。共九十頁8.1 接口(ji ku)的基本概念主要內(nèi)容 8.1.1 單片機(jī)應(yīng)用系統(tǒng)構(gòu)成(guchng) 8.1.2 接口的概念 8.1.3 接口的基本功能 8.1.4 接口的結(jié)構(gòu) 8.1.5 端口及其編址共九十頁8.1.1 單片機(jī)應(yīng)用(yngyng)系統(tǒng)構(gòu)成 一般的單片機(jī)應(yīng)用系統(tǒng)如圖8-1所示,中間是單片機(jī)(包括外部(wib)的存儲器),最左邊是被檢測的設(shè)備,最右邊是被控制的設(shè)備。共九十頁8.1.2 接口(ji ku)的概念 使CPU和輸入/輸出設(shè)備之間,能夠(nnggu)完成數(shù)據(jù)交換的中間電
3、路就叫做I/O接口,簡稱接口,也叫做接口適配器。共九十頁8.1.3 接口(ji ku)的基本功能單片機(jī)接口(ji ku)的主要功能如下:1)信號與信息格式轉(zhuǎn)換功能。2)數(shù)據(jù)緩沖功能。3)接受命令功能。4)提供狀態(tài)信息功能。5)中斷功能。共九十頁8.1.4 接口(ji ku)的結(jié)構(gòu) 接口的結(jié)構(gòu)和接口的功能是對應(yīng)的,一般包括讀寫控制邏輯,數(shù)據(jù)緩沖器,數(shù)據(jù)寄存器,控制寄存器和狀態(tài)寄存器等部分(b fen)組成。共九十頁8.1.5 端口及其編址 1端口 每個芯片內(nèi)部可被訪問的寄存器,我們稱之為端口。每一個端口都要分配一個地址,以實(shí)現(xiàn)對芯片內(nèi)部不同寄存器的選擇。這個地址就叫做端口地址,通常(tngchn
4、g)也叫接口地址。 端口地址是由兩部分組成的,端口地址的高位是片選,即實(shí)現(xiàn)對芯片的選擇;端口地址的低位完成對芯片內(nèi)部寄存器的選擇。共九十頁 2片選芯片的選擇有兩種方法: 1)線選法所謂線選法,就是直接以系統(tǒng)的地址線作為芯片的片選信號,為此(wi c)只需把用到的地址線與芯片的片選端直接相連即可。 2)譯碼法所謂譯碼法,就是使用地址譯碼器對系統(tǒng)的片外地址進(jìn)行譯碼,以其譯碼輸出作為存儲器芯片的片選信號。8.1.5 端口及編址共九十頁 3芯片(xn pin)內(nèi)部寄存器的選擇 地址總線的低位連接到芯片,由芯片內(nèi)部的地址譯碼電路和讀寫控制邏輯共同完成對芯片內(nèi)部寄存器的選擇。8.1.5 端口及編址共九十頁
5、8.2 用并行方式擴(kuò)展(kuzhn)數(shù)據(jù)存儲器主要(zhyo)內(nèi)容8.2.1 MCS-51單片機(jī)三總線結(jié)構(gòu) 8.2.2 常用的數(shù)據(jù)存儲器8.2.3 單片機(jī)訪問片外RAM的操作時序8.2.4 擴(kuò)展數(shù)據(jù)存儲器共九十頁8.2.1 MCS-51單片機(jī)三總線結(jié)構(gòu) 通常(tngchng),微機(jī)的CPU外部都有單獨(dú)的并行地址總線、數(shù)據(jù)總線、控制總線。MCS-51單片機(jī)由于引腳的限制,數(shù)據(jù)總線和地址總線是復(fù)用的。 地址需要鎖存:為了能把復(fù)用的數(shù)據(jù)總線和地址總線分離出來,以便同外部的芯片正確的連接,需要在單片機(jī)的外部增加地址鎖存器,從而構(gòu)成與一般CPU相類似的三總線結(jié)構(gòu),如圖8-1所示。共九十頁P(yáng)2ALE89C
6、52P0PSENWRRD地址(dzh)鎖存器地址總線數(shù)據(jù)總線控制(kngzh)總線A8A15A0A7D0D78.2.1 MCS-51單片機(jī)三總線結(jié)構(gòu)圖8-4 89C52擴(kuò)展的三總線共九十頁圖8-5 地址總線擴(kuò)展(kuzhn)電路8.2.1 MCS-51單片機(jī)三總線結(jié)構(gòu) 地址鎖存器74HC573與單片機(jī)P0口連接(linji),擴(kuò)展地址總線,如圖8-2所示。ALEP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0LE OED7 Q7D6 Q6D5 Q5D4 Q4D3 Q3D2 Q2D1 Q1D0 Q0A7A6A5A4A3A2A1A089C5274HC573共九十頁 74HC573簡
7、介74HC573是有輸出三態(tài)門的電平允許8位鎖存器。引腳信號如下(rxi): OE:輸出允許端,為0時芯片有效。LE:鎖存控制端,高電平時,鎖存器的數(shù)據(jù)輸出端Q的狀態(tài),與數(shù)據(jù)輸入端D相同,即鎖存器是透明的;當(dāng)LE端從高電平返回到低電平時(下降沿后),輸入端的數(shù)據(jù)就被鎖存在鎖存器中,數(shù)據(jù)輸入端D的變化不再影響Q端。8.2.1 MCS-51單片機(jī)三總線結(jié)構(gòu)共九十頁8.2.2 常用(chn yn)的數(shù)據(jù)存儲器 數(shù)據(jù)存儲器即隨機(jī)存取存儲器(Random Access Memory,RAM),用于存放可隨時修改的數(shù)據(jù)信息。RAM為易失性存儲器,斷電后所存信息立即消失。 按其工作方式,RAM又分為靜態(tài)隨機(jī)
8、存取存儲器(SRAM)和動態(tài)隨機(jī)存取存儲器(DRAM)兩種。靜態(tài)RAM只要電源加上,所存信息就能可靠保存。而動態(tài)RAM則需要刷新(shu xn)。單片機(jī)使用的主要是靜態(tài)RAM。共九十頁 MCS-51系列單片機(jī)的數(shù)據(jù)存儲器與程序存儲器的地址空間是互相獨(dú)立的,其片外數(shù)據(jù)存儲器的空間可達(dá)64KB,而片內(nèi)數(shù)據(jù)存儲器的空間只有128B或256B。如果片內(nèi)的數(shù)據(jù)存儲器不夠用時,則需進(jìn)行數(shù)據(jù)存儲器的擴(kuò)展。 在單片機(jī)系統(tǒng),擴(kuò)展數(shù)據(jù)存儲器多用用靜態(tài)(jngti)SRAM芯片。8.2.2 常用(chn yn)的數(shù)據(jù)存儲器共九十頁 1常用的靜態(tài)SRAM芯片 常見的靜態(tài)SRAM芯片有6264(8K8位)、62256(
9、32K8位)、628128(128K8位)等。其中靜態(tài)SRAM芯片6264如圖8-6所示。6264引腳含義如下: A0A12:地址信號引腳。 D0D7:數(shù)據(jù)信號引腳。 CE、CS:片選信號引腳,必須(bx)同時有效。 WE:寫允許信號引腳。 OE:讀允許信號引腳。 NC:空腳。8.2.2 常用(chn yn)的數(shù)據(jù)存儲器共九十頁 圖8-6 靜態(tài)(jngti)SRAM芯片62648.2.2 常用(chn yn)的數(shù)據(jù)存儲器共九十頁 2擴(kuò)展存儲器所需芯片數(shù)目(shm)的確定 1)所選存儲器芯片字長與單片機(jī)字長一致所需芯片數(shù)目按下式確定: 芯片數(shù)目=系統(tǒng)擴(kuò)展容量/存儲器芯片容量2)所選芯片字長與單片
10、機(jī)字長不一致則需字?jǐn)U展,所需芯片數(shù)目按下式確定: 芯片數(shù)目=(系統(tǒng)擴(kuò)展容量/存儲器芯片容量)(系統(tǒng)字長/存儲器芯片字長)8.2.2 常用(chn yn)的數(shù)據(jù)存儲器共九十頁8.2.3 單片機(jī)訪問(fngwn)片外RAM的操作時序 1片外RAM讀操作時序 在S1狀態(tài)P2節(jié)拍,ALE信號由低變高,讀周期開始。在S2狀態(tài),單片機(jī)把地址的低8位從P0口輸出,地址的高8位從P2口輸出。 在S2狀態(tài)P2節(jié)拍,ALE信號由高變低,把低8位地址鎖存到外部的鎖存器里,而高8位地址一直由P2口輸出。在S3狀態(tài), P0口浮空,外部鎖存器輸出低8位地址。 在S4狀態(tài), 有效,片外RAM經(jīng)過延遲后,把數(shù)據(jù)放在總線上,通
11、過P0口輸入單片機(jī)。當(dāng) 返回(fnhu)高電平后,P0口浮空,讀周期結(jié)束。共九十頁8.2.3 單片機(jī)訪問片外RAM的操作(cozu)時序共九十頁 2片外RAM寫操作時序 寫操作時序與讀操作時序,基本過程類似。不同之處主要在于在S3狀態(tài)P2節(jié)拍,由單片機(jī)通過P0口輸出(shch)數(shù)據(jù)。在S4狀態(tài),WE 有效后,由片外RAM從總線上讀取數(shù)據(jù)。8.2.3 單片機(jī)訪問片外RAM的操作(cozu)時序共九十頁 8.2.3 單片機(jī)訪問片外RAM的操作(cozu)時序共九十頁8.2.4 擴(kuò)展(kuzhn)數(shù)據(jù)存儲器 存儲器擴(kuò)展往往需要多個存儲器芯片,這些存儲器芯片直接并聯(lián)在擴(kuò)展的系統(tǒng)總線上。其中低位的地址線
12、直接和每一個芯片的地址引腳相連。高位地址線是作為片選信號線來使用(shyng)的。如果空閑的高位地址線較多,可以使用線選法連接;否則需要使用譯碼器進(jìn)行譯碼法連接。共九十頁 下面以靜態(tài)SRAM芯片6264擴(kuò)展16KB片外數(shù)據(jù)存儲器為例,介紹(jisho)一下89C52單片機(jī)系統(tǒng)的并行存儲器擴(kuò)展,連線如下圖所示。8.2.4 擴(kuò)展(kuzhn)數(shù)據(jù)存儲器共九十頁 根據(jù)公式8-1可得: 芯片數(shù)目=16KB/8KB=2片。 6264需要13位地址,由P0提供低8位地址,P2.0P2.4提供高5位地址。P2口空出的口線較多,因此可選用線選法進(jìn)行片選,兩個芯片分別由P2.6、P2.7作為片選。 其地址范圍分
13、別為:10 x0,0000,0000,0000B10 x1,1111,1111,1111B、01x0,0000,0000,0000B1x1,1111,1111,1111B,“x”表示(biosh)可以取0或1,取1,用十六進(jìn)制數(shù)表示為:A000HBFFFH和6000H7FFFH。8.2.4 擴(kuò)展(kuzhn)數(shù)據(jù)存儲器共九十頁8.3 簡單芯片(xn pin)并行I/O口擴(kuò)展主要內(nèi)容8.3.1 擴(kuò)展I/O口常用(chn yn)的門電路芯片 8.3.2 簡單擴(kuò)展I/O口舉例共九十頁8.3.1 擴(kuò)展(kuzhn)I/O口常用的門電路芯片 如果需要單向并行(bngxng)數(shù)據(jù)傳輸可以選用單向總線驅(qū)動器
14、74HC244,該還帶有三態(tài)控制,能實(shí)現(xiàn)總線緩沖和隔離;如果需要雙向并行數(shù)據(jù)傳輸可以選用雙向總線驅(qū)動器74HC245。74HC245也是三態(tài)的,有一個方向控制端DIR。 DIR=1時輸出(AnBn),DIR=0時輸入(AnBn),如圖8-9所示。共九十頁圖8-10 單向緩沖(hunchng)總線驅(qū)動器74HC244和雙向緩沖總線驅(qū)動器74HC2458.3.1 擴(kuò)展I/O口常用(chn yn)的門電路芯片共九十頁8.3.2 簡單(jindn)擴(kuò)展I/O口舉例 例8-1 利用74系列芯片實(shí)現(xiàn)單片機(jī)P0口讀8位開關(guān)狀態(tài)(zhungti)并控制對應(yīng)的8位發(fā)光二極管發(fā)光。 如圖8-10所示,可通過74H
15、C573和74HC244芯片實(shí)現(xiàn)單片機(jī)一個并口同時輸入、輸出。共九十頁圖8-10 使用(shyng)74HC244和74HC573擴(kuò)展并口8.3.2 簡單(jindn)擴(kuò)展I/O口舉例共九十頁程序如下:unsigned char xdata pt1 _at_ 0 x7fff;/定義設(shè)備變量,端口地址是0 x7fff,P2.7低電平void main()unsigned char data tmp1, tmp2=0 xff;while(1)/循環(huán)(xnhun)tmp1=pt1;/輸入數(shù)據(jù)if (tmp1!=tmp2) /輸入則輸出數(shù)據(jù)tmp2=tmp1;pt1=tmp1;設(shè)備變量:“以三總線方式
16、連接的設(shè)備對應(yīng)的變量”8.3.2 簡單擴(kuò)展(kuzhn)I/O口舉例共九十頁8.4 用可編程芯片擴(kuò)展(kuzhn)并行I/O口主要內(nèi)容8.4.1 8255A的結(jié)構(gòu)8.4.2 8255A的引腳定義8.4.3 8255A的控制字8.4.4 8255A的工作方式(fngsh)8.4.5 8255A的應(yīng)用舉例共九十頁8.4.1 8255A的結(jié)構(gòu)(jigu) 8255A是一種通用的可編程并行I/O接口芯片,它擁有三個并行I/O口,可通過編程設(shè)置多種工作方式。 8255A主要由6個部分組成:總線緩沖(hunchng)、讀寫控制邏輯、A組與B組I/O口控制邏輯,以及A口、B口、C口等部分組成,如圖8-11所
17、示。共九十頁圖8-11 8266A內(nèi)部結(jié)構(gòu)8.4.1 8255A的結(jié)構(gòu)(jigu)共九十頁1.數(shù)據(jù)總線緩沖器 這是一個雙向三態(tài)的8位數(shù)據(jù)緩沖器,它是8255A與計算機(jī)系統(tǒng)數(shù)據(jù)總線的接口。輸入輸出的數(shù)據(jù)、CPU輸出的控制字以及CPU輸入的狀態(tài)信息(xnx)都是通過這個緩沖器傳送的。2.讀/寫控制邏輯 用來控制把CPU輸出的控制字或數(shù)據(jù)送至相應(yīng)端口,也由它來控制把狀態(tài)信息或輸入數(shù)據(jù)通過相應(yīng)的端口送到CPU。8.4.1 8255A的結(jié)構(gòu)(jigu)共九十頁3.數(shù)據(jù)(shj)端口 8255A的三個數(shù)據(jù)端口A、B、C分成A、B兩組。PA和PC4PC7屬于A組;PC0PC3和PB屬于B組。4.A組和B組控
18、制部件 A組控制電路控制A口和C口上半部,B組控制電路控制B口和C口下半部。8.4.1 8255A的結(jié)構(gòu)(jigu)共九十頁8.4.2 8255A的引腳定義(dngy) 1面向單片機(jī)的引腳信號 D0-D7:8位、雙向、三態(tài)RESET:復(fù)位(f wi),高有效CS:片選,低電平有效。RD:讀信號,低電平有效。WR:寫信號,低電平有效。A1,A0:端口選擇信號共九十頁P(yáng)A0PA7:A組數(shù)據(jù)信號,用來連接外設(shè)。PB0PB7:B組數(shù)據(jù)信號,用來連接外設(shè)。PC0PC7:C組數(shù)據(jù)信號,用來連接外設(shè)或作為控制(kngzh)信號。8.4.2 8255A的引腳定義(dngy)2面向外設(shè)的引腳信號共九十頁8.4.
19、3 8255A的控制(kngzh)字8255A的控制字有兩個:工作(gngzu)方式控制字、端口C置1/清0控制字兩個控制字是通過同一個端口寫入。共九十頁1工作方式(fngsh)控制字8255A有三種工作方式,可以編程設(shè)置。 方式0:簡單方式(直接不握手)輸入或輸出,端口A,B,C三個均可。 方式1:選通、中斷方式輸入或輸出,端口A ,B兩個均可。 方式2:選通、中斷方式雙向輸入/輸出,只有端口A才有。8.4.3 8255A的控制(kngzh)字共九十頁8255A的工作方式控制字各位含義見表8-4。D7:特征位。1是指向工作方式控制字,0是指向C口置1清0控制字。D6D5:A口工作方式設(shè)置。0
20、0、01、1xD4:A口傳輸方向設(shè)置。0是輸出(shch),1是輸入。D3:C口高4位傳輸方向設(shè)置D2:B口工作方式設(shè)置。00、01D1:B口傳輸方向D0:C口低4位方向8.4.3 8255A的控制(kngzh)字共九十頁2端口C置1/清0控制(kngzh)字 8255A的端口C具有位控制功能,即端口C的8位中的任一位都可通過單片機(jī)向8255A的控制寄存器寫入一個端口C置1/清0控制字來置1或清0,而端口C中其他位的狀態(tài)不變。8255A的端口C置1/清0控制字各位含義見表8-5。8.4.3 8255A的控制(kngzh)字共九十頁8255A的端口C置1/清0控制字不會影響(yngxing)PA
21、、PB口的工作方式。8.4.3 8255A的控制(kngzh)字D7:特征位。1是指向工作方式控制字,0是指向C口置1清0控制字。D6D5D4 :未用。D3D2D1 :C口位選擇。000、001、111D0:對C口指定位設(shè)置的值。共九十頁8.4.4 8255A工作(gngzu)方式方式0是常用(chn yn)的工作方式,只有如下4種常用的情況:1)3個8位口都設(shè)置為輸出口,控制字為:1000 0000B=80H,C語言值為0 x80。2)3個8位口都設(shè)置為輸入口,控制字為:1001 1011B=9BH,C語言值為0 x9b。3)PA、PB為輸出,PC為輸入,控制字為:1000 1001B=89
22、H,C語言值為0 x89。4)PA、PB為輸入,PC為輸出,控制字為:1001 0010B=92H,C語言值為0 x92。共九十頁8.4.5 8255A應(yīng)用(yngyng)舉例 例8-2 使用8255A的PA、PC端口接16發(fā)光二極管顯示(xinsh)流水燈,如圖8-14所示。單片機(jī)的P2.7作為8255A的片選信號,P2.5、P2.6作為8255A的端口選擇信號。 低13位地址沒有使用可取任意值,取為1,根據(jù)表8-2,可確定P2.7、P2.6、P2.5的取值,從而確定PA、PB、PC和控制端口的地址分別為0 x1fff、0 x3fff、0 x5fff、0 x7fff。共九十頁8.4.5 82
23、55A的應(yīng)用(yngyng)舉例共九十頁8.4.5 8255A的應(yīng)用(yngyng)舉例共九十頁8.4.5 8255A的應(yīng)用(yngyng)舉例C語言程序(chngx)如下:#include/包含內(nèi)部函數(shù)頭文件unsigned char xdata PA _at_ 0 x1fff; /A口unsigned char xdata PC _at_ 0 x5fff;/ C口unsigned char xdata CW _at_ 0 x7fff; /控制口void delay10 xms(unsigned char data x)/延時函數(shù)(振蕩頻率為12MHz)unsigned int data i
24、;while(x-) for(i=0;i830;i+);共九十頁8.4.5 8255A的應(yīng)用(yngyng)舉例void main()/主函數(shù)unsigned int data dd=0 xfffc;/低電平亮CW =0 x80;/控制字,3個口均輸出(shch)while(1)/實(shí)現(xiàn)流水燈PA=dd&0 xff;/從PA送出低8位PC=dd/0 x100;/從PC送出高8位dd=_irol_(dd,1);/循環(huán)左移1位delay10 xms(100);/延時1s共九十頁8.5 用串行方式(fngsh)擴(kuò)展數(shù)據(jù)存儲器主要內(nèi)容 8.5.1 I2C總線(zn xin) 8.5.2 I2C總線擴(kuò)展存
25、儲器共九十頁8.5 用串行方式擴(kuò)展(kuzhn)數(shù)據(jù)存儲器 串行總線系統(tǒng)擴(kuò)展技術(shù)是新一代單片機(jī)技術(shù)發(fā)展的一個顯著特點(diǎn)。相對于并行總線接口,串行總線接口有著占用I/O口線少(一般24根),易于實(shí)現(xiàn)應(yīng)用系統(tǒng)軟硬件的模塊化、標(biāo)準(zhǔn)化。 隨著串行總線接口技術(shù)(SPI、I2C等)和各種串行接口芯片(xn pin)的發(fā)展,串行總線接口技術(shù)越來越受到人們的推崇。本節(jié)討論I2C總線的時序、操作方法,以及I2C總線在E2PROM 24Cxx中的應(yīng)用共九十頁8.5.1 I2C總線(zn xin) I2C總線是Philips公司推出的芯片間串行傳輸總線。 I2C總線是二線制,采用(ciyng)器件地址的硬件設(shè)置方法,
26、通過軟件尋址完全避免了器件的片選線尋址方法,從而使硬件系統(tǒng)具有簡單靈活的擴(kuò)展方法。 共九十頁 1I2C總線的特點(diǎn) I2C總線最主要的優(yōu)點(diǎn)是其簡單性和有效性。 I2C總線的特點(diǎn):其接口直接集成在組件之上,因此I2C總線占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本。 I2C總線的其它優(yōu)點(diǎn):它支持多主控(Multimastering),其中任何能夠進(jìn)行發(fā)送和接收(jishu)的設(shè)備(節(jié)點(diǎn))都可以成為主控器。8.5.1 I2C總線(zn xin)共九十頁圖8-15 典型I2C總線(zn xin)系統(tǒng)示意圖單片機(jī)AA/D、D/A轉(zhuǎn)換器專用集成電路靜態(tài)RAM或ROMLCD顯示器單片
27、機(jī)BSDASCL8.5.1 I2C總線(zn xin) I2C總線的主控器:一個主控器能夠控制信號的傳輸和時鐘頻率。當(dāng)然,在任何時間點(diǎn)上只能有一個主控器。如圖8-15所示。共九十頁 I2C總線支持多主和主從兩種工作模式多主方式:通過硬件和軟件的仲裁,主控器取得總線控制權(quán)。 主從方式:從器件地址包括器件編號地址和引腳地址兩部分(b fen),器件編號地址由I2C總線委員會分配,引腳地址由外界電平的高低決定。 器件內(nèi)部子地址:當(dāng)器件內(nèi)部有連續(xù)的子地址空間時,對這些空間進(jìn)行連續(xù)讀寫,子地址會自動加1。如存儲器。8.5.1 I2C總線(zn xin)共九十頁 CPU發(fā)出的控制信號:分為地址碼和控制量兩
28、部分。 地址碼:用來選址,即接通需要控制的電路,確定控制的種類。 控制量:決定該調(diào)整的類別(如對比度、亮度(lingd)等)及需要調(diào)整的量。這樣,各控制電路雖然掛在同一條總線上,卻彼此獨(dú)立,互不相關(guān)。8.4.2 I2C總線(zn xin)共九十頁I2C總線的工作原理(1)I2C總線對數(shù)據(jù)線上信號的定義(dngy):1)總線空閑狀態(tài):時鐘信號線和數(shù)據(jù)信號線均為高電平。2)起始信號:即啟動一次傳輸,時鐘信號線是高電平時,數(shù)據(jù)信號線由高變低。SDASCL起始信號結(jié)束(jish)信號數(shù)據(jù)位信號數(shù)據(jù)位8.5.1 I2C總線共九十頁3)停止信號:即結(jié)束一次傳輸,時鐘信號線是高電平時,數(shù)據(jù)信號線由低變高。4
29、)數(shù)據(jù)位信號:時鐘信號線是低電平時,可以改變(gibin)數(shù)據(jù)信號線電位;時鐘信號線是高電平時,應(yīng)保持?jǐn)?shù)據(jù)信號線上電位不變,即時鐘是高電平時數(shù)據(jù)有效。5)應(yīng)答信號:占1位,數(shù)據(jù)接收者接收1字節(jié)數(shù)據(jù)后,應(yīng)向數(shù)據(jù)發(fā)出者發(fā)送一應(yīng)答信號。低電平為應(yīng)答,繼續(xù)發(fā)送;高電平為非應(yīng)答,結(jié)束發(fā)送。6)控制位信號:占1位,主IIC設(shè)備發(fā)出的讀寫控制信號,高為讀、低為寫(對主IIC設(shè)備而言)。控制位在尋址字節(jié)中。8.5.1 I2C總線(zn xin)共九十頁7)地址信號:為從機(jī)地址,占7位,如下表所示,稱之為“尋址字節(jié)(z ji)”,各字段含義如下:器件地址(dzh)(DA3-DA0):是IIC總線接口器件固有的地
30、址編碼,由器件生產(chǎn)廠家給定。如IIC總線EEPROM AT24C的器件地址為1010等。引腳地址(A2、A1、A0):由IIC總線接口器件的地址引腳A2、A1、A0的高低來確定,接電源者為1,接地者為0。讀寫控制位(R/ W):1表示主設(shè)備讀,0表示主設(shè)備寫。7位地址和讀寫控制位組成1個字節(jié)。D7D6D5D4D3D2D1D0DA3DA2DA1DA0A2A1A0R/ W8.5.1 I2C總線共九十頁 2I2C總線的時序 I2C總線的信號:I2C總線在傳送數(shù)據(jù)過程中共有三種類型(lixng)信號,分別是:開始信號、結(jié)束信號和應(yīng)答信號。 I2C總線 開始信號:SCL為高電平時,SDA由高電平向低電平
31、跳變,開始傳送數(shù)據(jù)。 結(jié)束信號:SCL為低電平時,SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。 應(yīng)答信號:接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。8.5.1 I2C總線(zn xin)共九十頁SDASCL 開始信號(xnho)允許數(shù)據(jù)變化 允許數(shù)據(jù)變化 允許數(shù)據(jù)變化 結(jié)束信號圖8-16 I2C總線(zn xin)的時序8.5.1 I2C總線 如圖8-16所示,為I2C總線的一般時序。即起始信號、結(jié)束信號、允許數(shù)據(jù)線改變的條件等。共九十頁3I2C總線的數(shù)據(jù)傳輸過程 數(shù)據(jù)傳輸時,主機(jī)先發(fā)送啟動信號和時鐘信號,隨后發(fā)送尋址字節(jié)來尋址被控器件,并規(guī)定數(shù)
32、據(jù)傳送方向(fngxing)。 尋址字節(jié)由7位從機(jī)地址(D7D1)和1位方向位(D0,讀0/寫1)組成。 從機(jī)地址包括器件編號地址和引腳地址兩部分。8.5.1 I2C總線(zn xin)共九十頁R/DA3DA2DA1DA0A2A1A0器件識別碼器件識別碼如:RTC 1101允許在公用的I2C總線EEPROM 1010上同時接8個同類器件I2C總線器件(qjin)的7位從器件(機(jī))地址:8.5.1 I2C總線(zn xin)共九十頁 從機(jī)對地址的響應(yīng):當(dāng)主機(jī)發(fā)送尋址字節(jié)時,總線上所有器件都將其中的高7位地址與自己的比較,若相同,則該器件根據(jù)讀/寫位確定是從發(fā)送器還是從接收器。 對從接收器:在尋址
33、字節(jié)之后,主控發(fā)送器通過SDA線向從接收器發(fā)送數(shù)據(jù),數(shù)據(jù)發(fā)送完畢后發(fā)送終止信號,以結(jié)束(jish)傳送過程。 對從發(fā)送器:在尋址字節(jié)之后,主控接收器通過SDA線接收被控發(fā)送器的發(fā)送數(shù)據(jù)。8.5.1 I2C總線(zn xin)共九十頁 每傳輸一位數(shù)據(jù),都有一個時鐘脈沖相對應(yīng)。時鐘脈沖不必是周期性的,它的時鐘間隔可以不同。 I2C總線的備用狀態(tài)(“非忙”狀態(tài)):SDA和SCL都為“1”;只有當(dāng)總線處于“非忙”狀態(tài)時,數(shù)據(jù)傳輸才能被初始化。I2C總線的關(guān)閉狀態(tài):SCL箝位在低電平。 I2C總線上傳輸?shù)臄?shù)據(jù)和地址字節(jié)均為8位,且高位在前,低位在后。數(shù)據(jù)線SDA上的一般情況:I2C總線以開始信號為啟動信
34、號;接著傳輸?shù)氖堑刂泛蛿?shù)據(jù)字節(jié),數(shù)據(jù)字節(jié)是沒有限制的;每個字節(jié)后必須跟隨一個應(yīng)答位(0);全部數(shù)據(jù)傳輸完畢后,以結(jié)束信號結(jié)尾。 SCL的“線與”特性:任一器件的SCL為低電平時,便時時鐘線SCL變低,SDA上數(shù)據(jù)就被停止(tngzh)傳送。 8.5.1 I2C總線(zn xin)共九十頁接收器的應(yīng)答:正常應(yīng)答位為0;當(dāng)接收器接收到一個字節(jié)后無法立即接收下一個字節(jié)時,便向SCL線輸出低電平而箝住SCL(SCL=0),迫使SDA線處于等待狀態(tài)(zhungti)。被控器箝住SCL線為低電平,使主控發(fā)送器處于等待狀態(tài)的情況:如圖8-11中的A處,當(dāng)接收器在A點(diǎn)接收完主控器發(fā)來的一個字節(jié)時,需要處理接收
35、中斷而無法繼續(xù)接收,則被控器便可箝住SCL線為低電平,使主控發(fā)送器處于等待狀態(tài),直到被控器處理完接收中斷后,再釋放SCL線。8.5.1 I2C總線(zn xin)共九十頁圖8-18 I2C總線(zn xin)的數(shù)據(jù)傳送字節(jié)格式開始(kish)信號從地址來自接收器響應(yīng)信號發(fā)送器等待數(shù)據(jù)來自接收器響應(yīng)信號方向位停止信號重復(fù)開始信號若傳送多個字節(jié)則重復(fù)SCLSSDAMSBACKACKR/WP/SA8.5.1 I2C總線共九十頁關(guān)于應(yīng)答信號:正常應(yīng)答位為0;(1)應(yīng)答信號的發(fā)送時刻:數(shù)據(jù)傳輸時,發(fā)送器每發(fā)完一個字節(jié),都要求接收方發(fā)回一個應(yīng)答信號(0)。 (2)應(yīng)答信號的過程:發(fā)送時鐘仍由主控器在SCL
36、上產(chǎn)生。主控發(fā)送器必須在被控接收器發(fā)送應(yīng)答信號前,預(yù)先(yxin)釋放對SDA線的控制(SDA1),以便主控器對SDA線上應(yīng)答信號的檢測。8.5.1 I2C總線(zn xin)共九十頁 正常應(yīng)答:主控器發(fā)送時,被控器接收完每個字節(jié)(z ji)需發(fā)回應(yīng)答信號“0”,主控器據(jù)此進(jìn)行下一字節(jié)的發(fā)送。 異常應(yīng)答:如果被控器由于某種原因無法繼續(xù)接收SDA上數(shù)據(jù)時,可向SDA輸出一個非應(yīng)答信號(1),主控器據(jù)此便產(chǎn)生一個Stop來終止SDA線上的數(shù)據(jù)傳輸。 主控器接收時也應(yīng)給被控器發(fā)應(yīng)答信號。主控器接收時的結(jié)束應(yīng)答:當(dāng)主控器要結(jié)束傳輸時,必須給被控器發(fā)一個非應(yīng)答信號“1”,令被控器釋放SDA線,以便主控器
37、發(fā)送Stop信號來結(jié)束數(shù)據(jù)的傳輸,如圖8-19所示。8.5.1 I2C總線(zn xin)共九十頁圖8-19 I2C總線(zn xin)的應(yīng)答信號發(fā)送器數(shù)據(jù)輸出接收器數(shù)據(jù)輸入主控器時鐘線起始信號釋放總線保持高電平不應(yīng)答 A應(yīng)答 A應(yīng)答時鐘脈沖SMSB28918.5.1 I2C總線(zn xin)共九十頁 4I2C總線的數(shù)據(jù)格式 1)主控器寫數(shù)據(jù) 主機(jī)寫數(shù)據(jù)過程:整個過程均為主機(jī)發(fā)送,從機(jī)接收,數(shù)據(jù)的方向位R/W=0。應(yīng)答位ACK由從機(jī)發(fā)送,當(dāng)主機(jī)產(chǎn)生(chnshng)結(jié)束信號后,數(shù)據(jù)傳輸停止。格式如下:8.5.1 I2C總線(zn xin)共九十頁SAData 1AData 2AData n-
38、1AData nPSLAS為開始信號,P為結(jié)束(jish)信號,A為應(yīng)答信號, 為非應(yīng)答信號,SLA為尋址字節(jié)(寫),Data 1Data n為被傳送(chun sn)的n個數(shù)據(jù)。為主控器發(fā)送,被控器接收。 為被控器發(fā)送,主控器接收。 8.5.1 I2C總線A/A共九十頁 2)主控器讀數(shù)據(jù) 主機(jī)讀數(shù)據(jù)過程:尋址字節(jié)為主機(jī)發(fā)送、從機(jī)接收,方向位R/W=1,n個數(shù)據(jù)(shj)字節(jié)均為從機(jī)發(fā)送、主機(jī)接收。主機(jī)接收完全部數(shù)據(jù)(shj)后發(fā)非應(yīng)答位(1),表明讀操作結(jié)束。格式如下:SSLA RAData 1AData 2AData n-1AData nPSLA R為尋址字節(jié)(z ji)讀。 8.5.1
39、I2C總線共九十頁 3)主控器讀/寫數(shù)據(jù) 改變傳送方向的數(shù)據(jù)傳輸過程:由于讀/寫方向有變化,開始(kish)信號和尋址字節(jié)都會重復(fù)一次,但讀/寫方向(R/W)相反。格式如下:SSLA RAData 1AData 2AData nASrADATA 1ADATA2ADATA n-1ADATA nPSr為重復(fù)開始信號(xnho),Data 1Data n為主控器的讀數(shù)據(jù),DATA 1DATA n為主控器的寫數(shù)據(jù)。SLAA/8.5.1 I2C總線共九十頁8.5.2 I2C總線(zn xin)擴(kuò)展存儲器 例8-4 對單片機(jī)編程,模擬I2C操作對EEPROM芯片24C04A(8bit x256x2)進(jìn)行寫
40、、讀,對前面的128字節(jié)寫入0128。 24C04A的SDA引腳是I2C數(shù)據(jù)信號引腳;SCK引腳是I2C時鐘信號引腳;A1、A2引腳是芯片選擇引腳,當(dāng)系統(tǒng)中存在多個24C04A時實(shí)現(xiàn)(shxin)片選;WP引腳是對高256字節(jié)的寫保護(hù)。共九十頁8.5.2 I2C總線(zn xin)擴(kuò)展存儲器共九十頁8.5.2 I2C總線(zn xin)擴(kuò)展存儲器I2C總線操作(cozu)C語言程序#includereg52.h#includesbit SCL=P10; /I2C時鐘線sbit SDA=P11; /I2C數(shù)據(jù)線void start() /定義起始信號函數(shù)SDA=1; SCL=1; _nop_()
41、;_nop_(); SDA=0; _nop_();_nop_();SCL=0; 共九十頁8.5.2 I2C總線(zn xin)擴(kuò)展存儲器void stop() /定義停止信號(xnho)產(chǎn)生函數(shù) SDA=0; SCL=0; _nop_();_nop_();SCL=1; _nop_();_nop_();SDA=1; 共九十頁8.5.2 I2C總線(zn xin)擴(kuò)展存儲器void rack() /定義(dngy)應(yīng)答檢測函數(shù)SCL=1; _nop_();_nop_();SCL=0; void start() /定義起始信號產(chǎn)生函數(shù)SDA=1; SCL=1; _nop_();_nop_(); SDA=0; _nop_();_nop_();SCL=0; 共九十頁8.5.2 I2C總線(zn xin)擴(kuò)展存儲器void wbyte(unsigned char tmp)/寫字節(jié)(z ji)函數(shù)unsigned char i; for(i=0;i8;i+) tmp=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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年辦公樓租賃轉(zhuǎn)購買合同協(xié)議
- 2025年醫(yī)療設(shè)施租借策劃合同
- 芭蕾舞臺燈光設(shè)計-深度研究
- 2025年電力公司電纜采購合同樣本
- 智能化肥生產(chǎn)模式-深度研究
- 2025年合伙人共同投資企業(yè)合同
- 2025年雙開門工程安裝合同書
- 金屬廢棄物處理技術(shù)-深度研究
- 用戶體驗(yàn)視角下的內(nèi)容優(yōu)化-深度研究
- 信息化設(shè)備運(yùn)維策略-深度研究
- 中央2025年中國科協(xié)所屬單位招聘社會在職人員14人筆試歷年參考題庫附帶答案詳解-1
- 殯儀服務(wù)員職業(yè)技能鑒定考試題(附答案)
- 電動葫蘆吊裝方案計劃
- 2025年山東電工電氣集團(tuán)招聘筆試參考題庫含答案解析
- 《建立特種設(shè)備“日管控、周排查、月調(diào)度”工作機(jī)制》專題培訓(xùn)
- 《自然語言處理》課件
- 造價咨詢服務(wù)方案進(jìn)度計劃安排及保證措施
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識 CCAA年度確認(rèn) 試題與答案
- 2024年濰坊工程職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 供養(yǎng)直系親屬有關(guān)文件
- 穿孔鋁板技術(shù)交底
評論
0/150
提交評論