<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 多總線UART芯片在嵌入式系統(tǒng)設(shè)計中的應(yīng)用

          多總線UART芯片在嵌入式系統(tǒng)設(shè)計中的應(yīng)用

          作者: 時間:2012-09-22 來源:網(wǎng)絡(luò) 收藏

          中的應(yīng)用

            VK系列UART器件的在嵌入式產(chǎn)品中的應(yīng)用領(lǐng)域包括:多串口服務(wù)器/多串口卡,工業(yè)/自動化現(xiàn)場RS-485控制,使用CDMA/GPRS MODEM的無線數(shù)據(jù)傳輸,車載信息平臺/車載GPS定位系統(tǒng),遠(yuǎn)傳自動抄表(AMR)系統(tǒng),稅控POS/銀行終端等金融機具,DSP數(shù)據(jù)采集和傳輸系統(tǒng)等。其應(yīng)用實例如下:

            1. 在稅控POS中的應(yīng)用

            稅控POS機是一個控制密集形的,需要控制大量外設(shè)。其基本配置要求的串口打印機、MODEM、RS-485網(wǎng)絡(luò)接口,以及稅控IC卡(異步卡)都工作在基于UART的串行通信方式。同時,大量的外設(shè)如密碼鍵盤、條碼掃描器、條碼稱、接觸IC卡/非接觸IC卡讀卡器、磁卡讀卡器、串口顯示屏等設(shè)備都是通過RS-232串口與POS機相連。

            采用VK32xx系列UART器件可以根據(jù)MCU/CPU的接口特性,選擇SPI/8位并行總線/UART進行靈活的UART串口擴展。該方案與采用目前GPIO來模擬串口的方案相比,占用CPU的I/O和資源都很少,即使普通的8位MCU也可以勝任。同時,擴展的子串口都是標(biāo)準(zhǔn)的硬件UART,使得數(shù)據(jù)傳輸也更加可靠。


            
            2. 在遠(yuǎn)程自動抄表系統(tǒng)中的應(yīng)用

            如圖3所示,遠(yuǎn)傳自動抄表系統(tǒng)由遠(yuǎn)傳表和集中抄表器以及MODEM等部分組成。

            在遠(yuǎn)傳表中,應(yīng)用VK3212雙串口擴展IC將單片機的一個UART擴展成兩個UART,擴展出來的兩個串口UART1和UART2分別接RS-485/M-BUS接口和紅外接口。VK3212的UART1設(shè)置為RS-485自動收發(fā)和RS-485網(wǎng)絡(luò)模式,可以無需MCU的控制,自動完成RS-485/M-BUS的數(shù)據(jù)自動收發(fā)和自動網(wǎng)絡(luò)地址識別。VK3212的UART2設(shè)置為紅外模式,用于連接遠(yuǎn)傳表的紅外設(shè)置窗口。

            在集中抄表器中,用一片SPI接口的4通道UART器件VK3234將擴展出4個子串口UART,MCU通過SPI總線與VK3234相連。VK3234的子串口UART設(shè)置為RS-485自動收發(fā)模式,每個子通道UART控制的RS-485/MBUS收發(fā)器通過RS-485/M-BUS總線連接最多250個遠(yuǎn)傳表。一個基于VK3234的集中抄表器可以實現(xiàn)最多1,000個遠(yuǎn)傳表的數(shù)據(jù)讀取。

            由于是通過SPI接口擴展的串口,集中抄表器單片機自身的串口可以連接PSTN/GSM MODEM將集抄數(shù)據(jù)傳給遠(yuǎn)程服務(wù)器。

            3. 在嵌入式車載信息平臺中的應(yīng)用

            VK3233主接口有SPI和UART兩種接口可以選擇。嵌入式平臺中的DSP/CPU通過SPI/UART接口與VK3233相連,VK3233擴展出來的三個子串口分別連接GPS模塊、倒車?yán)走_模塊和GSM/CDMA模塊,MODEM控制線連接GSM/CDMA MODEM。整個共用一個顯示設(shè)備,有效地節(jié)省了車內(nèi)有限的空間。

            4. 在串口服務(wù)器中的應(yīng)用

            在工業(yè)控制等領(lǐng)域,眾多設(shè)備的對外通訊接口仍然是低速串口。串口服務(wù)器將多個串口設(shè)備的數(shù)據(jù)存儲、轉(zhuǎn)換以后通過IP網(wǎng)進行傳輸。

            圖5顯示了一個8串口服務(wù)器(4個RS-232串口、4個RS485串口)的電路原理圖,嵌入式系統(tǒng)中的DSP/CPU的并行位數(shù)據(jù)線連接2片VK3266實現(xiàn)了8個串口的擴展,通過地址譯碼器控制2片VK3266的CS實現(xiàn)片選控制。在上圖中,VK3266 A連接4個RS-232收發(fā)器,擴展出了4個帶硬件流量控制信號的RS-232串口;VK3266B則連接了4個RS-485收發(fā)器,將VK3266設(shè)置在RS-458自動收發(fā)控制模式下,通過RTS信號控制RS-485收發(fā)器的數(shù)據(jù)發(fā)送使能DE和數(shù)據(jù)讀取使能RD信號,能實現(xiàn)RS-485的自動收發(fā)控制。


          選型參考和設(shè)計建議

            1. 選型參考

            VK32系列UART包括5個產(chǎn)品系列,各個產(chǎn)品系列的特點如下:

            VK321x系列為主接口為UART的產(chǎn)品,僅通過RX,TX和GND三根信號線與主機相連,通過芯片內(nèi)部的處理協(xié)議采用時分復(fù)用的方式將一個串口擴展成為2~4個可以同時工作的全雙工串口。在該模式下,MCU以查詢方式操作UART器件,設(shè)計中需要注意的是為保證在時分復(fù)用下各個子通道能夠同時全雙工通信,主接口的波特率需要設(shè)置為大于各個子串口波特率之和。VK321x產(chǎn)品適用于對通信速度要求不高,需要設(shè)計可靠簡單的嵌入式產(chǎn)品。

            VK322x系列產(chǎn)品的主接口為SPI同步傳行總線,最高傳輸速度為4Mbps。適合于帶SPI接口的MCU/DSP擴展異步串口。大多數(shù)DSP都只有同步串口,通過SPI接口實現(xiàn)異步串口的橋接和擴展,可以簡化并行總線擴展串口的硬件規(guī)模和模擬異步串口的軟件開銷。
            
            VK323x系列產(chǎn)品同時具備SPI和UART兩種可以選擇的主接口,擴展子串口具備硬件流量控制和RS-485自動收發(fā)功能,尤其適合于需要高可靠數(shù)據(jù)傳輸?shù)腞S-485總線應(yīng)用。

            VK325x產(chǎn)品為8位并行總線接口的UART器件,VK326x為同時具備3種可選主機接口的UART器件。這兩個器件應(yīng)用于需要減少備貨種類,需要進行大量數(shù)據(jù)傳輸?shù)膽?yīng)用。

            2. 設(shè)計建議

            異步IC卡的接口設(shè)計。遵從7816-3的異步IC卡為半雙工異步通信接口。在實際應(yīng)用中,可以將子串口的RX和TX短接后直接與IC卡的I/O信號連接,為可靠起見,也可以通過連接7407來驅(qū)動IC卡的I/O信號。

            MODEM接口的設(shè)計。目前的PSTN/GPRS/CDMA/GSM MODEM支持三線串口(TX、RX、GND)通過AT命令操作。但實際應(yīng)用中,僅僅使用三線串口容易丟包,造成數(shù)據(jù)重發(fā),使得上傳速度變慢,建議使用VK32系列中帶MODEM接口的UART器件,用DSR、DTR、RI和DCD來監(jiān)控MODEM狀態(tài),用RTS和CTS來做流控,這樣速度可以達到最高。



          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();