๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์‹œ์Šคํ…œ๊ฐœ๋ฐœ/์•„๋‘์ด๋…ธ&๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด

485 Serial ํ†ต์‹ ํ•˜๊ธฐ

by ์ด๋…ธํ‚ค_ 2019. 4. 18.

1. ์ค€๋น„๋ฌผ

(1) TTL to RS485 ์ž๋™ ํ๋ฆ„์ œ์–ด ์ปจ๋ฒ„ํ„ฐ ๋ชจ๋“ˆ [SZH-CVBE-010] 

(2) ์•„๋‘์ด๋…ธ ๋‚˜๋…ธ (Slave#1 ์—ญํ• )

(3) ์•„๋‘์ด๋…ธ ๋ฉ”๊ฐ€ (Slave#2 ์—ญํ• )

(4) ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด (Master ์—ญํ• )

 

์•„๋ž˜์˜ ์‚ฌ์ง„์€ TTL to RS485 ์ปจ๋ฒ„ํ„ฐ.

Max 485๋กœ๋„ ์‹œ๋„ํ•ด๋ดค์œผ๋‚˜ ์•„๋ž˜ ์ปจ๋ฒ„ํ„ฐ๊ฐ€ ๋” ์‹ฌํ”Œํ•˜๊ณ , ์ถ”๊ฐ€์ ์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์…‹ํŒ…๋„ ํ•„์š”์—†์–ด ๊ฐ„ํŽธํ–ˆ๋‹ค.

2. ์—ฐ๊ฒฐํ•˜๊ธฐ

์•„๋‘์ด๋…ธ ๋‚˜๋…ธ, ๋ฉ”๊ฐ€, ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด

RS485 ์ปจ๋ฒ„ํ„ฐ ๋ชจ๋“ˆ

GND

GND

Vcc(5v)

VCC

Tx

RXD

Rx

TXD

 

RS485 ์ปจ๋ฒ„ํ„ฐ ๋ชจ๋“ˆ์˜ D-/B, D+/A, GND ๋ผ๋ฆฌ ๊ฐ๊ฐ ์—ฐ๊ฒฐํ•ด์ค€๋‹ค.

3. ๋™์ž‘ ๋ฐฉ์‹

์‹œ๋ฆฌ์–ผ ํ†ต์‹ ์ด๋ผ๊ณ  ํ•˜๋Š” ๊ฒŒ TCP/IP ์ฒ˜๋Ÿผ ํŠน์ • ๋””๋ฐ”์ด์Šค์—๋งŒ ๊ฐ’์„ ์š”์ฒญํ•˜๋Š”๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. 

๋Œ€๋ถ€๋ถ„์˜ ์‹œ๋ฆฌ์–ผ ํ†ต์‹  ๋ฐฉ์‹์€ ์•„๋ž˜ ๊ทธ๋ฆผ1.๊ณผ ๊ฐ™์€๋ฐ Master๊ฐ€ Client1์—๋งŒ ๊ฐ’์„ ์š”์ฒญํ•œ๋‹ค๊ณ  write()๋ฅผ ํ•ด๋„ client2, client3,,, client N๊นŒ์ง€ ๊ฐ’์„ read()ํ•  ์ˆ˜ ์žˆ๋‹ค. 

๊ทธ๋ฆผ 1.

http://makeshare.org/bbs/board.php?bo_table=arduinoetc&wr_id=39

 

[์•„๋‘์ด๋…ธ ๋ถ€ํ’ˆ์‚ฌ์šฉ๋ฒ•] MAX485 TTL to RS-485 ์ปจ๋ฒ„ํ„ฐ ๋ชจ๋“ˆ

๊ฐœ์š” (Overview)  MAX485๋ฅผ ์‚ฌ์šฉํ•œ ์‹œ๋ฆฌ์–ผ RS-485 ์ปจ๋ฒ„ํ„ฐ ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค. RS-485๋Š” RS232 RS422์— ๋น„ํ•ด์„œ ๋งŽ์€ ๋“œ๋ผ์ด๋ฒ„/๋ฆฌ์‹œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ RS232๊ฐ€ ํ†ต์‹  ๊ฑฐ๋ฆฌ๊ฐ€ 15m์ž„์— ๋น„ํ•ด ๊ฑฐ๋ฆฌ๋Š” 1.2Km๊นŒ์ง€ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ†ต์‹ ์†๋„๋„ 10Mb/s๊นŒ์ง€ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.  ํŠนํžˆ ์ „์†ก๋ฐฉ์‹์€ Half Duplex ๋ฐฉ์‹์ด๋ผ์„œ ํ•˜๋‚˜์˜ ์„ ์„ ์‚ฌ์šฉํ•œ ๋‹ค์ˆ˜์˜ ๋ชจํ„ฐ ์ œ์–ด๋ฅผ ์œ„ํ•œ ๋กœ๋ณดํ‹ฐ์ฆˆ์‚ฌ์˜ ๋‹ค์ด๋‚˜๋ฏน์…€ …

makeshare.org

๋‹ค๋ฅธ ์‹œ๋ฆฌ์–ผ ํ†ต์‹ ์„ ํ•ด๋ณธ์ ์ด ์—†๋Š” ๋‚˜๋กœ์จ๋Š” ๋‚ด ์‹๋Œ€๋กœ ๋งŒ๋“ค๊ธฐ๋กœ ํ–ˆ๋‹ค. (๊ทผ๋ฐ ์ผ๋ฐ˜์ ์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ผ์ง€๋„?)

์•„๋‘์ด๋…ธ ๋‚˜๋…ธ์™€ ๋ฉ”๊ฐ€์— ๊ฐ๊ฐ ID๋ฅผ ๋ถ€์—ฌํ–ˆ๋‹ค. 

๊ทธ๋ฆฌ๊ณ  ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ์ฆ‰, ๋งˆ์Šคํ„ฐ๋Š” ๊ทธ ID๋ฅผ ๋ฐฐ์—ด๋กœ ์ €์žฅํ•ด๋†“๊ณ  ์ •ํ•ด์ง„ ์‹œ๊ฐ„์ด ๋˜์—ˆ์„ ๋•Œ Slave์—๊ฒŒ req๋ฅผ ๋ณด๋‚ธ๋‹ค.

Req ํ˜•์‹์€ "@101!" ์™€ ๊ฐ™์€ ์‹์ด๋‹ค. ๊ณจ๋ฑ…์ด์™€ ๋Š๋‚Œํ‘œ ์‚ฌ์ด์— ์•„์ด๋””๋ฅผ ์ ์–ด์ฃผ์—ˆ๋‹ค. 

 

๊ทธ๋ž˜์„œ Slave ์ชฝ์—์„œ๋Š” read()๋กœ ํ•˜์—ผ์—†์ด req๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋‹ค๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๊ฒŒ ๋˜๋ฉด ๋‚˜์—๊ฒŒ ์š”์ฒญ์„ ํ•œ๊ฒƒ์ด ๋งž๋Š”์ง€ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ํ•œ๋ฒˆ ๊ฑฐ์นœ๋‹ค. 

if "๋‚ด ์•„์ด๋””" == ์ˆ˜์‹ ํ•œ ์‹œ๋ฆฌ์–ผ ๋ฐ์ดํ„ฐ์˜ ์•„์ด๋”” 

   write("๋‚ด ๋ฐ์ดํ„ฐ")

else

  return 

์œ„์™€ ๊ฐ™์€ ํ˜•์‹์ด๋‹ค.

 

๋Œ“๊ธ€