2012年7月26日木曜日

組込みシステム C言語のキーワード volatile

組込みシステムの割り込みの話を書こうと、数日構想を練っていたんだけど、とりあえずは

大事なキーワード volatileについて書いて見ようと思います。






アセンブラソースを出力させてコンパイルして最適化をしてソースの違いを見てみてください

例)

static volatile int val1;
static int val2;

(ちょっと順番が記憶であいまいですがとりあえず書きます)



void func1(){
    val1++;

  if( 1 == val1) {
        val1++;
     }
}


void func2(){
   val2++;
   if(1 == val2) {
       val2++;
   }
}


この二つのコードは一見同じに見えますが、通常最適化された場合は演算結果をレジスタに残しておいてそのまま 条件判定を行いますが


volatile が付いている場合は、常に最新の内容を見に行くようなコードになっているはずです。


これは、組込みシステム以外ではあまり使われません。


同じ変数に一見同時にはアクセスすることは、あまり考えないかも知れませんが、組込み系では考えられることです。


割り込み処理で詳しくは書きますが、とりあえずこんなおまじないがあるということだけ、先に書いておきます。





2012年7月21日土曜日

組み込みシステム OS無しの開発 その1 void main()

組み込みシステムの場合、組み込みOSを使うケースがかなり多くなってきています。

それでも一部には OSを使わずに全てを、自前のプログラムで管理する開発もあります。


どういったものか理解してもらうために、まずは簡単な例を挙げてみます。


#include <stdio.h>


void main() {

 printf("hello world\n");

}


典型的な、Cの入門のソースです


Windowsのcmd.exe、Linux のターミナルから実行することが多いと思います。


printf は標準出力へ 出力するという命令です


そして、それはstdio.hで定義されている 標準ライブラリの中で実装されています。


OSを一切使わない開発の場合はこれすらも使えない事になります。


mem.h
math.h
strings.h

等も同様です、

ただし実際上は、各CPUメーカー等から組み込み用のライブラリが提供されているので
必要なものだけリンクするという形で使うことが出来ます

今ではあまりありませんが、ROMやRAMの制約でなるべく小さなサイズにしたい場合等はメーカーから提供されているライブラリを使わないという選択肢もありました。


コンパイル時にアセンブラソース出力付きでデバッグ情報付きでどのように処理されているか見ると組み込みシステムの理解に繋がります


是非一度お試しあれ


そしてICEでアセンブラレベルでステップ実行できるようでしたら、何をやっているかの理解がかなり進むと思います。


各種レジスタの設定、プログラムカウンタの設定、割り込みベクターの設定、スタックポインタの設定、割り込みマスクの設定、等システムの状態を設定した上で


最終的には アセンブラレベルで

goto _main

という形で処理が行われます

他にもいろいろあるのですが今回はこのあたりでおしまい。

2012年7月19日木曜日

組み込みシステム 機材のお話(放出予定)

組み込み開発で必要となる機材の調達方法ですが、

1.新品でメーカーから買う
2.レンタルで借りる(受注元が借りて支給というケースが多い)
3.レンタル会社の放出品を買う(販売ページがあることが多い)
4.オークションで入手する
5.電子系の部品会社から通信販売で買う
5.自作する


4.5.あたりでは秋月電子とか有名ですね

でここまでがメインの記事です




==========================================================================
==========================================================================
==========================================================================


これ以降は、ちと個人的な宣伝になります、時々UPDATEする形になると思います。
(保有している機材の放出予定)




準備が整い次第オークションに出す予定にはしていますが、予定は未定です


興味のある方は連絡を頂ければ、メールをさせて頂きます。



一応リンクを貼っておきます

==========================================================================


<ヤフーオークション風夢の出品>


==========================================================================


7/19 現在の予定

・AF9723 10baseIF 付き 1Gbit GANGユニット 2種類 4個
・KMC partner ET2 本体、電源、プローブ(新品)




==========================================================================
==========================================================================
==========================================================================

組み込みシステム で デバッグプリント

基本的には組み込みシステムでは デバッグプリントは使えないことが多いですが、

そのかわりの方法をいかにして実現するかというのも工夫だと思います。

以前に紹介したシリアルポートを利用する方法もありますがそれも出来ないと仮定します。


ICEを繋いだ状態で、動作していると仮定して、ソフトの完成度も上がってきていて、でも時々動作がおかしいような場合は困りますね。

もしも、OSを使っていなくて、メモリー(RAM)に空き容量を確保できるのなら、主要な変数(出来れば構造体にしておいたほうがいい)をリングバッファ的に書き込んでいく方法があります。

リングバッファに 関しては、また別に書く必要がありますが・・・


簡単にこの方法を 説明すると


例)
 int dbg_data[1024];
  int dbg_idx;


こんな感じで変数を作っておいて、毎ループ、主要なデータを保存してやります

カウンターの更新はバッファサイズに合わせてやってください


動作がおかしくなった時に、きっとブレークポイントを設定していると思うので

その時に変数の動きを確認すれば、内部で何が起きていたのか推測できます


上の例では簡略化しすぎているので何もわかりませんけどね。


2012年7月17日火曜日

お知らせとお願い、 組込み、組み込み システム

意外と、組み込みシステム開発、組込みシステム開発、(検索の為に複数表記してます)のブログに巡り合いません。

 リンクを希望の方があれば、お知らせください、さらっと目を通して、基本的にはリンクを乗っけるようにしますので。


 検索して出てくるもので、個別の深い内容のものは、多々あるのですが、全般的にさらっと、流したものが無いので、個別の事柄に関してはあまり深入りせずに、そしてなるべく途絶えないようにと思っています。


参考になるページがあった場合は、記事の中でリンクを貼ると思いますので、今時NGということは無いとは思いますが、そういう場合は連絡をくださいませ。


基本的にこのブログでは、完全にリンクフリーと考えています。


2012年7月15日日曜日

組込みシステムと通信

予想外に番外編で、ネットワークの事をかいてしまって、予想外に多くのアクセスがあってたじろいでるわけなんですが、、、

 ついでといってはなんですが、組込みシステムと通信を取り上げたいと思います。

(タイトルだけみて、なんとなく、バランスを取って、記事をかいてるもんで・・・)

古いところでは

パラレル
RS-232C
RS-485   だったっけかな??

あたりが使われていました

ボーレートも その昔は9600BPSあたりが一般的でした

その後、組込み機器向けのCPUも高速化して ボーレートも二桁ほど上がったりもしています

特に機器内部でのやりとりとかは、動作速度の向上とともに桁違いにあがっています


その後 I2C とかいう通信も出てきていますが、

大きな変化は、PC等でも使われている TCP/IPが一般に使われることが増えてきています

データの収集や、遠隔操作等にも便利なためですね


また、配線が難しい場所とかで、使用されることもあり、無線LANを使われることも多いです

ネットワークの導入が始まった初期の頃は、ネットワーク対応のOSを使用して、ソフトレベルで

完全に対応する形で実装されていました


その後、ネットワーク機能だけの小さな基盤が開発されて提供されるケースが多く見られるようになってきました。


最初は有線LANでしたが、最近では無線LANのものもかなりあるようです。

そういう形で、簡単にネットワークを扱えるようにはなってきていますが、ネットワークの基礎知識もある程度は求められることになります。

組込みに限った話ではないので、ネットワークの仕組みなどについては ちゃんと勉強しておくことをお勧めします。





2012年7月13日金曜日

番外編2 忍者ツールズ 自力先行復旧 初心者不可! DNSの旬のところを使え!update2 12:35

忍者ツールズのDNS浸透に 時間がかかっていて いらついているかたへ

とりえず、技術力に自信がある方にだけに しか 分からない方法でやり方を

お伝えします。

私が試したのはWIN XPですので、自分の環境に合わせてください。

基本的にネットワーク周りの設定を変えられないものでは無理です。

その1. NSLOOKUP コマンドで 現在の ninja.co.jpの アドレスを 確認してメモしておきます

その2. フリーのDNSをさがします  私の場合は あの Gで始まる 有名なところのやつを
使うことにしました


その3.NSLOOKUP コマンドで フリーのDNSを使って IDが引けるか確認する

nslookup ninja.co.jp g..g.g.g

ここでIPが変わってないならアウトですので その2に戻ります

a.b.c.dと 答えが返ったものとします


その4.NSLOOKUP コマンドで 念のために IPからの逆引きをします

 nslookup a.b.c.d で 逆引きの答えが

ちゃんとなっていることを 確認します


その5.TCP/IPのプロパティーの設定から

DNSの設定に g.g.g.g をいれてやります

私はプライマリに一応いれましたが・・・・

今なにか値が入っているならセカンダリに残しておいたほうが無難です


以上です

これでわからない人は やめておいたほうが無難です。


ネットがまったく繋がらなくなります


追加です 2012/07/13 12:22

ルーターを使っている方はルーター内部のDNSの設定の所に追加してやれば
同じことが出来ます。

DNSアドレスを特に自動で取得になっている場合は、おかしくなったとしても、元に戻すのは
簡単です。

フリー DNSで 検索すれば出てくると思います。

あくまでも自己責任とうことで、宜しくお願いします。


2012/07/34 12:34
参考ページがあったのでリンク追加

<Gigazineの参考記事>

番外編 忍者ツールズ、忍者ブログ 障害 2012/07/12 20時ごろより

困ってる、人もいると思うので、記事を書くことにしました。

このブログはGoogleのサービスなので直接影響はありません。

他にもブログがあるのでそちらのほうで影響があったので、あれこれ調べていても情報がないので、自分なりに調べた結果はあとで 書きますが。

とりあえず、

忍者ツールズ、忍者ブログ 障害 2012/07/12 20:20-21:30
一般ユーザーの方にかんしては、72時間程度の時間で復旧します。


いったんここで公開して、その後修正を加えることにします。 2012/07/13 01:45

21時ぐらいまでは、まったく情報が出てくることはありませんでした、


とりあえず、現象面で分かっていることは、
・管理画面にアクセスできない(お名前のほうへリダイレクト)
・個人のブログ画面も同様

21時ぐらいまでの時点では

DNSを引いて見た結果は

どちらも一見正常な値が返ってきていましたが、

IPアドレスは同じでした

そこで考えられたことは、

・サーバークラウドのダウン
・DNSの障害

いずれにしても、復旧までに時間がかかりそうでした。

そのごあれこれ探したところ

Twitterのアカウントがあったため、連絡を取ることに

Facebookにもページがあったので、そちらでも案内を
・侍ファクトリー での告知


そちらでの情報提供を提案


それとともに IPアドレスをチェックして割当先をチェックすると


GMOとのことで、そちらの障害情報をチェックするも特になし


ただ、別件で該当する時間帯に、メンテナンス作業が入っているので、
何かのミスの可能性も考えられました

普段から無料でお世話になっているので出来るだけのサポートはしたいと
あれこれと提案させてもらっていた感じです。

01:53分 一度 さらに公開します

その後DNS障害ということがアナウンスされたので、これは 最悪72時間コースかもと
いう事が判明

それとともに、基本的には 大きな部分の原因はサーバー側では なさそうであることも

DNSを再び引いて見ると 忍者ツールズのIPは引けるものの、ユーザーブログのIPが引けない状態に変化しています(21時ぐらい?)


DNSというのは IPアドレス(人間は覚えられない、数字なので)とninja.co.jpとか の マッチングを
行うサービスのことで、仕組みは、自分が知らない時は、一段上のDNSに聞きましょうという
バケツリレー方式になっています

また、何度も何度も聞くのは、非効率なために、聞いた結果はしばらく覚えて起きましょうという
仕組みで、ある感覚で変更しましたんでよろしくという情報を、またバケツリレーで送る仕組みです


この待ち時間があるために最大72時間ぐらいで、世界中にいきわたるはずという仕組みです



2:00 再び 一度公開します

問題発生時に、心配したのは、見える見えないよりもDNSポイズン?でした

変なソフトとかを入れてしまうと、IPアドレスを取得する時に、なりすました別のサイトに知らない間に、飛ばされてしまう怖いやつです。


幸い情報が取れましたので、その心配もなく、あとは時間が経てば、ほぼ復旧すると思われます


まだまだ、現場では対応に追われているんでしょうが、頑張ってください


あとアクセス解析あたりは、きっと別で動いているようで、物によってはデータも残っている可能性もありそうです。


このあたりは事態の収拾をまって、正式発表をまつしかないところです


いちど 記事としては、これで閉じます、続報などがあるようでしたら 別途あたらしい記事にするとおもいます。

2:07


2012年7月12日木曜日

組込み開発の測定器:ロジックアナライザ

風夢です、実は、本当はこの記事をずいぶん前から書きたかったのですが、他にも書かないとって思うことがあったので、遅くなってしまいました。

以前に、デジタルオシロスコープの紹介をしましたが、似ているようで、違う測定器です。


まず、取り扱える信号の数がオシロスコープと、ロジックアナライザでは圧倒的に違います。

一般的なオシロスコープでは、2CHもしくは4CHが標準的ですが、ロジックアナライザは16CHとか
それ以上になります。

一般的にデータバスや、コントロールラインの信号レベルをH/Lを測定するのがロジックアナライザです。


例えば8ビットでデータを出力するデバイスからの、信号の読み込みをする場合にデバイスからは
リクエスト信号が出力されて、CPUは割り込み処理を行ってREAD信号を発生させてから、データバスに信号が流れます。

(READ信号も、状況しだいで IO READと MEMORY READ の場合もあります 個別のCPUで違います)


当初のロジックアナライザは、このような感じのものでしたが、お値段は怖いほど高くて、扱うのにちょっとびびってしまうようなものでしたが、その後さらに機能面で進化しています。

CPUのデータバスに流れるのは、かなりの割合で実行コードなわけで、それはアセンブラレベルになりますが、CPUが何を実行しようとして ロードしてるのか分かるということになります。

残念ながら、こういう高度なロジックアナライザを使ったことがないので、これ以上の詳細に関しては知りませんが、ICEでやっていることに近いところが外部から観測できることになります。


また、アジレンス等だったかな、デジタルオシロとロジックアナライザが組み合わさった製品も出てきているようです。

組込み開発の市場規模が大きくなるにつれて、それを支援する機材のほうも研究開発されて発展していってます、直接使う機会がなくても大体どういうものなのかを知っておかないと、いざそういう機材を使って開発に当たるときにロスタイムが発生してしまいます。

組込みシステム開発のソフトウェア技術者は、本当に日々勉強していくことが多い大変な分野です、ただし出来上がったものは製品という形で有形の物として存在しますので、やりがいも大きいです。

2012年7月11日水曜日

ライセンス問題 組込みシステムでは避けて通れない話

風夢です、今日はまたまた、ハードから離れた話ですが、ライセンスのことを話題に取りあえげて見ようと思います。


ライセンス、あるいは著作権という単語自体は日常的に耳にする言葉でなんとなく、分ったつもりになっているものですが、今日のソフトウェア開発の場合、デリケートに対応する必要があります。

それというのも、Linuxの普及によるものが大きいです。

有償、無償でいろんなOSがありますが、デファクトスタンダードとしてLinuxがどんどんと組込み機器にも使われてきています。

Linux自体も、ソフトウェア開発者なら一度調べて見るといいと思うのですが、あえて説明をしますが、カーネルとツール類は別物です。


今記事を書こうとしながらも、すぐには思い出せないほど、ライセンスには種類があります。


・コピーレフト
・GPL
・GPL2
・BSDライセンス?
・アパッチライセンス?
・BSDライセンス?
・プロプラエタリライセンス


あと、ソフトに場合によってはデュアルライセンスといって、複数のライセンスから選択をする場合もあります。



組み込み機器では特に、ソースファイルを改変などした場合に、その部分を公開する必要があるかどうかなどありますので、ライセンス関係をしっかりと確認した上で、参考にしたりする場合にはプロジェクトリーダー等に確認をとっておく必要があります。


ライセンスに関しては今後はあまり取り上げないかもしれませんが、大事な問題なので、一度しっかりと勉強をしておくことをお勧めします。



さすがに難解なのと自分自身でも、おさらいをする必要があるので、記事を書きながら探したページのリンクを貼らせてもらいます。

<漢のコンピュータ道(デュアルライセンスで検索しました)>

<Linuxカーネル WIKI>

<組み込みLinuxの手引き>



2012年7月10日火曜日

組込み プルアップ、プルダウン、ソフトエンジニアのためのデジタル回路入門1

組込み開発を続けていくと、いつの間にか回路図を渡されて・・・・ということもあります


このサイトは私の趣味?で書いているサイトなので、とっても不親切ですが、ある程度ボリュームがまとまってきたらそれなりに、役に立つことを想定して、多くのラベルをつけてあります。


今日の記事では、少しデジタル回路について触れようと思います。

用語として羅列して説明がないかもしれませんが、検索されれば、より身につくものと思います。

(このサイト自体が、特にどこかにリンクを貼るでもなく、検索しないとこれません)




・プルアップ
・プルダウン
・ファンアウト
・スリーステートバッファ
・ポートセッティング  CPU内部のポートの状態を特殊レジスタに値を書きこんで決めます。

あと 避けて通れないのは

真理値表という言葉はしってますよね?
・AND
・OR
・NOT
・XOR EORともいうのかな?


デジタルには限らないかもしれませんが電気的には

・+B
・VCC
・VDD
・VSS
・GND

とかも出てくるかも この辺りは電圧に関するものです。


多層基盤が多い最近では、どこから、どんな電圧がとれるか・・・とか回路図が読めないと
アウトです、、、ソフト屋がそんなことをする必要があるかどうかは別としてね。


3層4層は当たり前なので、オシロ、ロジアナ等を使うにはそれなりに苦労をする場合も
多いかも


・IC,LSIのピッチもかつては2.54ミリピッチでしたけど、今は微細化してるので

ちょこっとこの信号を取りたいとかって言う時は、ソフト屋さんの半田づけテクニックでは
きついのは確かですね。

ハーフピッチぐらいが限界かな

やっぱり、ハード屋さんにTPなり、ランドなりを作っておいてもらえたら嬉しいです。


多層基盤の場合は、ノイズ対策などで、表裏がかなりの面積がべたになっていることが
多いです。


こういうのが普通に分かるようになっていれば、きっと貴方は立派な組込み技術者だと思います。


2012年7月8日日曜日

何故?どうして? どうなっているのか?自分の頭で考える

今日は少し、取り留めの無い話ですが、

膨大な、技術や情報を追いかけて、限られた時間の中で、スキルアップを図りながら、仕事を続けていく必要がああります。

IT業界では他の業界以上に、この傾向は強いと思います。

新しい技術がいっせいに広まっていっているときに、オンタイムで仕事で関わっていればいいのでしょうが、そうも行きません。

 かと思えば有望だと思われていたものが急速に廃れることもあります。

広い視野を持って、現在直接自分が関わっている技術以外のものでも、概要については押さえておいて、必要になった時に、これってどんなものなんだろう??ってことになると出遅れてしまいます。




 ところが、IT分野程、裾野の広い業界もなかなか無いとも思います。




 一つ一つ携わっていくプロジェクトの中で、何でこうなんだろう?どうしてこうなんだろう?
自分の頭で考えて、推測していく癖をつけておくことを、お勧めします。




まったく違うアーキテクチャーのCPUを始めてプロジェクトで関わることになった場合でも、ここはきっと同じだろう、ここは間違いなく違うだろうと、推測をして調べることで、効率がUPすることも多いです。




 また、長らくやっていると新規開発のみならず、改造の作業が発生することもあります。


社内で開発されたソースを変更する場合であれば、運がよければ担当者がいる場合もあります


その場合は疑問点等を質問する機会にも恵まれるかもしれません。




 ソースファイルの解析を行う作業は、時にはとても苦痛を伴うものですが、スキルが高い人の
書いたコードを読むことは、非常に勉強になる事が多いです。




例えば、CPUメーカー提供のライブラリのソース、OSのデバイスドライバのソース等、
通常のアプリケーション開発のレベルとは、違ったレベルの記述がなされている場合もあります


 嫌だと思う仕事の中にも、スキルアップのチャンスは転がっているのです、プログラムの開発の思想にも歴史の流れがあるので、書いた人の時代を感じることもあります




簡単な 例をひとつだけ 挙げれば


if( 3 == a) と

if( a == 3) この違いはわかるでしょうか?


もしも =を一つ打ち忘れた場合に ここで差が出てきます

勿論例なので、3を直接書いていますが これも #define もしくは enum を 使うところでしょう


あと 脱線になりますが、

- w3 は 必須だと思います

それが 何故かも 考えて見てください




****
文字だらけで、写真や図を 使わないで書いているのは、なるべく、時代の変化に関係なく
記述しようとおもうからです

また、読まれた方が自分の頭で考えたり、検索して印象深く記憶に入ればと思っています







2012年7月5日木曜日

ハード屋さんにお願いしたいこと(アートワーク)

少し前の記事

空きポートの活用(デバッグ)>

にも書いたことですが、小ロットで作成される、機器の場合、アートワークを決める時点で少し工夫をして頂ければ、ハードデバッグやソフトデバッグに活用できることがあります

JTAGのコネクタのように未実装状態で製品化するというほどのレベルまで行かなくても、使用しないポートをプルアップ、プルダウンしておくのにすこしだけでもパターンを伸ばして頂ければ

・シリアル通信
・IO
・AD/DA

等を付加して、システムトータルでの開発に役に立つことも考えられます


できれば+Bとか取りやすかったり、TPとか立てれるようなランドにしてもらってれば

もっと楽ですけど


発想を、逆転して、ハードデバッグを行うために、そういう冶具を実装した基盤を提供して

スイッチなり、エンコーダー、シリアル入力に基づいて、確認したい動作をするように

ソフト屋に頼んで、先にがっしりとハードを固めてもらうのもありだと思います



2012年7月4日水曜日

組込みシステムに限った話ではないけれど

ソフト開発で生計を立てていく人全般に言えることだとは思いますが、

常に新しい技術が出てきて、枯れていく技術、消えていく技術があります

今現在自分自身に関係がないと思われる事柄でも、IT業界に関わる技術、情報には普段から軽く目を通しておいて、ざっとどういうものかは知っておく必要があります

 詳細な内容の理解までしておく必要はありませんが、いざその技術が直接必要になった場合あるいは、客先でxxxってどうですかね?とか言われた場合に、アウトラインぐらいは知っておいて充分に対応できるぐらいの知識は持っておくことが望ましいです

 今現在、組込み機器にはネットワークあるいは無線LANが内蔵されていくものも多いです

10年前には考えられなかったことですが、5年先にはどうなっているか分かりません

全ての技術を詳細にということは当然不可能ですが、どういうものかという程度を押さえているか
の差は大きいです

何かのプロジェクトに関わる時、あ、、そういえば以前に耳にしたことのあるあれはどうだろう?

ということで、詳細に調べ役に立つことも少なくありません


 常に新しいことに挑戦し、勉強を続けるというスピリットが特に組込み開発を行っていく人には
重要だと思います


 一部には、ソフト業界の中でも職人とも言われることのある、組込み技術者ですがそこに
至る経緯でいくつかのパターンがあると思います


A)ハード開発から、必要性にかられてソフト開発を続けるうちに、ソフトの方がメインに。

B)ハード開発を行ううちに、ソフト担当者との打ち合わせも多く、大まかにソフトのイメージをつかんでソフト屋の言葉を理解できるようになった。

C)ソフト開発を続ける中で、必要性にかられてハード関係の勉強も進めて、ハード屋の言葉を理解できるようになった。(回路図、データシート、測定器類の操作も出来る)

D)ソフト開発を続ける中で、必要性にかられてハード関係の勉強も進めて、ハード屋の言葉を理解できるようになり、問題点がある場合にハード屋さんと協力して問題解決に取り組める




メインのターゲットをソフト開発者にしていますので、もう一つ付け足しておきます


E)ソフト開発を続ける中で、安定したシステム上では何とか組込み開発を行うことが出来る
 (回路図、データシート等は読める)・・・・ただし、設定等はハード屋さんが居ないと出来ない






今あげた中で、サバイバル能力が一番高いのは、AとCになります、ソフトから、あるいはハードからスタートしていても、相手領域でもそれなりの知識と技術を持っているので、最悪のケースは自力でなんとか乗り切ることが出来ます




2,3年の経験ではこの域まで達することは出来ませんが、志をもって、常に広い視野で勉強を続けることで自らのスキルをUPして、やっと到達できます




上の説明では、ネット関係しかあげていませんが、組込みでもデーターベースを使うことも増えてきているようですし、いま一番新しいところではmRubyがHOTです


私の場合で言うなら、Cに一番近いですが、ソフト業界に入る前に、ある程度の電子回路の知識があり、電子回路の設計に進むか、ソフト開発に進むかということで一時迷ったことがありますが、

ソフト開発の道に進んで、ブリッジエンジニアとなるべく、努力を続けてきました(当時そのような言葉はありませんでしたが)


また、規模の大きな開発になってくると、自分の担当部分にしか目が行かなくなりがちですが、システム全体を大まかにでもとらえて、その中での自分の担当部分の役割を確認しておく癖をつけておくことで将来の自分のスキルアップにつながると思います




2012年7月1日日曜日

組込開発の測定器 :オシロスコープ

組込みシステムで 扱う電気信号がどうなっているのかを、目で見える形にしてくれるものが

オシロスコープです


以前には、アナログ式のオシロスコープ(ブラウン管を使った緑色のものでぼわーーんと暗くなる)で信号の波形を見るものでした


それを、デジタル処理で実現したものがデジタルオシロスコープです(緑色のCRTを使ってるものも当然ですがあります)


単純に波形を見ることはもちろん出来ますし、周波数を計ったり、電圧を測定することも出来ます



入出力の信号を見ることで、ソフトが正しく動作しているのか、あるいはハードに問題があるのかを

見つけるために使うことが多いです


外部信号からの割り込み動作が仕様どおりになっているかどうかとか


価格によって性能はぜんぜん違います

今は安くなってはいますし、USB接続でPCとつないでデータを保存できるものもあります


測定できる入力数、測定できる周波数の範囲等で大きく変わります



また トリガー機能、メモリー機能等あります


トリガー ある条件が整った時を基準として、前だったり、後ろだったりの状態を

メモリーすることが可能です、

トリガーから時差をつけてメモリーするというディレイ機能など使いこなすには、それなりの知識が必要となりますが、使えれば役に立ちます


何かのプロジェクトで身近にデジタルオシロスコープがある状況にある方は、管理している人に

お願いして、あれこれと触っておくことをお勧めします