iic總線學習心得_第1頁
iic總線學習心得_第2頁
iic總線學習心得_第3頁
iic總線學習心得_第4頁
iic總線學習心得_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

3、到第一個主控端送出 STOP 指令,并且將總線回復閑置狀態時,才能控制總線。 總線數據傳送術語 F (FREE) - 總線為可用或閑置狀態,這時 SDA 串行數據線與 SCL 串行時鐘均為高電位狀態。S (START) 或 R (RESTART) - 數據傳送是以 START 情況開始,這時 SDA 串行數據線的電壓位準會從高電位轉變為低電位,而 SCL 串行時鐘則保持在高電位,當這個情況發生時,代表了總線進入忙碌 (BUSY) 狀態。C (CHANGE) - 當 SCL 串行時鐘數據線為低電位時,數據位就可以由發送端放置到 SDA 串行數據在線,在這段時間內,只要 SCL 串行時鐘一直維持在

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

19、;                                                  

20、;                                                  

21、;                                                  

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

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

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

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

26、設備的SDO連接主設備的SDI,從設備SDI接收的數據是主設備的SDO發送過來的,主設備SDI接收的數據是從設備SDO發送過來的,所以主設備這邊SPI時鐘極性的配置(即SDO的配置)跟從設備的SDI接收數據的極性是相反的,跟從設備SDO發送數據的極性是相同的。下面這段話是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.意思是:主設備在時鐘的下降沿發送數據,從設備在時鐘的上升沿接收數據。因此主設備這邊SPI時鐘極性應該配置為下降沿有效。又如,下面這段話是摘自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.意思是:從設備SSD1289在時鐘的上升沿接收數據,而且是按照從高位到地位的順序接收數據的。因此主設備的SP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論