色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 多串口擴(kuò)展器在單片機(jī)系統(tǒng)中的應(yīng)用

          多串口擴(kuò)展器在單片機(jī)系統(tǒng)中的應(yīng)用

          作者: 時(shí)間:2012-03-26 來源:網(wǎng)絡(luò) 收藏

          1概述

          本文引用地址:http://cafeforensic.com/article/171786.htm

          近年來,具有完整的測(cè)量或控制功能的智能模塊不斷涌現(xiàn),而此類模塊均需通過RS-232S或RS-485串行口與上位或微機(jī)進(jìn)行通信,以構(gòu)成分級(jí)分布式測(cè)控,而現(xiàn)階段的大部分僅有一個(gè)UART,很難滿足既與智能模塊通信又與上位微機(jī)進(jìn)行通信的要求??v觀現(xiàn)有的方案,存在對(duì)的軟硬件資源占用較多、編程繁復(fù)、數(shù)量較少、硬件電路復(fù)雜及成本較高等缺點(diǎn),而利用UART多串口器SP2337可以很好地解決單片機(jī)多串口的擴(kuò)展問題。

          2SP2337的主要特性及引腳功能

          SP2337是采用低功耗CMOS工藝設(shè)計(jì)的UART多串口擴(kuò)展器,該器件可將一個(gè)高波特率的UART串口擴(kuò)展為三個(gè)較高波特率的UART串口,從而為需要多個(gè)串口時(shí)提供很好的解決方案,該器件的主要特性是:

          可將一個(gè)UART串口擴(kuò)展為三個(gè)UART串口;
            全雙工異步工作,四個(gè)UART串口都為全雙工異步工作模式;
            工作速率高,可達(dá)1200b/s~9600b/s(可由晶振頻率設(shè)定任意非標(biāo)準(zhǔn)波特率);
            波特率設(shè)置簡(jiǎn)單,只需更改輸入時(shí)鐘頻率;
            波特率誤差小,每個(gè)串口的數(shù)據(jù)輸出波特率誤差小于0.25%;
            接收波特率范圍寬,要求每個(gè)串口數(shù)據(jù)波特率小于2.5%;
            數(shù)據(jù)傳輸誤碼率極低,小于10-9(接收的數(shù)據(jù)波特率誤差小于2%);
            具有節(jié)電模式,進(jìn)入節(jié)電模式后,典型靜態(tài)電流為0.5μA;
          可自動(dòng)喚醒,任意串口的接收端有數(shù)據(jù)出現(xiàn)時(shí)自動(dòng)喚醒;
            寬工作電源電壓(2.4V~5.5V);
            低工作電流,典型工作電流為4.4mA。

          該器件具有DIP型、SOIC型和SSOP型多種封裝形式。引腳排列如圖1所示。引腳功能見表1。

          12.jpg

          3技術(shù)

          在使用SP2337時(shí)應(yīng)遵循許多原則。

          SP2337適用于串行數(shù)據(jù)為7位的領(lǐng)域。

          串口0—串口2為三個(gè)較高波特率的串口(子串口)。

          串口3為高波特率串口(母串口),它的數(shù)據(jù)傳輸速率是子串口的4倍。如當(dāng)輸入時(shí)鐘頻率fos,cin為10MHz,串口3的波特率為19200b/s。串口0—2的波特率為19200b/s/4=4800b/s;如果需要在串口0—串口2上獲得波特率K,則需按以下公式改變時(shí)鐘頻率。

          17.jpg

          ADRI1、ADRI0為下行地址線,ADRI1ADRI0=00、01、10時(shí),分別對(duì)應(yīng)子串口0,1,2,ADR1ADR0=11時(shí)為串口3的地址,同時(shí),它也是SP2337的命令/數(shù)據(jù)口地址。

          ADRO1、ADRO0為上行數(shù)據(jù)的串口地址線,ADRO1ADRO0=00、01、10時(shí)分別對(duì)應(yīng)子串口0、1、2,當(dāng)上位機(jī)的UART接收到由串口3發(fā)送的數(shù)據(jù)時(shí),立即讀取地址線ADRO1和ADRO0的狀態(tài),根據(jù)ADRO1和ADRO0的狀態(tài)判斷數(shù)據(jù)由哪個(gè)串口發(fā)送。

          喚醒條件為向串口0—串口3的任意一個(gè)數(shù)據(jù)接收端口寫入一個(gè)字節(jié)數(shù)據(jù)。由于SP2337的喚醒時(shí)間為25ms左右,故用于芯片喚醒的數(shù)據(jù)將不能夠被正確接收,因此,應(yīng)采用下面的芯片喚醒流程:先發(fā)送一個(gè)字節(jié)數(shù)據(jù),用于喚醒芯片,延時(shí)25ms后再發(fā)送有效的數(shù)據(jù)。

          為了快速可靠地傳輸批量數(shù)據(jù),可以采用下面的方法實(shí)現(xiàn)數(shù)據(jù)快速可靠接收、發(fā)送。

          如上位機(jī)只需要向一個(gè)串口發(fā)送數(shù)據(jù),則可向該串口發(fā)送完一個(gè)字節(jié)數(shù)據(jù),再向地址11(串口3的地址)連續(xù)發(fā)送四個(gè)字節(jié)“0X00”,其后再向需要發(fā)送數(shù)據(jù)的串口發(fā)送一個(gè)字節(jié)數(shù)據(jù)。再向串口3發(fā)送四個(gè)字節(jié)“0X00”,按此方式循環(huán)發(fā)送即可。

          如果上位機(jī)需向兩個(gè)串口分別發(fā)送兩個(gè)數(shù)據(jù)塊,則可分別向兩個(gè)相應(yīng)的子串口發(fā)送一個(gè)字節(jié)的數(shù)據(jù)后再向串口3發(fā)送四個(gè)字節(jié)的“0X00”,再分別將兩個(gè)數(shù)據(jù)塊的下一個(gè)字節(jié)發(fā)送到兩個(gè)子串口。

          如果上位機(jī)有三個(gè)數(shù)據(jù)塊需要分別向三個(gè)子串口發(fā)送,則可先向三個(gè)子串口分別發(fā)送一個(gè)字節(jié)的有效數(shù)據(jù),再向串口3發(fā)送兩個(gè)字節(jié)的“0X00”,再循環(huán)向3個(gè)子串口發(fā)送有效的數(shù)據(jù)。

          注意寫入串口3用于延時(shí)的數(shù)據(jù)只能是“0X00”,如果寫入其他數(shù)據(jù),將產(chǎn)生不可預(yù)料的結(jié)果。

          SP2337數(shù)據(jù)發(fā)送過程如下:如果上位機(jī)需要將數(shù)據(jù)“0X28”由串口2發(fā)送出去,則需先將ADRI1置為“1”,ADRI0置為“0”,再將數(shù)據(jù)“0X28”通過上位機(jī)的UART口發(fā)送到串口3。

          SP2337可執(zhí)行的命令僅有兩條即復(fù)位和睡眠命令。當(dāng)上位機(jī)通過串口3(地址為“11”)寫入數(shù)據(jù)“0X35”或“0XB5”時(shí),則芯片執(zhí)行軟件復(fù)位,復(fù)位時(shí)間約為21.75ms,當(dāng)寫入的數(shù)據(jù)為“0X55”或“0XD5”時(shí),則芯片進(jìn)入睡眠狀態(tài)。

          4具體

          利用SP2337可將僅具有一個(gè)UART串口的單片機(jī)擴(kuò)展為具有3個(gè)UART串口的單片機(jī)。下面以常用的AT89C51單片機(jī)為例給出相應(yīng)的串口擴(kuò)展電路,如圖2所示。

          18.jpg


          上一頁 1 2 3 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉