Development

ITpro  > Development
Development

トロン技術者認定試験 学習のポイント

ITpro

第5回 ハードウエア分野(標準T-Engine,μT-Engine,他)

ここから先は,ITpro会員(無料)の方だけがご覧いただけます。

ぜひ,ご登録いただき,記事の全文をお読み下さい。

  • ITpro会員ではない方は,
  • 既にITpro会員にご登録いただいている方は,

例題2 テーマ:T-Engineのシリアルインタフェース

【問題】
以下の,T-Engineボードのシリアルインタフェースに関する説明文を読んで,設問1,設問2に解答せよ。

===

T-Engineでは,標準T-Engine,μT-Engine共にシリアルインタフェースを1チャンネル以上搭載することが必須である。シリアルインタフェースは汎用のシリアルI/Oとして,あるいはデバッグ用のコンソールポートとして使用する。ボード上の物理的なコネクタ形状などは規定されていないが,通信速度は[ A ]以上に対応していることが必要であると規定されている。

さて,T-Engineの通信速度を[ A ]に設定し,その他のパラメータを以下のように設定したとする。

データ長 8ビット
パリティビット なし
ストップビット 1ビット

上記の設定で,T-EngineとPCをシリアルケーブルで接続し,PCで通信ソフト(以下,コンソール)を起動した状態でT-Engineの電源をONにしたところ,T-Kernelのusermain関数に含まれているT-Kernelの起動メッセージがコンソールに表示された。

そこで,T-Kernelのusermain関数の起動メッセージの直後に,リスト1のプログラムを追加した。このプログラムを書込んだT-Engineの電源をONにしたところ,コンソールにはT-Kernelの起動メッセージに続けて文字[ B ]が連続して表示され続けた。

リスト1

  for( ;; ){
    tm_putchar( '[ B ]' );
  }

この状態でシリアルケーブルの,T-EngineからPCへの送信信号の部分にデジタルオシロスコープ(以下,オシロスコープ)を接続して信号を測定したところ,オシロスコープには図2に示すような波形が表示された。また,図2の(a)と(b)の間隔,(b)と(c)の間隔はそれぞれ約26.31μsec,約8.51μsecと実測された。

図2●オシロスコープで計測した波形(模式図)

設問1:
空欄[ A ]に当てはまる数値を,選択項目Aの中から一つ選べ。

【選択項目A】

  1. 9,600 bps
  2. 19,200 bps
  3. 38,400 bps
  4. 115,200 bps

設問2:
空欄[ B ]に当てはまる文字を,選択項目Bの中から一つ選べ。

【選択項目B】

  1.  t
  2.  T
  3.  e
  4.  E

【正解】(マウスでドラッグして文字を反転させてください)
 [ A ]= 4
 [ B ]= 2

【解説】
 T-Engineで対応していなければならない通信速度については,「T-Engineハードウェア仕様書」と「μT-Engineハードウェア仕様書」で以下のように規定されています。

非同期シリアル通信ポート(専用ケーブル接続による) 1ch : 115.2kbps 以上

 このため,設問1の正解は選択肢4の115,200bpsとなります。

 ただし,この規格を知らなかったとしても,1ビットの時間が約8.51μsecであることが示されていますので,この値を利用して通信速度を算出することができます。

      1
 ―――――――――― ≒ 117,509 bit / sec
  8.51 μsec / bit

 8.51 μsecという値は実測値ですから多少誤差があることを考慮して,最も近い値 115,200 bps が設定された通信速度であることがわかります。

---

 設問2はシリアル通信に関する以下の基本事項を押さえていれば簡単に解析することができます。

≪ ポイント ≫

  • シリアル通信の波形は負論理であること。
  • スタートビット+データ+パリティビット+ストップビットで構成されていること。
  • 一般に,データはLSBからMSBに向かって順に送出されること。

 これらを図2にあてはめると,図3のようになります。

図3●波形データの構成

 2進数の 01010100 は16進数では 0x54 となり,ASCIIコードでは 'T' を表します。結果として,[ B ]は T となりますので,正解は選択肢2となります。(※ "0x" は16進数を表すものとします。以下,同様。)

 ASCIIコードについては何もヒントがありませんが,この程度は基本的な知識として覚えておいたほうがよいでしょう。ただし,ASCIIコードをすべて記憶する必要はありません。以下の2点を押さえていれば,アルファベットについては簡単に導き出せます。

≪ ポイント ≫

  • 'A'は0x41であること。
  • 'A'と'a'の差が0x20であること。

 その他にも,'0'が0x30,SPACEが0x20ということくらいは覚えておいたほうがよいでしょう。

===

 オシロスコープで波形を計測することにより,通信においてどのようなデータが送受信されているかを正確に把握することができます。その他にも,そもそも本当にデータが送信されているのかどうか,送受信のタイミングが正しいかどうか,外部割込みの信号がCPUの端子に入っているかどうかなど,様々な信号を目で見て確認できるようになります。

 他にも回線モニタやロジックアナライザなどの便利な計測機器がありますが,オシロスコープを用いると現象をより正確に把握することができます。

 これらの機器はソフトウエア技術者にはなじみの薄い機器かもしれませんが,できればオシロスコープの基本機能くらいは利用できるようになっておいたほうがよいでしょう。組込み機器の開発効率を非常に高くすることができます。

まとめ

 組込み機器の開発では,ソフトウエアとハードウエアが同時に開発されることが多くあります。

 ソフトウエアにバグがあるように,ハードウエアにも不具合が潜んでいる可能性があります。新しく開発されたばかりのハードウエアであればなおさらです。このような場合には,ハードウエアを含めて現象を解析することで早期に原因を切り分けることができるようになり,早めに有効な対策を講じることができるようになります。

 組込み機器の技術者であれば,ソフトウエアの担当であったとしても,ハードウエアについての基礎的な知識くらいは身に付けるようにしましょう。それはちょうどハードウエア技術者が簡単なテストプログラムくらいは組めるのと同じようなものです。


(T-Engineフォーラム)  [2008/07/18]

この記事に対する読者コメント

コメントに関する諸注意 コメント投稿 コメント一覧