Philips AN462 User Manual

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