マイクロコントローラプログラミングへのステップバイステップガイド
これは、マイクロコントローラプログラミングを開始したい人のためのステップバイステップガイドです。 この記事では、ガイドで使用されるいくつかの基本的な用語、ツールのリスト、プログラミング言語、最後に、マイクロコントローラプログラミングの練習に使用できるステップバイステップガイド付きのダウンロード可能なコードの例を紹介することから始まります。
しかし、マイクロコントローラのプログラミングに飛び込む前に。 最初の二つの基本的な用語を定義してみましょう: ハードウェアおよびソフトウェア。
ハードウェアは、チップ、キーボード、マウス、モニター、メモリ、I/Oデバイスなどのシステム内の物理コンポーネントで構成されています。 ハードウェアはソフトウェアと比較して開発が難しく、非常に特殊なアプリケーション用に設計する必要があり、高速システムでは非常に効率的で完
ソフトウェアは、オペレーティングシステム、コンピュータゲーム、ネットワークアプリケーションなどのハードウェア上で実行される非物理的なコンポーネ ソフトウェアは、ハードウェアに比べても非常に安い、また、開発することが容易かつ迅速に、高度に設定可能です。
マイクロコントローラとは
マイクロコントローラとは何かを理解するには、まずマイクロプロセッサまたはCPUとは何かを理解する必要があります(中央 CPUは、任意のコンピュータシステムの心臓部であり、タスクを実行するとき、それは人間の脳のようなものです。 基本的には2つの重要な部分に分けることができます:
制御ユニット:このユニットは、メモリからデータを取得するために使用されます。
実行ユニット:このユニットは、データを実行または実行するために使用されます。
プロセッサの種類
汎用プロセッサ、アプリケーション固有のシステムプロセッサ、マルチプロセッサシステムなど、多くのカテゴリのプロセッサがあります。 汎用プロセッサには多くの種類があります:
⇒マイクロプロセッサ
⇒マイクロコントローラ
⇒組み込みプロセッサ
⇒デジタル信号プロセッサ
マイクロプロセッサは半導体デバイスまたはチップ上のコンピュータであるが、完全に機能するコンピュータではない。 その中央処理装置の単位は
の¡ALU
の¡プログラムカウンター
の¡の記録
の¡の他の回路(時間を記録すること、割込み時間)を含んでいます)
マイクロコントローラは、マイクロプロセッサといくつかのペリフェラルを含むICであり、ADC、RAM、ROM、DACなどの完全な機能コンピュータである。
マイクロコントローラの歴史
もともと、インテル社はマイクロコントローラの最初の製造でした。 最初のマイクロコントローラは、1971年に米国で生産されました。 これは4ビットのマイクロコントローラで、i4004という名前だった。 その後、インテルは8ビットマイクロコントローラを搭載したより洗練されたモデルを生産し、その後東芝によって12ビットマイクロコントローラが開発された。
マイクロコントローラの用途
マイクロコントローラは、自動車、医療、産業オートメーション、航空宇宙、ロボットなど、多くの業界で多くの用途があります。
自動車業界では、例えば、現代の車は、エアコン、ABS、EBD、ADASなどのシステムや適応キュリーズコントローラやレーンアシストなどの高度な運転支援システム用の100以上のマイクロプロセッサを持っているが、以下はECUまたは電子制御ユニットのイメージである。
医療分野では、MRI、グルコース検査セット、ポータブルEKGなどのマイクロコントローラを含む医療機器があります。 以下の画像は、グルコース検査装置である。
航空宇宙では、航空機のほとんどは、マイクロコントローラを使用して新しいアビオニクスシステムで設計されています。 さらに、すべてのマイクロコントローラに基づいている飛行制御システム、航空交通制御システム、ナビゲーションと気象システムがあります。
人気のあるマイクロコントローラ
多くのマイクロコントローラの種類やプラットフォームがありますが、マイクロコントローラを選択することは多くの要因:
▪の応用
▪予算
▪実績8260>
▪数GPIOピン
▪メモリサイズ
▪温度の経営環境
▪消費電力
AVRマイクロコントローラ
以下の画像を含むブロック図AVE12DA、最も人気のマイクロコントローラfamlilyのAVRマイクロコントローラ:
AVRマイコンはAtmel株式会社(現: マイクロチップ)、AtmelはAVRマイクロコントローラの6つのファミリ、汎用マイクロコントローラとして4つのファミリ、特定の目的のマイクロコントローラとして2つのファミリを持っています。 汎用マイクロコントローラは、
≥8ビット-mega AVR
≥8ビット–At Tiny
▪ 8 & 16 ビット-AVR Xmega
32ビット–AVR
特定の目的のマイクロ制御回路は次のとおりです:
►Automotive AVR
►Battery Management
Automotive AVRは、その名前から、自動車適用のために開発されました。 それは150まで摂氏非常に高温の下ではたらくことができ短絡問題のための保護システムを含んでいる。
バッテリ管理マイクロコントローラは、充放電操作を確保するためのバッテリ管理システム用に開発されました。
AVRプラットフォームの例
►Arduino UNO
►Adafruit Blue fruit Micro
►Raspduino
►Digispark Pro
ARMマイクロプロセッサ/マイクロコントローラ
ARMマイクロプロセッサは、armマイクロプロセッサ/マイクロコントローラ
消費者適用の世界、特に、。 あなたはARMプロセッサベースのデバイスを持っているかもしれませんが、あなたは知りません! ARMは、主に成功した32ビット組み込みシステムの重要なコンポーネントです。 最初の腕は1985年に開発されました。
RISC技術
ARMはRISC技術を使用しており、RISCはreduced instruction set computerの略で、単一のサイクル内で簡単な命令を提供する設計思想です。 これは、ソフトウェアに多くを依存しています。 一方、CISC技術は、ハードウェアに多くを依存しています。
RISC技術は、プロセッサの命令セットを減らすことに焦点を当てています。 一方、CISCプロセッサは、固定されていない数の命令セットを有する。
ARMの特長
Armは、コンパクトなサイズのために消費電力が低く、コード密度が高いなど、すべての組み込みシステム設計者が探している多くの機能を備えています。
ARMベースのマイクロコントローラの内部構造
この図は、ほとんどのARMベースのデバイスの内部構造を示しています:
ボックスは関数を表し、ラインはバスを表します。 のは、詳細にすべてのコンポーネントについての詳細を話してみましょう:
§ARMプロセッサは、処理操作を担当するコアコンポーネントです
§コントローラは、メモリおよび割り込みコントローラとしてシステム機能を調整するために使用されます
§ペリフェラルは、システムの入出力を提供するために使用されます
§バスは、システム内の異なるコンポーネント間でデータを交換するために使用されます
ARMプラットフォームの例
ARMマイクロプロセッサを搭載した多くのデバイスや組み込みプラットフォームがあります。
►Arduino Due
►Raspberry Pi
►STM32F103C8T6
►NXP LPC1768
その他のマイクロコントローラとプラットフォーム
マイクロコントローラやプラットフォームを選択する前に述べたように、
、等。…). また、他のマイクロコントローラやプラットフォームもあります。
▪ 8051
▪ ESP32
►Motorolaマイクロコントローラ
マイクロコントローラソフトウェアとハードウェアツール
マイクロコントローラの作成以来、多くの種類のソフトウェアとハードウェ もちろん、いくつかのツールは様々なマイクロコントローラタイプで使用できますが、いくつかはマイクロコントローラごとに非常に特化しています。 マイクロコントローラプログラミングを始める前に、マイクロコントローラプログラミングツールと、最後に、開発プロセスに精通していることをお勧めし
Assembler
アセンブリ内のソースコードをマシンコードに変換するソフトウェアツールです(GNU assembler)。
コンパイラ
高レベルプログラミング言語のソースコードをアセンブリ言語またはマシンコードに変換するソフトウェアプログラムです。 コンパイルは次のようになります:
▪Native:これは、コンパイラと生成されたコードを同じマシン上で実行することを意味します
▪Cross:これは、コンパイラをマシン上で実行し、生成されたコードを別のマシン(プロセッサアーキテクチャ)上で実行することを意味します。
リンカとロケータ
リンカは、コンパイルを収集してリンクし、操作をアセンブルし、単一のexeを生成するプログラムです。
ロケータは、リンカ出力のメモリマップを変更するために使用できるプログラムツールです。
シミュレータ
実際のシナリオを模倣したプログラムであり、リアルタイムシステムの近似を生成します。 シミュレータが使用されます:
♦実際のハードウェアが利用できない場合
♦危険なテスト環境やシナリオで
デバッガ
それは私の組み込みターゲットに私のPCにインターフェイスすることができるソフトウェアプログラムとハードウェアデバイスです。 デバッガが使用されます:
►ブレークポイントを設定する
►実行をトレースする
►メモリをダンプする
ハードウェアデバッガは
にすることができます►インサーキットデバッガ
►デバッグエージェントソフトウェアオンボード
フラッシュローダー
に使用することができるのはプログラムおよびハードウェア装置です:
▼プログラムROM/Flash
▼ウォッチ変数
▼消去ROM/Flash
プロファイラ
プロファイラは、ソフトウェアコード
統合開発環境
プロファイラは、ソフトウェアコード
統合開発環境
ワン また、
▪テキストエディタ
▪コンパイラでコンパイル
▪デバッガ
▪プロファイラ
▪シミュレーター
▪配
マイクロコントローラソフトウェアの言語
まで唐突な印象を与えかねないこれら二つの種類:
高レベル
▪C/C++
Java Java
Ada Ada
このタイプを使用すると、ハードウェアレベル
低レベル
マシンコード
0と1は人間が書くのは難しいが、コンピュータが理解しやすい
アセンブリ
読みやすさを向上させるためのニーモニックコードと擬似命令である
例:
命令はニーモニック(オペコード)+オペランドで構成されています
オペコードは、マシンプロセッサによって取られた操作です
オペランドは、最終的なターゲ
アセンブリ言語は、マシンコードよりも読みやすく理解しやすいですが、特定のプロセッサで使用し、そのアーキテクチャの知識を持っている必要があ
C/C++プログラミング言語
高レベル言語には、次のような機能があります
書くのが簡単
柔軟な
プロセッサに依存しない
高い生産性
AVR ATMEGA16を使用したマイクロコントローラプログラミング例
AVR ATMEGA16を使用したマイクロコントローラプログラミング例
AVR ATMEGA16を使用したマイクロコントローラプログラミング例
AVR ATMEGA16を使用したマイクロコントローラプログラミング例
AVR ATMEGA16を使用したマイクロコントローラプログラミング例6166>
AVR ATMEGA16を使用したマイクロコントローラプログラミング例
AVR ATMEGA16を使用したマイクロコントローラプログラミング例
AVR ATMEGA16を使用したマイクロコントローラプログラミング例6166>
AVR ATMEGA16を使用したマイクロコントローラプログラミング例6166>
atmega16には次の機能があります:
▪16Kbのシステムの自己プログラマブルフラッシュメモリ
▪512バイトEEPROM
▪1Kbyte内部SRAM
▪グロックセキュリティ
周辺の特徴
▪実時間カウンターとの別途発振器
▪プログラマブルシリアルUSART
▪つのPWMチャネル
▪8-チャンネル10ビットADC
▪ン-チップ発振器
▪電休ブラウン-検出
▪内蔵のRC発振器および割り込みソ
▪電圧から2.7v~5.5v)
LED点滅プログラムAtmeg16とProteusを使用した例
アプリケーション開発の”hello world”プログラムのような組み込みシステムでのLED点滅プログラム。
led点滅プロこんにちは、
led点滅プログラムを使用した例です。 次の例では、最初のプログラムを実行するためにProteus simulatorを学習して使用します。 ソースファイルをダウンロードするには、このフォルダに移動してください。
IDEをダウンロードした後、Atmel studio
を使用してプログラムを記述します,
それを開き、新しいプロジェクトを選択し、次のイメージのようにhexファイルの場所を選択します
その後、スターターコード
と次のウィンドウが表示されます。 次のコード
次のステップは、F7
マイクロコントローラプログラミングAVR
その後、選択した場所
マイクロコントローラプログラミングAVR
マイクロコントローラプログラミングAVR
マイクロコントローラプログラミングAVR
マイクロコントローラプログラミングAVR
マイクロコントローラプログラミングAVR
avrのプログラミング
次のステップはProteus Simulatorを使用することです
そして、選択したaテンプレート
から回路図を作成し、PCBレイアウトを作成しない
を選択します
最後に、完了しましたが、次の画像のようにhexファイルを追加する必要があります
マイクロコントローラプログラミングAVR
マイクロコントローラプログラミングAVR
マイクロコントローラプログラミングAVR
マイクロコントローラプログラミングAVR
744>
保存して再生
をクリックすると、ledが500ms(左側)でオフになり、500ms(右側)でオンになっていることがわかります)
プログラム説明行ごとに
ソースファイルをダウンロードするには、このフォルダに移動してください。
#define f_cpu100000UL//定数を作成し、プロセッサ速度を選択します
#include<avr/io。h>//入出力用のいくつかのファイルをリコールする
#include<avr/delay.h>//このファイルを呼び出して遅延関数を使用します
int main(void){//開始関数とメインプログラム
DDRA=0b0000001;//ピンaを出力/方向として設定する
While(1){//永遠にループする
PORTA=0b00000001;//pa0=1を作り、5vを出力するため(ledはついています)
_delay_ms(500); //半秒のための遅れ
PORTA=0b0000000;//PA0=0を作り、0vを出力するため(LEDは消えています)
_delay_ms(500);//半秒のための遅れ
}
戻る0;
} //プログラムの終わり
結論
今日、組み込みシステムは重要な製品に使用されており、医療分野やその他のアプリケーションのように、多くの人々を安 マイクロコントローラプログラミングについての概要と紹介を得た後、学習を続ける必要があります。 次のステップは、組み込みソフトウェア設計とリアルタイムトリガーシステムを学ぶことです。
https://www.faa.gov/regulations_policies/handbooks_manuals/aviation/phak/
AVRマイクロコントローラと組み込みシステム:Pearson New International Edition:Using Assembly and C,Muhammad Ali Mazidi,DeVry University
ARM System Developer’S Guide Designing and Optimizing System Software A volume in The Morgan Kaufmann Series in Computer Architecture and Design Book•2004