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