5

我有一个嵌入式设备(Technologic TS-7800),它宣传实时功能,但没有提及“硬”或“软”。当我等待制造商的回复时,我认为自己测试系统不会有什么坏处。

有哪些既定程序可以确定特定设备相对于实时/确定性行为(延迟和抖动)的“硬度”?

在大学期间,我可以使用一些非常简洁的硬件(好的示波器和信号发生器),所以我认为我不会在测试设备方面遇到任何问题,只是专业知识。

4

6 回答 6

5

使用这种设备,将 o-scope 与稳定时钟同步应该相当容易,每次实时系统产生输出时都会产生一个尖峰,看看这个尖峰与中心的变化有多大。变化越小,硬度越大。

于 2009-07-08T04:28:31.700 回答
5

为了澄清鲍勃的回答,也许:

使用信号发生器以某种不同的频率生成脉冲。在某个范围内随机分布是最好的。

使用信号发生器(触发信号)启动示波器。

RTOS 必须响应、执行操作并发送输出脉冲。

将 RTOS 输出馈送到示波器的输入 2。

使范围保持/收集模式。如果可以的话,让范围从 A 开始,在 B 上停止。

在一个理想的工作中,让它为你测量分布。力科会。从比您预期的慢得多的跟踪开始。您需要能够看到缓慢的异常值。您将能够看到分布。
假设一个正态分布,响应时间变化的 SD 是 SOFTNESS。(这在实践中不会真正发生,但如果你没有得到异常值,它是相当有用的。)如果存在大延迟的异常值,那么 RTOS 并不是很难。不能很好地满足最后期限。不适合用于艰苦的实时工作。许多类似 RTOS 的东西都有一个很好的曲线左边缘,像 1/f 曲线一样向下倾斜。这是组合抖动的指示。需要注意的是示波器右端的缓慢响应尖峰。如果没有异常值,请继续以更快的轨迹重复实验以获得良好的斜率图像。应该有利于您论文中的一些推测性结论。

如果对于您的应用,假设 1uS 的 delta 是可以的,而您测量 0.5us,那就太棒了。

无论如何,您可以发布结果(可能在发布的意义上,但肯定是在网络上。)

当你写完这篇论文时,从这个问题链接到论文。

于 2009-07-08T04:40:52.533 回答
2

硬实时与软件的工作方式有关,而不是硬件本身。当询问某些东西是否是硬实时时,它必须应用于整个系统(硬件、RTOS 和应用程序)。这意味着硬实时或软实时是系统设计问题。

在超过规范的负载下,即使是硬实时系统也会失败(希望有适当的故障指示),而低负载的软实时系统会给出硬实时结果。必须及时进行多少处理以及可以执行多少前/后处理是硬/软实时的真正关键。

在某些实时应用程序中,某些数据丢失不是故障,它应该只是低于某个水平,再次是系统标准。

您可以向电路板生成输入,并让一个小型应用程序对它们进行计数,并检查数据将丢失的级别。但这会给你一个特定于运行该应用程序的系统的评级。一旦您开始进行更多处理,您的计算负载就会增加,并且您现在有一个不同的硬实时限制。

该板将运行一个简单的调度程序,将为大多数任务提供可预测的硬实时性能。运行具有繁重计算负载的完整 RTOS,您可能只能获得软实时。

Edit after comment
我用来测量我的软件性能的最有效和最简单的方法(假设您使用计划)是通过在板上使用自由运行的硬件计时器并为我的周期的开始和结束加上时间戳。或者,如果您运行完整的 RTOS 时间戳,您就可以进行采集和转换。保存您的最大时间并在一秒钟内对这些值进行平均。如果您的平均值在 50% 左右,并且最大值在平均值的 20% 以内,那么您就可以了。如果不是,那么是时候重构您的应用程序了。随着您的应用程序的增长,周期时间将会增长。您可以监控所有软件更改对周期时间的影响。

另一种方法是使用硬件定时器产生一个循环中断。如果你及时重置中断。如果你错过了最后期限,你有中断处理程序发出失败信号。但是,这只会在您的应用程序花费很长时间但它依赖于硬件和中断时才会给您一个警告,因此您不会错过。

这些解决方案还消除了连接示波器以监视输出的要求,因为时间信息可以通过后台任务显示在任何类型的终端中。如果它易于监控,您将定期对其进行监控,避免在最后解决时序问题,但在引入它们后立即解决。

希望这可以帮助

于 2009-07-08T06:25:34.493 回答
1

我在这里工作时也有同样的董事会。这是一个稍微修改过的 2.6 内核,我相信......不是实时版本。

我不知道我已经阅读了文档中的任何内容,这表明它适用于严格的 RTOS 工作。

于 2009-07-08T20:47:01.907 回答
1

我认为这不是硬实时设备,因为它不运行 RTOS。

于 2009-07-09T05:33:07.047 回答
-2

我理解自己是个怪胎,但使用示波器测试具有以太网/USB/其他数字端口和巨大内部状态 (RAM) 的计算机既无效又不可靠。

您可以将任何 PC 连接到输出端口并运行适当的统计分析,而不是查看波形。

已建立的程序(如果输入信号本质上是模拟的)是针对几个特征输入测试系统 - 传统上是不同频率的尖峰、阶跃函数和正弦波 - 并测量每种输入类型的相移和方差。然后在系统规范中使用最坏情况。

同样,如果您使用标准端口,您可以轻松地在 PC 上生成这些端口。如果输入是真正的模拟输入,则需要单独的 DAC 或只是一个好的声卡。

现在,这并不能说明操作系统是实时的——它可以运行 vanilla Linux 甚至 Win CE,如果硬件足够快,仍然可以在这些测试中产生良好和稳定的结果。

因此,您需要在处理器、内存和所有端口上模拟繁重和变化的负载,让它加热并消耗内存几个小时,然后重复测试。如果延迟保持不变,则很难实时。如果它在任何负载和输入信号类型下都没有增加到可接受的限制以上,它就是软的。否则就是广告。

PS:这意味着即使对于关键系统,如果您有硬件,您实际上也不需要硬实时。

于 2009-07-08T06:04:43.723 回答