VK32系列多總線UART串口擴展芯片的原理和應用
摘 要:UART以其簡單可靠,抗干擾強,傳輸距離遠,組網(wǎng)方便,被認為是嵌入式系統(tǒng)中進行串行數(shù)據(jù)傳輸?shù)淖罴逊绞健1疚慕榻B了專為嵌入式系統(tǒng)設計的VK32系列新型多總線接口UART器件的原理及應用技術(shù)。
1.嵌入式系統(tǒng)中串口擴展的需求:
而在嵌入式領(lǐng)域,由于UART具有操作簡單,工作可靠,抗干擾強,傳輸距離遠(組成485網(wǎng)絡可以傳輸1200米以上),設計人員普遍認為UART是從CPU或微控制器向系統(tǒng)的其他部分傳輸數(shù)據(jù)的最佳方式,因此它們被大量地應用在工業(yè)、通信、和家電控制等嵌入式領(lǐng)域。通常MCU/CPU都會自帶一個UART串口,但實際應用中一個串口往往不夠用,需要進行UART串口擴展。
目前的大多數(shù)UART器件是以計算機總線轉(zhuǎn)換UART為應用基礎的,其通用性、管腳、寄存器與20年前很少改變,針對嵌入式應用,目前的UART器件普遍存在操作復雜,引腳多,價格較高等弱點,不能滿足和適應的嵌入式系統(tǒng)發(fā)展的需要。
針對嵌入式系統(tǒng)中UART的發(fā)展趨勢,維肯電子設計推出了VK32XX系列新型多總線接口UART器件,其特點為:
支持8位并行總線,SPI總線,UART等多種主機總線接口:
8位并行總線接口產(chǎn)品可以替代目前廣泛使用的16C55X系列UART用于為8位,16位,32位MCU進行UART串口擴展。VK32系列8位并行總線接口UART產(chǎn)品采用了精簡控制寄存器設計),并通過管腳復用減少了芯片管腳,簡化的軟件設計和PCB設計都更適合嵌入式系統(tǒng)需求。
SPI接口總線系列產(chǎn)品為帶有SPI接口的DSP、MCU實現(xiàn)同步SPI串口到異步UART串口的橋接和擴展,尤其針對目前廣泛應用的DSP系統(tǒng),大多數(shù)DSP都只有同步串口,只能用于與具有同步通信接口的外設進行通信。V32系列SPI總線接口可以將一個SPI同步串行接口橋接/擴展成為1~4個通用異步串口,方便的實現(xiàn)DSP和外設的異步串行通信。
UART接口產(chǎn)品創(chuàng)新的實現(xiàn)了將一個標準3線異步串口(UART)擴展成為2~4個增強功能串口(UART)。芯片內(nèi)置的UART擴展協(xié)議處理邏輯,無需無需其它的地址信號、控制信號線就可以實現(xiàn)多個獨立配置的全雙工串口擴展,為需要擴展串口的嵌入式系統(tǒng)提供了一個最簡潔的解決方案。
支持高速傳輸,每個子波特率可以獨立設置為300bps—960 kbps,主機支持的SPI總線 最高傳輸速率為5M bits/s, 主機8位并行總線的最高傳輸速率為10M bit/s.
寬工作電壓和低功耗設計,考慮到目前嵌入式領(lǐng)域中新型的DSP/FPGA的工作電壓大多為2.5V,而大量的工業(yè)控制領(lǐng)域的MCU仍然需要在5V電壓下工作,VK32系列UART設計的工作電壓范圍為2.5V~5.5V。同時,該系列芯片可以工作在自動休眠和喚醒模式下,有效的降低功耗。
完善的FIFO功能,每個通道獨立的16級接收和發(fā)送FIFO,每個FIFO有4個可編程觸發(fā)點設置。完善的FIFO功能可以進行發(fā)送/接收的數(shù)據(jù)緩沖,減少DSP/CPU對數(shù)據(jù)傳輸?shù)牟僮?,提高CPU/DSP的效率和數(shù)據(jù)傳輸?shù)目煽啃浴?
子串口通道具備軟件或硬件自動流量控制,滿足高速數(shù)據(jù)傳輸中流量控制的需要。
子串口具備可編程的硬件RS-485自動控制功能和自動9位網(wǎng)絡地址識別功能,大大降低處理器的負擔,尤其適用于工業(yè)RS-485組網(wǎng)。
每個通道具備獨立可控的數(shù)據(jù)廣播接收功能,可以應用與需要數(shù)據(jù)廣播傳輸和控制的嵌入式系統(tǒng)中。
所有UART(包括UART主接口和子通道UART)都支持IrDA紅外通信.
2.VK32系列新型多總線接口UART器件的原理及框圖:
VK3266是VK32系列中功能最全的型號,本文以VK3266的原理圖為基礎,對VK32系列UART芯片原理進行介紹:
VK3266原理框圖
VK3266內(nèi)部結(jié)構(gòu)包括主機接口,子通道部分,MODEM控制邏輯,中斷控制邏輯幾部分。
主機接口為VK3266與CPU/DSP相連的接口,通過M1,MO模式選擇信號線,可以分別選擇8位并行總線,SPI總線,UART三種接口與主機相連。
MODEM控制邏輯用于與MODEM相連時的狀態(tài)信號線的監(jiān)控和控制。
中斷控制邏輯用于產(chǎn)生和控制各種內(nèi)部中斷。
時鐘發(fā)生器為芯片的提供時鐘,可以用CLKSEL引線選擇從晶振還是外部時鐘源獲取時鐘。
子通道邏輯部分處理各個的數(shù)據(jù)接收和發(fā)送。數(shù)據(jù)發(fā)送的處理過程為:主機接口將從主口總線發(fā)送來的數(shù)據(jù)進行處理后傳送到相應的子通道FIFO,F(xiàn)IFO里的數(shù)據(jù)經(jīng)過流量控制邏輯后,在波特率發(fā)生器的作用下,通過發(fā)送移位寄存器順次將數(shù)據(jù)發(fā)送到TX串行輸出信號線上。接收數(shù)據(jù)與此正好相反。子通道處理模塊中,控制寄存器用于對各個子通道進行設置,IR編解碼器用于對紅外信號進行編解碼,子通道流量控制器用于子通道傳輸數(shù)據(jù)時的自動流量控制。
3.VK32系列多種總線的主機接口和操作:
3.1 SPI主機接口連接和操作:
如圖所示 SPI與主機(CPU或者DSP)接口包括如下四個信號: SDIN:SPI數(shù)據(jù)輸入。 SDOUT:SPI數(shù)據(jù)輸出。SCLK:SPI串行時鐘。SCS:SPI片選(從屬選擇)。
VK32XX工作在SPI同步串行通信的從機模式下 ,支持SPI模式0標準。為實現(xiàn)主機和VK32XX的通信,在主機端需要設置CPOL=0(SPI時鐘極性選擇位),CPHA=0( SPI時鐘相位選擇位)。SPI接口的操作時序如圖9.2所示:
SPI接口讀寫操作:
SPI寫寄存器操作
|
控制字節(jié) CMD |
數(shù)據(jù)字節(jié) DB | ||||||||||||||
BIT |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
DIN |
1 |
C1 |
C0 |
A3 |
A2 |
A1 |
A0 |
D8t |
D7t |
D6t |
D5t |
D4t |
D3t |
D2t |
D1t |
D0t |
DOUT |
INT1 |
INT2 |
INT3 |
INT4 |
X |
X |
X |
X |
TC3 |
TC2 |
TC1 |
TC0 |
RC3 |
RC2 |
RC1 |
RC0 |
SPI讀寄存器
|
控制字節(jié) CMD |
數(shù)據(jù)字節(jié) DB | ||||||||||||||
BIT |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
DIN |
0 |
C1 |
C0 |
A3 |
A2 |
A1 |
A0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
DOUT |
INT1 |
INT2 |
INT3 |
INT4 |
X |
X |
X |
X |
D7r |
D6r |
D5r |
D4r |
D3r |
D2r |
D1r |
D0r |
各位的原理
C1 C0:子串口通道號? 00~11分別對應子串口1到子串口4;
A3-A0:子串口寄存器地址
D8t:9位數(shù)據(jù)長度發(fā)送時第9位的數(shù)據(jù)
INT1—INT4:通道1到4的中斷標志
TC3—TC0:發(fā)送FIFO數(shù)據(jù)的個數(shù)
RC3—RC0:接收FIFO數(shù)據(jù)的個數(shù)?
3.2 UART主機接口的連接和操作:
當VK32XX的主接口為UART時,僅需要RX,TX連接主機。采用標準的UART協(xié)議進行通信。上電后,主機以VK32XX的復位值所確定的波特率和數(shù)據(jù)格式對VK32XX進行初始化設置后即可方便的實現(xiàn)串口擴展功能。
VK32XX與主機的接口如圖所示:
UART接口與主機連接圖
主UART接口的操作時序
寫操作時,先向VK3266的RX寫入一個命令字節(jié)(Command Byte),隨后寫入相應的數(shù)據(jù)字節(jié),其操作時序(無校驗,禁止轉(zhuǎn)義和紅外模式)如圖10.2所示:
UART主接口寫操作時序
讀操作時,先向VK3266的RX寫入命令字節(jié),相應的數(shù)據(jù)字節(jié)從TX讀取,其操作時序(無校驗,禁止轉(zhuǎn)義和紅外模式)如圖
UART主接口讀操作時序
主UART通信傳輸協(xié)議描述:
寫寄存器:
|
控制字節(jié) CMD |
1個數(shù)據(jù)字節(jié) DB(下行) | ||||||||||||||
BIT |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
TX |
1 |
0 |
C1 |
C0 |
A3 |
A2 |
A1 |
A0 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
RX |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
寫FIFO:(多字節(jié)寫入)
|
控制字節(jié) CMD |
[N3 N2 N1 N0]個數(shù)據(jù)字節(jié) DB(下行) | ||||||||||||||
BIT |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
TX |
1 |
1 |
C1 |
C0 |
N3 |
N2 |
N1 |
N0 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
RX |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
讀寄存器:
|
控制字節(jié) CMD |
1個數(shù)據(jù)字節(jié) DB(上行) | ||||||||||||||
BIT |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
TX |
0 |
0 |
C1 |
C0 |
N3 |
N2 |
N1 |
N0 |
|
|
|
|
|
|
|
|
RX |
|
|
|
|
|
|
|
|
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
讀FIFO:(多字節(jié)讀?。?
|
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂) 相關(guān)推薦技術(shù)專區(qū) |
評論