- Serial Communication (시리얼 통신)
- Serial Port
- Serial Communication
- PowerShell
- Node.js
- UART
- RS-485
- 메시지 프레임 구조
- 메시지 종류
Serial Communication (시리얼 통신)
Serial Port
COM{n} Port
"장치 관리자 > 포트 (COM & LPT)" 메뉴에서 확인
통신 속도 : 4800, 9600, 19200, 38400, 115200 bit/s
#--- Port 확인
mode
[System.IO.Ports.SerialPort]::getportnames()
Serial Communication
PowerShell
#--- Serial Communication
$port = new-Object System.IO.Ports.SerialPort COM1,115200,None,8,one
$port.open()
$port.WriteLine("Hello world!")
$port.ReadLine()
$port.Close()
Node.js
npm install serialport --save
import { SerialPort, ReadlineParser } from 'serialport';
const serial = new SerialPort('COM1', {
baudrate: 9600,
autoOpen: false
}, function(err) {});
serial.pipe(new ReadlineParser());
serial.on('open', function() {});
serial.on('error', function(err) {});
serial.on('readable', function() {
const data = serial.read();
});
serial.on('data', function(data) {});
serial.open(function(err) {}); //--- autoOpen이 false인 경우
serial.write('~', function(err) {});
serial.write(Buffer.from('~'), function(err) {});
UART
Universal Asynchronous Receiver and Transmitter
RS-485
반이중 통신
최대 32개의 slave와 송수신 지원
9핀, 15핀, 25핀 커넥터 지원
연결 방식
2선식 : Multi-Master 연결
4선식 : Master-Slaves 연결
관련 통신 방식
RS-232
RS-422 : 한개의 master와 slave간의 송수신 지원
RS-423
Pin
RTS (Request to pin) : 흐름제어
CTS (Clear to Send)
통신 frame 구조
Start bit
Data : 5~ 9 bits (일반적으로 8)
Parity bit
Stop bit
메시지 프레임 구조
Normal packet
Pyaload : 2 bytes (0xF0F0)
Source ID : 1 byte
Data length : 1 byte
Packet class : 1 byte
0x01 : Request, 요청
0x02 : Response, 응답
0x08 : Command, 명령
Data
Parity : 1 byte
EOF : 2 bytes (0x0d0a)
Large packet
Pyaload : 2 bytes (0xF0F0)
Data length : 1 byte
Packet class : 1 byte
Reserve : 1 byte
Data
Parity : 1 byte
EOF : 2 bytes (0x0d0a)
메시지 종류
충전기 > Station
상태 정보 응답
오류 정보 응답
제어 응답
Station > 충전기
상태 정보 요청
오류 정보 요청
제어 명령
예비 설정 모드
가변 충전 전류 설정
가변 전압 설정 제어 명령
충전 방식 설정