iic總線學(xué)習(xí)心得_第1頁
iic總線學(xué)習(xí)心得_第2頁
iic總線學(xué)習(xí)心得_第3頁
iic總線學(xué)習(xí)心得_第4頁
iic總線學(xué)習(xí)心得_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、主控端 - 為啟動數(shù)據(jù)傳送 (START 指令)、產(chǎn)生時鐘 (SCL) 信號并中止數(shù)據(jù)傳送 (STOP指令) 的器件,主控端必須是傳送端或接收端。從屬端 - 由主控端定址的器件。從屬端可以扮演接收端或發(fā)送端的角色。多重主控端 - 在總線上可同時存一個以上的主控端,并且不會造成沖突或數(shù)據(jù)遺失。通常來說運用 "bit-banged" 軟件的主控端并不具有多重主控端能力,I²C 總線控制器提供了一個將多重主控端硬件 I²C 連接端口加入到 DSP 或 ASIC 的簡單方法。仲裁機制 - 預(yù)先定義在特定時間內(nèi)只有一個主控端能夠取得總線控制權(quán)。同步 - 預(yù)先將二個

2、或二個以上的主控端時鐘信號予以同步化的定義程序。SDA - 串行數(shù)據(jù)信號線 (Serial DAta)SCL - 串行時鐘信號線 (Serial CLock) 目標(biāo)器件的 I²C 地址在第一個位組中送出,而這個起始位組中最不重要位 (LSB) 則用來表明主控端將進行發(fā)送 (寫入) 數(shù)據(jù)或由接收端接收 (讀取) 數(shù)據(jù),稱為從屬器件,每筆數(shù)據(jù)交換必須以 START 指令開頭,并以 STOP 或 RESTART 情況結(jié)束。如果同一個 I²C 總線上有兩個主控端,且同時發(fā)出 START 指令要控制總線時,那么就會以仲裁機制處理。當(dāng)主控端,如微控器,已經(jīng)控制總線時,其他的主控端必須等

3、到第一個主控端送出 STOP 指令,并且將總線回復(fù)閑置狀態(tài)時,才能控制總線。 總線數(shù)據(jù)傳送術(shù)語 F (FREE) - 總線為可用或閑置狀態(tài),這時 SDA 串行數(shù)據(jù)線與 SCL 串行時鐘均為高電位狀態(tài)。S (START) 或 R (RESTART) - 數(shù)據(jù)傳送是以 START 情況開始,這時 SDA 串行數(shù)據(jù)線的電壓位準(zhǔn)會從高電位轉(zhuǎn)變?yōu)榈碗娢唬?SCL 串行時鐘則保持在高電位,當(dāng)這個情況發(fā)生時,代表了總線進入忙碌 (BUSY) 狀態(tài)。C (CHANGE) - 當(dāng) SCL 串行時鐘數(shù)據(jù)線為低電位時,數(shù)據(jù)位就可以由發(fā)送端放置到 SDA 串行數(shù)據(jù)在線,在這段時間內(nèi),只要 SCL 串行時鐘一直維持在

4、低電位狀態(tài),SDA 可以改變它的狀態(tài)。D (DATA) - SDA 串行數(shù)據(jù)在線高或低電位的數(shù)據(jù)在 SCL 串行時鐘線處于高位準(zhǔn)時,在整個傳輸過程中時鐘必須穩(wěn)定維持在高電位以避免錯誤判讀為 START 或 STOP 情況。P (STOP) - 數(shù)據(jù)傳輸在收到 STOP 指令時結(jié)束,這時候 SDA 串行數(shù)據(jù)線的位準(zhǔn)由低電位回復(fù)到高電位,而 SCL 串行時鐘線則維持在高電位,一但數(shù)據(jù)傳送結(jié)束后,總線會在自動回復(fù)到可用狀態(tài)。 電位轉(zhuǎn)換 I²C  由于新的 I²C 器件以各種不同的電壓運作,因此飛利浦半導(dǎo)體開發(fā)出一個解決方案,幾乎不需要任何額外的動作或成本就能使不同電源電

5、壓的 I²C 器件擁有完整的雙向數(shù)據(jù)傳輸電路,只要在 I²C 總線的不同電壓位準(zhǔn)間加上兩顆低成本的晶體管,將電位轉(zhuǎn)換器兩端總線上的邏輯電壓位準(zhǔn)加以隔離,這樣的安排同時也讓這個電壓轉(zhuǎn)換電路可以用來隔離總線上已經(jīng)斷電的裝置,使連上電源的 I²C 器件持續(xù)正常運作,這些電位轉(zhuǎn)換功能也可以由低成本電位轉(zhuǎn)換總線緩沖器或 GTL 轉(zhuǎn)換器件來達(dá)成,I²C 總線規(guī)格也拓展到運作電壓在 2.7 V 以下的器件,確保 I²C 總線在邁入新世紀(jì)時仍是新一代系統(tǒng)串行總線的最佳選擇。 高速模式 I²C 總線 高速串行存儲器與混合技術(shù)電信系統(tǒng)的發(fā)展使得總線必須在

6、不同電源電壓下高速運作,而 I²C 總線高速 (High speed) 模式 (3.4MHz) 正好可以滿足這些需求,在完全不影響與現(xiàn)有的(Standard) 與快速 (Fast) 模式器件的兼容性,并保留低成本、簡易的特色,不需任何特殊邏輯電位、時序或驅(qū)動能力。高速模式主控端內(nèi)特別設(shè)計的橋接器結(jié)構(gòu)可以讓快速與標(biāo)準(zhǔn)模式器件在同一個 I²C 總線系統(tǒng)中雙向通信,在必要時主控端也可以進行雙向電位轉(zhuǎn)換,以支持各種不同電源電壓的器件,這種高速模式通常只出現(xiàn)在需要傳送大量的數(shù)據(jù)的器件上,如 LCD 顯示屏、高位數(shù) ADC 或高容量 EEPROM 等,其他大多數(shù)的維護與控制應(yīng)用則以 1

7、00kHz 速度運作的 I²C 總線為主。 10-bit I²C 定址機制 10-bit I²C 定址可以使用高達(dá) 1024 個額外地址,避免因 I²C 器件快速增加所帶來的從屬地址分配問題。它并未改變 I²C 總線規(guī)格中所定義的地址格式,而是使用現(xiàn)有規(guī)格中所保留的地址。10-bit 定址并不會影響現(xiàn)有的 7-bit 定址功能,采用 7-bit 與 10-bit 定址的器件可以連接到相同的 I²C 總線上,而兩種形式的器件也可以使用在標(biāo)準(zhǔn)、快速或高速模式系統(tǒng)中,雖然多數(shù)的 I²C 器件都還是采用 7-bit 定址,然而設(shè)計工

8、程師仍可以利用多個 I²C 總線連接端口或多功器/交換器來達(dá)成總線上較小數(shù)量的器件,作為另一個解決這個定址的考量。 I²C 與 SMBus 比較 由 Intel 在 1990 所開發(fā)的系統(tǒng)管理總線 (SMBus, System Management Bus),屬于 I²C 總線常見的衍生規(guī)格,通??膳c I²C 兼容,兩個總線都采用兩線式通信方式,并且都擁有可定址的從屬端,其中 SMBus 的最高數(shù)據(jù)傳輸率只有 100 kbps,因此需要經(jīng)過特別處理,才能使用在擁有較高傳輸率 I²C 的系統(tǒng)中,其他的差異還包括計時與最小時鐘速率、電壓位準(zhǔn)、提升電

9、阻值與電流位準(zhǔn),新的 I²C 器件已經(jīng)陸續(xù)加入 SMBus 的功能,如可以依特定應(yīng)用需求將計時 (timeout) 功能加以開啟或關(guān)閉 下面是I2C 總線的一些特征 只要求兩條總線線路一條串行數(shù)據(jù)線SDA 一條串行時鐘線SCL 每個連接到總線的器件都可以通過唯一的地址和一直存在的簡單的主機從機關(guān)系軟件設(shè)定地址主機可以作為主機發(fā)送器或主機接收器 它是一個真正的多主機總線如果兩個或更多主機同時初始化數(shù)據(jù)傳輸可以通過沖突檢測和仲裁防止數(shù)據(jù)被破壞 串行的8 位雙向數(shù)據(jù)傳輸位速率在標(biāo)準(zhǔn)模式下可達(dá)100kbit/s 快速模式下可達(dá)400kbit/s 高速模式下可達(dá)3.4Mbit/s 片上的濾波器

10、可以濾去總線數(shù)據(jù)線上的毛刺波保證數(shù)據(jù)完整SPI總線:一種串行傳輸方式,三線制,網(wǎng)上可找到其通信協(xié)議和用法的 3根線實現(xiàn)數(shù)據(jù)雙向傳輸 串行外圍接口 Serial peripheral interfaceSPI協(xié)議簡介一 SPI協(xié)議概括SPI,是英語Serial Peripheral interface的縮寫,顧名思義就是串行外圍設(shè)備接口。是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應(yīng)用在 EEPROM,F(xiàn)LASH,實時時鐘,AD轉(zhuǎn)換器,還有數(shù)字信號處理器和數(shù)字信號解碼器之間。SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的

11、管腳,同時為PCB的布局上節(jié)省空間,提供方便,正是出于這種簡單易用的特性,現(xiàn)在越來越多的芯片集成了這種通信協(xié)議,比如AT91RM9200.SPI的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設(shè)備和一個或多個從設(shè)備,需要至少4根線,事實上3根也可以(單向傳輸時)。也是所有基于SPI的設(shè)備共有的,它們是SDI(數(shù)據(jù)輸入),SDO(數(shù)據(jù)輸出),SCK(時鐘),CS(片選)。(1)SDO     主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入(2)SDI      主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出(3)SCLK 

12、;  時鐘信號,由主設(shè)備產(chǎn)生(4)CS        從設(shè)備使能信號,由主設(shè)備控制其中CS是控制芯片是否被選中的,也就是說只有片選信號為預(yù)先規(guī)定的使能信號時(高電位或低電位),對此芯片的操作才有效。這就允許在同一總線上連接多個SPI設(shè)備成為可能。接下來就負(fù)責(zé)通訊的3根線了。通訊是通過數(shù)據(jù)交換完成的,這里先要知道SPI是串行通訊協(xié)議,也就是說數(shù)據(jù)是一位一位的傳輸?shù)?。這就是SCK時鐘線存在的原因,由SCK提供時鐘脈沖,SDI,SDO則基于此脈沖完成數(shù)據(jù)傳輸。數(shù)據(jù)輸出通過 SDO線,數(shù)據(jù)在時鐘上升沿或下降沿時改變,在緊接

13、著的下降沿或上升沿被讀取。完成一位數(shù)據(jù)傳輸,輸入也使用同樣原理。這樣,在至少8次時鐘信號的改變(上沿和下沿為一次),就可以完成8位數(shù)據(jù)的傳輸。 要注意的是,SCK信號線只由主設(shè)備控制,從設(shè)備不能控制信號線。同樣,在一個基于SPI的設(shè)備中,至少有一個主控設(shè)備。這樣傳輸?shù)奶攸c:這樣的傳輸方式有一個優(yōu)點,與普通的串行通訊不同,普通的串行通訊一次連續(xù)傳送至少8位數(shù)據(jù),而SPI允許數(shù)據(jù)一位一位的傳送,甚至允許暫停,因為SCK時鐘線由主控設(shè)備控制,當(dāng)沒有時鐘跳變時,從設(shè)備不采集或傳送數(shù)據(jù)。也就是說,主設(shè)備通過對SCK時鐘線的控制可以完成對通訊的控制。SPI還是一個數(shù)據(jù)交換協(xié)議:因為SPI的數(shù)據(jù)輸入和輸出線

14、獨立,所以允許同時完成數(shù)據(jù)的輸入和輸出。不同的SPI設(shè)備的實現(xiàn)方式不盡相同,主要是數(shù)據(jù)改變和采集的時間不同,在時鐘信號上沿或下沿采集有不同定義,具體請參考相關(guān)器件的文檔。在點對點的通信中,SPI接口不需要進行尋址操作,且為全雙工通信,顯得簡單高效。在多個從設(shè)備的系統(tǒng)中,每個從設(shè)備需要獨立的使能信號,硬件上比I2C系統(tǒng)要稍微復(fù)雜一些。最后,SPI接口的一個缺點:沒有指定的流控制,沒有應(yīng)答機制確認(rèn)是否接收到數(shù)據(jù)。AT91RM9200的SPI接口主要由4個引腳構(gòu)成:SPICLK、MOSI、MISO及 /SS,其中SPICLK是整個SPI總線的公用時鐘,MOSI、MISO作為主機,從機的輸入輸出的標(biāo)志

15、,MOSI是主機的輸出,從機的輸入,MISO 是主機的輸入,從機的輸出。/SS是從機的標(biāo)志管腳,在互相通信的兩個SPI總線的器件,/SS管腳的電平低的是從機,相反/SS管腳的電平高的是主機。在一個SPI通信系統(tǒng)中,必須有主機。SPI總線可以配置成單主單從,單主多從,互為主從。SPI的片選可以擴充選擇16個外設(shè),這時PCS輸出=NPCS,說NPCS03接4-16譯碼器,這個譯碼器是需要外接4-16譯碼器,譯碼器的輸入為NPCS03,輸出用于16個外設(shè)的選擇。二 SPI協(xié)議舉例SPI是一個環(huán)形總線結(jié)構(gòu),由ss(cs)、sck、sdi、sdo構(gòu)成,其時序其實很簡單,主要是在sck的控制下,兩個雙向移

16、位寄存器進行數(shù)據(jù)交換。       假設(shè)下面的8位寄存器裝的是待發(fā)送的數(shù)據(jù)10101010,上升沿發(fā)送、下降沿接收、高位先發(fā)送。       那么第一個上升沿來的時候 數(shù)據(jù)將會是sdo=1;寄存器=0101010x。下降沿到來的時候,sdi上的電平將所存到寄存器中去,那么這時寄存器=0101010sdi,這樣在 8個時鐘脈沖以后,兩個寄存器的內(nèi)容互相交換一次。這樣就完成里一個spi時序。舉例:      假設(shè)主機和從

17、機初始化就緒:并且主機的sbuff=0xaa,從機的sbuff=0x55,下面將分步對spi的8個時鐘周期的數(shù)據(jù)情況演示一遍:假設(shè)上升沿發(fā)送數(shù)據(jù) 這樣就完成了兩個寄存器8位的交換,上面的上表示上升沿、下表示下降沿,sdi、sdo相對于主機而言的。其中ss引腳作為主機的時候,從機可以把它拉底被動選為從機,作為從機的是時候,可以作為片選腳用。根據(jù)以上分析,一個完整的傳送周期是16位,即兩個字節(jié),因為,首先主機要發(fā)送命令過去,然后從機根據(jù)主機的命令準(zhǔn)備數(shù)據(jù),主機在下一個8位時鐘周期才把數(shù)據(jù)讀回來。      SPI 總線是Motorola公司推出的三

18、線同步接口,同步串行3線方式進行通信:一條時鐘線SCK,一條數(shù)據(jù)輸入線MOSI,一條數(shù)據(jù)輸出線MISO;用于CPU與各種外圍器件進行全雙工、同步串行通訊。SPI主要特點有:可以同時發(fā)出和接收串行數(shù)據(jù);可以當(dāng)作主機或從機工作;提供頻率可編程時鐘;發(fā)送結(jié)束 中斷標(biāo)志;寫沖突保護;總線競爭保護等。下圖示出SPI總線工作的四種方式,其中使用的最為廣泛的是SPI0和SPI3方式 (實線表示):                  

19、;                                                  

20、;                                                  

21、;                                                  

22、;                           SPI總線四種工作方式 SPI 模塊為了和外設(shè)進行數(shù)據(jù)交換,根據(jù)外設(shè)工作要求,其輸出串行同步時鐘極性和相位可以進行配置,時鐘極性(CPOL)對傳輸協(xié)議沒有重大的影響。如果 CPOL=0,串行同步時鐘的空閑狀態(tài)為低電平;如果CPOL=1,串行同步時鐘的空閑狀態(tài)為高電平。時鐘相位(CPH

23、A)能夠配置用于選擇兩種不同的傳輸協(xié)議之一進行數(shù)據(jù)傳輸。如果CPHA=0,在串行同步時鐘的第一個跳變沿(上升或下降)數(shù)據(jù)被采樣;如果CPHA=1,在串行同步時鐘的第二個跳變沿(上升或下降)數(shù)據(jù)被采樣。SPI主模塊和與之通信的外設(shè)備時鐘相位和極性應(yīng)該一致。SPI總線包括1根串行同步時鐘信號線以及2根數(shù)據(jù)線。       SPI模塊為了和外設(shè)進行數(shù)據(jù)交換,根據(jù)外設(shè)工作要求,其輸出串行同步時鐘極性和相位可以進行配置,時鐘極性(CPOL)對傳輸協(xié)議沒有重大的影響。如果CPOL=0,串行同步時鐘的空閑狀態(tài)為低電平;如果CPOL=1,串行同步時鐘

24、的空閑狀態(tài)為高電平。時鐘相位(CPHA)能夠配置用于選擇兩種不同的傳輸協(xié)議之一進行數(shù)據(jù)傳輸。如果CPHA=0,在串行同步時鐘的第一個跳變沿(上升或下降)數(shù)據(jù)被采樣;如果CPHA=1,在串行同步時鐘的第二個跳變沿(上升或下降)數(shù)據(jù)被采樣。SPI主模塊和與之通信的外設(shè)音時鐘相位和極性應(yīng)該一致。SPI接口時序如圖3、圖4所示。補充: 上文中最后一句話:SPI主模塊和與之通信的外設(shè)備時鐘相位和極性應(yīng)該一致。個人理解這句話有2層意思:其一,主設(shè)備SPI時鐘和極性的配置應(yīng)該由外設(shè)來決定;其二,二者的配置應(yīng)該保持一致,即主設(shè)備的SDO同從設(shè)備的SDO配置一致,主設(shè)備的SDI同從設(shè)備的SDI配置一致。因為主從

25、設(shè)備是在SCLK的控制下,同時發(fā)送和接收數(shù)據(jù),并通過2個雙向移位寄存器來交換數(shù)據(jù)。工作原理演示如下圖:上升沿主機SDO發(fā)送數(shù)據(jù)1,同時從設(shè)備SDO發(fā)送數(shù)據(jù)0;緊接著在SCLK的下降沿的時候從設(shè)備的SDI接收到了主機發(fā)送過來的數(shù)據(jù)1,同時主機也接收到了從設(shè)備發(fā)送過來的數(shù)據(jù)0.三 SPI協(xié)議心得SPI接口時鐘配置心得:在主設(shè)備這邊配置SPI接口時鐘的時候一定要弄清楚從設(shè)備的時鐘要求,因為主設(shè)備這邊的時鐘極性和相位都是以從設(shè)備為基準(zhǔn)的。因此在時鐘極性的配置上一定要搞清楚從設(shè)備是在時鐘的上升沿還是下降沿接收數(shù)據(jù),是在時鐘的下降沿還是上升沿輸出數(shù)據(jù)。但要注意的是,由于主設(shè)備的SDO連接從設(shè)備的SDI,從

26、設(shè)備的SDO連接主設(shè)備的SDI,從設(shè)備SDI接收的數(shù)據(jù)是主設(shè)備的SDO發(fā)送過來的,主設(shè)備SDI接收的數(shù)據(jù)是從設(shè)備SDO發(fā)送過來的,所以主設(shè)備這邊SPI時鐘極性的配置(即SDO的配置)跟從設(shè)備的SDI接收數(shù)據(jù)的極性是相反的,跟從設(shè)備SDO發(fā)送數(shù)據(jù)的極性是相同的。下面這段話是Sychip Wlan8100 Module Spec上說的,充分說明了時鐘極性是如何配置的:The 81xx module will always input data bits at the rising edge of the clock, and the host will always output data bit

27、s on the falling edge of the clock.意思是:主設(shè)備在時鐘的下降沿發(fā)送數(shù)據(jù),從設(shè)備在時鐘的上升沿接收數(shù)據(jù)。因此主設(shè)備這邊SPI時鐘極性應(yīng)該配置為下降沿有效。又如,下面這段話是摘自LCD Driver IC SSD1289:SDI is shifted into 8-bit shift register on every rising edge of SCK in the order of data bit 7, data bit 6 data bit 0.意思是:從設(shè)備SSD1289在時鐘的上升沿接收數(shù)據(jù),而且是按照從高位到地位的順序接收數(shù)據(jù)的。因此主設(shè)備的SP

28、I時鐘極性同樣應(yīng)該配置為下降沿有效。時鐘極性和相位配置正確后,數(shù)據(jù)才能夠被準(zhǔn)確的發(fā)送和接收。因此應(yīng)該對照從設(shè)備的SPI接口時序或者Spec文檔說明來正確配置主設(shè)備的時鐘。芯片設(shè)計中流行的3種嵌入式低速串行總線為I2C,SPI,CAN總線.都是為在為數(shù)字設(shè)備之間傳輸數(shù)據(jù),以實現(xiàn)最少的引腳,最優(yōu)的速度,低成本,達(dá)到經(jīng)濟高效作用而開發(fā)的.     I2C總線是philip在80年代開發(fā)的,成為了IC間的串行通信標(biāo)準(zhǔn),采用簡單的2線設(shè)計,可以用于各種芯片中,如I/O,A/D,D/A,傳感器和MCU等.任何I2C設(shè)備都可以連接到I2C總線上,允許任何MASTER和

29、SLAVER設(shè)備交換信息.     SPI總線是主要用于處理器和外設(shè)同步串行通信的4線接口.SPI采用同步時鐘,同步時鐘把串行數(shù)據(jù)以8bit的整數(shù)倍移入和移出處理器.SPI是主從接口,CLOCK由MASTER產(chǎn)生,在使用SPI時,會同時發(fā)送和接收數(shù)據(jù),使其成為一種全雙工協(xié)議.    CAN(控制器區(qū)域總線)總線是博世公司在80年代開發(fā)的一種分層串行傳輸協(xié)議,在電氣噪聲的環(huán)境中控制電子設(shè)備以及通訊,92年在奔馳汽車上采用了該總線,現(xiàn)在也廣泛應(yīng)用在汽車控制網(wǎng)絡(luò)中.速度高達(dá)1Mbps40M.   &#

30、160; 這個板塊主要是設(shè)計SPI接口,所以對以上的串行總線只是簡單概括,在后續(xù)的章節(jié)中給與詳細(xì)比較.SPI總線簡介 0推薦同步外設(shè)接口(SPI)是由摩托羅拉公司開發(fā)的全雙工同步串行總線,該總線大量用在與EEPROM、ADC、FRAM和顯示驅(qū)動器之類的慢速外設(shè)器件通信。 SPI(Serial Peripheral Interface)是一種串行同步通訊協(xié)議,由一個主設(shè)備和一個或多個從設(shè)備組成,主設(shè)備啟動一個與從設(shè)備的同步通訊,從而完成數(shù)據(jù)的交換。SPI 接口由SDI(串行數(shù)據(jù)輸入),SDO(串行數(shù)據(jù)輸出),SCK(串行移位時鐘),CS(從使能信號)四種信號構(gòu)成,CS 決定了唯一的與主設(shè)備通信的

31、從設(shè)備,如沒有CS 信號,則只能存在一個從設(shè)備,主設(shè)備通過產(chǎn)生移位時鐘來發(fā)起通訊。通訊時,數(shù)據(jù)由SDO 輸出,SDI 輸入,數(shù)據(jù)在時鐘的上升或下降沿由SDO 輸出,在緊接著的下降或上升沿由SDI 讀入,這樣經(jīng)過8/16 次時鐘的改變,完成8/16 位數(shù)據(jù)的傳輸。SPI通信該總線通信基于主-從配置。它有以下4個信號:MOSI:主出/從入MISO:主入/從出SCK:串行時鐘SS:從屬選擇芯片上“從屬選擇”(slave-select)的引腳數(shù)決定了可連到總線上的器件數(shù)量。        在SPI傳輸中,數(shù)據(jù)是同步進行發(fā)送和接收的。

32、數(shù)據(jù)傳輸?shù)臅r鐘基于來自主處理器的時鐘脈沖,摩托羅拉沒有定義任何通用SPI的時鐘規(guī)范。然而,最常用的時鐘設(shè)置基于時鐘極性(CPOL)和時鐘相位(CPHA)兩個參數(shù),CPOL定義SPI串行時鐘的活動狀態(tài),而CPHA定義相對于SO-數(shù)據(jù)位的時鐘相位。CPOL和CPHA的設(shè)置決定了數(shù)據(jù)取樣的時鐘沿。數(shù)據(jù)方向和通信速度        SPI傳輸串行數(shù)據(jù)時首先傳輸最高位。波特率可以高達(dá)5Mbps,具體速度大小取決于SPI硬件。例如,Xicor公司的SPI串行器件傳輸速度能達(dá)到5MHz。SPI總線接口及時序SPI總線包括1根串行同步時鐘信

33、號線以及2根數(shù)據(jù)線。SPI模塊為了和外設(shè)進行數(shù)據(jù)交換,根據(jù)外設(shè)工作要求,其輸出串行同步時鐘極性和相位可以進行配置,時鐘極性(CPOL)對傳輸協(xié)議沒有重大的影響。如果CPOL=0,串行同步時鐘的空閑狀態(tài)為低電平;如果CPOL=1,串行同步時鐘的空閑狀態(tài)為高電平。時鐘相位(CPHA)能夠配置用于選擇兩種不同的傳輸協(xié)議之一進行數(shù)據(jù)傳輸。如果CPHA=0,在串行同步時鐘的第一個跳變沿(上升或下降)數(shù)據(jù)被采樣;如果CPHA=1,在串行同步時鐘的第二個跳變沿(上升或下降)數(shù)據(jù)被采樣。SPI主模塊和與之通信的外設(shè)音時鐘相位和極性應(yīng)該一致。SPI接口時序如圖3、圖4所示。 SPI是一個環(huán)形總線結(jié)構(gòu),

34、由ss(cs)、sck、sdi、sdo構(gòu)成,其時序其實很簡單,主要是在sck的控制下,兩個雙向移位寄存器進行數(shù)據(jù)交換。      假設(shè)下面的8位寄存器裝的是待發(fā)送的數(shù)據(jù)10101010,上升沿發(fā)送、下降沿接收、高位先發(fā)送。      那么第一個上升沿來的時候數(shù)據(jù)將會是sdo=1;寄存器=0101010x。下降沿到來的時候,sdi上的電平將所存到寄存器中去,那么這時寄存器=0101010sdi,這樣在8個時鐘脈沖以后,兩個寄存器的內(nèi)容互相交換一次。這樣就完成里一個spi時序。&

35、#160;     例子:      假設(shè)主機和從機初始化就緒:并且主機的sbuff=0xaa,從機的sbuff=0x55,下面將分步對spi的8個時鐘周期的數(shù)據(jù)情況演示一遍:假設(shè)上升沿發(fā)送數(shù)據(jù) 脈沖主機sbuff從機sbuffsdisdo01010101001010101001上0101010x1010101x011下0101010010101011012上1010100x0101011x102下1010100101010110103上0101001x1010110x013

36、下0101001010101101014上1010010x0101101x104下1010010101011010105上0100101x1011010x015下0100101010110101016上1001010x0110101x106下1001010101101010107上0010101x1101010x017下0010101011010101018上0101010x1010101x108下010101011010101010這樣就完成了兩個寄存器8位的交換,上面的上表示上升沿、下表示下降沿,sdi、sdo相對于主機而言的。其中ss引腳作為主機的時候,從機可以把它拉底被動選為從機,作為

37、從機的是時候,可以作為片選腳用。根據(jù)以上分析,一個完整的傳送周期是16位,即兩個字節(jié),因為,首先主機要發(fā)送命令過去,然后從機根據(jù)主機的名準(zhǔn)備數(shù)據(jù),主機在下一個8位時鐘周期才把數(shù)據(jù)讀回來 SPI 總線是Motorola公司推出的三線同步接口,同步串行3線方式進行通信:一條時鐘線SCK,一條數(shù)據(jù)輸入線MOSI,一條數(shù)據(jù)輸出線MISO;用于CPU與各種外圍器件進行全雙工、同步串行通訊。SPI主要特點有:可以同時發(fā)出和接收串行數(shù)據(jù);可以當(dāng)作主機或從機工作;提供頻率可編程時鐘;發(fā)送結(jié)束中斷標(biāo)志;寫沖突保護;總線競爭保護等。圖3示出SPI總線工作的四種方式,其中使用的最為廣泛的是SPI0和SPI

38、3方式(實線表示):圖2   SPI總線四種工作方式SPI模塊為了和外設(shè)進行數(shù)據(jù)交換,根據(jù)外設(shè)工作要求,其輸出串行同步時鐘極性和相位可以進行配置,時鐘極性(CPOL)對傳輸協(xié)議沒有重大的影響。如果CPOL=0,串行同步時鐘的空閑狀態(tài)為低電平;如果CPOL=1,串行同步時鐘的空閑狀態(tài)為高電平。時鐘相位(CPHA)能夠配置用于選擇兩種不同的傳輸協(xié)議之一進行數(shù)據(jù)傳輸。如果CPHA=0,在串行同步時鐘的第一個跳變沿(上升或下降)數(shù)據(jù)被采樣;如果CPHA=1,在串行同步時鐘的第二個跳變沿(上升或下降)數(shù)據(jù)被采樣。SPI主模塊和與之通信的外設(shè)音時鐘相位和極性應(yīng)該一致。SPI接口時序如圖

39、3、圖4所示。二,.SPI功能模塊的設(shè)計根據(jù)功能定義及SPI的工作原理,將整個IP Core分為8個子模塊:uC接口模塊、時鐘分頻模塊、發(fā)送數(shù)據(jù)FIFO模塊、接收數(shù)據(jù)FIFO模塊、狀態(tài)機模塊、發(fā)送數(shù)據(jù)邏輯模塊、接收數(shù)據(jù)邏輯模塊以及中斷形式模塊。深入分析SPI的四種傳輸協(xié)議可以發(fā)現(xiàn),根據(jù)一種協(xié)議,只要對串行同步時鐘進行轉(zhuǎn)換,就能得到其余的三種協(xié)議。為了簡化設(shè)計規(guī)定,如果要連續(xù)傳輸多個數(shù)據(jù),在兩個數(shù)據(jù)傳輸之間插入一個串行時鐘的空閑等待,這樣狀態(tài)機只需兩種狀態(tài)(空閑和工作)就能正確工作。#1 樓主:CAN總線簡介 貼子發(fā)表于:2007-9-12 19:54:411. C

40、AN總線的產(chǎn)生與發(fā)展 控制器局部網(wǎng)(CANCONTROLLER AREA NETWORK)是BOSCH公司為現(xiàn)代汽車應(yīng)用領(lǐng)先推出的一種多主機局部網(wǎng),由于其卓越性能現(xiàn)已廣泛應(yīng)用于工業(yè)自動化、多種控制設(shè)備、交通工具、醫(yī)療儀器以及建筑、環(huán)境控制等眾多部門??刂破骶植烤W(wǎng)將在我國迅速普及推廣。 隨著計算機硬件、軟件技術(shù)及集成電路技術(shù)的迅速發(fā)展,工業(yè)控制系統(tǒng)已成為計算機技術(shù)應(yīng)用領(lǐng)域中最具活力的一個分支,并取得了巨大進步。由于對系統(tǒng)可靠性和靈活性的高要求,工業(yè)控制系統(tǒng)的發(fā)展主要表現(xiàn)為:控制面向多元化,系統(tǒng)面向分散化,即負(fù)載分散、功能分散、危險分散和地域分散。 分散式工業(yè)控制系統(tǒng)就是為適應(yīng)這種需要而

41、發(fā)展起來的。這類系統(tǒng)是以微型機為核心,將 5C技術(shù)-COMPUTER(計算機技術(shù))、CONTROL (自動控制技術(shù))、COMMUNICATION(通信技術(shù))、CRT(顯示技術(shù))和 CHANGE(轉(zhuǎn)換技術(shù))緊密結(jié)合的產(chǎn)物。它在適應(yīng)范圍、可擴展性、可維護性以及抗故障能力等方面,較之分散型儀表控制系統(tǒng)和集中型計算機控制系統(tǒng)都具有明顯的優(yōu)越性。 典型的分散式控制系統(tǒng)由現(xiàn)場設(shè)備、接口與計算設(shè)備以及通信設(shè)備組成。現(xiàn)場總線(FIELDBUS)能同時滿足過程控制和制造業(yè)自動化的需要,因而現(xiàn)場總線已成為工業(yè)數(shù)據(jù)總線領(lǐng)域中最為活躍的一個領(lǐng)域。現(xiàn)場總線的研究與應(yīng)用已成為工業(yè)數(shù)據(jù)總線領(lǐng)域的熱點。盡管目前對現(xiàn)場總線的研

42、究尚未能提出一個完善的標(biāo)準(zhǔn),但現(xiàn)場總線的高性能價格比將吸引眾多工業(yè)控制系統(tǒng)采用。同時,正由于現(xiàn)場總線的標(biāo)準(zhǔn)尚未統(tǒng)一,也使得現(xiàn)場總線的應(yīng)用得以不拘一格地發(fā)揮,并將為現(xiàn)場總線的完善提供更加豐富的依據(jù)??刂破骶植烤W(wǎng) CAN(CONTROLLER AERANETWORK)正是在這種背景下應(yīng)運而生的。 由于CAN為愈來愈多不同領(lǐng)域采用和推廣,導(dǎo)致要求各種應(yīng)用領(lǐng)域通信報文的標(biāo)準(zhǔn)化。為此,1991年 9月 PHILIPS SEMICONDUCTORS制訂并發(fā)布了 CAN技術(shù)規(guī)范(VERSION 2.0)。該技術(shù)規(guī)范包括A和B兩部分。2.0A給出了曾在CAN技術(shù)規(guī)范版本1.2中定義的CAN報文格式,而2.0B

43、給出了標(biāo)準(zhǔn)的和擴展的兩種報文格式。此后,1993年11月ISO正式頒布了道路交通運載工具-數(shù)字信息交換-高速通信控制器局部網(wǎng)(CAN)國際標(biāo)準(zhǔn)(ISO11898),為控制器局部網(wǎng)標(biāo)準(zhǔn)化、規(guī)范化推廣鋪平了道路。 2. CAN總線特點 CAN總線是德國BOSCH公司從80年代初為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,它是一種多主總線,通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維。通信速率可達(dá)1MBPS。CAN總線通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗、優(yōu)先級判別等項工作。 CAN協(xié)議的

44、一個最大特點是廢除了傳統(tǒng)的站地址編碼,而代之以對通信數(shù)據(jù)塊進行編碼。采用這種方法的優(yōu)點可使網(wǎng)絡(luò)內(nèi)的節(jié)點個數(shù)在理論上不受限制,數(shù)據(jù)塊的標(biāo)識碼可由11位或29位二進制數(shù)組成,因此可以定義211或229個不同的數(shù)據(jù)塊,這種按數(shù)據(jù)塊編碼的方式,還可使不同的節(jié)點同時接收到相同的數(shù)據(jù),這一點在分布式控制系統(tǒng)中非常有用。數(shù)據(jù)段長度最多為8個字節(jié),可滿足通常工業(yè)領(lǐng)域中控制命令、工作狀態(tài)及測試數(shù)據(jù)的一般要求。同時,8個字節(jié)不會占用總線時間過長,從而保證了通信的實時性。CAN協(xié)議采用CRC檢驗并可提供相應(yīng)的錯誤處理功能,保證了數(shù)據(jù)通信的可靠性。CAN卓越的特性、極高的可靠性和獨特的設(shè)計,特別適合工業(yè)過程監(jiān)控設(shè)備的

45、互連,因此,越來越受到工業(yè)界的重視,并已公認(rèn)為最有前途的現(xiàn)場總線之一。 另外,CAN總線采用了多主競爭式總線結(jié)構(gòu),具有多主站運行和分散仲裁的串行總線以及廣播通信的特點。CAN總線上任意節(jié)點可在任意時刻主動地向網(wǎng)絡(luò)上其它節(jié)點發(fā)送信息而不分主次,因此可在各節(jié)點之間實現(xiàn)自由通信。CAN總線協(xié)議已被國際標(biāo)準(zhǔn)化組織認(rèn)證,技術(shù)比較成熟,控制的芯片已經(jīng)商品化,性價比高,特別適用于分布式測控系統(tǒng)之間的數(shù)通訊。CAN總線插卡可以任意插在PC AT XT兼容機上,方便地構(gòu)成分布式監(jiān)控系統(tǒng)。 3. CAN總線技術(shù)介紹 3.1位仲裁 要對數(shù)據(jù)進行實時處理,就必須將數(shù)據(jù)快速傳送,這就要求數(shù)據(jù)的物理傳輸通路有較高的速度。

46、在幾個站同時需要發(fā)送數(shù)據(jù)時,要求快速地進行總線分配。實時處理通過網(wǎng)絡(luò)交換的緊急數(shù)據(jù)有較大的不同。一個快速變化的物理量,如汽車引擎負(fù)載,將比類似汽車引擎溫度這樣相對變化較慢的物理量更頻繁地傳送數(shù)據(jù)并要求更短的延時。 CAN總線以報文為單位進行數(shù)據(jù)傳送,報文的優(yōu)先級結(jié)合在11位標(biāo)識符中,具有最低二進制數(shù)的標(biāo)識符有最高的優(yōu)先級。這種優(yōu)先級一旦在系統(tǒng)設(shè)計時被確立后就不能再被更改??偩€讀取中的沖突可通過位仲裁解決。如圖2所示,當(dāng)幾個站同時發(fā)送報文時,站1的報文標(biāo)識符為011111;站2的報文標(biāo)識符為 0100110;站3的報文標(biāo)識符為0100111。所有標(biāo)識符都有相同的兩位01,直到第3位進行比較時,站

47、1的報文被丟掉,因為它的第3位為高,而其它兩個站的報文第3位為低。站2和站3報文的4、5、6位相同,直到第7位時,站3的報文才被丟失。注意,總線中的信號持續(xù)跟蹤最后獲得總線讀取權(quán)的站的報文。在此例中,站2的報文被跟蹤。這種非破壞性位仲裁方法的優(yōu)點在于,在網(wǎng)絡(luò)最終確定哪一個站的報文被傳送以前,報文的起始部分已經(jīng)在網(wǎng)絡(luò)上傳送了。所有未獲得總線讀取權(quán)的站都成為具有最高優(yōu)先權(quán)報文的接收站,并且不會在總線再次空閑前發(fā)送報文。 CAN具有較高的效率是因為總線僅僅被那些請求總線懸而未決的站利用,這些請求是根據(jù)報文在整個系統(tǒng)中的重要性按順序處理的。這種方法在網(wǎng)絡(luò)負(fù)載較重時有很多優(yōu)點,因為總線讀取的優(yōu)先級已被按

48、順序放在每個報文中了,這可以保證在實時系統(tǒng)中較低的個體隱伏時間。 對于主站的可靠性,由于CAN協(xié)議執(zhí)行非集中化總線控制,所有主要通信,包括總線讀取 (許可)控制,在系統(tǒng)中分幾次完成。這是實現(xiàn)有較高可靠性的通信系統(tǒng)的唯一方法 3.2 CAN與其它通信方案的比較 在實踐中,有兩種重要的總線分配方法:按時間表分配和按需要分配。在第一種方法中 ,不管每個節(jié)點是否申請總線,都對每個節(jié)點按最大期間分配。由此,總線可被分配給每個站并且是唯一的站,而不論其是立即進行總線存取或在一特定時間進行總線存取。這將保證在總線存取時有明確的總線分配。在第二種方法中,總線按傳送數(shù)據(jù)的基本要求分配給一個站 ,總線系統(tǒng)按站希望

49、的傳送分配(如:Ethernet CSMA/CD)。因此,當(dāng)多個站同時請求總線存取時,總線將終止所有站的請求,這時將不會有任何一個站獲得總線分配。為了分配總線,多于一個總線存取是必要的。 CAN實現(xiàn)總線分配的方法,可保證當(dāng)不同的站申請總線存取時,明確地進行總線分配。這種位仲裁的方法可以解決當(dāng)兩個站同時發(fā)送數(shù)據(jù)時產(chǎn)生的碰撞問題。不同于Ethernet網(wǎng)絡(luò)的消息仲裁,CAN的非破壞性解決總線存取沖突的方法,確保在不傳送有用消息時總線不被占用。甚至當(dāng)總線在重負(fù)載情況下, 以消息內(nèi)容為優(yōu)先的總線存取也被證明是一種有效的系統(tǒng)。雖然總線的傳輸能力不足,所有未解決的傳輸請求都按重要性順序來處理。在CSMA/

50、CD這樣的網(wǎng)絡(luò)中,如Ethernet,系統(tǒng)往往由于過載而崩潰,而這種情況在CAN中不會發(fā)生。 3.3 CAN的報文格式 在總線中傳送的報文,每幀由7部分組成,見圖3。CAN協(xié)議支持兩種報文格式,其唯一的不同是標(biāo)識符(ID)長度不同,標(biāo)準(zhǔn)格式為11位,擴展格式為29位。 在標(biāo)準(zhǔn)格式中,報文的起始位稱為幀起始(SOF),然后是由11位標(biāo)識符和遠(yuǎn)程發(fā)送請求位 (RTR)組成的仲裁場。RTR位標(biāo)明是數(shù)據(jù)幀還是請求幀,在請求幀中沒有數(shù)據(jù)字節(jié)。 控制場包括標(biāo)識符擴展位(IDE),指出是標(biāo)準(zhǔn)格式還是擴展格式。它還包括一個保留位 (ro),為將來擴展使用。它的最后四個字節(jié)用來指明數(shù)據(jù)場中數(shù)據(jù)的長度(DLC)。數(shù)據(jù)場范圍為08個字節(jié),其后有一個檢測數(shù)據(jù)錯誤的循環(huán)

溫馨提示

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

最新文檔

評論

0/150

提交評論