多串口扩展器在单片机系统中的应用

发布者:Volare最新更新时间:2012-03-10 关键字:异步收发器  串口扩展  单片机 手机看文章 扫描二维码
随时随地手机看文章

1概述
    近年来,具有完整的测量或控制功能的智能模块不断涌现,而此类模块均需通过RS- 232S或RS-485串行口与上位单片机或微机进行通信,以构成分级分布式测控系统,而现阶段的大部分单片机仅有一个UART串口,很难满足既与智能模块通信又与上位微机进行通信的要求。纵观现有的串口扩展方案,存在对单片机的软硬件资源占用较多、编程繁复、串口扩展数量较少、硬件电路复杂及成本较高等缺点,而利用UART多串口扩展器SP2337可以很好地解决单片机多串口的扩展问题。

2SP2337的主要特性及引脚功能
  SP2337是采用低功耗CMOS工艺设计的UART多串口扩展器,该器件可将一个高波特率的UART串口扩展为三个较高波特率的UART串口,从而为系统需要多个串口时提供很好的解决方案,该器件的主要特性是:
  可将一个UART串口扩展为三个UART串口;
  全双工异步工作,四个UART串口都为全双工异步工作模式;
  工作速率高,可达1200b/s~9600b/s(可由晶振频率设定任意非标准波特率);
  波特率设置简单,只需更改输入时钟频率;
  波特率误差小,每个串口的数据输出波特率误差小于0.25%;
  接收波特率范围宽,要求每个串口数据波特率小于2.5%;
  数据传输误码率极低,小于10-9(接收的数据波特率误差小于2%);
  具有节电模式,进入节电模式后,典型静态电流为0.5μA;


  可自动唤醒,任意串口的接收端有数据出现时自动唤醒;
  宽工作电源电压(2.4V~5.5V);
  低工作电流,典型工作电流为4.4mA。
  该器件具有DIP型、SOIC型和SSOP型多种封装形式。引脚排列如图1所示。引脚功能见表1。

3应用技术
  在使用SP2337时应遵循许多原则。
  SP2337适用于串行数据为7位的应用领域。
  串口0—串口2为三个较高波特率的串口(子串口)。
  串口3 为高波特率串口(母串口),它的数据传输速率是子串口的4倍。如当输入时钟频率fos,cin为10MHz,串口3的波特率为19200b/s。串口0— 2的波特率为19200b/s/4=4800b/s;如果需要在串口0—串口2上获得波特率K,则需按以下公式改变时钟频率。
  
  ADRI1、ADRI0为下行地址线,ADRI1ADRI0=00、01、10时,分别对应子串口0,1,2,ADR1ADR0=11时为串口3的地址,同时,它也是SP2337的命令/数据口地址。
  ADRO1、 ADRO0为上行数据的串口地址线,ADRO1ADRO0=00、01、10时分别对应子串口0、1、2,当上位机的UART接收到由串口3发送的数据时,立即读取地址线ADRO1和ADRO0的状态,根据ADRO1和ADRO0的状态判断数据由哪个串口发送。
  唤醒条件为向串口0—串口3的任意一个数据接收端口写入一个字节数据。由于SP2337的唤醒时间为25ms左右,故用于芯片唤醒的数据将不能够被正确接收,因此,应采用下面的芯片唤醒流程:先发送一个字节数据,用于唤醒芯片,延时25ms后再发送有效的数据。
  为了快速可靠地传输批量数据,可以采用下面的方法实现数据快速可靠接收、发送。
  如上位机只需要向一个串口发送数据,则可向该串口发送完一个字节数据,再向地址11(串口3的地址)连续发送四个字节“0X00”,其后再向需要发送数据的串口发送一个字节数据。再向串口3发送四个字节“0X00”,按此方式循环发送即可。[page]
  如果上位机需向两个串口分别发送两个数据块,则可分别向两个相应的子串口发送一个字节的数据后再向串口3发送四个字节的“0X00”,再分别将两个数据块的下一个字节发送到两个子串口。
  如果上位机有三个数据块需要分别向三个子串口发送,则可先向三个子串口分别发送一个字节的有效数据,再向串口3发送两个字节的“0X00”,再循环向3个子串口发送有效的数据。
  注意写入串口3用于延时的数据只能是“0X00”,如果写入其他数据,将产生不可预料的结果。
  SP2337数据发送过程如下:如果上位机需要将数据“0X28”由串口2发送出去,则需先将ADRI1置为“1”,ADRI0置为“0”,再将数据“0X28”通过上位机的UART口发送到串口3。
  SP2337可执行的命令仅有两条即复位和睡眠命令。当上位机通过串口3(地址为“11”)写入数据“0X35”或“0XB5”时,则芯片执行软件复位,复位时间约为21.75ms,当写入的数据为“0X55”或“0XD5”时,则芯片进入睡眠状态。

4具体应用
  利用SP2337可将仅具有一个UART串口的单片机扩展为具有3个UART串口的单片机。下面以常用的AT89C51单片机为例给出相应的串口扩展电路,如图2所示。

  图2中,AT89C51的UART口与 SP2337的串口3相连。串口3同时也作为命令/数据口。ADRI1和ADRI0与AT89C51的P2.3、P2.2口线相连,用于发送数据时相应串口0—2的选择,ADRO1和ADRO0与AT89C51的P2.1、P2.0口线相连,用于判别接收的数据来自串口0—2的哪一个。SP2337的时钟频率选为20MHz,此时,串口3的波特率为19200b/s,串口0—2的波特率为9600b/s。下面给出与上述电路配套的通信程序。程序采用C51 编制。
  #include
 
  
  [page]
  
  
  
  
  
  
 
  
  
  

5结束语
  SP2337多串口扩展器可广泛应用在工业控制、数据采集、仪器仪表、智能家电、计算机RS232口扩展、有线及无线数据传输等领域,由该器件构成的多串口电路具有硬件成本低、性价比高、工作速度高、波特率设置简单等特点,是多串口应用系统的良好解决方案。

关键字:异步收发器  串口扩展  单片机 引用地址:多串口扩展器在单片机系统中的应用

上一篇:单片机系统中日历时钟自动校准及调整
下一篇:基于单片机的发动机转速和加速时间测量方法

推荐阅读最新更新时间:2024-03-16 12:55

基于单片机控制的多路呼叫系统设计
随着信息技术的发展与医疗卫生事业的深化改革,国家金卫工程的实施使医院管理信息化的进程大大加快,医院的信息化建设取得了很大进展。医疗行业面对激烈竞争的市场,需要为病患者提供更人性化,更合理的服务,医疗资源的共享和信息化流程的简化,医疗部门办公网络化、自动化,实现全面信息共享已是大势所驱。越来约多的医院认识到,只有通过信息化建设,逐步建立信息化医院和医疗企业,才能支持医院的可持续发展,从而大力提高医院综合效益和运行效益。因此,设计一个支持医院病床呼叫,具有一条线缆传输多路呼叫信息的功能的系统,是非常必要的。 1 多路呼叫系统整体设计方案 该系统利用单片机的双机通信功能,设计出的具有呼叫、显示、应答等功能的多路呼叫系统,就是
[单片机]
单片机在电动机保护中的应用
单片机即单片微型计算机的简称,它是将CPU、ROM、RAM、TIMER/COUNTER以及输入/输出接口(I/O)等集成在一块超大规模集成电路芯片上而制成的,有些单片机还集成了模数转换器(ADC)、脉宽调制模块(PWM)、通讯接口等,使用者只需用少量的外围电路就可组成各种应用系统。单片机可分为8位机和16位机,其中8位机在市场中占主导地位。生产单片机的半导体厂家很多,包括:INTEL、PHILIPS、SIEMENS、ADM、ATAIEL、MICROCHIP等。近年来,MICROCHIP公司生产的单片机以其简约的指令系统、纳秒级的指令周期、强大的外围接口功能深受电子工程师们的青睐,笔者曾使用过PIC16CXXX和PIC16FXXX系列
[单片机]
浅析实现MCU低功耗的三种途径
  现在的电子产品,对低功耗的要求越来越高。产品功耗的问题是经常让产品设计者头痛而又不得不面对的一个问题。以单片机为核心的系统,其功耗主要由单片机功耗和单片机外围电路功耗组成。要满足单片机系统的低功耗要求,选用具有低功耗特性的单片机可以很容易实现。因为具有低功耗特性的单片机可以大大降低系统功耗,这可以从单片机的供电电压、内部结构、系统时钟和低功耗模式等几方面来考察一款单片机的低功耗特性。 为了让控制器的耗电量达到最低。达成的方式大概有以下三种:降低工作模式时的功秏、减少休眠模式的功秏、以及缩短由休眠到工作的唤醒时间。   工作模式时的功秏减低是最先被克服的任务,目前推出低功秏 MCU 的厂商多半已经做到。其中最大眉角在于,必须利用
[电源管理]
混合信号SoC单片机在双色LED屏中的应用
1 高速SoC单片机C8051F040特征 C8051F040系列器件是完全集成的混合信号片上系统型MCU,具有64个数字I/O 引脚,片内集成了1个CAN2.0B控制器。其主要特性有: (1)高速流水线结构的8051兼容的CIP-51内核(可达25 MIPS);(2)全速非侵入式的在系统调试接口(片内) 64 KB(C8051F040/1/2/3/4/5)可在系统编程的Flash存储器,(4K+256)B的片内RAM,寻址空间为64 KB的外部数据存储器接口和硬件实现的SPI、SMBus/I2C和两个UART串行通信接口,片内集成看门狗定时器和VDD监视器和温度传感器,具有时钟振荡器的C8051F04x系列器件,是真正能独立工
[单片机]
混合信号SoC<font color='red'>单片机</font>在双色LED屏中的应用
51单片机音乐播放器
//世上只有妈妈好数据表 co de unsigned char sszymmh ={ 6,2,3, 5,2,1, 3,2,2, 5,2,2, 1,3,2, 6,2,1, 5,2,1, 6,2,4, 3,2,2, 5,2,1, 6,2,1, 5,2,2, 3,2,2, 1,2,1, 6,1,1, 5,2,1, 3,2,1, 2,2,4, 2,2,3, 3,2,1, 5,2,2, 5,2,1, 6,2,1, 3,2,2, 2,2,2, 1,2,4, 5,2,3, 3,2,1,
[单片机]
51单片机简易温度采集与控制装置
MCU型号:IAP15F2K61S2 还好是1T的单片机,不知道换成普通的12T单片机会不会跪。。终于调统了,不过温度采集不太稳定,有1度的波动。 /*  **********************************************************************                      简易温度采集与控制装置  文件名:main.c  功能概述:      初始化数码管显示温度区间和当前温度,温度上限和温度下限默认为30度      和20度,用户可以通过矩阵键盘输入自己设定的温度区间,键盘提供set和clear      功能,首先按下set进入设置模式, 
[单片机]
单片机实现数字相位变换器的设计方法
数字相位变换器又称脉冲调相器,是鉴相型位置伺服系统中的主要控制线路。它的作用是将脉冲信号转换为相位变化信号。在传统的系统设计中,脉冲调相器是通过纯硬件线路实现的,线路复杂、设计难度大、调试难度也较大。作者在旋转变压器鉴相型位置检测系统中设计脉冲调相器时,改变传统的纯硬件设计方法,采用单片机实现脉冲调相,使硬件设计工作大大简化,易于实现,且电路调试简便。 1 脉冲调相器的工作原理 用一个频率为fcp的时钟脉冲去触发一个容量为M的计数器时,如用四位二进制计数器,其容量为16,那么在计数器的最后一级输出端可获得一个频率为 1/16fcp的方信号。如果在时钟脉冲触发计数器的过程中,向计数器加入一个额外的脉冲,则由于计数器提前完成1
[单片机]
用<font color='red'>单片机</font>实现数字相位变换器的设计方法
C51单片机串口工作的四种方式总结
方式0:同步移位寄存器输入输出方式 1. 利用移位寄存器实现串行/并行的转换(功能) 2. 波特率:fosc/12 3. RXD(P3.0)----用于串行数据的输入和输出 TXD(P3.1)----充当输出的移位时钟 4. 数据大小:8位 5. 方式0发送: ○ 串口接口移位寄存器(74HC164),主要用于扩展并行输出口 ○ 用单片机本身的3根线换取了8根线的作用 ○ 串行接口将8位数据从SBUF中取出 ○ TXD引脚上输出同步移位脉冲 ○ 以fosc/12的波特率从RXD端串行输出到移位寄存器 ○ 发完后TI置1,向CPU请求中断 6. 7. 8. 方式0接收: ○ 串口接口移位寄存器(74HC1
[单片机]
C51<font color='red'>单片机</font>串口工作的四种方式总结
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved