資源描述:
《uart多串口擴展器sp2338dp及其應用》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在學術論文-天天文庫。
1、UART多串口擴展器SP2338DP及其應用
2、第1摘要:SP2338DP是一種新穎的串口擴展器,可將一個高波特率的UART擴展為3個,解決了普通單片機UART串口太少的問題。文中給出該器件的主要特性、引腳說明及應用說明,并以AT89C52單片機為例給出多串口擴展應用電路及相應軟件。關鍵詞:UART串口擴展單片機1概述當前,以單片機為核心構成的智能化測控系統(tǒng)及電子產(chǎn)品不斷涌現(xiàn),為了滿足數(shù)字化及智能化要求,許多外圍電路功能模塊、部件、器件及傳感器也具備了UART串口通信功能。而現(xiàn)階段的8位、16位、32位單片機卻大部分僅提供一個UART串口,這樣就很難滿足系統(tǒng)中一
3、方面要與具有UART功能的串口部件通信,另一方面又要與上位機通信的要求。利用SP2338DP多串口擴展器,可很好地解決此問題。2工作特性SP2338DP是采用低功耗CMOS工藝設計的UART多串口擴展芯片。該器件可將一個高波特率的UART串口擴展為3個較高波特率的UART串口,從而為系統(tǒng)需要多個串口時提供了很好的解決方案。該器件的主要特性如下:*可將1個UART串口擴展為3個UART串口。*全雙工異步工作:4個UART串口都為全雙工異步工作模式。*高工作速度:1200~9600b/s(可由晶振頻率設定任意非標準波特率)。*波特率設置簡單:不需軟件設置,只需更改
4、輸入時鐘頻率即可。*波特率誤差小:每個串口的數(shù)據(jù)輸出波特率誤差小于0.25%。*接收波特率范圍寬:要求每個串口數(shù)據(jù)波特率小于2.5%即可。*數(shù)據(jù)傳輸誤碼率極低:小于10-9(接收的數(shù)據(jù)波特率誤差小于2%時)。*具有節(jié)電模式:進入節(jié)電模式后典型靜態(tài)電流為0.5μA。*可自動喚醒:任意串口的接收端有數(shù)據(jù)出現(xiàn)時自動喚醒。*寬工作電源電壓:2.4~5.5V。*低工作電流:典型工作電流為4.4mA。3封裝及引腳說明該器件具有DIP、SOIC和SSOP多種封裝形式。下面以DIP封裝形式為例,給出元件的封裝及引腳排列,如圖1所示。引腳功能及說明見表1。表1SP2338DIP
5、引腳功能名稱編號類型描述ADRI018I串口3接收數(shù)據(jù)地址線0ADRI117I串口3接收數(shù)據(jù)地址線1ADRO01O串口3發(fā)送數(shù)據(jù)地址線0ADRO12O串口3發(fā)送數(shù)據(jù)地址線1RX08I串口0數(shù)據(jù)接收TX09O串口0數(shù)據(jù)發(fā)送RX111I串口1數(shù)據(jù)接收TX110O串口1數(shù)據(jù)發(fā)送RX213I串口2數(shù)據(jù)接收TX212O串口2數(shù)據(jù)發(fā)送RX36I串口3數(shù)據(jù)接收TX37O串口3數(shù)據(jù)發(fā)送OSCI16I時鐘輸入OSCO15O時鐘輸出VCC3,4,14-正電源GND5-地4應用說明SP2338DP在使用時應遵循以下原則:①SP2338DP適用于串行數(shù)據(jù)為8位的應用領域(如數(shù)據(jù)位7為
6、位,可選用SP2337DP器件);②串口0~2為較高波特率的串口(子串口)。③串口3為高波特率串口(母串口),它的數(shù)據(jù)傳輸速率是子串口的4倍。如輸入時鐘頻率foscin為10MHz,則串口3的波特率為19200bps,串口0~2的波特率為19200bps/4=4800bps;如果需要在串口0~2上獲得波特率K,則需按以下公式改變時鐘頻率即可。K=4800×foscin/10(bps)其中foscin≤20MHz④ADRI1、ADR10為下行地址線,ADRI1、ADRI0=00、01、10時,分別對應子串口0、1、2、ADR1、ADR0=11時,為串口3的地址;
7、同時,它也是SP2338DP的命令/數(shù)據(jù)口地址。⑤ADRO1、ADRO0為上行數(shù)據(jù)的串口地址線,ADRO1、ADRO0=00、01、10時,分別對應子串口0、1、2。當上位機UART接收到由串口3發(fā)送來的數(shù)據(jù)時,立即讀取地址線ADRO1和ADRO0的狀態(tài)。根據(jù)ADRO1和ADRO0的狀態(tài)即可判斷出數(shù)據(jù)是由哪個串口發(fā)送來的。⑥芯片喚醒條件為:向串口0~串口3的任意一個數(shù)據(jù)接收端口寫入1個字節(jié)數(shù)據(jù)。由于SP2338DP的喚醒時間為25ms左右,故用于芯片喚醒的數(shù)據(jù)將不能被正確接收,因此應采用下面的芯片喚醒流程;先發(fā)送1個字節(jié)數(shù)據(jù),用于喚醒芯片,延時25ms后再發(fā)送
8、有效的數(shù)據(jù)。⑦為了快速可靠地傳輸批量數(shù)據(jù),可以采用下面的方法,實現(xiàn)數(shù)據(jù)快速可靠的接收、發(fā)送。如上位機只需要向一個串口發(fā)送數(shù)據(jù),則可向該串口發(fā)送完1個字節(jié)數(shù)據(jù)后再向地址11(串口3的地址)連續(xù)發(fā)送4個字節(jié)“0X00”。其后向需要發(fā)送數(shù)據(jù)的串口發(fā)送1個字節(jié)數(shù)據(jù),再向串口3發(fā)送4個字節(jié)“0X00”,按此方式循環(huán)發(fā)送即可。如果此位同需向兩個串口分別發(fā)送兩個數(shù)據(jù)塊,則可分別向兩個相應的子串口發(fā)送1個字節(jié)的數(shù)據(jù)后再向串口3發(fā)送4個字節(jié)的“0X00”,然后分別將兩個數(shù)據(jù)塊的下一個字節(jié)發(fā)送到兩個子串口上。如果上位機有3個數(shù)據(jù)塊需要分別向3個子串口發(fā)送,則可先向3個子串口分別發(fā)
9、送1個字節(jié)的有效數(shù)據(jù)后再向串口3發(fā)送2