原创 q

2009-8-13 08:42 3505 6 6 分类: MCU/ 嵌入式
摘 要:介绍UART多串口扩展器SP2337,该器件可将现有的单串口单片机扩展为全新的具有3个串口的单片机。给出该器件的性能、引脚功能及应用,并给出将AT89C51单片机的单串口扩展为三个UART串口的硬件电路及相应程序。电子园51单片机学习网2M:b8R&rU:L ?
关键词:通用异步收/发器;串口扩展;单片机;应用

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

AK9b"W+dx44606 电子园51单片机学习网'I oVS`;D

2SP2337的主要特性及引脚功能
)m5| pI.KJ\s)F44606
  SP2337是采用低功耗CMOS工艺设计的UART多串口扩展器,该器件可将一个高波特率的UART串口扩展为三个较高波特率的UART串口,从而为系统需要多个串口时提供很好的解决方案,该器件的主要特性是:电子园51单片机学习网;R]r9~k9R4_L
  可将一个UART串口扩展为三个UART串口;电子园51单片机学习网/U^L[+}9]\xv
  全双工异步工作,四个UART串口都为全双工异步工作模式;
8a \/~3b;rCsP44606
  工作速率高,可达1200b/s~9600b/s(可由晶振频率设定任意非标准波特率);
k:G7M*W.O44606
  波特率设置简单,只需更改输入时钟频率;
I"r5CL)z6P2nv44606
  波特率误差小,每个串口的数据输出波特率误差小于0.25%;电子园51单片机学习网 |4Y,Dxh
  接收波特率范围宽,要求每个串口数据波特率小于2.5%;电子园51单片机学习网-pAEg}"w!O
  数据传输误码率极低,小于10-9(接收的数据波特率误差小于2%);电子园51单片机学习网%]7U!\!t.~M!l9k
  具有节电模式,进入节电模式后,典型静态电流为0.5μA;

&h!@I@9OBXqi)P44606


z1gTv!H3c44606电子园51单片机学习网;C`/_}e


? HqlH'WE2e44606  可自动唤醒,任意串口的接收端有数据出现时自动唤醒;电子园51单片机学习网*U$X$b7?4o E;f Z,f
  宽工作电源电压(2.4V~5.5V);电子园51单片机学习网 o,t] cj ^z L{N'P|-G
  低工作电流,典型工作电流为4.4mA。电子园51单片机学习网zE OW%w&tYV~3{
  该器件具有DIP型、SOIC型和SSOP型多种封装形式。引脚排列如图1所示。引脚功能见表1。

@/Z4vb4d)qo1V44606 电子园51单片机学习网(t~-`}8[?

3应用技术
%Zz_$P2ac&RH+G44606
  在使用SP2337时应遵循许多原则。电子园51单片机学习网5[%N!YpJ
  SP2337适用于串行数据为7位的应用领域。
hXT~'?Md5a44606
  串口0—串口2为三个较高波特率的串口(子串口)。电子园51单片机学习网va|T o7Zu)Q
  串口3为高波特率串口(母串口),它的数据传输速率是子串口的4倍。如当输入时钟频率fos,cin为10MHz,串口3的波特率为19200b/s。串口0—2的波特率为19200b/s/4=4800b/s;如果需要在串口0—串口2上获得波特率K,则需按以下公式改变时钟频率。电子园51单片机学习网M Un*J8jJ2T
  
$?$yq qs ou44606
  ADRI1、ADRI0为下行地址线,ADRI1ADRI0=00、01、10时,分别对应子串口0,1,2,ADR1ADR0=11时为串口3的地址,同时,它也是SP2337的命令/数据口地址。
sJ$i#~;ER{44606
  ADRO1、ADRO0为上行数据的串口地址线,ADRO1ADRO0=00、01、10时分别对应子串口0、1、2,当上位机的UART接收到由串口3发送的数据时,立即读取地址线ADRO1和ADRO0的状态,根据ADRO1和ADRO0的状态判断数据由哪个串口发送。电子园51单片机学习网h2z#@kb'aF
  唤醒条件为向串口0—串口3的任意一个数据接收端口写入一个字节数据。由于SP2337的唤醒时间为25ms左右,故用于芯片唤醒的数据将不能够被正确接收,因此,应采用下面的芯片唤醒流程:先发送一个字节数据,用于唤醒芯片,延时25ms后再发送有效的数据。电子园51单片机学习网_'d6jb.m0D.f]
  为了快速可靠地传输批量数据,可以采用下面的方法实现数据快速可靠接收、发送。
|R2iQa)y"t$ZW44606
  如上位机只需要向一个串口发送数据,则可向该串口发送完一个字节数据,再向地址11(串口3的地址)连续发送四个字节“0X00”,其后再向需要发送数据的串口发送一个字节数据。再向串口3发送四个字节“0X00”,按此方式循环发送即可。
E_T)XFl44606
  如果上位机需向两个串口分别发送两个数据块,则可分别向两个相应的子串口发送一个字节的数据后再向串口3发送四个字节的“0X00”,再分别将两个数据块的下一个字节发送到两个子串口。电子园51单片机学习网b8g$pBZC$|3jO@
  如果上位机有三个数据块需要分别向三个子串口发送,则可先向三个子串口分别发送一个字节的有效数据,再向串口3发送两个字节的“0X00”,再循环向3个子串口发送有效的数据。电子园51单片机学习网J I"xZ ofO'h(K'\ dM
  注意写入串口3用于延时的数据只能是“0X00”,如果写入其他数据,将产生不可预料的结果。
h i4j)Nz-[D44606
  SP2337数据发送过程如下:如果上位机需要将数据“0X28”由串口2发送出去,则需先将ADRI1置为“1”,ADRI0置为“0”,再将数据“0X28”通过上位机的UART口发送到串口3。
1g,CS_2BsC44606
  SP2337可执行的命令仅有两条即复位和睡眠命令。当上位机通过串口3(地址为“11”)写入数据“0X35”或“0XB5”时,则芯片执行软件复位,复位时间约为21.75ms,当写入的数据为“0X55”或“0XD5”时,则芯片进入睡眠状态。
电子园51单片机学习网 W,Nzq"o5Y%rD0Q

电子园51单片机学习网@ ^"[.fE1Di

4具体应用电子园51单片机学习网@wN8P$E _:\1R
  利用SP2337可将仅具有一个UART串口的单片机扩展为具有3个UART串口的单片机。下面以常用的AT89C51单片机为例给出相应的串口扩展电路,如图2所示。电子园51单片机学习网7{f%[_1f e


电子园51单片机学习网8[oB`d Ty~

电子园51单片机学习网yN9C a ]B2N

  图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编制。
se/brY!BsG+WY44606  #include <regh1.h>
+j9|f:GF7xya@44606  
KC@)?hZJ44606  
+[y$S Y8@%^(z;u44606  电子园51单片机学习网 f^x ` O:kI
  
|*V,W P7g&o _44606  
;S4kI h7e E0|44606  电子园51单片机学习网8G"r!l9l6]3a
  电子园51单片机学习网7vyC6g0a]
  电子园51单片机学习网(x)_M.Zf
  电子园51单片机学习网s5jA5d^8|JYJH
 
EH)~]#R8V I E D44606  
,Of5K yE44606  
+I.yZ R$N w44606  
电子园51单片机学习网] ha.AY_K:C

电子园51单片机学习网h-v4W4QIV

5结束语电子园51单片机学习网 y$~CO*}4e$^ p+L
  SP2337多串口扩展器可广泛应用在工业控制、数据采集、仪器仪表、智能家电、计算机RS232口扩展、有线及无线数据传输等领域,由该器件构成的多串口电路具有硬件成本低、性价比高、工作速度高、波特率设置简单等特点,是多串口应用系统的良好解决方案。
电子园51单片机学习网MP+])m6H Avr

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条