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