降低任何嵌入式設計的體積和成本的常用方法是使用具有較少I/O引腳的通信總線。雖然從并行總線發展到串行總線可明顯減小體積和降低成本,但是從一種串行總線發展為另一種具有較少引腳的串行總線也很有用。用串行總線替代并行總線時,傳輸速度是一個關鍵參數。在小體積是最重要參數的設計中,使用具有較少引腳的串行總線很有優勢。單片機集成超過12種不同的串行接口,本文將討論各串行接口的優缺點。
個人計算機中的USB與FireWireTM
一種促使PC市場發生重大變化的流行總線就是通用串行總線(universal serial bus,USB)。它的高速度、低引腳數和多功能性促進了它的廣泛使用,且USB逐漸取代了并行打印機和RS-232串口,成為PC的主要通信端口。USB2.0在節約系統成本方面也優于FireWireTM S400。此外,USB可利用PC資源依靠主處理器來管理低級別的USB協議,而FireWire將此任務委托給接口硬件。FireWire所需的額外硬件成本和初始許可費用使USB成為PC領域的首選接口。同樣的原因也促使嵌入式應用紛紛迅速采用USB。
同步接口與異步接口
選擇串行接口時,必須檢查同步接口和異步接口。同步接口使用主時鐘進行同步,而異步接口將時鐘嵌入到數據流中。從器件時鐘的頻率變化不會影響同步接口的同步操作,因而可以使用低成本振蕩器。在異步器件中,實現同步需要所有器件在傳輸速度、協議、重新同步頻率和時鐘穩定性方面達成一致。
同步接口可在同一印刷電路板(printed circuit board,PCB)上輕松實現器件間連接,而異步接口旨在通過電纜連接相隔數米至1000米的系統。應用范圍從簡單的點對點連接到具有數百個器件的復雜網絡。也可以通過OSI模型描述每種總線類型的不同物理接口。
OSI七層模型
通常,同步接口在內部支持數據鏈路層(第2層)和物理層(第1層),而大部分異步接口在內部支持數據鏈路層在外部支持物理層。有時,異步接口也在內部支持這兩層。對于某些應用,相同的數據鏈路層結合不同的物理層驅動程序來創建不同的接口標準。在單片機中,通常通過某些硬件支持在軟件中實現第3至第7層。
從并行接口發展到串行接口
當系統軟件需要大量存儲器時,通常會選擇具有外部地址和數據總線的單片機。并行閃存程序存儲器和SRAM需要16個或更多I/O引腳,設計人員可選擇使用具有內部存儲器的單片機以節省I/O引腳、縮小體積和降低成本。雖然現在許多單片機程序存儲器的容量都已有所提高,但如果內部存儲容量還是不夠的話,可采用使用SPI端口的外部閃存程序存儲器或串行SRAM。
由于串行閃存程序存儲器和串行SRAM器件只可通過SPI總線提供,所以選擇此總線可獲得最高效的系統設計。當某些元件只能通過某個特定總線連接時,這些元件決定了總線的選擇,除非單線器件可提供更好的解決方案。
同步接口
? SPI
? MICROWIRE
? I2C?
? 通用串行異步收發器(universal serial asynchronous receiver transmitter,USART),同步和異步模式
總線選擇所采用的標準:
1.元件只能通過一種總線提供
2. MCU上可用的總線:
a. SPI和I2C或同步串行端口(Synchronous Serial Port,SSP)
b.串行控制接口(SCI)
c. USART
d.具有軟件驅動的GPI/O
e.其他網絡總線
3.需要較快的總線速度
4.小尺寸的較低引腳數總線
5.推挽輸出或漏極開路輸出
6.系統總成本
7.提供的功能集
SPI總線支持的典型速度范圍為5MHz至20MHz,但對于高速串行閃存程序存儲器,還可支持高達75MHz的速度。Microwire總線在工作原理和連線數量上與SPI總線相似,但是總線規范將其通信速度限制為3MHz。
I2C總線具有時鐘線和數據線,其可軟件尋址且具有400kHz的典型工作速度,連接多個器件時速度可為1MHz。由于單片機I/O端口有限,故端口較少成為了該總線的最大優勢。
圖1a 3引腳UNI/O總線連接圖1b 2引腳UNI/O總線連接
通常,SPI和Microwire總線使用4個I/O端口,而I2C總線使用2個I/O端口。小型化系統的下一步發展就是尋求更小的、使用單個I/O進行通信的總線。由于這種情況只能在將時鐘嵌入到數據流中時實現,所以這些接口必須是異步接口。
異步接口
今天,有兩種不同的異步總線競爭通常為同步總線預留的端口。這兩種總線是1-Wire?總線(Maxim)和UNI/O?總線(Microchip Technology)。
1-Wire?總線上的器件采用2引腳封裝,一個引腳用于接地,第二個引腳用于數據和電源連接。在1-Wire總線器件的設計中融入了電容,從而可從數據線獲取寄生功率,采用漏極開路輸出的電阻可獲取高達16.3kbps的傳輸速度,而當該電阻值降至2.2kΩ時傳輸速度將增至142kbps。
UNI/O?總線是一種新的單線總線標準,采用3引腳封裝,支持電源、地和數據連接。使用曼徹斯特編碼進行通信,支持10kbps至100kbps的數據傳輸速度。雖然該總線旨在用于標準嵌入式設計,但通過添加一個外部肖特基二極管并調整旁路電容的值,可使其用于具有2引腳接口的應用中。圖1a和1b中的框圖充分說明了此解決方案如此簡單。
UART為最早且占據主導地位的異步接口,而在需要同步和異步模式時還稱為USART。再回到OSI模型,單片機的片內UART實現了數據鏈路層,而物理層受制于幾個驅動標準。這些標準中最常用的是RS-232C、RS-422和RS-485接口。
還有一些具有異步接口的特殊單片機,旨在用于網絡連接,如以太網、CAN、LIN和MIDI。表1匯總了各種串行接口及其特性。
表1:各種串行接口匯總
?
結論
在選擇最佳的串行接口時,應檢查系統設計以獲得最低成本解決方案。許多情況下,最低成本的元件并不會提供最低成本的系統。隨著系統規模的繼續縮小,單線總線外部存儲器可以在對單片機資源或外部連接器產生較小影響的情況下提供最低的系統總成本。
評論
查看更多