EDN China > 技术文章 > 测试与测量 > 通用测试仪器 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) UART自动验证平台

Sriram Vikraman Sithalakshmi?? Cypress?? 2014年06月19日 ?? 收藏0

二、平台

稳健的UART验证平台必须测试通信接口的所有特性。为此,平台需要能够自动处理所有可能的UART参数组合。目前UART验证测试采用手动测试,需要在整个测试过程中使用专用资源,而且由于是手动测试,会消耗大量时间。这时可采用能够处理重复测试的UART自动验证平台实现流程的自动化,以减少测试工作。

我们可以看到标准的现成工具无法支持其中的多种特性,例如4位和9位数据宽度,或2.5位至4.0位停止宽度。因此,需要一种可支持全部甚至更多特性的全新验证平台。另一个要求则是实现测试的自动化,这可以减少对DUT执行测试时的手动工作。

本文描述的UART自动验证平台可支持如下配置:

1. 波特率(bps):50、110、300、600、1200、2400、4800、9600、19200、28800、38400、57600、115200、230400、460800、921600

2. 数据宽度(位):1、2、3、4、5、6、7、8、9、10

3. 奇偶校验位:无、奇数、偶数

4. 停止位宽度:1.0、1.5、2.0、2.5、3.0、3.5、4.0

5. TX缓冲器:16帧

6. RX缓冲器:16帧

图2:UART自动验证平台
图2:UART自动验证平台

图2 给出了包含UART自动验证平台所有主要模块的高级系统视图:

1. 测试控制器:验证平台的核心。这是一个用来收集、处理数据,并在系统中其它模块之间转发数据的MCU。它应该具有一个USB接口,从而与主计算机进行通信。

2. 发送与接收FIFO:需要发送的数据帧存储在发送FIFO中,从DUT接收到的数据帧则存储在接收FIFO中。MCU从主机收集发送数据包,将其转换为数据帧,并载入到发送FIFO中。接收FIFO负责转发从DUT收集的帧,将其转到测试控制器进行数据包转换,并转发至主机。数据包缓存是提高系统速度的有效方案。

FIFO通常在MCU的SRAM中实现。这种实现方案仅支持16帧的发送或接收会话。可根据特定要求提高这一数字,但要受限于所用的SRAM。

3. 移位寄存器(并行到串行和串行到并行转换器):UART可采用移位寄存器来实现。在发送比特位时,它可作为并行到串行转换器,在接收时另一个移位寄存器变成串行到并行转换器。两个寄存器都以双倍或多倍波特率频率计时。

待发送的数据包已被转换为帧比特并送入FIFO。帧数据被加载到发送移位寄存器中,并以正确的波特率发送到DUT。采用类似的方案从DUT接收数据包。对接收到的帧以双倍波特率(或更多)进行采样,一旦整个数据包进入接收移位寄存器中,帧比特位就会被转移到接收FIFO中。

4. PLL和波特率生成器:PLL模块使用外部11.0592MHz晶体振荡器生成供所有其它模块使用的时钟频率。PLL使输入模块乘以系数5,以生成55.296MHz的主时钟频率。由于所有模块都采用相同的时钟源工作,因此不必使用额外的逻辑来同步模块。

选择外部振荡器生成通用UART应用所需的精确波特率。可对11.0592MHz时钟源进行分频,从而为移位寄存器提供标准的波特率时钟。波特率生成器作用就在于此。这里采用数字PWM时钟生成波特率时钟。通过改变PWM的周期和比较参数可生成占空比为50%的波特时钟。占空比可变是使用PWM模块的另一个优势,相比之下时钟分频器只能生成固定占空比的时钟输出。可变的占空比可用来验证UART接口的时钟容差和输出保真度。

5. 控制寄存器:所有参数和设置都保存在8位寄存器中。测试控制器的SRAM可用来实现该目的。主计算机通过用来访问FIFO的相同接口读取和写入寄存器。为该平台提供如下寄存器

  a.控制:使用该寄存器传送即时命令。寄存器的MSB可用来通知测试控制器有新的命令进入寄存器。命令执行后该位被清空。所支持的命令及相应的值如下所示。



  b.状态:测试控制器使用该寄存器发布当前测试的结果,包括传输时的错误条件。



  c.波特率:该寄存器控制下次数据传输使用的波特率。所支持的波特率及其数值显示如下。



  d.数据宽度:该寄存器控制下次数据传输使用的数据宽度。所支持的数值为0x01至0x0A(10个值)。

  e.校验位:使用该寄存器设置校验位。可以是无校验,奇数校验或偶数校验,如下所示。



  f.停止宽度:该寄存器规定每个帧使用的停止宽度。所支持的停止宽度如下所示。



  g.过采样率:发送和接收帧所需的过采样数量使用该寄存器进行设定。逻辑复杂程度随所需的过采样率增加而增加。最小值是2。

  h.TX大小:该寄存器保留FIFO中发送帧的数量。此值既可在发送FIFO加载数据后手动设置,也可在FIFO加载后自动加载。最大值是16,最小值是1。

  i.RX大小:该寄存器保留FIFO中接收帧的数量。当接收到一个数据帧时,寄存器中的这个值增加1,当主机从FIFO中读取一个帧时,该值减去1。最大值是16,最小值是1。

6. DUT控制与状态信号:需要将以上参数送到DUT。这个模块从控制寄存器获取参数,并推送到DUT。使用并行接口向DUT报告当前设置。此外,平台具有一个控制信号“START”,用于断言该信号可初始化DUT。若DUT应用了平台的设置,并做好测试的准备工作,就会将另一个信号断言为“READY”。

7. 主计算机:主计算机执行测试用的Perl脚本,通过USB端口与平台进行通信。所有测试案例都实现为Perl脚本,其可生成覆盖验证过程的测试序列。此外,主计算机还收集用来检查测试是否通过的相关数据。该信息连同测试案例都被写入文件,以便记录。

8. 待测器件(DUT):测试带UART接口的目标器件。

从方框图及其描述中可以看到,平台使用移位寄存器来实现UART接口。这种方案的优势在于可通过增加移位寄存器的大小来实现扩展性。

本文下一页:帧验证模块及UART验证模块

【分页导航】

《电子技术设计》网站版权所有,谢绝转载


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

UART? 通用异步收发器? 寄存器?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈