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