久久午夜影院,91精品国产调教在线观看,日韩午夜免费,伊人久久大香线蕉av不卡

你的位置:首頁 > 互連技術 > 正文

嵌入式工程師常用的IIC和SPI總線協議,今天來說透!

發布時間:2018-01-08 責任編輯:wenwei

【導讀】現今,在低端數字通信應用領域,我們隨處可見IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是這兩種通信協議非常適合近距離低速芯片間通信。Philips(for IIC)和Motorola(for SPI) 出于不同背景和市場需求制定了這兩種標準通信協議。
 
IIC 開發于1982年,當時是為了給電視機內的CPU和外圍芯片提供更簡易的互聯方式。電視機是最早的嵌入式系統之一,而最初的嵌入系統是使用內存映射(memory-mapped I/O)的方式來互聯微控制器和外圍設備的。要實現內存映射,設備必須并聯入微控制器的數據線和地址線,這種方式在連接多個外設時需大量線路和額外地址解碼芯片,很不方便并且成本高。
 
為了節省微控制器的引腳和和額外的邏輯芯片,使印刷電路板更簡單,成本更低,位于荷蘭的Philips實驗室開發了 ‘Inter-Integrated Circuit’,IIC 或 IIC ,一種只使用二根線接連所有外圍芯片的總線協議。最初的標準定義總線速度為100kbps。經歷幾次修訂,主要是1995年的400kbps,1998的3.4Mbps。
 
有跡象表明,SPI總線首次推出是在1979年,Motorola公司將SPI總線集成在他們第一支改自68000微處理器的微控制器芯片上。SPI總線是微控制器四線的外部總線(相對于內部總線)。與IIC不同,SPI沒有明文標準,只是一種事實標準,對通信操作的實現只作一般的抽象描述,芯片廠商與驅動開發者通過data sheets和application notes溝通實現上的細節。
 
SPI
 
對于有經驗的數字電子工程師來說,用SPI互聯兩支數字設備是相當直觀的。SPI是種四根信號線協議(如圖):
 
嵌入式工程師常用的IIC和SPI總線協議,今天來說透!
 
  • SCLK: Serial Clock (output from master);
  • MOSI; SIMO: Master Output, Slave Input(output from master);
  • MISO; SOMI: Master Input, Slave Output(output from slave);
  • SS: Slave Select (active low, outputfrom master).
 
SPI是[單主設備( single-master )]通信協議,這意味著總線中的只有一支中心設備能發起通信。當SPI主設備想讀/寫[從設備]時,它首先拉低[從設備]對應的SS線(SS是低電平有效),接著開始發送工作脈沖到時鐘線上,在相應的脈沖時間上,[主設備]把信號發到MOSI實現“寫”,同時可對MISO采樣而實現“讀”,如下圖:
 
嵌入式工程師常用的IIC和SPI總線協議,今天來說透!
 
SPI有四種操作模式——模式0、模式1、模式2和模式3,它們的區別是定義了在時鐘脈沖的哪條邊沿轉換(toggles)輸出信號,哪條邊沿采樣輸入信號,還有時鐘脈沖的穩定電平值(就是時鐘信號無效時是高還是低)。每種模式由一對參數刻畫,它們稱為時鐘極(clock polarity)CPOL與時鐘期(clock phase)CPHA。
 
嵌入式工程師常用的IIC和SPI總線協議,今天來說透!
 
[主從設備]必須使用相同的工作參數——SCLK、CPOL 和 CPHA,才能正常工作。如果有多個[從設備],并且它們使用了不同的工作參數,那么[主設備]必須在讀寫不同[從設備]間重新配置這些參數。以上SPI總線協議的主要內容。SPI不規定最大傳輸速率,沒有地址方案;SPI也沒規定通信應答機制,沒有規定流控制規則。事實上,SPI[主設備]甚至并不知道指定的[從設備]是否存在。這些通信控制都得通過SPI協議以外自行實現。例如,要用SPI連接一支[命令-響應控制型]解碼芯片,則必須在SPI的基礎上實現更高級的通信協議。SPI并不關心物理接口的電氣特性,例如信號的標準電壓。在最初,大多數SPI應用都是使用間斷性時鐘脈沖和以字節為單位傳輸數據的,但現在有很多變種實現了連續性時間脈沖和任意長度的數據幀。
 
IIC
 
與SPI的單主設備不同,IIC 是多主設備的總線,IIC沒有物理的芯片選擇信號線,沒有仲裁邏輯電路,只使用兩條信號線—— ‘serial data’ (SDA) 和 ‘serial clock’ (SCL)。IIC協議規定:
 
第一,每一支IIC設備都有一個唯一的七位設備地址;
 
第二,數據幀大小為8位的字節;
 
第三,數據(幀)中的某些數據位用于控制通信的開始、停止、方向(讀寫)和應答機制。
 
IIC 數據傳輸速率有標準模式(100 kbps)、快速模式(400 kbps)和高速模式(3.4 Mbps),另外一些變種實現了低速模式(10 kbps)和快速+模式(1 Mbps)。
 
物理實現上,IIC 總線由兩根信號線和一根地線組成。兩根信號線都是雙向傳輸的,參考下圖。IIC協議標準規定發起通信的設備稱為主設備,主設備發起一次通信后,其它設備均為從設備。
 
嵌入式工程師常用的IIC和SPI總線協議,今天來說透!
 
IIC 通信過程大概如下。首先,主設備發一個START信號,這個信號就像對所有其它設備喊:請大家注意!然后其它設備開始監聽總線以準備接收數據。接著,主設備發送一個7位設備地址加一位的讀寫操作的數據幀。當所設備接收數據后,比對地址自己是否目標設備。如果比對不符,設備進入等待狀態,等待STOP信號的來臨;如果比對相符,設備會發送一個應答信號——ACKNOWLEDGE作回應。
 
當主設備收到應答后便開始傳送或接收數據。數據幀大小為8位,尾隨一位的應答信號。主設備發送數據,從設備應答;相反主設備接數據,主設備應答。當數據傳送完畢,主設備發送一個STOP信號,向其它設備宣告釋放總線,其它設備回到初始狀態。
 
嵌入式工程師常用的IIC和SPI總線協議,今天來說透!
 
基于IIC總線的物理結構,總線上的START和STOP信號必定是唯一的。另外,IIC總線標準規定SDA線的數據轉換必須在SCL線的低電平期,在SCL線的高電平期,SDA線的上數據是穩定的。
 
嵌入式工程師常用的IIC和SPI總線協議,今天來說透!
 
在物理實現上,SCL線和SDA線都是漏極開路(open-drain),通過上拉電阻外加一個電壓源。當把線路接地時,線路為邏輯0,當釋放線路,線路空閑時,線路為邏輯1。基于這些特性,IIC設備對總線的操作僅有“把線路接地”——輸出邏輯0。
 
IIC總線設計只使用了兩條線,但相當優雅地實現任意數目設備間無縫通信,堪稱完美。我們設想一下,如果有兩支設備同時向SCL線和SDA線發送信息會出現什么情況。
 
基于IIC總線的設計,線路上不可能出現電平沖突現象。如果一支設備發送邏輯0,其它發送邏輯1,那么線路看到的只有邏輯0。也就是說,如果出現電平沖突,發送邏輯0的始終是“贏家”。
 
總線的物理結構亦允許主設備在往總線寫數據的同時讀取數據。這樣,任何設備都可以檢測沖突的發生。當兩支主設備競爭總線的時候,“贏家”并不知道競爭的發生,只有“輸家”發現了沖突——當它寫一個邏輯1,卻讀到0時——而退出競爭。
 
10位設備地址
 
任何IIC設備都有一個7位地址,理論上,現實中只能有127種不同的IIC設備。實際上,已有IIC的設備種類遠遠多于這個限制,在一條總線上出現相同的地址的IIC設備的概率相當高。為了突破這個限制,很多設備使用了雙重地址——7位地址加引腳地址(external configuration pins)。IIC 標準也預知了這種限制,提出10位的地址方案。
 
10位的地址方案對 IIC協議的影響有兩點:
 
第一,地址幀為兩個字節長,原來的是一個字節;
 
第二,第一個字節前五位最高有效位用作10位地址標識,約定是“11110”。
 
嵌入式工程師常用的IIC和SPI總線協議,今天來說透!
 
除了10位地址標識,標準還預留了一些地址碼用作其它用途,如下表:
 
嵌入式工程師常用的IIC和SPI總線協議,今天來說透!
 
時鐘拉伸
 
在 IIC 通信中,主設備決定了時鐘速度。因為時鐘脈沖信號是由主設備顯式發出的。但是,當從設備沒辦法跟上主設備的速度時,從設備需要一種機制來請求主設備慢一點。這種機制稱為時鐘拉伸,而基于I²C結構的特殊性,這種機制得到實現。當從設備需要降低傳輸的速度的時候,它可以按下時鐘線,逼迫主設備進入等待狀態,直到從設備釋放時鐘線,通信才繼續。
 
高速模式
 
原理上講,使用上拉電阻來設置邏輯1會限制總線的最大傳輸速度。而速度是限制總線應用的因素之一。這也說明為什么要引入高速模式(3.4 Mbps)。在發起一次高速模式傳輸前,主設備必須先在低速的模式下(例如快速模式)發出特定的“High Speed Master”信號。為縮短信號的周期和提高總線速度,高速模式必須使用額外的I/O緩沖區。另外,總線仲裁在高速模式下可屏蔽掉。更多的信息請參與總線標準文檔。
 
IIC vs SPI: 哪位是贏家?

我們來對比一下IIC 和 SPI的一些關鍵點:
 
第一,總線拓撲結構/信號路由/硬件資源耗費
 
IIC 只需兩根信號線,而標準SPI至少四根信號,如果有多個從設備,信號需要更多。一些SPI變種雖然只使用三根線——SCLK, SS和雙向的MISO/MOSI,但SS線還是要和從設備一對一根。另外,如果SPI要實現多主設備結構,總線系統需額外的邏輯和線路。用IIC 構建系統總線唯一的問題是有限的7位地址空間,但這個問題新標準已經解決——使用10位地址。從第一點上看,IIC是明顯的大贏家。
 
第二,數據吞吐/傳輸速度
 
如果應用中必須使用高速數據傳輸,那么SPI是必然的選擇。因為SPI是全雙工,IIC 的不是。SPI沒有定義速度限制,一般的實現通常能達到甚至超過10 Mbps。IIC 最高的速度也就快速+模式(1 Mbps)和高速模式(3.4 Mbps),后面的模式還需要額外的I/O緩沖區,還并不是總是容易實現的。
 
第三,優雅性
 
IIC 常被稱更優雅于SPI。公正的說,我們更傾向于認為兩者同等優雅和健壯。IIC的優雅在于它的特色——用很輕盈的架構實現了多主設備仲裁和設備路由。但是對使用的工程師來講,理解總線結構更費勁,而且總線的性能不高。
 
SPI的優點在于它的結構相當的直觀簡單,容易實現,并且有很好擴展性。SPI的簡單性不足稱其優雅,因為要用SPI搭建一個有用的通信平臺,還需要在SPI之上構建特定的通信協議軟件。也就是說要想獲得SPI特有而IIC沒有的特性——高速性能,工程師們需要付出更多的勞動。另外,這種自定的工作是完全自由的,這也說明為什么SPI沒有官方標準。IIC和SPI都對低速設備通信提供了很好的支持,不過,SPI適合數據流應用,而IIC更適合“字節設備”的多主設備應用。
 
小結
 
在數字通信協議簇中,IIC和SPI常稱為“小”協議,相對Ethernet, USB, SATA, PCI-Express等傳輸速度達數百上千兆字節每秒的總線。但是,我們不能忘記的是各種總線的用途是什么。“大”協議是用于系統外的整個系統之間通信的,“小”協議是用于系統內各芯片間的通信,沒有跡象表明“大”協議有必要取代“小”協議。IIC和SPI的存在和流行體現了“夠用就好”的哲學。回應文首,IIC和SPI如此的流行,它是任何一位嵌入式工程師必備的工具。
 
 
 
 
 
 
 
 
 
推薦閱讀:



對于利用微變壓器集成隔離功能的原理簡述
探討:構建5G的五項關鍵技術
電動汽車絕緣電阻如何在線檢測?
開關模式電源的建模和環路補償設計
RS-485通信鏈路與電子護欄: 有關RS-485 EMC穩定性的演示
 
 
 
要采購微控制器么,點這里了解一下價格!
特別推薦
技術文章更多>>
技術白皮書下載更多>>
熱門搜索

關閉

?

關閉

久久午夜影院,91精品国产调教在线观看,日韩午夜免费,伊人久久大香线蕉av不卡
久久国产精品毛片| 日韩激情一区| 日韩二区三区四区| 亚洲成人国产| 精品一区二区三区中文字幕视频 | 国产不卡精品| 亚洲人成亚洲精品| 久久精品高清| 日本精品国产| 美国欧美日韩国产在线播放| 久久人人精品| 久久xxxx精品视频| 国产精品蜜芽在线观看| 亚洲一区二区免费看| 欧美日韩免费观看一区=区三区| 久久精品影视| 中文在线不卡| 欧产日产国产精品视频| 99视频精品全国免费| 日韩黄色大片网站| 久久在线电影| 黄色日韩在线| 日韩区一区二| 欧美日韩一区二区高清| 精品日韩在线| 精精国产xxxx视频在线野外| 六月婷婷一区| 国产精品88久久久久久| 亚洲色图国产| 国产精品探花在线观看| 久久一区二区中文字幕| 中文在线资源| 婷婷综合社区| 欧美极品中文字幕| 国产66精品| 激情视频网站在线播放色 | 国产亚洲一卡2卡3卡4卡新区| 国产精品传媒麻豆hd| 久久蜜桃精品| 夜夜精品视频| 欧美一级久久| 国产一区视频在线观看免费| 在线看片一区| 欧美在线影院| 亚洲精品第一| 99久久久久国产精品| 69精品国产久热在线观看| 欧美成人aaa| 亚洲欧洲av| 视频小说一区二区| 亚洲人成亚洲精品| 亚洲涩涩av| 亚洲精品一级| 日韩欧美中文字幕一区二区三区| 日韩av不卡一区二区| 蜜臀久久99精品久久久久久9 | 亚洲精品福利| 日韩不卡一区二区三区 | 亚洲啊v在线| 91精品国产自产观看在线| 老鸭窝一区二区久久精品| 国产精品一级在线观看| 国产精品99久久免费| 精品视频自拍| 影音先锋国产精品| 日韩av不卡一区二区| 久久婷婷av| 午夜电影一区| 欧洲一级精品| 首页国产欧美久久| 麻豆视频观看网址久久| 丝袜美腿亚洲一区二区图片| 国产亚洲激情| 国产美女视频一区二区| re久久精品视频| 91成人精品观看| 亚洲免费高清| 日韩和欧美一区二区三区| 国产精品普通话对白| | 国产一区久久| 国产美女视频一区二区| 国产在线成人| 精品国产中文字幕第一页| 视频一区在线播放| 日本免费久久| 国模大尺度视频一区二区| 亚洲欧洲一区| 日韩高清不卡| 久久久久久夜| 亚洲欧洲日本mm| 国产资源在线观看入口av| 91综合久久爱com| 亚洲电影在线| 国产一区二区三区黄网站| 91一区二区三区四区| 黑丝美女一区二区| 国产日韩欧美一区在线| 日欧美一区二区| 日韩av影院| 国产视频一区三区| 久久国产精品亚洲77777| 日产精品一区| 999久久久91| 欧美国产91| 国产h片在线观看| 超碰在线99| 欧美一级二区| 日韩中文字幕麻豆| 国产精品日韩| 久久不见久久见中文字幕免费 | 国产精品a久久久久| 中文字幕成在线观看| 少妇精品久久久一区二区| 欧美日韩99| 视频一区视频二区在线观看| 激情自拍一区| 国产精品婷婷| 亚洲激情av| 日韩精品三级| 91成人在线| 欧美啪啪一区| 欧美日本二区| 7777精品| 欧美日韩少妇| 国产精品亚洲四区在线观看| 午夜天堂精品久久久久| 久久99精品久久久野外观看| 国产精品一区二区精品| 成人免费电影网址| 青草久久视频| 日本久久成人网| 日本免费在线视频不卡一不卡二| 黄色在线网站噜噜噜| 91成人小视频| 日韩一区网站| 三级精品视频| 国产精品视频一区二区三区 | 日韩 欧美一区二区三区| 激情久久99| 国产麻豆一区| 韩日一区二区三区| 日韩精品一区二区三区中文在线 | 欧美精品国产白浆久久久久| 日韩一区亚洲二区| 国产精品红桃| 久久不卡国产精品一区二区| 成人在线观看免费视频| 日韩精品一页| 欧洲一区二区三区精品| 午夜精品亚洲| 欧美一区三区| 久久国产生活片100| 一区二区三区国产盗摄| 1024精品久久久久久久久| 国产精品主播| 在线亚洲欧美| 成人精品国产亚洲| 国产精品成人自拍| 国产精品综合色区在线观看| 日本成人精品| 国产精品美女在线观看直播| 国产精品一区二区三区美女| 国产日本精品| 日韩av免费| 日本在线视频一区二区| 日韩啪啪电影网| 日韩一区二区久久| 国产精品久久久久av蜜臀| 999国产精品视频| 国产精品一区二区精品视频观看| 欧美日韩在线观看视频小说| 国产福利一区二区精品秒拍| 亚洲欧美综合| 欧美好骚综合网| 国产亚洲在线观看| 欧美一级鲁丝片| 欧美日本二区| 久久高清国产| 欧洲亚洲一区二区三区| 精品视频在线观看网站| 久久99精品久久久野外观看| 久久网站免费观看| 久久精品国产99国产精品| 欧美日韩国产欧| 久久久久久久久99精品大| 精品亚洲a∨| 麻豆精品视频在线| 日韩国产欧美在线视频| 久久99伊人| 亚洲人妖在线| 黄色av日韩| 亚洲精品麻豆| 香蕉久久一区| 日本久久二区| 久久国产乱子精品免费女| 中文字幕亚洲精品乱码| 欧美日韩国产免费观看| 欧美综合国产| 亚洲欧美网站在线观看|