UART硬件和软件验证流程

AN462
硬件和软件验证流程
Rev. _1 — 7 August 1987 应用规格书
文件信息
信息内容男篮欧锦赛2013
关键词UART,软硬件验证
摘要这个流程是用于检验主机(控制处理器)、UART和印制电路板之间的信号、总线、电气连接和时序的正确性。以下流程的执行和结果的验证不需要任
何其它的测试设备(逻辑分析仪、协议分析仪,示波器等),它是基于处
理器能够读写UART,并且所得到的结果能显示给操作者的假设之上
的。如果无法完全确认简单的读写操被正确的执行,那么针对UART连
接的其它检验都是不可靠的。
1. 概述
这个流程是用于检验主机(控制处理器)、UART和印制电路板之间的信号、总线、电气连接和时序的正确性。以下流程的执行和结果的验证不需要任何其它的测试设备(逻辑分析仪、协议分析
安丘四中仪,示波器等),它是基于处理器能够读写UART,并且所得到的结果能显示给操作者的假设之
上的。如果无法完全确认简单的读写操被正确的执行,那么针对UART连接的其它检验都是不可
靠的。
2. 总流程
首先,对相关的寄存器进行写和读的操作,在这些操作中与时钟有关的有片选、读、写信号;
其次,通过读取状态寄存器的值来观察所写入的几个控制寄存器的结果;接下来建议的几个流程用
于验证总线数据流并采用“本地循环回送”的模式来验证接收器和发送器的运行,“本地循环回
送”模式(所有的数据的发送和接收发生在UART内部)用于产生处理器中断或查询状态。这些流
程的正确执行将表明内部寄存器、总线接口、时钟发生器、计数器和振荡器的正常运行,没有得到
验证的是振荡器的频率、TxD和 RxD与外部端口及普通输入输出管脚的连接。
3. 注释
在硬件和软件的验证模式中,读取状态寄存器的状态是非常有效的,它对于检测那些在”已验证”
过的硬件和软件上出现的“随机”或“少见”的错误也很有效。状态的读取可以在对设备进行操作
之前和之后进行,寄存器的内容将反映异常状况发生的时间地点,这将使得UART的内部状态与外
部连接、时序、软件一样具有了可见性。例一:在硬件复位后读取状态将显示发送器空标志位置
位,这表示发送器已经使能(在硬件复位后将立即返回0x00),然而软件并没有使能发送器,因此
有人会把原因归结于:特殊的干扰,复位信号下降沿太缓慢等等,所有这些就像执行了一个发送器
使能的命令,如果这种情况确实发生,采取进一步的验证操作来修正错误的意义并不大。例二:在
对UART复位和执行几个操作之后,并且在使能接收器之前,发现有一些接收器数据状态位置位
(如奇偶校验出错),这表示接收器已经使能,并且收到数据(虽然我们并没在软件上对接收器执
石碳酸
行使能的命令),这可能是由于时序的冲突(可能是地址总线上的)移动了接收器FIFO的读取指针而
导致了上电后接收器FIFO的随机状态的上报。经常还出现软件的不同模块都控制UART,并且各控
制是独立的情况,这将导致更多的情况出现。
<12NC> ©Koninklijke Philips Electronics N.V. 2004. All rights reserved.应用规格书Rev. _1 — 7 August 1987    2 of 11
<12NC>
©Koninklijke Philips Electronics N.V. 2004. All rights reserved.
应用规格书 Rev. _1 — 7 August 1987
3 of 11
操作流程  结果及注释
1.执行硬件复位(在没使用硬件复位的系统中,可通过手工断开复位管脚连接来临时产生硬件复位)
UART的正常工作并不要求有硬件复位,但是在本流程中我们强烈推荐硬件复位,即便采用手工复位。软件复位可随时执行,但软件复位在某种程度上来说是隐性的,所以在本流程中没有使用软件复位,如果没有完整正确地进行后续的操作是很难检验软件复位是否生效的。
2.向每个MR 寄存器写入两个不同的数据(0xaa ,0x55),不必考虑MR 指针。
这个操作将把第二个字节写入MR2中,(本例是0x55)这将表明(在第4步)你至少已经可以对设备进行读写并且回送数据到控制系统,不需要其它任何测试设备,系统本身就可以完成。这个测试甚至在没有Vss 和Vdd 的情况下都可以实现,尽管逻辑低电平将接近+0.7V
贵阳中医学院学报
3.在对MR 寄存器操作之前和之后读每个UART 的状态寄存器。将返回0x 00
张震之子返回的结果一定是0x 00,如果不是0x 00,那么相应的MR 寄存器将无法执行其它操作。状态寄存器反映了MR 的情况。 4.对MR 寄存器执行一个单独的读操作,不必考虑MR 指针将返回第二个写入MR 寄存器的数据,按照上面的数据将返回0x55
注意:这一步非常关键,它反映了基本控制的正确性,对于芯片内部逻辑来说这是很简单,即使Vss 和Vdd 不连接的情况下也起作用。
经过之前的2个写操作(第2步)后,MR 指针指向MR2,这时读取MR 将返回第2步中第2个写入MR
的数据。
这一步表明至少一部分的地址线已经连接并且工作正常,CEN ,RDN 和WRN 信号正确。同时表明数据总线正在运行但并不意味着数据总线是正确连接的。
在理论设计中,大部分的CMOS 器件可通过输入管脚供电,假设至少一个Vcc 和
Vss 。这将给内部逻辑提供近似3.6V 的电压(在Vss 上浮一个二极管电压,在Vcc 上下降一个二极管电压).但它很有可能并不运行在一个特定的速度下,这将容易倒致(在Vss 和Vdd 不连接)CMOS的闭锁而损坏器件。新的CMOS电路设计充分考虑了CMOS闭锁的潜在危害,改进了电路设计和执行流程以防止闭锁现象。
<12NC>
©Koninklijke Philips Electronics N.V. 2004. All rights reserved.
应用规格书 Rev. _1 — 7 August 1987
4 of 11
操作流程
结果及注释
5.对地址为0x02的命令寄存器写入0x10。 重复第2步中对MR 寄存器的写操作。设置MR 指针指回MR1并执行2次对MR 寄存器的读操作,对所有MR 寄存器执行该操作,返回值将是先前写入的2个字节。
注意:分别置MR1、MR2为00和87对于步骤8来说将是比较方便的,但在这一步中所有的MR 寄存器必须写入不同的数据。
这表明1条以上的地址线在工作,1条数据线是正确的,晶振起振,UART 不是工作在掉电模式,Vss 和Vdd 已连接。 按这顺序完成所有操作之后,读取状态寄存器,返回值都是0x00。
6.再次对命令寄存器进行写操作并使能发送器,对每个UART 的命令寄存器写入0x15。
使能发送器将使状态寄存器中的发送器状态位立即置位,并使MR 指针指向MR1
7.读状态寄存器。发送器准备就绪标志位和发送器空标志位都处于置位状态,返回值是0x0C 。 回到上面提到的:如果MR1和MR2分别是00和87,那么接收器和发送器将处于“本地循环回送“模式。设置MR1和MR2为以上数值。(在上一步中MR 指针已指向MR1)
8.对时钟选择寄存器写入分频字节来选择一个时钟,如写入字节BB 表示每个接收器和发送器波特率为9600bps 。
9.对命令寄存器进行写操作来使能发送器和接收器。???
10.读取状态,结果仍为0C
11.对发送器写入一个字节,通过读状态寄存器可看到发生的几个事件。
12.循环读取状态寄存器,状态为0x04和0x0D 在读取事件中十分重要。
A.在写入到发送器后将立即返回状态值0x00
B.状态将变为0x04,这表明起始位的结束及TxFIFO 已经准备好接收下一个字节。
中国农业合作社
C.下一个状态值将为0x05,它将维持小于7/16个位时长,通常在总线周期是观察不到这一状态的
寄存器将按顺序报告状态:0x0C ,0x00,0x04,0x0C ,0x0D ,鉴于波特率为9600读时序的异步特性,
你可能看不到以上所有数据的,有的维持1/16个位的时间,有的仅为270纳秒,但是你肯定能观察到0
x04和0x0D 。
<12NC>
©Koninklijke Philips Electronics N.V. 2004. All rights reserved.
应用规格书 Rev. _1 — 7 August 1987
5 of 11
操作流程
结果及注释
D.状态将变为0x0D
A .这表明发送器已经收到字节,正把它传送到移位寄存器中并开始发送起始位。
B .出现0x04的时间取决于相关的Tx 16x 时钟,Tx  1x 时钟和总线周期,大约在1/16到17/16个位时长之间。
C .表明接收器收到字节(一过停止位时长的中间点接收器就把字节传送到Rx FIFO 中),并且发送器还没完成停止位的发送。
D .表明接收器已经把字节传送到Rx FIFO 并且发送器是空的。
13.读接收器FIFO 你将读到在步骤11中送入到发送器的字节
14.读取状态,显示为0x0C 。
显示0x0C 表明接收器FIFO 是空的,发送器FIFO 是空,并且FIFO 已准备就绪等待数据传送。
15.到此就完成了对总线接口的基本验证,并从状态寄存器中得到相应的数值。
以上流程必须确保正常运行,时序的冲突、错误的的连线或者振荡器不工作都将导致异常结果的出现,
当然芯片的损坏也可能导致异常结果。以上流程的失败是败是“第一类”的影响造成的。
如果设置MR2寄存器为03,便可以将发送器输出管脚连接到接受器输入管脚,并重复步骤11到步骤13的流程。
在大多数情况下这实现起来很困难,因为电路板上与UART 的连接已经固定了。但如果可以在发送器和接收器之间建立一个像 “导线”的连接,就证明发送器输出端口和接收器的输入端口并没有损坏。 另一方面,可通过让UART 与其它UART 或DUMB 终端”通话”来验证其功能。这要求你可以针对”另类设备”来对UART 进行编程,而且”另类设备”已经正确编程并且所有涉及的硬件都正常运行,

本文发布于:2024-09-24 02:21:51,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/32884.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:寄存器   状态   发送器   复位   操作   接收器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议