基于XR16L78x的多串口扩展方案优势分析
0 引言
在嵌入式控制系统中,CPU外部常连接较多的数字外围设备,需要对CPU进行串口扩展。XR16L78x用于对微控制器(MCU)或数字信号处理器(DSP)等中央处理器(CPU)进行串口扩展,相对于传统的4通道串口扩展芯片ST16Cx54的Inter模式下进行多串口扩展的解决方案具有硬件、软件及性能等方面的优势。本文以XR16L784,ST16C554为例,对基于XR16L784的多串口扩展解决方案的优势进行分析。
1 硬件接口的优势
ST16C554是传统的4通道通用异步串行芯片,对外有4个通道选择信号和4个中断输出信号,通常采用可编程逻辑以减少对CPU中断功能的需求;XR16L784也是4通道通用异步串行芯片,对外只有1个片选信号和1个中断输出信号。基于ST16C554、XR16L784分别对CPU进行串口扩展的原理框图如图1和图2所示。从图1可以看出,基于ST16C554的串口扩展方案需经过可编程逻辑芯片进行地址及中断源译码,从而实现相应通道的选择及申请的中断。从图2可以看出,CPU对XR16C784的控制及中断响应只需一根直连的片选信号线和一根直连的中断信号线。
可见,芯片XR16L784内部完善的硬件逻辑、兼容3.3 V与5 V电平接口的能力使得采用XR16L784进行串口扩展的解决方案比采用ST16C554进行串口扩展的解决方案在硬件上省去了通道选通及中断申请信号的可编程逻辑芯片,简化了硬件接口,缩小了串口扩展电路占用的印制板空间。
2 处理软件的优势
XR16C784具有全局的中断源寄存器,该寄存器表明了所有通道的中断状态,从而加快CPU对中断源的判断,提高了CPU的中断服务处理速度。
CPU处理ST16C554接收和发送的典型中断服务子程序如下:
从上述处理程序可以看出,ST16C554的巾断服务子程序需要逐个读取所有通道的中断寄存器以确定引起中断的原因;并且,每次中断服务只能处理整个芯片的一个中断,从而导致中断服务效率较低。这些内在的缺陷在XR16C784的中断服务中并不存在,因为XR16C784具有全局的中断寄存器,每次中断可以处理多个中断源引起的中断。
CPU处理ST16C784接收和发送的典型中断服务子程序如下:
从上述中断处理程序可以看出,ST16C784中全局的中断寄存器提供了更快的中断源判断;每次中断可以按照指定给每个通道的中断优先级处理多个通道的中断;因为读取中断寄存器的次数的减少,所以中断服务的处理时间更短,且处理时间是确定的。
3 结语
综上所述,XR16L78x相对于ST16Cx54具有在硬件、软件及性能等方面的优势:更高的集成度,简化了硬件接口,减小了印制板空间;全局的中断寄存器提供了更快的中断服务,降低了对CPU的带宽需求。
|