0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

超越实时嵌入式调试的范围

星星科技指导员 来源:嵌入式计算设计 作者:Mike Hagen 2022-06-30 10:47 次阅读

示波器是嵌入式开发人员最流行和可用的 MCU 调试工具。示波器忠实地捕捉重复的模拟信号以及重复的 MCU I/O 数字信号,但 MCU 的扩展时序和不规则数字信号的能力带来了复杂的时序挑战。当今的 MCU 具有大量引脚、总线和 I/O,需要具有足够内存的高通道数测量系统来进行实时调试。

嵌入式系统测试包括波特率、等待时间和输出电平状态的检查。在实际应用中,中档 MCU 设备具有主同步串行端口 (MSSP) 模块来实现 I 2 C 通信协议。加长的 I 2 C 通信流直接挑战示波器测量活动的能力。

在 I 2 C 协议环境中,有主设备和从设备。重要的协议通信要求是与 SDA 和 SCL 级别相关的 Start、Stop、ACK 和 NACK 信号的出现(图 1)。

pYYBAGK9DtOAYzvsAAFI3zWZMi0294.png

图 1.典型 I 2 C 从机传输。

对于从机传输,主机想要从从机读取数据并发送开始条件(S)。接收到的地址被加载,从机在第 9 位发送一个 ACK 脉冲。在 ACK 之后,从硬件降低 SCL 引脚,开始时钟延长周期。有了这个延长的时钟信号,主设备无法断言另一个时钟脉冲,直到从设备准备发送数据。发送数据装入从寄存器

然后,SCL 引脚被释放,8 个数据位在 SCL 输入的下降沿同时移出,确保 SCL 高电平期间 SDA 信号有效。来自主机的 NACK 脉冲锁存于第 9 个 SCL 输入脉冲的上升沿。如果 NACK 为高电平,则数据传输完成。从机空闲并等待下一个起始位出现。如果 SDA 线为低电平(NACK),则必须将下一个发送数据加载到 SSPBUF 寄存器中。

每当 SDA 线被采样为低电平时,就会发生总线冲突,而它正在输出和预期的高电平状态。一旦检测到总线冲突,从机进入空闲状态并等待再次寻址。

当今的嵌入式测试工具

在像上述 I 2 C 环境这样的实时调试环境中,由于主触发需要重复信号,示波器很快就会变得笨拙。在调试工具范围的另一端,有成熟的逻辑分析仪。

逻辑分析仪支持更多通道数,并且由于 PC 技术而价格下降。这也使他们能够与更大的屏幕交互,从而更容易可视化长序列的数字事件。但是,它们以数字形式显示信号,因此仅提供固件如何响应不同输入的间接视图。因此,它们通常更适合较低分辨率的调试任务。

软件仿真是另一种廉价的替代方案,但它的执行速度不如现代 MCU。随着系统复杂性的增加,这个问题只会变得更加复杂。

因此,需要与示波器互补的调试解决方案,以及具有额外实时 MCU 调试功能的工具。

五合一测试:五线工具集

五线工具集通过 高速逻辑传感、分析仪、码型发生器和接口通道来应对这一嵌入式工程挑战。

更简洁地说,五线工具有五个主要组件:

实时逻辑

逻辑分析仪

逻辑源模式生成器

波形发生器

协议交互测试工具

这些与提供五线输出数据的直观视图的免费 PC 软件配对。

LiveLogic工具的操作类似于数字示波器。这个用户友好的工具模拟了一个超便携、轻量级的示波器。该工具有两个使用示波器探头的数字通道(图 2 中的左下角),使用 10X 探头的电压输入范围为 0 至 16V。这两个通道可以以高达每秒 400 兆样本 (Msps) 的速率捕获数字样本,从而呈现 2.5 纳秒 (ns) 的时间分辨率。

LiveLogic 工具可以方便地捕获信号转换。转换之间的等待时间数据只是计算空闲时间和波形的数字电平。该工具在随附的 PC 上提供实时、类似示波器的数字显示(图 3)。

poYBAGK9DtyAfpk6AAK33SXynYw967.png

图 3. Five Wire 的 LiveLogic 工具结果的 PC 视图

为了对比 LiveLogic 工具,五线逻辑分析仪通过九个通道收集数据(右下方 20 针插座,图 2)。这些通道集成了同时支持多条总线的 10 ns 或 100 Msps 逻辑分析仪。LiveLogic 触发器具有带模式匹配的三级序列。使用此通道宽度,该工具可以捕获整个 MCU 设置。此外,五线装运包括一个 10 线逻辑分析仪探头。

逻辑源模式生成器提供多种输出模式。发生器有 9 个通道,时间分辨率为 10 ns。最大矢量数为 1,020 个矢量,信号持续时间为 30 ns 至 40 ms。三种多种生成模式包括单次、事件发生、连续、自定义和手动。控制命令包括转到、循环、等待事件和停止。

同时,波形发生器允许开发人员设置 MCU 集成 ADC 的幅度 (V) 和波形持续时间。协议交互式测试工具使用支持 SPI 和 I 2 C的 20 引脚总线仿真功能促进 PC 和五线夹具之间的通信。

补充和对比示波器体验

五线工具集旨在作为实时调试任务中示波器的补充而非替代。工具集的某些部分旨在增强嵌入式工程师的“示波器输出”。相反,工具集仅在信号变化时捕获和存储数字交易数据。

及时的事务内存使用

因为测试工具只存储信号转换,所以信号分析所需的时间和事务内存减少了。此功能允许五线平台显示更长、更精确的时间段,仅此一项就使用户远远超出了示波器的功能。由于五线软件套件在 PC 上运行,因此捕获的信号可以显示在多个大屏幕上,以便在实时分析期间增强可视化。

回到前面提到的 I 2 C 通信示例,LiveLogic 工具捕获 I 2 C SDA 和 SCL 线以进行评估,并且可以在较长时间内感测信号(图 4)。

pYYBAGK9DuWAVaA6AAHlo7L7ANo142.png

图 4.五线 LiveLogic 工具检测 I 2 C 信号。

如图 4 所示,LiveLogic CH1 跟踪 I 2 C SDA 引脚,CH2 跟踪 SCL 引脚。由于图 4 中的信号是二进制的,因此内容很难直观地解码。

请注意,信号出现在大约 1.4588 秒的时间标记处,这远远超出了示波器准确跟踪的能力。与传统的示波器相比,五线工具套件显示这些信号的时间更长,时间精度更精细。

LiveLogic PC 软件可以解码 SPI、I2CRS232 或 LIN 信号。在图 5 所示的测试中,Analyze Decoder 设置为 I2C。

poYBAGK9DvSATjDsAAJ3tPt3Lb0933.png

图 5.五线 LiveLogic 工具集设置为 I 2 C 解码模式。

LiveLogic I 2 C 解码模式将 I 2 C 信号解码为 Addr:14,Write (图 6)。从图 6 中我们可以看到,a 的产生表明接收器没有将数据线拉低以确认事务的终止,从而产生了失败的通信事件。

pYYBAGK9DvyAe3syAAMFNcKUy60879.png

图 6. I 2 C 信号的解码验证器件是否处于写通信模式。

五线工具集的精度和性能甚至可以用于调试基于 RTOS 的设计。

实现测试自动化的脚本

五线套件的另一个优点是可以使用类似 C 的脚本语言来自动化测试设置。MBScript为五线工具集中的每个工具使用人类可读的命令来正确配置给定测试的工具,还使用户能够模拟电路或生成具有条件分支和循环的复杂自定义波形。

测试数据同样以人类可读的格式输出,可以在开发团队之间共享。图 7 显示了返回数据数组的 MBScript 命令。

poYBAGK9DwWAFB6IAAKX0ZhzcQQ401.png

图 7.从自定义波形返回数据数组的示例 MBScript 命令。

从理论上讲,MBScript 编程功能允许五线工具集兼作 QA 工具,在各种条件和负载下模拟系统操作。事实上,它已经在现实世界的制造设施中用于这种能力。

清理工作台上的空间

五线工具通过在不增加成本的情况下增强性能,为嵌入式系统测试带来了附加功能。事实上,五线工具套件的价格在低端示波器的范围内,而其功能却远远超过了许多高端解决方案。

因为数据很容易以易于使用、人类可读的数据格式导出到 PC 终端,从而帮助工程师快速捕获波形并分析系统的数字操作。来自测试平台的可靠、准确的测量可以通过使用 MBScript 语言或其他流行的编码范例(如 Python)开发的各种测试脚本运行。

而且,由于 Five Wire 软件套件是免费的,并且可以独立于硬件平台运行,因此整个工程团队可以在他们自己的基于 Windows 的 PC 上分析测试数据。工程和 QA 团队可以共享单个五线工具集的多用途功能,而不是依赖多个单一用途的测试系统。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • WINDOWS
    +关注

    关注

    3

    文章

    3433

    浏览量

    87122
  • RTOS
    +关注

    关注

    20

    文章

    773

    浏览量

    118772
  • python
    +关注

    关注

    51

    文章

    4667

    浏览量

    83440
收藏 人收藏

    评论

    相关推荐

    再谈嵌入式实时操作系统

    程序的可移植性得到了增强,系统开发的工作量减轻的同时也提高了开发效率。对实时性和可靠性日益增长的要求正在塑造某些现代领域的嵌入式实时操作系统的发展方向,例如航空航天、工业控制、汽车电子、能源电力和医疗
    的头像 发表于 04-09 17:27 187次阅读
    再谈<b class='flag-5'>嵌入式</b><b class='flag-5'>实时</b>操作系统

    如何成为一名嵌入式C语言高手?

    系统中,如何调试和优化程序,如何处理实时性要求等。同时,还可以学习如何使用调试工具和硬件仿真器来辅助调试和测试。 四、积极参与开源项目和技术社区加入一些
    发表于 04-07 16:03

    如何成为一名嵌入式C语言高手?

    系统中,如何调试和优化程序,如何处理实时性要求等。同时,还可以学习如何使用调试工具和硬件仿真器来辅助调试和测试。 四、积极参与开源项目和技术社区加入一些
    发表于 03-25 14:12

    嵌入式工程师需要掌握哪些技术?

    系统开发的基础。你需要了解数字电路、模拟电路、传感器和执行器的工作原理。此外,对于处理器架构、总线协议和存储器管理等概念的理解也是必不可少的。 3. 操作系统:嵌入式系统通常需要运行一个实时操作系统
    发表于 03-04 16:38

    嵌入式系统发展前景?

    设备、健康监测等领域有着广泛的应用前景。随着人们对健康的重视程度不断提高,嵌入式系统将更为深入地应用于医疗设备和健康护理中,实现个人健康管理的智能化和实时化。 汽车电子和自动驾驶是嵌入式系统的另一个重要
    发表于 02-22 14:09

    嵌入式学习步骤

    硬件组件。 (4).开发固件:编写嵌入式系统的固件,这是嵌入式系统的软件部分。固件负责控制硬件并执行特定任务。 (5).调试和测试:在将嵌入式系统部署到实际环境中之前,您需要对其进行
    发表于 02-02 15:24

    嵌入式自学好书推荐

    工作经验的薪资可达10-15k;而拥有3年以上工作经验的薪资可在15-25k范围内。 嵌入式开发的前期入门知识主要包括以下四个方面: 1.电路知识:学习基础的电路、模拟电路和数字电路,了解基础器件、放大
    发表于 01-11 15:13

    嵌入式硬件和软件哪个好?

    嵌入式硬件和软件哪个好? 嵌入式软硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程师的,首先我们先来看看嵌入式硬件工程师吧! 嵌入式
    发表于 12-05 15:17

    嵌入式开发为什么需要输出调试信息?

    通过输出与外部设备或模块的通信信息,可以验证硬件连接是否正确,是否能够正确地与外部设备进行通信。 5.状态监控 输出调试信息可以实时监控系统的状态。这对于嵌入式系统特别有用,你可以实时
    发表于 11-28 16:46

    嵌入式程序基于源代码仿真调试

    前面一课设计了51单片机最小系统电路,使用51单片机的I/O口控制发光二极管的状态,并装载运行了使用keil编写的嵌入式程序。本次实验应用proteus结合keil对嵌入式C程序进行源代码级调试
    的头像 发表于 11-01 09:24 553次阅读
    <b class='flag-5'>嵌入式</b>程序基于源代码仿真<b class='flag-5'>调试</b>

    MCU使用嵌入式系统,这个软件的实时性还能保证吗?

    MCU使用嵌入式系统,这个软件的实时性还能保证吗
    发表于 10-13 06:11

    什么是嵌入式Linux?

    什么是嵌入式Linux? 对于很多电气、电信、通信专业的同学来说,对口专业就业方向主要有软、硬件两个方向。无论是对于学生还是就业而言,软硬件的开发学习,嵌入式物联网在近年来无疑是一个摆在面前
    发表于 10-11 13:47

    从事嵌入式工作有哪些优势?

    职业发展相对顺利。从事企业应用软件的人,工作范围广,项目变化大,日常的积累很难产生质变,容易遭遇职业瓶颈;而从事嵌入式软件的人,所涉及的专业技术范围就是那些,时间长了会越来越有经验。 嵌入式
    发表于 10-08 15:05

    STM32嵌入式操作系统介绍

    的分配、任务调度,控制、协调并发活动。• 目前在嵌入式领域广泛使用的操作系统有:嵌入式实时操作系统FreeRTOS、µC/OS-II、RThread、WindowsCE、VxWorks 等等.
    发表于 09-28 06:59

    STM32嵌入式操作系统介绍

    的分配、任务调度,控制、协调并发活动。• 目前在嵌入式领域广泛使用的操作系统有:嵌入式实时操作系统FreeRTOS、µC/OS-II、RThread、WindowsCE、VxWorks 等等.
    发表于 09-11 07:24