Linuxシステムとマイクロコントローラ間の通信を試みています。
全二重RS485用のDB-9ピンを次のように設定しました。
Pin-7をPin-8に接続しました。
Pin-2をPin-3に接続しました。
#!/usr/bin/env bash
stty cs8 cstopb parenb -parodd < /dev/ttyO0 #I configure the Serial Port here
while :
do
echo -ne '\x00\x05\x00\x00\xFF\x00\x8D\xEB'>/dev/ttyO0
usleep 10000
done
stty
コマンドを使用してシリアルポートを設定できます。
愚かな質問かもしれませんが、シリアルポートが両方のソケット(RS-485の場合はAとB)で同じ値を出力したいと思います。
私のマイクロコントローラはこの信号をModbus-RTU信号として認識しないので、これが欲しいです。
ただし、ピンをクロス接続すると、マイクロコントローラはこれを信号と見なしますが、正しい信号ではないため、これを受け入れません。
別のModbusマスターを使用してマイクロコントローラを接続し、ロジックアナライザの出力は次のとおりです。
しかし、私のLinuxシステムが接続されている場合、出力信号は次のようになります。
両端から同じ信号を出力するには?
編集:下図のようにピンを接続しました。
その後、マイクロコントローラに接続します。
答え1
以下のように全二重RS485用のDB-9ピンを設定しました。
差動信号を使用してRS485として動作するハードウェアもありますか、それとも通常のシリアルポートはありますか?汎用シリアルポートハードウェアはRS485信号を生成せず、ロジックアナライザの出力は通常シリアルポートと非常に似ているためです。
したがって、RS485ハードウェアを購入するか、RS232-RS485コンバータを購入する必要があります。おそらく自分で作ることもできます。電子スタックの交換に関する質問です。