用MSO测试和调试混合信号系统设计
扫描二维码
随时随地手机看文章
嵌入式系统中,MCU和DSP的应用非常普遍,模拟信号和各种数字信号同时存在。传统上,工程师分别使用示波器和逻辑分析仪来进行测试和验证。但由于混合信号的复杂性,要实现对各种信号的同步触发非常困难。随着一种被称为混合信号示波器(MSO)的出现,工程师们发现嵌入式设计调试容易了很多。
MSO是一种把数字存储示波器(DSO)的所有测量能力与逻辑分析仪的某些测量能力整合到一起的混合测试仪器,并且让示波器和逻辑分析仪共享触发电路,以便让它们能同时触发,波形被同时显示和刷新。有了MSO,就能在同一显示器上看到如图1所示的在时间上对齐的多个模拟和数字波形,而且示波器通道和逻辑通道间的时延几乎可以忽略不计(<=30ps)。
图1:安捷伦6000系列混合信号示波器。
MSO 通常缺乏专用逻辑分析仪的复杂分析能力(如反汇编等)和大量的逻辑通道数;MSO的相对简单性也使得它们避免了专用逻辑分析仪的复杂操作。事实上,MSO 的主要优点之一正是它的使用模型。MSO的使用几乎和使用示波器没有任何区别,由于MSO 是高度集成的,它的使用要比使用两台独立的仪器方案容易得多。好的 MSO 应具备友好的用户界面,能提供快的波形更新率,仪器操作很像示波器而不是像逻辑分析仪。
嵌入式“chirp”设计
图 2 是Solutions Cubed 公司为一项嵌入式工业应用所开发的嵌入式“chirp”产品的方框图。该混合信号嵌入式产品的核心是Microchip PIC18F452-I/PT微控制器,它执行内部16位的指令集。由于这种特殊的 MCU 有内部总线结构并包括嵌入式ADC,因此该混合信号器件及相应的外围电路是最适合利用MSO来进行设计和调试的对象。尽管了解这项特殊设计不一定与读者的特定设计应用有非常密切的联系,但我们仍将通过全面讲述该系统的工作,使读者了解MSO 如何用于这种类型的混合信号测量应用。
这项设计的最终目标是依据各种模拟、数字和串行 I/O 输入条件,产生各种长度、形状和幅度的“chirp”信号(该信号是包括特定周期数的RF脉冲模拟信号,在宇航∕国防和汽车应用中经常见到)。该MCU 同时检测如下三种模拟和数字输入,以确定需产生的输出chirp信号的模拟特性:
图2:依据模拟、数字和串行 I/O产生模拟“chirp”输出的混合信号嵌入式设计。
1. 利用 MCU 并行数字 I/O 端口之一来监测用户控制面板的状态,从而确定所产生的输出chirp信号的形状(正弦波、三角波或方波)。
2. 通过 MCU 上的一个 ADC的输入来监测加速度模拟输入传感器的输出电平,来确定所产生输出chirp信号的幅度。
3. 使用 MCU 上的专用 I2C 串行 I/O 端口,来监测串行 I2C 通信链路的状态,从而确定输出chirp信号中产生的脉冲数。这一 I2C通信输入信号从该嵌入式设计的另一智能子系统部件中产生。
根据模拟、数字和串行这三个输入状态,MCU 向外部 8位DAC连续输出并行信号,以产生各种幅度、形状和长度的模拟chirp信号。未经滤波的DAC输出阶梯信号,被送入一个模拟低通滤波器,在这里对信号进行平滑滤波并降低噪声。这一模拟滤波器也为该输出信号引入预先确定的相移量。最后,MCU 通过另外的数字 I/O 端口产生并行数字输出,来驱动显示系统状态信息的 LCD 显示器。
图3:MSO 捕获由 MCU 控制的 DAC的并行数字输入和模拟输出。
用 MSO 启用和调试嵌入式“chirp”设计
在这项应用设计中,设计∕编程 MCU 的第一步是为 MCU 的 I/O配置适当数量的模拟和数字I/O 端口。您要折衷平衡配置MicroChip公司的这种特殊微控制器中的模拟 I/O 端口和数字 I/O 端口的数量。
在尝试编码 MCU来监测各种输入和产生规定的最终要求的输出信号之前,我们决定首先产生启用该嵌入式设计某一部分∕某项功能的测试代码,在增加交互式的复杂性之前,先验证它的正确工作和信号完整性。所启用和调试的第一部分电路∕功能是外部的输出 DAC和模拟滤波器。为验证该电路和内部固件的工作是否正确,我们最初对MCU 编码,使其产生固定幅度的连续和重复的正弦波,而不考虑输入控制∕状态信号条件。
图 3 所示为MSO的屏幕图像,即用来捕获驱动外部 DAC 数字输入的该MCU数字 I/O端口的连续数字输出(下方的蓝色迹线)。此外我们还能看到在时间上对准的转换器阶梯波输出(上方的黄色迹线)和经模拟滤波的输出信号(中间的绿色迹线)。这些特定信号的输出电平较低,仅为 8位DAC(最大256级)的 4位 (16级电平),我们能容易地在示波器上观察该转换器的未经滤波的阶梯波输出特性。
图4:利用模拟和数字码型触发相结合,MSO在 50%交叉点触发。
当 DAC输出到达其最高输出电平(屏幕中央)时,我们把这一特定采集设置到触发状态。传统示波器在这种指定点的触发是不可能的,因为示波器触发需要沿的跳变 —— 示波器不能在具有一定范围的信号的“波顶”触发。为在输出信号的这一点∕相位处触发,我们设置了简单的单电平码型触发条件,该条件基于DAC的(MCU I/O 端口的输出)数字输入信号,而该信号与外部转换器最高输出模拟电平相一致。为在波形的某一精确点触发,我们送入“HHHL LHHL”的并行二进制码型进行触发。由于该 MSO 使用“有资格的”码型触发,示波器始终在规定码型的开始处触发,而绝不会在不稳定∕跳变处触发,因为示波器要求该逻辑电平至少稳定2ns,然后只有在送入稳定的码型时才会触发。注意对于某些混合信号测量解决方案∕选件,只要存在规定的码型触发条件时就能触发。这意味着它们有可能在码型的中间态,或在跳变∕切换状态进行触发。没有“有资格的”码型触发,其结果将会是不稳定的触发。
图 4 显示 MSO在DAC的 50% 输出电平处提供精确触发的一次触发建立情形。实现这样的触发,除了模拟触发条件外,我们还利用触发在并行数字输入信号上的触发码型。应记住并非所有 MSO∕混合信号测量解决方案都允许模拟和数字触发条件组合的混合信号触发。但对于相同电平(50%上升电平和 50% 下降电平)的两个模拟输出条件,与上升或下降点一致的触发要求的触发电平比8位输入码型中略大一点。通过另外限定模拟通道 2 上的电平到“低”电平,示波器就能使用模拟和数字码型触发的组合,在所需要的相位上触发(模拟信号在高于模拟触发电平时被视为“高电平”,在低于触发电平时被视为“低电平”)。
图 4 中也显示了自动参数测量,包括与DAC 阶梯波输出相关的、经滤波后的输出信号的幅度、频率和相移。
图5:传统示波器的边沿触发无法同步特定长度的chirp。
在启动和验证了外部 DAC 和模拟滤波电路正确运行后,该设计∕启动过程的下一步是根据串行 I2C 输入产生规定数量的非重复正弦波脉冲(chirp)。图 5 显示使用标准的示波器沿触发,所得到的不同长度chirp的重叠(无限余辉)。传统示波器的沿触发不可能实现对规定长度chirp的触发。
使用 MSO 的 I2C 触发能力,示波器就能同步特定串行输入条件下的捕获,用来指示 MCU 产生规定长度(脉冲数)的输出chirp,如图 6 和图 7 所示。
图 6 显示了MSO利用在特定的串行地址和数据内容上的I2C 触发来触发只有 3 个周期长的chirp信号的能力。而图 7则显示对长度仅有 1 周期的chirp的触发能力。数据通道 D14 和 D15(上方的两条蓝色数字迹线)分别被定义为 I2C 时钟和数据输入触发信号。实际上我们能规定16个数字通道中的任何一个以及2到4个模拟示波器通道连续触发在这2 个串行输入信号上。在监测串行输入和模拟输出信号时,D0-D7 被设置来检测DAC 输入(MCU 输出)信号(下方的 8 条蓝色迹线和读数字迹线),如图 6 和图 7 所示。
虽然图中没有显示,但我们可以根据用来确定输出信号幅度的输入模拟加速度传感器的其它模拟输入信号,把示波器的其它模拟通道设置到同步探测、采集并触发 MSO。此外,我们还能利用未使用的 MSO 数字通道,用以监测和∕或进一步实现对数控面板输入或 LCD 输出驱动器信号的高质量触发。
图6:用 MSO 中的 I2C 触发一个 3 周期长的chirp信号。图7:用 MSO 中的 I2C 触发仅有 1 周期长的chirp信号。