通過(guò)先進(jìn)的高性能UART提高串行I/O的連接性能
市場(chǎng)融合正在推動(dòng)對(duì)開(kāi)發(fā)新接口的需求,但這也在影響已有接口類(lèi)型的性能和特性。在目前已有的接口類(lèi)型中,最常見(jiàn)的是廣泛用作標(biāo)準(zhǔn)串行連接的通用異步收發(fā)器(UART)。UART可以用做主處理器(如微控制器或嵌入式處理器)和外設(shè)之間的通訊接口。在從工業(yè)控制到智能手機(jī)的大量應(yīng)用中,這些獨(dú)立的解決方案變得越來(lái)越有吸引力。
本文引用地址:http://www.ex-cimer.com/article/187467.htmUART是在特定模塊(如藍(lán)牙、GPS、RFID、多端口以太網(wǎng)服務(wù)器)和主處理器或芯片組之間進(jìn)行通訊的首選接口。因?yàn)闊o(wú)論從應(yīng)用端還是從軟件驅(qū)動(dòng)端來(lái)看,UART都是一個(gè)軟件開(kāi)銷(xiāo)最小和復(fù)雜性最低的高效接口。盡管UART的發(fā)展趨勢(shì)是更多地集成在處理器或者芯片組中,但這里也存在一個(gè)折衷,那些關(guān)鍵芯片需要平衡芯片的面積/成本和性能以及外設(shè)選擇之間的關(guān)系,這意味著處理器和芯片缺乏端口的情況將繼續(xù)存在。因此,一些特定系統(tǒng)將受益于不同外形尺寸的獨(dú)立UART。
包括工藝、芯片組、連接技術(shù)和外圍設(shè)備在內(nèi)的數(shù)個(gè)市場(chǎng)的發(fā)展推動(dòng)了對(duì)新一代高性能UART的需求。連接技術(shù)和外圍設(shè)備的發(fā)展趨勢(shì)決定了市場(chǎng)對(duì)具有靈活主機(jī)接口的高速UART的需求,這些UART工作在低電壓下,功耗很低,可以提供較高的數(shù)據(jù)速率以滿(mǎn)足藍(lán)牙EDR等新連接標(biāo)準(zhǔn)的要求。
新一代系統(tǒng)采用高端處理器,可以在較短時(shí)間里處理大量的任務(wù)。這些處理器的工作電壓分別是3.3V、2.5V或1.8V。因此,甚至如UART這樣的基本接口都必須精心設(shè)計(jì),以進(jìn)一步降低CPU開(kāi)銷(xiāo)。為構(gòu)造高性能的UART,必須考慮以下特性指標(biāo):主機(jī)接口的性能、UART的FIFO的深度、波特率、電源電壓和功耗。低分辨率時(shí)鐘預(yù)定標(biāo)器、自動(dòng)支持RS485和先進(jìn)的封裝技術(shù)等其它性能也能給某些特定設(shè)計(jì)帶來(lái)顯著好處。
主機(jī)接口和處理時(shí)間
UART可以通過(guò)并行或串行總線與主機(jī)連接。通常許多獨(dú)立的UART提供兩種類(lèi)型的8位異步存儲(chǔ)接口,兼容大多數(shù)的摩托羅拉(Motorola)和英特爾(Intel)總線接口。有些UART同時(shí)具有兩個(gè)接口,如恩智浦半導(dǎo)體(NXP Semiconductors)的SC28Lxx和1.8V SC16C85x UART系列。通過(guò)配制引腳,這個(gè)獨(dú)立的UART可以被設(shè)置成支持Motorola或者Intel的總線接口。在許多手持設(shè)備中,一種被稱(chēng)為VLIO (可變延遲I/O)的新型接口也得到了采用,此外新一代1.8V UART將被設(shè)計(jì)成可以與總線無(wú)縫連接(圖1)。
圖1:具有VLIO(可變延遲I/O)接口的1.8V UART的移動(dòng)應(yīng)用示例。
并行總線接口的優(yōu)點(diǎn)是具有很高的吞吐量,而速度可高達(dá)100 Mbps,但缺點(diǎn)是需要大約15根線與處理器連接。為克服這個(gè)缺點(diǎn),或者說(shuō)是消除對(duì)并行總線的依賴(lài)性,可以選擇如SPI或I2C的標(biāo)準(zhǔn)串行總線與主機(jī)相連。當(dāng)今流行的解決方案是NXP SC16IS7xx系列,這些產(chǎn)品通過(guò)I2C或SPI端口實(shí)現(xiàn)與主機(jī)的無(wú)縫連接,并將與主機(jī)連接的15根線減少到5根(I2C)和7根(SPI),如圖2所示。這個(gè)串行UART還有其它一些優(yōu)點(diǎn),例如它能為設(shè)計(jì)工程師提供現(xiàn)成的I2C或SPI到RS232/RS485/IrDa的協(xié)議轉(zhuǎn)換器,但缺點(diǎn)是串行總線的速度被限制在400 Kbps(I2C)和15 Mbps (SPI)內(nèi)。
圖2:帶有串行接口(I2C/SPI)的NXP SC16IS752高速UART的應(yīng)用示例。
一旦選定了主機(jī)接口,最佳的主機(jī)處理時(shí)間取決于以下幾個(gè)要素:UART的 FIFO深度和FIFO計(jì)數(shù)器、中斷觸發(fā)等級(jí)的數(shù)量、硬件和軟件流程控制。
FIFO深度和FIFO計(jì)數(shù)器
UART的 FIFO深度直接影響通過(guò)UART傳輸數(shù)據(jù)所需的CPU開(kāi)銷(xiāo)。FIFO的深度越深,在每個(gè)中斷就可以有更多數(shù)據(jù)傳輸,從而減少CPU的中斷。一個(gè)標(biāo)準(zhǔn)的FIFO深度范圍從16 到 6? 字節(jié)。但越來(lái)越多的設(shè)計(jì)要求具有更深FIFO的UART,而可提供具有高達(dá)128字節(jié)FIFO深度的獨(dú)立方案的廠商也越來(lái)越多。如今市場(chǎng)上具有最深FIFO的UART是NXP公司的SC28L202 和SC28L201,它們的FIFO深度高達(dá)256字節(jié)。
下面例子說(shuō)明了更深FIFO的優(yōu)點(diǎn)。假設(shè)UART的傳輸速率設(shè)置為115.2Kbps,并且字符格式為1個(gè)開(kāi)始位、8個(gè)數(shù)據(jù)位和一個(gè)停止位,即有10位字符和115.2 Kbps波特率,那么UART接收一個(gè)完整的字符需要86.8 ?s時(shí)間。如果UART接收器的FIFO是16字節(jié),那么它需要大約1.39ms(16×86.8 ?s)去填滿(mǎn)一個(gè)接收器FIFO。這時(shí),UART將對(duì)主機(jī)產(chǎn)生一個(gè)接收數(shù)據(jù)就緒中斷,并且主機(jī)必須立刻去讀取這個(gè)接收器FIFO中的數(shù)據(jù),否則如果這個(gè)UART收到另外的字符,這個(gè)接收器FIFO中的數(shù)據(jù)將會(huì)溢出。有了上面的設(shè)置,在整個(gè)接收過(guò)程中,主機(jī)將每隔1.39 ms就獲得一個(gè)來(lái)自UART的中斷。但如果這個(gè)UART的接收器FIFO的容量是128字節(jié),那么UART中斷的間隔時(shí)間將為原先的8倍(128/16=8),達(dá)到11.12 ms,主機(jī)處理UART任務(wù)的頻率也將從每1.39 ms一次降到每11.12 ms一次。主機(jī)處理器可以用節(jié)省下來(lái)的時(shí)間去處理其它任務(wù)。
在今天的許多應(yīng)用中,系統(tǒng)需要去讀取UART上的線狀態(tài)寄存器(LSR),以首先確認(rèn)在接收FIFO上是否有數(shù)據(jù)。這要求CPU每次從接收FIFO讀取一個(gè)字符都要輪詢(xún)LSR,這將顯著增加CPU的處理時(shí)間。只有少數(shù)的獨(dú)立的UART,比如NXP SC28L202 和 SC16C85x,擁有FIFO計(jì)數(shù)器,允許CPU在得到這些數(shù)據(jù)之前就找出在FIFO上的字符數(shù)量。這種方法使CPU不必每次都去讀取LSR,而是直接從接收FIFO讀取數(shù)據(jù),從而進(jìn)一步優(yōu)化系統(tǒng)。
可編程的中斷觸發(fā)等級(jí)
在一些應(yīng)用中,主機(jī)需要在固定時(shí)間內(nèi)接收和響應(yīng)固定長(zhǎng)度的數(shù)據(jù)包。通過(guò)使用UART的中斷觸發(fā)等級(jí),設(shè)計(jì)工程師可以對(duì)UART編程,使其在收到特定數(shù)量的字符以后,或者輸出特定數(shù)量的字符之后,發(fā)出一個(gè)中斷信號(hào)。目前的集成UART方案有許多預(yù)定義的觸發(fā)等級(jí),比如1、4、8或者16。這種模式的缺點(diǎn)是,在接收到一個(gè)不是1、4、8 或者16字節(jié)的數(shù)據(jù)包以后,設(shè)計(jì)工程師難以對(duì)UART編程以產(chǎn)生中斷信號(hào)。NXP公司 SC16C850L/852L UART能夠提供127個(gè)中斷觸發(fā)等級(jí),可以靈活地對(duì)UART編程,設(shè)計(jì)工程師可以在1到 127之間任意設(shè)置中斷觸發(fā)等級(jí)。
硬件和軟件流程控制提供兩個(gè)通訊UART之間的自動(dòng)握手機(jī)制,將CPU從防止數(shù)據(jù)在UART FIFO中溢出的任務(wù)中解放出來(lái)。許多集成的UART并不具備這個(gè)功能,在處理器帶寬有限、沒(méi)有時(shí)間實(shí)現(xiàn)硬件或者軟件流程控制的場(chǎng)合,該功能非常關(guān)鍵。越來(lái)越多的獨(dú)立UART具備這個(gè)功能,這讓設(shè)計(jì)工程師可以進(jìn)一步降低CPU的工作量。
如今對(duì)高速UART的需求越來(lái)越大。目前的連接解決方案,如藍(lán)牙,要求UART在低電壓下可以提供高達(dá)3Mbps的速度。有了新一代的獨(dú)立UART,系統(tǒng)可以快速處理和高速傳輸數(shù)據(jù),同時(shí)在所有的UART信道里保持?jǐn)?shù)據(jù)完整性。目前,大量的獨(dú)立UART可以在3.3V電壓下提供高達(dá)5 Mbps的數(shù)據(jù)速率,而新一代UART,比如NXP SC16C85x 系列,可以在1.8V的電壓下提供類(lèi)似的波特率(圖3)。這些類(lèi)型的UART在關(guān)鍵芯片組的性能和面市時(shí)間方面提供了重要的附加價(jià)值,同時(shí)克服了目前被廣泛用在集成解決方案中的1 Mbps UART的局限性。除了速度高之外,許多獨(dú)立UART還提供對(duì)接收機(jī)和發(fā)射機(jī)的運(yùn)行速度進(jìn)行獨(dú)立編程的能力,這使獨(dú)立UART在高速集群系統(tǒng)和橋接等應(yīng)用中特別有吸引力。
UART的電源電壓、功率和封裝
隨著處理器和芯片組向低電源電壓方向發(fā)展,UART也需要支持這些新電壓,因此新一代UART已被開(kāi)發(fā)為可工作在3.3V、2.5V和1.8V電壓下。為進(jìn)一步降低功耗,新型的獨(dú)立UART提供低功耗模式功能,允許在空閑狀態(tài)下將功耗減少到微安級(jí)。
除了低功耗要求外,越來(lái)越多采用獨(dú)立UART的系統(tǒng)還希望UART具有盡可能小的外形尺寸。今天市場(chǎng)上最小的獨(dú)立UART由NXP公司推出,這些產(chǎn)品采用TFBGA封裝,面積為3.5×3.5 mm。
低分辨率時(shí)鐘預(yù)比例器和RS485功能
UART需要時(shí)鐘源來(lái)產(chǎn)生波特率。這個(gè)時(shí)鐘源可以由一個(gè)需要外接晶振的片上振蕩器產(chǎn)生,或者由一個(gè)外部振蕩器產(chǎn)生。為保證在使用固定頻率時(shí)鐘源時(shí)波特率可以被編程,大部分獨(dú)立UART使用一個(gè)整數(shù)除法器,允許UART用整數(shù)N(比如1、2、3…)除以時(shí)鐘源。整數(shù)除法器的局限是低整數(shù)值的波特率范圍較窄。一些較先進(jìn)的高速UART(如NXP SC16C850L)采用有理數(shù)除法器,允許UART用分?jǐn)?shù)除以時(shí)鐘源,從而提供更寬的波特率范圍。波特率根據(jù)BR=F/(N + m/16)來(lái)計(jì)算,式中的N為從1到65k范圍內(nèi)的整數(shù),m為從1到16范圍內(nèi)的整數(shù)。使用有理數(shù)的好處是能擴(kuò)大可編程的波特率范圍,使獲得更高性能和提高傳輸精度成為可能。
當(dāng)兩個(gè)計(jì)算機(jī)系統(tǒng)以非常高的數(shù)據(jù)速率進(jìn)行長(zhǎng)距離通訊時(shí),單端方法是不行的,因此RS485和它的微分信號(hào)被用來(lái)減少網(wǎng)絡(luò)中的噪音。RS485適用于多點(diǎn)通信系統(tǒng),但針對(duì)大多數(shù)集成UART,設(shè)計(jì)工程師需要編寫(xiě)復(fù)雜的軟件去支持RS485功能。
許多新一代的獨(dú)立UART被設(shè)計(jì)支持RS485,以減少運(yùn)行在處理器上的軟件的復(fù)雜性。這些UART有一個(gè)內(nèi)置的功能,無(wú)需處理器介入就能自動(dòng)偵測(cè)到RS485的地址。這個(gè)功能顯著減少了CPU的處理時(shí)間,因?yàn)樗薝ART對(duì)CPU的不斷中斷請(qǐng)求。因?yàn)楠?dú)立UART支持自動(dòng)的RS485地址偵測(cè),所以主機(jī)處理器可以使UART自動(dòng)偵測(cè)到自己的地址,并一旦完成偵測(cè)后就通知處理器。另外,RS485線驅(qū)動(dòng)器方向也可以通過(guò)RTS(請(qǐng)求到發(fā)送)引腳自動(dòng)控制,這是一個(gè)可以自動(dòng)偵測(cè)高達(dá)32個(gè)(2線總線)和6?個(gè)(4線總線)從設(shè)備地址的9位模式(也稱(chēng)多點(diǎn)模式)。
本文小結(jié)
處理器和芯片組的最近發(fā)展推動(dòng)了與它們接口的外設(shè)的性能升級(jí)。最流行和最普遍的外設(shè)是UART。如今的發(fā)展趨勢(shì)展示,獨(dú)立UART已經(jīng)發(fā)展成為高性能解決方案的一部分,將它們用在系統(tǒng)可以顯著降低CPU和相關(guān)芯片組的負(fù)荷。最新的獨(dú)立UART為設(shè)計(jì)工程師提供了高速、低功耗接口,以有效地支持了藍(lán)牙EDR等連接方案。新一代UART所具有的更多特性給設(shè)計(jì)者提供了增值的解決方案,這些方案在縮短面市時(shí)間的同時(shí),還進(jìn)一步優(yōu)化了系統(tǒng)性能并提高了系統(tǒng)的靈活性。
評(píng)論