新型多總線在嵌入式系統(tǒng)設(shè)計中的應(yīng)用
摘要:本文介紹了專為嵌入式系統(tǒng)設(shè)計的VK32系列新型多總線接口通用異步串行收發(fā)接器(UART)器件的原理以及在稅控POS、遠(yuǎn)程自動抄表系統(tǒng)、嵌入式車載信息平臺和串口服務(wù)器中的應(yīng)用技術(shù)。
本文引用地址:http://www.ex-cimer.com/article/149651.htmUART產(chǎn)生于上個世紀(jì)70年代,是第一塊大規(guī)模集成電路。1981年的推出的IBM PC采用了8250 UART與外設(shè)進(jìn)行數(shù)據(jù)通信,直到上個世紀(jì)末,UART一直是PC中最主要的串行通信接口。隨著高速串行總線USB的出現(xiàn),USB以其諸多的優(yōu)點(diǎn)取代了UART成為個人電腦中應(yīng)用最廣泛的串行接口。
而在嵌入式領(lǐng)域,由于UART具有操作簡單、工作可靠、抗干擾強(qiáng)、傳輸距離遠(yuǎn)(組成485網(wǎng)絡(luò)可以傳輸1,200米以上),設(shè)計人員普遍認(rèn)為UART是從CPU或微控制器向系統(tǒng)的其他部分傳輸數(shù)據(jù)的最佳方式,因此它們被大量地應(yīng)用在工業(yè)、通信和家電控制等嵌入式領(lǐng)域。通常MCU/CPU都會自帶一個UART串口,但實(shí)際應(yīng)用中一個串口往往不夠用,需要進(jìn)行UART串口擴(kuò)展。
圖1
截止到目前,全球范圍內(nèi)有超過40種UART器件可以選擇,大多數(shù)UART器件是以計算機(jī)總線轉(zhuǎn)換UART為應(yīng)用基礎(chǔ)的,其通用性、管腳、寄存器與20年前很少改變。針對嵌入式應(yīng)用,目前的UART器件普遍存在操作復(fù)雜、引腳多、價格昂貴等弱點(diǎn),不能滿足和適應(yīng)的嵌入式系統(tǒng)的需要。
VK系列UART器件
維肯公司針對嵌入式系統(tǒng)中UART的發(fā)展趨勢,設(shè)計推出了VK32xx系列新型多總線接口UART器件,其特點(diǎn)為:
1. 支持8位并行總線、SPI總線、UART等多種主機(jī)總線接口。其中,8位并行總線接口產(chǎn)品可以替代目前廣泛使用的16C55x系列UART用于為8位、16位、32位MCU進(jìn)行UART串口擴(kuò)展。VK32系列8位并行總線接口UART產(chǎn)品采用了精簡控制寄存器設(shè)計,并通過管腳復(fù)用減少了芯片管腳,簡化的軟件設(shè)計和PCB設(shè)計都更適合嵌入式系統(tǒng)需求。
SPI接口總線系列產(chǎn)品為帶有SPI接口的DSP、MCU實(shí)現(xiàn)同步SPI串口到異步UART串口的橋接和擴(kuò)展,尤其針對目前廣泛應(yīng)用的DSP系統(tǒng),大多數(shù)DSP都只有同步串口,只能用于與具有同步通信接口的外設(shè)進(jìn)行通信。VK32系列SPI總線接口產(chǎn)品可以將一個SPI同步串行接口橋接/擴(kuò)展成為1~4個通用異步串口,方便實(shí)現(xiàn)DSP和外設(shè)的異步串行通信。
UART接口產(chǎn)品創(chuàng)新地實(shí)現(xiàn)了將一個標(biāo)準(zhǔn)3線UART擴(kuò)展成為2~4個增強(qiáng)功能UART。芯片內(nèi)置的UART擴(kuò)展協(xié)議處理邏輯,無需其它的地址信號和控制信號線就可以實(shí)現(xiàn)多個獨(dú)立配置的全雙工串口擴(kuò)展,為需要擴(kuò)展串口的嵌入式系統(tǒng)提供了一個最簡潔的解決方案。
圖2 VK32系列產(chǎn)品在嵌入式稅控POS平臺設(shè)計中的應(yīng)用
2. 支持高速傳輸。每個子波特率可以獨(dú)立設(shè)置子串口最高通信速度可以達(dá)到920kbps(5V工作電壓),主機(jī)支持的SPI總線最高傳輸速率為4Mbps,主機(jī)8位并行總線的最高傳輸速率為10Mbps。
3. 寬工作電壓和低功耗設(shè)計??紤]到目前嵌入式領(lǐng)域中新型的DSP/FPGA的工作電壓大多為2.5V,而大量的工業(yè)控制領(lǐng)域的MCU仍然需要在5V電壓下工作,VK32系列UART設(shè)計的工作電壓范圍為2.5V~5.5V。同時,該系列芯片可以工作在自動休眠和喚醒模式下,有效地降低功耗。
4. 完善的FIFO功能。每個通道獨(dú)立的16級接收和發(fā)送FIFO,每個FIFO有4個可編程觸發(fā)點(diǎn)設(shè)置。完善的FIFO功能可以進(jìn)行發(fā)送/接收的數(shù)據(jù)緩沖,減少DSP/CPU對數(shù)據(jù)傳輸?shù)牟僮?,提高CPU/DSP的效率和數(shù)據(jù)傳輸?shù)目煽啃浴?/p>
5. 子串口通道具備軟件或硬件自動流量控制,滿足高速數(shù)據(jù)傳輸中流量控制的需要。
6. 子串口具備可編程的硬件RS-485自動控制功能和自動9位網(wǎng)絡(luò)地址識別功能,大大降低處理器的負(fù)擔(dān),尤其適用于工業(yè)RS-485組網(wǎng)。
7. 每個通道具備獨(dú)立可控的數(shù)據(jù)廣播接收功能,可以應(yīng)用于需要數(shù)據(jù)廣播傳輸和控制的嵌入式系統(tǒng)中。
8. 所有UART(包括UART主接口和子通道UART)都支持IrDA紅外通信。
VK系列UART器件的原理及框圖
VK3200是VK32系列*能最全的型號,本文以VK3200的原理圖為基礎(chǔ),對VK32系列UART芯片原理進(jìn)行介紹。VK3200內(nèi)部結(jié)構(gòu)包括主機(jī)接口、子通道部分、MODEM控制邏輯、中斷控制邏輯幾部分。主機(jī)接口為VK3200與CPU/DSP相連的接口,通過M1、MO模式選擇信號線,可以分別選擇8位并行總線、SPI總線和UART三種接口與主機(jī)相連;MODEM控制邏輯用于與MODEM相連時的狀態(tài)信號線的監(jiān)控和控制;中斷控制邏輯用于產(chǎn)生和控制各種內(nèi)部中斷。
時鐘發(fā)生器為芯片提供時鐘,可以用CLKSEL引線選擇從晶振還是外部時鐘源獲取時鐘。子通道邏輯部分處理各個的數(shù)據(jù)接收和發(fā)送。數(shù)據(jù)發(fā)送的處理過程為:主機(jī)接口將從主口總線發(fā)送來的數(shù)據(jù)進(jìn)行處理后傳送到相應(yīng)的子通道FIFO,F(xiàn)IFO里的數(shù)據(jù)經(jīng)過流量控制邏輯后,在波特率發(fā)生器的作用下,通過發(fā)送移位寄存器順次將數(shù)據(jù)發(fā)送到TX串行輸出信號線上,接收數(shù)據(jù)與此正好相反。子通道處理模塊中,控制寄存器用于對各個子通道進(jìn)行設(shè)置,IR編解碼器用于對紅外信號進(jìn)行編解碼,子通道流量控制器用于子通道傳輸數(shù)據(jù)時的自動流量控制。
在嵌入式系統(tǒng)中的應(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/銀行終端等金融機(jī)具,DSP數(shù)據(jù)采集和傳輸系統(tǒng)等。其應(yīng)用實(shí)例如下:
1. 在稅控POS中的應(yīng)用
稅控POS機(jī)是一個控制密集形的嵌入式系統(tǒng),需要控制大量外設(shè)。其基本配置要求的串口打印機(jī)、MODEM、RS-485網(wǎng)絡(luò)接口,以及稅控IC卡(異步卡)都工作在基于UART的串行通信方式。同時,大量的外設(shè)如密碼鍵盤、條碼掃描器、條碼稱、接觸IC卡/非接觸IC卡讀卡器、磁卡讀卡器、串口顯示屏等設(shè)備都是通過RS-232串口與POS機(jī)相連。
采用VK32xx系列UART器件可以根據(jù)MCU/CPU的接口特性,選擇SPI/8位并行總線/UART進(jìn)行靈活的UART串口擴(kuò)展。該方案與采用目前GPIO來模擬串口的方案相比,占用CPU的I/O和資源都很少,即使普通的8位MCU也可以勝任。同時,擴(kuò)展的子串口都是標(biāo)準(zhǔn)的硬件UART,使得數(shù)據(jù)傳輸也更加可靠。
2. 在遠(yuǎn)程自動抄表系統(tǒng)中的應(yīng)用
如圖3所示,遠(yuǎn)傳自動抄表系統(tǒng)由遠(yuǎn)傳表和集中抄表器以及MODEM等部分組成。
圖3 VK32系列產(chǎn)品在遠(yuǎn)程自動抄表系統(tǒng)設(shè)計中的應(yīng)用
在遠(yuǎn)傳表中,應(yīng)用VK3212雙串口擴(kuò)展IC將單片機(jī)的一個UART擴(kuò)展成兩個UART,擴(kuò)展出來的兩個串口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將擴(kuò)展出4個子串口UART,MCU通過SPI總線與VK3234相連。VK3234的子串口UART設(shè)置為RS-485自動收發(fā)模式,每個子通道UART控制的RS-485/MBUS收發(fā)器通過RS-485/M-BUS總線連接最多250個遠(yuǎn)傳表。一個基于VK3234的集中抄表器可以實(shí)現(xiàn)最多1,000個遠(yuǎn)傳表的數(shù)據(jù)讀取。
由于是通過SPI接口擴(kuò)展的串口,集中抄表器單片機(jī)自身的串口可以連接PSTN/GSM MODEM將集抄數(shù)據(jù)傳給遠(yuǎn)程服務(wù)器。
3. 在嵌入式車載信息平臺中的應(yīng)用
VK3233主接口有SPI和UART兩種接口可以選擇。嵌入式平臺中的DSP/CPU通過SPI/UART接口與VK3233相連,VK3233擴(kuò)展出來的三個子串口分別連接GPS模塊、倒車?yán)走_(dá)模塊和GSM/CDMA模塊,MODEM控制線連接GSM/CDMA MODEM。整個嵌入式系統(tǒng)共用一個顯示設(shè)備,有效地節(jié)省了車內(nèi)有限的空間。
圖4 VK3233在嵌入式車載信息平臺設(shè)計中的應(yīng)用
4. 在串口服務(wù)器中的應(yīng)用
在工業(yè)控制等領(lǐng)域,眾多設(shè)備的對外通訊接口仍然是低速串口。串口服務(wù)器將多個串口設(shè)備的數(shù)據(jù)存儲、轉(zhuǎn)換以后通過IP網(wǎng)進(jìn)行傳輸。
圖5顯示了一個8串口服務(wù)器(4個RS-232串口、4個RS485串口)的電路原理圖,嵌入式系統(tǒng)中的DSP/CPU的并行位數(shù)據(jù)線連接2片VK3266實(shí)現(xiàn)了8個串口的擴(kuò)展,通過地址譯碼器控制2片VK3266的CS實(shí)現(xiàn)片選控制。在上圖中,VK3266 A連接4個RS-232收發(fā)器,擴(kuò)展出了4個帶硬件流量控制信號的RS-232串口;VK3266B則連接了4個RS-485收發(fā)器,將VK3266設(shè)置在RS-458自動收發(fā)控制模式下,通過RTS信號控制RS-485收發(fā)器的數(shù)據(jù)發(fā)送使能DE和數(shù)據(jù)讀取使能RD信號,能實(shí)現(xiàn)RS-485的自動收發(fā)控制。
圖5 VK3266在串口服務(wù)器設(shè)計中的應(yīng)用
選型參考和設(shè)計建議
1. 選型參考
VK32系列UART包括5個產(chǎn)品系列,各個產(chǎn)品系列的特點(diǎn)如下:
VK321x系列為主接口為UART的產(chǎn)品,僅通過RX,TX和GND三根信號線與主機(jī)相連,通過芯片內(nèi)部的處理協(xié)議采用時分復(fù)用的方式將一個串口擴(kuò)展成為2~4個可以同時工作的全雙工串口。在該模式下,MCU以查詢方式操作UART器件,設(shè)計中需要注意的是為保證在時分復(fù)用下各個子通道能夠同時全雙工通信,主接口的波特率需要設(shè)置為大于各個子串口波特率之和。VK321x產(chǎn)品適用于對通信速度要求不高,需要設(shè)計可靠簡單的嵌入式產(chǎn)品。
VK322x系列產(chǎn)品的主接口為SPI同步傳行總線,最高傳輸速度為4Mbps。適合于帶SPI接口的MCU/DSP擴(kuò)展異步串口。大多數(shù)DSP都只有同步串口,通過SPI接口實(shí)現(xiàn)異步串口的橋接和擴(kuò)展,可以簡化并行總線擴(kuò)展串口的硬件規(guī)模和模擬異步串口的軟件開銷。
VK323x系列產(chǎn)品同時具備SPI和UART兩種可以選擇的主接口,擴(kuò)展子串口具備硬件流量控制和RS-485自動收發(fā)功能,尤其適合于需要高可靠數(shù)據(jù)傳輸?shù)腞S-485總線應(yīng)用。
VK325x產(chǎn)品為8位并行總線接口的UART器件,VK326x為同時具備3種可選主機(jī)接口的UART器件。這兩個器件應(yīng)用于需要減少備貨種類,需要進(jìn)行大量數(shù)據(jù)傳輸?shù)膽?yīng)用。
2. 設(shè)計建議
異步IC卡的接口設(shè)計。遵從7816-3的異步IC卡為半雙工異步通信接口。在實(shí)際應(yīng)用中,可以將子串口的RX和TX短接后直接與IC卡的I/O信號連接,為可靠起見,也可以通過連接7407來驅(qū)動IC卡的I/O信號。
MODEM接口的設(shè)計。目前的PSTN/GPRS/CDMA/GSM MODEM支持三線串口(TX、RX、GND)通過AT命令操作。但實(shí)際應(yīng)用中,僅僅使用三線串口容易丟包,造成數(shù)據(jù)重發(fā),使得上傳速度變慢,建議使用VK32系列中帶MODEM接口的UART器件,用DSR、DTR、RI和DCD來監(jiān)控MODEM狀態(tài),用RTS和CTS來做流控,這樣速度可以達(dá)到最高。
RS-485總線的設(shè)計。RS-485是目前工業(yè)領(lǐng)域應(yīng)用最廣的半雙工通信系統(tǒng)。直接用MCU對RX485進(jìn)行控制,有一些細(xì)節(jié)難于處理:通過MCU的I/O對485收發(fā)控制,在系統(tǒng)復(fù)位時,I/O可能使485收發(fā)器處在發(fā)送狀態(tài),造成總線上正在進(jìn)行的通信失效;在數(shù)據(jù)收發(fā)切換中,一般依靠發(fā)送緩沖的狀態(tài)來控制MCU的I/O對收發(fā)切換,而此時最后一個字節(jié)可能還在移位寄存器中,會造成少發(fā)送一個字節(jié)的情況;同時,當(dāng)RS485總線上有大量數(shù)據(jù)進(jìn)行傳送時,MCU不得不花大量的資源去判斷該數(shù)據(jù)是否是發(fā)送給本機(jī)的,造成工作效率低。針對這些問題,建議用戶在需要用到RS-485時,選用帶有RS-485自動收發(fā)控制和9位網(wǎng)絡(luò)自動識別的器件。
VK32系列UART器件可以工作在自動RS-485模式下:復(fù)位時,RTS處于接收狀態(tài),只有在數(shù)據(jù)發(fā)送時,RTS才工作在發(fā)送狀態(tài),當(dāng)最后一位數(shù)據(jù)從移位寄存器中發(fā)送完成后,RTS自動轉(zhuǎn)為接收狀態(tài)。同時,VK32系列的UART支持9位網(wǎng)絡(luò)地址自動識別,僅當(dāng)RS-485總線上的地址與UART設(shè)定的RS-485網(wǎng)絡(luò)地址一致時,才產(chǎn)生中斷,可以使MCU從大量的與自己無關(guān)的數(shù)據(jù)處理中解脫出來,提高系統(tǒng)的處理能力。
無鉛化是半導(dǎo)體行業(yè)勢不可擋的趨勢,VK32系列UART產(chǎn)品全部實(shí)現(xiàn)無鉛化封裝,在回流焊時需要注意焊接溫度滿足相應(yīng)的溫度要求。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)pos機(jī)相關(guān)文章:pos機(jī)原理
評論