UART测试技术研究*
2017-03-31李盛杰
李盛杰
(航天科工防御技术研究试验中心 北京 100854)
UART测试技术研究*
李盛杰
(航天科工防御技术研究试验中心 北京 100854)
通用异步收发器(UART)是一种串行的数据总线收发器,用于异步的高速串行通信。德州仪器公司生产的双端口异步通用收发器TL16C752B因其高性能而应用广泛,论文以TL16C752B为样本,通过分析双端口异步通用收发器的电路结构,分析芯片的主要逻辑功能,研究了其逻辑功能、直流电参数、交流电参数的测试技术,并在集成电路测试系统中实现,可用于提高电子系统的可靠性,并可推广到其它通用异步收发器的测试。
通用异步收发器; 测试技术; 功能测试
Class Number TP393
1 引言
通用异步收发器(UART)是一种串行的数据总线收发器,用于异步的高速串行通信。该总线可双向通信,实现全双工传输和接收,是电子系统中不可缺少的高速串行通信部件[1],对类器件的测试是产品可靠性保证的重要环节,对其测试技术的研究具有重要的意义。
德州仪器公司(TI)推出的通用异步收发器TL16C752B是一款新型的双端口UART,该器件内置有两套可独立工作的UART系统,并且具有64字节的发送缓冲器和64字节的接收缓冲器,能更好的实现串行数据总线与并行数据总线高速转换和设备的高速通信[2]。该芯片可使通信系统具有高实时性,可用来实现系统的高校多串口通信,在现代电子系统中得到了广泛的应用,在UART中具有很高的代表性,也给测试环节增加了很大的难度[3~4]。
本文选取了TI公司的一款高性能双端口通用异步收发器TL16C752B,详细分析了双端口异步通用收发器UART的电路结构,分析了通用异步收发器的逻辑功能,研究了通用异步收发器逻辑功能、直流电参数、交流电参数的测试技术,并在集成电路测试系统中实现。
2 电路结构
2.1 基本电路结构
TL16C752B的内部电路结构包括并行数据总线接口、内部晶振逻辑、预分频可编程波特率发生器模块、控制和状态模块、发送模块、接受模块和多个内部寄存器,并且A、B两个端口可以独立控制,其内部结构如图1所示。其引脚除“XTAL1”、“XTAL2”、“A0”、“A1”、“A2”、“IOW”、“IOR”、“RESET”外,A、B两个端口均有不同的引脚,例如“TXA”、“TXB”、“INTA”、“INTB”等[5]。
图1 TL16C752B内部结构图
2.2 控制和状态模块
TL16C752B的控制和状态模块包含全局控制逻辑、DMA控制逻辑、寄存器控制逻辑、中断控制逻辑和Modem控制逻辑等,可以通过对多个内部寄存器的读写进行控制逻辑的配置和状态的读取、判别。
2.3 预分频可编程波特率发生器模块
TL16C752B的发送和接收波特率是通过预分频可编程波特率发生器模块进行控制的,其工作原理如图2所示。首先由外部信号与内部振荡器产生输入时钟,通过预分频逻辑产生参考时钟,最后由波特率发生器逻辑产生用于数据发送和接收的内部波特率时钟[6]。
图2 TL16C752B预分频可编程波特率发生器工作原理
2.4 内部寄存器
TL16C752B包含多个内部寄存器,对不同寄存器的访问是通过地址引脚完成的,但同一地址在读、写状态下可能访问不同的寄存器,且有些内部寄存器是只读或只写的。另外有些内部寄存器的访问需要先对某些寄存器的内容进行配置后进入特殊模式,然后在根据地址引脚的状态进行选择,如表1所示。
表1 内部寄存器
3 基本功能
双端口通用异步收发器TL16C752B的主要功能是完成串行数据总线与并行数据总线之间的转换以及实现一些中断和与Modem交互的功能。TL16C752B的主要功能包括:重置功能、硬件控制传输功能、软件控制传输功能、中断功能和DMA功能。为了提高信号传输的速度和系统运行的效率,在TL16C752B的使用中会用到发送FIFO和接收FIFO,但该芯片可以通过FIFO控制寄存器FCR配置为无FIFO的单字节工作模式[7]。
3.1 重置功能
TL16C752B的重置是通过其“RESET”引脚来实现的,此引脚为高电平有效。重置后,接收保持寄存器RHR和接收保持寄存器THR的指针逻辑会被清空,寄存器IER、IIR、FIFO Rdy、LCR、MCR、LSR、MSR、EFR、TCR、TLR会被重置为固定状态,但寄存器DLL、DLH、SPR、Xon1、Xon2、Xoff1、Xoff2的内容会保持不变,不会被重置。一般重置是使用该器件的第一步操作。
3.2 硬件控制传输功能
TL16C752B的硬件控制传输功能是通过外部引脚“RTS”来判别接收寄存器中的字节数与设置的停止触发字节数、恢复触发字节数的关系,通过引脚“CTS”来控制是否发送下一个字节。正常使用中,串行数据总线两端负责发送和接收的一对异步收发器的引脚“RTS”与“CTS”是相连接的,将接收端异步收发器的接收FIFO的状态反馈给发送端的异步收发器,用来控制发送端的异步收发器是否继续发送串行数据。
3.3 软件控制传输功能
TL16C752B的软件控制传输功能是通过比较或发送寄存器Xoff1、Xoff2的内容或其相与的结果来控制结束发送或结束接收,通过比较或发送寄存器Xon1、Xon2的内容或其相与的结果来控制恢复发送或恢复接收。串行数据总线发送端的异步收发器通过比较接收到的数据与寄存器Xoff1、Xoff2、Xon1、Xon2的内容来判别是否继续发送数据。当串行数据总线接收端的接收保持寄存器的字节数超过停止触发字节数时,向外发送寄存器Xoff1、Xoff2的内容或其相与的结果,当接收保持寄存器的字节数回到继续触发字节数时,向外发送寄存器Xon1、Xon2的内容或其相与的结果。
3.4 中断功能
TL16C752B芯片在数据传输过程中,满足中断条件时,会产生中断信号,引脚“INT”产生高电平信号输出。TL16C752B芯片具有6类中断,包含6级中断优先级,其中断类型的使能是通过对中断使能寄存器IER的配置实现的,不同种类中断的编码可以由中断识别寄存器IIR读出。
3.5 DMA功能
TL16C752B芯片的DMA功能分为两种模式,单一DMA模式和块DMA模式,通过FIFO控制寄存器FCR进行配置。在单一DMA模式中,发送FIFO为空时引脚“TXRDY”输出低电平信号,发送FIFO中有内容时引脚“TXRDY”输出高电平信号,接收FIFO中有内容时引脚“RXRDY”输出低电平信号,接收FIFO为空时引脚“RXRDY”输出高电平信号。在块DMA模式中,当发送FIFO中的剩余空间达到发送触发字节数时引脚“TXRDY”输出低电平信号,当发送FIFO无剩余空间时引脚“TXRDY”输出高电平信号,当接收FIFO中的内容达到接收触发字节时引脚“RXRDY”输出低电平信号,当接收FIFO为空时引脚“RXRDY”输出高电平信号[8]。
4 测试方法及实现
集成电路的测试主要包括功能测试、直流电参数测试和交流电参数测试。对于双端口通用异步收发器TL16C752B芯片,需要通过配置相应寄存器来实现目标功能,而直流电参数测试和交流电参数测试都是先通过功能的实现来激发相应的信号输出后再完成参数测试的,因此TL16C752B芯片的功能测试是测试的重点和难点,是整个测试的关键部分[9]。
4.1 功能测试
通过前文对TL16C752B芯片的电路结构和基本功能的分析,根据TL16C752B器件手册中描述的功能,该器件功能测试按顺序包括:重置功能测试、内部寄存器测试、串并行转换传输测试、硬件控制功能测试、软件控制功能测试、中断功能测试、DMA功能测试。并且所有测试都应涵盖A、B两个端口。
4.1.1 重置功能测试
通过集成电路测试系统对器件引脚“RESET”施加高电平,完成重置后,对该引脚施加低电平,然后对各内部寄存器进行访问,并将结果与器件重置后内部寄存器的复位状态进行比较,寄存器复位状态如表2所示,其中寄存器FCR的状态是不能被读出的,需要在功能测试的其他项目中进行测试。寄存器DLL、DLH、SPR、Xon1、Xon2、Xoff1、Xoff2是不能被重置复位的,其内容不受重置状态的影响,因此该功能需在内部寄存器测试中进行测试。
表2 内部寄存器复位状态
4.1.2 内部寄存器测试
内部寄存器测试即对寄存器进行写读功能测试,但只能对可读可写寄存器IER、LCR、MCR、SPR、DLL、DLH、EFR、Xon1、Xon2、Xoff1、Xoff2、TCR、TLR进行写读测试,其它只写或只读寄存器RHR、THR、FCR、IIR、LSR、MSR、FIFO Rdy则在其它测试项目中对寄存器进行配置时测试。一部分寄存器的访问时通过寄存器地址和其它寄存器的配置完成的,因此为了更准确地定位故障点,内部寄存器的测试需要有先后顺序。寄存器LCR、SPR是可以直接通过地址进行访问的,因此在内部寄存器的测试顺序中排在最前端。寄存器DLL、DLH、EFR、Xon1、Xon2、Xoff1、Xoff2的访问需要寄存器地址与寄存器LCR共同完成,因此这些寄存器的测试顺序排在第二位。寄存器IER、MCR的个别位的访问需要寄存器地址和寄存器EFR共同完成,顺序排在第三位。寄存器TCR、TLR的访问需要寄存器地址和寄存器EFR、MCR功能完成,寄存器FIFO Rdy需要寄存器地址与寄存器MCR共同完成,因此寄存器TCR、TLR、FIFO Rdy的测试顺序排在最后。同时可对重置功能中未被测试的寄存器DLL、DLH、SPR、Xon1、Xon2、Xoff1、Xoff2进行测试,判别是否这些寄存器的内容不会因重置操作而改变。
4.1.3 串并行转换传输测试
串并行转换传输测试是为了测试TL16C752B的基本串行并行数据的转换传输功能,因此采用无FIFO的单字节模式进行。测试时首先重置芯片,重置后FIFO控制寄存器的复位内容即为无FIFO模式,然后通过配置寄存器LCR、EFR、MCR对预分频器的分频数进行设置,通过配置寄存器LCR、DLL、DLH对可编程波特率发生器的除数进行设置,通过配置寄存器LCR对数据位、校验位、停止位进行设置,最后实现串行数据总线和并行数据总线之间的相互转换,通过对比串行数据与并行数据的内容时候一致进行测试。同时可对内部寄存器测试中没有进行测试的寄存器RHR、THR、LSR进行测试。
4.1.4 硬件控制功能测试
重置芯片后,配置FIFO控制寄存器FCR进入FIFO模式,配置增强特征寄存器EFR设置接收或发送的硬件控制模式,配置触发水平寄存器TCR,设置预分频器、可编程波特率发生器、数据位、校验位、停止位,然后进行串行数据与并行数据的转换传输功能,测试引脚“RTS”的输出信号是否能正常反馈接收保持寄存器的状态,测试引脚“CTR”时候能正常控制发送状态。
4.1.5 软件控制功能测试
重置芯片后,配置FIFO控制寄存器FCR进入FIFO模式,配置增强特征寄存器EFR设置软件控制模式的比较或发送关键字节的组合形式,配置寄存器Xon1、Xon2、Xoff1、Xoff2设置比较或发送关键字节的基本内容,设置停止触发字节数、恢复触发字节数、预分频器、可编程波特率发生器、数据位、校验位、停止位,然后进行串行数据与并行数据的转换传输功能。测试器件接收串行数据时,接收保持寄存器的内容时候在达到停止触发字节数或恢复触发字节数后,会发送正确的关键字节内容。测试器件发送串行数据时,接收到关键字节内容后,是否能停止或恢复发送数据。
4.1.6 中断功能测试
重置芯片后,配置中断使能寄存器IER设置6类中断的使能,然后对器件施加不同的中断源,监控引脚“INT”的输出信号,测试中断状态的进入和恢复是否与中断源的产生和中断恢复条件的达成相符,以及中断识别寄存器IIR的内容是否与中断类型相符[10]。测试的中断类型包括接受线状态中断、接收超时中断、RHR中断、THR中断、Modem状态中断、Xoff中断和CTS、RTS中断。同时可对内部寄存器测试中没有进行测试的寄存器IIR、MSR进行测试。
4.1.7 DMA功能测试
重置芯片后,配置FIFO控制寄存器FCR设置DMA的模式,并分别对单一DMA模式和块DMA模式进行测试。分别测试当接收FIFO、发送FIFO的字节数达到规定字节数时,引脚“RXRDY”、“TXRDY”的输出信号是否与DMA状态一致。同时可对内部寄存器测试中没有进行测试的寄存器FIFO Rdy进行测试。
4.2 直流电参数测试
TL16C752B芯片的直流电参数测试与一般数字集成电路的测试方法一致,均为根据器件手册规定的条件施加激励,使器件达到规定的状态,然后对其直流参数进行测试。使器件达到规定状态的途径可参照功能测试的方法,选取其中一种途径即可。
4.3 交流电参数测试
TL16C752B芯片的交流电参数测试也与一般数字集成电路的测试方法一致,可以在功能测试中通过时序的设置完成测试,也可通过搜索扫描法进行测试,输出交流参数还可用交流参数测试模块直接测量。测试过程所需的功能可参照功能测试的方法,选取其中一种途径即可。
5 结语
通用异步收发器应用与电子系统的高速串行通信,德州仪器公司生产的双端口异步通用收发器TL16C752B因其高性能而应用广泛。本文以TL16C752B为样本,通过分析双端口异步通用收发器UART的电路结构,分析UART的主要逻辑功能,研究了其逻辑功能、直流电参数、交流电参数的测试技术,并在集成电路测试系统中实现,可用于提高电子系统的可靠性,该方法可广泛应用于UART类器件的电参数测试。
[1] 胡立坤,王庆超.基于UART的可靠通信与性能分析[J].计算机工程,2006,32(10):15-21. HU Likun, WANG Qingchao. UART-based Reliable Communication and Performance Analysis[J]. Computer Engineering,2006,32(10):15-21.
[2] 林爱英,胡惠敏,贾树恒.基于FPGA的通用异步收发器设计[J].现代电子技术,2011,34(15):121-123. LIN Aiying, HU Huimin, JIA Shuheng. Design of Universal Asynchronous Receiver-Transmitter Based on FPGA[J]. Modern Electronics Technique,2011,34(15):121-123.
[3] 熊途,王跃存.基于TL16C752B的DSP异步串口扩展设计[J].仪器仪表用户,2008,15(1):89-90. XIONG Tu, WANG Yuecun. Asynchronous serial-port extending for DSP based on the TL16C752B[J]. Electronic Instrumentation Customer,2008,15(1):89-90.
[4] 李响,林厚军.ST16C550通用异步收发器测试技术研究[J].微机处理,2008(5):17-18. LI Xiang, LIN Houjun. ST16C550 Asynchronous Transceiver Test Technology Research[J]. Microprocessors,2008,2008(5):17-18.
[5] 陈伟,陈远知.用TL16C752B实现DSP和PC机的串行通信[J].国外电子元器件,2004(4):50-54. CHEN Wei, CHEN Yuanzhi. Serial Communication Between DSP and PC with TL16C752B[J]. International Electronic Elements,2004(4):50-54.
[6] 牛涛,吴斌,焦风川,等.基于FPGA的UART电路的设计[J].电子测量技术,2006,29(3):73-75. NIU Tao, WU Bin, JIAO Fengchuan, et al. Design of a kind of UART circuit based on FPGA[J]. Electronic Measurement Technology,2006,29(3):73-75.
[7] 陈鹏,闫建国,曾赟.DSP和TL16C752在无人机GPS导航系统中的应用[J].测控技术,2009,28(2):31-34. CHEN Peng, YAN Jianguo, ZENG Yun. Application of DSP and TL16C 752 on GPS Navigation System of UAV[J]. Measurement & Control Technology,2009,28(2),31-34.
[8] 杨福广,李贻斌,尹占芳,等.ARM中基于DMA的高效UART通讯及其应用[J].微计算机信息,2008,24(2):161-162. YANG Fuguang, LI Yibin, YIN Zhanfang, et al. High efficiency UART communication based on DMA controller in ARM processor and its application[J]. Microcomputer Information,2008,24(2):161-162.
[9] 吴便国,王群京,陈伟,等.异步收发器ST16C554D原理及其在码混合器中的应用[J].仪器仪表用户,2010,17(3):34-36. WU Bianguo, WANG Qunjing, CHEN Wei, et al. UART ST16C554D and its application in code mixer[J]. Electronic Instrumentation Customer,2010,17(3):34-36.
[10] 郝天发,孙轶君,胡子阳,等.UART_16C554的设计[J].微处理机,2006,27(3):19-21. HAO Tianfa, SUN Yijun, HU Ziyang. Design of UART_16C554[J]. Microprocessors,2006,27(3):19-21.
Test Technology of UART
LI Shengjie
(Defense Technology Research and Test Center of China Aerospace Science & Industry Corporation, Beijing 100854)
Universal asynchronous receiver/transmitter (UART) is a kind of serial data bus receiver and transmitter which is used for high speed serial communication. TL16C752B, a dual port UART which is developed by Texas Instruments is widely used because of its high performance. Through the research of TL16C752B which is a sample of UART, the structure and the main logic functions of UART is analyzed, and the test technology of logic function and electrical characteristics is researched. The test technology can be used to improve the reliability of electronic systems and can be in tests of other UART ICs.
UART, test technology, function test
2016年9月8日,
2016年10月25日
李盛杰,男,硕士研究生,工程师,研究方向:集成电路测试技术。
TP393
10.3969/j.issn.1672-9722.2017.03.040