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

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

3天内不再提示

基于单片机的双向透明的串口扩展设计方案

电子设计 来源:郭婷 作者:电子设计 2019-06-03 08:18 次阅读

嵌入式参数监护仪系统中一般包括多个独立的硬件采集模块,每个硬件采集模块分别完成对人体的心电、呼吸率、体温、血压和血氧饱和度等生理参数的采集,并通过其串口接收HOST端的控制信息,定时向HOST端发送采集数据。

本嵌入式多参数监护仪HOST端使用AT91RM9200处理器,该处理器具有4个通用同步/异步接收/发送器(USART),其中一个是DEBUG串口,但它们都是分时复用的。为了使HOST端更好地与各采集模块进行通信,必须解决其串口扩展的问题。

目前比较通用的串口扩展方案主要有2种。一种通过硬件实现,使用多串口ARM/MCU或专用串口扩展芯片,可供选择的串口扩展芯片有TI公司开发的 16C55X系列串口扩展芯片和国腾公司开发的GM812X系列串口扩展芯片等。TI公司的16C55X系列芯片通过并行口扩展串行口,功能比较强大、通信速度高,但控制复杂,同时价格较高,主要应用于PC机串口扩展。另一种串口扩展方案通过软件实现,但用软件模拟串口存在缺点:(1)采样次数低,一般只能做到2次/bit,这样,数据的正确性就难以保证;(2)不能实现高波特率通信,软件模拟串口一般不能实现高于4 800 b/s的波特率。

不管是采用硬件还是软件方案,大多数串口扩展产品几乎都是单向传输,不够透明化。本文根据参与的多参数监护仪项目的需要,提出一种双向透明的串口扩展设计方案,并通过了实验验证。

1硬件设计

1.1串口扩展模块拓扑图

在设计中,串口扩展模块可以外接4个用户设备,每个用户设备都可以在与HOST端进行双向数据传输,采用分时复用技术,即在任一时刻,最多仅有一个串口与HOST端连接,串口扩展模块负责4个通道的切换/选择。双方通过硬件和软件机制进行仲裁。如图1所示。

基于单片机的双向透明的串口扩展设计方案

1.2硬件设计方案

串口扩展模块主要由2部分组成:单片机AT89C2051及模拟开关CD4052、双4通道模拟开关。

串口扩展模块拓扑结构图如图2所示,其中虚线框内为串口扩展模块的主要部分。

基于单片机的双向透明的串口扩展设计方案

2 通信协议设计

2.1数据由用户设备发送到HOST端

由于各模块是分时复用的,为了避免用户设备之间发生竞争,需要AT89C2051对4个用户设备通道进行仲裁,本文采用以下方案。

4个用户设备各用一根I/O口线分别与AT89C2051的P1.0~P1.3引脚相连,同时还与一个4输入或非门相连,将某根或某几根I/O口线置高电平并经过该4输入或非门来触发中断,通知AT89C2051有用户设备请求向HOST终端发送数据,同时AT89C2051进行用户设备号查询。AT89C2051收到请求信号后,首先判断 HOST端与其他用户设备之间的数据发送是否结束,若结束,则根据仲裁机制通过与各用户设备相连的P1.4~P1.7引脚置高给出应答响应信号,同时 AT89C2051根据中断查询到的用户设备号对P3.4和P3.5引脚进行设置来控制CD4052模拟开关选通对应通道,用户设备收到应答响应信号后就开始发送数据;若未结束,则屏蔽此次中断,直到数据发送结束才开中断。用户设备数据发送结束时则将通过一个4输入或非门来触发中断,通知AT89C2051此次数据发送结束。在响应数据发送请求时会涉及到多个用户设备请求,从而需要AT89C2051进行仲裁。仲裁机制如下:心电和血氧模块是50 ms定时发送数据,而血压模块需要HOST端发来启动测量命令后才向HOST端发送血压数据,因此需要将血压模块发送数据的请求设置为较高优先级,才能保证血压数据正确及时地发送到HOST端,而心电和血氧模块设置为低优先级轮流发送。

2.2数据由HOST端发送到用户设备

为了使HOST端的数据能够及时准确地发送到各个用户设备,就需要和AT89C2051之间定义好通信协议。其协议如下。

AT89C2051始终监视HOST终端发出的信息,一旦收到HOST终端发出的串口选择命令,如表1所示,立即对P3.4和P3.5引脚进行设置来控制 CD4052模拟开关选通对应通道并控制相应的LED灯以作指示。串口选择后, HOST终端需要根据AT89C2051指令执行和模拟开关切换时间延迟一定时间后再开始向对应用户设备发送数据/命令。HOST端数据发送结束则由接收端的用户设备向AT89C2051发送中断结束信号,其结束处理与数据由用户设备发送到HOST端的结束处理相同。如果同时有用户设备向 AT89C2051请求发送数据到HOST端,则优先响应HOST端的发送数据/命令请求,即HOST端的发送数据/命令请求的优先级最高。

基于单片机的双向透明的串口扩展设计方案

本文在设计中将HOST端的TXD引脚连接到AT89C2051的RXD引脚,这样就可以通过AT89C2051的串口接收中断和HOST端通信, HOST端发送数据/命令时首先发送串口选择命令字,其次再发送数据/命令去控制用户设备的数据采集,例如增益大小、是否启动血压测量等命令。

3软件设计

软件设计分为主函数、串口中断服务程序、外部中断0和1服务程序4个部分,如图3所示。

基于单片机的双向透明的串口扩展设计方案

在很多场合需要进行串口扩展以满足系统集成多个串口设备,扩展方法很多,各有优缺点。本文提出的用单片机AT89C2051为AT91RM9200扩展串口的方案是基于单片机价格低廉、体积小,完全可以替代一般的专用接口芯片,作为真正意义上的可编程接口,实现双向通信,使串口扩展模块变得透明。这种方案使用灵活,与一般接口芯片相比对外部用户设备具有更好的适用性,经实验验证达到了设计目标。将单片机等同于普通接口芯片使用,是一种新思路,具有一定的启迪作用和实际参考价值。

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

    关注

    68

    文章

    19348

    浏览量

    230249
  • 单片机
    +关注

    关注

    6039

    文章

    44579

    浏览量

    636438
  • 嵌入式
    +关注

    关注

    5087

    文章

    19145

    浏览量

    306120
收藏 人收藏

    评论

    相关推荐

    基于STM32单片机的蓝牙智能小车设计方案是什么

    STM32库函数开发系列文章目录第一篇:STM32F103ZET6单片机串口互发程序设计与实现第二篇:最简单DIY基于STM32单片机的蓝牙智能小车设计方案文章目录STM32库函数开
    发表于 11-25 08:53

    基于单片机串口扩展

    本文介绍串口扩展器系统设计和应用,采用ATMEL89C2051 单片机作MCU,选用双四通道多路转换器4052。软件设计分为:初始化、串行中断服务程序、串行口选择三个模块。串口
    发表于 08-18 08:45 50次下载

    双向透明串口扩展技术在嵌入式系统中的实现

    在分析串口扩展原理及现有串口扩展方法的基础上,提出了一种用单片机作为扩展模块主控部分,将嵌入式多
    发表于 07-28 14:19 25次下载

    双向透明串口扩展技术在嵌入式系统中的设计

    双向透明串口扩展技术在嵌入式系统中的设计  
    发表于 03-25 08:59 884次阅读
    <b class='flag-5'>双向</b><b class='flag-5'>透明</b><b class='flag-5'>串口</b><b class='flag-5'>扩展</b>技术在嵌入式系统中的设计

    单片机的多串口扩展技术的设计

    针对大多数单片机都只有一个串口的局限, 在多数情况下限制它们的应用。利用单片机串口扩展技术, 以MCS51 系列
    发表于 10-28 17:04 246次下载
    <b class='flag-5'>单片机</b>的多<b class='flag-5'>串口</b><b class='flag-5'>扩展</b>技术的设计

    单片机双向串口通信工程文件

    本文件为单片机双向串口通信工程文件,包括仿真电路与源程序代码
    发表于 11-21 15:45 3次下载

    单片机的多串口扩展技术的设计

    单片机的多串口扩展技术的设计,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-02 19:49 15次下载

    基于单片机的超声测距报警系统设计方案

    基于单片机的超声测距报警系统设计方案
    发表于 01-12 22:10 30次下载

    基于单片机的模拟路灯控制系统设计方案

    基于单片机的模拟路灯控制系统设计方案
    发表于 01-19 21:22 66次下载

    什么是单片机串口通信?

    串口通信是单片机一个重要的部分,单片机和PC,单片机单片机之间的通信大都用串口
    发表于 07-25 07:36 6.1w次阅读
    什么是<b class='flag-5'>单片机</b>的<b class='flag-5'>串口</b>通信?

    基于单片机的简易流水灯实验设计方案

    基于单片机的简易流水灯实验设计方案
    发表于 03-19 10:10 0次下载
    基于<b class='flag-5'>单片机</b>的简易流水灯实验<b class='flag-5'>设计方案</b>

    基于51单片机的频率计设计方案

    基于51单片机的频率计设计方案
    发表于 06-09 09:22 16次下载

    基于STM32单片机的时钟树设计方案

    基于STM32单片机的时钟树设计方案
    发表于 08-04 16:37 38次下载

    USART HMI智能串口屏与单片机双向通讯

    目录·HMI串口屏介绍·HMI串口屏开发实操 ·准备 ·界面认识 ·写命令 ·下载·HMI串口屏与单片机(stm32)双向通信【 功
    发表于 11-17 09:06 53次下载
    USART HMI智能<b class='flag-5'>串口</b>屏与<b class='flag-5'>单片机</b><b class='flag-5'>双向</b>通讯

    最简单DIY基于STM32单片机的蓝牙智能小车设计方案

    STM32库函数开发系列文章目录第一篇:STM32F103ZET6单片机串口互发程序设计与实现第二篇:最简单DIY基于STM32单片机的蓝牙智能小车设计方案文章目录STM32库函数开
    发表于 11-18 10:06 29次下载
    最简单DIY基于STM32<b class='flag-5'>单片机</b>的蓝牙智能小车<b class='flag-5'>设计方案</b>