RS-232多串口扩展器件SP2538及其应用
摘要:SP2538是采用低功耗CMOS工艺生产的专用串行口(RS232)扩展芯片,它可将单片机或DSP等原有的单UART串口扩展至5个全双工UART口,从而解决了此类器件串口太少的问题。文中介绍了SP2538的性能特点,引脚功能及应用方法,并以单片机为例给出了多串口扩展的硬件电路及相应的通信程序。
关键词:RS-232;串口扩展;单片机;SP2538
1 概述
SP2538是专用低功耗串行口扩展芯片,该芯片主要是为解决当前基于UART串口通信的外围智能模块及器件较多,而单片机或DSP原有的UART串口又过少的问题而推出的。利用该器件可将现有单片机或DSP的单串口扩展至5个全双工串口。与其它具有多串口的单片机或串口扩展方案相比,采用SP2538实现的多串口扩展方案,具有扩展串口数量多、对扩展单片机的软硬件资源占用少、使用方法简单、待扩展串口可实现较高的波特率、成本低廉、性价比高等优点。同时,它还具有如下特点:
●可将单UART串口扩展为5个UART串口;
●工作速率范围宽,5个子串口可产生2400bps~9600bps之间的任意波特率;
●可全双工工作,母串口和所有子串口都支持全双工UART传输模式;
●工作电源电压范围宽:3.3V~5.5V;javascript:window.open(this.src);" style="cursor:pointer;"/>
●典型工作电流为4.6mA(子串口速率为9600bps、VCC为3.3V时);
●资源占用少,除占用上位机原有串行口中断外,不占用任何中断资源;
●具有节电模式,进入节电模式后,其典型静态电流约8μA;
●上位机发送数据可自动唤醒;
●输出误差小,所有子串口的输出波特率误差均小于0.08%;
●误码率低于10-9(所有串行口数据输入波特率误差小于等于±2%);
●接收范围宽,波特率误差小于2.5%时,子串口即可完全正确接收;母串口的接收范围更宽,并可自适应56000bps和57600bps两种标准波特率(fosc—in 为20.0MHz时);
● 可用上位机进行监控,并具有上电复位和看门狗监控输出,适用于没有看门狗或需要更多重监控的高可靠上位机程序监控系统。
2 引脚功能
SP2538具有双列直插DIP及双列贴片SOIC两种封装形式。后缀为SP2538xxH的复位时输出高电平而后缀为SP2538xxL的复位时输出低电平,可分别适用高、低电平复位的单片机。图1给出了DIP封装高电平复位SP2538DPH的外形及引脚排列图,各引脚的功能说明列于表1。
表1 SP2538引脚说明
引脚名称 | 引脚编号 | 引脚类型 | 引 脚 描 述 |
TX5~TX0 | 1、3、5、7、9、14 | Output | 串口5~串口0数据发送(连接上位机RX口) |
RX5~RX0 | 2、4、6、8、10、13 | Input | 串口5~串口0数据接收(连接上位机TX口) |
VCC1 | 11 | - - - | 电源1(逻辑电路电源) |
+RST | 12 | Output | 复位控制输出(适用于高电平复位的MCU) |
VCC2 | 15 | - - - | 电源2(时钟电路电源) |
GND | 16 | - - - | 电源地 |
OSCI | 17 | Input | 时钟输入(用于波特率发生器等) |
OSCO | 18 | Output | 时钟输出 |
ADRI0~ADRI2 | 19~21 | Input | 母串口(RX5)数据接收地址0~2 |
ADRO0~ADRO2 | 22~24 | Output | 母串口(RX5)数据发送地址0~2 |
3 应用说明
3.1 母串口收发数据过程与时序
(1)上位机接收来自母串口的数据
上位机从母串口接收到一个字节数据后,会立即读取SP2538的输出地址ADRO2~ADRO0(编码方式为:8-4-2-1码),然后根据输出地址的编码即可判断接收到的数据来自哪个子串口,上位机接收来自母串口的数据时序如图2所示。
(2)上位机向母串口发送数据
发送数据时,上位机首先通过串口写入欲发送数据的子串口号,即先由上位机的串口发送数据地址ADRI2~ADRI0(编码方式:8-4-2-1码),然后将欲发送的数据由上位机串口发出。需要注意的是:母串口的波特率是子串口的6倍,即上位机在连续向母串口发送6个字节的时间内,子串口才能发送完一个字节。上位机向母串口发送数据的时序如图3所示。表2列出了SP2538的操作时限要求。
表2 SP2538操作时限
时限内容 | 说 明 | 最 小 值 | 典 型 值 | 最 大 值 |
Tpwr-up | 上电复位延时 | 150ms | … | … |
Treset | 芯片指令复位时间 | … | … | 50μs |
Twdt-rst | 看门狗溢出复位脉冲宽度 | 80ms | … | … |
Taddr-in | 数据接收地址保持时间 | 10ns | … | … |
Twake-up | 芯片唤醒延时 | … | … | 9ms |
Taddr-hold | 数据发送地址保持时间 | (2/fosc-in)ms | … | … |
Twdt-over | 看门狗溢出周期 | 800ms | … | … |
3.2 其它说明
母串口和所有子串口内部均具有独立的数据发送缓冲存储器(FIFO Buffer)和接收缓冲存储器(FIFO Buffer),所有的RS232串行口都支持全双工异步传输模式,即所有串行口都可以同时独立接收和发送数据,且不会丢失任何数据。
母串口波特率由K1=2880 fosc-in计算,其单位为MHz,且fosc—in小于20.0Hz。在SP2538输入时钟fosc—in为20.0MHz时,母串口可自动适应上位机的56000bps和57600bps两种标准波特率输入,即fosc—in为20.0MHz时,上位机的RS232波特率可以设置成56000bps或57600bps