FPGA ๋ฐ SDR ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐฉํ˜• Wi-Fi ์นฉ์„ ๊ตฌํ˜„ํ•œ OpenWifi ํ”„๋กœ์ ํŠธ

์ง€๋‚œ FOSDEM 2020 ์ปจํผ๋Ÿฐ์Šค์—์„œ ์ œ์‹œ๋œ ๊ณ„ํš ์˜คํ”ˆ์™€์ดํŒŒ์ด, ์‹ ํ˜ธ ํ˜•ํƒœ์™€ ๋ณ€์กฐ๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด(SDR, ์†Œํ”„ํŠธ์›จ์–ด ์ •์˜ ๋ผ๋””์˜ค)์— ์ง€์ •๋˜๋Š” ์ „์ฒด Wi-Fi 802.11a/g/n ์Šคํƒ์˜ ์ตœ์ดˆ ๊ฐœ๋ฐฉํ˜• ๊ตฌํ˜„์„ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. OpenWifi๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ์กด ๋ฌด์„  ์–ด๋Œ‘ํ„ฐ์—์„œ ๊ฐ์‚ฌํ•  ์ˆ˜ ์—†๋Š” ์นฉ ์ˆ˜์ค€์—์„œ ๊ตฌํ˜„๋˜๋Š” ํ•˜์œ„ ์ˆ˜์ค€ ๊ณ„์ธต์„ ํฌํ•จํ•˜์—ฌ ๋ฌด์„  ์žฅ์น˜์˜ ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•ด ์™„์ „ํžˆ ์ œ์–ด๋˜๋Š” ๊ตฌํ˜„์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•”ํ˜ธ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ์š”์†Œ๊ณผ ๋‹ค์ด์–ด๊ทธ๋žจ ๋ฐ ์„ค๋ช… FPGA์šฉ Verilog ์–ธ์–ด์˜ ํ•˜๋“œ์›จ์–ด ๋ธ”๋ก์€ AGPLv3 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์‹œ์—ฐ๋œ ์ž‘์—… ํ”„๋กœํ† ํƒ€์ž…์˜ ํ•˜๋“œ์›จ์–ด ๊ตฌ์„ฑ ์š”์†Œ๋Š” Xilinx Zynq FPGA ๋ฐ AD9361 ๋ฒ”์šฉ ํŠธ๋žœ์‹œ๋ฒ„(RF)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. OpenWifi๋Š” SoftMAC ์•„ํ‚คํ…์ฒ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋“œ๋ผ์ด๋ฒ„ ์ธก์— ๊ธฐ๋ณธ 802.11 ๋ฌด์„  ์Šคํƒ(๋†’์€ MAC)์ด ๊ตฌํ˜„๋˜๊ณ  FPGA ์ธก์— ๋‚ฎ์€ MAC ๊ณ„์ธต์ด ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฌด์„  ์Šคํƒ์€ Linux ์ปค๋„์—์„œ ์ œ๊ณตํ•˜๋Š” mac80211 ํ•˜์œ„ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. SDR๊ณผ์˜ ์ƒํ˜ธ ์ž‘์šฉ์€ ํŠน์ˆ˜ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

FPGA ๋ฐ SDR ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐฉํ˜• Wi-Fi ์นฉ์„ ๊ตฌํ˜„ํ•œ OpenWifi ํ”„๋กœ์ ํŠธ

์ฃผ์š” ๊ธฐ๋Šฅ :

  • 802.11a/g์— ๋Œ€ํ•œ ์ „์ฒด ์ง€์› ๋ฐ 802.11n MCS 0~7์— ๋Œ€ํ•œ ๋ถ€๋ถ„ ์ง€์›(ํ˜„์žฌ PHY rx๋งŒ ํ•ด๋‹น) 802.11ax๋ฅผ ์ง€์›ํ•  ๊ณ„ํš์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋Œ€์—ญํญ 20MHz ๋ฐ ์ฃผํŒŒ์ˆ˜ ๋ฒ”์œ„ 70MHz ~ 6GHz;
  • ์ž‘๋™ ๋ชจ๋“œ : ์• ๋“œ ํ˜น (ํด๋ผ์ด์–ธํŠธ ์žฅ์น˜ ๋„คํŠธ์›Œํฌ), ์•ก์„ธ์Šค ํฌ์ธํŠธ, ์Šคํ…Œ์ด์…˜ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง;
  • FPGA ์ธก์—์„œ ๋งํฌ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ ๊ตฌํ˜„ DCF (Distributed Coordination Function), CSMA/CA ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ์ œ๊ณต(์‚ฌ์ดํ”„์Šค) ๋ ˆ๋ฒจ 10us์—์„œ;
  • ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์ฑ„๋„ ์•ก์„ธ์Šค ์šฐ์„ ์ˆœ์œ„ ๋งค๊ฐœ๋ณ€์ˆ˜: RTS/CTS ๊ธฐ๊ฐ„, CTS-to-self, SIFS, DIFS, xIFS, ์Šฌ๋กฏ ์‹œ๊ฐ„ ๋“ฑ
  • ์‹œ๊ฐ„ ๋ถ„ํ• (ํƒ€์ž„ ์Šฌ๋ผ์ด์‹ฑ) MAC ์ฃผ์†Œ ๊ธฐ๋ฐ˜;
  • ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๋Œ€์—ญํญ ๋ฐ ์ฃผํŒŒ์ˆ˜:
    2ah์˜ ๊ฒฝ์šฐ 802.11MHz, 10p์˜ ๊ฒฝ์šฐ 802.11MHz;

FPGA ๋ฐ SDR ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐฉํ˜• Wi-Fi ์นฉ์„ ๊ตฌํ˜„ํ•œ OpenWifi ํ”„๋กœ์ ํŠธ

ํ˜„์žฌ OpenWifi๋Š” ์ง€์› FPGA ๊ธฐ๋ฐ˜ SDR ํ”Œ๋žซํผ
Analog Devices FMCOMMS706/2/3 ํŠธ๋žœ์‹œ๋ฒ„์™€ ๋ฒˆ๋“ค(FPGA + RF) ADRV4Z9361 SOM + ADRV7035CRR-BOB ๋ฐ ADRV1Z9361 SOM + ADRV7035CRR-FMC๋ฅผ ๊ฐ–์ถ˜ Xilinx ZC1. ๋กœ๋”ฉ์„ ์œ„ํ•ด ํ˜•์„ฑ๋จ ์™„์„ฑ๋œ ์ด๋ฏธ์ง€ ARM Linux ๊ธฐ๋ฐ˜ SD ์นด๋“œ. ADRV9364Z7020 SOM + ADRV1CRR-BOB, Xilinx zed + FMCOMMS2/3/4, Xilinx ZCU102 + FMCOMMS2/3/4 ๋ฐ
์ž์ผ๋ง์Šค ZCU102 + ADRV9371. ์ฒซ ๋ฒˆ์งธ OpenWifi ํ”„๋กœํ† ํƒ€์ž…์— ๊ด€๋ จ๋œ ๊ตฌ์„ฑ ์š”์†Œ ๋น„์šฉ์€ ์•ฝ 1300์œ ๋กœ์˜€์ง€๋งŒ ๋” ์ €๋ ดํ•œ ๋ณด๋“œ๋กœ์˜ ํฌํŒ…์ด ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์†”๋ฃจ์…˜ ๋น„์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•„๋‚ ๋กœ๊ทธ ์žฅ์น˜ ADRV9364-Z7020 700์œ ๋กœ๊ฐ€ ๋  ๊ฒƒ์ด๋ฉฐ, ๊ธฐ๋ณธ์ ์œผ๋กœ ZYNQ NH7020 - 400์œ ๋กœ.

TL-WDN4200 N900 USB ์–ด๋Œ‘ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ๋ฅผ OpenWifi ๊ธฐ๋ฐ˜ ์•ก์„ธ์Šค ํฌ์ธํŠธ์— ์—ฐ๊ฒฐํ•˜๋Š” ์„ฑ๋Šฅ์„ ํ…Œ์ŠคํŠธํ•œ ๊ฒฐ๊ณผ ์•ก์„ธ์Šค ํฌ์ธํŠธ์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ๋•Œ 30.6Mbps(TCP) ๋ฐ 38.8Mbps(UDP)์˜ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์—์„œ ์•ก์„ธ์Šค ํฌ์ธํŠธ๋กœ ์ „์†ก ์‹œ 17.0Mbps(TCP) ๋ฐ 21.5Mbps(UDP). ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ifconfig ๋ฐ iwconfig์™€ ๊ฐ™์€ ํ‘œ์ค€ Linux ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ๋ฌผ๋ก  netlink๋ฅผ ํ†ตํ•ด ์ž‘๋™ํ•˜๊ณ  ๋‚ฎ์€ ์ˆ˜์ค€์—์„œ SDR ์ž‘์—…์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ํŠน์ˆ˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ sdrctl์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋ ˆ์ง€์Šคํ„ฐ ์กฐ์ž‘, ํƒ€์ž„ ์Šฌ๋ผ์ด์Šค ์„ค์ • ๋ณ€๊ฒฝ, ๋“ฑ.).

Wi-Fi ์Šคํƒ์„ ์‹คํ—˜ํ•˜๋Š” ๋‹ค๋ฅธ ๊ณต๊ฐœ ํ”„๋กœ์ ํŠธ ์ค‘์—์„œ ๋‹ค์Œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฃผ๋ชฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„๋ฉ”IEEE 802.11 a/g/p ํ˜ธํ™˜ ๊ฐœ๋ฐœ ์†ก์‹ ๊ธฐ GNU Radio์™€ ์ผ๋ฐ˜ PC๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐฉํ˜• 802.11 ๋ฌด์„  ์Šคํƒ๋„ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœ ์ค‘์ž…๋‹ˆ๋‹ค. ์ง€๋ฅด๋ฆฌ์•„ ะธ ์†Œ๋ผ (Microsoft ์—ฐ๊ตฌ ์†Œํ”„ํŠธ์›จ์–ด ๋ผ๋””์˜ค).

FPGA ๋ฐ SDR ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐฉํ˜• Wi-Fi ์นฉ์„ ๊ตฌํ˜„ํ•œ OpenWifi ํ”„๋กœ์ ํŠธ

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€