㈠ 誰能給我解釋一下SPI,I2C,SCI匯流排的區別和應用在什麼場合,最好
SPI匯流排有4根線,分別是SCK,SDO,SDI,SS,可以掛多個從設備,但是在掛多個從設備時,主設備端還需要做一個n選一的解碼器,用於選擇將要訪問的從設備,因此,主設備上的管腳需求比較多;SPI匯流排在只有一個從設備時,只要用到SCK,SDO,SDI這三根線,此時選擇SPI比I2C匯流排占優。 I2C匯流排只有兩根線,SCL,SDA.,也可以掛多個從設備,對從設備的選擇直接依靠協議完成,無需增加物理連線。一般情況下,當一塊電路板上有多個從設備時,往往選用I2C而非SPI,因為SPI增加了額外額硬體開銷以及電路板走線。 I2c和SPI匯流排一般是讀取一些PROM等從設備用。
㈡ i2c匯流排上最多可以掛多少個從器件
有IIC地址決定,8位地址,減去1位廣播地址,是7位地址,2^7=128,但是地址0x00不用,那就是127個地址, 所以理論上可以掛127個從器件。
I2C(Inter-Integrated Circuit)匯流排是由PHILIPS公司開發的兩線式串列匯流排,用於連接微控制器及其外圍設備。是微電子通信控制領域廣泛採用的一種匯流排標准。它是同步通信的一種特殊形式,具有介面線少,控制方式簡單,器件封裝形式小,通信速率較高等優點。I2C 匯流排支持任何IC 生產過程(CMOS、雙極性)。通過串列數據(SDA)線和串列時鍾 (SCL)線在連接到匯流排的器件間傳遞信息。每個器件都有一個唯一的地址識別(無論是微控制器——MCU、LCD 驅動器、存儲器或鍵盤介面),而且都可以作為一個發送器或接收器(由器件的功能決定)。LCD 驅動器只能作為接收器,而存儲器則既可以接收又可以發送數據。除了發送器和接收器外,器件在執行數據傳輸時也可以被看作是主機或從機(見表1)。主機是初始化匯流排的數據傳輸並產生允許傳輸的時鍾信號的器件。此時,任何被定址的器件都被認為是從機。
㈢ SPI匯流排的通訊協議是什麼
SPI的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設備和一個或多個從設備,需要至少4根線,事實上3根也可以(單向傳輸時)。也是所有基於SPI的設備共有的,它們是SDI(數據輸入),SDO(數據輸出),SCK(時鍾),CS(片選)。
(1)SDO – 主設備數據輸出,從設備數據輸入
(2)SDI – 主設備數據輸入,從設備數據輸出
(3)SCLK – 時鍾信號,由主設備產生
(4)CS – 從設備使能信號,由主設備控制
其中CS是控制晶元是否被選中的,也就是說只有片選信號為預先規定的使能信號時(高電位或低電位),對此晶元的操作才有效。這就允許在同一匯流排上連接多個SPI設備成為可能。
接下來就負責通訊的3根線了。通訊是通過數據交換完成的,這里先要知道SPI是串列通訊協議,也就是說數據是一位一位的傳輸的。這就是SCK時鍾線存在的原因,由SCK提供時鍾脈沖,SDI,SDO則基於此脈沖完成數據傳輸。數據輸出通過 SDO線,數據在時鍾上升沿或下降沿時改變,在緊接著的下降沿或上升沿被讀取。完成一位數據傳輸,輸入也使用同樣原理。這樣,在至少8次時鍾信號的改變(上沿和下沿為一次),就可以完成8位數據的傳輸。
要注意的是,SCK信號線只由主設備控制,從設備不能控制信號線。同樣,在一個基於SPI的設備中,至少有一個主控設備。這樣傳輸的特點:這樣的傳輸方式有一個優點,與普通的串列通訊不同,普通的串列通訊一次連續傳送至少8位數據,而SPI允許數據一位一位的傳送,甚至允許暫停,因為SCK時鍾線由主控設備控制,當沒有時鍾跳變時,從設備不採集或傳送數據。也就是說,主設備通過對SCK時鍾線的控制可以完成對通訊的控制。SPI還是一個數據交換協議:因為SPI的數據輸入和輸出線獨立,所以允許同時完成數據的輸入和輸出。不同的SPI設備的實現方式不盡相同,主要是數據改變和採集的時間不同,在時鍾信號上沿或下沿採集有不同定義,具體請參考相關器件的文檔。
在點對點的通信中,SPI介面不需要進行定址操作,且為全雙工通信,顯得簡單高效。在多個從設備的系統中,每個從設備需要獨立的使能信號,硬體上比I2C系統要稍微復雜一些。
最後,SPI介面的一個缺點:沒有指定的流控制,沒有應答機制確認是否接收到數據。
AT91RM9200的SPI介面主要由4個引腳構成:SPICLK、MOSI、MISO及 /SS,其中SPICLK是整個SPI匯流排的公用時鍾,MOSI、MISO作為主機,從機的輸入輸出的標志,MOSI是主機的輸出,從機的輸入,MISO 是主機的輸入,從機的輸出。/SS是從機的標志管腳,在互相通信的兩個SPI匯流排的器件,/SS管腳的電平低的是從機,相反/SS管腳的電平高的是主機。在一個SPI通信系統中,必須有主機。SPI匯流排可以配置成單主單從,單主多從,互為主從。
SPI的片選可以擴充選擇16個外設,這時PCS輸出=NPCS,說NPCS0~3接4-16解碼器,這個解碼器是需要外接4-16解碼器,解碼器的輸入為NPCS0~3,輸出用於16個外設的選擇。
二 SPI協議舉例
SPI是一個環形匯流排結構,由ss(cs)、sck、sdi、sdo構成,其時序其實很簡單,主要是在sck的控制下,兩個雙向移位寄存器進行數據交換。
假設下面的8位寄存器裝的是待發送的數據10101010,上升沿發送、下降沿接收、高位先發送。
那麼第一個上升沿來的時候 數據將會是sdo=1;寄存器=0101010x。下降沿到來的時候,sdi上的電平將所存到寄存器中去,那麼這時寄存器=0101010sdi,這樣在 8個時鍾脈沖以後,兩個寄存器的內容互相交換一次。這樣就完成里一個spi時序。I2C匯流排I2C(Inter-Integrated Circuit)匯流排是一種由PHILIPS公司開發的兩線式串列匯流排,用於連接微控制器及其外圍設備。I2C匯流排產生於在80年代,最初為音頻和視頻設備開發,如今主要在伺服器管理中使用,其中包括單個組件狀態的通信。例如管理員可對各個組件進行查詢,以管理系統的配置或掌握組件的功能狀態,如電源和系統風扇。可隨時監控內存、硬碟、網路、系統溫度等多個參數,增加了系統的安全性,方便了管理。
1 I2C匯流排特點
I2C匯流排最主要的優點是其簡單性和有效性。由於介面直接在組件之上,因此I2C匯流排佔用的空間非常小,減少了電路板的空間和晶元管腳的數量,降低了互聯成本。匯流排的長度可高達25英尺,並且能夠以10Kbps的最大傳輸速率支持40個組件。I2C匯流排的另一個優點是,它支持多主控(multimastering), 其中任何能夠進行發送和接收的設備都可以成為主匯流排。一個主控能夠控制信號的傳輸和時鍾頻率。當然,在任何時間點上只能有一個主控。
2 I2C匯流排工作原理
2.1 匯流排的構成及信號類型
I2C匯流排是由數據線SDA和時鍾SCL構成的串列匯流排,可發送和接收數據。在CPU與被控IC之間、IC與IC之間進行雙向傳送,最高傳送速率100kbps。各種被控制電路均並聯在這條匯流排上,但就像電話機一樣只有撥通各自的號碼才能工作,所以每個電路和模塊都有唯一的地址,在信息的傳輸過程中,I2C匯流排上並接的每一模塊電路既是主控器(或被控器),又是發送器(或接收器),這取決於它所要完成的功能。CPU發出的控制信號分為地址碼和控制量兩部分,地址碼用來選址,即接通需要控制的電路,確定控制的種類;控制量決定該調整的類別(如對比度、亮度等)及需要調整的量。這樣,各控制電路雖然掛在同一條匯流排上,卻彼此獨立,互不相關。
I2C匯流排在傳送數據過程中共有三種類型信號, 它們分別是:開始信號、結束信號和應答信號。
開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數據。
結束信號:SCL為高電平時,SDA由低電平向高電平跳變,結束傳送數據。
應答信號:接收數據的IC在接收到8bit數據後,向發送數據的IC發出特定的低電平脈沖,表示已收到數據。CPU向受控單元發出一個信號後,等待受控單元發出一個應答信號,CPU接收到應答信號後,根據實際情況作出是否繼續傳遞信號的判斷。若未收到應答信號,由判斷為受控單元出現故障。
㈣ SPI和I2C和串口有何關系
I2C和SPI匯流排類似,都是主從模式的匯流排,I2C和SPI匯流排上可以掛多個從設備,但是只能有一個主設備。
串口通信是一種全雙工通信,有3種電氣特性,分別是RS232,RS422,RS485。其中RS232是點對點的通訊,兩個通訊端之間的收發都是獨立的;RS422可以做到一個發送,多個接收;RS485是半雙工的工作方式,但是可以做到多個發送多個接收,即掛在匯流排上的設備都可以進行發送跟接收。
總之,I2C,SPI匯流排與串口之間的最大區別在於,串口通信可以做到互相收發,而I2C,SPI匯流排只能有一個主設備,另外的都是從設備,無論讀取還是寫入,都由主設備發起。
㈤ pic單片機 spi 通信最多接幾個從單片機,50個可以嗎
按照你的命題,SPI通訊,拿一個PIC做主機,50個為從機,每個從機必須要花銷一個IO口作專為使能控制。
如果你屬選的單片機有53個IO口以上型號的,是可以掛50個SPI介面從機的,但這樣做有意義嗎?
帶較多從機時建議 你用UART串列口或I2通訊,一般帶SPI的PIC單片機也都帶有這兩個口
㈥ STM32上的spi匯流排,能設置速度嗎 對掛載的器件有數量限制嗎 對切換掛載的器件,有時間限制嗎
能設置速度,掛載3、5個從設備應該沒有問題,多了也沒試過。對切換掛載器件當然有時間要求,這個你要看掛載器件的數據手冊。
㈦ 單片機中的SPI,I2C,單匯流排,匯流排什麼意思,什麼用,什麼區別,
嘿嘿
你提出的問題很多呀
我來幫你解答吧
1
先來回答你什麼是匯流排:
匯流排就是一個公共的計算機的連接線
所有外圍設備
都可以通過它與計算機相連接
是信息傳遞的通道
在它上面可以掛很多個外設元件。
2
匯流排的種類很多:
如晶元級的匯流排
如
SPI,I2C,單匯流排
近距離進行CPU與其它外圍晶元的連接
他們多是採用串列方式傳送
數據的
即一位一位傳送數據
可以節省傳送線的條數
SPI
需要3條線:
一條時鍾線
一條數據接收線
一條數據發送線
I2C
需要2跳線
一條時鍾線
一條
數據線
單匯流排
即是用一條數據線來通訊
如DS18B20數字溫度感測器
還有RS-232
用於計算機和計算機或單片機進行數據通訊的
還有RS-485
、CAN等工業現場匯流排
用於遠距離通訊
距離可達1000米。
3
匯流排的概念、種類、區別
都給你介紹了
呵呵
滿意
就給加分啊
㈧ 一個主MPU需要使用SPI匯流排外接5個外設,則總共需要多少引腳
8個引腳,時鍾信號線、主機輸入信號和主機輸出信號,這3個信號線共用;使用5個片選信號控制5個外設。
㈨ SPI和I2C和串口有何關系
串口是串列通信介面的簡稱
很多串列通信協議
㈩ 嵌入式系統中,怎麼通過一根SPI匯流排,連接多個設備呢
手戳如下大圖:
據說點贊關注頭條號「嵌入式FM106點1」,會長得越來越好看呢。