没有软件,硬件是否无法调试?

时间:2010-03-10 13:18:30

标签: testing hardware diagnostics

免责声明:我(大多数情况下)硬件无知。这可能是我的问题。但是我觉得很难接受调试硬件是不可能的,所以我只想得到一些第二意见。

我们有一个问题。某些操作(在运行时交换Usb设备)可能会破坏Usb板上的Usb集线器或芯片(它是自定义硬件)。这是一个模糊的问题(看起来“爆裂”程度可能会有所不同)并且问题表现为间歇性时尚,各种症状非常难以可靠地再现(通常是包的随机损坏) )。

这导致难以确定新报告的问题是由于此硬件故障还是实际上是软件中的错误。我们已经对这些设备实施了保护,但如果未受保护的设备与受保护的设备一起使用,则可能会污染(现在受保护的)设备。其中一个端口也没有受到保护,这意味着有人仍然可以通过意外使用错误的端口“杀死”应该安全的设备。

这样做的结果是,如果不完全替换所有硬件,我们无法分辨出哪个设备会遇到这个问题(我们已经为大多数生产硬件咬了一口子,但仍有很多开发和QA有这个问题的硬件)。

我认为有可能,给定一块硬件可以使用某种硬件诊断工具来确定套件是否有故障。我生活在一个梦幻世界吗?我的硬件部门告诉我,唯一可以证明错误的测试是软件测试......但正如我所说,症状很难再现。由于我不熟悉硬件,我不知道这是否是唯一的答案。因此,我问世界。

6 个答案:

答案 0 :(得分:6)

内置测试设备用于执行内置测试

BIT BIT

(不涉及字节。)

对于军事/航空航天设备来说,使用额外的硬件进行自我测试是完全正常的。

最初的IBM PC内置了大量令人惊讶的测试硬件。

对于您的设备,测试设备和一些统计分析可以解决问题。 这可以在加密狗的硬件中完成,但坦率地说,使用某些软件会更容易。 使用两个背靠背USB到RS232串行转换器来制作USB环回设备。 发送大量数据,校验和数据包并测量错误率。

我假设您的错误发生在in-> out以及out-< in。

真的,你的硬件人员需要查看一些应用笔记; USB IS hotplug-safe如果根据本书完成。 有一个很酷的例子就是将USB芯片连接到电路板的光耦合,以防止这种情况发生。 USB芯片连接到主机,由主机供电,USB芯片的接口是SPI,SPI光耦合到板的其余部分。

至于你,筹码部分失败。受伤的设备可能会工作几个月然后死亡。静电放电(“静态消除”)可以做与您描述的相同的事情。设备可能因震动太小而无法感受到。

半导体中的导线和特征是微观的,并且容易被杂散电流损坏。 如果硬件设计大部分是正确的,那么当您处理插拔设备时,您所经历过的问题的可能原因就是ESD。你的设备有它自己的电源,它的地电压相对于USB电缆的另一端浮动,直到连接完毕。

希望这会有所帮助。

答案 1 :(得分:4)

不,不是。

许多硬件制造商都从硬件测试开始。输入和输出(IO)只是评估电路流量的来源。考虑软件和硬件在布尔运算中处理的抽象。

硬件的可读性稍差一点!

答案 2 :(得分:1)

当谈到它时,硬件的通信线路(最基本的)是通过各种引脚的高电平和低电平。

我有一个兄弟(在汽车技术行业)使用和静电计来测量引脚上的电压以隔离问题所在(我在那个领域真的不够聪明,不知道他是怎么做的它)。

答案 3 :(得分:1)

您的问题是唯一已知的症状很难检测(USB流中的数据包损坏),您将需要软件(在某种程度上)来检测它。

如果你能弄清楚为什么数据包被破坏(电压不好?)那么你可能会用硬件检测到它?

否则你需要某种强大的测试工具包和软件来发送/接收大量数据包以查找损坏?

答案 4 :(得分:1)

没有。这就是示波器和逻辑分析仪的用途。还有更专业的设备,如USB testers

答案 5 :(得分:1)

硬件越简单,您对信号的访问越多,您就越有可能以“纯硬件”的方式对其进行诊断。例如,如果您将一个简单的并行端口卡插入PCI插槽,将总线分析器放在PCI总线和适配器的输出上相对简单,看看当卡被寻址时输出是否正确。但请注意,您仍然需要尝试从PCI总线访问该卡,这意味着(A)某种PCI总线仿真,这将是一大堆测试硬件,或(B)a廉价的现成PC,带有几行测试代码。

但是在频谱的另一端,假设您正在处理大型FPGA。您可以在FPGA中获得大量逻辑,并且您无需访问所有您想要的测试点。我个人遇到了嵌入在FPGA中的串行端口的错误,其中移位寄存器预加载寄存器的竞争条件偶尔会破坏一个字节。假设VHDL可能已被重新设计以显示测试点,并收集了大量示波器和分析器,但从管理角度来看,尝试用软件解决问题更具成本效益。在正常使用情况下,每个蓝月亮都会出现一次有问题的bug。我们通过猜测引发错误的条件,并完善测试代码,直到我们拥有可以每分钟2-3次重现错误的测试软件。那时我们实际上可以为VHDL人员提供线索,帮助他们快速解决问题。

长话短说,在一周内,硬件错误通过软件被抽出,而从相同的信息开始并且“仅硬件”可能没有更快,并且需要大量昂贵的测试设备。所以,是的,你可能没有软件就可以做到,但是像往常一样,这是一种权衡,你必须在软件数量与硬件之间找到合适的平衡点。

相关问题