Serial ํต์ with Microbit
-๊ธฐ๊ธฐ์ ๊ธฐ๊ธฐ๊ฐ์ ๋ํ-
-๊ธฐ๊ธฐ์ ๊ธฐ๊ธฐ๊ฐ์ ๋ํ-
๐๋ง์ดํฌ๋ก ๋นํธ ์๋ฆฌ์ผ ํต์ : '์๋ฆฌ์ผ ํต์ ์ ๋ํ ๊ธฐ๋ณธ ์ดํด'
์๋ฆฌ์ผ ํต์ (serial communication)์ ๋ฐ์ดํฐ ์ ์ก ๋ฐฉ์์ ํ๋๋ก, ๋ฐ์ดํฐ๋ฅผ ํ๋์ ๋นํธ์ฉ ์์ฐจ์ ์ผ๋ก ์ ์กํ๋ ๋ฐฉ์์ ์๋ฏธํฉ๋๋ค. ์ด๋ ๋ณ๋ ฌ ํต์ (parallel communication)๊ณผ ๋๋น๋๋ฉฐ, ๋ ์์คํ ๊ฐ์ ์๋์ ์ผ๋ก ์ ์ ์์ ์ ์ ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์์ด ํ๋์จ์ด ๋น์ฉ์ด ์ ๊ฐ๋๊ณ , ์ฅ๊ฑฐ๋ฆฌ ๋ฐ์ดํฐ ์ ์ก์ ์ ํฉํ ์ฅ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.ย
๐ ์๋ฆฌ์ผ ํต์ ์ ์ฃผ์ ํน์ง
๐ ๋ฐ์ดํฐ ์ ์ก ๋ฐฉ์:
์๋ฆฌ์ผ ํต์ ์ ๋ฐ์ดํฐ๋ฅผ ๋นํธ ๋จ์๋ก ์ ์กํฉ๋๋ค. ์ ์ก ์๋๋ ๋ณด๋๋ ์ดํธ(baud rate)๋ก ํํ๋๋ฉฐ, ์ด๋ ์ด๋น ์ ์ก๋๋ ๋นํธ์ ์๋ฅผ ๋ํ๋ ๋๋ค.
๋๊ธฐ์๊ณผ ๋น๋๊ธฐ์:
๋๊ธฐ์ ํต์ (synchronous communication): ์ก์ ์์ ์์ ์๊ฐ ๋์ผํ ํด๋ญ ์ ํธ๋ฅผ ๊ณต์ ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์กํฉ๋๋ค. ๋ํ์ ์ธ ์๋ก I2C, SPI๊ฐ ์์ต๋๋ค.
๋น๋๊ธฐ์ ํต์ (asynchronous communication): ํด๋ญ ์ ํธ๋ฅผ ๊ณต์ ํ์ง ์๊ณ , ๋ฐ์ดํฐ ํ๋ ์์ ์์ ๋นํธ์ ์ ์ง ๋นํธ๋ฅผ ํฌํจํ์ฌ ๋๊ธฐํ๋ฅผ ์ ์งํฉ๋๋ค. ๋ํ์ ์ธ ์๋ก UART, RS-232๊ฐ ์์ต๋๋ค.
ํต์ ๋ฐฉํฅ:
๋จ๋ฐฉํฅ ํต์ (simplex communication): ๋ฐ์ดํฐ๊ฐ ํ ๋ฐฉํฅ์ผ๋ก๋ง ์ ์ก๋๋ ๋ฐฉ์์ ๋๋ค.
๋ฐ์ด์ค ํต์ (half-duplex communication): ๋ฐ์ดํฐ๊ฐ ์๋ฐฉํฅ์ผ๋ก ์ ์ก๋ ์ ์์ง๋ง, ๋์์ ์ ์ก๋์ง ์์ต๋๋ค.
์ ์ด์ค ํต์ (full-duplex communication): ๋ฐ์ดํฐ๊ฐ ์๋ฐฉํฅ์ผ๋ก ๋์์ ์ ์ก๋ ์ ์์ต๋๋ค.
๐ ์๋ฆฌ์ผ ํต์ ์ ํ๋กํ ์ฝ
UART(Universal Asynchronous Receiver/Transmitter): ๋น๋๊ธฐ์ ํต์ ๋ฐฉ์์ผ๋ก, ์ผ๋ฐ์ ์ผ๋ก ๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ ๊ฐ์ ํต์ ์ ์ฌ์ฉ๋ฉ๋๋ค. ์์ ๋นํธ์ ์ ์ง ๋นํธ๋ฅผ ํตํด ๋๊ธฐํ๋ฅผ ์ ์งํฉ๋๋ค.
RS-232: ์ปดํจํฐ์ ์ฃผ๋ณ๊ธฐ๊ธฐ ๊ฐ์ ํต์ ์ ์ฌ์ฉ๋๋ ๋น๋๊ธฐ์ ์ง๋ ฌ ํต์ ํ์ค์ ๋๋ค. ์ฃผ๋ก D-์๋ธ ์ปค๋ฅํฐ๋ฅผ ์ฌ์ฉํ๋ฉฐ, ์ต๋ 15๋ฏธํฐ๊น์ง์ ๊ฑฐ๋ฆฌ์์ ์์ ์ ์ธ ํต์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
I2C(Inter-Integrated Circuit): ๋๊ธฐ์ ์ง๋ ฌ ํต์ ํ๋กํ ์ฝ๋ก, ์ฌ๋ฌ ๊ฐ์ ์ฅ์น๊ฐ ํ ๊ฐ์ ๋ฒ์ค๋ฅผ ๊ณต์ ํ์ฌ ํต์ ํ ์ ์์ต๋๋ค. ๋ง์คํฐ-์ฌ๋ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฉฐ, ์ต๋ 127๊ฐ์ ์ฌ๋ ์ด๋ธ ์ฅ์น๋ฅผ ์ง์ํฉ๋๋ค.
SPI(Serial Peripheral Interface): ๋๊ธฐ์ ์ง๋ ฌ ํต์ ํ๋กํ ์ฝ๋ก, ๋ฐ์ดํฐ ์ ์ก ์๋๊ฐ ๋น ๋ฅด๊ณ ๊ฐ๋จํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ง์คํฐ-์ฌ๋ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก 4๊ฐ์ ํ(CS, SCLK, MOSI, MISO)์ ์ฌ์ฉํ์ฌ ํต์ ํฉ๋๋ค.
๐๋ง์ดํฌ๋ก ๋นํธ ์๋ฆฌ์ผ ํต์ ๋งค์ปค๋์ฆ
์๋ฆฌ์ผ ํต์ ์ Python ์ธ์ด๋ฅผ ๊ณต๋ถํ ํ pyserial ๋ผ์ด๋ธ๋ฌ๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ ๋๋ค.ย
๋ ๊ฐ์ง ํ๋ก์ ํธ ํํ๊ฐ ์์ต๋๋ค.ย
1)UARTํต์ ์ ํ์ฉํ์ฌ ๋ง์ดํฌ๋ก ๋นํธ์ ๋ฐ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด์ ์ปจํธ๋กค ํ๋ ๋ฐฉ๋ฒ
2)UARTํต์ ์ ํ์ฉํ์ฌ ๋ง์ดํฌ๋ก ๋นํธ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ณ ๊ทธ ๊ฐ์ ๋ง์ดํฌ๋ก ๋นํธ ๋ผ๋์ค ํต์ ์ ํ์ฉํ์ฌ ๋ค๋ฅธ ๋ง์ดํฌ๋ก ๋นํธ๋ก ๋ณด๋ด๋ ๋ฐฉ์์ ๋๋ค.
3)TX(Transmitter x), Rx(Receiver x)์ ์ฝ์๋ก ์ฌ๊ธฐ์ x๋ ๋ค์ ์ด๋ค ๊ฒ๋ ์ฌ ์ ์๋ค๋ ์๋ฏธ์ ๋ณ์ x๋ฅผ ์๋ฏธํฉ๋๋ค.
2๋ฒ ๋ฐฉ๋ฒ์ '๊ทผ๊ฑฐ๋ฆฌ ๋ฌด์ ํต์ '์ ํ์ฌ ํ๋ก์ ํธ๋ฅผ ํ์ฅํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด ๋น์ ผํ์ต์ ์ํจ ๋ฐ์ดํฐ๋ฅผ ๋ง์ดํฌ๋ก ๋นํธ(์ก์ ๊ธฐ)๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ณ ์ด๋ค ์กฐ๊ฑด์ ๋ง์กฐํ๋ฉด ๋ง์ดํฌ๋ก ๋นํธ(์ก์ ๊ธฐ)์์ ๋ง์ดํฌ๋ก ๋นํธ(์์ ๊ธฐ)๋ก ์ ํธ๋ฅผ ๋ณด๋ด์ ์๋์ ์ํฌ ์ ์์ต๋๋ค.
๐ UART ํต์ ย
์ก์ ๋จ์(USB_TX): ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ํ์ ๋๋ค.
์์ ๋จ์(USB_RX): ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ ํ์ ๋๋ค.
ํต์ ์๋(9600bps): ๋ฐ์ดํฐ ์ ์ก ์๋๋ฅผ ์๋ฏธํฉ๋๋ค.
USB๋ฅผ ๋ง์ดํฌ๋ก ๋นํธ์ ์ฐ๊ฒฐ ํ ํ, ์๋ฆฌ์ผ ํต์ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์์ต๋๋ค.
'๋น์ ์ ์ด์ผ๊ธฐ๋ฅผ ๋ฃ๊ณ ์ถ์ด์. ๋ฐ๋ชจ์ด์ ํจ๊ป ๋์ด๊ฐ๊ณ ์ถ๋ค๋ฉด superioraj@naver.com ํน์ Learnmore X๋ก ์ฌ๋ฌ๋ถ์ ์ด์ผ๊ธฐ๋ฅผ ๋ค๋ ค์ฃผ์ธ์.'