工業(yè)以及汽車應(yīng)用中多種串行總線特性及比較
由于在消費(fèi)類電子產(chǎn)品、計(jì)算機(jī)外設(shè)、汽車和工業(yè)應(yīng)用中增加了嵌入式功能,對(duì)低成本、高速和高可靠通信介質(zhì)的要求也不斷增長以滿足這些應(yīng)用,其結(jié)果是越來越多的處理器和控制器用不同類型的總線集成在一起,實(shí)現(xiàn)與PC軟件、開發(fā)系統(tǒng)(如仿真器)或網(wǎng)絡(luò)中的其它設(shè)備進(jìn)行通信。目前流行的通信一般采用串行或并行模式,而串行模式應(yīng)用更廣泛。
微處理器中常用的集成串行總線是通用異步接收器傳輸總線、串行通信接口、同步外設(shè)接口(SPI)、內(nèi)部集成電路(I2C)和通用串行總線,以及車用串行總線,包括控制器區(qū)域網(wǎng)(CAN)和本地互連網(wǎng)(LIN)。這些總線在速度、物理接口要求和通信方法學(xué)上都有所不同。本文將對(duì)嵌入式系統(tǒng)設(shè)計(jì)的串行總線、驅(qū)動(dòng)器和物理接口這些要求提供一個(gè)總體介紹,為選擇最優(yōu)總線提供指導(dǎo)并給出一個(gè)比較圖表(表1)。為了說明方便起見,本文的闡述是基于微處理器的設(shè)計(jì)。
串行相比于并行的主要優(yōu)點(diǎn)是要求的線數(shù)較少。例如,用在汽車工業(yè)中的LIN串行總線只需要一根線來與從屬器件進(jìn)行通信,Dallas公司的1-Wire總線只使用一根線來輸送信號(hào)和電源。較少的線意味著所需要的控制器引腳較少。集成在一個(gè)微控制器中的并行總線一般需要8條或更多的線,線數(shù)的多少取決于設(shè)計(jì)中地址和數(shù)據(jù)的寬度,所以集成一個(gè)并行總線的芯片至少需要8個(gè)引腳來與外部器件接口,這增加了芯片的總體尺寸。相反地,使用串行總線可以將同樣的芯片集成在一個(gè)較小的封裝中。
另外,在PCB板設(shè)計(jì)中并行總線需要更多的線來與其它外設(shè)接口,使PCB板面積更大、更復(fù)雜,從而增加了硬件成本。此外,工程師還可以很容易地將一個(gè)新器件加到一個(gè)串行網(wǎng)絡(luò)中去,而且不會(huì)影響網(wǎng)絡(luò)中的其它器件。例如,可以很容易地去掉總線上舊器件并用新的來替代。
串行總線的故障自診斷和調(diào)試也非常簡單,可以很容易地跟蹤網(wǎng)絡(luò)中一個(gè)有故障的器件并用新器件替換而不會(huì)干擾網(wǎng)絡(luò)。但另一方面,并行總線比串行速度快。例如,Rambus公司的“Redwood”總線速度可高達(dá)6.4GHz,而最高的串行速度不會(huì)超過幾個(gè)兆赫。
在工業(yè)和汽車應(yīng)用中常用的串行協(xié)議
1. UART
UART是一種通用串行數(shù)據(jù)總線,用于異步通信。該總線雙向通信,可以實(shí)現(xiàn)全雙工傳輸和接收。在嵌入式設(shè)計(jì)中,UART用來與PC進(jìn)行通信,包括與監(jiān)控調(diào)試器和其它器件,如EEPROM通信。
a. UART通信
UART首先將接收到的并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)來傳輸。消息幀從一個(gè)低位起始位開始,后面是7個(gè)或8個(gè)數(shù)據(jù)位,一個(gè)可用的奇偶位和一個(gè)或幾個(gè)高位停止位。接收器發(fā)現(xiàn)開始位時(shí)它就知道數(shù)據(jù)準(zhǔn)備發(fā)送,并嘗試與發(fā)送器時(shí)鐘頻率同步。如果選擇了奇偶,UART就在數(shù)據(jù)位后面加上奇偶位。奇偶位可用來幫助錯(cuò)誤校驗(yàn)。
在接收過程中,UART從消息幀中去掉起始位和結(jié)束位,對(duì)進(jìn)來的字節(jié)進(jìn)行奇偶校驗(yàn),并將數(shù)據(jù)字節(jié)從串行轉(zhuǎn)換成并行。UART也產(chǎn)生額外的信號(hào)來指示發(fā)送和接收的狀態(tài)。例如,如果產(chǎn)生一個(gè)奇偶錯(cuò)誤,UART就置位奇偶標(biāo)志。
b. 數(shù)據(jù)方向和通信速度
數(shù)據(jù)傳輸可以首先從最低有效位(LSB)開始。然而,有些UART允許靈活選擇先發(fā)送最低有效位或最高有效位(MSB)。
微控制器中的UART傳送數(shù)據(jù)的速度范圍為每秒幾百位到1.5Mb。例如,嵌入在ElanSC520微控制器中的高速UART通信的速度可以高達(dá)1.1152Mbps。UART波特率還受發(fā)送和接收線對(duì)距離(線長度)的影響。
目前,市場(chǎng)上有只支持異步通信和同時(shí)支持異步與同步通信的兩種硬件可用于UART。前者就是UART名字本身的含義,在摩托羅拉微控制器中被稱為串行通信接口(SCI);Microchip微控制器中的通用同步異步收發(fā)器(USART)和在富士通微控制器中的UART是后者的兩個(gè)典型例子。
c. 計(jì)算機(jī)中的UART
UART是計(jì)算機(jī)中串行通信端口的關(guān)鍵部分。在計(jì)算機(jī)中,UART相連于產(chǎn)生兼容RS232規(guī)范信號(hào)的電路。RS232標(biāo)準(zhǔn)定義邏輯“1”信號(hào)相對(duì)于地為3到25伏,而邏輯“0”相對(duì)于地為-3到-25伏。所以,當(dāng)一個(gè)微控制器中的UART相連于PC時(shí),它需要一個(gè)RS232驅(qū)動(dòng)器來轉(zhuǎn)換電平。
2. 同步外設(shè)接口
同步外設(shè)接口(SPI)是由摩托羅拉公司開發(fā)的全雙工同步串行總線,該總線大量用在與EEPROM、ADC、FRAM和顯示驅(qū)動(dòng)器之類的慢速外設(shè)器件通信。
a. SPI通信
該總線通信基于主-從配置。它有以下4個(gè)信號(hào):
- MOSI:主出/從入
- MISO:主入/從出
- SCK:串行時(shí)鐘
- SS:從屬選擇
芯片上“從屬選擇”(slave-select)的引腳數(shù)決定了可連到總線上的器件數(shù)量。
在SPI傳輸中,數(shù)據(jù)是同步進(jìn)行發(fā)送和接收的。數(shù)據(jù)傳輸的時(shí)鐘基于來自主處理器的時(shí)鐘脈沖,摩托羅拉沒有定義任何通用SPI的時(shí)鐘規(guī)范。然而,最常用的時(shí)鐘設(shè)置基于時(shí)鐘極性(CPOL)和時(shí)鐘相位(CPHA)兩個(gè)參數(shù),CPOL定義SPI串行時(shí)鐘的活動(dòng)狀態(tài),而CPHA定義相對(duì)于SO-數(shù)據(jù)位的時(shí)鐘相位。CPOL和CPHA的設(shè)置決定了數(shù)據(jù)取樣的時(shí)鐘沿。
評(píng)論