VK32系列多总线UART串口扩展芯片的原理和应用
摘 要:UART以其简单可靠,抗干扰强,传输距离远,组网方便,被认为是嵌入式系统中进行串行数据传输的最佳方式。本文介绍了专为嵌入式系统设计的VK32系列新型多总线接口UART器件的原理及应用技术。
1.嵌入式系统中串口扩展的需求:
而在嵌入式领域,由于UART具有操作简单,工作可靠,抗干扰强,传输距离远(组成485网络可以传输1200米以上),设计人员普遍认为UART是从CPU或微控制器向系统的其他部分传输数据的最佳方式,因此它们被大量地应用在工业、通信、和家电控制等嵌入式领域。通常MCU/CPU都会自带一个UART串口,但实际应用中一个串口往往不够用,需要进行UART串口扩展。
目前的大多数UART器件是以计算机总线转换UART为应用基础的,其通用性、管脚、寄存器与20年前很少改变,针对嵌入式应用,目前的UART器件普遍存在操作复杂,引脚多,价格较高等弱点,不能满足和适应的嵌入式系统发展的需要。
针对嵌入式系统中UART的发展趋势,维肯电子设计推出了VK32XX系列新型多总线接口UART器件,其特点为:
支持8位并行总线,SPI总线,UART等多种主机总线接口:
8位并行总线接口产品可以替代目前广泛使用的16C55X系列UART用于为8位,16位,32位MCU进行UART串口扩展。VK32系列8位并行总线接口UART产品采用了精简控制寄存器设计),并通过管脚复用减少了芯片管脚,简化的软件设计和PCB设计都更适合嵌入式系统需求。
SPI接口总线系列产品为带有SPI接口的DSP、MCU实现同步SPI串口到异步UART串口的桥接和扩展,尤其针对目前广泛应用的DSP系统,大多数DSP都只有同步串口,只能用于与具有同步通信接口的外设进行通信。V32系列SPI总线接口可以将一个SPI同步串行接口桥接/扩展成为1~4个通用异步串口,方便的实现DSP和外设的异步串行通信。
UART接口产品创新的实现了将一个标准3线异步串口(UART)扩展成为2~4个增强功能串口(UART)。芯片内置的UART扩展协议处理逻辑,无需无需其它的地址信号、控制信号线就可以实现多个独立配置的全双工串口扩展,为需要扩展串口的嵌入式系统提供了一个最简洁的解决方案。
支持高速传输,每个子波特率可以独立设置为300bps—960 kbps,主机支持的SPI总线 最高传输速率为5M bits/s, 主机8位并行总线的最高传输速率为10M bit/s.
宽工作电压和低功耗设计,考虑到目前嵌入式领域中新型的DSP/FPGA的工作电压大多为2.5V,而大量的工业控制领域的MCU仍然需要在5V电压下工作,VK32系列UART设计的工作电压范围为2.5V~5.5V。同时,该系列芯片可以工作在自动休眠和唤醒模式下,有效的降低功耗。
完善的FIFO功能,每个通道独立的16级接收和发送FIFO,每个FIFO有4个可编程触发点设置。完善的FIFO功能可以进行发送/接收的数据缓冲,减少DSP/CPU对数据传输的操作,提高CPU/DSP的效率和数据传输的可靠性。
子串口通道具备软件或硬件自动流量控制,满足高速数据传输中流量控制的需要。
子串口具备可编程的硬件RS-485自动控制功能和自动9位网络地址识别功能,大大降低处理器的负担,尤其适用于工业RS-485组网。
每个通道具备独立可控的数据广播接收功能,可以应用与需要数据广播传输和控制的嵌入式系统中。
所有UART(包括UART主接口和子通道UART)都支持IrDA红外通信.
2.VK32系列新型多总线接口UART器件的原理及框图:
VK3266是VK32系列中功能最全的型号,本文以VK3266的原理图为基础,对VK32系列UART芯片原理进行介绍:
VK3266原理框图
VK3266内部结构包括主机接口,子通道部分,MODEM控制逻辑,中断控制逻辑几部分。
主机接口为VK3266与CPU/DSP相连的接口,通过M1,MO模式选择信号线,可以分别选择8位并行总线,SPI总线,UART三种接口与主机相连。
MODEM控制逻辑用于与MODEM相连时的状态信号线的监控和控制。
中断控制逻辑用于产生和控制各种内部中断。
时钟发生器为芯片的提供时钟,可以用CLKSEL引线选择从晶振还是外部时钟源获取时钟。
子通道逻辑部分处理各个的数据接收和发送。数据发送的处理过程为:主机接口将从主口总线发送来的数据进行处理后传送到相应的子通道FIFO,FIFO里的数据经过流量控制逻辑后,在波特率发生器的作用下,通过发送移位寄存器顺次将数据发送到TX串行输出信号线上。接收数据与此正好相反。子通道处理模块中,控制寄存器用于对各个子通道进行设置,IR编解码器用于对红外信号进行编解码,子通道流量控制器用于子通道传输数据时的自动流量控制。
3.VK32系列多种总线的主机接口和操作:
3.1 SPI主机接口连接和操作:
如图所示 SPI与主机(CPU或者DSP)接口包括如下四个信号: SDIN:SPI数据输入。 SDOUT:SPI数据输出。SCLK:SPI串行时钟。SCS:SPI片选(从属选择)。
VK32XX工作在SPI同步串行通信的从机模式下 ,支持SPI模式0标准。为实现主机和VK32XX的通信,在主机端需要设置CPOL=0(SPI时钟极性选择位),CPHA=0( SPI时钟相位选择位)。SPI接口的操作时序如图9.2所示:
SPI接口读写操作:
SPI写寄存器操作
|
控制字节 CMD |
数据字节 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读寄存器
|
控制字节 CMD |
数据字节 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位数据长度发送时第9位的数据
INT1—INT4:通道1到4的中断标志
TC3—TC0:发送FIFO数据的个数
RC3—RC0:接收FIFO数据的个数?
3.2 UART主机接口的连接和操作:
当VK32XX的主接口为UART时,仅需要RX,TX连接主机。采用标准的UART协议进行通信。上电后,主机以VK32XX的复位值所确定的波特率和数据格式对VK32XX进行初始化设置后即可方便的实现串口扩展功能。
VK32XX与主机的接口如图所示:
UART接口与主机连接图
主UART接口的操作时序
写操作时,先向VK3266的RX写入一个命令字节(Command Byte),随后写入相应的数据字节,其操作时序(无校验,禁止转义和红外模式)如图10.2所示:
UART主接口写操作时序
读操作时,先向VK3266的RX写入命令字节,相应的数据字节从TX读取,其操作时序(无校验,禁止转义和红外模式)如图
UART主接口读操作时序
主UART通信传输协议描述:
写寄存器:
|
控制字节 CMD |
1个数据字节 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:(多字节写入)
|
控制字节 CMD |
[N3 N2 N1 N0]个数据字节 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
读寄存器:
|
控制字节 CMD |
1个数据字节 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:(多字节读取)
|
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
相关推荐技术专区 |
评论