忍者ブログ

Fグループ電子工作講座

秋月電子SH7125ボードで始めるマイコン開発

プログラムの上位層と下位層

関数化の回およびヘッダファイルを使いこなす回で解説した通り、プログラムを作成する際には各小機能を実現するための関数とそれらを使用して実際にやりたいことを実行するメイン部分に分けて考える必要があります。

メインのソースに書いてある様な「こういう事をやりたい」という部分をアプリケーション層と呼ぶことにします。(本当は違うっぽいが)
基板上の部品などマイコンに対する入出力を実現する部分ハードウェア層(物理層)と呼ぶことにします。
アプリケーション層でやりたい事をマイコンの端子に伝えるためにはハードウェアとアプリケーションのソフトをつなぐための中継用ソフトウェアが必要になります。この中継用ソフトウェアはハードウェアとソフトウェアの中間に位置するためミドルウェアと呼ばれます。とりあえずミドルウェア層と呼んでおきます。

人間に例えると、頭脳(大脳)アプリケーション層、指先の筋肉ハードウェア層、アプリケーションとハードウェアをつなぐ神経(と小脳)ミドルウェア層といった感じでしょうか。脊髄反射の様にミドルウェア層単体でも何かしらの動作を行うことができ、これはアプリケーション層での反応速度を上回ります

アプリケーション層上位層ミドルウェア層下位層という呼び方もします。
ただ、上位だから偉い、下位だからショボいという訳ではありません。

ミドルウェアを作成するには使用する各マイコンに対する知識(特に特殊機能に関して)が必要となってきます。パソコンのプログラムで言うところの授業で習う部分アプリケーション層OSや各装置のドライバミドルウェアに相当します。上位層のプログラムを組めるから下位層なんて余裕なんて事にはなりません。

では、逆の場合はどうでしょう。
OSやドライバを作成可能な方であればアプリケーション層をある程度作製することは可能なはずです。ただし、アプリケーション層の全てを作製できるとは限りません。OSを作成可能な人が動力学(物理演算)を駆使したアプリケーションを作成するなんて事はほぼ無いでしょう。

どちらが偉いという事は無く高度な制御を行うためには上位層も下位層も必要となります。

この回までに説明してきた事はアプリケーション層とミドルウェア層の境目になります。
ここから下に潜れば潜るほど割り込み処理などCPUを理解する必要があり技術の習得難易度が上がります。
逆に上に昇れば昇るほど運動方程式など学術的な知識が必要となるためこれまた習得難易度が上がります。

次回以降、上にも下にも知識の領域が広がるように話を進めていきます。
PR

コメント

プロフィール

HN:
ぼんどF博士
性別:
男性

最新コメント