嵌入式應用中的互連技術應用
CAN和LIN總線起源于汽車產業(yè)(圖3)。但是當CAN已經被廣泛用于自動控制、系統(tǒng)控制和機器人中時,LIN仍然僅將其應用范圍鎖定在汽車領域。在大量微控制器上提供的CAN接口構成了實現(xiàn)多種協(xié)議和現(xiàn)場總線的基礎。此外,CAN還采用了一種不同于大多數(shù)嵌入式網(wǎng)絡的尋址方式。
大部分網(wǎng)絡協(xié)議對接收器進行標識,有時候也標識出發(fā)送器。CAN則對數(shù)據(jù)包的數(shù)據(jù)進行標識。它的接口通常具有多個用來檢驗輸入數(shù)據(jù)包標識符的濾波器。濾波器可以屏蔽某些位,這使得它們能夠識別數(shù)據(jù)類別并忽略其余部分。而且,CAN是為數(shù)不多的實現(xiàn)了優(yōu)先級策略的系統(tǒng)之一,優(yōu)先級策略也屬于標識符處理過程的一部分(因此最高的標識符值具有優(yōu)先權)。
其它低速(低于1Mbps)互連包括美信公司的專用1-Wire協(xié)議(圖4)。該異步協(xié)議僅需利用一個片上二極管和電容器就可以給聯(lián)網(wǎng)器件提供最小量的功率。這種寄生方法適用于簡單的傳感器和通常與1-Wire配合使用的控制芯片。雖然該方法并不是專門針對1-Wire協(xié)議的,但在這類產品中應用得最普遍。
更高速的互連通常以較早的低速技術為基礎。FlexRay總線就是由CAN發(fā)展起來的,這兩種總線都可以用于汽車領域。相對于CAN總線,F(xiàn)lexRay的速度更快(10Mbps)、更復雜并且更具魯棒性,但是在大部分新型汽車中,以上兩種總線和LIN總線都是同時存在的。
FlexRay是面向時間關鍵應用而設計的,這類應用(例如汽車線控制動)需要考慮安全性、可靠性、冗余性和容錯性等因素。FlexRay可以與時鐘級同步,并對傳輸周期進行劃分以實現(xiàn)多個設備間數(shù)據(jù)交換的細粒度控制。雖然FlexRay也許能夠以類似CAN的連接方式應用于其它環(huán)境,但是其它高速互連更適用于非汽車類嵌入式應用。
高速互連
除了FlexRay以外,經檢驗接口傳輸?shù)臄?shù)據(jù)量往往比一個數(shù)據(jù)包所能容納的更少。與所采用的處理器的速度相比,網(wǎng)絡流量往往太小。在很多情況下,必須在保持更高性能的同時能夠盡量減少互連線的數(shù)量。此時,USB、PCI Express和SRIO等技術開始發(fā)揮作用。
在嵌入式領域中USB不斷獲得青睞。USB最初成功應用于鍵盤、鼠標、打印機等PC外圍設備的互連,而現(xiàn)在它被普遍用于連接特定嵌入式應用中的模數(shù)轉換器(ADC)、發(fā)動機和數(shù)碼相機。單個USB主接口能以高達480Mbps的速度支持126個設備。
通常,USB與一臺主機和一組外圍設備協(xié)同工作。盡管如此,USB所作的可能仍然只是處理雜事,同時利用SMSC公司的USB2524 MultiSwitch和DisplayLink公司基于USB的顯示適配器支持多主機功能。
隨著廉價、易于編程、USB使能微控制器的出現(xiàn),USB變得越來越普遍。一臺USB主機(通常是另一個微控制器)能夠與微控制器進行通信以訪問來自一系列遠程接口(從ADC到發(fā)動機控制)的服務和外圍設備數(shù)據(jù)。事實上,微控制器的單個USB主接口可提供所有這些功能,還能夠支持對USB存儲器的訪問和以太網(wǎng)通信。
當然,可能還需要傳輸速率更高的產品?;赑CI Express和SRIO等最新串行連接標準的產品已經開始設計,高端系統(tǒng)通常采用4到32個通道,其中每個通道是一個全雙工、四線接口。而低端系統(tǒng)通常采用單個通道。它們現(xiàn)在的最高輸出速率為5Gbps。
這兩者之間的主要區(qū)別是PCI Express繼承了PCI的存儲結構,而SRIO能夠輕而易舉地處理小型數(shù)據(jù)包。另一個重要區(qū)別是PCI Express是基于主機的,而SRIO是一個類似以太網(wǎng)的通用網(wǎng)絡。他們都具有的優(yōu)點是采用了芯片到芯片直接連接(已在上述許多低端技術中采用)。
SRIO往往只能用于類似TI TMS320C6?54 DSP和飛思卡爾的雙核MPC8572 PowerQUICC III等芯片。DSP通常具備1x接口而CPU包含4x鏈接。目前SRIO已經可以用于低端32位或16位微控制器。
PCI Express會出現(xiàn)同樣的情況,但是根據(jù)目前對PCI的支持,在不久的將來PCI Express更有可能向低端芯片領域發(fā)展。嵌入式領域中的另外一個驅動因素將是各種標準,例如PCMCIA的ExpressCard、PIC Express和COM Express。這些標準正不斷推進對更多1x PCI Express外圍器件的需求,從而使得這些器件更適合微控制器平臺。
當然,我們不應該忽略這個問題。以太網(wǎng)是事實上的網(wǎng)絡標準,10Mbps以太網(wǎng)甚至可以用于8位微控制器,例如Microchip的PIC18F97J60和Rabbit Semiconductor的Rabbit 4000。以太網(wǎng)通常需要外部磁場,并且系統(tǒng)一般與外部交換機相連。根據(jù)環(huán)境的不同,這一特性可能成為優(yōu)勢也可能成為劣勢。
在工業(yè)自動化應用中,盡管通常針對的是機外(outside-the-box)連接,以太網(wǎng)標準同樣具有一定優(yōu)勢。如果發(fā)生兼容性和吞吐量的問題,那么從10Base-T往上升級是一個相對較簡單的方法,這在很大程度上是因為較高端的微控制器具有內置的100Mbps和1Gbps以太網(wǎng)接口。
支持和阻礙以太網(wǎng)發(fā)展的一個關鍵點是協(xié)議棧的復雜性。如果低端控制就已經足夠滿足而且網(wǎng)絡通信被隔離開來,那么TCP/IP協(xié)議棧通??捎玫投私涌诨蛘邇H用一個IP協(xié)議棧來取代。
設計系統(tǒng)
給開發(fā)人員提供一個端口、一個UART或者一個FPGA產品,他們就可以在其網(wǎng)絡接口上實現(xiàn)位響應(bit-bang)。開發(fā)人員也可以實現(xiàn)很多本文中提到的接口,但是必須小心謹慎。因為有些架構存在許可證問題,而這些問題可能是不確定的。例如,一些架構可能僅限制使用一個術語或者標志,而其它架構則允許設計工程師創(chuàng)建除主設備以外的設備(反之亦然)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論