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
    +关注

    关注

    146

    文章

    17141

    浏览量

    351101
  • 嵌入式
    +关注

    关注

    5082

    文章

    19117

    浏览量

    304984
  • uart
    +关注

    关注

    22

    文章

    1235

    浏览量

    101378
收藏 人收藏

    评论

    相关推荐

    ADS7953进行编程时,如何与器件通信

    我对 ADS7953(ADS795x 系列器件进行编程时遇到问题,如何与器件通信
    发表于 11-26 06:03

    通信技术:UART串口通信开源代码实操!

    今天我们分享的是关于UART串口通信示例,欢迎大家探讨
    的头像 发表于 11-05 11:56 3042次阅读
    <b class='flag-5'>通信</b>技术:<b class='flag-5'>UART</b>串口<b class='flag-5'>通信</b>开源代码实操!

    UART通信协议介绍和数据传输工作流程

    UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可实现全双工传输和接收。UART通常用来实现与PC之间数据通信,命令和控制信息
    的头像 发表于 10-24 14:20 627次阅读
    <b class='flag-5'>UART</b><b class='flag-5'>通信</b>协议介绍和数据传输工作流程

    如何使用SPI或UART连接两个ESP模块?

    /metalphreak/esp8266_spi_driver. 但是谁能建议我,我如何使用SPI与两个ESP模块进行通信。 我怎样才能将一个ESP设为主服务器,另一个ESP作为从服务器,这样我就可以通过SPI
    发表于 07-19 16:08

    主机MCU和ESP12-E之间是否可以使用硬件流控和AT命令通过UART进行通信

    主机MCU和ESP12-E之间是否可以使用硬件流控和AT命令通过UART进行通信? 如果是这样,您是否有一些用于GPIO RTS/CTS连接
    发表于 07-16 07:01

    通过UART0连接到esp8266与服务器进行通信,报UART Rx溢出和消息RX OVF错误怎么解决?

    我们通过调制解调器通过 UART0 连接到 esp8266 与服务器进行通信。当我们的服务器发送
    发表于 07-11 08:05

    使用PSOC UART与Nextion HMI进行通信,PSOC UART发送字符串不起作用的原因?

    我在 PSOC creator 3.3 下使用 PSOC(型号 CY8C5888LTI)、 我正在尝试使用 PSOC UART 与我的 Nextion HMI 进行通信。 我成功地
    发表于 05-30 07:19

    电脑无法与bldc电机进行uart通信怎么解决?

    现在我需要让 UART 将电机的参考转速和电压数据传输到我的终端,我已经尝试了很多方法,但数据无法传输,请你们帮助我实现 UART 通信
    发表于 05-28 07:35

    简单认识UART串行通信协议

    的数据通信,特别是在嵌入式系统、计算机外设以及微控制器等场景中。本文将对UART串行通信协议进行详细的介绍,包括其基本原理、工作方式、参数设置、错误检测与纠正以及应用实例等方面。
    的头像 发表于 05-27 16:09 2106次阅读

    使用tc377进行uart通信,数据未通过UART发送的原因?

    我使用 tc377 进行 uart 通信,我必须使用定时器(Gpt12)从 tx 发送数据而不中断 ,当我使用时,数据存储在 Tx 缓冲区,但没有传输到 Rx。 这是定时器函数 void
    发表于 05-27 07:15

    UART串口通信协议是什么?

    ,广泛应用于嵌入式领域。 在UART串口通信协议中,数据以字节的形式进行传输。发送和接收端的通信流程如下: 1、通信波特率设置:发送端和接收
    的头像 发表于 03-19 17:26 1376次阅读

    浅谈UART通信的异步通信机制

    波特率表示每秒钟传送的码元符号的个数,它是对符号传输速率的一种度量。在UART通信中,波特率用于描述通信速度,其单位是bps(每秒钟传输的bit的数量)。
    发表于 02-19 16:19 870次阅读
    浅谈<b class='flag-5'>UART</b><b class='flag-5'>通信</b>的异步<b class='flag-5'>通信</b>机制

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

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

    uart与usart区别 usart可以当uart用吗

    USART实际上包含了UART的功能,并增加了支持同步通信的能力。在大多数微控制器中,UART通常是USART功能的一部分,USART可以配置为UART模式
    发表于 01-17 15:46 1.9w次阅读
    <b class='flag-5'>uart</b>与usart区别 usart可以当<b class='flag-5'>uart</b>用吗

    常见通信的底层数据传输原理(UART、SPI、I2C)

    UART:Universal Asynchronous Receiver/Transmitter,通用异步收发传输器。 UART串口是最常见的一种串口通信,下面是串口连接上位机
    发表于 01-15 10:41 910次阅读
    常见<b class='flag-5'>通信</b>的底层数据传输原理(<b class='flag-5'>UART</b>、SPI、I2C)