2016年10月1日土曜日

ブラウザからマイコンを制御

パソコンのブラウザからマイコンを制御するというと、LAN搭載マイコンにTCP/IPスタックが載っていて、マイコンに簡単なHTTPサーバを実装するか、外部のサーバ経由で制御すること方式が一般的ですが、今回はシリアル通信しかないマイコンをブラウザから制御したいと思います。

流れとしては、ブラウザからGET/POSTリクエストをTCP/IPパケットとして送って、それをシリアル通信に変換して、マイコンに渡します。そしてレスポンスはその逆の流れで、マイコンからシリアル通信でパソコンに送って、シリアル通信をTCP/IPパケットに変換して、ブラウザに返してやれば表示されるはずです。

必要な手順は、下記の4つ
1.TCP/IPパケットをシリアル通信に変換する方法
2.ブラウザからのGET/POSTリクエストの解析
3.レスポンスの解析・生成
4.レスポンスのHTML

1.TCP/IPパケットをシリアル通信に変換する方法

これはまだモデムでインターネットを接続していた時代に全盛だった技術 SLIPやPPPを使えば出来そうです。
これからを考えるとPPPなのでしょうが、マイコンには負荷をかけたくないので、電文をEND(0xC0)で挟むだけの、とてもシンプルなSLIPを採用します。

WindowsXPにはSLIPドライバがあるのですが、どうもXindows7以降 SLIPはサポートされていないようです。
そこで、仕方なく簡単なSLIPドライバを自作することにしました。

プロトコルの詳細は、@networkさんのサイトを参考にさせて頂きました。
http://atnetwork.info/tcpip1/tcpip123.html

つづく