<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 多串口擴展器在單片機系統中的應用

多串口擴展器在單片機系統中的應用

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

1概述

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

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

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

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

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

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

12.jpg

3技術(shù)

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

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

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

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

17.jpg

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

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

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

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

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

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

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

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

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

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

4具體

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

18.jpg


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: 應用 系統 單片機 擴展 串口

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>