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

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

3天内不再提示

TI 16C554系列串口扩展芯片实现实现串口扩展和稳定性

牵手一起梦 来源:电子产品世界 作者:佚名 2020-05-18 09:43 次阅读

一.同类方案比较

目前比较通用的串口扩展方案有两种,一是用硬件实现,使用多串口或专用串口,可供选择的串口扩展芯片TI公司开发的16C554系列串口扩展芯片,该系列芯片实现的功能是通过并行口扩展串行口,功能比较强大、通讯速度高,但控制复杂,同时价格较高,主要的应用场合是PC机串口扩展产品。在仅使用单片机控制且不需要太高波特率通讯的系统中,使用16C554系列芯片不仅成本高而且还造成了资源的浪费。而多串口单片机也同样存在价格高的缺点。另一种串口扩展方案就是用软件实现,软件模拟串口存在的缺点有:一是采样次数低,一般只能做到2次/BIT,这样数据的正确性就难以保证;二是不能实现高波特率通讯,软件模拟串口一般不能实现高于4800 bps的波特率。

成都国腾微电子有限公司推出的/系列串口扩展芯片全硬件实现串口扩展,保证了芯片工作的稳定性,设计的最高波特率完全能满足一般系统需求,同时占用系统资源少,使用方法简单,通讯格式可设置,与标准串口通讯格式兼容,利用该系列芯片实现串口扩展是性价比较高的串口扩展方案。

二.GM8123/25介绍

2.1 产品特点

·采用写控制字的方式对芯片进行控制

·两种工作模式,用户可根据自己的系统需求灵活选择

·各子可调(统一调节)

·数据帧长10位或11位可选

·子串口数:3个(GM8123)或5个(GM8125)

·数据采样率 16次/BIT,确保数据采样的准确可靠

·单通道模式下,最高波特率支持20Mbps;多通道模式下,子串口最高波特率38400bps

·与标准串口通讯格式兼容

·输出波特率误差小于0.2%,输入波特率误差要求小于2.8%

·宽工作电压:2.3~6.7V

·工作温度范围:-40℃~85℃

·工作稳定,抗干扰能力强,符合工业级标准

2.2 功能描述

GM8123可扩展3个标准串口,GM8125可扩展5个标准串口,芯片可以通过软件设置工作波特率和数据帧长。芯片通过外部引脚选择串口扩展模式:单通道工作模式和多通道工作模式。单通道模式下,子串口最高波特率支持20Mbps;多通道模式下,子串口最高波特率支持38400bps。

单通道模式下,无需设置芯片的通讯格式,子串口和母串口以相同的波特率工作,一个时刻只允许一组子串口和母串口通讯,工作子串口由地址线选择。单通道工作模式适用于所有从机不需要同时通讯并且通讯过程完全由主机控制的系统。

多通道模式下,允许所有子串口同时与母串口通讯,母串口以子串口波特率的4倍(GM8123)/6倍(GM8125)工作,发送时由地址线选择发送数据的子串口,接收时子串口能主动响应从机发送的数据,由母串口发送给主机,同时由地址线返回接收到数据的子串口地址,主机在接收到子串口送来的数据后可以根据地址线的状态判断数据是从哪一个从机送来的。多通道模式使每个从机的发送要求都能被及时地响应,即使所有从机同时有发送要求,数据也不会丢失,基本实现了主控单元和外设通讯的实时性。多通道模式适用于从机向主机发送数据的时间不可控并且有实时性要求的多机通讯系统。(详细情况查看成都国腾微电子有限公司发布的GM8123/25数据手册)

2.3 系统结构

图1为GM8123/25的系统结构:

TI 16C554系列串口扩展芯片实现实现串口扩展和稳定性

三.应用说明

以以下一个系统为例,用GM8125说明该系列芯片实现串口扩展的方法:一个系统中有5个从机需要与主机进行串行通讯,5个从机通讯波特率均为19200bps,主机首先向所有从机发送一个字节数据作为对从机的控制命令,从机收到数据并进行处理后立即向主机返回相关数据。根据系统要求看出,从机发送数据的时间根据其处理时间而定,不受主机控制,所以GM8125要工作在多通道模式下,即允许所有子串口同时工作。图2是单片机与GM8125的接口框图,该系统利用GM8125为主机89C51扩展出5个串口。

TI 16C554系列串口扩展芯片实现实现串口扩展和稳定性

图2 GM8125与单片机的硬件接口框图

GM8125引脚说明:

RST:复位引脚,低电平有效。复位后默认子串口工作波特率为1200bps,数据长度为11位(带校验位);

MS:模式选择引脚,控制芯片工作在多通道模式下还是单通道模式下。多通道模式下兼做读/写命令字选择引脚;

SRADD0~2:接收子串口地址线;

STADD0~2:发送子串口地址线;

RXD0、TXD0:母串口收/发引脚;

RXD1~5、TXD1~5:子串口1~5收/发引脚;

下面给出主机发送和接收的控制程序,以C51为例:

#include 《reg51.h》

sbit MS=P3^6; //GM8125工作模式控制

sbit RESET=P3^7; //GM8125复位引脚控制

unsigned char SendBuff[5]={0xaa,0x45,0x67,0xbc,0xc9};

unsigned char ReceiveBuff0;

。。。。。。

unsigned char Contr_data;

unsigned char ADD;

unsigned char i=0;

。。。。。。

void main(void)

{

TMOD = 0x20; //指定定时器1工作在方式2

IE = 0x90; //开串行口中断

SCON=0xc0; //串行口工作在方式3

TH1 = 0xf8; //装入定时器1初值,设置主机工作波特率为7200bps

TL1 = 0xf8;

PCON=0x00;

。。。。。。

RESET=0; //对GM8125进行复位操作

Delay(); //延时子程序

RESET=1;

Delay();

Contr_data=0xfc; //装入命令字初值

TR1=1; //启动定时器1

MS=0; //GM8125工作在写命令字模式下

P0=0x00; //置GM8125命令字地址

SBUF=Contr_data; //设置GM8125子串口波特率为19200bps,母串口波特率为115200bps

while(TI==0);

TI=0;

Delay();

(可读取命令字的内容验证写入结果是否正确)

TR1=0; //定时器1停止

TH1 = 0xff; //装入定时器1初值,设置主控MCU工作波特率为115200bps

TL1 = 0xff;

PCON=0x80;

TR1=1; //启动定时器1

/*主控MCU发送/接收程序*/

ADD=0x1f; //子通道1发送地址

P1=ADD; //选择GM8125子通道1发送

SBUF=SendBuff[i];

while(TI==0);

TI=0;

i++;

(以此方式分别向5个子串口发送数据)

REN = 1;

(等待接收处理)

}

void CommReceive(void) 4

{

if(RI)

{

switch(P1&0x07) //判断SRADD0~2的状态确定接收数据来自哪一个子串口

{

case 0:

{ReceiveBuff0=SBUF; //读命令字存入ReceiveBuff0

}

break;

case 1:

{ReceiveBuff1=SBUF; //子通道1接收的数据存入ReceiveBuff1

}

break;

。。。。。。

default:

break;

}

RI = 0;

}

}

该芯片的单通道模式适用于各从机不需要同时工作的系统,具体应用方法在此不做详述,请参考国腾微电子有限公司发布的《GM812X应用手册》。

四.结束语

利用GM8123/25进行串口扩展,有以下优点:

1、 控制简单。该芯片利用软件设置工作方式,最大限度地减少控制线,不需要占用太多主机的系统资源,同时又保证使用的简便性。

2、 应用灵活。该芯片具备两种工作模式、多种工作波特率、10位或11位数据帧长可选,用户可根据自己的系统需求灵活选择。

3、 通用性强。该芯片设计时充分考虑各种用户的需求,保证了芯片的通用性,与标准串口通讯格式完全兼容,同时提供多种可选设置,适用于大多数串口通讯系统。

4、 工作波特率高。该芯片子串口在单通道模式下波特率支持20Mbps,多通道模式下支持38400bps,此波特率完全能满足一般的串口通讯的需求。

5、 性能稳定。硬件实现串口比软件实现串口更能保证串行通讯的稳定性,同时每bit采样16次,保证了数据的正确性。

6、 波特率误差小。输出波特率误差小于0.2%,输入波特率误差要求小于2.8%。

该芯片不足之处在于:不满足超应用要求;多通道模式下,所有子串口工作波特率只能设置成统一值,不适用于各从机工作波特率不一致、又要求同时工作的系统。

责任编辑:gt

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

    关注

    445

    文章

    47476

    浏览量

    407884
  • 单片机
    +关注

    关注

    5991

    文章

    43904

    浏览量

    619617
  • 波特率
    +关注

    关注

    2

    文章

    277

    浏览量

    33731
收藏 人收藏

    评论

    相关推荐

    关于多种接口扩展串口的实用案例

    有限公司的WK系列产品。WK系列产品有着性价比高、稳定性强、超大FIFO和主接口丰富的特点,以及提供完善的售后服务,受到了业界的认可,这里还提供了WK产品在实际工程当中的应用方案。
    发表于 08-30 14:31

    基于XR16L784的多串口扩展解决方案优势分析

    可以看出,基于ST16C554串口扩展方案需经过可编程逻辑芯片进行地址及中断源译码,从而实现相应通道的选择及申请的中断。从图2可以看出,C
    发表于 06-03 05:00

    利用16C554实现主从式单片机远距离通信扩展

    通过 16C554完成上位主机对多台 MODEM的控制,采用背靠背连接实现主机与下位机的远距离通信。该系统已成功地用于城市交通路口的信息传输。
    发表于 04-08 09:49 41次下载

    TMS320VC33扩展异步串口串口通信的实现

        DSP 在与多个外设进行通信时,通常需要对DSP 的串口进行扩展。本文详细介绍了利用TL16C554 芯片对TMS320VC33 DSP
    发表于 09-02 11:24 26次下载

    串口扩展解决方案

    关键词 串口扩展,多路通信,数据采集摘 要本文档介绍了采用 Actel Flash 架构的FPGA 实现扩展多路串口
    发表于 11-02 13:53 59次下载

    TMS320VC33扩展异步串口串口通信的实现

     DSP 在与多个外设进行通信时,通常需要对DSP 的串口进行扩展。本文详细介绍了利用TL16C554 芯片对TMS320VC33 DSP
    发表于 11-01 11:47 43次下载

    物流终端多串口扩展的设计

    详述了多串口扩展通信子板设计方案,选用PC/104并口总线通过并/串转换器TL16C554实现4个串口
    发表于 12-08 17:45 40次下载

    一种基于FPGA和SC16C554实现串口通信的方法

    一种基于FPGA和SC16C554实现串口通信的方法 0 引言    随着电子技术的飞跃发展,通用数字信号处理器(DSP)的性能价格比不断提高,数据处理能力不断加
    发表于 01-26 10:45 1808次阅读
    一种基于FPGA和SC<b class='flag-5'>16C554</b><b class='flag-5'>实现</b>多<b class='flag-5'>串口</b>通信的方法

    采用Actel FPGA的多串口扩展方案

    采用Actel FPGA的多串口扩展方案    在当前的多串口扩展应用中,虽然市面上有部分的多串口
    发表于 03-18 11:11 2484次阅读

    基于S3C2440和嵌入式Linux的扩展串口设计

    在嵌入式系统常需用到多个串口,但常用的ARM微控制器上只有3个串口,常常不能满足需要。针对TQ2440开发板的特点,介绍了在TQ2440开发板中利用TL16C554A芯片
    发表于 04-12 18:42 147次下载
    基于S3C2440和嵌入式Linux的<b class='flag-5'>扩展</b><b class='flag-5'>串口</b>设计

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

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

    1扩5异步串口扩展芯片GM8125中文资料

    gjb1扩5异步串口扩展芯片GM8125中文资料1扩5异步串口扩展芯片GM8125中文资料1扩5
    发表于 12-09 16:07 52次下载

    如何使用扩展芯片实现端口扩展

    扩展芯片实现端口扩展串口扩展I/O口非常实用,但是串口
    发表于 07-09 17:40 2次下载
    如何使用<b class='flag-5'>扩展</b><b class='flag-5'>芯片</b><b class='flag-5'>实现</b>端口<b class='flag-5'>扩展</b>

    基于STM32的ch438串口扩展芯片使用

    CH438串口扩展芯片是一个一对八的串口扩展芯片,在一些串口
    发表于 11-25 20:06 75次下载
    基于STM32的ch438<b class='flag-5'>串口</b><b class='flag-5'>扩展</b><b class='flag-5'>芯片</b>使用

    WK系列串口扩展芯片详解(含电路例程)

    WK系列串口扩展芯片详解(含电路例程) 很多单片机,比如51单片机,只有一个或两个串口。所以,有时会遇到
    发表于 01-18 10:58 29次下载
    WK<b class='flag-5'>系列</b><b class='flag-5'>串口</b><b class='flag-5'>扩展</b><b class='flag-5'>芯片</b>详解(含电路例程)