1. <code id="ya7qu"><span id="ya7qu"><label id="ya7qu"></label></span></code>

    <b id="ya7qu"><bdo id="ya7qu"></bdo></b>
    <wbr id="ya7qu"><optgroup id="ya7qu"><strike id="ya7qu"></strike></optgroup></wbr>
  2. <u id="ya7qu"><bdo id="ya7qu"></bdo></u>
    現在位置:范文先生網>理工論文>電子通信論文>RS-232多串口擴展器件SP2538及其應用

    RS-232多串口擴展器件SP2538及其應用

    時間:2023-02-20 23:43:30 電子通信論文 我要投稿
    • 相關推薦

    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;(范文先生網www.baimashangsha.com收集整理)

    ●典型工作電流為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)上位機接收來自母串口的數據

    上位機從母串口接收到一個字節數據后,會立即讀。樱校玻担常傅妮敵龅刂罚粒模遥希病粒模遥希埃ň幋a方式為: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。子串口波特率為:K2=480 fosc—in 。

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

    SP2538具有內置的上電復位電路和可關閉的看門狗監控電路,用于監控上位機程序是否正常運行,同時也可以簡化上位機復位電路的設計。上位機寫命令字“0x10”可實現喂狗,而寫命令字“0x15”則可關閉看門狗(初次上電后,看門狗處于激活狀態),寫命令字“0x20”可激活看門狗監控功能。

    上位機可通過芯片復位指令(命令字為“0x35”)在任何時候對芯片進行指令復位(復位時間Treset小于50μs)。

    圖2和圖3

        上位機可通過芯片睡眠指令(命令字為“0x55”)使芯片在任何時候進入微功耗睡眠模式,以降低系統功耗。初次上電后,芯片不會自行進入睡眠模式。應當注意的是,只能由上位機發送任意一個字節數據將其喚醒,而其它所有子串口均不能將其喚醒。

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

    4 應用實例

    SP2538的應用領域包括數據采集、工業控制、儀器儀表、智能家電、醫療設備、稅控加油機、商業POS機、家庭安防控制、車輛監控和調度、GPS衛星定位與導航、有線及無線數據傳輸、基于PC機的多串口卡、水、電、氣表抄表系統、室外多媒體電子廣告以及其它對通信穩定性、成本和開發周期要求比較嚴格的各種應用和工業MODEM陣列等方面。

    4.1 應用電路

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

    4.2 應用程序

    下面是與上述硬件電路相關的接口程序,該程序用C51語言編制,程序分為上位機發送、接收中斷服務程序和主程序兩部分。

    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{ //上位機RS232接收、發送中斷入口

    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 結束語

    近年來,以單片機為核心構成的具有UART接口的智能儀器儀表及智能模塊不斷涌現,此類產品可方便地與單片機構成分布式系統。另一方面,系統中的單片機也要與上位計算機之間進行通信,從而構成二級分布式系統。SP2538的出現為此類多串口應用領域提供了一個良好的解決方案。


    【RS-232多串口擴展器件SP2538及其應用】相關文章:

    UART多串口擴展器SP2338DP及其應用08-06

    IrDA器件及其應用電路設計08-06

    通用異步串口擴展芯片GM8123/25的原理和應用08-06

    TMS320C32擴展異步串口的方法08-06

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

    多通道模擬監視器件AMC7820的原理及應用08-06

    在系統可編程模擬器件ispPAC10及其應用08-06

    零功耗超快速CPLD器件ispMACH4000Z及其應用08-06

    DDS器件AD9858及其在雷達信號源中的應用08-06

    国产福利萌白酱精品tv一区_日韩亚洲中字无码一区二区三区_亚洲欧洲高清无码在线_全黄无码免费一级毛片
    1. <code id="ya7qu"><span id="ya7qu"><label id="ya7qu"></label></span></code>

      <b id="ya7qu"><bdo id="ya7qu"></bdo></b>
      <wbr id="ya7qu"><optgroup id="ya7qu"><strike id="ya7qu"></strike></optgroup></wbr>
    2. <u id="ya7qu"><bdo id="ya7qu"></bdo></u>
      色五月综合婷婷久久狠狠 | 亚洲国产高清一区二区三区 | 日本系列有码字幕中文字幕 | 亚洲精品天堂久久 | 日韩在线一级还看 | 在线人成视频色9 |