0 引言
在嵌入式控制系統(tǒng)中,CPU外部常連接較多的數(shù)字外圍設備,需要對CPU進行串口擴展。XR16L78x是Exar公司生產(chǎn)的第五代通用異步串行芯片,用于對微控制器(MCU)或數(shù)字信號處理器(DSP)等中央處理器(CPU)進行串口擴展,相對于傳統(tǒng)的4通道串口擴展芯片ST16Cx54的Inter模式下進行多串口擴展的解決方案具有硬件、軟件及性能等方面的優(yōu)勢。本文以XR16L784,ST16C554為例,對基于XR16L784的多串口擴展解決方案的優(yōu)勢進行分析。
1 硬件接口的優(yōu)勢
ST16C554是傳統(tǒng)的4通道通用異步串行芯片,對外有4個通道選擇信號和4個中斷輸出信號,通常采用可編程邏輯以減少對CPU中斷功能的需求;XR16L784也是4通道通用異步串行芯片,對外只有1個片選信號和1個中斷輸出信號?;赟T16C554、XR16L784分別對CPU進行串口擴展的原理框圖如圖1和圖2所示。從圖1可以看出,基于ST16C554的串口擴展方案需經(jīng)過可編程邏輯芯片進行地址及中斷源譯碼,從而實現(xiàn)相應通道的選擇及申請的中斷。從圖2可以看出,CPU對XR16C784的控制及中斷響應只需一根直連的片選信號線和一根直連的中斷信號線。
可見,芯片XR16L784內(nèi)部完善的硬件邏輯、兼容3.3 V與5 V電平接口的能力使得采用XR16L784進行串口擴展的解決方案比采用ST16C554進行串口擴展的解決方案在硬件上省去了通道選通及中斷申請信號的可編程邏輯芯片,簡化了硬件接口,縮小了串口擴展電路占用的印制板空間。
2 處理軟件的優(yōu)勢
XR16C784具有全局的中斷源寄存器,該寄存器表明了所有通道的中斷狀態(tài),從而加快CPU對中斷源的判斷,提高了CPU的中斷服務處理速度。
CPU處理ST16C554接收和發(fā)送的典型中斷服務子程序如下:
從上述處理程序可以看出,ST16C554的巾斷服務子程序需要逐個讀取所有通道的中斷寄存器以確定引起中斷的原因;并且,每次中斷服務只能處理整個芯片的一個中斷,從而導致中斷服務效率較低。這些內(nèi)在的缺陷在XR16C784的中斷服務中并不存在,因為XR16C784具有全局的中斷寄存器,每次中斷可以處理多個中斷源引起的中斷。
CPU處理ST16C784接收和發(fā)送的典型中斷服務子程序如下:
從上述中斷處理程序可以看出,ST16C784中全局的中斷寄存器提供了更快的中斷源判斷;每次中斷可以按照指定給每個通道的中斷優(yōu)先級處理多個通道的中斷;因為讀取中斷寄存器的次數(shù)的減少,所以中斷服務的處理時間更短,且處理時間是確定的。
3 結語
綜上所述,XR16L78x相對于ST16Cx54具有在硬件、軟件及性能等方面的優(yōu)勢:更高的集成度,簡化了硬件接口,減小了印制板空間;全局的中斷寄存器提供了更快的中斷服務,降低了對CPU的帶寬需求。