SP2328串口扩展专用芯片及其与单片机的接口电路

发布者:yanfeng00最新更新时间:2006-06-22 来源: 中华电子网关键字:单片机  多串口通 手机看文章 扫描二维码
随时随地手机看文章

摘   要:   本文介绍一种新型的单片机串口扩展芯片的功能特性以及与单片机接口的应用。
关键词: 单片机;  多串口通信  
在设计由多个单片机组成的数据采集电路时,一般要用多个串口在各个单片机之间进行数据通信。为了解决单片机扩展多个串口的问题,以前大多采用多片AT89C2051来实现多串口通信。每个AT89C2051用并口与上位机连接,再通过AT89C2051的串口与下位机串口连接。这种电路设计,单片机编程比较复杂,整个电路的调试也比较麻烦,可靠性不是很高。一种新开发的SP2328串口扩展芯片很好的解决了上述问题。
SP2328是成都视普科技公司的串行口扩展专用芯片,能将普通单片机(如:AT89C2051、AT89C51等)的一个串口(UART)扩展为三个串口。它主要解决了大多数8位、16位以及32位单片机UART串口太少的问题,扩大了单片机的使用范围。同时,SP2328串行口扩展专用芯片也很好地解决了许多在使用双串口的单片机时,串口复杂的配置问题,能大大缩短开发周期,降低开发成本以及生产成本。

图1  DIP和SOIC封装(左)    图2 SSOP封装(右)

SP2328的功能特性
SP2328有四个UART串口,其中包括一个母串口和三个子串口。母串口和所有子串口都为全双工工作模式,所有串口允许同时接收、发送串行数据。串口0~串口2为子串口,每个子串口的工作速率为75bps~4800bps。串口3为母串口,它的数据传输速率是子串口的4倍。串口3接收到串行数据后,SP2328芯片根据收到的地址信号,把数据通过相应的子串口发送出去。子串口收到串行数据后,把数据通过串口3发送出去,同时给出相应的子串口地址。串口0~串口2的波特率的设置很简单,不需要用软件设置,只要改变输入时钟的频率即可。波特率按以下公式计算:

K=2400*f(osc)/8.0(bps)

其中f(osc)<=16.0MHZ
SP2328的直流工作电压为2.4V~5.5V,典型电流为3.7mA,带有节电模式。
图1和图2是SP2328芯片的管脚排列图。
ADRI0、ADRI1  为串口3接收下行数据时的串口地址线,“00”、“01”、“10”分别对应:串口0、串口1、串口2的地址;“11”为串口3的地址。当上位机要向某一个子串口连接的下位机发送数据时,首先要将ADRI0、ADRI1置成响应的地址状态,再将数据发送到串口3即可。
ADRO0、ADRO1  为串口3发送上行数据时的串口地址线,“00”、“01”、“10”分别对应:串口0、串口1、串口2的地址。当上位机的串口接收到串口3送来的数据时,立刻读取地址线ADRO0、ADRO1的状态,根据地址线ADRO0、ADRO1的状态即可判断出接收到的数据是由哪个串口上传的。

图3  SP2328与单片机的接口电路

SP2328与单片机的接口举例
图3是单片机数据采集电路中SP2328与单片机的接口电路。AT89C51的串口与SP2328的串口3连接,P1.0、P1.1、P1.2、P1.3分别连接ADRI0、ADRI1、ADRO0、ADRO1,作为设置和读取子串口的地址用。三个子串口分别连到三个下位机的串口。串口0、串口1、串口2的波特率为:
 K=(2400*16)/8=4800(bps)
串口3的波特率:
 K3=4*K=4*4800=19200(bps)
AT89C51串口的波特率也必须设置成19200bps。
由于SP2328通电后自动进入工作状态,不需要用程序设置,所以编写串口程序比较简单方便。

需要注意的问题
在选择晶振频率时,要严格使单片机串口的波特率与SP2328的波特率相一致,晶振频率要稳定,否则容易使SP2328芯片接收到的数据和发送出去的数据都是错误的。
由于母串口3的速度是其它子串口的4倍,即子串口发送一个字节的时间母串口可以发送4个字节,所以如果串口3向子串口发送一个字节后,串口3没有向其他子串口发送另外的4个字节,而立即再向原子串口发送数据,子串口的数据将溢出。因此,必须在它们之间加上4个以上的字节用于延时(母串口向其他另外的子串口发送数据,相当于延时一个字节)。
上位机收到母串口上行的数据后要及时读取上行数据的地址信息(上行数据的地址信息可以在上行数据的停止位结束后保持6bit的时间长度)。使上位机能准确收到子串口的串行数据。
上位机向母串口发送数据前,先要向SP2328发送子串口的地址信号。

结语
采用SP2328芯片扩展单片机串口,为单片机的多串口通信提供了一个很好的解决方案。它与使用双串口单片机和使用多片AT89C2051扩展串口等方案相比,编程简单、可靠性高、成本低。

参考文献
1 余永权.《Flash单片机原理及应用》 .北京:电子工业出版社. 1997,10
2  SP2328数据应用手册.成都视普科技有限公司 


关键字:单片机  多串口通 引用地址:SP2328串口扩展专用芯片及其与单片机的接口电路

上一篇:利用单片机实现极简单的测温电路
下一篇:基于单片机的具有通讯口的智能温控表

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

单片机开发过程中硬件调试技巧
在单片机开发过程中,从硬件设计到软件设计几乎是开发者针对本系统特点亲自完成的。这样虽然可以降低系统成本,提高系统的适应性,但是每个系统的调试占去了总开发时间的2/3,可见调试的工作量比较大。单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试中被发现和纠正的。但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。可见硬件的调试是基础,如果硬件调试不通过,软件设计则是无从做起。本文结合作者在单片机开发过程中体会,讨论硬件调试的技巧。   当硬件设计从布线到焊接安装完成之后,就开始进入硬件调试阶段,调试大体分为以下几步。   1 硬件静态的调试   1.1排除逻辑故障   这类故障往往由于设计
[模拟电子]
PIC单片机振荡电路中怎样选择晶体?
什么是中断程序呢? 形象的生活比喻就比如你现在这在看我的文章,突然你的朋友喊你一起去烤地瓜,这时候你就中断了看文章和朋友烤地瓜去了,烤完地瓜之后你又回来看文章。烤地瓜这件事就好比中断程序,他中断了你看文章这件事。在程序方面来说 当CPU在执行一个程序的时候,突然产生了中断事件CPU就去执行中断程序了,当执行完成后CPU又回来执行原先的程序。 中断事件 什么是中断事件,就是引起中断的事件。对于单片机来说这些事件是多种多样的。比如 说一个按键按下,一定的时间到了,一串数据发送完毕,或接收完一个数据。 讲到中断不得不讲讲和中断相对的 查询。其实不管是按键按下 还是 时间到,还是数据发送完毕,这些事实上都可以用查询的方式办
[单片机]
学习单片机的几个注意事项
1、熟悉单片机的原理,结构; 2、学好数电,模电,为设计电路打好基础; 3、熟练使用C语言,多学习别人的程序; 4、对操作系统原理有一定的了解; 5、Protel至少要有点基础; 6、要实际动手调试电路的能力。 学习单片机的步骤 当前的单片机种类很多,但是 51 是最基础的,因此单片机的学习最好也是从 51 开始,不仅容易上手,而且相当实用。然而 51 单片机毕竟过于基础,后来的很多单片机在功能上都有很大的扩展,因此按照我们实验室多数人的路线接下来大多数人会学习 AVR 单片机, AVR 单片机在功能上较 51 有很大提升,集成了 A/D 、快速 PWM 等很多实用的功能,而且和很多大型的单片机在功能上有很多类似之处,因此如果以后还
[单片机]
CEVA为TI SimpleLink™ Wi-Fi®无线MCU提供语音用户界面解决方案
CEVA为TI SimpleLink™ Wi-Fi®无线MCU提供语音用户界面解决方案 CEVA的WhisPro™语音识别和控制软件现可用于TI的CC3235x系列MCU, 为物联网终端带来强大功能的超低功率语音用户界面 全球领先的无线连接和智能感知技术及共创解决方案的授权许可厂商CEVA, Inc.(纳斯达克股票代码:CEVA)宣布推出WhisPro™语音识别和控制软件,支持使用德州仪器(TI) SimpleLink™ Wi-Fi® CC3235x无线MCU系列的设计。可完全定制的WhisPro软件开发套件(SDK)允许客户选择唤醒词和语音命令,并且完全在设备上运行而无需网络连接。 语音用户界面 (VUI
[物联网]
CEVA为TI SimpleLink™ Wi-Fi®无线<font color='red'>MCU</font>提供语音用户界面解决方案
51单片机与三菱PLC无协议通讯成功
我用了两个晚上的时间查阅一些资料,利用三菱PLC的扩展RS485通讯板与其51单片机连接通讯,可写PLC任意的地址。长度可达1000米,看见网上写的都很烦且对三菱和单片机不是很熟的朋友来说有一定的阅读难度,今天将它与大家分享。希望在此基础上大家能扩展出自己想要的功能,过些时间有空我在写个半双工的程序。 硬件部分: 我用的是天祥单片机实验板,由于没有RS485接口,我利用ADM485芯片自制了一个485接口与三菱PLC的扩展RS485通讯如图,但如果要进行半双工通讯,须将P3.0口到下载程序的RS232芯片的线断开可用一个跳线,用RS485的时候断开RS232,用RS232的时候插上跳线帽。硬件连接如图 PLC程
[单片机]
51<font color='red'>单片机</font>与三菱PLC无协议通讯成功
单片机(8bit)的16路舵机调速分析与实现
// main.c view plain copy print ? #include STC_NEW_8051.H #include ControlRobot.h #include intrins.h #define DEBUG_PROTOCOL typedef unsigned char UCHAR8; typedef unsigned int UINT16; #undef TRUE #undef FALSE #define TRUE 1 #define FALSE 0 #define MEMORY_MODEL UINT16 MEMORY_MO
[单片机]
P1C16F73单片机spwm逆变器源程序与PCB原理图
单片机源程序如下: ; original File = C:Users前俊电子DesktopPIC16F73-2KW主板程序.txt processor 16F73 #include P16F73.INC __config _CP_ALL & _BODEN_OFF & _PWRTE_OFF & _WDT_OFF & _HS_OSC ; 0x3FAA ; __idlocs 0xFF, 0xFF, 0xFF, 0xFF ; RAM-Variable LRAM_0x20 equ 0x20 LRAM_0x22 equ 0x22 LRAM_0x25 equ 0x25 LRAM_0x26 equ 0x26 L
[单片机]
P1C16F73<font color='red'>单片机</font>spwm逆变器源程序与PCB原理图
使用STM32单片机点亮LED
有一人,登场于金庸先生的《神雕侠侣》,以大理段氏“一阳指”自成一派,武学修为登峰造极,“天下五绝”之一,号称“南帝”,他就是“一灯大师”。如今,武林中逐渐被遗忘的“一灯大师”,却活跃在另一个行业——嵌入式开发中。 传说,每一个成功的MCU(俗称单片机)开发组中,都有一名“一灯大师”,他精通所有开发板的点灯方法,对于企业引入的新开发板,总是勤学苦练,从点灯开始,快速掌握新开发板的编程要点,带领团队走向胜利。 成为“一灯大师”,离不开持续的修行,离不开对一招一式的勤学苦练。本文将讲解如何通过编程来控制STM32点亮一个LED。 学习环境: 1.软件:Keil5 2.硬件:STM32开发板(笔者使用信盈达公司的M4开发板,芯片型
[单片机]
使用STM32<font color='red'>单片机</font>点亮LED
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

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

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