上交第十一章_第1頁
上交第十一章_第2頁
上交第十一章_第3頁
上交第十一章_第4頁
上交第十一章_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1第11章:串行擴(kuò)展技術(shù)目錄11.1單總線串行擴(kuò)展11.2SPI總線串行擴(kuò)展11.3I2C總線擴(kuò)展11.3.1I2C總線基礎(chǔ)11.3.280C51的I2C總線時序模擬11.3.380C51與AT24C02的接口2單片機(jī)總線擴(kuò)展技術(shù),按照數(shù)據(jù)傳送方式,可分為兩大類:并行總線擴(kuò)展技術(shù)和串行總線擴(kuò)展技術(shù)。

并行總線速度快,適合短距離高速傳送;串行總線連線少,結(jié)構(gòu)簡單,占用單片機(jī)的I/O口資源少,可直接與許多外圍設(shè)備連接,適合遠(yuǎn)距離慢速傳送。目前,單片機(jī)應(yīng)用系統(tǒng)中常用的串行擴(kuò)展總線有:單總線(1-WireBUS)、SPI總線(SerialPeripheralInterfaceBUS)、I2C總線(Inter-IntegratedCircuitBUS)及SMBus總線(SystemManagementBus)等。11.1單總線串行擴(kuò)展3

單總線(1-WireBus)是美國的Maxim全資子公司達(dá)拉斯(DALLAS)半導(dǎo)體公司推出了一項(xiàng)特有的串行擴(kuò)展總線技術(shù),已經(jīng)集成到各種類型的芯片中,如存儲器、溫度傳感器、A/D轉(zhuǎn)換器、實(shí)時時鐘和電池管理芯片等。單總線只有一條數(shù)據(jù)輸入/輸出線DQ,總線上的所有器件都掛在DQ上,電源也通過這條信號線供給,這種使用一條信號線的串行擴(kuò)展技術(shù),稱為單總線技術(shù)。與目前多數(shù)標(biāo)準(zhǔn)總線不同,單總線技術(shù)采用單根信號線,既能傳輸時鐘,又能傳輸數(shù)據(jù),而且數(shù)據(jù)傳輸是雙向的,實(shí)現(xiàn)半雙工通信。因此它具有線路簡單,硬件開銷少,成本低廉,便于總線擴(kuò)展和維護(hù)等諸多優(yōu)點(diǎn),在測量、控制、認(rèn)證和識別等領(lǐng)域的應(yīng)用越來越廣泛。單總線系統(tǒng)中配置的各種器件,由DALLAS公司提供的專用芯片實(shí)現(xiàn)。每個芯片都有64位ROM,廠家對每一個芯片用激光燒寫編碼,其中存有16位十進(jìn)制編碼序列號,它是器件的地址編號,確保它掛在總線上后,可以被唯一確定。11.1單總線串行擴(kuò)展411.1單總線串行擴(kuò)展圖11-1單總線芯片的內(nèi)部結(jié)構(gòu)示意圖

5【例11-1】圖11-2(a)所示為一個由單總線構(gòu)成的分布式溫度監(jiān)測系統(tǒng)實(shí)例,也可用于各種狹小空間內(nèi)設(shè)備的數(shù)字測溫。圖中多個帶有單總線接口的數(shù)字溫度傳感器DS18B20芯片都掛在單片機(jī)的1根I/O口線(即DQ線)上。單片機(jī)對每個DS18B20通過總線DQ尋址。DQ為漏極開路,需加上拉電阻。11.1單總線串行擴(kuò)展圖11-2單總線構(gòu)成的分布式溫度監(jiān)測系統(tǒng)6DS18B20具有以下特點(diǎn):(1)體積小、結(jié)構(gòu)簡單、使用方便。(2)每個芯片都有唯一的64位光刻ROM編碼,家族碼為28H。(3)溫度測量范圍-55~+125℃,在-10~+85℃范圍內(nèi),測量精度可達(dá)±0.5℃。(4)DS18B20的分辨率為可編程的9~12位(其中包括1位符號位),對應(yīng)的溫度變化量分別為0.5℃、0.25℃、0.125℃、0.0625℃。(5)DS18B20的轉(zhuǎn)換時間與分辨率有關(guān)。當(dāng)設(shè)定為9位時,轉(zhuǎn)換時間為93.75ms;當(dāng)設(shè)定為10位時,轉(zhuǎn)換時間為187.5ms;當(dāng)設(shè)定為11位時,轉(zhuǎn)換時間為375ms;當(dāng)設(shè)定為12位時,轉(zhuǎn)換時間為750ms。(6)DS18B20片內(nèi)含有SRAM(暫存寄存器)和E2PROM(非易失寄存器),單片機(jī)寫入E2PROM的上下限溫度值以及對DS18B20的設(shè)置,在芯片掉電的情況下不丟失。11.1單總線串行擴(kuò)展711.2SPI總線串行擴(kuò)展SPI總線(SerialPeripheralInterfaceBUS)的中文意思就是串行外部設(shè)備接口,SPI總線是由Motorola公司最先推出的全雙工同步串行總線,允許單片機(jī)與各種外圍設(shè)備以串行方式進(jìn)行通信,主要應(yīng)用在EEPROM,F(xiàn)LASHRAM,實(shí)時時鐘,LCD顯示驅(qū)動器,A/D轉(zhuǎn)換器,D/A轉(zhuǎn)換器等芯片中。標(biāo)準(zhǔn)的SPI總線可直接與各個廠家生產(chǎn)的具有SPI總線接口功能的各種I/O器件進(jìn)行連接,只需通過4條信號線就可以實(shí)現(xiàn)主從設(shè)備之間的通信,被稱為四線制同步串行總線。SPI使用4條線:串行時鐘SCK,主器件輸入/從器件輸出數(shù)據(jù)線MISO,主器件輸出/從器件輸入數(shù)據(jù)線MOSI和從器件選擇線。8圖11-3SPI外圍串行擴(kuò)展結(jié)構(gòu)圖圖11-4SPI數(shù)據(jù)傳送格式11.2SPI總線串行擴(kuò)展9【例11-2】設(shè)計80C51單片機(jī)與串行A/D轉(zhuǎn)換器TLC2543的SPI接口圖11-580C51單片機(jī)與TLC2543的SPI接口11.2SPI總線串行擴(kuò)展10具體的子程序如下:ADCOMDBYTE6FH;定義命令存儲單元ADOUTHBYTE6EH;定義存儲轉(zhuǎn)換結(jié)果高4位單元ADOUTLBYTE6DH;定義存儲轉(zhuǎn)換結(jié)果低8位單元ADCONV:CLRP1.0;時鐘腳為低電平CLRP1.3;片選

有效,選中TLC2543MOVR2,#08H;送出下一次8位轉(zhuǎn)換命令和讀8位轉(zhuǎn)換結(jié)果做準(zhǔn)備MOVA,ADCOMD;下一次轉(zhuǎn)換的命令在ADCOMD單元中送ALOOP1:MOVC,P1.2;讀入1位轉(zhuǎn)換結(jié)果RRCA;1位轉(zhuǎn)換結(jié)果帶進(jìn)位位右移MOVP1.1,C;送出命令字節(jié)中的1位SETBP1.0;產(chǎn)生1個時鐘NOPCLRP1.0NOP11.2SPI總線串行擴(kuò)展11

DJNZR2,LOOP1;是否完成8次轉(zhuǎn)換結(jié)果讀入和命令輸出?未完則跳MOVADOUTL,A;讀入的8位轉(zhuǎn)換結(jié)果存人ADOUTL單元MOVA,#00H;A清0MOVR2,#04H;為讀入4位轉(zhuǎn)換結(jié)果做準(zhǔn)備LOOP2:MOVC,P1.2;讀入高4位轉(zhuǎn)換結(jié)果中的1位RRCA;帶進(jìn)位位循環(huán)右移SETBP1.0;產(chǎn)生1個時鐘NOPCLRP1.0NOPDJNZR2,LOOP2;是否完成4次讀入?末完則跳LOOP2MOVADOUTH,A;高4位轉(zhuǎn)換結(jié)果存人ADOUTH單元中的高4位SWAPADOUTH;ADOUTH單元中的高4位與低4位互換SETBP1.0;時鐘無效RET11.2SPI總線串行擴(kuò)展1211.3I2C總線擴(kuò)展11.3.1I2C總線基礎(chǔ)一、I2C總線架構(gòu)

I2C總線(Inter-IntegratedCircuitBUS)是PHILIPS公司開發(fā)的一種雙向兩線制同步串行總線,用于連接微控制器及其外圍設(shè)備,實(shí)現(xiàn)連接于總線上的器件之間的信息傳送,是近年來微電子通信控制領(lǐng)域廣泛采用的一種總線標(biāo)準(zhǔn)。目前許多接口器件采用了I2C總線接口,如AT24C系列E2PROM器件、LED驅(qū)動器SAA1064等。PHILIPS公司推出的包括LED驅(qū)動器、LCD驅(qū)動器、A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器、RAM、EPROM及I/O接口在內(nèi)的I2C接口電路芯片。I2C總線只有兩根雙向信號線。一根是數(shù)據(jù)線SDA,另一根是時鐘線SCL。所有連接到I2C總線上器件的數(shù)據(jù)線都接到SDA線上,各器件的時鐘線均接到SCL線上。1311.3I2C總線擴(kuò)展圖11-7I2C總線的基本架構(gòu)14二、I2C總線的特點(diǎn)I2C總線的特點(diǎn)如下:(1)采用二線制。I2C總線由于采用二線制,器件引腳少,器件間連接簡單,電路板體積減小,可靠性提高。(2)傳輸速率高。串行的8位雙向數(shù)據(jù)傳輸位速率標(biāo)準(zhǔn)模式傳輸速率為100Kbps,快速模式為400Kbps,高速模式為3.4Mbps。(3)每個連接到總線的器件都可以通過軟件以唯一的地址尋址,并建立簡單的主機(jī)/從機(jī)關(guān)系,主器件既可以作為發(fā)送器,也可以作為接收器。(4)支持主/從和多主兩種工作方式。11.3I2C總線擴(kuò)展15三、I2C總線的數(shù)據(jù)傳輸在I2C總線上,每一位數(shù)據(jù)位的傳輸都與時鐘脈沖相對應(yīng)。邏輯0和邏輯1的信號電平取決于相應(yīng)的電源電壓VCC。數(shù)據(jù)傳輸時,SCL為高電平期間,SDA上的數(shù)據(jù)必須保持穩(wěn)定;在SCL為低電平期間,SDA上的電平狀態(tài)才允許變化。圖11-8數(shù)據(jù)傳輸時序11.3I2C總線擴(kuò)展16(1)起始和終止信號I2C總線規(guī)定,SCL線為高電平期間,SDA線由高電平向低電平的變化表示起始信號;SCL線為高電平期間,SDA線由低電平向高電平的變化表示終止信號。起始信號和終止信號由主機(jī)發(fā)出。在起始信號發(fā)出后,總線就處于被占用的狀態(tài);在終止信號發(fā)出后,總線就處于空閑狀態(tài)。從器件檢測起始和終止信號。從器件收到一個數(shù)據(jù)字節(jié)后,如果可以馬上接收下一字節(jié),要發(fā)出應(yīng)答信號。若無法立刻接收下一個字節(jié),可將SCL線拉成低電平,使主機(jī)處于等待狀態(tài),直到準(zhǔn)備好接收下一個字節(jié)時,再釋放SCL線使之為高電平。11.3I2C總線擴(kuò)展17圖11-9起始和終止信號11.3I2C總線擴(kuò)展18(2)字節(jié)傳送與應(yīng)答數(shù)據(jù)傳輸字節(jié)數(shù)沒有限制,但每個字節(jié)必須是8位長度,先傳最高位(MSB),每個被傳輸?shù)淖止?jié)后面都要跟隨應(yīng)答位(即一幀共有9位)。如果從器件進(jìn)行了應(yīng)答,但在數(shù)據(jù)傳輸一段時間后無法繼續(xù)接收更多的數(shù)據(jù)時,從器件可以通過對無法接收的第一個數(shù)據(jù)字節(jié)的“非應(yīng)答”通知主機(jī),主機(jī)則應(yīng)發(fā)出終止信號以結(jié)束數(shù)據(jù)的繼續(xù)傳輸。當(dāng)主機(jī)接收數(shù)據(jù)時,它收到最后一個數(shù)據(jù)字節(jié)后,必須向從器件發(fā)出一個結(jié)束傳輸?shù)摹胺菓?yīng)答”信號,然后從器件釋放SDA線,以允許主機(jī)產(chǎn)生終止信號。11.3I2C總線擴(kuò)展19

圖11-10應(yīng)答時序11.3I2C總線擴(kuò)展20(3)尋址字節(jié)在主機(jī)發(fā)出起始信號后要再傳輸1個尋址字節(jié):7位從器件地址,1位傳輸方向控制位(用0表示主機(jī)發(fā)送數(shù)據(jù),1表示主機(jī)接收數(shù)據(jù))。D7~D1位組成從機(jī)的地址,D0位是數(shù)據(jù)傳送方向位。主機(jī)發(fā)送地址時,總線上的每個從機(jī)都將這7位地址碼與自己的地址進(jìn)行比較。如果相同,則認(rèn)為自己正被主機(jī)尋址。器件地址由固定部分和可編程兩部分組成。

11.3I2C總線擴(kuò)展圖11-11尋址數(shù)據(jù)格式21表11.1AT24C系列存儲器器件地址表器件型號字節(jié)容量尋址字節(jié)內(nèi)部地址字節(jié)數(shù)頁面寫字節(jié)數(shù)最多可掛器件數(shù)固定標(biāo)識片選R/WAT1281010A2A1A01/0188AT02256A2A1A01/088AT04512A2A1P01/0164AT1KA2P1P01/0162AT2KP2P1P01/0161AT4KA2A1A01/02328AT8KA2A1A01/0328AT128B16KA2A1A01/0648AT256B32KA2A1A01/0648AT512B64KA2A1A01/0128811.3I2C總線擴(kuò)展2211.3.280C51的I2C總線時序模擬對于沒有配置I2C總線接口的單片機(jī)(如80C51等),可以利用通用并行I/O口線模擬I2C總線接口的時序。一、I2C總線典型信號I2C總線的數(shù)據(jù)傳輸有嚴(yán)格的時序要求。I2C總線的起始信號、終止信號、發(fā)送應(yīng)答(0)及發(fā)送非應(yīng)答(1)的時序如圖所示。11.3I2C總線擴(kuò)展23

圖11-12典型信號的時序11.3I2C總線擴(kuò)展24二、I2C總線典型信號模擬子程序設(shè)主機(jī)采用80C51單片機(jī),晶振頻率為6MHz(即機(jī)器周期為2μs),則幾個典型信號的模擬子程序如下所述。(1)起始信號STA:SETBSDASETBSCLNOPNOPCLRSDANOPNOPCLRSCLRET11.3I2C總線擴(kuò)展25(2)終止信號STP:CLRSDASETBSCLNOPNOPSETBSDANOPNOPCLRSDARET11.3I2C總線擴(kuò)展26(3)發(fā)送應(yīng)答位0ASK:CLRSDASETBSCLNOPNOPCLRSCLSETBSDARET11.3I2C總線擴(kuò)展27(4)發(fā)送非應(yīng)答位1NAS:SETBSDASETBSCLNOPNOPCLRSCLCLRSDARET注意:使用這些子程序時,在主程序中應(yīng)設(shè)置如下語句:SDAEQUP1.7SCLEQUP1.611.3I2C總線擴(kuò)展28圖11-13AT24C02的引腳圖11-14AT24C02與單片機(jī)的接口11.3.380C51與AT24C02的接口

串行E2PROM的優(yōu)點(diǎn)是體積小、功耗低、占用I/O口線少,性能價格比高。典型產(chǎn)品如ATMEL公司的AT24C02,其引腳定義如圖11-13所示,80C51系列單片機(jī)的連接如圖11-14所示。圖中僅擴(kuò)展一個器件,所以將A2、A1、A0這3條地址線接地。WP為寫保護(hù)控制端,接地時允許寫入。SDA是數(shù)據(jù)輸入/輸出線,SCL為串行時鐘線。11.3I2C總線擴(kuò)展29圖11-15寫入n個字節(jié)的數(shù)據(jù)格式一、寫操作過程對AT24C02寫入時,單片機(jī)發(fā)出起始信號之后再發(fā)送的是控制字節(jié),然后釋放SDA線并在SCL線上產(chǎn)生第9個時鐘信號。被選中的存儲器器件在確認(rèn)是自己的地址后,在SDA線上產(chǎn)生一個應(yīng)答信號,單片機(jī)收到應(yīng)答后就可以傳送數(shù)據(jù)了。傳送數(shù)據(jù)時,單片機(jī)首先發(fā)送一個字節(jié)的預(yù)寫入存儲單元的首地址,收到正確的應(yīng)答后,單片機(jī)就逐個發(fā)送各數(shù)據(jù)字節(jié),但每發(fā)送一個字節(jié)后都要等待應(yīng)答。單片機(jī)發(fā)出停止信號P后,啟動AT24C02的內(nèi)部寫周期,完成數(shù)據(jù)寫入工作(約10ms內(nèi)結(jié)束)。AT24C02片內(nèi)地址指針在接收到每一個數(shù)據(jù)字節(jié)后自動加1,在芯片的“一次裝載字節(jié)數(shù)”(頁面字節(jié)數(shù))限度內(nèi),只需輸入首地址。裝載字節(jié)數(shù)超過芯片的“一次裝載字節(jié)數(shù)”時,數(shù)據(jù)地址將“上卷”,前面的數(shù)據(jù)將被覆蓋。當(dāng)要寫入的數(shù)據(jù)傳送完后,單片機(jī)應(yīng)發(fā)出終止信號以結(jié)束寫入操作。11.3I2C總線擴(kuò)展30圖11-16讀出n個字節(jié)的數(shù)據(jù)格式二、讀操作過程

對AT24C02讀出時,單片機(jī)也要發(fā)送該器件的控制字節(jié)(“偽寫”),發(fā)送完后釋放SDA線并在SCL線上產(chǎn)生第9個時鐘信號,被選中的存儲器在確認(rèn)是自己的地址后,在SDA線上產(chǎn)生一個應(yīng)答信號作為響應(yīng)。

然后,單片機(jī)再發(fā)送一個字節(jié)的要讀出器件的存儲區(qū)的首地址,收到器件的應(yīng)答后,單片機(jī)要重復(fù)一次起始信號并發(fā)出器件地址和讀方向位(1),收到器件應(yīng)答后就可以讀出數(shù)據(jù)字節(jié),每讀出一個字節(jié),單片機(jī)都要回復(fù)應(yīng)答信號。當(dāng)最后一個字節(jié)數(shù)據(jù)讀完后,單片機(jī)應(yīng)返回以“非應(yīng)答”(高電平),并發(fā)出終止信號以結(jié)束讀出操作。11.3I2C總線擴(kuò)展31三、基本操作子程序(1)應(yīng)答位檢查正常應(yīng)答時F0標(biāo)志為0,否則F0為1。ASKC:SETBSDASETBSCLCLRF0MOVC,SDAJNCEXITSETBF0;非正常應(yīng)答EXIT:CLRSCLRET

11.3I2C總線擴(kuò)展32(2)發(fā)送一個字節(jié)預(yù)發(fā)送的數(shù)據(jù)在A中,程序中要用到R0。WRB:MOVR0,#8WLP1:RLCAJCWR1AJMPWR0WLP2:DJNZR0,WLP1

RETWR1:SETBSDASETBSCLNOPNOPCLRSCLCLRSDAAJMPWLP2WR0:CLRSDASETBSCLNOPNOPCLRSCLAJMPWLP211.3I2C總線擴(kuò)展33(3)從E2PROM讀一個字節(jié)讀取的一個字節(jié)數(shù)據(jù)存于R2或A中,程序中要用R0作計數(shù)器。RDB:MOVR0,#8RLP:SETBSDASETBSCLMOVC,SDAMOVA,R2RLCAMOVR2,ACLRSCLDJNZR0,RLP

RET11.3I2C總線擴(kuò)展34(4)向E2PROM發(fā)送n個字節(jié)入口條件:向R1送入發(fā)送數(shù)據(jù)緩沖區(qū)首地址;SNUM送入發(fā)送字節(jié)數(shù);SLAW送入寫尋址字節(jié)。WRNB:LCALLSTAMOVA,SLAWLCALLWRBLCALLASKCJBF0,WRNBWLP:MOVA,@R1LCALLWRBLCALLASKCJBF0,WRNBINCR1DJNZSNUM,WLP

LCALLSTPRET11.3I2C總線擴(kuò)展35(5)從E2PROM讀取n個字節(jié)入口條件:R1送入接收緩沖區(qū)首地址;RNUM送入接收字節(jié)數(shù);SLAR送入讀尋址字節(jié)。RDNB:LCALLSTAMOVA,SLARLCALLWRBLCALLASKCJBF0,RDNBRNLP:LCALLRDBMOV@R1,ADJNZRNUM,F(xiàn)ASKLCALLNASLCALLSTPRETFASK:LCALLASKINCR1STMPRNLP11.3I2C總線擴(kuò)展36【例11-3】編程實(shí)現(xiàn)向AT24C02的50H~57H單元寫入00H、11H、22H、33H、44H、55H、66H、77H共8個數(shù)據(jù),接口電路如圖11-14所示。解:由題意及電路圖可知,SLA2=A0H。AT24C02接收數(shù)據(jù)區(qū)首地址50H及8個數(shù)據(jù)先放在單片機(jī)內(nèi)部RAM的30H~38H單元。程序如下:SDAEQUP1.7SCLEQUP1.6SNUMEQU40HSLAWEQU41H

ORG0000HAJMPMAINORG0040HMAIN:MOVSP,#5FHLCALLLDATA;初始化MOVSLAW,#0A0H;設(shè)尋址控制字節(jié)MOVSNUM,#9MOVR1,#50HLCALLWRNBSJMP$11.3I2C總線擴(kuò)展37LDATA:MOV

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論