タグ付けされた質問 「embedded」

組み込みシステムは、1つまたはいくつかの専用機能を実行するように設計されたコンピューターシステムで、多くの場合、リアルタイムコンピューティングの制約があります。多くの場合、ハードウェアと機械部品を含む完全なデバイスの一部として埋め込まれます。

6
なぜ人々はマイクロコントローラー上でWebサーバーを作成するのですか?
マイクロコントローラを使用してWebサーバーを作成している人に出会ったことがありますが、なぜそうするのでしょうか?その用途は何ですか?このようなサーバーを作成するには、C言語以外にどのようなスキルセットが必要ですか?このような小さなRAMを備えたこれらの小さなサーバーには非常に興味があります。

5
加速度センサーのデータ特性の分析とフィルターの設計
基本的な運転シナリオである25MPHの通常の道路の約32秒分の加速度計データと、約7個のくぼみと道路の大まかなパッチがあります。加速度計は、両面テープで私の車のダッシュボードに取り付けられています。 問題:加速度計からのノイズの多いすべてのデータがあり、ポットホールイベントが発生したことを検出する簡単な方法を作成する必要があります。以下は、時間領域とFFTのデータのグラフです。加速度計はGForceで測定しています 基本的に、私は私のarduinoに、大学院レベルの数学と技術を使用せずに、かなり高い精度でpot穴が発生したことを知ってほしい。 100hzでサンプリングされた加速度計には、Z軸に50HZ RCローパスフィルターがあります。 Here is the CSV data for the 32 seconds of accelerometer readings TIME, GFORCE format: http://hamiltoncomputer.us/50HZLPFDATA.CSV 更新:これは、Arduinoで得られる最高のサンプリングレートでサンプリングされた加速度計1000HZのRAWフル帯域幅です。CSVファイルの直接ダウンロード:約112秒のデータ http://hamiltoncomputer.us/RAWUNFILTEREDFULLBANDWIDTH500HZ.csv 黒いトレースは、フィルタリングされていないRAWの加速度センサーデータです。青色のトレースは、FFT、Dominate 2HZ、および12HZで検出された極端な周波数に基づくバンドストップフィルターによってフィルタリングされます。 時間領域では、ポットホールイベントは次のようになります。 FFTの10から15HZの成分が何なのか、実際のポットホールなのか、それとも道路に対する車輪のホイールホップなのか、それとも車の共振周波数なのかわかりません。 FFT: 実際のポットホールイベントのように見えますが、ここはHPF @ 13HZです。ポットホールの主要な機能は強化されているようです ポットホールをリアルタイムで検出してカウントできるようにしたい サスペンションは、動揺病を引き起こす10〜13 HZよりもずっと遅く動くはずです。 更新: AngryEEの提案に従って、加速度計1000HZの全帯域幅と、arduinoで得られる最大サンプリングレートを使用しました。 FFT: ポットホールイベントとその周辺のバンプとロードノイズのサンプルデータを次に示します。 ダイオードエンベロープ検出器回路を追加、出力は同じように見えます...加速度計は常に0〜3.3ボルトを出力します... 更新: 多くの路上試験から、Z軸上の私の車で1.6Gの最大45 MPHを超えることはありませんでした。rand()を使用して擬似ランダムGforce加速を生成しました。 私の考えは、1〜3秒のデータウィンドウを見て、Z軸の変位を計算できる場合ですが、加速度計のドリフトと積分の誤差が心配でした。ここで90%でさえ正確である必要はありません。> 70%は良いでしょうが、一度に1から3秒の変位を見ている場合、それはリアルタイムで可能ですか?このように、変位が1インチ、2インチ、5インチなどより大きいかどうかを確認できます。変位が大きいほど、バンプまたはポットホールは粗くなります。 私がこれを正しく行っているかどうかを確認できますか?基本的にデスクトップで設定し、rand()を使用して-1.6から1.6 Gのランダムな加速を生成し、50HZのサンプリングレートで3秒間のデータをキャプチャします * nixを実行する場合は、Windows.hのSleep()を使用して20mSの遅延、50HZのサンプリングレートを作成しています 私はちょうどコードがあなたに合っているかどうかを見たかった、私はまだ特定のバッファをしていません、私はそれを実装する方法についてちょっと混乱しています:コメントアウトされたコードは、私がそれに取り組んでいるクラスのものです、しかし、私はまだ100%を理解していません。循環バッファーを使用すると、データのウィンドウを連続して正しく移動できますか? #include …

6
VerilogまたはVHDL over Cを使用する動機は何ですか?
私はプログラミングのバックグラウンドを持っており、ハードウェアやファームウェア(せいぜい少し電子機器とArduino)をいじりすぎてはいません。 Cやアセンブリなどのプログラミング言語で、VerilogやVHDLなどのハードウェア記述言語(HDL)を使用する動機は何ですか? この問題は選択の問題ですか? ファームウェアがHDLで記述されているハードウェアを読むと、命令を並行して実行できるという明らかな利点があります。ただし、ファームウェアをCで書くかアセンブリで書くか(CPUが必ずしも必要ない場合、アセンブリはどのように適切ですか?) したがって、いくつか質問があります(何かを説明することをheしないでください): ファームウェアは、実際にはHDLまたはソフトウェアプログラミング言語で記述できますか、それとも同じミッションを実行するための別の方法ですか?実世界の例が欲しいです。各オプションから生じる制約は何ですか? ソフトウェアを介したファームウェアの一般的な使用は、ハードウェアアクセラレータ(GPU、ネットワークアダプタ、SSLアクセラレータなど)で使用されることを知っています。私が理解しているように、この加速は必ずしも必要ではありませんが、推奨されるだけです(たとえば、SSLや複雑なアルゴリズムの加速の場合)。すべての場合にファームウェアとソフトウェアのいずれかを選択できますか?そうでない場合は、ファームウェアが明確かつ明確に適切であるケースに満足しています。 ファームウェアのほとんどがROMまたはフラッシュに焼き付けられていることを読みました。そこにどのように表されていますか?ソフトウェアのようなビットで?もしそうなら、深遠な違いは何ですか?ファームウェアの場合、適応回路が利用可能ですか? いくつかの仮定であちこちで間違いを犯したと思いますが、ご容赦ください。ありがとうございました!

4
マイクロコントローラの異なるポートの個々のピンをレジスタにマッピングし、レジスタ値を変更するときにそれらの値を変更できますか?
Q:マイクロコントローラーの異なるポートの個々のピンをレジスタにマッピングし、レジスタ値を変更するときにそれらの値を変更できますか? シナリオ:マイクロコントローラーの各ポート(8ビット)からいくつかのピンを使い果たしました。次に、8ビットバスを必要とするデバイス(D0〜D7 IN SEQUENCEを想定)をインターフェイスさせます。つまり、1対1で接続できるように、コントローラーから8ピンが必要です。 portx0 -> D0 // x is the name of port followed by bit location on that port portx1 -> D1 ... portx7 -> D7 しかし、このデバイスと接続できる8ピンのポート全体ではなく、portxのピン、portyのピン、portzのピンがあります。新しい接続シナリオは次のとおりです(それぞれマイクロコントローラーからデバイスへの接続)。 portx0 -> D0 portx1 -> D1 portx2 -> D2 porty4 -> D3 porty5 -> D4 porty6 -> D5 porty7 -> D6 …

3
Cで@を使用した変数宣言
私はいくつかのCコードを読んでいて、プログラムでこの宣言に遭遇しました: unsigned char serv_ctr @0x0002; Mplab XC8 v1.35 Cコンパイラで「@ 0x0002」が何のためにあるのか、誰かがドキュメントを教えてくれたり、説明してもらえますか?
11 c  embedded  mplabx  xc8  variable 

3
組み込み設計向けのPowerPCの人気の理由
質問は以前に尋ねられており、もうアクティブではありませんが、答えにはまったく満足していません。 PPCの優れている点は何ですか?何かがなければならない David Kessnerの回答によると、PowerPCにはかつて理由がありましたが、今日はありません。 これはデスクトップコンピュータには当てはまるかもしれませんが、組み込みシステムには当てはまりません。3つの主要なゲームコンソールはすべてPowerPC(Wii、Xbox 360、PS3)を使用しています。マイクロソフトは当時、完全にIntelに集中しており、2005年に新しいXboxをIntelからPowerPCに切り替えました。 ネットワークデバイスは多くの場合PPCを特徴としており、多くの自動車用マイクロコントローラーも同様に機能し、まだ新しいPPC製品開発があります(例:Freescale)。さらに、PowerPCは、ストレージシステム、医療、または産業オートメーションの分野にも見られます。 もちろん、下位互換性(レガシーソフトウェアのサポート)は1つのドライバーです。しかし、もっとある必要があります。 小型のマイクロコントローラから高性能コンピューティング用のプロセッサまで、PowerPCファミリ内の高いスケーラビリティとアプリケーションプログラミングインターフェイスの互換性ですか? 機能安全の認定を受けた設計と経験の堅牢性? 高温範囲のサポート、特に高温用のファンレス設計?

4
組み込みソフトウェアの設計
私はRTOSを使用して組み込みソフトウェアプログラミングを始めています。私はすでにデスクトップアプリケーションの開発者なので、アクティビティ図、シーケンス図、ユースケースなどのUML図を使用して組み込みソフトウェアをモデル化するのはどのようなものか疑問に思っていました。 組み込みソフトウェアは、デスクトップアプリケーションと同じように、UMLを使用して設計されていますか?それは最良の選択肢ですか、それとももっと良い選択肢がありますか?いくつか例を挙げてもらえますか? これを行う特定のツールはありますか?

6
非標準シリアル信号を効率的にデコードする方法
私は、RF送信ASICと、最終的にPCにデータを送信する必要があるワイヤレスレシーバーを含むプロジェクトに取り組んでいる研究チームの学部生です。 レシーバーは高速、連続、非同期、非標準のシリアル信号(SPI、I2C、UARTなどではない)を出力するので、私の仕事は、レシーバーをコンピューターに接続するマイクロコントローラーソフトウェアを作成することです。現在の私のアプローチは、エッジトリガー割り込みを使用してデータを循環バッファーに配置し、メインループでビットごとのデコードプロセス全体を実行することです。マイクロコントローラーは、USB(仮想COMポート)を使用してこのデータを同時にコンピューターに出力する必要があります。 これが私が抱えている問題であり、私が予期している問題の1つです。 非常に強力な72 MHz ARM Cortex M3プロセッサを使用しても、バッファリングされたデータを十分に速く処理できません。ビットレートは400 Kbps(2.5 us /ビット)です。参考までに、ビットあたり180サイクルしか残しません(デコードとISRを含み、オーバーヘッドは30サイクルまで!)。MCUは、メインループでポーリングする他の多くのタスクも処理する必要があります。 USB仮想COMポートドライバーも割り込みベースです。これにより、ドライバーが最終的にプロセッサに長い間中断され、ビットが送信される可能性のある2.5マイクロ秒(180サイクル)のウィンドウを見逃すことになります。このような割り込みの競合/競合が通常はどのように解決されるのかわかりません。 だから問題は単純に、これらの問題を解決するために何ができるのか、これはまったく正しいアプローチではないのですか?私は、ソフトウェア中心のアプローチを少なくすることも検討します。たとえば、デコード用に何らかの種類のハードウェアステートマシンを備えた専用のUSBチップを使用しますが、これはなじみのない領域です。

7
マイクロコントローラープログラミングとオブジェクト指向プログラミング
C ++でいくつかの基本的なオブジェクト指向プログラミング(Bツリー、ハッシュアルゴリズム、二重リンクリストの作成)を行い、Cで小規模なプロジェクト(関数電卓の作成など)を行いました。 ハードウェアプログラミング(特にマイクロコントローラー用)とソフトウェア/オブジェクト指向プログラミングは、プログラマーが持つ必要のある考え方や「考え方」の点でどの程度違いますか? 私のほとんどの人は通常、他の人よりも難しいと考えられていますか? (上記のように)私のバックグラウンドでは、ハードウェアプログラミングに入る前に多くの準備が必要ですか、それともあまり準備をせずにすぐに飛び込むことができますか?

8
ほとんどのALUはどのように構築されますか?「独自に構築する」ことは可能ですか?
私は本当に、非常に低いレベルのコンピューターについて学びたいと思っています。私は多くの自作のページを見てきましたが、それは取り入れることがたくさんあります。私は大学で電子工学のクラスを受講しましたが、私たちは主題について本当に深く掘り下げませんでした(それはコンピューターサイエンスでした。実際にはアルゴリズムなどでした)。 とにかく、ほとんどのALUはどのように構築されましたか?それはコンピューターの唯一の部分ではありませんが、それでも重要な部分です。 そして、(学習目的で)論理ゲートを使用して独自のALUを構築することはできますか?これはおそらくより知識のある人には愚かに聞こえるかもしれませんが、私は理解しようとしています。(一体、単純な加算器でさえきちんとしたプロジェクトになるでしょう。)もしそうなら、これはどのように行われますか?ハードウェアの例はありますか?(私はGoogleを見回しましたが、そのようなことを説明する段階的なガイドを備えたものは何も見つかりません)。
11 embedded  alu 


5
FPGA上の組み込みLinux
この投稿を改善してみませんか?この質問に対する詳細な回答を提供します。これには、引用と、回答が正しい理由の説明が含まれます。詳細が不十分な回答は編集または削除される場合があります。 FPGAの使用経験は非常に限られています(Altera-ビジュアルデザインツールのみを使用)。 FPGAが必要な新しいプロジェクトを計画しています。同じボードで実行されている実際のLinux(主にTCP通信と一部のDSP)から多くの恩恵を受けることができます。 私の質問は、サポートされている組み込みLinuxが用意されている推奨FPGAはありますか?派手なドライバーはありません(ただのイーサネット、wifiはプラスかもしれません...)。私は、FPGAに組み込まれたマイクロコントローラーがあると想像します(これは、FPGAを大量に消費し、より大きなFPGAが必要になることを意味します)。
10 fpga  embedded  linux 

2
AVRのUARTをポーリングする必要がない方法はありますか?
別のAVRからUART経由でデータを受信して​​います。しかし、私は他のことをしているので、常にUARTをポーリングし続けたくありません。割り込みがあることはわかっていますが、受信完了に対しては1つしか表示されません。転送を完了するには、ポーリングする必要があると思います。
10 avr  embedded 

5
組み込みCコードの信頼性を向上させるために使用できるツールまたは標準は何ですか?
私は通常、PICをCでプログラムします。通常、スイッチモードコンバーター用です。コードの信頼性を向上させるために使用できるMISRA Cなどのさまざまな静的分析ツールや標準について聞いたことがあります。もっと知りたいのですが。私のコンテキストに適した標準またはツールは何ですか?

2
組み込みアプリケーション用の固定小数点三角法
組み込みアプリケーションで回転(およびその他の)変換を行う必要があります。これには、sin()、cos()およびtan()関数が必要です。私はあなたがルックアップテーブルを使用できることを知っています、そしてそれは私が自分の研究をすることを見つけることができた唯一の解決策ですが、そこに良い固定小数点トリガーライブラリがありますか? アプリケーションにcortex M3を使用することを考えているので、アプリケーションをすばらしく保つために、できるだけ浮動小数点から離れたいと思います。
9 c  embedded  arm 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.