丁香婷婷网,黄色av网站裸体无码www,亚洲午夜无码精品一级毛片,国产一区二区免费播放

現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>RS-232多串口擴(kuò)展器件SP2538及其應(yīng)用

RS-232多串口擴(kuò)展器件SP2538及其應(yīng)用

時(shí)間:2023-02-20 23:43:30 電子通信論文 我要投稿
  • 相關(guān)推薦

RS-232多串口擴(kuò)展器件SP2538及其應(yīng)用

摘要:SP2538是采用低功耗CMOS工藝生產(chǎn)的專用串行口(RS232)擴(kuò)展芯片,它可將單片機(jī)或DSP等原有的單UART串口擴(kuò)展至5個(gè)全雙工UART口,從而解決了此類器件串口太少的問(wèn)題。文中介紹了SP2538的性能特點(diǎn),引腳功能及應(yīng)用方法,并以單片機(jī)為例給出了多串口擴(kuò)展的硬件電路及相應(yīng)的通信程序。

    關(guān)鍵詞:RS-232;串口擴(kuò)展;單片機(jī);SP2538

1 概述

SP2538是專用低功耗串行口擴(kuò)展芯片,該芯片主要是為解決當(dāng)前基于UART串口通信的外圍智能模塊及器件較多,而單片機(jī)或DSP原有的UART串口又過(guò)少的問(wèn)題而推出的。利用該器件可將現(xiàn)有單片機(jī)或DSP的單串口擴(kuò)展至5個(gè)全雙工串口。與其它具有多串口的單片機(jī)或串口擴(kuò)展方案相比,采用SP2538實(shí)現(xiàn)的多串口擴(kuò)展方案,具有擴(kuò)展串口數(shù)量多、對(duì)擴(kuò)展單片機(jī)的軟硬件資源占用少、使用方法簡(jiǎn)單、待擴(kuò)展串口可實(shí)現(xiàn)較高的波特率、成本低廉、性價(jià)比高等優(yōu)點(diǎn)。同時(shí),它還具有如下特點(diǎn):

●可將單UART串口擴(kuò)展為5個(gè)UART串口;

●工作速率范圍寬,5個(gè)子串口可產(chǎn)生2400bps~9600bps之間的任意波特率;

●可全雙工工作,母串口和所有子串口都支持全雙工UART傳輸模式;

●工作電源電壓范圍寬:3.3V~5.5V;(范文先生網(wǎng)m.panasonaic.com收集整理)

●典型工作電流為4.6mA(子串口速率為9600bps、VCC為3.3V時(shí));

●資源占用少,除占用上位機(jī)原有串行口中斷外,不占用任何中斷資源;

●具有節(jié)電模式,進(jìn)入節(jié)電模式后,其典型靜態(tài)電流約8μA;

●上位機(jī)發(fā)送數(shù)據(jù)可自動(dòng)喚醒;

●輸出誤差小,所有子串口的輸出波特率誤差均小于0.08%;

●誤碼率低于10-9(所有串行口數(shù)據(jù)輸入波特率誤差小于等于±2%);

●接收范圍寬,波特率誤差小于2.5%時(shí),子串口即可完全正確接收;母串口的接收范圍更寬,并可自適應(yīng)56000bps和57600bps兩種標(biāo)準(zhǔn)波特率(fosc—in 為20.0MHz時(shí));

● 可用上位機(jī)進(jìn)行監(jiān)控,并具有上電復(fù)位和看門狗監(jiān)控輸出,適用于沒(méi)有看門狗或需要更多重監(jiān)控的高可靠上位機(jī)程序監(jiān)控系統(tǒng)。

2 引腳功能

SP2538具有雙列直插DIP及雙列貼片SOIC兩種封裝形式。后綴為SP2538xxH的復(fù)位時(shí)輸出高電平而后綴為SP2538xxL的復(fù)位時(shí)輸出低電平,可分別適用高、低電平復(fù)位的單片機(jī)。圖1給出了DIP封裝高電平復(fù)位SP2538DPH的外形及引腳排列圖,各引腳的功能說(shuō)明列于表1。

表1 SP2538引腳說(shuō)明

引腳名稱 引腳編號(hào) 引腳類型 引  腳  描  述 TX5~TX0 1、3、5、7、9、14 Output 串口5~串口0數(shù)據(jù)發(fā)送(連接上位機(jī)RX口) RX5~RX0 2、4、6、8、10、13 Input 串口5~串口0數(shù)據(jù)接收(連接上位機(jī)TX口) VCC1 11 - - - 電源1(邏輯電路電源) +RST 12 Output 復(fù)位控制輸出(適用于高電平復(fù)位的MCU) VCC2 15 - - -  電源2(時(shí)鐘電路電源) GND 16 - - -  電源地 OSCI 17 Input 時(shí)鐘輸入(用于波特率發(fā)生器等) OSCO 18 Output 時(shí)鐘輸出 ADRI0~ADRI2 19~21 Input 母串口(RX5)數(shù)據(jù)接收地址0~2 ADRO0~ADRO2 22~24 Output 母串口(RX5)數(shù)據(jù)發(fā)送地址0~2

3 應(yīng)用說(shuō)明

3.1 母串口收發(fā)數(shù)據(jù)過(guò)程與時(shí)序

(1)上位機(jī)接收來(lái)自母串口的數(shù)據(jù)

上位機(jī)從母串口接收到一個(gè)字節(jié)數(shù)據(jù)后,會(huì)立即讀。樱校玻担常傅妮敵龅刂罚粒模遥希病粒模遥希埃ň幋a方式為:8-4-2-1碼),然后根據(jù)輸出地址的編碼即可判斷接收到的數(shù)據(jù)來(lái)自哪個(gè)子串口,上位機(jī)接收來(lái)自母串口的數(shù)據(jù)時(shí)序如圖2所示。

(2)上位機(jī)向母串口發(fā)送數(shù)據(jù)

發(fā)送數(shù)據(jù)時(shí),上位機(jī)首先通過(guò)串口寫入欲發(fā)送數(shù)據(jù)的子串口號(hào),即先由上位機(jī)的串口發(fā)送數(shù)據(jù)地址ADRI2~ADRI0(編碼方式:8-4-2-1碼),然后將欲發(fā)送的數(shù)據(jù)由上位機(jī)串口發(fā)出。需要注意的是:母串口的波特率是子串口的6倍,即上位機(jī)在連續(xù)向母串口發(fā)送6個(gè)字節(jié)的時(shí)間內(nèi),子串口才能發(fā)送完一個(gè)字節(jié)。上位機(jī)向母串口發(fā)送數(shù)據(jù)的時(shí)序如圖3所示。表2列出了SP2538的操作時(shí)限要求。

表2 SP2538操作時(shí)限

時(shí)限內(nèi)容 說(shuō)   明 最  小  值 典  型  值 最  大  值 Tpwr-up 上電復(fù)位延時(shí) 150ms … … Treset 芯片指令復(fù)位時(shí)間 … … 50μs Twdt-rst 看門狗溢出復(fù)位脈沖寬度 80ms … … Taddr-in 數(shù)據(jù)接收地址保持時(shí)間 10ns … … Twake-up 芯片喚醒延時(shí) … … 9ms Taddr-hold 數(shù)據(jù)發(fā)送地址保持時(shí)間 (2/fosc-in)ms … … Twdt-over 看門狗溢出周期 800ms … …

3.2 其它說(shuō)明

母串口和所有子串口內(nèi)部均具有獨(dú)立的數(shù)據(jù)發(fā)送緩沖存儲(chǔ)器(FIFO Buffer)和接收緩沖存儲(chǔ)器(FIFO Buffer),所有的RS232串行口都支持全雙工異步傳輸模式,即所有串行口都可以同時(shí)獨(dú)立接收和發(fā)送數(shù)據(jù),且不會(huì)丟失任何數(shù)據(jù)。

母串口波特率由K1=2880 fosc-in計(jì)算,其單位為MHz,且fosc—in小于20.0Hz。在SP2538輸入時(shí)鐘fosc—in為20.0MHz時(shí),母串口可自動(dòng)適應(yīng)上位機(jī)的56000bps和57600bps兩種標(biāo)準(zhǔn)波特率輸入,即fosc—in為20.0MHz時(shí),上位機(jī)的RS232波特率可以設(shè)置成56000bps或57600bps。子串口波特率為:K2=480 fosc—in 。

母串口和所有子串口都是TTL電平接口,可直接與單片機(jī)或TTL數(shù)字電路接口,若需連接PC機(jī),則必須增加電平轉(zhuǎn)換芯片,如MAX202,ICL232等。

SP2538具有內(nèi)置的上電復(fù)位電路和可關(guān)閉的看門狗監(jiān)控電路,用于監(jiān)控上位機(jī)程序是否正常運(yùn)行,同時(shí)也可以簡(jiǎn)化上位機(jī)復(fù)位電路的設(shè)計(jì)。上位機(jī)寫命令字“0x10”可實(shí)現(xiàn)喂狗,而寫命令字“0x15”則可關(guān)閉看門狗(初次上電后,看門狗處于激活狀態(tài)),寫命令字“0x20”可激活看門狗監(jiān)控功能。

上位機(jī)可通過(guò)芯片復(fù)位指令(命令字為“0x35”)在任何時(shí)候?qū)π酒M(jìn)行指令復(fù)位(復(fù)位時(shí)間Treset小于50μs)。

圖2和圖3

    上位機(jī)可通過(guò)芯片睡眠指令(命令字為“0x55”)使芯片在任何時(shí)候進(jìn)入微功耗睡眠模式,以降低系統(tǒng)功耗。初次上電后,芯片不會(huì)自行進(jìn)入睡眠模式。應(yīng)當(dāng)注意的是,只能由上位機(jī)發(fā)送任意一個(gè)字節(jié)數(shù)據(jù)將其喚醒,而其它所有子串口均不能將其喚醒。

未使用的輸入端口(如:RX0、RX1、RX2…等)必須連接到VCC,未使用的輸出端口(如:TX0、TX1、TX2…、ADRO0、ADRO1…等)必須懸空。

4 應(yīng)用實(shí)例

SP2538的應(yīng)用領(lǐng)域包括數(shù)據(jù)采集、工業(yè)控制、儀器儀表、智能家電、醫(yī)療設(shè)備、稅控加油機(jī)、商業(yè)POS機(jī)、家庭安防控制、車輛監(jiān)控和調(diào)度、GPS衛(wèi)星定位與導(dǎo)航、有線及無(wú)線數(shù)據(jù)傳輸、基于PC機(jī)的多串口卡、水、電、氣表抄表系統(tǒng)、室外多媒體電子廣告以及其它對(duì)通信穩(wěn)定性、成本和開發(fā)周期要求比較嚴(yán)格的各種應(yīng)用和工業(yè)MODEM陣列等方面。

4.1 應(yīng)用電路

利用SP2538可將僅有一個(gè)UART串口的單片機(jī)擴(kuò)展為具有5個(gè)UART串口的單片機(jī)。圖4以常用的AT89C52單片機(jī)為例給出了相應(yīng)的串口擴(kuò)展電路。圖中,AT89C52的全雙工串口與SP2538的母串口5相連。該串口5同時(shí)也作為命令/數(shù)據(jù)口。SP2538的ADRI0、ADRI1、ADRI2分別與AT89C52的P2.3、P2.4、P2.5口相連,可用于選擇發(fā)送數(shù)據(jù)時(shí)的相應(yīng)串口0~4,ADRO0、ADRO1、ADRO2與AT89C52的P2.0、P2.1、P2.2口線相連,可用于判別接收的數(shù)據(jù)來(lái)自串口0~4的哪一個(gè)。SP2538的時(shí)鐘頻率可選為20MHz,此時(shí)母串口5的波特率為57600bps,串口0~4的波特率為9600bps。

4.2 應(yīng)用程序

下面是與上述硬件電路相關(guān)的接口程序,該程序用C51語(yǔ)言編制,程序分為上位機(jī)發(fā)送、接收中斷服務(wù)程序和主程序兩部分。

uchar idata uart0_t_but[8];?

uchar idata send_buf[8];

uchar idata uart0_r_but

uchar idata uart0_send_num

uchar idata uart_port_num,send_byte_num,uart_point-er?

bit bdata write success,uart_busy;

bit bdata uart0_receive

sbit ADRI_0=P2^0;

sbit ADRI_1=P2^1;

sbit ADRI_2=P2^2;

sbit ADRO_0=P2^3;

sbit ADRO_1=P2^4;

sbit ADRO_2=P2^5;

serial()interrupt4 using3{ //上位機(jī)RS232接收、發(fā)送中斷入口

if(RI){?

RI=0;

Switch(P2&0x07){

case

uart0_r_buf=SBUF

uart0_receive=1

break;

}

else {

TI=0;

switch(uart_pointer){

case

uart_pointer++;

if(uart0_send_num){

ADRO_0=0;

ADRO_1=0;

ADRO_2=0;

Uart0_send_num--;

SBUF=uart0_t_buf[uart0_send_num]

uart_busy=1

break;

}

elseif(uart1_send_num|uart2_send_num|uart3_send_num|uart4_send_num)

{

ADRO_0=0

ADRO_1=0

ADRO_2=0

SBUF=0x00

uart_busy=1

break;

}

else {uart_busy=0;break;}

}

注: case1:…

case2:…

case3:…

case4:…

除地址不同外其余同case0。

Void uart_send(unchar uart_port_num,uchar send_byte num){

uchar i

switch(uart_port_num)“

case

for(i=0;i<send_byte_num;i++){

uart0_t_buff[i]=send_buf[i];?

}

uart0_send_num=send_byte_num;

write_success=1;

if(uart_busy==0){

T1=1;

uart_pointer=0;

break;

}

else{break;}?

}

注: case1:…

case2:…

case3:…

case4:…

除地址不同外其余同case0。

main(){

TMOD=0x20;

THI=0xff;

TCON=0x40;

SCON=0x50;

PCON=0x80; //波特率加倍

IE=0x90;

PI=0;

while(1)“?

send_buf[0]=0x31;

write_success=0;

if(!uart0_send_num){

uart_send(0,4)

}

}

}

5 結(jié)束語(yǔ)

近年來(lái),以單片機(jī)為核心構(gòu)成的具有UART接口的智能儀器儀表及智能模塊不斷涌現(xiàn),此類產(chǎn)品可方便地與單片機(jī)構(gòu)成分布式系統(tǒng)。另一方面,系統(tǒng)中的單片機(jī)也要與上位計(jì)算機(jī)之間進(jìn)行通信,從而構(gòu)成二級(jí)分布式系統(tǒng)。SP2538的出現(xiàn)為此類多串口應(yīng)用領(lǐng)域提供了一個(gè)良好的解決方案。


【RS-232多串口擴(kuò)展器件SP2538及其應(yīng)用】相關(guān)文章:

UART多串口擴(kuò)展器SP2338DP及其應(yīng)用08-06

IrDA器件及其應(yīng)用電路設(shè)計(jì)08-06

通用異步串口擴(kuò)展芯片GM8123/25的原理和應(yīng)用08-06

TMS320C32擴(kuò)展異步串口的方法08-06

Windows下多串口的配置與使用08-06

多通道模擬監(jiān)視器件AMC7820的原理及應(yīng)用08-06

在系統(tǒng)可編程模擬器件ispPAC10及其應(yīng)用08-06

零功耗超快速CPLD器件ispMACH4000Z及其應(yīng)用08-06

DDS器件AD9858及其在雷達(dá)信號(hào)源中的應(yīng)用08-06