Författare:
Per Stenebo
Skapad:
2013-11-06 17:57:37
Ändrad:
2018-08-17 20:31:23
sv

Seriell kommunikation

| Sparkfun tutorial | TLDP serial HowtoUsing GNU screen to debug your serial port |

Interna sidor: | pySerial | ModbusTelefoner | Raspberry Pi |

Lista seriella portar

ls /dev/ttyS* för integrerade portar

ls /dev/ttyUSB* eller lsusb för usb-anslutna portar

ls /dev/ttyAMA* för UART/TTL på Raspberry Pi GPIO

Visa info om seriella portar:

dmesg | grep tty

setserial -g /dev/ttyAMA0

 

För att läsa/skriva serieport behövs tillräckliga rättigheter:

ls -l /dev/ttyAMA0

crw-rw---- 1 root tty 204, 64 apr 29 16:17 /dev/ttyAMA0

Lägg till användaren per i gruppen tty:

sudo adduser per tty

 

Serial loopback / virtual serial port

| socat | Ubuntu socat man page |

Installera socat:

sudo apt install socat

Skapa två sammankopplade seriella portar (fungerar inte):

socat -d -d PTY: PTY:
2017/10/25 11:48:33 socat[2540] E PTY: wrong number of parameters (1 instead of 0)
2017/10/25 11:48:33 socat[2540] N exit(1)

Skapa två sammankopplade seriella portar, adressen skrivs ut:

socat -d -d pty,raw,echo=0 pty,raw,echo=0
2018/02/04 11:15:45 socat[10376] N PTY is /dev/pts/21
2018/02/04 11:15:45 socat[10376] N PTY is /dev/pts/22
2018/02/04 11:15:45 socat[10376] N starting data transfer loop with FDs [5,5] and [7,7]

 

Seriell över internet

SSH Tunnel serial ports over the internet |

Jag har ett program i Windows 7 som ska konfigurera en mätare över RS-485. Problemet är att mätaren är 50 mil härifrån. Mätaren är ansluten till USB-RS485 på en raspberry Pi med internet. 

  1. Skapa en virtuell serieport i Windows som pratar TCP/IP i andra änden: | HW VSP3 |
  2. Länka ihop TCP/IP-anslutningen i Raspian med den verkliga serieporten på Raspberryn: | socat | ser2net | ser2net tutor |

socat

sudo socat -x tcp-l:27644,reuseaddr,fork file:/dev/ttyUSB0,nonblock,waitlock=/var/run/tty0.lock

socat tcp-l:27644,fork,reuseaddr open:/dev/ttyUSB0,raw,n,echo=1

sudo socat -x tcp-l:27644,reuseaddr,fork open:/dev/ttyUSB0,nonblock,raw,echo=1

ser2net

sudo apt install ser2net

sudo nano /etc/ser2net.conf

27644:rawlp:0:/dev/ttyUSB0:remctl

ser2net -d

 

VirtualHere USB Server

| hemsida |

 

ip over serial

External links

How-To: Ethernet Bridge over serial(or xbee)

Connect the Raspberry Pi to Network Using UART

 

 

Bluetooth

Seriell kommunikation över Bluetooth. Para först ihop enheterna via GUI.

sudo hcitool scan 
00:0E:07:27:95:47    T610per

sudo rfcomm bind /dev/rfcomm0 00:0E:07:27:95:47 1

ls -l /dev/rfcomm*
crw-rw---- 1 root dialout 216, 0 jan  5 22:06 /dev/rfcomm0

Jag fick inte detta att fungera med pySerial. Efter undersökning verkar det som att rfcomm ska kommunicera via sockets istället.

 

RS-485

| wikipedia | wikibooks |

Robot Electronics USB-RS485.

lsusb Ubuntu 14.04: Bus 002 Device 004: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

lsusb Raspbian 2015-07-29: Bus 001 Device 004: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC

Robot Electronics USB-RS485

| Tx+ | D+ | D0 | A | TRx+ |

| Tx- | D- | D1 |  B | TRx- |

| GND | Ground | Common |

 

Baudrate

50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200.

Bps, bits per second.

Kommentarer till sidan Seriell