新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > CAN、I2S、I2C、SPI、SSP總線(xiàn)簡(jiǎn)介

CAN、I2S、I2C、SPI、SSP總線(xiàn)簡(jiǎn)介

作者: 時(shí)間:2016-12-14 來(lái)源:網(wǎng)絡(luò) 收藏
一、SPI總線(xiàn)說(shuō)明

串行外圍設(shè)備接口SPI(serial peripheral interface)總線(xiàn)技術(shù)是Motorola公司推出的一種同步串行接口,Motorola公司生產(chǎn)的絕大多數(shù)MCU(微控制器)都配有SPI硬件接口,如68系列MCU。SPI用于CPU與各種外圍器件進(jìn)行全雙工、同步串行通訊。SPI可以同時(shí)發(fā)出和接收串行數(shù)據(jù)。它只需四條線(xiàn)就可以完成MCU與各種外圍器件的通訊,這四條線(xiàn)是:串行時(shí)鐘線(xiàn)(CSK)、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線(xiàn)(MISO)、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線(xiàn)(MOSI)、低電平有效從機(jī)選擇線(xiàn)CS。這些外圍器件可以是簡(jiǎn)單的TTL移位寄存器,復(fù)雜的LCD顯示驅(qū)動(dòng)器,A/D、D/A轉(zhuǎn)換子系統(tǒng)或其他的MCU。當(dāng)SPI工作時(shí),在移位寄存器中的數(shù)據(jù)逐位從輸出引腳(MOSI)輸出(高位在前),同時(shí)從輸入引腳(MISO)接收的數(shù)據(jù)逐位移到移位寄存器(高位在前)。發(fā)送一個(gè)字節(jié)后,從另一個(gè)外圍器件接收的字節(jié)數(shù)據(jù)進(jìn)入移位寄存器中。主SPI的時(shí)鐘信號(hào)(SCK)使傳輸同步。其典型系統(tǒng)框圖如下圖所示。



SPI主要特點(diǎn)有:可以同時(shí)發(fā)出和接收串行數(shù)據(jù);
  • 可以當(dāng)作主機(jī)或從機(jī)工作;
  • 提供頻率可編程時(shí)鐘;
  • 發(fā)送結(jié)束中斷標(biāo)志;
  • 寫(xiě)沖突保護(hù);
  • 總線(xiàn)競(jìng)爭(zhēng)保護(hù)等。
圖2示出SPI總線(xiàn)工作的四種方式,其中使用的最為廣泛的是SPI0和SPI3方式(實(shí)線(xiàn)表示):


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





什么是CAN總線(xiàn)?
===========================
CAN全稱(chēng)為Controller Area Network,即控制器局域網(wǎng),由德國(guó)Bosch公司最先提出,是國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線(xiàn)之一。CAN是一種多主方式的串行通訊總線(xiàn),基本設(shè)計(jì)規(guī)范要求有高的位速率、高抗電磁干擾性,而且要能夠檢測(cè)出總線(xiàn)的任何錯(cuò)誤。當(dāng)信號(hào)傳輸距離達(dá)10Km時(shí)CAN仍可提供高達(dá)50Kbit/s的數(shù)據(jù)傳輸速率。CAN具有十分優(yōu)越的特點(diǎn):
A、較低的成本與極高的總線(xiàn)利用率;
 B、數(shù)據(jù)傳輸距離可長(zhǎng)達(dá)10Km,傳輸速率可高達(dá)1Mbit/s;
 C、可靠的錯(cuò)誤處理和檢錯(cuò)機(jī)制,發(fā)送的信息遭到破壞后可自動(dòng)重發(fā);
 D、節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)退出總線(xiàn)的功能;
 E、報(bào)文不包含源地址或目標(biāo)地址僅用標(biāo)志符來(lái)指示功能信息和優(yōu)先級(jí)信息;
由于人為、自然、其它外界環(huán)境的影響和人們對(duì)公交系統(tǒng)的安全可靠性、真實(shí)、實(shí)時(shí)性的追求,使得我們對(duì)通信方式,通信設(shè)備有了更高的要求,基于CAN總線(xiàn)的網(wǎng)絡(luò)則成為我們最佳的選擇
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CAN總線(xiàn)
 
現(xiàn)場(chǎng)總線(xiàn)是當(dāng)今自動(dòng)化領(lǐng)域技術(shù)發(fā)展的熱點(diǎn)之一,被譽(yù)為自動(dòng)化領(lǐng)域的計(jì)算機(jī)局域網(wǎng)。它的出現(xiàn)為分布式控制系統(tǒng)實(shí)現(xiàn)各節(jié)點(diǎn)之間實(shí)時(shí)、可靠的數(shù)據(jù)通信提供了強(qiáng)有力的技術(shù)支持。CAN(Controller Area Network)屬于現(xiàn)場(chǎng)總線(xiàn)的范疇,它是一種有效支持分布式控制或?qū)崟r(shí)控制的串行通信網(wǎng)絡(luò)。較之目前許多RS-485基于R線(xiàn)構(gòu)建的分布式控制系統(tǒng)而言,基于CAN總線(xiàn)的分布式控制系統(tǒng)在以下方面具有明顯的優(yōu)越性:
首先,CAN控制器工作于多主方式,網(wǎng)絡(luò)中的各節(jié)點(diǎn)都可根據(jù)總線(xiàn)訪(fǎng)問(wèn)優(yōu)先權(quán)(取決于報(bào)文標(biāo)識(shí)符)采用無(wú)損結(jié)構(gòu)的逐位仲裁的方式競(jìng)爭(zhēng)向總線(xiàn)發(fā)送數(shù)據(jù),且CAN協(xié)議廢除了站地址編碼,而代之以對(duì)通信數(shù)據(jù)進(jìn)行編碼,這可使不同的節(jié)點(diǎn)同時(shí)接收到相同的數(shù)據(jù),這些特點(diǎn)使得CAN總線(xiàn)構(gòu)成的網(wǎng)絡(luò)各節(jié)點(diǎn)之間的數(shù)據(jù)通信實(shí)時(shí)性強(qiáng),并且容易構(gòu)成冗余結(jié)構(gòu),提高系統(tǒng)的可靠性和系統(tǒng)的靈活性。而利用RS-485只能構(gòu)成主從式結(jié)構(gòu)系統(tǒng),通信方式也只能以主站輪詢(xún)的方式進(jìn)行,系統(tǒng)的實(shí)時(shí)性、可靠性較差;
其次,CAN總線(xiàn)通過(guò)CAN控制器接口芯片82C250的兩個(gè)輸出端CANH和CANL與物理總線(xiàn)相連,而CANH端的狀態(tài)只能是高電平或懸浮狀態(tài),CANL端只能是低電平或懸浮狀態(tài)。這就保證不會(huì)出現(xiàn)象在RS-485網(wǎng)絡(luò)中,當(dāng)系統(tǒng)有錯(cuò)誤,出現(xiàn)多節(jié)點(diǎn)同時(shí)向總線(xiàn)發(fā)送數(shù)據(jù)時(shí),導(dǎo)致總線(xiàn)呈現(xiàn)短路,從而損壞某些節(jié)點(diǎn)的現(xiàn)象。而且CAN節(jié)點(diǎn)在錯(cuò)誤嚴(yán)重的情況下具有自動(dòng)關(guān)閉輸出功能,以使總線(xiàn)上其他節(jié)點(diǎn)的操作不受影響,從而保證不會(huì)出現(xiàn)象在網(wǎng)絡(luò)中,因個(gè)別節(jié)點(diǎn)出現(xiàn)問(wèn)題,使得總線(xiàn)處于“死鎖”狀態(tài)。
而且,CAN具有的完善的通信協(xié)議可由CAN控制器芯片及其接口芯片來(lái)實(shí)現(xiàn),從而大大降低系統(tǒng)開(kāi)發(fā)難度,縮短了開(kāi)發(fā)周期,這些是只僅僅有電氣協(xié)議的RS-485所無(wú)法比擬的。另外,與其它現(xiàn)場(chǎng)總線(xiàn)比較而言,CAN總線(xiàn)是具有通信速率高、容易實(shí)現(xiàn)、且性?xún)r(jià)比高等諸多特點(diǎn)的一種已形成國(guó)際標(biāo)準(zhǔn)的現(xiàn)場(chǎng)總線(xiàn)。這些也是目前CAN總線(xiàn)應(yīng)用于眾多領(lǐng)域,具有強(qiáng)勁的市場(chǎng)競(jìng)爭(zhēng)力的重要原因。
CAN (Controller Area Network)即控制器局域網(wǎng)絡(luò),屬于工業(yè)現(xiàn)場(chǎng)總線(xiàn)的范疇。與一般的通信總線(xiàn)相比,CAN總線(xiàn)的數(shù)據(jù)通信具有突出的可靠性、實(shí)時(shí)性和靈活性。由于其良好的性能及獨(dú)特的設(shè)計(jì),CAN總線(xiàn)越來(lái)越受到人們的重視。它在汽車(chē)領(lǐng)域上的應(yīng)用是最廣泛的,世界上一些著名的汽車(chē)制造廠(chǎng)商,如BENZ(奔馳)、BMW(寶馬)、PORSCHE(保時(shí)捷)、ROLLS-ROYCE(勞斯萊斯)和JAGUAR(美洲豹)等都采用了CAN總線(xiàn)來(lái)實(shí)現(xiàn)汽車(chē)內(nèi)部控制系統(tǒng)與各檢測(cè)和執(zhí)行機(jī)構(gòu)間的數(shù)據(jù)通信。同時(shí),由于CAN總線(xiàn)本身的特點(diǎn),其應(yīng)用范圍目前已不再局限于汽車(chē)行業(yè),而向自動(dòng)控制、航空航天、航海、過(guò)程工業(yè)、機(jī)械工業(yè)、紡織機(jī)械、農(nóng)用機(jī)械、機(jī)器人、數(shù)控機(jī)床、醫(yī)療器械及傳感器等領(lǐng)域發(fā)展。CAN已經(jīng)形成國(guó)際標(biāo)準(zhǔn),并已被公認(rèn)為幾種最有前途的現(xiàn)場(chǎng)總線(xiàn)之一。其典型的應(yīng)用協(xié)議有:SAE J1939/ISO11783、CANOpen、CANaerospace、DeviceNet、NMEA 2000等。


什么是CAN總線(xiàn)?
CAN意為Controller Area Network的縮寫(xiě),意為控制區(qū)域網(wǎng)絡(luò)。是國(guó)際上流行的現(xiàn)場(chǎng)總線(xiàn)中的一種。是一種特別適合于組建互連的設(shè)備網(wǎng)絡(luò)系統(tǒng)或子系統(tǒng)。
2.CAN總線(xiàn)特點(diǎn)?
l CAN是到目前為止為數(shù)不多的有國(guó)際標(biāo)準(zhǔn)的現(xiàn)場(chǎng)總線(xiàn)
l CAN通訊距離最大是10公里(設(shè)速率為5Kbps),或最大通信速率為1Mbps(設(shè)通信距離為40米)。
CAN總線(xiàn)上的節(jié)點(diǎn)數(shù)可達(dá)110個(gè)。通信介質(zhì)可在雙絞線(xiàn),同軸電纜,光纖中選擇。
CAN采用非破壞性的總線(xiàn)仲裁技術(shù),當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)發(fā)送數(shù)據(jù)時(shí),優(yōu)先級(jí)低的節(jié)點(diǎn)會(huì)主動(dòng)退出發(fā)送,高優(yōu)先級(jí)的節(jié)點(diǎn)可繼續(xù)發(fā)送,節(jié)省總線(xiàn)仲裁時(shí)間。
CAN是多主方式工作,網(wǎng)上的任一節(jié)點(diǎn)均可在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上其他節(jié)點(diǎn)發(fā)送信息。
CAN采用報(bào)文識(shí)別符識(shí)別網(wǎng)絡(luò)上的節(jié)點(diǎn),從而把節(jié)點(diǎn)分成不同的優(yōu)先級(jí),高優(yōu)先級(jí)的節(jié)點(diǎn)享有傳送報(bào)文的優(yōu)先權(quán)。
報(bào)文是短幀結(jié)構(gòu),短的傳送時(shí)間使其受干擾概率低,CAN有很好的效驗(yàn)機(jī)制,這些都保證了CAN通信的可靠性。

3.CAN總線(xiàn)應(yīng)用領(lǐng)域
CAN總線(xiàn)最初是德國(guó)BOSCH為汽車(chē)行業(yè)的監(jiān)測(cè),控制而設(shè)計(jì)的?,F(xiàn)已應(yīng)用到鐵路、交通、國(guó)防、工程、工業(yè)機(jī)械、紡織、農(nóng)用機(jī)械、數(shù)控、醫(yī)療器械機(jī)器人、樓宇、安防等方面。
I2C(Inter-Integrated Circuit)總線(xiàn)
I2C(Inter-Integrated Circuit)總線(xiàn)是一種由PHILIPS公司開(kāi)發(fā)的兩線(xiàn)式串行總線(xiàn),用于連接微控制器及其外圍設(shè)備。I2C總線(xiàn)產(chǎn)生于在80年代,最初為音頻和視頻設(shè)備開(kāi)發(fā),如今主要在服務(wù)器管理中使用,其中包括單個(gè)組件狀態(tài)的通信。例如管理員可對(duì)各個(gè)組件進(jìn)行查詢(xún),以管理系統(tǒng)的配置或掌握組件的功能狀態(tài),如電源和系統(tǒng)風(fēng)扇??呻S時(shí)監(jiān)控內(nèi)存、硬盤(pán)、網(wǎng)絡(luò)、系統(tǒng)溫度等多個(gè)參數(shù),增加了系統(tǒng)的安全性,方便了管理。
1I2C總線(xiàn)特點(diǎn)
I2C總線(xiàn)最主要的優(yōu)點(diǎn)是其簡(jiǎn)單性和有效性。由于接口直接在組件之上,因此I2C總線(xiàn)占用的空間非常小,減少了電路板的空間和芯片管腳的數(shù)量,降低了互聯(lián)成本??偩€(xiàn)的長(zhǎng)度可高達(dá)25英尺,并且能夠以10Kbps的最大傳輸速率支持40個(gè)組件。I2C總線(xiàn)的另一個(gè)優(yōu)點(diǎn)是,它支持多主控(multimastering),其中任何能夠進(jìn)行發(fā)送和接收的設(shè)備都可以成為主總線(xiàn)。一個(gè)主控能夠控制信號(hào)的傳輸和時(shí)鐘頻率。當(dāng)然,在任何時(shí)間點(diǎn)上只能有一個(gè)主控。
2I2C總線(xiàn)工作原理
2.1總線(xiàn)的構(gòu)成及信號(hào)類(lèi)型
I2C總線(xiàn)是由數(shù)據(jù)線(xiàn)SDA和時(shí)鐘SCL構(gòu)成的串行總線(xiàn),可發(fā)送和接收數(shù)據(jù)。在CPU與被控IC之間、IC與IC之間進(jìn)行雙向傳送,最高傳送速率100kbps。各種被控制電路均并聯(lián)在這條總線(xiàn)上,但就像電話(huà)機(jī)一樣只有撥通各自的號(hào)碼才能工作,所以每個(gè)電路和模塊都有唯一的地址,在信息的傳輸過(guò)程中,I2C總線(xiàn)上并接的每一模塊電路既是主控器(或被控器),又是發(fā)送器(或接收器),這取決于它所要完成的功能。CPU發(fā)出的控制信號(hào)分為地址碼和控制量?jī)刹糠郑刂反a用來(lái)選址,即接通需要控制的電路,確定控制的種類(lèi);控制量決定該調(diào)整的類(lèi)別(如對(duì)比度、亮度等)及需要調(diào)整的量。這樣,各控制電路雖然掛在同一條總線(xiàn)上,卻彼此獨(dú)立,互不相關(guān)。

I2C總線(xiàn)在傳送數(shù)據(jù)過(guò)程中共有三種類(lèi)型信號(hào),它們分別是:開(kāi)始信號(hào)、結(jié)束信號(hào)和應(yīng)答信號(hào)。
開(kāi)始信號(hào):SCL為高電平時(shí),SDA由高電平向低電平跳變,開(kāi)始傳送數(shù)據(jù)。
結(jié)束信號(hào):SCL為低電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。
應(yīng)答信號(hào):接收數(shù)據(jù)的IC在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的IC發(fā)出特定的低電平脈沖,表示已收到數(shù)據(jù)。CPU向受控單元發(fā)出一個(gè)信號(hào)后,等待受控單元發(fā)出一個(gè)應(yīng)答信號(hào),CPU接收到應(yīng)答信號(hào)后,根據(jù)實(shí)際情況作出是否繼續(xù)傳遞信號(hào)的判斷。若未收到應(yīng)答信號(hào),由判斷為受控單元出現(xiàn)故障。
目前有很多半導(dǎo)體集成電路上都集成了I2C接口。帶有I2C接口的單片機(jī)有:CYGNAL的C8051F0XX系列,PHILIPSP87LPC7XX系列,MICROCHIP的PIC16C6XX系列等。很多外圍器件如存儲(chǔ)器、監(jiān)控芯片等也提供I2C接口。
3總線(xiàn)基本操作
I2C規(guī)程運(yùn)用主/從雙向通訊。器件發(fā)送數(shù)據(jù)到總線(xiàn)上,則定義為發(fā)送器,器件接收數(shù)據(jù)則定義為接收器。主器件和從器件都可以工作于接收和發(fā)送狀態(tài)??偩€(xiàn)必須由主器件(通常為微控制器)控制,主器件產(chǎn)生串行時(shí)鐘(SCL)控制總線(xiàn)的傳輸方向,并產(chǎn)生起始和停止條件。SDA線(xiàn)上的數(shù)據(jù)狀態(tài)僅在SCL為低電平的期間才能改變,SCL為高電平的期間,SDA狀態(tài)的改變被用來(lái)表示起始和停止條件。
3.1控制字節(jié)
在起始條件之后,必須是器件的控制字節(jié),其中高四位為器件類(lèi)型識(shí)別符(不同的芯片類(lèi)型有不同的定義,EEPROM一般應(yīng)為1010),接著三位為片選,最后一位為讀寫(xiě)位,當(dāng)為1時(shí)為讀操作,為0時(shí)為寫(xiě)操作。
3.2寫(xiě)操作
寫(xiě)操作分為字節(jié)寫(xiě)和頁(yè)面寫(xiě)兩種操作,對(duì)于頁(yè)面寫(xiě)根據(jù)芯片的一次裝載的字節(jié)不同有所不同。
3.3讀操作
讀操作有三種基本操作:當(dāng)前地址讀、隨機(jī)讀和順序讀。


評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉