UART产生于上个世纪70年代,是第一块大规模集成电路。1981年的推出的IBM PC采用了8250 UART与外设进行数据通信,直到上个世纪末,UART一直是PC中最主要的串行通信接口。随着高速串行总线USB的出现,USB以其诸多的优点取代了UART成为个人电脑中应用最广泛的串行接口。
而在嵌入式领域,由于UART具有操作简单、工作可靠、抗干扰强、传输距离远(组成485网络可以传输1,200米以上),设计人员普遍认为UART是从CPU或微控制器向系统的其他部分传输数据的最佳方式,因此它们被大量地应用在工业、通信和家电控制等嵌入式领域。通常MCU/CPU都会自带一个UART串口,但实际应用中一个串口往往不够用,需要进行UART串口扩展。
截止到目前,全球范围内有超过40种UART器件可以选择,大多数UART器件是以计算机总线转换UART为应用基础的,其通用性、管脚、寄存器与20年前很少改变。针对嵌入式应用,目前的UART器件普遍存在操作复杂、引脚多、价格昂贵等弱点,不能满足和适应的嵌入式系统的需要。
VK系列UART器件
维肯公司针对嵌入式系统中UART的发展趋势,设计推出了VK32xx系列新型多总线接口UART器件,其特点为:
1. 支持8位并行总线、SPI总线、UART等多种主机总线接口。其中,8位并行总线接口产品可以替代目前广泛使用的16C55x系列UART用于为8位、16位、32位MCU进行UART串口扩展。VK32系列8位并行总线接口UART产品采用了精简控制寄存器设计,并通过管脚复用减少了芯片管脚,简化的软件设计和PCB设计都更适合嵌入式系统需求。
SPI接口总线系列产品为带有SPI接口的DSP、MCU实现同步SPI串口到异步UART串口的桥接和扩展,尤其针对目前广泛应用的DSP系统,大多数DSP都只有同步串口,只能用于与具有同步通信接口的外设进行通信。VK32系列SPI总线接口产品可以将一个SPI同步串行接口桥接/扩展成为1~4个通用异步串口,方便实现DSP和外设的异步串行通信。
UART接口产品创新地实现了将一个标准3线UART扩展成为2~4个增强功能UART。芯片内置的UART扩展协议处理逻辑,无需其它的地址信号和控制信号线就可以实现多个独立配置的全双工串口扩展,为需要扩展串口的嵌入式系统提供了一个最简洁的解决方案。
2. 支持高速传输。每个子波特率可以独立设置子串口最高通信速度可以达到920kbps(5V工作电压),主机支持的SPI总线最高传输速率为4Mbps,主机8位并行总线的最高传输速率为10Mbps。
3. 宽工作电压和低功耗设计。考虑到目前嵌入式领域中新型的DSP/FPGA的工作电压大多为2.5V,而大量的工业控制领域的MCU仍然需要在5V电压下工作,VK32系列UART设计的工作电压范围为2.5V~5.5V。同时,该系列芯片可以工作在自动休眠和唤醒模式下,有效地降低功耗。
4. 完善的FIFO功能。每个通道独立的16级接收和发送FIFO,每个FIFO有4个可编程触发点设置。完善的FIFO功能可以进行发送/接收的数据缓冲,减少DSP/CPU对数据传输的操作,提高CPU/DSP的效率和数据传输的可靠性。
5. 子串口通道具备软件或硬件自动流量控制,满足高速数据传输中流量控制的需要。
6. 子串口具备可编程的硬件RS-485自动控制功能和自动9位网络地址识别功能,大大降低处理器的负担,尤其适用于工业RS-485组网。
7. 每个通道具备独立可控的数据广播接收功能,可以应用于需要数据广播传输和控制的嵌入式系统中。
8. 所有UART(包括UART主接口和子通道UART)都支持IrDA红外通信。
VK系列UART器件的原理及框图
VK3200是VK32系列中功能最全的型号,本文以VK3200的原理图为基础,对VK32系列UART芯片原理进行介绍。VK3200内部结构包括主机接口、子通道部分、MODEM控制逻辑、中断控制逻辑几部分。主机接口为VK3200与CPU/DSP相连的接口,通过M1、MO模式选择信号线,可以分别选择8位并行总线、SPI总线和UART三种接口与主机相连;MODEM控制逻辑用于与MODEM相连时的状态信号线的监控和控制;中断控制逻辑用于产生和控制各种内部中断。
时钟发生器为芯片提供时钟,可以用CLKSEL引线选择从晶振还是外部时钟源获取时钟。子通道逻辑部分处理各个的数据接收和发送。数据发送的处理过程为:主机接口将从主口总线发送来的数据进行处理后传送到相应的子通道FIFO,FIFO里的数据经过流量控制逻辑后,在波特率发生器的作用下,通过发送移位寄存器顺次将数据发送到TX串行输出信号线上,接收数据与此正好相反。子通道处理模块中,控制寄存器用于对各个子通道进行设置,IR编解码器用于对红外信号进行编解码,子通道流量控制器用于子通道传输数据时的自动流量控制。
在嵌入式系统中的应用
VK系列UART器件的在嵌入式产品中的应用领域包括:多串口服务器/多串口卡,工业/自动化现场RS-485控制,使用CDMA/GPRS MODEM的无线数据传输,车载信息平台/车载GPS定位系统,远传自动抄表(AMR)系统,税控POS/银行终端等金融机具,DSP数据采集和传输系统等。其应用实例如下:
1. 在税控POS中的应用
税控POS机是一个控制密集形的嵌入式系统,需要控制大量外设。其基本配置要求的串口打印机、MODEM、RS-485网络接口,以及税控IC卡(异步卡)都工作在基于UART的串行通信方式。同时,大量的外设如密码键盘、条码扫描器、条码称、接触IC卡/非接触IC卡读卡器、磁卡读卡器、串口显示屏等设备都是通过RS-232串口与POS机相连。
采用VK32xx系列UART器件可以根据MCU/CPU的接口特性,选择SPI/8位并行总线/UART进行灵活的UART串口扩展。该方案与采用目前GPIO来模拟串口的方案相比,占用CPU的I/O和资源都很少,即使普通的8位MCU也可以胜任。同时,扩展的子串口都是标准的硬件UART,使得数据传输也更加可靠。
2. 在远程自动抄表系统中的应用
如图3所示,远传自动抄表系统由远传表和集中抄表器以及MODEM等部分组成。
在远传表中,应用VK3212双串口扩展IC将单片机的一个UART扩展成两个UART,扩展出来的两个串口UART1和UART2分别接RS-485/M-BUS接口和红外接口。VK3212的UART1设置为RS-485自动收发和RS-485网络模式,可以无需MCU的控制,自动完成RS-485/M-BUS的数据自动收发和自动网络地址识别。VK3212的UART2设置为红外模式,用于连接远传表的红外设置窗口。
在集中抄表器中,用一片SPI接口的4通道UART器件VK3234将扩展出4个子串口UART,MCU通过SPI总线与VK3234相连。VK3234的子串口UART设置为RS-485自动收发模式,每个子通道UART控制的RS-485/MBUS收发器通过RS-485/M-BUS总线连接最多250个远传表。一个基于VK3234的集中抄表器可以实现最多1,000个远传表的数据读取。
由于是通过SPI接口扩展的串口,集中抄表器单片机自身的串口可以连接PSTN/GSM MODEM将集抄数据传给远程服务器。
3. 在嵌入式车载信息平台中的应用
VK3233主接口有SPI和UART两种接口可以选择。嵌入式平台中的DSP/CPU通过SPI/UART接口与VK3233相连,VK3233扩展出来的三个子串口分别连接GPS模块、倒车雷达模块和GSM/CDMA模块,MODEM控制线连接GSM/CDMA MODEM。整个嵌入式系统共用一个显示设备,有效地节省了车内有限的空间。
4. 在串口服务器中的应用
在工业控制等领域,众多设备的对外通讯接口仍然是低速串口。串口服务器将多个串口设备的数据存储、转换以后通过IP网进行传输。
图5显示了一个8串口服务器(4个RS-232串口、4个RS485串口)的电路原理图,嵌入式系统中的DSP/CPU的并行位数据线连接2片VK3266实现了8个串口的扩展,通过地址译码器控制2片VK3266的CS实现片选控制。在上图中,VK3266 A连接4个RS-232收发器,扩展出了4个带硬件流量控制信号的RS-232串口;VK3266B则连接了4个RS-485收发器,将VK3266设置在RS-458自动收发控制模式下,通过RTS信号控制RS-485收发器的数据发送使能DE和数据读取使能RD信号,能实现RS-485的自动收发控制。
选型参考和设计建议
1. 选型参考
VK32系列UART包括5个产品系列,各个产品系列的特点如下:
VK321x系列为主接口为UART的产品,仅通过RX,TX和GND三根信号线与主机相连,通过芯片内部的处理协议采用时分复用的方式将一个串口扩展成为2~4个可以同时工作的全双工串口。在该模式下,MCU以查询方式操作UART器件,设计中需要注意的是为保证在时分复用下各个子通道能够同时全双工通信,主接口的波特率需要设置为大于各个子串口波特率之和。VK321x产品适用于对通信速度要求不高,需要设计可靠简单的嵌入式产品。
VK322x系列产品的主接口为SPI同步传行总线,最高传输速度为4Mbps。适合于带SPI接口的MCU/DSP扩展异步串口。大多数DSP都只有同步串口,通过SPI接口实现异步串口的桥接和扩展,可以简化并行总线扩展串口的硬件规模和模拟异步串口的软件开销。
VK323x系列产品同时具备SPI和UART两种可以选择的主接口,扩展子串口具备硬件流量控制和RS-485自动收发功能,尤其适合于需要高可靠数据传输的RS-485总线应用。
VK325x产品为8位并行总线接口的UART器件,VK326x为同时具备3种可选主机接口的UART器件。这两个器件应用于需要减少备货种类,需要进行大量数据传输的应用。
2. 设计建议
异步IC卡的接口设计。遵从7816-3的异步IC卡为半双工异步通信接口。在实际应用中,可以将子串口的RX和TX短接后直接与IC卡的I/O信号连接,为可靠起见,也可以通过连接7407来驱动IC卡的I/O信号。
MODEM接口的设计。目前的PSTN/GPRS/CDMA/GSM MODEM支持三线串口(TX、RX、GND)通过AT命令操作。但实际应用中,仅仅使用三线串口容易丢包,造成数据重发,使得上传速度变慢,建议使用VK32系列中带MODEM接口的UART器件,用DSR、DTR、RI和DCD来监控MODEM状态,用RTS和CTS来做流控,这样速度可以达到最高。
RS-485总线的设计。RS-485是目前工业领域应用最广的半双工通信系统。直接用MCU对RX485进行控制,有一些细节难于处理:通过MCU的I/O对485收发控制,在系统复位时,I/O可能使485收发器处在发送状态,造成总线上正在进行的通信失效;在数据收发切换中,一般依靠发送缓冲的状态来控制MCU的I/O对收发切换,而此时最后一个字节可能还在移位寄存器中,会造成少发送一个字节的情况;同时,当RS485总线上有大量数据进行传送时,MCU不得不花大量的资源去判断该数据是否是发送给本机的,造成工作效率低。针对这些问题,建议用户在需要用到RS-485时,选用带有RS-485自动收发控制和9位网络自动识别的器件。
VK32系列UART器件可以工作在自动RS-485模式下:复位时,RTS处于接收状态,只有在数据发送时,RTS才工作在发送状态,当最后一位数据从移位寄存器中发送完成后,RTS自动转为接收状态。同时,VK32系列的UART支持9位网络地址自动识别,仅当RS-485总线上的地址与UART设定的RS-485网络地址一致时,才产生中断,可以使MCU从大量的与自己无关的数据处理中解脱出来,提高系统的处理能力。
无铅化是半导体行业势不可挡的趋势,VK32系列UART产品全部实现无铅化封装,在回流焊时需要注意焊接温度满足相应的温度要求。
出处:电子工程专辑