通过利用UART与若干器件进行连接解决通信问题

电子说

1.3w人已加入

描述

在各种外围的设备中,使用了通用的异步接收和发送(UART)接口。例如,一个基于微控制的系统有四个这样的外围设备。理想状态是,在低成本嵌入式应用中,您希望将若干个外围设备与单个的UART进行连接,然而由于UARTs中没有芯片选择信号,这样的工作变得复杂起来 。

这是一种常见的设计问题,目前有一些传统的方法来解决。最常见的方法是使用一种具有您需要的硬件UART模块的单片机。您很难找到一个紧凑形式的经济型MCU有四个硬件UART模块,因此,即使所有的UARTs不能同时使用,您也可以使用一个高引脚计数的更高性能的单片机。但是在实际应用中使用一个大单片机可能没有必要,而且可能也不能更有效地解决成本问题。

如果在应用中所有的UARTs都不能同时使用,从一个硬件UART模块到四个UART嵌入式外围设备的计时多路传输可以通过一个硬件多路器和几个单片机I/O线(图1)来完成 。在这种情况下,控制程序将通过控制多路器来将UART硬件对应所需的外围设备。

嵌入式

基于某些MCU提供的灵活的I/O引脚映射特性,还有另一改进的方法来解决这个问题。不同于传统的固定的I/O插脚引线,这些MCUs的特性是有一组输入/输出引脚,不同的引脚可以对应不同的外围设备的功能。这一特性在微芯片MCUs上可用于外围引脚选择器(PPS),让您根据您的每一个选择来确定不同MCU的插脚引线。在这些MCUs中,执行某个序列码来解锁配置寄存器后,控制程序就动态地改变I/O插脚引线。

为了在这些设备类型上得到4个或更多的UARTs,您要从将4个基于UART的外围设备与MCU的重定位引脚相连开始。在这个例子中,我们使用了PIC24FJ64GA004 16位MCU(图2 )。

嵌入式

基于应用的需要,控制程序会动态地将硬件UART与这些4引脚装置相连。例如,当应用程序必须与器件1通讯时,上述程序会将硬件UART与RP1和RP2引脚相连。同样,当MCU要与器件2通讯时也是同一过程。

如果所有的UART通道都在一个主/从配置-外围设备中运行,上述方法可以很好地工作。其中外围设备只要发送MCU作为主配置所需的数据。所以,假如将主从设备两者相结合系统需要些什么?由于它的多功能性,在这种情况下灵活的I/O引脚-映射方式仍然可行。举例来说,该系统可能需要与外围设备异步通讯。在这一方案中,您可以利用许多这些MCU也有两个硬件UART模块这一情况。简单地指定一个硬件UART模块作为异步通讯通道和时间多路的其他UART模块来形成若干个硬件UART模块。

在另一种方案中,您的应用可能需要带有若干从通道的多异步通道。如果有用的话,利用带有数据终端准备(DTR)/明确发送(CTS)信号的MCU的异步通道的通讯能力。您可以使用DTR/CTS信号在保持异步通道的同时使得UART与最初的引脚对应。

当外围设备没有通讯信号时,可使用另一工作区。使用边缘干扰或用灵活的I/O引脚映射功能将一个输入捕获信号导入空闲的UART接收引脚。如果一个装置从一个异步数据传输器开始,控制程序会发出一个干扰,并立即将硬件UART模块转到合适的引脚来接收这个数据。

如果您的应用需要所有的四UART通道变成异步通道,那么上述的解决方案可能无法正常工作,您可能仍需要一个有四硬件UARTs的MCU。但对于大多数系统,情况可能并不如此。因此,这里提到的解决方案将让您使用一个单一的UART与若干器件进行通讯。

责任编辑:gt

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分