Bluetooth Device AKC111/121を利用したシリアル通信

coskx

1.はじめに

この文書は,H8/3048-H8/3664マイコン間のシリアル通信を行うが,シリアルケーブルの代わりにBluetooth Deviceを2つ使って無線通信を行おうとするものである。

2.Bluetooth Device

 KC Wirefree社のAKC111および121を用いる。このデバイスは,見かけ上,RS232C機器である。ブルートゥース無線通信デバイスを用いると,マイコンからRS232Cシリアル通信を行えば,そのまま無線通信が行われる。ユーザはブルートゥースの通信のことは考えなくてもよいようになっている。 マニュアル・データシート

注意
 このブルートゥース無線通信デバイスはブルートゥースの認定は受けているが,日本の電波法のTELEC認定は受けていないので,実験は電波暗室など,外部に電波が漏れないところで行うこと。

ブルートゥース無線通信デバイス AKC121


このデバイスは能動端末仕様になっているため,能動端末であるWindowsPCとこのデバイスとをつなぐ場合はクロスケーブルでつなぐようになっている。
マイコンH8/3XXXは受動端末なので,能動端末であるWindowsPCとマイコンH8/3XXXとをつなぐ場合はストレートケーブルでつなぐようになっていた。
そのため,能動端末仕様のこのデバイスと受動端末のマイコンH8/3XXXとをつなぐ場合はストレートケーブルでつなげることができる。
なお,このデバイスはハードウェアフロー制御をおこなっているので,CTS,RTS信号線を使うことになる。

3.WindowsPCとAKC111との接続(準備作業)

3.1 目的

WindowsPCとブルートゥース無線通信デバイスAKC111を接続し,WindowsPCとブルートゥース無線通信デバイスAKC111の間で初期通信を行う。
この作業ではまだ無線通信で他のPCやマイコンとの通信は行わない。
この準備作業の目的は,2つある
(1)AKC111のBluetooth Device Addressを調べ,AKC111に貼っておく。後で通信確立のために必要になる。
(2)H8/3048,H8/3664は16MHzクロックなので,相性の良い通信速度は38400baudである。(25MHzクロックのCPUの場合も38400baudで相性が良い。)AKC111/121の出荷時のデフォルトの通信速度は115200なので,デフォルト通信速度の変更をしておく必要がある。

WindowsPCとブルートゥース無線通信デバイスの接続

3.2 作業

作業手順は次の通り

(1)PCとAKC111を,両端DSUB-9シリアルクロスケーブル(メス−メス)でつなぐ。
  AKC111・121はデフォルトでハードウェアフロー制御が行われるので,最低でも次のようにCTS/RTSが
  処理されているクロスケーブルを使う必要がある。
  (純クロスケーブル,準クロスケーブルどちらでもよい)

テスタで導通をチェックして以下を確かめるとよい

純クロスケーブル

 RXD(受信データ OUT) 2 ━━━ 3 TXD
 TXD(送信データ IN ) 3 ━━━ 2 RXD
 SG (     GND      ) 5 ━━━ 5 SG
 RTS(フロー制御 OUT) 7 ━━━ 8 CTS
 CTS(フロー制御 IN ) 8 ━━━ 7 RTS

準クロスケーブル

 RXD(受信データ OUT) 2 ━━━ 3 TXD
 TXD(送信データ IN ) 3 ━━━ 2 RXD
 SG (     GND      ) 5 ━━━ 5 SG
 RTS(フロー制御 OUT) 7 ┓ ┏ 7 RTS
 CTS(フロー制御 IN ) 8 ┛ ┗ 8 CTS

純クロスケーブルでは,PC側もBD側ともに正しくフロー制御が行える
準クロスケーブルでは,PC側BD側ともにフロー制御をおこなうように設定できるが,実は見せかけだけで,
正しいフロー制御はおこなえていないが,通信はできる。

参考 PCとAKC111の接続について
AKC111は通信上はPCと同等の能動端末として設計されている。

PC(能動端末)

 

クロスケーブル
(メス − メス)

 

AKC111(能動端末)

DSUB9
ピン番号

信号名

方向

 

方向

 

方向

 

DSUB9
ピン番号

方向

信号名

2

RXD

 

ここで2-3がクロス

 

2

RXD

3

TXD

 

ここで2-3がクロス

 

3

TXD

7

RTS

 

ここで7-8がクロス

 

7

RTS

8

CTS

 

ここで7-8がクロス

 

8

CTS


(2)PCでハイパーターミナルを立ち上げ,通信を切断し,AKC111のデフォルト設定に合わせてファイルメニューのプロパティを設定する。
  (ハイパーターミナルでは
通信メニューで通信を切断しないと設定ができない)

ビット/秒:115200
データビット:8
パリティ:なし
ストップビット:1
フロー制御:ハードウエア(準クロスケーブルでは,実際にはフロー制御できないが,特に問題はない)
ローカルエコー:ON
送信時改行コード:付ける

(3)ハイパーターミナルを接続状態にする

(4)AKC111の裏側にφ1.3DCプラグで5V電源を与える
    (プラグセンタピンが+5V,電源は5-9V,最大200mA供給可能であること)

(5)ハイパーターミナルに次のように表示されたら動作していることがわかる
  00043e3b039eは現在接続されているブルートゥースデバイス番号であり,機器により異なる番号が割り当てられている。
  なお,AKC111投入後,約0.5秒ほどで,最初のメッセージがハイパーターミナルに表示される。
  (このことは後でマイコンに組み込んだ時に,マイコンと同時に電源投入しても,マイコンの初期設定時間
   があるということを示している)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e






実際は次のようなコードが送られてくる。

[0x80][0x78][0x1e]AT-ZV -CommandMode-[0x0d][0x0a]
AT-ZV BDAddress xxxxxxxxxxxx[0x0d][0x0a]

[0x80][0x78][0x1e]のコードは起動時とreset時にのみ現れる。

(6)デフォルト通信速度を38400に変更する。ハイパーターミナルで「AT+ZV ChangeDefaultBaud 38400」を書くと変更されたことが知らされる。

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
AT+ZV ChangeDefaultBaud 38400
AT-ZV Baudrate Changed






←ここを入力

(7)ハイパーターミナルの通信を切断し,ファイルメニューのプロパティから通信速度を38400に設定する。

(8)ハイパーターミナルを接続状態にして,AKC111の5V電源を一旦切って,再投入し,立ち上げなおす。

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
AT+ZV ChangeDefaultBaud 38400
AT-ZV Baudrate Changed

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e

この4行は前の作業




←再立ち上げしてきて,38400baudの通信速度で通信ができたところ

(9) 別なAKC111・121について,(2)から(8)を行う。

 

4.WindowsPC間のRS232C通信をブルートゥースデバイスを用いて無線化する

4.1 目的

2台のWindowsPC間でRS232C通信を行う。ブルートゥースデバイスを用いて,ケーブル接続を無線通信に置き換える。
先の「PC−ブルートゥースデバイス」接続準備にてブルートゥースデバイスのアドレスが確認されており,デフォルト通信速度が38400baudになっているものとする。

この作業の目的は,2つのブルートゥースデバイス間にて通信の確立を確認し,その際必要な初期設定を確かめることである。

2台のWindowsPCをブルートゥース無線通信デバイスで接続
「WindowsPC A」を「マスタ」,「WindowsPC B」を「スレイブ」とする

 

4.2 通常接続

前提1 マスタとスレイブのブルートゥースアドレスの設定が終わっている
    マスタ  00043e3b039e
    スレイブ 00043e3a08eb
前提2 2つのブルートゥースデバイスはデフォルト通信速度が38400baud/sに設定されている

実行の様子

(1)それぞれのPCにおいてCOMポートを利用して,ハイパーターミナルを立ち上げる。
   それぞれ自分のブルートゥースデバイスアドレスが表示される。

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb

(2)マスタ側から,スレイブ側のブルートゥースデバイスアドレスに対して接続を試みる。
  「AT+ZV SPPConnect 00043e3a08eb」を入力すると接続が完了する

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
AT+ZV SPPConnect 00043e3a08eb
AT-ZV ConnectionUp
AT-ZV -BypassMode-
AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb
AT-ZV ConnectionUp
AT-ZV -BypassMode-

(3)マスタ側からデータ送信
マスタ側で「aaaa」を入力→スレイブ側で受信が確認できる

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
AT+ZV SPPConnect 00043e3a08eb
AT-ZV ConnectionUp
AT-ZV -BypassMode-
aaaa
AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb
AT-ZV ConnectionUp
AT-ZV -BypassMode-
aaaa

(4)スレイブ側からデータ送信
スレイブ側から「bbbb」を入力→マスタ側で受信が確認できる

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
AT+ZV SPPConnect 00043e3a08eb
AT-ZV ConnectionUp
AT-ZV -BypassMode-
aaaa
bbbb
AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb
AT-ZV ConnectionUp
AT-ZV -BypassMode-
aaaa
bbbb

 

5.WindowsPC間のRS232C通信をブルートゥースデバイスを用いて無線化し,いくつかの実験を行なう

5.1 目的

(1)スレイブに対し,特定のマスタとのみ接続を許可するように設定できることを確認する
(2)マスタは,通信が確立したスレイブを切り離し,再度通信を確立することができることを確認する
 (これは複数のスレイブに対して切り替えながら通信できることの確認である)

2台のWindowsPCをブルートゥース無線通信デバイスで接続
「WindowsPC A」を「マスタ」,「WindowsPC B」を「スレイブ」とする



5.2 スレイブの発見

前提1 マスタとスレイブのブルートゥースアドレスの設定が終わっている
    マスタ  00043e3b039e
    スレイブ 00043e3a08eb
前提2 2つのブルートゥースデバイスはデフォルト通信速度が38400baud/sに設定されている

実行の様子

(1)それぞれのPCにおいてCOMポートを利用して,ハイパーターミナルを立ち上げる。
   それぞれ自分のブルートゥースデバイスアドレスが表示される。

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb

(2)マスタ側から,スレイブ探索コマンド「AT+ZV Discovery」を送信する。
  10秒ほど待つとマスタからスレイブが見つかり,報告が得られる。
  スレイブ側は何も報告されない。

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
AT+ZV Discovery
AT-ZV InqPending
AT-ZV DiscoveryPending 1
AT-ZV Device 00043e3a08eb "KCWirefreeDevice" KC-SPP
AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb
AT-ZV ConnectionUp
AT-ZV -BypassMode-

 

5.3 スレイブが特定のマスタからの接続にしか応答しない設定

bond命令を使ってスレイブが特定のマスタからの接続要求にしか応答しないようにできる。

5.3.1 スレイブが架空のマスタからの接続にのみ応答するようにする。

これでマスタからの接続が失敗してしまえば,不正アクセスから安全

実行の様子

(1)それぞれのPCにおいてCOMポートを利用して,ハイパーターミナルを立ち上げる。
   それぞれ自分のブルートゥースデバイスアドレスが表示される。

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb

(2)スレイブ側に,架空のブルートゥースアドレス00043e3b0390にのみ応答するように設定する。
   スレイブ側に「AT+ZV EnableBond 00043e3b0390」を与える

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb
AT+ZV EnableBond 00043e3b0390
AT-ZV EnableBondOk

(3)マスタ側からスレイブ側に接続を試みる。
   接続に失敗する。

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
AT+ZV SPPConnect 00043e3a08eb
AT-ZV SPPConnectionClosed
AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb
AT+ZV EnableBond 00043e3b0390
AT-ZV EnableBondOk

(4)マスタ側は仕方がないので,スレイブ探索を試みる。
   これは成功するが,とにかく接続はできない。

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
AT+ZV SPPConnect 00043e3a08eb
AT-ZV SPPConnectionClosed
AT+ZV Discovery
AT-ZV InqPending
AT-ZV DiscoveryPending 1
AT-ZV Device 00043e3a08eb "KCWirefreeDevice" KC-SPP
AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb
AT+ZV EnableBond 00043e3b0390
AT-ZV EnableBondOk

スレイブ側がbond命令でマスタを登録すると,それ以外のマスタからの接続要求には答えないことが確認された。
セキュリティ上重要なことである。

 

5.3.2 スレイブがbond命令で登録したマスタからの接続にのみ応答するようにする。これでは成功すればよい

実行の様子

(1)それぞれのPCにおいてCOMポートを利用して,ハイパーターミナルを立ち上げる。
   それぞれ自分のブルートゥースデバイスアドレスが表示される。

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb

(2)スレイブ側に,正規のブルートゥースアドレス00043e3b039eにのみ応答するように設定する。
   スレイブ側に「AT+ZV EnableBond 00043e3b039e」を与える

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb
AT+ZV EnableBond 00043e3b039e
AT-ZV EnableBondOk

(3)マスタ側からスレイブ側に接続を試みる。
   接続に成功する。

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
T+ZV SPPConnect 00043e3a08eb
AT-ZV ConnectionUp
AT-ZV -BypassMode-

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb
AT+ZV EnableBond 00043e3b039e
AT-ZV EnableBondOk
AT-ZV ConnectionUp
AT-ZV -BypassMode-

 

5.3.3 ボンドリストの消去

スレイブ側でbond命令でマスタのIDを登録するとボンドリストに蓄えられる。
これは電源を切っても消えない。
スレイブ側のボンドリストから,マスタのID XXXXXXXXXXXを消去するには,スレイブ側コマンドモードで次のコマンドを入力する。

  AT+ZV EnableBond XXXXXXXXXXX

スレイブ側のボンドリストすべてを消去するには,スレイブ側コマンドモードで次のコマンドを入力する。

  AT+ZV EraseBondTable

 

まとめ

スレイブを,特定のアドレスを持つマスタのみに応答させるには,起動直後にbond命令で
所望のマスタをボンドしておけばよいことがわかった。

 

5.4 接続の中断と再接続

実行の様子

(1)それぞれのPCにおいてCOMポートを利用して,ハイパーターミナルを立ち上げる。
   それぞれ自分のブルートゥースデバイスアドレスが表示される。

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb

(2)スレイブ側に,正規のブルートゥースアドレス00043e3b039eにのみ応答するように設定する。
   スレイブ側に「AT+ZV EnableBond 00043e3b039e」を与える

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb
AT+ZV EnableBond 00043e3b039e
AT-ZV EnableBondOk

(3)マスタ側からスレイブ側に接続を試みる。
   接続に成功する。

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
T+ZV SPPConnect 00043e3a08eb
AT-ZV ConnectionUp
AT-ZV -BypassMode-

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb
AT+ZV EnableBond 00043e3b039e
AT-ZV EnableBondOk
AT-ZV ConnectionUp
AT-ZV -BypassMode-


(4)マスタ側からデータ「hello」を送る

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
AT+ZV SPPConnect 00043e3a08eb
AT-ZV ConnectionUp
AT-ZV -BypassMode-
hello

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb
AT+ZV EnableBond 00043e3b039e
AT-ZV EnableBondOk
AT-ZV ConnectionUp
AT-ZV -BypassMode-
hello

(5)マスタ側からエスケープ文字列「^#^$^%」を送る
   マスタ・スレイブともにコマンドモードに戻る

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
AT+ZV SPPConnect 00043e3a08eb
AT-ZV ConnectionUp
AT-ZV -BypassMode-
hello
^#^$^%AT-ZV -CommandMode-

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb
AT+ZV EnableBond 00043e3b039e
AT-ZV EnableBondOk
AT-ZV ConnectionUp
AT-ZV -BypassMode-
hello
###NO CARRIER
AT-ZV -CommandMode-

(6)マスタ側から接続終了コマンド「AT+ZV SPPDisconnect」を送る

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
AT+ZV SPPConnect 00043e3a08eb
AT-ZV ConnectionUp
AT-ZV -BypassMode-
hello
^#^$^%AT-ZV -CommandMode-

AT+ZV SPPDisconnect
AT-ZV SPPConnectionClosed
AT-ZV ConnectionDown

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb
AT+ZV EnableBond 00043e3b039e
AT-ZV EnableBondOk
AT-ZV ConnectionUp
AT-ZV -BypassMode-
hello
###NO CARRIER
AT-ZV -CommandMode-
AT-ZV ConnectionDown

(7)再度接続

マスタ側(00043e3b039e)

スレイブ側(00043e3a08eb)

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3b039e
AT+ZV SPPConnect 00043e3a08eb
AT-ZV ConnectionUp
AT-ZV -BypassMode-
hello
^#^$^%AT-ZV -CommandMode-

AT+ZV SPPDisconnect
AT-ZV SPPConnectionClosed
AT-ZV ConnectionDown
AT+ZV SPPConnect 00043e3a08eb
AT-ZV ConnectionUp
AT-ZV -BypassMode-

AT-ZV -CommandMode-
AT-ZV BDAddress 00043e3a08eb
AT+ZV EnableBond 00043e3b039e
AT-ZV EnableBondOk
AT-ZV ConnectionUp
AT-ZV -BypassMode-
hello
###NO CARRIER
AT-ZV -CommandMode-
AT-ZV ConnectionDown
AT-ZV ConnectionUp
AT-ZV -BypassMode-

 

6.2つのマイクロコンピュータH8間のRS232C通信をブルートゥースデバイスを用いて無線化する

6.1 接続
接続のイメージは次のようなものとなる。

注意 H8マイコンとブルートゥースデバイス間は両端DSUB-9ストレートケーブル(実際にはケーブル不要)
注意 H8マイコンDSUB-9ソケットのRTS(7)とCTS(8)をショートさせること

H8マイコンAKI-H8/3048のDSUB-9ソケットピン割り当て

 RXD (送信データ OUT) 2     内部はTXD (CN4-7 TXD0)
 TXD (受信データ IN ) 3     内部はRXD (CN4-5 RXD0)
 SG  (     GND      ) 5 
 CTS (フロー制御 IN ) 7 ┓
 RTS (フロー制御 OUT) 8 ┛

参考 H8マイコンAKI-H8とAKC111の接続について
H8マイコンAKI-H8/3048は受動端末として,AKC111は能動端末として設計されているため,
次のような信号構成となる

AKC111(能動端末)

 

ストレートケーブル
(メス − オス)

 

H8マイコンAKI-H8/3048(受動端末)

DSUB9
ピン番号

信号名

方向

 

方向

信号名

方向

 

DSUB9
ピン番号

方向

信号名

内部的な意味

2

RXD

 

RXD

 

2

RXD

←内部はTXD
(CN4-7 TXD0)

3

TXD

 

TXD

 

3

TXD

→内部はRXD
(CN4-5 RXD0)

7

RTS

 

RTS

 

7

→┓

 

 

8

CTS

 

CTS

 

8

←┛

 

 


6.2 ソフトウェア

ここでは,説明のために2つのH8/3048を用いた通信をおこなうこととする。
PC対PCの通信では,動作確認のためにハイパーターミナルを用いることができた。しかし,マイクロコンピュータ対マイクロコンピュータの通信の場合にはこのようなわけにいかないので,テスト方法を工夫する必要がある。

初期化作業は「5.4」の(1)から(4)までを参考にすると次のとおりとなる。

(1)マスタ側

1)"AT-ZV -CommandMode-"を受ける。
2)"AT-ZV BDAddress xxxxxxxxxxxx"を受ける。(xxxxxxxxxxxxは自分のID)
3)"T+ZV SPPConnect yyyyyyyyyyyy"送る。(接続要求コマンド yyyyyyyyyyyyは通信相手のID)
4)"AT-ZV -BypassMode-"がくるまで文字列行を受ける。

(2)スレイブ側

1)"AT-ZV -CommandMode-"を受ける。
2)"AT-ZV BDAddress yyyyyyyyyyyy"を受ける。(yyyyyyyyyyyyは自分のID)
3)"AT+ZV EnableBond xxxxxxxxxxxx"を送る。(通信相手限定(bond)コマンド xxxxxxxxxxxxは通信相手のID)
4)"AT-ZV -BypassMode-"がくるまで文字列行を受ける。

−−ここから下の部分はロボコンゼミの井上淳志君と岡崎健太君に検証してもらいました−−

6.2.1 PCをマスタ,H8/3048をスレイブにするテスト

マスタ側(PCのハイパーターミナル)から「文字列+[Enter]」を送ると,スレイブ側(H8/3048)は,その文字列をオウム返しに返すテスト。

スレイブ側プログラム(H8V2コンパイラでコンパイルできます)

 

6.2.2 H8/3048をマスタ,PCをスレイブにするテスト

マスタ側(H8/3048)は,スレイブ側(PCのハイパーターミナル)に"0123456789"を繰り返し送信するテスト。

マスタ側プログラム(H8V2コンパイラでコンパイルできます)

 

6.2.3 H8/3048をマスタ,スレイブの両方に使ったテスト

マスター側H8/3048は8ビットスイッチの状態をバイトデータとして取り込み,「下位2ビットの値+0x30」を連続してスレイブ側に送ります。スレイブ側は受信データの下2けたに対応して2つのLEDを点灯消灯させてテストを行う。電源を切るまでこの動作は続く。
なお,スレイブ側をPCのハイパーターミナルでも代用でき,マスター側H8/3048の8ビットスイッチの状態に対応して,ターミナル画面上に,'0','1','2'を表示する。

プログラム(H8V2コンパイラでコンパイルできます)