新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > SPI、IIC、UART、can區(qū)別

SPI、IIC、UART、can區(qū)別

作者: 時間:2016-11-28 來源:網絡 收藏

響應

數(shù)據傳輸必須帶響應。相關的響應時鐘脈沖由主機產生,當主器件發(fā)送完一字節(jié)的數(shù)據后,接著發(fā)出對應于SCL線上的一個時鐘(ACK)認可位,此時鐘內主器件釋放SDA線,一字節(jié)傳送結束,而從器件的響應信號將SDA線拉成低電平,使SDA在該時鐘的高電平期間為穩(wěn)定的低電平。從器件的響應信號結束后,SDA線返回高電平,進入下一個傳送周期。

通常被尋址的接收器在接收到的每個字節(jié)后必須產生一個響應。當從機不能響應從機地址時,從機必須使數(shù)據線保持高電平,主機然后產生一個停止條件終止傳輸或者產生重復起始條件開始新的傳輸。如果從機接收器響應了從機地址但是在傳輸了一段時間后不能接收更多數(shù)據字節(jié),主機必須再一次終止傳輸。這個情況用從機在第一個字節(jié)后沒有產生響應來表示。從機使數(shù)據線保持高電平主機產生一個停止或重復起始條件。完整的數(shù)據傳送過程如圖5所示。

圖5 完整的數(shù)據傳送過程

I2C總線還具有廣播呼叫地址用于尋址總線上所有器件的功能。若一個器件不需要廣播呼叫尋址中所提供的任何數(shù)據,則可以忽咯該地址不作響應。如果該器件需要廣播呼叫尋址中按需提供的數(shù)據,則應對地址作出響應,其表現(xiàn)為一個接收器。

3 總線基本操作
I2C規(guī)程運用主/從雙向通訊。器件發(fā)送數(shù)據到總線上,則定義為發(fā)送器,器件接收數(shù)據則定義為接收器。主器件和從器件都可以工作于接收和發(fā)送狀態(tài)。 總線必須由主器件(通常為微控制器)控制,主器件產生串行時鐘(SCL)控制總線的傳輸方向,并產生起始和停止條件。SDA線上的數(shù)據狀態(tài)僅在SCL為低電平的期間才能改變,SCL為高電平的期間,SDA狀態(tài)的改變被用來表示起始和停止條件。參見圖1。

圖1 串行總線上的數(shù)據傳送順序


3.1 控制字節(jié)
在起始條件之后,必須是器件的控制字節(jié),其中高四位為器件類型識別符(不同的芯片類型有不同的定義,EEPROM一般應為1010),接著三位為片選,最后一位為讀寫位,當為1時為讀操作,為0時為寫操作。如圖2所示。

圖2 控制字節(jié)配置

3.2 寫操作 寫操作分為字節(jié)寫和頁面寫兩種操作,對于頁面寫根據芯片的一次裝載的字節(jié)不同有所不同。關于頁面寫的地址、應答和數(shù)據傳送的時序參見圖3。

圖3 頁面寫

3.3 讀操作讀操作有三種基本操作:當前地址讀、隨機讀和順序讀。圖4給出的是順序讀的時序圖。應當注意的是:最后一個讀操作的第9個時鐘周期不是“不關心”。為了結束讀操作,主機必須在第9個周期間發(fā)出停止條件或者在第9個時鐘周期內保持SDA為高電平、然后發(fā)出停止條件。

圖4 順序讀

4 實例:X24C04與MCS-51單片機軟硬件的實現(xiàn)X24C04是XICOR公司的CMOS 4096位串行EEPROM,內部組織成512×8位。16字節(jié)頁面寫。與MCS-51單片機接口如圖5所示。由于SDA是漏極開路輸出,且可以與任何數(shù)目的漏極開路或集電極 開路輸出“線或”(wire-Ored)連接。上拉電阻的選擇可參考X24C04的數(shù)據手冊。下面是通過I2C接口對X24C04進行單字節(jié)寫操作的例程。流程圖及源程序如下:

圖5 X24C04與51單片機接口

;名稱:BSENT
;描述:寫字節(jié)
;功能:寫一個字節(jié)
;調用程序:無
;輸入參數(shù):A
;輸出參數(shù):無
BSEND: MOV R2,#08H ;1字節(jié)8位

SENDA: CLR P3.2;
RLC A ;左移一位
MOV P3.3,C;寫一位

SETB P3.2
DJNZ R2,SENDA;寫完8個字節(jié)?
CLR P3.2;應答信號
SETB P3.3
SETB P3.2
RET

圖6 流程圖

5結束語

在I2C總線的應用中應注意的事項總結為以下幾點:
1) 嚴格按照時序圖的要求進行操作,
2) 若與口線上帶內部上拉電阻的單片機接口連接,可以不外加上拉電阻。
3) 程序中為配合相應的傳輸速率,在對口線操作的指令后可用NOP指令加一定的延時。
4) 為了減少意外的干擾信號將EEPROM內的數(shù)據改寫可用外部寫保護引腳(如果有),或者在EEPROM內部沒有用的空間寫入標志字,每次上電時或復位時做一次檢測,判斷EEPROM是否被意外改寫。

關于IIC總線的操作注意事項

1、對IIC總線的一次操作完之后,需要等待一段時間才能進行第二次操作。否則是啟動不了總線的:)
2、在時鐘線(SCL)為高電平的時候,一定不能動數(shù)據線(SDA)狀態(tài),除非是啟動或者結束總線

CAN總線
 

現(xiàn)場總線是當今自動化領域技術發(fā)展的熱點之一,被譽為自動化領域的計算機局域網。它的出現(xiàn)為分布式控制系統(tǒng)實現(xiàn)各節(jié)點之間實時、可靠的數(shù)據通信提供了強有力的技術支持。CAN(Controller Area Network)屬于現(xiàn)場總線的范疇,它是一種有效支持分布式控制或實時控制的串行通信網絡。較之目前許多RS-485基于R線構建的分布式控制系統(tǒng)而言, 基于CAN總線的分布式控制系統(tǒng)在以下方面具有明顯的優(yōu)越性:
首先,CAN控制器工作于多主方式,網絡中的各節(jié)點都可根據總線訪問優(yōu)先權(取決于報文標識符)采用無損結構的逐位仲裁的方式競爭向總線發(fā)送數(shù)據,且CAN協(xié)議廢除了站地址編碼,而代之以對通信數(shù)據進行編碼,這可使不同的節(jié)點同時接收到相同的數(shù)據,這些特點使得CAN總線構成的網絡各節(jié)點之間的數(shù)據通信實時性強,并且容易構成冗余結構,提高系統(tǒng)的可靠性和系統(tǒng)的靈活性。而利用RS-485只能構成主從式結構系統(tǒng),通信方式也只能以主站輪詢的方式進行,系統(tǒng)的實時性、可靠性較差;
其次,CAN總線通過CAN控制器接口芯片82C250的兩個輸出端CANH和CANL與物理總線相連,而CANH端的狀態(tài)只能是高電平或懸浮狀態(tài),CANL端只能是低電平或懸浮狀態(tài)。這就保證不會出現(xiàn)象在RS-485網絡中,當系統(tǒng)有錯誤,出現(xiàn)多節(jié)點同時向總線發(fā)送數(shù)據時,導致總線呈現(xiàn)短路,從而損壞某些節(jié)點的現(xiàn)象。而且CAN節(jié)點在錯誤嚴重的情況下具有自動關閉輸出功能,以使總線上其他節(jié)點的操作不受影響,從而保證不會出現(xiàn)象在網絡中,因個別節(jié)點出現(xiàn)問題,使得總線處于“死鎖”狀態(tài)。
而且,CAN具有的完善的通信協(xié)議可由CAN控制器芯片及其接口芯片來實現(xiàn),從而大大降低系統(tǒng)開發(fā)難度,縮短了開發(fā)周期,這些是只僅僅有電氣協(xié)議的RS-485所無法比擬的。另外,與其它現(xiàn)場總線比較而言,CAN總線是具有通信速率高、容易實現(xiàn)、且性價比高等諸多特點的一種已形成國際標準的現(xiàn)場總線。這些也是目前 CAN總線應用于眾多領域,具有強勁的市場競爭力的重要原因。
CAN (Controller Area Network)即控制器局域網絡,屬于工業(yè)現(xiàn)場總線的范疇。與一般的通信總線相比,CAN總線的數(shù)據通信具有突出的可靠性、實時性和靈活性。由于其良好的性能及獨特的設計,CAN總線越來越受到人們的重視。它在汽車領域上的應用是最廣泛的,世界上一些著名的汽車制造廠商,如BENZ(奔馳)、BMW(寶馬)、PORSCHE(保時捷)、ROLLS-ROYCE(勞斯萊斯)和JAGUAR(美洲豹)等都采用了CAN總線來實現(xiàn)汽車內部控制系統(tǒng)與各檢測和執(zhí)行機構間的數(shù)據通信。同時,由于CAN總線本身的特點,其應用范圍目前已不再局限于汽車行業(yè),而向自動控制、航空航天、航海、過程工業(yè)、機械工業(yè)、紡織機械、農用機械、機器人、數(shù)控機床、醫(yī)療器械及傳感器等領域發(fā)展。CAN已經形成國際標準,并已被公認為幾種最有前途的現(xiàn)場總線之一。其典型的應用協(xié)議有: SAE J1939/ISO11783、CANOpen、CANaerospace、DeviceNet、NMEA 2000等。

什么是CAN總線?
CAN意為Controller Area Network的縮寫,意為控制區(qū)域網絡。是國際上流行的現(xiàn)場總線中的一種。是一種特別適合于組建互連的設備網絡系統(tǒng)或子系統(tǒng)。
2. CAN總線特點?
l CAN是到目前為止為數(shù)不多的有國際標準的現(xiàn)場總線
l CAN通訊距離最大是10公里(設速率為5Kbps),或最大通信速率為1Mbps(設通信距離為40米)。

CAN總線上的節(jié)點數(shù)可達110個。通信介質可在雙絞線,同軸電纜,光纖中選擇。

CAN采用非破壞性的總線仲裁技術,當多個節(jié)點同時發(fā)送數(shù)據時,優(yōu)先級低的節(jié)點會主動退出發(fā)送,高優(yōu)先級的節(jié)點可繼續(xù)發(fā)送,節(jié)省總線仲裁時間。
CAN是多主方式工作,網上的任一節(jié)點均可在任意時刻主動地向網絡上其他節(jié)點發(fā)送信息。

CAN采用報文識別符識別網絡上的節(jié)點,從而把節(jié)點分成不同的優(yōu)先級,高優(yōu)先級的節(jié)點享有傳送報文的優(yōu)先權。

報文是短幀結構,短的傳送時間使其受干擾概率低,CAN有很好的效驗機制,這些都保證了CAN通信的可靠性。

3. CAN總線應用領域

CAN總線最初是德國BOSCH為汽車行業(yè)的監(jiān)測,控制而設計的?,F(xiàn)已應用到鐵路、交通、國防、工程、工業(yè)機械、紡織、農用機械、數(shù)控、醫(yī)療器械機器人、樓宇、安防等方面。

I2C(Inter-Integrated Circuit)總線

I2C(Inter-Integrated Circuit)總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設備。I2C總線產生于在80年代,最初為音頻和視頻設備開發(fā),如今主要在服務器管理中使用,其中包括單個組件狀態(tài)的通信。例如管理員可對各個組件進行查詢,以管理系統(tǒng)的配置或掌握組件的功能狀態(tài),如電源和系統(tǒng)風扇??呻S時監(jiān)控內存、硬盤、網絡、系統(tǒng)溫度等多個參數(shù),增加了系統(tǒng)的安全性,方便了管理。



上一頁 1 2 3 4 下一頁

關鍵詞: SPIIICUARTca

評論


技術專區(qū)

關閉