18.luck新利
的意见

物联网调试穿过硬件软件划分

嵌入式设计意味着不同学科的工程师需要紧密合作项目在设计阶段避免错误。

受欢迎程度

保罗·希尔和戈登·马克尼

调试嵌入式设计的一个重要组成部分;一定穿过硬件/软件划分。在系统层面上,嵌入式设计的功能正日益由固件,所以避免错误需要工程师与特定学科紧密合作项目在设计阶段。它也意味着抵抗的冲动点手指当一个错误不可避免。

也许是硬件软件定义的本质,使得现代嵌入式设计这样一个有趣的职业。每一个新的单片机(MCU)似乎提供更高的集成和更高级的功能,但它是完全无效的目的,直到它被编程。而这种级别的集成和配置显然是有利因素,另一个是提供大量产品设计的进步,它可以偶尔给工程师不可预见的问题。

水平的功能和可配置性特性提供的嵌入式组件(如单片机也在增加,并且这些组件提供了许多特性,简单不需要在每一个设计。这些额外的功能可能会被忽略,很少造成问题。

因为大多数工程师将升值,这些特性通常是由寄存器控制,可以通过软件修改。因此,他们会有一个默认设置在升高,如果不变,将继续在这些默认设置下运行。在许多情况下,这可能不是一个问题,但如果这些特性可能仍未使用,未经测试,有机会,他们的影响将会在一些不可预见的方式。错误可能开发系统中,由于完全合理的特点,有可能被忽视。

发现缺点是很困难的,耗时的,昂贵的,甚至在理想条件下。通常一个错误将被其影响,将提供足够的证据让工程师跟踪的原因。是否会导致硬件或软件相关主要无关紧要但也许仍然主张;最重要的是发现和纠正。

如果错的原因是一个低级的特性,它还没有被正确地初始化,然后发现它可以变得更具挑战性。理解硬件平台的初始状态会如何影响整个设计整个系统需要更高的升值,和追踪这些难以捉摸的条件真的可以消耗资源。

例如,考虑在一个单片机SPI总线访问串行闪存,这是一个相对简单的功能在许多嵌入式系统使用。如果检测到一个错误的存储值,它将表明,内存,而不是单片机,是遭受的错。这是一个客户的经验,当连续读取状态寄存器的闪存显示检测读/写错误。可以理解的是,假设存储设备失败,一个理论,被证实的事实,如果状态寄存器读取之间的短延迟了,检测故障的数量减少。此外,控制似乎明显故障。

工程师们认为这些症状指出串行内存失败,尽管它仍然是其指定周期内,只有完成了约60 k写周期。回到Adesto串行闪存设备时进行进一步测试,没有发现故障,即使超过300 k写周期被处决。

跟踪真正的错,Adesto工程师调查客户的应用和探索SPI的信号。似乎是一个错误的内存设备实际上是系统噪声的问题,和一个可以很容易纠正。虽然部分是由于阻抗不匹配的单片机之间的PCB追踪和闪存,噪声完全不是可怜的PCB设计的结果或信号完整性问题。

即使它似乎是PCB或电路设计问题,噪声实际上是超过和低于SPI信号,造成过度驱动信号的强度。过度足以破坏电荷泵的闪存设备,导致读写错误。在某些情况下,超过和低于SPI信号也可以解释为信号转换,这也会导致读写错误。


跟踪图像显示超过和低于现在的SPI

一个可能的解决办法是把一个RC电路的信号跟踪为了减缓过渡。然而,它发现的设计是基于一个相对较新的单片机使I / O引脚的驱动力量要修改固件。减少信号的驱动力量足以消除过度和脱靶SPI信号线路,有效去除系统噪声的来源。

最重要的一点并不是闪存设备做了最好的应对大量的系统噪声,但这一个可配置的特性在一个单片机介绍影响很容易解释为错误在一个单独的设计的一部分。在这个例子中,通过一个健壮的故障检测方法,解决了设计和勤奋Adesto工程师。

也许真正的教训是,似乎是通过软件硬件故障很容易固定。看上去是一个失败的一个组件可以追溯到一个不正确的配置在另一个组件。硬件和软件工程师之间的工作关系,以及客户和供应商,应足以承受的挑战,设计与最新的技术。尽管默认设置是为了帮助,他们应该得到证实。优化这些设置会导致极大改善系统性能和可靠性。

阅读完整的案例研究”,系统级噪声在数字接口如何导致虚假的错误在串行闪存吗”,在Embedded.com上。

戈登·马克尼EMEA Adesto技术应用程序经理。



留下一个回复


(注意:这个名字会显示公开)

Baidu