<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式系統設計的多種串行總線(xiàn)特性及比較

嵌入式系統設計的多種串行總線(xiàn)特性及比較

作者: 時(shí)間:2012-02-01 來(lái)源:網(wǎng)絡(luò ) 收藏
  微處理器中常用的集成是通用異步接收器傳輸總線(xiàn)(UART)、串行通信接口(SCI)和通用(USB)等,這些總線(xiàn)在速度、物理接口要求和通信方法學(xué)上都有所不同。本文詳細介紹了設計的、驅動(dòng)器和物理接口的特性,并為總線(xiàn)最優(yōu)選擇提供性能比較和選擇建議。

  由于在消費類(lèi)電子產(chǎn)品、計算機外設、汽車(chē)和工業(yè)應用中增加了嵌入式功能,對低成本、高速和高可靠通信介質(zhì)的要求也不斷增長(cháng)以滿(mǎn)足這些應用,其結果是越來(lái)越多的處理器和控制器用不同類(lèi)型的總線(xiàn)集成在一起,實(shí)現與PC軟件、開(kāi)發(fā)系統(如仿真器)或網(wǎng)絡(luò )中的其它設備進(jìn)行通信。目前流行的通信一般采用串行或并行模式,而串行模式應用更廣泛。

  微處理器中常用的集成串行總線(xiàn)是通用異步接收器傳輸總線(xiàn)、串行通信接口、同步外設接口(SPI)、內部集成電路(I2C)和通用串行總線(xiàn),以及車(chē)用串行總線(xiàn),包括控制器區域網(wǎng)(CAN)和本地互連網(wǎng)(LIN)。這些總線(xiàn)在速度、物理接口要求和通信方法學(xué)上都有所不同。本文將對設計的串行總線(xiàn)、驅動(dòng)器和物理接口這些要求提供一個(gè)總體介紹,為選擇最優(yōu)總線(xiàn)提供指導并給出一個(gè)比較圖表(表1)。為了說(shuō)明方便起見(jiàn),本文的闡述是基于微處理器的設計。

串行與并行相比

  串行相比于并行的主要優(yōu)點(diǎn)是要求的線(xiàn)數較少。例如,用在汽車(chē)工業(yè)中的LIN串行總線(xiàn)只需要一根線(xiàn)來(lái)與從屬器件進(jìn)行通信,Dallas公司的1-Wire總線(xiàn)只使用一根線(xiàn)來(lái)輸送信號和電源。較少的線(xiàn)意味著(zhù)所需要的控制器引腳較少。集成在一個(gè)微控制器中的并行總線(xiàn)一般需要8條或更多的線(xiàn),線(xiàn)數的多少取決于設計中地址和數據的寬度,所以集成一個(gè)并行總線(xiàn)的芯片至少需要8個(gè)引腳來(lái)與外部器件接口,這增加了芯片的總體尺寸。相反地,使用串行總線(xiàn)可以將同樣的芯片集成在一個(gè)較小的封裝中。

  另外,在PCB板設計中并行總線(xiàn)需要更多的線(xiàn)來(lái)與其它外設接口,使PCB板面積更大、更復雜,從而增加了硬件成本。此外,工程師還可以很容易地將一個(gè)新器件加到一個(gè)串行網(wǎng)絡(luò )中去,而且不會(huì )影響網(wǎng)絡(luò )中的其它器件。例如,可以很容易地去掉總線(xiàn)上舊器件并用新的來(lái)替代。

  串行總線(xiàn)的故障自診斷和調試也非常簡(jiǎn)單,可以很容易地跟蹤網(wǎng)絡(luò )中一個(gè)有故障的器件并用新器件替換而不會(huì )干擾網(wǎng)絡(luò )。但另一方面,并行總線(xiàn)比串行速度快。例如,Rambus公司的“Redwood”總線(xiàn)速度可高達6.4GHz,而最高的串行速度不會(huì )超過(guò)幾個(gè)兆赫。

在工業(yè)和汽車(chē)應用中常用的串行協(xié)議

1. UART

  UART是一種通用串行數據總線(xiàn),用于異步通信。該總線(xiàn)雙向通信,可以實(shí)現全雙工傳輸和接收。在嵌入式設計中,UART用來(lái)與PC進(jìn)行通信,包括與監控調試器和其它器件,如EEPROM通信。

a. UART通信

  UART首先將接收到的并行數據轉換成串行數據來(lái)傳輸。消息幀從一個(gè)低位起始位開(kāi)始,后面是7個(gè)或8個(gè)數據位,一個(gè)可用的奇偶位和一個(gè)或幾個(gè)高位停止位。接收器發(fā)現開(kāi)始位時(shí)它就知道數據準備發(fā)送,并嘗試與發(fā)送器時(shí)鐘頻率同步。如果選擇了奇偶,UART就在數據位后面加上奇偶位。奇偶位可用來(lái)幫助錯誤校驗。

  在接收過(guò)程中,UART從消息幀中去掉起始位和結束位,對進(jìn)來(lái)的字節進(jìn)行奇偶校驗,并將數據字節從串行轉換成并行。UART也產(chǎn)生額外的信號來(lái)指示發(fā)送和接收的狀態(tài)。例如,如果產(chǎn)生一個(gè)奇偶錯誤,UART就置位奇偶標志。

b. 數據方向和通信速度

  數據傳輸可以首先從最低有效位(LSB)開(kāi)始。然而,有些UART允許靈活選擇先發(fā)送最低有效位或最高有效位(MSB)。

  微控制器中的UART傳送數據的速度范圍為每秒幾百位到1.5Mb。例如,嵌入在ElanSC520微控制器中的高速UART通信的速度可以高達1.1152Mbps。UART波特率還受發(fā)送和接收線(xiàn)對距離(線(xiàn)長(cháng)度)的影響。

  目前,市場(chǎng)上有只支持異步通信和同時(shí)支持異步與同步通信的兩種硬件可用于UART。前者就是UART名字本身的含義,在摩托羅拉微控制器中被稱(chēng)為串行通信接口(SCI);Microchip微控制器中的通用同步異步收發(fā)器(USART)和在富士通微控制器中的UART是后者的兩個(gè)典型例子。

c. 計算機中的UART

  UART是計算機中串行通信端口的關(guān)鍵部分。在計算機中,UART相連于產(chǎn)生兼容RS232規范信號的電路。RS232標準定義邏輯“1”信號相對于地為3到25伏,而邏輯“0”相對于地為-3到-25伏。所以,當一個(gè)微控制器中的UART相連于PC時(shí),它需要一個(gè)RS232驅動(dòng)器來(lái)轉換電平。

2. 同步外設接口

  同步外設接口(SPI)是由摩托羅拉公司開(kāi)發(fā)的全雙工同步串行總線(xiàn),該總線(xiàn)大量用在與EEPROM、ADC、FRAM和顯示驅動(dòng)器之類(lèi)的慢速外設器件通信。

a. SPI通信

  該總線(xiàn)通信基于主-從配置。它有以下4個(gè)信號:

MOSI:主出/從入


MISO:主入/從出


SCK:串行時(shí)鐘


SS:從屬選擇

芯片上“從屬選擇”(slave-select)的引腳數決定了可連到總線(xiàn)上的器件數量。

  在SPI傳輸中,數據是同步進(jìn)行發(fā)送和接收的。數據傳輸的時(shí)鐘基于來(lái)自主處理器的時(shí)鐘脈沖,摩托羅拉沒(méi)有定義任何通用SPI的時(shí)鐘規范。然而,最常用的時(shí)鐘設置基于時(shí)鐘極性(CPOL)和時(shí)鐘相位(CPHA)兩個(gè)參數,CPOL定義SPI串行時(shí)鐘的活動(dòng)狀態(tài),而CPHA定義相對于SO-數據位的時(shí)鐘相位。CPOL和CPHA的設置決定了數據取樣的時(shí)鐘沿。

b. 數據方向和通信速度

  SPI傳輸串行數據時(shí)首先傳輸最高位。波特率可以高達5Mbps,具體速度大小取決于SPI硬件。例如,Xicor公司的SPI串行器件傳輸速度能達到5MHz。

c. SPI與UART比較

  SPI通信快于UART通信,兩者都可以用在中等速度外設的通信中,例如非易失性EEPROM存儲器。然而,SPI更常用于EEPROM或數模變換器的通信中。

有些UART能支持SPI通信,在這種情況下,會(huì )用一個(gè)通用IO作為從屬選擇引腳。

3. I2C總線(xiàn)

  I2C是由飛利浦公司開(kāi)發(fā)的雙線(xiàn)同步總線(xiàn)。像SPI一樣,該總線(xiàn)可用來(lái)與EEPROM、ADC、DAC和LCD這類(lèi)慢速器件進(jìn)行通信。

a. I2C通信

  I2C是一個(gè)半雙工、多主總線(xiàn),該總線(xiàn)網(wǎng)絡(luò )有一個(gè)或幾個(gè)主控器件和很多個(gè)從器件。信息由兩條串行線(xiàn)傳輸:串行數據線(xiàn)(SDA)和串行時(shí)鐘線(xiàn)(SCL)。圖1顯示了使用兩個(gè)主控和三個(gè)從器件相連接的例子。

  網(wǎng)絡(luò )中的每一個(gè)器件都預指定一個(gè)7位或10位的地址。飛利浦會(huì )給器件制造商分配地址,也有一個(gè)特定的地址用于高速通信,以及一個(gè)通用呼叫地址用于與網(wǎng)絡(luò )中所有器件的通信。10位尋址的優(yōu)點(diǎn)是允許更多的器件(高達1024個(gè))布置在網(wǎng)絡(luò )中。然而,總線(xiàn)中器件的數目取決于總線(xiàn)的電容量,必須限制在400pF以?xún)取?

  主控器件發(fā)起數據傳送,并提供用于通信的時(shí)鐘信號。通信開(kāi)始于SCL為高電平時(shí)SDA由高到低的轉換,緊接著(zhù)是一個(gè)7位或10位的從地址,一個(gè)數據方向位(R/W),一個(gè)應答位和停止狀態(tài)。停止狀態(tài)定義為在時(shí)鐘信號為高時(shí)數據線(xiàn)電平由低到高的轉換。每一個(gè)數據字節長(cháng)度為8位,單次傳送的字節數并沒(méi)有限制。

  由于I2C是一個(gè)多主總線(xiàn),因此可能有兩個(gè)或更多的主控器件同時(shí)試圖訪(fǎng)問(wèn)總線(xiàn),在時(shí)鐘信號為高電平時(shí)在總線(xiàn)上置“1”的主控器件贏(yíng)得總線(xiàn)仲裁。

  I2C有三種不同的運行模式:標準、快速和高速模式。在使用快速和高速模式時(shí),可能某個(gè)從屬器件不能像主控器件那么快地處理數據。此時(shí),從屬器件會(huì )將SCL線(xiàn)拉至低電平來(lái)保持總線(xiàn),這迫使主控器件進(jìn)入等待狀態(tài),直至從屬器件準備就緒。

b. 數據方向和通信速度

數據傳輸首先從最高位開(kāi)始。I2C總線(xiàn)設計用于三種數據傳輸速度,每個(gè)都向下兼容性:

低速,數據傳輸率為0到100kbps;

快速,數據傳輸率可以高達400kbps;

高速,數據傳輸率可以高達3.4Mbps。

c. I2C與SPI比較

  I2C和SPI都能用于低速器件的通信,而SPI的數據傳輸速率高于I2C。此外,SPI具有一個(gè)內在地址功能,不需要設計一個(gè)額外的寄存器來(lái)測試地址,從而減少軟件和硬件的設計開(kāi)銷(xiāo)。

4. 控制器區域網(wǎng)絡(luò )

  控制器區域網(wǎng)絡(luò )(CAN)是一個(gè)多主異步串行總線(xiàn)。由于它具有優(yōu)良的錯誤處理機制及可靠的數據傳送性能,該總線(xiàn)在汽車(chē)工業(yè)中非常普遍,在高安全系數要求的醫療行業(yè)中也正在得到普及。

  CAN最初由德國的Robert Bosch公司開(kāi)發(fā),提供給汽車(chē)電子系統所用的低成本通信總線(xiàn),現在已經(jīng)成為國際標準,被采用為高速應用的ISO11898標準和用于低速應用的ISO11519標準。

a. CAN通信

  當總線(xiàn)空閑時(shí),任何CAN節點(diǎn)都可以開(kāi)始數據發(fā)送。如果兩個(gè)或更多的節點(diǎn)同時(shí)開(kāi)始發(fā)送,就使用標識符來(lái)進(jìn)行按位仲裁以解決訪(fǎng)問(wèn)沖突。CAN是一個(gè)廣播類(lèi)型的總線(xiàn),所有節點(diǎn)都接收總線(xiàn)上的數據,硬件上的過(guò)濾機制決定消息是否提供給該接點(diǎn)用。

b. 四種消息幀的類(lèi)型

數據幀:該幀從一個(gè)發(fā)送器承載數據到一個(gè)接收器。根據CAN規范有兩種數據幀格式,它們的唯一本質(zhì)區別在于標識符的長(cháng)度:CAN標準幀,也稱(chēng)為CAN2.0A,支持11位長(cháng)度的標識符;另一個(gè)是CAN擴展幀,也稱(chēng)為CAN2.0B,支持29位長(cháng)度的標識符。圖2顯示了兩種規范的CAN數據幀。

遠程幀:此幀由一個(gè)接收CAN節點(diǎn)發(fā)送,用來(lái)請求帶有遠程幀中規定的標識符的數據幀。

錯誤幀:此幀將任何總線(xiàn)錯誤通知其它單元,在接收到這個(gè)幀時(shí)發(fā)送器會(huì )自動(dòng)進(jìn)行消息重發(fā)。

超載幀:超載幀由一個(gè)忙的CAN節點(diǎn)送出,以請求在前后數據幀之間增加一個(gè)額外的延遲。

c. CAN硬件術(shù)語(yǔ)

  基本CAN(Basic CAN)控制器:這是一種廉價(jià)的CAN控制器,具有有限的發(fā)送/接收消息緩沖器,以及有限的CAN消息過(guò)濾機制。

  完全CAN(Full CAN)控制器:完全CAN是一個(gè)高成本、高性能的CAN控制器,具有能緩沖8個(gè)或更多消息的緩沖器用于接收和發(fā)送。例如,富士通的集成CAN微控制器能提供16個(gè)消息緩沖器用于接收和發(fā)送。此外,富士通的MB90443微控制器能靈活地將兩個(gè)CAN控制器的消息緩沖器組合在一個(gè)中,以形成能緩沖32個(gè)消息的緩沖器。

標準CAN控制器:該CAN控制器能夠處理僅有11位標識符的消息。

擴展CAN控制器:該控制器能夠處理含有11位和29位標識符的消息。

時(shí)間觸發(fā)CAN(TTCAN)控制器:該CAN控制器根據時(shí)間和事件的觸發(fā)來(lái)安排CAN消息,增強了CAN網(wǎng)絡(luò )的總體性能和行為的確定性。

d. 數據方向和通信速度

  數據字節的傳輸首先從最高位開(kāi)始。一個(gè)8位的數據字節能在一次發(fā)送中進(jìn)行傳輸,最大的CAN總線(xiàn)速度是1Mbps。

e. CAN在汽車(chē)中的應用

圖3的例子顯示了CAN網(wǎng)絡(luò )是如何通過(guò)富士通的16位CAN微控制器在汽車(chē)中應用。

f. 物理接口

大多數CAN微控制器需要一個(gè)外部收發(fā)器來(lái)連接物理總線(xiàn)。目前市場(chǎng)上提供以下一些收發(fā)器:

高速CAN收發(fā)器有飛利浦的82C251,TI的SN65/75LBC031,Bosch的CF150,C250,Unitrode的UC5350;

低速CAN收發(fā)器有飛利浦82C252、TJA1053,西門(mén)子TLE 6252G;

單線(xiàn)CAN收發(fā)器有飛利浦AU5790,英飛凌TLE 6255,Delphi DK166153。

5.本地互連網(wǎng)絡(luò )

  本地互連網(wǎng)絡(luò )(LIN)是一個(gè)低成本、單線(xiàn)串行總線(xiàn),能執行全雙工串行通信。LIN用在汽車(chē)的分布式電子系統中,例如與智能傳感器和傳動(dòng)器的通信。LIN協(xié)議能采用低成本的UART/SCI接口來(lái)實(shí)現,幾乎所有的微控制器都提供這些接口。

a. LIN通信

  LIN網(wǎng)絡(luò )由一個(gè)主控和多個(gè)從器件組成,主控器件發(fā)起所有的通信。

  所有節點(diǎn)執行包括發(fā)送和接收任務(wù)在內的從屬通信任務(wù)。此外,主節點(diǎn)執行主控發(fā)送任務(wù),主控任務(wù)能決定什么時(shí)候、哪一個(gè)幀將在總線(xiàn)上傳輸。在該方式中,沒(méi)有總線(xiàn)仲裁,并且在最壞情況下每個(gè)消息的時(shí)間很容易計算。當一個(gè)消息幀發(fā)送時(shí),在接收和過(guò)濾標識符后,僅有一個(gè)從器件得到激活。

  總線(xiàn)上的所有消息以幀的形式發(fā)送,幀由一個(gè)幀頭和響應字段(response field)組成。主控器件始終在總線(xiàn)上發(fā)送幀頭,幀頭至少由一個(gè)13位字段、一個(gè)同步字節和一個(gè)6位標識符組成,該標識符的范圍為0到63。響應字段由兩個(gè)、四個(gè)和八個(gè)數據字節和具有倒置8位和的校驗和字段,以及所有的數據字節和標識符組成。

圖4顯示了在一個(gè)消息幀上所有字段的排列順序。

b. 數據方向和通信速度

數據字節的傳送首先從LSB開(kāi)始,LIN總線(xiàn)的最大速度是20kbps。

c. 物理接口

  只有很少微控制器集成有專(zhuān)用的LIN硬件,大多數供應商用SCI或UART來(lái)提供支持。因為L(cháng)IN物理層是一個(gè)從汽車(chē)自診斷用ISO9141標準引出的單線(xiàn)12V總線(xiàn),所以需要一個(gè)外部LIN收發(fā)器來(lái)轉換電平。例如當前市場(chǎng)上已有供貨的摩托羅拉IMC33689 LIN和英飛凌公司的TLE6259-2G收發(fā)器。

d. CAN與LIN的比較

  CAN和LIN兩者都使用在汽車(chē)工業(yè)中。CAN用于汽車(chē)中的高速和低速網(wǎng)絡(luò ),而LIN僅用于低速網(wǎng)絡(luò ),如門(mén)控制單元。在很多方面,CAN比LIN更貴也更可靠,必需在可靠性和為設計硬件與軟件支付額外成本之間進(jìn)行權衡。由于LIN的成本較低且容易在UART中實(shí)現,故在低速網(wǎng)絡(luò )應用方面LIN有望替代CAN。

6. 其它通用串行總線(xiàn)

  用在微控制器工業(yè)中的其它總線(xiàn)有RS422、RS485、USB和Microwire.

  RS422和RS485通信可以用一個(gè)UART來(lái)執行。因此,在用于這些總線(xiàn)時(shí)微控制器中不需要增加另外的硬件。

  USB總線(xiàn)的普及性極大地鼓舞了微控制器制造商把USB控制器集成到他們的微控制器中。將外圍器件加到USB總線(xiàn)中是很容易的,并不需要重自舉系統。Cypress半導體公司和其它業(yè)界主導廠(chǎng)商都提供各種系列USB芯片來(lái)滿(mǎn)足市場(chǎng)的需要。

  國家半導體公司(NSC)開(kāi)發(fā)的單線(xiàn)總線(xiàn)Microwire用在許多微控制器和像EEPROM這類(lèi)非易失性存儲器,以及ADC中。該總線(xiàn)能像SPI一樣提供同步通信,可用在使用SPI的地方。有些微控制器供應商通過(guò)使用UART來(lái)支持Microwire總線(xiàn)。

  FlexRay是一種在汽車(chē)工業(yè)中即將推出的新型總線(xiàn),可用在使用CAN總線(xiàn)的地方,該總線(xiàn)的速度是CAN總線(xiàn)的10倍,可以達到10Mbps。目前微控制器制造商正在努力開(kāi)發(fā)具有FlexRay總線(xiàn)的器件。

總線(xiàn)選擇準則

  不同的應用在選擇總線(xiàn)的標準方面并不同,下面是一些進(jìn)行總線(xiàn)選擇的通用參考準則:

1. 評估使用不同串行總線(xiàn)在網(wǎng)絡(luò )上連接各種器件的系統成本。例如,在汽車(chē)應用中,一個(gè)只需要控制功能的系統可以用像LIN這類(lèi)低成本的串行總線(xiàn)來(lái)管理。

2. 在效率、速度和可靠性方面確定對你最重要的性能。例如,對于一個(gè)安全關(guān)鍵系統來(lái)講,可靠性是極為重要的,故而CAN是較好的選擇。

3. 確定在網(wǎng)絡(luò )上將連接多少器件,以及總線(xiàn)將可能具有的電容量。有些串行總線(xiàn)對連在網(wǎng)絡(luò )上的器件數目有限制。

4. 注意器件間的距離,有些串行總線(xiàn)只支持短距離通信。

5. 如果用在汽車(chē)中,CAN或LIN是較好的選擇。由于它們具有很強的魯棒性,因此具有較強的容故障能力和傳輸可靠性。



評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>