メニュー English Ukrainian ロシア語 ホーム

愛好家や専門家向けの無料テクニカル ライブラリ 無料のテクニカルライブラリ


無線電子工学および電気工学の百科事典
無料のライブラリ / 無線電子および電気機器のスキーム

私たちはマイクロコントローラー上でデバイスを設計します。 無線エレクトロニクスと電気工学の百科事典

無料のテクニカルライブラリ

無線電子工学と電気工学の百科事典 / マイクロコントローラー

記事へのコメント 記事へのコメント

マイクロコントローラー (MC) に基づいてデバイスを作成するという最初のアイデアとそのプログラムの開発の間には、アルゴリズムのブロック図を作成するという重要な段階があります。 それはしばしば忘れられたり、さらに悪いことに無視されたりします。 プログラミングは、本質的に試行錯誤によって「ヒューリスティックに」実行されます。 その結果、何とか動作するものの、作成者ですら完全に理解できず、最新化するのが難しい、厄介なプログラムが作成されます。 ただし、非常に単純な方法が長い間知られており、プログラマによって使用されており、言語によるアルゴリズムの定式化から始めて、そのブロック図を正しく設計することができます。 この記事の著者の専門的な関心は、Z8 シリーズの MK の開発分野にありますが、彼が提示した内容は他のタイプの MK にも同様に当てはまります。

MC システムとオペレータおよび制御オブジェクトとの対話は、図に示すように表すことができます。 1 スキーム [1]。 一般に、制御対象にはアクチュエーターやセンサーが搭載されます。 人間のオペレータは、マスター デバイスの助けを借りて MC を操作し、表示デバイスの読み取り値からオブジェクトの状態に関する情報を受け取ります。 前者はスイッチ、ボタン、可変抵抗器であり、後者は光(グラフィックおよび英数字を含む)インジケータ、音を発するその他の信号装置です。

マイクロコントローラーでデバイスを設計します

図に示されているすべての機能ノードと接続は、複雑な対話型制御および管理システムでのみ必要です。 いわゆる開ループ制御システムでは、MC はオブジェクトの状態に関する情報を一切受信せずに「盲目的に」動作します。 場合によっては、特にオブジェクト自体を観察することで制御の結果を評価できる場合には、オペレータに作業 (自分自身とオブジェクトの両方) に関する情報さえ与えないことがあります。 クローズド制御システムでは、MC はセンサーの読み取り値に応じてオブジェクトの制御動作を修正しますが、ここでも表示デバイスは必要ありません。 制御システムにはアクチュエータは含まれておらず、オペレータは設定装置を使用して、制御パラメータを選択するか、インジケータの動作モードを切り替えるだけです。

MC でシステムを設計するための方法論 [2、3] には、問題の定式化と分析、その工学的解釈、アルゴリズムのフローチャートとアプリケーション プログラムのテキストの開発が含まれます。 このようなシステムでは、ソフトウェア ツールに最大数の機能を割り当てる傾向があります。 回路内のシステムの必要なメモリ量、速度、信頼性は、最終的には実装の有効性に依存します。 もちろん、コンセプトの開発や製品自体の設計はまだ行われていませんが、MK プログラムの開発に必要な範囲でのみ触れておきます。

問題ステートメントは、設計中のシステムの要件を口頭で​​表現したものです。 まず第一に、それらはその目的、制御オブジェクトの特性、センサー、インジケーター、作動および設定デバイスについて説明します。 次に、「異常な」状況を含む、考えられるすべての状況におけるシステムの望ましい動作について詳細に話し合う必要があります。 いかなる場合でも、オペレーターのエラーのないアクションを信頼することはできません。 たとえば、緊急信号を聞いた場合、所定の「STOP」ボタンの代わりに「START」ボタンを押したり、すべてのボタンをランダムに連続して押したりする可能性があります。 もちろん、そのような状況をすべて予測することは不可能ですが、これは努力する必要があります。 設計中のシステムのパラメータの数値を必ず指定してください。

まず、タスクは原則として「ユーザーレベル」で策定されます。 たとえば、ファン制御システム開発の最初のタスクは次のように聞こえるかもしれません。「ファンのオンとオフを切り替え、空気の流れの強さを調整し、その方向 (排気/排出) を変更する」。 エンジニアリング分析により、このタスクはファン ドライブ (DC モーター) の回転速度と回転方向の制御に簡素化されます。 MKの出力信号のパワーはエンジンを直接制御するには明らかに不十分であるため、必要なパワーの信号を生成する特別なドライバーデバイスをそれらの間に設置する必要があり、その課題はMKによって解決されます。 ドライバーへの制御アクションの提供に限定されます。

MC とのインターフェース用の電源制御、センサー、デバイスの選択についてはここでは取り上げません。 現在、これらの目的のために特殊なマイクロ回路が製造されており、個別のコンポーネントからシステムを構築するよりもはるかに効率的に使用できます。

National Semiconductor の統合 DC モーター ドライバー LMD18200 が使用されると仮定します。 これを含めた典型的な回路を図に示します。 2. 高出力 MOSFET のブリッジが含まれており、その対角にモーターが接続されています。

マイクロコントローラーでデバイスを設計します

ドライバーは 1 つの論理信号によって制御されます。 方形パルスが PWM (パルス幅変調) 入力に供給され、その継続時間と繰り返し周期 (デューティ サイクル) の比によってエンジン速度が決まります。 入力 DIR の信号の論理レベル (方向 - 方向) は、モーターに供給される電圧の極性、つまりモーターの回転方向を設定します。 ログレベルを設定することによって。 BR入力(ブレーキ)が0になるとエンジンが停止し、その時のPWM入力にログが残っています。 XNUMX の場合、モーター電源回路は単にオープンになります。それ以外の場合、モーター出力も相互に接続され、緊急ブレーキがかかります。

ドライバーには377つのセンサーが内蔵されています。 そのうちの 0 つは、CUR (電流 - 電流) ピンから流れる電流を生成し、その電流は 145 µA/A の係数でモーター電流に比例します。 温度センサー出力 TF (Thermal Flag - 温度フラグ) - ディスクリートオープンコレクター。 ログ状態になります。 XNUMX. ドライバークリスタルが XNUMX °C を超えて加熱された場合。

ファン モーター制御デバイス、つまりモーター ドライバーの要件を定式化してみましょう。

制御装置にはボタンが装備されており、オペレータ (ユーザー) はこれを押すことでエンジンのオン/オフ、方向の変更、速度の増減を行うことができます。 さまざまな色の光信号でエンジンの回転方向を示し、事故(過熱または過負荷)についての警報音を発する必要があります。

供給電圧を印加した後、デバイスはモーターをオンにすることなく、回転方向を設定するコマンドを待つ必要があります。 受信は光信号によって確認されます。 「START」コマンドでは、モーターがオンになり、平均周波数 (PWM 信号のデューティ サイクル = 0.5) で指定された方向に回転し始める必要があります。 「SLOWER」および「FASTER」コマンドに従って、デューティ サイクルは 0.2 ~ 1 を超えずに、それに応じて増減する必要があります。「STOP」コマンドはエンジンを直ちに停止する必要があり、その後「START」コマンドを発行することでエンジンを再始動できます。

消費電流の許容値を超えた場合(たとえば、モーターシャフトの機械的詰まりの結果である可能性があります)、モーターシャフトをオフにして、周波数1000 Hzの断続的な音声信号を短いバーストの形で送信する必要があります(バーストの継続時間とその間の休止時間は1秒です)。 マイクロ回路が過熱した場合は、エンジンを停止し、長いバーストで音信号を発する必要があります(バーストと一時停止の期間は2秒です)。 それまでは警報音を鳴らしておかなければなりません。 オペレータが「STOP」コマンドを発行し、デバイスが元の状態に戻るまで。 そのような命令が与えられるまで、それは他のいかなる命令にも応答してはならない。

すでにこの段階で、MC プログラムの開発に不可欠ではない詳細を抽象化する必要があります。 たとえば、この場合は問題ありません。 制御対象(モーター)はファンの駆動装置として機能し、その回転方向によって換気の種類(排気か給気か)が決まり、周波数によって空気の流れの強さが決まります。 さらに、アルゴリズムを開発するときは、通常、モーターとそのドライバーのことを忘れて、PWM 制御信号の形成に集中できます。 DIR、BR、CUR および TE センサーの信号処理。

定式化されたタスクを分析して、次の段階で必然的に現れるいくつかの問題を直ちに特定することが望ましい。 たとえば、回転方向が事前定義されていない場合、システムは「実行」コマンドに応答する必要がありますか? そうであれば。 この場合、モーターはどちらの方向に回転させればよいのでしょうか? モーターを停止、再起動した後も、設定した周波数と回転方向を維持する必要がありますか? 緊急事態発生後はどうなるの? このような質問はすべて、できるだけ早く回答する必要があります。

口頭での説明に基づいて、MC の入力信号と出力信号のリストが作成されます。 それらの最初のものには、オペレーターによって与えられたコマンドとセンサー信号「EXHAUST」が含まれます。 「推し」。 "始める"。 "もっと早く"。 "もっとゆっくり"。 "ストップ"。 「オーバーロード」(CUR)。 「オーバーヒート」(TF)。 XNUMX 番目では、エンジン ドライバーとインジケーターの制御信号: PWM - 回転速度。 DIR - 回転方向、BR - エンジンを停止します。 G - 緑色の LED をオンにします。 Y - 黄色の LED をオンにします。 S - 音。

上記を考慮すると、次のように結論付けることができます。 MCに求められるもの。 外部回路を接続するための少なくとも 14 個のピン (18 つの入力と 86 つの出力) を備えています。 CUR 信号はアナログであるため、センサーの読み取り値を許容値と比較し、論理信号「OVERLOAD」を生成するコンパレーターが必要になります。 したがって、MK が推奨されます。 コンパレータを内蔵しています。 たとえば、Z86 シリーズ MK の最小 02 ピン変更が適しています。 最も安価なオプションはマイクロチップです。 ZXNUMXEXNUMX。 それは今のところすべてです。 デバイスのハードウェアに関して。 この段階では、MK の出力にわたる入力信号と出力信号の分布は重要ではありません。

さらに、口頭で与えられたアルゴリズムを、いわゆる有限オートマトン グラフの形式で表すことが推奨されます。 個別デバイスは、取り得るすべての状態、状態変化を引き起こすすべてのイベント (外部影響)、および生成されるすべての出力信号を列挙できる場合、有限状態マシンとみなされます。 これらは MK に基づいたデバイスです。

オートマトン グラフの例を図 3 に示します。 XNUMX.

マイクロコントローラーでデバイスを設計します

状態はグラフのノード (頂点) によって表されます。 この場合、A、B、C、D の 3 つがあります。頂点は遷移の方向を示す矢印が付いた円弧で接続されており、円弧の上にはこの遷移を引き起こすイベント Xi が示され、その下には現時点でオートマトンによって生成され、次の遷移まで変化しない出力信号 Yi のセットが示されています。 理論的には、まさにこれだけの数の円弧がグラフの各頂点から出てくるはずです。 オートマトンに対する可能な限り多くの異なる外部影響。 何らかのイベントがオートマトンの状態を変更しない場合、対応するアークは、出発したのと同じ頂点に入ることが示されます。 ただし、図面が乱雑にならないように、実際にはそのような円弧のみが残されます。 これらは出力信号の変化に関連しています。 たとえば、図のグラフから、 3. 円弧 A-A および B-B を削除できます。 通常の言葉で言えば、これは状態 A と B のオートマトンが XXNUMX イベントに応答しないことを意味します。

MC プログラムとして実装されたオートマトンに影響を与えるイベント。 これは、MK の外部出力に適用される信号の論理レベルの変化によって引き起こされる「直接的」だけでなく、「間接的」でもあります。 後者には、たとえば、特定のパラメータの計算値と所定の値を比較した特定の結果や、何らかの長い操作の完了が含まれます。 直接的な出来事と間接的な出来事の境界線を引くのは難しい場合があります。 たとえば、MK に組み込まれたタイマーの動作などの一般的なイベントは、固定されていれば間接的なイベントとみなすことができます。 対応するレジスタ内の数値を分析するか、カウントの終了時にタイマーによって生成される信号に直接反応します。 出力信号は、MK の出力の論理レベルを直接変更せずに、間接的なものにすることもできます。 多くの場合、オートマトンの状態間で遷移するとき、特定の値はプログラム変数にのみ割り当てられます。

解決中の問題に戻り、エンジン制御オートマトンのグラフを作成しましょう。 タスクを分析すると、次の状態を区別できます。

  • START - 電源投入直後に設定します。 必要な初期アクションが実行されます - プログラム変数と出力信号の初期値が設定され、周辺デバイスが構成されます。 その後、オートマトンは STOP1 状態に移行します (間接イベントでの遷移の良い例 - 初期化の完了)。
  • STOP 1 - マシンは初期化の完了時、または緊急事態の終了後に停止します。 これは、モーターの回転方向を設定するコマンドによって実行されます。
  • STOP2 - マシンは「START」コマンドを待っています。
  • WORK - メイン状態。デバイスは PWM 信号を生成します。 「STOP」コマンドまたは緊急センサーからの信号によって終了します。
  • オーバーヒート。 OVERLOAD - 対応するセンサーの動作の結果として、マシンが WORK 状態から移行する状態。 エンジンがオフになり、デバイスからビープ音が発生します。 終了 - コマンド「STOP」の場合のみ。

構築したグラフを図 4 に示します。 四。

マイクロコントローラーでデバイスを設計します

エンジンをオンにしてからオフにすることなく、ランダムに設定された間違った回転方向を変更することは不可能であることが簡単にわかります。 さらに、それを開始するには、常に方向と開始の 2 つのコマンドを与える必要があります。 START コマンドを拒否することで、STOPXNUMX 状態を除外できます。 そして、「PRESSURE」および「EXHAUST」コマンドの円弧を直接WORK状態に向けます。 その結果、コントロールパネルのボタンが XNUMX つ減り、MK 入力が XNUMX つ解放されます。 方向を設定するボタンのいずれかを押すとすぐにエンジンがオンになります。 厳密に言えば、指定された制御アルゴリズムを変更する場合は、顧客またはデバイスの将来のユーザーの同意を得る必要があります。 しかし、アマチュアの練習では、顧客、演奏者、使用者が一人であることが多く、「自分と相談する」だけで十分です。

グラフが可変デューティ サイクル PWM 信号の生成方法を反映していないことは印象的です。 一般に、これは MC から制御される特別なデバイスによって実行できます。 ただし、すべてを純粋にプログラム的に実装するよう努めているため、WORK 状態を 0 つに分割する必要があります。 最初のもの (WORK) では PWM=1、1 番目のもの (WORK XNUMX) - PWM = XNUMX。

次に、それらの間の遷移を引き起こすイベントを提供しましょう。XNUMX つのタイマーを交互に起動し、XNUMX つは PWM パルスの持続時間を設定し、XNUMX つ目はそれらの間の一時停止を設定します。各タイマーは動作すると、もう一方のタイマーを開始します。 この場合、「論理」タイマーは同時に動作しないため、XNUMX つの「物理」タイマーを使用して実装でき、各操作後の遅延時間をプログラムで変更できます。

「FASTER」および「SLOWER」コマンドは、タイマーの遅延時間を調整し、その合計を変更せず、指定された PWM パルス繰り返し周期に等しくします。 オートマトンは、考慮された両方の状態でこれらのコマンドに応答できます。 ただし、アルゴリズムを簡素化するために、反応をいずれか XNUMX つに限定しても構いません。 これらの状態の持続時間は短いため、実行遅延はオペレーターには気づかれないままです。

もう 1 つ明確にする必要があるのは、時間遅延値の許容性を確認することです。 ジョブに応じて、PWM 信号のデューティ サイクルが決まります。 T1/(T0+T1)に等しい。 ここで、T0 と T0,2 はタイマーの遅延時間であり、間隔は常に 1 ... XNUMX の範囲内にある必要があります。したがって、速度を変更する各コマンドの後、マシンは CHECK 状態に移行し、そこから XNUMX つの円弧のいずれかに沿ってのみ WORK 状態に戻る必要があります。 最初のものはチェックの肯定的な結果に対応しており、これを通過すると、新しいシャッター スピードが設定されます。 XNUMX 番目 - 結果は否定的で、以前に有効だった抜粋は変更されません。

グラフの分析を続けると、OVERHEAT と OVERLOAD の状態は音声信号の繰り返し周期のみが異なることに注目します。 それらを XNUMX つに結合して、ACCIDENT と呼ぶとよいでしょう。 オーディオ信号 S は、上で説明した PWM 信号と同様に、XNUMX つのタイマーを使用して生成できます。 さらに、同じ「物理」タイマーを使用することが望ましく、この状態ではアイドル状態のままです。

サウンドを断続的にするには、別のタイマーを使用できますが、それを使用せずに、ソフトウェアに実装されたカウンターを使用して生成された信号の周期をカウントし、一定回数経過後に出力信号をオンまたはオフにする方が簡単です。 これらすべてには、オートマトンの追加の状態とそれらの間の遷移を提供する必要があります。

エンジンの自動制御の開発されたグラフを図5に示します。 XNUMX.

マイクロコントローラーでデバイスを設計します

実行されるアクションの口頭での表現は、変数に特定の値を割り当てることで置き換えられることに注意してください。 たとえば、「黄色の LED をオンにする」というフレーズの代わりに、Y = 1 が示され、緑色の LED がオフになるように指定されます (G = 0)。前述の出力信号とタイマー遅延に加えて、定数 T は PWM パルス繰り返し周期であり、変数 N は生成された音声信号間隔の終わりまでに残るパルス数 S です。

次のステップは、グラフを MC 演算アルゴリズムのブロック図に変換することです。 まず、すべてのグラフの頂点 (オートマトンの状態) に番号を付ける必要があります。 番号付けの順序は、オートマトンのハードウェア実装において非常に重要です。 正しく選択することで、デバイスを大幅に簡素化できます。 ソフトウェア実装の場合、これはそれほど重要ではなく、ほとんどの場合、番号付けは任意で構いません。 プログラムは必然的にいわゆる「状態変数」を提供し、作業の過程で現在の状態の数に等しい値が割り当てられます。 複雑なプログラムでは、そのような変数がいくつか存在する場合があります。 多くのプログラミング言語では、数値に記号名を付けることができます。 これは、値 RABOTA を変数に割り当てるプログラム内の行の方が、値 6 を割り当てる行よりもはるかにわかりやすいため、広く使用できます。

図上。 図6には、制御アルゴリズムの典型的なブロック図が最も一般的な形式で示されている。 初期化後、プログラムは周期的に実行されます。 状態変数を解析した後、各サイクルで対応するプロシージャを実行します。 オートマトンの状態の変化は、状態変数に新しい値を割り当てることによって示され、その結果、次のサイクルで別の手順が実行されます。

マイクロコントローラーでデバイスを設計します

オートマトンの各状態を実装する手順は、図 7 に示したものと同様のブロック図に従って構築されます。 XNUMX. まず、外部からの影響(イベント)を分析します。 次に、プロセスはオートマトン グラフの対応する頂点から出てくるアークの数と同じ数の分岐に分割され、それぞれがこの遷移を実装するために必要な関数の実行を提供し、最後に状態変数にアークが向かう頂点の番号に等しい値が割り当てられます。 別のアプローチも可能です。最初に頂点に入るアークが実装され、次に衝撃に反応します。 その主な欠点は、プログラムがオートマトンがどの状態から特定の状態に移行したかを「認識」する必要があることですが、前のケースでは必要ありませんでした。

マイクロコントローラーでデバイスを設計します

図にあることに注意してください。 図 7 は、状態プロシージャからの XNUMX つの可能な終了を示しています。 最初の方法では、この状態から抜け出す原因となるイベントが見つかるまで、イベントが周期的に分析されます。 XNUMX 番目では、これらの影響が存在しない場合です。 プロシージャは破線で示すように終了します。

外部の影響がほとんどなく、各状態での外部の影響に対する反応が特定である場合、イベント検出手順は状態処理ブロックに含まれます。 例えば、機械が応答すべき状態でのみ「START」ボタンが押されているかどうかを確認することができます。 多くの場合、イベント フィルタリング手順はメイン ループに配置され (図 6 では点線で示されています)、発生したイベントに一意に関連付けられた値が割り当てられる変数が提供されます。 たとえば、キーボードをポーリングした結果は、押されたキーのコードです。 上記のオプションの XNUMX 番目に従って実行される状態処理ブロックでは、この変数の値のみが分析されます。

理論的モデルとは対照的に、実際のイベントは同時に発生することがよくあります。 このような状況では、オートマトンはまず、最も優先度の高いイベントに反応しなければなりません。 優先順位を付ける最も簡単な方法は、イベントを分析するための適切な順序を選択することです。 たとえば、図に示すブロック図によれば、 図7では、イベントX1が最も高い優先度を有する。 最低 - HZで。 優先度の高いイベントが優先度の低いイベントよりもはるかに頻繁に発生する場合、キューは最後のイベントに到達しない可能性があります。 これを避けるためには、まれなイベントを最優先する必要があります。 場合によっては、プログラムの実行中に後者の分布を変更する必要があります。たとえば、新しく処理された各イベントをキューの最後に配置するなどです。

MK 上のシステムの予測できない動作は、多くの場合、ノイズやコントロールの接点のバウンスが原因です。 このような誤ったイベントは、ソフトウェア フィルターを使用して「排除」する必要があります。 ほとんどの場合、イベントが発生したことを認識するには、MK の対応する入力における信号の論理レベルが一定時間変化しないことを確認するだけで十分です。 重大な場合には、より複雑な手順が使用されます。

多くの出来事の中で、すぐに対応すべき「緊急事態」を取り上げることがよくあります。 典型的な例です。 タイマーが期限切れになる瞬間を見逃さないように、プログラムはレジスタの状態を常にチェックする必要があり、タイマーが期限切れになるまで他のことはできません。 カウントの終了時にタイマーによって生成される割り込み要求信号により、この問題は解決されます。 それを受け入れることによって。 MC は直ちに (少なくとも同じイベントの通常のソフトウェア処理中よりもはるかに高速に) 割り込みサービス ルーチンの実行に進みます。割り込みサービス ルーチンのアドレス (ベクトル) は、特別に割り当てられたプログラム メモリ セルで指定する必要があります。

実行中のプログラムの優先ベクトル割り込みの装置は、ほとんどのマイクロコントローラーに備えられています。 割り込みは外部割り込みまたは内部割り込みのいずれかです。 後者の場合、割り込み要求入力には外部出力はありませんが、MK チップ上に直接配置された要求ソースに接続されます。 通常、内部割り込みはタイマーだけでなく、この MK に組み込まれた他のデバイス (シリアル ポート コントローラー、アナログ信号コンパレーター、アナログ/デジタル コンバーター) からも提供されます。

多くの場合、最新の MK の内部割り込みの XNUMX つは、いわゆるウォッチドッグ タイマー (Watch Dog) に関連付けられており、偶発的な障害から保護する役割を果たします。 このタイマーには定数が必要です

アドレス空間内の特定の場所に特定のコードを書き込むことによる初期化。 MC プログラムは、通常の過程でこのような手順が頻繁に実行されるように構築されています。 MK が「ハング」すると、ウォッチドッグ タイマーの初期化が停止し、しばらくしてから割り込み要求が送信されます。その処理は、システムの通常の動作を復元するように設計されています。 通常、ウォッチドッグ割り込みに対する応答は同じです。 MK を元の状態に設定する外部信号として。

割り込みは、実装されたオートマトンの状態に応じて有効または無効にすることで制御されます。 異なる状態の同じ割り込みを異なる方法で処理する必要がある場合、処理手順はメイン プログラム ループのように構築され、その中で状態分析が可能になります。 違いは。 そのような手順はリング内で閉じられないこと。 それが完了すると、MK は中断された場所からプログラムを実行し続けます。 割り込み処理の結果変化した状態で、中断されたアクションを継続すると誤った結果が得られる可能性があるため、これには失敗が伴います。 これらは、プログラム移動の重要なセクションの実行中に割り込みを無効にすることで、そのようなエラーから身を守ります。 間違いなくシステムの反応が遅くなります。

システム内に提供される MC 入力よりも多くの割り込み要求ソースがある場合、グループ要求は、OR スキームに従っていくつかのソースの出力を結合することによってハードウェアに実装されます。 そんなご要望をお受けすることで。 MC は送信者を特定し、それに応じて処理する義務があります。

デバイスのアルゴリズム全体が、一連の割り込み処理ルーチンによって実装される場合があります。 この場合、メイン ループは、それ自体への XNUMX つの無条件ジャンプ命令に至るまで、いくつかの機械命令に縮退します。 多くの MK は、特に HALT または IDLE コマンドを提供します。 基本的に動作を停止します(クロックジェネレータさえオフになる場合もあります)。 MK をこの状態から抜け出すことができるのは、受信した割り込み要求だけです。 リクエストの処理が完了しました。 MC は、メイン ループで提供される停止コマンドへの無条件遷移を実行し、再び「スリープ状態」になります。 このモードは、停止した MK によって消費される電力が何倍も減少し、外部の影響に反応している間のみ増加するため、非常に経済的です。

上記を考慮して開発されたファンモーター制御アルゴリズムのブロック図は、図に示す 8 つの部分で構成されます。 9 (メインループ) と図 XNUMX (メインループ) XNUMX (タイマーからの割り込みの処理)。 どちらも基本的に、異なるイベントを処理するときに実行される同じ操作が組み合わされることを除いて、上で説明した典型的なブロック図に対応します。 タイマ割り込みハンドラは PWM 信号と S 信号を生成し、STOP 状態から RUN 状態に遷移すると割り込みが許可され、STOP 状態に戻ると割り込みが禁止されます。

マイクロコントローラーでデバイスを設計します

プログラムには状態変数 ST があり、わかりやすくするために文字列値 (対応する状態の名前) が割り当てられます。 上で述べたように、プログラムでは、これらは数値、つまり状態番号またはその記号名になります。 変数 N0 に割り当てられる値は、生成されたパルス PWR と S の繰り返し周期が同じで 1 ms に等しいという仮定に基づいて選択されます。 そうでない場合は。 ブロック図は少し変更する必要があります。

マイクロコントローラーでデバイスを設計します

ここで、MK の選択、その出力での入力信号と出力信号の分配、およびデバイスの完全な回路図の開発に進むことができます。 MK の特定の I/O ポートのビットをどの外部回路に接続するか、およびこれらの回路内の信号の論理レベルを決定したら、プログラマはプログラムの開発を開始できます。

文学

  1. Franke K. マイクロコンピュータの紹介: Per. 彼と一緒に。 - M .: Energoatomiedat. 1998年。
  2. Kagan BM、Stashin VV マイクロプロセッサ自動化デバイス設計の基礎。 - M.: エネルギー原子化。 1987年。
  3. Stashin VV、Urusov AV、Mologoitseva OF シングルチップ マイクロコントローラーでのデジタル デバイスの設計。 - M.: エネルギー原子化。 1990年。

著者:M。Gladshtein、Rybinsk

他の記事も見る セクション マイクロコントローラー.

読み書き 有用な この記事へのコメント.

<<戻る

科学技術の最新ニュース、新しい電子機器:

庭の花の間引き機 02.05.2024

現代の農業では、植物の世話プロセスの効率を高めることを目的とした技術進歩が進んでいます。収穫段階を最適化するように設計された革新的な Florix 摘花機がイタリアで発表されました。このツールには可動アームが装備されているため、庭のニーズに簡単に適応できます。オペレーターは、ジョイスティックを使用してトラクターの運転台から細いワイヤーを制御することで、細いワイヤーの速度を調整できます。このアプローチにより、花の間引きプロセスの効率が大幅に向上し、庭の特定の条件や、そこで栽培される果物の種類や種類に合わせて個別に調整できる可能性が得られます。 2 年間にわたりさまざまな種類の果物で Florix マシンをテストした結果、非常に有望な結果が得られました。フロリックス機械を数年間使用しているフィリベルト・モンタナリ氏のような農家は、花を摘むのに必要な時間と労力が大幅に削減されたと報告しています。 ... >>

最先端の赤外線顕微鏡 02.05.2024

顕微鏡は科学研究において重要な役割を果たしており、科学者は目に見えない構造やプロセスを詳しく調べることができます。ただし、さまざまな顕微鏡法には限界があり、その中には赤外領域を使用する場合の解像度の限界がありました。しかし、東京大学の日本人研究者らの最新の成果は、ミクロ世界の研究に新たな展望をもたらした。東京大学の科学者らは、赤外顕微鏡の機能に革命をもたらす新しい顕微鏡を発表した。この高度な機器を使用すると、生きた細菌の内部構造をナノメートルスケールで驚くほど鮮明に見ることができます。通常、中赤外顕微鏡は解像度が低いという制限がありますが、日本の研究者による最新の開発はこれらの制限を克服します。科学者によると、開発された顕微鏡では、従来の顕微鏡の解像度の 120 倍である最大 30 ナノメートルの解像度の画像を作成できます。 ... >>

昆虫用エアトラップ 01.05.2024

農業は経済の重要な分野の 1 つであり、害虫駆除はこのプロセスに不可欠な部分です。インド農業研究評議会 - 中央ジャガイモ研究所 (ICAR-CPRI) シムラーの科学者チームは、この問題に対する革新的な解決策、つまり風力発電の昆虫エアトラップを考案しました。このデバイスは、リアルタイムの昆虫個体数データを提供することで、従来の害虫駆除方法の欠点に対処します。このトラップは風力エネルギーのみで駆動されるため、電力を必要としない環境に優しいソリューションです。そのユニークな設計により、有害な昆虫と有益な昆虫の両方を監視することができ、あらゆる農業地域の個体群の完全な概要を提供します。 「対象となる害虫を適切なタイミングで評価することで、害虫と病気の両方を制御するために必要な措置を講じることができます」とカピル氏は言います。 ... >>

アーカイブからのランダムなニュース

伸縮性のある素材や生地へのフレキシブル電子回路の印刷 18.04.2015

米国のパデュー大学の研究者は、柔軟で伸縮性のある導電体を、伸縮性のある素材や生地を含むほぼすべての表面に印刷する方法を開発しました。 この方法により、工業規模での生産を容易に習得できます。

弾性材料に導電回路を適用するために、ジョン・ウィリアム・ボーリー博士が率いる科学者グループは、従来のインクジェットプリンターを使用しましたが、インクの代わりに金属粒子の懸濁液をカートリッジに入れました.

懸濁液は、「液体金属」(液体金属)の破壊によって調製されました。 破壊の結果として得られた材料の微粒子をエタノールに入れ、得られた混合物を超音波の作用下で泡立てて懸濁液にした。

「液体金属自体は印刷できません。そのため、印刷ヘッドのノズルを容易に通過するスラリーに変えました。そして、現在、フレキシブル回路をほとんどすべてのものに適用できます。」なんでもいい。"

懸濁液を材料に適用した後、エタノールは蒸発し、「液体金属」粒子のみがその上に残ります。

ただし、結果として得られるプリント回路は電流を伝導しません。 それが導電性になるためには、「活性化」され、「液体金属」の粒子が互いにくっつくように圧力をかける必要があります。 これにより、メーカーは特定の可能性を切り開くことができます。つまり、XNUMX つの回路テンプレートを作成し、その回路にさまざまな製品で異なる機能を与えて、そのセクションの一部のみをアクティブにし、残りを非導電性のままにすることができます。

研究者は、この新しい方法が衣服に電子回路を印刷し、新しいタイプのウェアラブル デバイスを作成することを容易にし、ロボット工学、つまりヒューマノイド マシンを作成することにも応用できると考えています。 「『液体金属』で作られた導体は、壊れることなく伸びたり変形したりできます」と Kramer 氏は述べています。

研究者は、電子部品を弾性材料に適用する方法を説明しませんでした。

今後、研究チームは、液体金属フレックス回路のコンダクタンスが、それらが適用される基板材料によって影響を受けるかどうか、およびどのように影響を受けるかを調査する予定です。 また、印刷後に回路を自動起動する技術も発明。

フレキシブル エレクトロニクスは、長い間エンジニアの関心を集めてきたことを付け加えておきます。 2009 年、米国とドイツの科学者が、特殊なインクジェット プリンターを使用して製品に塗布できる新しいタイプの半導体インクを開発しました。

その他の興味深いニュース:

▪ アリは地震を予知できる

▪ きれいな空気に映し出される映像

▪ NXPはeパスポートのセキュリティを向上させます

▪ Blu-rayフォーマット仕様完成

▪ 安価で高密度の 3D メモリ

科学技術、新しいエレクトロニクスのニュースフィード

 

無料の技術ライブラリの興味深い資料:

▪ サイトのセクション 電気安全、火災安全。 記事の選択

▪ 記事 石材加工。 発明と生産の歴史

▪ 記事 東洋のベニスと呼ばれる都市はどこですか? 詳細な回答

▪ 記事検査のために任命された線路、人工構造物および線路フィッターの追跡者。 労働保護に関する標準的な指導

▪ 記事 電気機器を 220 ボルトのネットワークに接続することを示します。 無線エレクトロニクスと電気工学の百科事典

▪ 記事 KT3115A トランジスタをベースにした広帯域アンプ。 無線エレクトロニクスと電気工学の百科事典

この記事にコメントを残してください:

Имя:


Eメール(オプション):


コメント:





このページのすべての言語

ホームページ | 図書館 | 物品 | サイトマップ | サイトレビュー

www.diagram.com.ua

www.diagram.com.ua
2000-2024