工業以及汽車應用中多種串行總線特性及比較
b. 數據方向和通信速度
SPI傳輸串行數據時首先傳輸最高位。波特率可以高達5Mbps,具體速度大小取決于SPI硬件。例如,Xicor公司的SPI串行器件傳輸速度能達到5MHz。
c. SPI與UART比較
SPI通信快于UART通信,兩者都可以用在中等速度外設的通信中,例如非易失性EEPROM存儲器。然而,SPI更常用于EEPROM或數模變換器的通信中。
有些UART能支持SPI通信,在這種情況下,會用一個通用IO作為從屬選擇引腳。
3. I2C總線
I2C是由飛利浦公司開發的雙線同步總線。像SPI一樣,該總線可用來與EEPROM、ADC、DAC和LCD這類慢速器件進行通信。
a. I2C通信
I2C是一個半雙工、多主總線,該總線網絡有一個或幾個主控器件和很多個從器件。信息由兩條串行線傳輸:串行數據線(SDA)和串行時鐘線(SCL)。圖1顯示了使用兩個主控和三個從器件相連接的例子。
![]() |
主控器件發起數據傳送,并提供用于通信的時鐘信號。通信開始于SCL為高電平時SDA由高到低的轉換,緊接著是一個7位或10位的從地址,一個數據方向位(R/W),一個應答位和停止狀態。停止狀態定義為在時鐘信號為高時數據線電平由低到高的轉換。每一個數據字節長度為8位,單次傳送的字節數并沒有限制。
由于I2C是一個多主總線,因此可能有兩個或更多的主控器件同時試圖訪問總線,在時鐘信號為高電平時在總線上置“1”的主控器件贏得總線仲裁。
I2C有三種不同的運行模式:標準、快速和高速模式。在使用快速和高速模式時,可能某個從屬器件不能像主控器件那么快地處理數據。此時,從屬器件會將SCL線拉至低電平來保持總線,這迫使主控器件進入等待狀態,直至從屬器件準備就緒。
b. 數據方向和通信速度
數據傳輸首先從最高位開始。I2C總線設計用于三種數據傳輸速度,每個都向下兼容性:
- 低速,數據傳輸率為0到100kbps;
- 快速,數據傳輸率可以高達400kbps;
- 高速,數據傳輸率可以高達3.4Mbps。
c. I2C與SPI比較
I2C和SPI都能用于低速器件的通信,而SPI的數據傳輸速率高于I2C。此外,SPI具有一個內在地址功能,不需要設計一個額外的寄存器來測試地址,從而減少軟件和硬件的設計開銷。
4. 控制器區域網絡
控制器區域網絡(CAN)是一個多主異步串行總線。由于它具有優良的錯誤處理機制及可靠的數據傳送性能,該總線在汽車工業中非常普遍,在高安全系數要求的醫療行業中也正在得到普及。
CAN最初由德國的Robert Bosch公司開發,提供給汽車電子系統所用的低成本通信總線,現在已經成為國際標準,被采用為高速應用的ISO11898標準和用于低速應用的ISO11519標準。
a. CAN通信
當總線空閑時,任何CAN節點都可以開始數據發送。如果兩個或更多的節點同時開始發送,就使用標識符來進行按位仲裁以解決訪問沖突。CAN是一個廣播類型的總線,所有節點都接收總線上的數據,硬件上的過濾機制決定消息是否提供給該接點用。
b. 四種消息幀的類型
數據幀:該幀從一個發送器承載數據到一個接收器。根據CAN規范有兩種數據幀格式,它們的唯一本質區別在于標識符的長度:CAN標準幀,也稱為CAN2.0A,支持11位長度的標識符;另一個是CAN擴展幀,也稱為CAN2.0B,支持29位長度的標識符。圖2顯示了兩種規范的CAN數據幀。
![]() |
錯誤幀:此幀將任何總線錯誤通知其它單元,在接收到這個幀時發送器會自動進行消息重發。
超載幀:超載幀由一個忙的CAN節點送出,以請求在前后數據幀之間增加一個額外的延遲。
c. CAN硬件術語
基本CAN(Basic CAN)控制器:這是一種廉價的CAN控制器,具有有限的發送/接收消息緩沖器,以及有限的CAN消息過濾機制。
完全CAN(Full CAN)控制器:完全CAN是一個高成本、高性能的CAN控制器,具有能緩沖8個或更多消息的緩沖器用于接收和發送。例如,富士通的集成CAN微控制器能提供16個消息緩沖器用于接收和發送。此外,富士通的MB90443微控制器能靈活地將兩個CAN控制器的消息緩沖器組合在一個中,以形成能緩沖32個消息的緩沖器。
標準CAN控制器:該CAN控制器能夠處理僅有11位標識符的消息。
擴展CAN控制器:該控制器能夠處理含有11位和29位標識符的消息。
時間觸發CAN(TTCAN)控制器:該CAN控制器根據時間和事件的觸發來安排CAN消息,增強了CAN網絡的總體性能和行為的確定性。
評論