통신

본문 바로가기

통신

통신

시리얼 통신

직렬(Serial) 통신은 대게 하나의 신호선을 이용하여
데이터를 주고받는 통신을 일컬어 지칭합니다.
비동기식 SCI(Serial Communication Interface)
Transceiver에 따라 RS232C, RS423, RS422, RS485로 구분
동기식 - SPI(Serial Pheripharal Interface)
- I2C(Inter Integrated Circuit)
UART ≒ TTL (5V 또는 3.3V)
   0V(=0) 에서 3.3V 또는 5V(=1)
RS-232
+12V(=0) 에서 -12V(=1)
sub011_07.png

RS 232C

sub011_07.png
두 개의 제어장치가 1:1로 접속
전이중(full duplex)방식의 직렬 접속
추가로 선을 사용하여 하드웨어적으로 제어할 수 있음.
RS232방식은 노이즈 (NOISE)의 영향을 받기 쉬운 단점이 있습니다.
따라서 RS422이나 전류통신 방식인 20mA current loop방식 혹은, 더 나아가 광통신을 이용합니다.

RS 485

sub011_07.png

2선식 RS485 특징

  • 2개의 통신선 사용
  • Multi-drop이 가능하다.(1:N 통신)
  • 2선로 양끝에 종단 저항 처리
  • ~ 32개 정도의 장비를 하나의 포트에 연결 할 수 있습니다.
  • 1000m의 거리를 쉴드된 트위스트 페어선 이동시 1MB/S 속도로 전송할 수 있습니다.

RS 422

sub011_07.png

4선식 특징

  • 4개의 통신선 사용
  • 각각의 2선로에 종단 저항 처리
  • 물리적 인터페이스의 경우 RS422은 5개의 핀으로 구성

RS 232, 485, 422 비교

Specification RS232C RS422 RS485
동작모드 Single-Ended Differential Differential
최대 Driver/Receiver 수 1 Driver 1 Driver 32 Driver
1 Receiver 32 Receiver 32 Receiver
최대 통달거리 약 15m 약 1.2km 약 1.2km
최고 통신속도 20 Kb/s 10 Mb/s 10 Mb/s
지원 전송방식 Full Duplex Full Duplex Helf Duplex
최대 출력전압 ±25V -0.25V to +6V -7V to +12V
최대 입력전압 ±15V -7V TO +7V -7V to +12V

Modbus protocal

sub012_05.png

RTI(Remote Terminal Unit) Mode

sub012_06.png

03(0×03) Read Holding Registers

기능 코드3은 출력 데이터 값을 읽는 기능으로 데이터는 16비트 크기이고,
시작 번지와 개수로 입력하면 응답으로 해당번지부터 요구한 개수 만큼의 출력 데이터가 응답 됨.
Request Function code 1Byte 0×03
Starting Address 2Byte 0×0000 to 0×FFFF
Quantity of Register 2Byte 1 to 125 (0×7D)
Response Function code 1Byte 0×03
Byte count 1Byte 2×N*
Register value N*×2Byte
*N = Quantity of Registers
Error Error code 1Byte 0×83
Exception code 1Byte 01 or 02 or 03 or 04
Here is an example of a request to read registers 108-110
Request Response
Field Name (Hex) Field Name (Hex)
Fuction 03 Fuction 03
Starting Adress Hi 00 Byte Count 06
Starting Address Lo 6B Register value Hi (108) 02
No. of Registers Hi 00 Register value Lo (108) 2B
No. of Registers Lo 03 Register value Hi (109) 00
Register value Lo (109) 00
Register value Hi (110) 00
Register value Lo (110) 64

04(0×04) Read Input Registers

기능 코드4는 입력 상태 값을 읽는 기능으로 데이터는 16비트 크기이고,
시작번지와 개수로 입력하면 응답으로 해당번지부터 요구한 개수 만큼의 입력데이터가 응답 됨.
Request Function code 1Byte 0×04
Starting Address 2Byte 0×0000 to 0×FFFF
Quantity of Register 2Byte 0×0001 to 0×007D
Response Function code 1Byte 0×04
Byte count 1Byte 2×N*
Register value N*×2Byte
*N = Quantity of Registers
Error Error code 1Byte 0×84
Exception code 1Byte 01 or 02 or 03 or 04
Here is an example of a request to input register 9
Request Response
Field Name (Hex) Field Name (Hex)
Fuction 04 Fuction 04
Starting Adress Hi 00 Byte Count 02
Starting Address Lo 08 Input Reg.9 Hi 00
Quantity of Input Reg. Hi 00 Input Reg.9 Lo 0A
Quantity of Input Reg. Lo 01

06(0×06) Write Single Registers

기능 코드6은 하나의 16비트 크기의 출력 값을 쓰는 기능으로
해당 번지와 데이터를 전송하면 같은 형태로 응답 함.
Request Function code 1Byte 0×06
Register Address 2Byte 0×0000 to 0×FFFF
Register Value 2Byte 0×0000 to 0×FFFF
Response Function code 1Byte 0×04
Register Address 2Byte 0×0000 to 0×FFFF
Register value 2Byte 0×0000 to 0×FFFF
Error Error code 1Byte 0×83
Exception code 1Byte 01 or 02 or 03 or 04
Here is an example of a request write register 2 to 00 03 hex
Request Response
Field Name (Hex) Field Name (Hex)
Fuction 06 Fuction 06
Register Adress Hi 00 Register Adress Hi 00
Register Adress Lo 01 Register Adress Lo 01
Register Value Hi 03 Register Value Lo 03

16 (0×10) Write Multiple Registers

기능 코드16은 다수의 16비트 크기의 출력 값을 쓰는 기능으로
시작 번지와 개수 및 여러 데이터를 전송하면 시작 번지와 개수로 응답 함.
Request Function code 1Byte 0×10
Starting Address 2Byte 0×0000 to 0×FFFF
Quantity of Registers 2Byte 0×0001 to 0×FF7B
Byte Count 1Byte 2×N*
Register Value N*×2Bytes value
*N = Quantity of Registers
Response Function code 1Byte 0×10
Starting Address 2Byte 0×0000 to 0×FFFF
Quantity of Registers 2Byte 1 to 123(0×7B)
Error Error code 1Byte 0×90
Exception code 1Byte 01 or 02 or 03 or 04
Here is an example of a request write register starting at 2 to 00 0A and 01 02 hex
Request Response
Field Name (Hex) Field Name (Hex)
Fuction 10 Fuction 10
Starting Adress Hi 00 Starting Adress Hi 00
Starting Adress Lo 01 Starting Adress Lo 01
Quantity of Registers Hi 00 Quantity of Registers Hi 00
Quantity of Registers Lo 02 Quantity of Registers Lo 02
Byte Count 04
Register Value Hi 00
Register Value Lo 0A
Register Value Hi 01
Register Value Lo 02

Ascill code

   제어문자    공백문자    구두점    숫자    알파벳
10진 16진 문자 10진 16진 문자 10진 16진 문자 10진 16진 문자
0 0×00 NUL 32 00×20 SP 64 0×40 @ 96 0×60 '
1 0×01 SOH 33 00×21 ! 65 00×41 A 97 00×61 a
2 0×02 STX 34 00×22 " 66 00×42 B 98 00×62 b
3 0×03 ETX 35 00×23 # 67 00×43 C 99 00×63 c
4 0×04 EOT 36 00×24 $ 68 00×44 D 100 00×64 d
5 0×05 ENQ 37 00×25 % 69 00×45 E 101 00×65 e
6 0×06 ACK 38 00×26 & 70 00×46 F 102 00×66 f
7 0×07 BEL 39 00×27 ' 71 00×47 G 103 00×67 g
8 0×08 BS 40 00×28 ( 72 00×48 H 104 00×68 h
9 0×09 HT 41 00×29 ) 73 00×49 I 105 00×69 i
10 0×0A LF 42 00×2A ) 74 00×4A J 106 00×6A j
11 0×0B VT 43 00×2B * 75 00×4B K 107 00×6B k
12 0×0C FF 44 00×2C + 76 00×4C L 108 00×6C l
13 0×0D CR 45 00×2D - 77 00×4D M 109 00×6D m
14 0×0E SO 46 00×2E . 78 00×4E N 110 00×6E n
15 0×0F SI 47 00×2F / 79 00×4F O 111 00×6F o
16 0×10 DEL 48 00×30 0 80 00×50 P 112 00×70 p
17 0×11 DC1 49 00×31 1 81 00×51 Q 113 00×71 q
18 0×12 DC2 50 00×32 2 82 00×52 R 114 00×72 r
19 0×13 DC3 51 00×33 3 83 00×53 S 115 00×73 s
20 0×14 DC4 52 00×34 4 84 00×54 T 116 00×74 t
21 0×15 NAK 53 00×35 5 85 00×55 U 117 00×75 u
22 0×16 SYN 54 00×36 6 86 00×56 V 118 00×76 v
23 0×17 ETB 55 00×37 7 87 00×57 W 119 00×77 w
24 0×18 CAN 56 00×38 8 88 00×58 X 120 00×78 x
25 0×19 EM 57 00×39 9 89 00×59 Y 121 00×79 y
26 0×1A SUB 58 00×3A : 90 00×5A Z 122 00×7A z
27 0×1B ESC 59 00×3B ; 91 00×5B [ 123 00×7B {
28 0×1C FS 60 00×3B < 92 00×5C \ 124 00×7C |
29 0×1D GS 61 00×3D = 93 00×5D ] 125 00×7D }
30 0×1E RS 62 00×3E > 94 00×5E ^ 126 00×7E ~
31 0×1F US 63 00×3F ? 95 00×5F _ 127 00×7F DEL

회원로그인

회원가입

미라클이앤아이
주식회사 미라클이앤아이
전남 광양시 남산4길8 (광영동)
TEL 061-795-2320 FAX 061-795-2321 MAIL 7952320@naver.com

Copyright © 2021. All rights reserved.