5

リアルタイム機能をアドバタイズする組み込みデバイス ( Technologic TS-7800 ) を持っていますが、「ハード」または「ソフト」については何も述べていません。メーカーからの回答を待っている間、自分でシステムをテストしても問題ないと思いました。

リアルタイム/決定論的動作 (レイテンシーとジッター) に関して特定のデバイスの「ハードネス」を決定するための確立された手順は何ですか?

大学にいるので、かなりきちんとしたハードウェア (優れたオシロスコープと信号発生器) にアクセスできるので、テスト機器の面で問題に遭遇することはないと思いますが、専門知識だけです。

4

6 に答える 6

5

この種の機器では、o-scopeを安定したクロックに同期し、リアルタイムシステムが出力を生成するたびにスパイクを生成し、そのスパイクが中心​​からどれだけ変化するかを確認するのはかなり簡単なはずです。ばらつきが少ないほど硬度が高くなります。

于 2009-07-08T04:28:31.700 に答える
5

ボブの答えを明確にするために多分:

信号発生器を使用して、さまざまな周波数でパルスを生成します。ある範囲にわたるランダムな分布が最適です。

信号発生器(トリガー信号)を使用してスコープを開始します。

RTOSは応答し、それを実行し、出力パルスを送信する必要があります。

RTOS出力をスコープの入力2にフィードします。

スコープを永続化/収集モードにします。スコープを取得してAで開始し、可能であればBで停止します。

理想的な仕事で、あなたのために分布を測定するためにそれを入手してください。LeCroyはそうするでしょう。予想よりもはるかに遅いトレースから始めます。遅い外れ値を確認できる必要があります。分布を見ることができます。
正規分布を仮定すると、応答時間変動のSDはSOFTNESSです。(これは実際には発生しませんが、外れ値が発生しない場合はかなり便利です。)レイテンシが大きい外れ​​値がある場合、RTOSはそれほど難しくありません。締め切りに間に合わない。それなら、ハードなリアルタイム作業には不向きです。多くのRTOSのようなものは、曲線の左端が良好で、1/f曲線のように傾斜しています。これは、組み合わされたジッターを示しています。注意すべき点は、スコープの右端での応答の遅いスパイクです。傾斜の良好な画像を取得するための外れ値がない場合は、より高速なトレースで実験を繰り返します。あなたの論文のいくつかの推測的な結論に良いはずです。

アプリケーションの場合、1uSのデルタで問題がなく、0.5usを測定すると、すべてクールです。

とにかく、あなたは結果を公開することができます(そしておそらく公開の意味で、しかし確かにウェブ上で)。

あなたがそれを書いたとき、この質問から論文にリンクしてください。

于 2009-07-08T04:40:52.533 に答える
2

ハード リアルタイムは、ハードウェア自体よりもソフトウェアの動作に関係しています。何かがハード リアルタイムかどうかを尋ねる場合、システム全体 (ハードウェア、RTOS、およびアプリケーション) に適用する必要があります。これは、ハード リアルタイムまたはソフト リアルタイムがシステム設計の問題であることを意味します。

仕様を超える負荷がかかると、ハード リアルタイム システムでさえ障害が発生しますが (できれば適切な障害表示があれば)、低負荷のソフト リアルタイム システムではハード リアルタイムの結果が得られます。時間内にどれだけの処理を行う必要があるか、およびどれだけの前/後処理を実行できるかが、ハード/ソフト リアルタイムの真の鍵となります。

一部のリアルタイム アプリケーションでは、一部のデータ損失は障害ではなく、システムの基準である特定のレベルを下回っているだけです。

ボードへの入力を生成し、小さなアプリケーションでそれらをカウントして、どのレベルでデータが失われるかを確認できます。ただし、そのアプリケーションを実行しているシステムに固有の評価が得られます。より多くの処理を開始するとすぐに、計算負荷が増加し、別のハード リアルタイム制限が発生します。

このボードは、必要最小限のスケジューラーを実行し、ほとんどのタスクで予測可能な優れたハード リアルタイム パフォーマンスを提供します。計算負荷の高い完全な RTOS を実行すると、おそらくソフト リアルタイムしか得られません。

Edit after comment
ソフトウェアのパフォーマンスを測定するために使用した最も効率的で簡単な方法 (スケジューラを使用すると仮定) は、ボード上でフリーラン ハードウェア タイマーを使用し、サイクルの開始と終了にタイム スタンプを付ける方法です。または、完全な RTOS タイム スタンプを実行すると、取得と移行が行われます。最大時間を保存し、1 秒間の値の平均を実行します。平均が約 50% で、最大が平均の 20% 以内であれば問題ありません。そうでない場合は、アプリケーションをリファクタリングするときです。アプリケーションが成長するにつれて、サイクル時間は長くなります。すべてのソフトウェア変更がサイクル タイムに与える影響を監視できます。

もう 1 つの方法は、ハードウェア タイマーを使用して周期的な割り込みを生成することです。間に合っている場合は、割り込みをリセットします。締め切りに間に合わない場合は、割り込みハンドラーが失敗を通知します。ただし、これはアプリケーションの実行に時間がかかる場合にのみ警告を表示しますが、ハードウェアと割り込みに依存しているため、見逃すことはできません。

これらのソリューションは、バックグラウンド タスクによって時間情報をあらゆる種類の端末に表示できるため、出力を監視するためにスコープを接続する必要もありません。監視が簡単な場合は、定期的に監視し、最後にタイミングの問題を解決するのを避けますが、問題が発生したらすぐに解決します。

お役に立てれば

于 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 または単純に優れたサウンド カードが必要になります。

OS がリアルタイムであることについては何も言いません。バニラ Linux や Win CE を実行していても、ハードウェアが十分に高速であれば、これらのテストで良好で安定した結果が得られます。

そのため、プロセッサ、メモリ、およびすべてのポートで大きく変化する負荷をシミュレートし、数時間加熱してメモリを消費させてから、テストを繰り返す必要があります。レイテンシーが一定に保たれている場合、それは難しいリアルタイムです。負荷や入力信号の種類に関係なく、許容限界を超えない場合は、ソフトです。そうでなければ、それは広告です。

PS: 重要なシステムであっても、ハードウェアがあれば実際にはハード リアルタイムは必要ないということです。

于 2009-07-08T06:04:43.723 に答える