0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

牵手一起梦 来源:网络整理 作者:佚名 2020-01-20 17:17 次阅读

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

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

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

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

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

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

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

基于应用的需要,控制程序会动态地将硬件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

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

    关注

    145

    文章

    15900

    浏览量

    342797
  • 嵌入式
    +关注

    关注

    4963

    文章

    18161

    浏览量

    286548
  • uart
    +关注

    关注

    21

    文章

    1150

    浏览量

    99757
收藏 人收藏

    评论

    相关推荐

    CAPSENSE Tuner无法通过UART和外部UART-USB桥接器进行连接怎么解决?

    UART接口(通过hterm测试)。 现在,我想使用 CAPSENSE Tuner 工具来调整我的测量参数。 我已经设置了与调谐器工具进行 UART
    发表于 01-31 08:24

    uart通信的详细讲解

    UART(UniversalAsynchronousReceiver/Transmitter,通用异步收发器)是一种常用的串行通信协议,广泛应用于单片机或各种嵌入式设备之间的通信。本文将详细介绍
    的头像 发表于 09-22 08:22 1347次阅读
    <b class='flag-5'>uart</b><b class='flag-5'>通信</b>的详细讲解

    利用GPIO和Timer模拟UART半双倍通信传输

    应用:利用GPIO和Timer模拟UART半双倍通信传输。 BSP 版本: M051系列 BSP CMSIS v3.01.001 硬件: NuMaker-EVB-M051 v3.0 在这个例子中
    发表于 08-29 08:15

    如何使用AT命令通过USCI_ UART接口与AS7221模块进行通信

    应用程序: 此示例代码使用 AT 命令通过 USCI_ UART 接口与 AS7221 模块进行通信 。 BSP 版本: M031 BSP CMSIS V3.03.000 硬件
    发表于 08-29 07:10

    如何使用纳诺130与蓝牙模块VICTOR-BT4030通过UART1进行通信

    应用:样本代码显示如何使用纳诺130与蓝牙模块VICTOR-BT4030通过UART1进行通信。 BSP 版本: Nano100B系列 BSP CMSIS v3.03.000 硬件
    发表于 08-23 06:17

    如何利用GPIO和Timer模拟UART半双倍通信传输

    应用:利用GPIO和Timer模拟UART半双倍通信传输。 BSP 版本: M051系列 BSP CMSIS v3.01.001 硬件: NuMaker-EVB-M051 v3.0 在这个例子中
    发表于 08-22 07:20

    UART串口通信的应用方法

    数据传输速率较慢,但其占用资源少、成本低、实现简单,因此在嵌入式系统中应用十分广泛,而UART(通用异步收发器)则是众多串行通信协议中最典型的一种。本期内容将通过PC主机与RV-STAR开发板间的三个
    发表于 08-16 08:24

    uart通信的详细讲解 通过分析波形透彻理解UART通信

    UART是一种异步全双工串行通信协议,由 Tx 和 Rx 两根数据线组成,因为没有参考时钟信号,所以通信的双方必须约定串口波特率、数据位宽、奇偶校验位、停止位等配置参数,从而按照相同的速率进行
    发表于 08-07 09:51 3415次阅读
    <b class='flag-5'>uart</b><b class='flag-5'>通信</b>的详细讲解 <b class='flag-5'>通过</b>分析波形透彻理解<b class='flag-5'>UART</b><b class='flag-5'>通信</b>

    基于STM32的模拟UART串口通信工作原理

    UART即通用异步收发器,是一种串行通信方式。数据在传输过程中是通过一位一位地进行传输来实现通信的,串行
    发表于 08-03 10:07 343次阅读
    基于STM32的模拟<b class='flag-5'>UART</b>串口<b class='flag-5'>通信</b>工作原理

    移动通信通过什么进行传输 移动通信与固定通信的区别

    移动通信通过无线电波进行传输。具体而言,移动通信利用无线电频段在移动设备(如手机)和基站之间进行
    发表于 06-27 18:24 2441次阅读

    基于STM32模拟UART串口通信

    UART即通用异步收发器,是一种串行通信方式。数据在传输过程中是通过一位一位地进行传输来实现通信的,串行
    的头像 发表于 06-25 17:13 1188次阅读
    基于STM32模拟<b class='flag-5'>UART</b>串口<b class='flag-5'>通信</b>

    如何保护物联网设备中的UART通信

    许多协议在标准内实现安全性,并且是任何控制器的内置部分。但是,通过通用异步收发器 (UART连接的嵌入式设备不受保护。UART 是设备之间简单的数字
    发表于 06-24 17:36 460次阅读
    如何保护物联网设备中的<b class='flag-5'>UART</b><b class='flag-5'>通信</b>

    实现一个在ARM中通过APB总线连接UART模块

    实现一个在ARM中通过APB总线连接UART模块(Universal Asynchronous Receiver/Transmitter),包括设计与验证两部分。
    发表于 06-05 11:48 970次阅读
    实现一个在ARM中<b class='flag-5'>通过</b>APB总线<b class='flag-5'>连接</b>的<b class='flag-5'>UART</b>模块

    如何使用连接到CH340的UART

    我正在为一个项目苦苦挣扎,想寻求一些帮助。 我有一个带有 USB 接口的空气质量测量设备。它使用ch340芯片进行通信。我想使用 NodeMDU ESP8266 连接到此设备。ch340 芯片
    发表于 05-15 07:26

    mpc5644a通过CAN_B进行通信所需的引脚连接是什么?

    我正在使用 mpc5644a。我想通过CAN_B进行通信。EVB 文档提供了有关 CAN A 和 CAN C 所需的引脚连接的信息,但遗憾的是没有有关 FlexCAN B 的信息。
    发表于 04-11 06:14