I2C、Microwire和SPI通信方式的介紹_第1頁
I2C、Microwire和SPI通信方式的介紹_第2頁
I2C、Microwire和SPI通信方式的介紹_第3頁
I2C、Microwire和SPI通信方式的介紹_第4頁
I2C、Microwire和SPI通信方式的介紹_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精品好資料學(xué)習(xí)推薦I2C等各種通信方式的介紹串行E2PROM是可在線電擦除和電寫入的存儲器,具有體積小、接口簡單、數(shù)據(jù)保存可靠、可在線改寫、功耗低等特點(diǎn),而且為低電壓寫入,在單片機(jī)系統(tǒng)中應(yīng)用十分普遍。 串行E2PROM按總線形式分為三種,即I2C總線、Microwire總線及SPI總線三種。本文將以Microchip公司的產(chǎn)品為例對以上三種串行E2PROM進(jìn)行介紹。 一、I2C總線型 I2C總線,是INTER INTEGRATED CIRCUIT BUS的縮寫,I2C總線采用時鐘(SCL)和數(shù)據(jù)(SDA)兩根線進(jìn)行數(shù)據(jù)傳輸,接口十分簡單。Microchip公司的24XX系列串行E2PROM存儲

2、容量從128位(168)至256k位(32k8),采用I2C總線結(jié)構(gòu)。24XX中,XX為電源電壓范圍。 1 引腳SDA是串行數(shù)據(jù)腳。該腳為雙向腳,漏極開路,用于地址、數(shù)據(jù)的輸入和數(shù)據(jù)的輸出,使用時需加上拉電阻。 SCL是時鐘腳。該腳為器件數(shù)據(jù)傳輸?shù)耐綍r鐘信號。 SDA和SCL腳均為施密特觸發(fā)輸入,并有濾波電路,可有效抑制噪聲尖峰信號,保證在總線噪聲嚴(yán)重時器件仍能正常工作。 在單片機(jī)系統(tǒng)中,總線受單片機(jī)控制。單片機(jī)產(chǎn)生串行時鐘(SCL),控制總線的存取,發(fā)送STRAT和STOP信號。 2 總線協(xié)議 僅當(dāng)總線不忙(數(shù)據(jù)和時鐘均保持高電平)時方能啟動數(shù)據(jù)傳輸。在數(shù)據(jù)傳輸期間,時鐘(SCL)為高電平

3、時數(shù)據(jù)(SDA)必須保持不變。在SCL為高電平時數(shù)據(jù)線(SDA)從高電平跳變到低電平,為開始數(shù)據(jù)傳輸(START)的條件,開始數(shù)據(jù)傳輸條件后所有的命令有效;SCL為高電平時,數(shù)據(jù)(SDA)從低電平跳變到高電平,為停止數(shù)據(jù)傳輸(STOP)的條件,停止數(shù)據(jù)傳輸條件后所有的操作結(jié)束。開始數(shù)據(jù)傳輸START后、停止數(shù)據(jù)傳輸STOP前,SCL高電平期間,SDA上為有效數(shù)據(jù)。字節(jié)寫入時,每寫完一個字節(jié),送一位傳送結(jié)束信號ACK,直至STOP;讀出時,每讀完一個字節(jié),送一位傳送結(jié)束信號ACK,但STOP前一位結(jié)束時不送ACK信號。 3 器件尋址 START后,單片機(jī)發(fā)送一個控制字,該控制字包括Start位(

4、S)、受控地址(7位,對24XX00來說前四位為1010,后三位無關(guān)系)、讀寫(R/W)選擇位(“1”為讀,“0”為寫)及傳送結(jié)束位ACK。24XX00的控制字格式如下: S 1 0 1 0 X XX R/W ACK 24XX00隨時監(jiān)視總線上是否為有效地址,若受控地址正確且器件未處在編程方式下,則產(chǎn)生傳送結(jié)束位ACK。 4 寫操作 單片機(jī)送出開始信號后,接著送器件碼(7位)、R/W位,表示ACK位后面為待寫入數(shù)據(jù)字節(jié)的字地址和待寫入數(shù)據(jù)字節(jié),然后結(jié)束一個字節(jié)的寫入。即S寫控制字(R/W位為ACK字地址ACK寫入數(shù)據(jù)ACKSTOP。 5 讀操作 讀操作有三種,讀當(dāng)前地址的內(nèi)容、讀指定地址的內(nèi)容

5、、讀指定起始地址后的若干字節(jié)的內(nèi)容。 讀當(dāng)前地址的內(nèi)容為:S讀控制字(R/W位為ACK讀出數(shù)據(jù)no ACKSTOP。讀指定地址的內(nèi)容為:S寫控制字(R/W位為ACK寫入數(shù)據(jù)ACK讀控制字(R/W位為ACK讀出數(shù)據(jù)no ACKSTOP。讀指定起始地址后的若干字節(jié)的內(nèi)容為:S寫控制字(R/W位為ACK寫入數(shù)據(jù)ACK讀控制字(R/W位為ACK讀出數(shù)據(jù)(1)ACK讀出數(shù)據(jù)(nx)noACKSTOP。24XX系列串行E2PROM存儲芯片與單片機(jī)硬件接口只有SCL和SDA兩根線,非常簡單。二、Microwire總線型 Microwire總線采用時鐘(CLK)、數(shù)據(jù)輸入(DI)、數(shù)據(jù)輸出(DO)三根線進(jìn)行數(shù)

6、據(jù)傳輸,接口簡單。Microchip公司的93XXX系列串行E2PROM存儲容量從1k bit(8/16)至16k bit(8/16),采用Microwire總線結(jié)構(gòu)。產(chǎn)品采用先進(jìn)的CMOS技術(shù),是理想的低功耗非易失性存儲器器件。 1 引腳CS是片選輸入,高電平有效。CS端低電平,93AA46為休眠狀態(tài)。但若在一個編程周期啟動后,CS由高變低,93AA46將在該編程周期完成后立即進(jìn)入休眠狀態(tài)。在連續(xù)指令與連續(xù)指令之間,CS必須有不小于250ns(TCSL)的低電平保持時間,使之復(fù)位(RESET),芯片在CS為低電平期間,保持復(fù)位狀態(tài)。CLK是同步時鐘輸入,數(shù)據(jù)讀寫與CLK上升沿同步。對于自動定

7、時寫周期不需要CLK信號。DI是串行數(shù)據(jù)輸入,接受來自單片機(jī)的命令、地址和數(shù)據(jù)。DO是串行數(shù)據(jù)輸出,在DO端需加上拉電阻。ORG是數(shù)據(jù)結(jié)構(gòu)選擇輸入,當(dāng)ORG為高電平時選16結(jié)構(gòu),ORG為低電平時選8結(jié)構(gòu)。 2 工作模式 根據(jù)單片機(jī)的不同命令,93AA46有7種不同的工作模式,附表給出在ORG=1(16結(jié)構(gòu))時的命令集(表中“S”為Start位)。ORG=0(8結(jié)構(gòu)),除在地址前加A6位或在地址后加一位“X”外,其余與附表相同。除了讀數(shù)據(jù)或編程操作期間檢查READY/BUSY狀態(tài)時外,DO腳均為高阻狀。在擦除/寫入過程中,DO為高電平表示“忙”,低電平表示“準(zhǔn)備好”。在CS下降沿到來時,DO進(jìn)入

8、高阻態(tài)。若在寫入和擦除轉(zhuǎn)換期間,CS保持高電平,則DO端的狀態(tài)信號無效。 3 功能 START(起始)條件CS和DI均為高電平后CLK的第一個上升沿,確定為START。若緊隨START條件后DI端輸入滿足7種工作模式中的一種所需的命令碼、地址及數(shù)據(jù)位的組合,指令將被執(zhí)行。執(zhí)行完一條指令后,未檢測到新的START條件,DI、CLK信號不起作用。數(shù)據(jù)保護(hù)上電時,Vcc未升到1 4V前,所有操作方式均被禁止。掉電時,一旦Vcc低于1 4V,源數(shù)據(jù)保護(hù)電路啟動,所有操作方式均被禁止。芯片上電時自動進(jìn)入擦寫禁止?fàn)顟B(tài),保護(hù)芯片不被誤擦寫。EWEN命令也可以防止誤擦寫,詳見擦寫禁止和擦寫使能。讀操作READ

9、當(dāng)CS為高電平時,芯片在收到讀命令和地址后,從DO端串行輸出指定單元的內(nèi)容(高位在前)。寫操作WRITE當(dāng)CS為高電平時,芯片收到寫命令和地址后,從DI端接收串行輸入16位或8位數(shù)據(jù)(高位在前)。在下一個時鐘上升沿到來前將CS端置為(低電平保持時間不小于250ns),再將CS恢復(fù)為1,寫操作啟動。此時DO端由“1”變成“0”,表示芯片處于寫操作的“忙”狀態(tài)。芯片在寫入數(shù)據(jù)前,會自動擦除待寫入單元的內(nèi)容,當(dāng)寫操作完成后,DO端變成“1”,表示芯片處于“準(zhǔn)備好”狀態(tài),可以接受新命令。 擦寫禁止和擦寫使能(EWDS/EWEN)芯片收到EWDS命令后進(jìn)入擦寫禁止?fàn)顟B(tài),不允許對芯片進(jìn)行任何擦或?qū)懖僮?,?/p>

10、片上電時自動進(jìn)入擦寫禁止?fàn)顟B(tài)。此時,若想對芯片進(jìn)行擦寫操作,必須先發(fā)EWEN命令,因而防止了干擾或其它原因引起的誤操作。芯片接受到EWEN命令后,進(jìn)入擦寫允許狀態(tài),允許對芯片進(jìn)行擦或?qū)懖僮?。讀READ命令不受EWDS和EWEN的影響。 擦除、片擦除、片寫入操作(ERASE/ERAL/WRAL)擦除ERASE指令擦除指定地址的內(nèi)容,擦除后該地址的內(nèi)容為“1”;片擦除ERAL指令擦除整個芯片的內(nèi)容,擦除后芯片所有地址的內(nèi)容均為“1”;片寫WRAL命令將特定內(nèi)容整片寫入。片擦除和片寫入時,在接受完命令和數(shù)據(jù),CS從“1”變成“0”再恢復(fù)為“1”(低電平保持時間不小于250ns)后,片擦除或片寫入啟動

11、,擦除、寫入均為自動定時方式。自動定時方式下不需要CLK時鐘。93AA46與單片機(jī)的接口電路及數(shù)據(jù)傳輸程序此處不再一一寫出。三、SPI總線SPI(Serial Peripheral Interface)總線,即“串行外圍設(shè)備接口總線”。Microchip公司的25XX系列串行E2PROM采用簡單的SPI兼容串行總線結(jié)構(gòu),用時鐘(SCK)、數(shù)據(jù)輸入(SI)、數(shù)據(jù)輸出(SO)三根線進(jìn)行數(shù)據(jù)傳輸,片選信號(CS)控制器件的選通。當(dāng)今流行的帶SPI口的微控制器,如Microchip公司的PIC16C6X/7X微控制器等,均可與25AA040直接接口。片內(nèi)無SPI口的微控制器,也可用普通I/O口通過軟件

12、編程的方式實現(xiàn)與25XX040間的接口。25XX系列采用先進(jìn)的CMOS技術(shù),是理想的低功耗非易失性存儲器器件。 25XX系列串行E2PROM存儲容量從4k位(5128)至64k位(8k8)。1 引腳說明 CS是片選輸入腳,低電平有效。CS端為高電平,25AA040處于休眠狀態(tài)。CS的變化不影響已經(jīng)初始化或正在處理的編程的完成。也就是說若在一個編程周期啟動后,CS由低變高,25AA040將在該編程周期完成后立即進(jìn)入休眠狀態(tài)。一旦CS為高電平,SO引腳立即變成高阻態(tài),允許多器件共用SPI總線。在有效的寫入序列輸入后CS端由低轉(zhuǎn)高,啟動對內(nèi)部的寫序列。上電后,CS端要先加低電平對所有操作序列初始化。

13、 SCK是同步時鐘輸入腳。來自SI腳的地址或數(shù)據(jù)在SCK的上升沿被鎖存,SO腳的數(shù)據(jù)在SCK的下降沿時輸出。 SI是串行數(shù)據(jù)輸入腳,接受來自單片機(jī)的命令、地址和數(shù)據(jù)。 SO是串行數(shù)據(jù)輸出腳,在讀周期,輸出E2PROM存儲器的數(shù)據(jù)。 WP是寫保護(hù)輸入腳。WP為低電平時禁止對存儲陣列或狀態(tài)寄存器的寫操作,其它操作功能正常;WP為高電平,非易失性寫在內(nèi)的所有功能都正常。任何時候?qū)P置為低電平都將復(fù)位寫允許鎖存器。若一次內(nèi)部寫已經(jīng)開始,WP置成低電平不影響這次寫。 HOLD是保持輸入腳,低電平有效,用于在數(shù)據(jù)傳送中途暫停向25AA040傳送。不用暫停功能時,HOLD必須保持高電平。芯片被選中,正在串

14、行傳送時,可將HOLD置為低電平,暫停進(jìn)一步的傳送。方法是在SCK為低電平時,將HOLD引腳變成低電平,不然在下一個SCK由高轉(zhuǎn)低前不能暫停傳送。此間,CS必須保持低電平。25AA040處于暫停時,SI、SO、SCK腳均為高阻態(tài)。要恢復(fù)串行傳送,必須在SCK為低電平時將HOLD置為高電平。任何時候只要HOLD為低電平,SO腳將處于高阻態(tài)。 2 工作原理 25XX040片內(nèi)有一個8位指令寄存器,指令通過SI腳接收,在SCK的上升沿串行輸入。指令輸入時,CS腳必須為低電平,HOLD腳必須為高電平。WP必須保持高電平,允許寫存儲器陣列。CS置為低電平后SCK的第一個上升沿開始數(shù)據(jù)采樣。如果與SPI總

15、線上的其它外圍器件共用SCK,可改變HOLD引腳電平將25AA040設(shè)置成“保持”方式。釋放HOLD后,再從HOLD信號確認(rèn)處繼續(xù)傳送。 -讀序列 CS降至低電平25AA040被選中。包括A8地址在內(nèi)的8位讀指令被傳送到25AA040,接著是低8位地址(A7A0)。在接收到正確的讀指令及低8位地址后,選定地址的內(nèi)容由SO口串行輸出。而下一地址單元的內(nèi)容將隨著時鐘脈沖繼續(xù)輸出。每當(dāng)一個字節(jié)的數(shù)據(jù)傳送完畢,25AA040片內(nèi)的地址指針自動加1,指向下一個地址。當(dāng)最高位地址(01FFH)內(nèi)容讀出后,地址指針指向0000H,下一個讀出周期將繼續(xù)。CS腳轉(zhuǎn)為高電平讀操作終止。 -寫序列 在著手向25AA

16、040寫數(shù)據(jù)之前,必須先發(fā)出WREN指令,置位寫允許鎖存器,其操作為:先將CS置為低電平,然后按時鐘節(jié)拍將WREN指令送至25AA040,當(dāng)指令的8位數(shù)全部傳送完畢后,再將CS端置為高電平置位寫允許鎖存器。發(fā)出WREN指令后未將CS端置為高電平前,寫允許鎖存器并沒有置位,向25AA040傳送的數(shù)據(jù)將不會被寫入存儲器陣列。 寫允許鎖存器置位后,再將CS端置為低電平,發(fā)出包括A8地址在內(nèi)的8位寫指令及低8位地址(A7A0),然后送要寫入的數(shù)據(jù)。一次寫序列最多可以連續(xù)寫16個字節(jié)的數(shù)據(jù),且所有要寫入的數(shù)據(jù)的地址必須在同一頁。一頁的首址為XXXX 0000,末址為XXXX 1111。若內(nèi)部地址計數(shù)器已

17、到XXXX 1111,時鐘仍在繼續(xù),內(nèi)部地址計數(shù)器將重新指向該頁的首址XXXX 0000,原寫入到該地址的內(nèi)容就會被覆蓋。 為將數(shù)據(jù)真正寫入到25AA040中,須在字節(jié)寫入或頁寫入數(shù)據(jù)的第n個字節(jié)的最后一個有效位(D0)送出后將CS置為高電平。若在此外的其它時間將CS置為高電平,寫操作就不能完成。在寫操作進(jìn)行時,可以讀狀態(tài)寄存器來檢查WIP、WEL、BP1和BP0位的狀態(tài)。在寫周期內(nèi)是不可能讀存儲器陣列位置的。一旦寫周期完成,寫允許鎖存器也就被復(fù)位了。 -寫允許(WREN)和寫禁止(WRDI) 25AA040片內(nèi)有一個寫允許鎖存器。表2為寫保護(hù)功能表。在任何寫操作將完成之前必須立即置位寫允許鎖

18、存器。寫允許鎖存器由WREN指令置位,由WRDI指令復(fù)位。 滿足以下條件之一,寫允許鎖存器將被復(fù)位: 1)上電;2)WRDI指令成功地執(zhí)行;3)WRSR指令成功地執(zhí)行;4)WRITE指令成功地執(zhí)行;5)WP引腳為低電平。 -狀態(tài)寄存器讀(RDSR) RDSR指令讀狀態(tài)寄存器。狀態(tài)寄存器可在任何時候讀出。狀態(tài)寄存器的格式如下: 7 6 5 43 2 1 0 XXXX BP1 BP0 WEL WIP 其中,寫入保護(hù)位(WIP)指示25AA040是否正忙于寫入操作,是只讀位。WIP為“1”,表示寫入正在進(jìn)行;WIP為“0”,表示未進(jìn)行寫入操作。 寫允許鎖存器狀態(tài)位(WEL)指示寫允許鎖存器的狀態(tài),是只讀位。WEL為“1”,允許寫陣列;WEL為“0”,鎖存器禁止寫陣列。WEL位的狀態(tài)由執(zhí)行WREN或WRDI指令確定,與狀態(tài)寄存器是否寫保護(hù)無關(guān)。 塊保護(hù)位(BP0和BP1)指示當(dāng)前保護(hù)的塊地址。塊保護(hù)地址由用戶發(fā)出的WRSR指令設(shè)定。一旦該塊地址的內(nèi)容被保護(hù),就只能讀出而不能寫入。 -狀態(tài)寄存器寫(WRSR) WRSR指令允許用戶通過寫狀態(tài)寄存器BP1、BP0位的方法選擇對存儲器的保護(hù)區(qū),BP0、BP1與塊

溫馨提示

  • 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

提交評論