TWE-Lite App für die serielle Kommunikation Byte-Modus-Einstellung (in Python senden)

Einführung

Ich werde mich an den Teil erinnern, auf den ich beim Senden und Empfangen der monowireless TWE-Lite-Anwendung für die serielle Kommunikation "Byte-Modus" gestoßen bin.

Umgebung

Windows 10 MONOSTIC TWI-LITE DSP(TWELITE R)

Anconda python 3.7 pyserial

Als Referenz gibt es auf dieser Site ein Beispiel (Standardmodus) für die Verwendung von TWE-Lite. (Da ich Python2 verwende, muss ich beim Umgang mit Byte vorsichtig sein.) Text zur Personalentwicklung in der landwirtschaftlichen IT

Software, die installiert werden soll (Bestätigung der seriellen Kommunikation)

Teraterm Realterm (zum Senden und Empfangen von Binärdateien)

Umschreiben in eine serielle Kommunikationsanwendung

Bitte beachten Sie die folgende Webseite. Referenz: Evaluierungs- und Entwicklungsumgebung TWELITE STAGE (1) TWELITE STAGE - Twilight Stage herunterladen → In meinem Fall Windows

(2) Schließen Sie den TWELITE R- oder MONO-STICK an den USB-Anschluss an, um ihn neu zu schreiben. → Bei TWELITE R: Überprüfen Sie die Position des gelben Überbrückungsstifts in der Nähe des USB-Anschlusses (Überbrücker 2 der 3 Stifte in der Nähe des USB-Anschlusses. Andernfalls wird der DIP nicht mit Strom versorgt und es tritt ein Erkennungsfehler auf. ) Referenz: TWELITE R-Twilighter

(3) Starten Sie TWELITE_stage.exe (Windows) und schreiben Sie es erneut in den MWSTAGE-Ordner → Wählen Sie 2. App neu schreiben Der Bildschirm wechselt zum TWELITE-Programmierer. → Wählen Sie TWELITE APPS Build & Rewrite in 3. Wählen Sie App_Uart

(4) Umschreiben von Inhalten im interaktiven Modus Kehren Sie zu TWELITE STAGE zurück und wählen Sie den interaktiven Modus Ändern Sie Set Device ID Basiseinheit: 121 = 0x79 Slave-Einheit: 120 = 0x78 (Standard) Drücken Sie "i". Geben Sie "121" oder "0" ein. Geben Sie das Großbuchstaben "S" (Umschalt + S) ein, um Ihre Änderungen zu speichern.

(5) Test im Chat-Modus Chat-Modus Wählen Sie in Teraterm die serielle Verbindung Siehe den COM-Anschluss, an den die Master-Einheit und die Slave-Einheit angeschlossen sind. Stellen Sie die Geschwindigkeit in der Einstellung für die serielle Schnittstelle und "Verbindung" in den Teraterm-Einstellungen auf "115200" ein (andernfalls funktioniert diese Einstellung nicht).

tw01.PNG

Verbindungsbeispiel mit TeraTerm COM3 ist eine Slave-Einheit, COM4 ist eine Master-Einheit tw03.PNG

(6) ASCII-Modus Diesmal weggelassen Die Einstellungen wechseln in den interaktiven Modus Drücken Sie "m". Geben Sie ein" Geben Sie das Großbuchstaben "S" (Umschalt + S) ein, um Ihre Änderungen zu speichern.

(7) Binärmodus Verwenden Sie Realterm, um die Kommunikation zu überprüfen. Realterm Einstellungen Baud:115200 Port: 4 Geben Sie 3 für den anderen an Display As:Hex(space) tw011.PNG tw010.PNG

Übertragung von Slave-Einheit zu Master-Einheit Senden "0xA5 0x5A 0x80 0x05 0x00 </ u> 0x00 0x11 0x22 0x33 0x78"

  • Geben Sie die obige Hexadezimalzahl unter Seriennummern in das Send-Tag von Realterm ein. Master-Einheit Erhalten "A 5 5A 80 05 78 00 11 22 33 78 04"

Von der Master-Einheit zur Slave-Einheit 「0xA5 0x5A 0x80 0x05 0x78 0x00 0x11 0x22 0x33 0x78」 Schnurloses Mobilteil Erhalten "A 5 5A 80 05 00 00 11 22 33 00 04"

Beispiel für die tatsächliche Kommunikation: 3 links ist eine Slave-Einheit, 4 rechts ist eine Master-Einheit TW013.PNG

0xA5 0x5A 0x80 0x05 0x00 </ u> ... Geben Sie das Ziel mit der 5. Bytenummer an 00: Master-Einheit, 78: Slave-Einheit

Senden von Python (Pyserial)

Senden Sie Python und überwachen Sie mit Realterm Python=3.7,  Installieren Sie Pyserial (Wenn Sie Anaconda verwenden, ist es besser, mit conda zu installieren) Referenz: Erstellen einer virtuellen Anaconda-Umgebung (conda-forge, Jupyter-Notizbuch)

import serial

#Master-Einheit: COM4, Slave-Einheit: COM3
#Von Master-Einheit an Slave-Einheit senden Geben Sie 0x78 an
data=[0xA5, 0x5A, 0x80, 0x05, 0x78, 0x00, 0x11, 0x22, 0x33] 

#Von Slave-Einheit zu Master-Einheit senden Geben Sie 0x00 an'
# data=[0xA5, 0x5A, 0x80, 0x05, 0x00, 0x00, 0x11, 0x22, 0x33] 

#Prüfsummenberechnung
chs = 0
for i in data[4:]:
    print(hex(i))
    chs = chs ^ i
print('check sum xor:',hex(chs))
data.append(chs)

# borate 115200
b_data = bytearray(data)
#Beim Senden von der Master-Einheit zur Slave-Einheit. Verwenden Sie COM3, wenn Sie eine Slave-Einheit an eine Master-Einheit anschließen.
with serial.Serial('COM4', 115200) as ser:
    print('---')
    ser.write(b_data)
    print('---')

Ausführungsbeispiel tw015.PNG

Recommended Posts