このQ&Aは役に立ちましたか?
PCとマイコンのシリアル通信方法
2023/10/21 00:23
- PCとマイコンのシリアル通信について考えています。TeraTermを使用してバイナリ形式での通信を行いたいです。
- 具体的な例として、マイコンボード上に実装されたトグルSWとLEDランプの状態をPCから操作する方法について教えてください。
- TeraTermの記述方法やコマンドについても詳しく教えてください。
PCとマイコンとのシリアル通信
2022/05/01 10:00
マイコンとパソコンでシリアル通信を考えています。
WEB検索すると「TeraTerm」というソフトにたどり着きました。
通信はバイナリです。(ASCII文字でのやり取りは行いません)
例えば、
マイコンボード上にトグルSWとLEDランプが実装されているとします。
・PCからトグルSWコマンド「0Ah」をマイコンに送信。
・マイコンはトグルSWの状態をONなら「00h」をOFFなら「01h」をPCに返信。
・PCは返信データが「00h」なら、LED点灯コマンド「0Ch」をマイコンに送信。
・PCは返信データが「01h」なら、LED消灯コマンド「0Dh」をマイコンに送信。
みたいなことを行いたいです。
TeraTermでどのように記述してよいかわからないです。
このへんを教えてくださいよろしくお願いします。
質問者が選んだベストアンサー
回答6です
>ラインモニタ機は単なるモニタ機ですか?
モニタ機能(監視、解析)がメインであり送信機能は付録です
必ずしも送信できるとは限らない
デバッグ、解析するための補助機能として送信可能と謂うだけです
>受信したデータの内容に応じて次の送信データを送るようなアプリソフト
Tera Termマクロ機能で実現可能ですが
https://mag.osdn.jp/10/01/08/0825239
http://www.macrosh.com/tera-termmakuronitsuite/komando-yi-lan
TeraTermマクロ機能を勉強してプログラムするヒマが有るなら
VBやC#で出来てしまった < 私自身の経験
Visual Basic でシリアル ポートに文字列を送信する
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/developing-apps/programming/computer-resources/how-to-send-strings-to-serial-ports
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/developing-apps/programming/computer-resources/how-to-receive-strings-from-serial-ports
SerialPort.Read メソッド
https://docs.microsoft.com/ja-jp/dotnet/api/system.io.ports.serialport.read?view=dotnet-plat-ext-6.0
SerialPort.Write メソッド
https://docs.microsoft.com/ja-jp/dotnet/api/system.io.ports.serialport.write?view=dotnet-plat-ext-6.0
このQ&Aは役に立ちましたか?
この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。
その他の回答 (7件中 1~5件目)
回答2です
>VisualBasicでこの辺のアプリを作るのが良いかもしれませんが、時間がかかるので
使えるヤツを使えば1時間も掛からん
VB.NETシリアル通信 サンプルプログラム
https://www.kana-soft.com/tech/sample_0008.htm
C# シリアル通信 サンプルプログラム
https://www.kana-soft.com/tech/sample_0007.htm
サンプルとは言え前回に挙げたラインモニタの必要最低限機能はある
ただ、バイナリではなくてテキストだけど
でも表示がテキストなだけでバイナリ送受信可能なプログラムです
テキスト<->Hex変換プログラムを追加するだけ
ラインモニタの本当の使用目的は
このような通信系プログラムのデバッグするのが目的です
通信系プログラムにバグが有って通信できないと
どこにバグがあるのかを検出するは非常に困難
タイミングが合わなかったり、通信したデータが想定と違ってたり
なので実際に送受信してる電文を外部のモニタ装置で監視する
>やっぱり ハローワールドからだった
通信系プログラムのデバッグで一番最初にしなければならない事は
"hello worldを送受信させる事から始まる
https://ja.wikipedia.org/wiki/Hello_world
補足
2022/05/03 08:20
話を整理します。
①マイコンの通信プログラムの話(例:UART)
②PCとマイコンとの通信を行うアプリ(ソフト)の話
私の質問は②です。
①はできています。←①は正しくできているという意味。
なので「HelloWorld」のようなことは行う必要はありません。
紹介頂いた「VB.NETシリアル通信 サンプルプログラム」をのようなものを作りたい(もしくは探しています)です。
ここで質問です。
ラインモニタ機は単なるモニタ機ですか?
ラインモニタ機とPC4を組み合わせれば、元の例のようなことができるのでしょうか?
ただ単にモニタするだけではなく、最初の例で示したように受信したデータの内容に応じて次の送信データを送るようなアプリソフトが欲しいのです。(作りたいです)
ラインモニタ上でちょっとしたプログラムが作れるのでしょうか?
ね
やっぱり ハローワールドからだった
UART 歯通信プロトコルです
https://www.analog.com/jp/analog-dialogue/articles/uart-a-hardware-communication-protocol.html
マイコン側が何かわからないが
アルディノ?
ラズパイ?
https://www.renesas.com/jp/ja/support/engineer-school/mcu-programming-peripherals-03-serial-communication
に書かれてる サンプルプリグラムが必要になります
eraTermは、テキストメッセージを主眼とした通信端末ソフトウェアです。ですので、バイナリ通信のみを行うには全く向いていません。
ある程度はCtrlキーとの同時押しで対処できるけど、凄く複雑になります。
開発停止して久しい古いソフトですが、Vectorにてskohno氏の公開する「シリアル通信解析ツール ComT」が、かなりバイナリ通信においては非常に使いやすいです。
https://www.vector.co.jp/soft/win95/hardware/se471464.html
同様に、VectorにてYARD 氏の公開するRs232cというソフトウェアも、かなり、使いやすいです。
先述のComTとは一長一短で、場合によって使い分けています。
https://www.vector.co.jp/soft/win95/hardware/se369900.html
両ソフト共にWindows10 21H2までは正常に動いています。
シンプルなソフトですので、使い方はソフト付属のドキュメントですぐにわかると思います。
それ以前の問題だと思うが
マイコン側に通信ソフトいれましたか?
まずは ハローワールドとLチカからのレベルからだと思うが
補足
2022/05/02 17:33
>それ以前の問題だと思うが
それ以前とはどう意味ですか?
それ以前という回答が意味不明です。
>マイコン側に通信ソフトいれましたか?
通信ソフトとは何ですか?意味が通じません?
マイコンにはuart通信の機能があります。それを使います。
マイコンをと言うのを知っていますか?
はっきり言ってTeraTermはバイナリ通信には不向きです
使えないわけではないがぁ、使いたくない
会社指定でTeraTerm限定で他のソフトは使用禁止とかなら別ですが
なにもわざわざTeraTermを使う必要はないでしょう
TeraTermはテキスト通信(Ascii)が主な用途、バイナリ通信は得意ではない
ラインモニタ
https://www.lineeye.co.jp/html/product_le1200.html
https://www.fukufukudenshi.jp/v2/LineMonitor/
http://www.frientech.com/lw232c.html
上記は専用のハードウエアですが
パソコンソフトのラインモニタ
https://www.vector.co.jp/soft/win95/hardware/se423507.html
https://www.vector.co.jp/soft/win95/hardware/se471464.html
これらを使ってみれば?
バイナリデータを受信してHEX表示してくれる
更に、バイナリデータの送信も可能だし
補足
2022/05/02 17:45
貴重なご意見ありがとうございます。
TeraTerm以外でも全然構わないです。
補足します。
質問で述べた例はあくまでも例です。
要はPCからマイコンに「○○をON/OFFしなさい」と命令したり、「スイッチの状態を確認」したりしたいのです。
また、マイコンからの返事によって、次の命令を使い分けたりしたいのです。
VisualBasicでこの辺のアプリを作るのが良いかもしれませんが、時間がかかるので、代用できる既存のものがないか探していたのです。
ご紹介いただいたsoftを見てみます。
お礼
2022/05/04 17:41
ありがとうございます。
VBやるしかなさそうですね。
さて、今回の質問ですが、何故「HelloWord」に飛び火しのか
個人的に納得いかないですが。
いろいろご教授頂きありがとうございました。