FPGA рд░ SDR рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЦреБрд▓рд╛ Wi-Fi рдЪрд┐рдкрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕рд╛рде OpenWifi рдкрд░рд┐рдпреЛрдЬрдирд╛

рдЕрдиреНрддрд┐рдо FOSDEM 2020 рд╕рдореНрдореЗрд▓рдирдорд╛ рдкреНрд░рд╕реНрддреБрдд рдкреНрд░реЛрдЬреЗрдХреНрдЯ openwifi, рдкреВрд░реНрдг Wi-Fi 802.11a/g/n рд╕реНрдЯреНрдпрд╛рдХрдХреЛ рдкрд╣рд┐рд▓реЛ рдЦреБрд▓рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджреИ, рд╕рдлреНрдЯрд╡реЗрдпрд░ (SDR, рд╕рдлреНрдЯрд╡реЗрдпрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд░реЗрдбрд┐рдпреЛ) рдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рд╕рдВрдХреЗрдд рдЖрдХрд╛рд░ рд░ рдореЛрдбреНрдпреБрд▓реЗрд╕рдиред OpenWifi рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╡рд╛рдпрд░рд▓реЗрд╕ рдпрдиреНрддреНрд░рдХрд╛ рд╕рдмреИ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрдХреЛ рдкреВрд░реНрдг рдирд┐рдпрдиреНрддреНрд░рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдирд┐рдореНрди-рд╕реНрддрд░ рддрд╣рд╣рд░реВ рд╕рд╣рд┐рдд, рдЬреБрди рдкрд░рдореНрдкрд░рд╛рдЧрдд рд╡рд╛рдпрд░рд▓реЗрд╕ рдПрдбреЗрдкреНрдЯрд░рд╣рд░реВрдорд╛ рдЕрдбрд┐рдЯ рдпреЛрдЧреНрдп рдирднрдПрдХреЛ рдЪрд┐рдкрд╣рд░реВрдХреЛ рд╕реНрддрд░рдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдиреНрдЫред рдХреЛрдб рд╕рдлреНрдЯрд╡реЗрдпрд░ рдЕрд╡рдпрд╡рд╣рд░реВрд░ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рд░ рд╡рд┐рд╡рд░рдг FPGA рдХрд╛ рд▓рд╛рдЧрд┐ Verilog рднрд╛рд╖рд╛рдорд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдмреНрд▓рдХрд╣рд░реВ AGPLv3 рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рдЕрдиреНрддрд░реНрдЧрдд рд╡рд┐рддрд░рдг рдЧрд░рд┐рдиреНрдЫред

рдкреНрд░рджрд░реНрд╢рди рдЧрд░рд┐рдПрдХреЛ рдХрд╛рдо рдЧрд░реНрдиреЗ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдкрдХреЛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХрдореНрдкреЛрдиреЗрдиреНрдЯ Xilinx Zynq FPGA рд░ AD9361 рдпреБрдирд┐рднрд░реНрд╕рд▓ рдЯреНрд░рд╛рдиреНрд╕реАрднрд░ (RF) рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫред OpenWifi рд▓реЗ SoftMAC рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рдЬрд╕рд▓реЗ рдбреНрд░рд╛рдЗрднрд░ рд╕рд╛рдЗрдбрдорд╛ рдореБрдЦреНрдп 802.11 рд╡рд╛рдпрд░рд▓реЗрд╕ рд╕реНрдЯреНрдпрд╛рдХ (рдЙрдЪреНрдЪ-MAC) рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд░ FPGA рд╕рд╛рдЗрдбрдорд╛ рдХрдо-MAC рддрд╣рдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐рд▓рд╛рдИ рд╕рдВрдХреЗрдд рдЧрд░реНрджрдЫред рд╡рд╛рдпрд░рд▓реЗрд╕ рд╕реНрдЯреНрдпрд╛рдХрд▓реЗ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ mac80211 рдЙрдкрдкреНрд░рдгрд╛рд▓реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫред SDR рд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЪрд╛рд▓рдХ рдорд╛рд░реНрдлрдд рдЧрд░рд┐рдиреНрдЫред

FPGA рд░ SDR рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЦреБрд▓рд╛ Wi-Fi рдЪрд┐рдкрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕рд╛рде OpenWifi рдкрд░рд┐рдпреЛрдЬрдирд╛

рдореБрдЦреНрдп рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВ:

  • 802.11a/g рдХреЛ рд▓рд╛рдЧрд┐ рдкреВрд░реНрдг рд╕рдорд░реНрдерди рд░ 802.11n MCS 0~7 рдХреЛ рд▓рд╛рдЧрд┐ рдЖрдВрд╢рд┐рдХ рд╕рдорд░реНрдерди (PHY rx рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░)ред 802.11ax рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛рд╣рд░реВ рдЫрдиреН;
  • рдмреНрдпрд╛рдиреНрдбрд╡рд┐рде 20MHz рд░ рдлреНрд░рд┐рдХреНрд╡реЗрдиреНрд╕реА рджрд╛рдпрд░рд╛ 70 MHz рджреЗрдЦрд┐ 6 GHz рд╕рдореНрдо;
  • рдЕрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб: рддрджрд░реНрде (рдЧреНрд░рд╛рд╣рдХ рдЙрдкрдХрд░рдгрд╣рд░реВрдХреЛ рдиреЗрдЯрд╡рд░реНрдХ), рдкрд╣реБрдБрдЪ рдмрд┐рдиреНрджреБ, рд╕реНрдЯреЗрд╢рди рд░ рдирд┐рдЧрд░рд╛рдиреА;
  • FPGA рд╕рд╛рдЗрдбрдорд╛ рд▓рд┐рдЩреНрдХ рддрд╣ рдкреНрд░реЛрдЯреЛрдХрд▓рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди DCF (рд╡рд┐рддрд░рд┐рдд рд╕рдордиреНрд╡рдп рдХрд╛рд░реНрдп), CSMA/CA рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ред рдлреНрд░реЗрдо рдкреНрд░рд╢реЛрдзрди рд╕рдордп рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ (SIFS) рд╕реНрддрд░ 10us рдорд╛;
  • рдХрдиреНрдлрд┐рдЧрд░ рдпреЛрдЧреНрдп рдЪреНрдпрд╛рдирд▓ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ: RTS/CTS рдЕрд╡рдзрд┐, CTS-рд╕реЗ-рд╕реЗрд▓реНрдл, SIFS, DIFS, xIFS, рд╕реНрд▓рдЯ-рд╕рдордп, рдЖрджрд┐ред
  • рд╕рдордп рдХрд╛рдЯреНрдиреЗ (рд╕рдордп рдХрд╛рдЯреНрдиреЗMAC рдареЗрдЧрд╛рдирд╛рдорд╛ рдЖрдзрд╛рд░рд┐рдд;
  • рд╕рдЬрд┐рд▓реИ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдмреНрдпрд╛рдиреНрдбрд╡рд┐рде рд░ рдЖрд╡реГрддреНрддрд┐:
    2ah рдХреЛ рд▓рд╛рдЧрд┐ 802.11MHz рд░ 10p рдХреЛ рд▓рд╛рдЧрд┐ 802.11MHz;

FPGA рд░ SDR рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЦреБрд▓рд╛ Wi-Fi рдЪрд┐рдкрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕рд╛рде OpenWifi рдкрд░рд┐рдпреЛрдЬрдирд╛

рд╣рд╛рд▓, OpenWifi рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ рд╕рдорд░реНрдерди FPGA рдЖрдзрд╛рд░рд┐рдд SDR рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВ
Xilinx ZC706 рдПрдирд╛рд▓рдЧ рдпрдиреНрддреНрд░рд╣рд░реВ FMCOMMS2/3/4 рдЯреНрд░рд╛рдиреНрд╕рд╕рд┐рднрд░рд╣рд░реВ, рд╕рд╛рдереИ рдмрдиреНрдбрд▓рд╣рд░реВ (FPGA + RF) ADRV9361Z7035 SOM + ADRV1CRR-BOB рд░ ADRV9361Z7035 SOM + ADRV1CRR-FMCред рд▓реЛрдб рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдЧрдарди рдЧрд░рд┐рдпреЛ рд╕рдорд╛рдкреНрдд рдЫрд╡рд┐ ARM Linux рдЖрдзрд╛рд░рд┐рдд SD рдХрд╛рд░реНрдбрд╣рд░реВред ADRV9364Z7020 SOM + ADRV1CRR-BOB, Xilinx zed + FMCOMMS2/3/4, Xilinx ZCU102 + FMCOMMS2/3/4 рд░ рд╕рдорд░реНрдерди рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛рд╣рд░реВ рдЫрдиреНред
Xilinx 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, рд╕рд╛рдереИ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреЛрдЧрд┐рддрд╛ sdrctl, рдЬрд╕рд▓реЗ рдиреЗрдЯрд▓рд┐рдЩреНрдХ рдорд╛рд░реНрдлрдд рдХрд╛рдо рдЧрд░реНрджрдЫ рд░ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдирд┐рдореНрди рд╕реНрддрд░рдорд╛ SDR рдХреЛ рд╕рдЮреНрдЪрд╛рд▓рди рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ (рд░рдЬрд╕реНрдЯрд░рд╣рд░реВ рд╣реЗрд░рдлреЗрд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╕рдордп рд╕реНрд▓рд╛рдЗрд╕ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЖрджрд┐)ред

Wi-Fi рд╕реНрдЯреНрдпрд╛рдХрдХреЛ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдЕрдиреНрдп рдЦреБрд▓рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рдордзреНрдпреЗ, рд╣рд╛рдореА рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓рд╛рдИ рдиреЛрдЯ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВ WimeIEEE 802.11 a/g/p рдЕрдиреБрд░реВрдк рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджреИ рдЯреНрд░рд╛рдиреНрд╕рдорд┐рдЯрд░ GNU рд░реЗрдбрд┐рдпреЛ рд░ рдирд┐рдпрдорд┐рдд рдкреАрд╕реАрдорд╛ рдЖрдзрд╛рд░рд┐рддред рд╕рдлреНрдЯрд╡реЗрдпрд░ рдУрдкрди 802.11 рд╡рд╛рдпрд░рд▓реЗрд╕ рд╕реНрдЯреНрдпрд╛рдХрд╣рд░реВ рдкрдирд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджреИрдЫрдиреН рдЬрд┐рд░рд┐рдпрд╛ ╨╕ рд╕реЛрд░рд╛ (рдорд╛рдЗрдХреНрд░реЛрд╕рдлреНрдЯ рд░рд┐рд╕рд░реНрдЪ рд╕рдлреНрдЯрд╡реЗрдпрд░ рд░реЗрдбрд┐рдпреЛ)ред

FPGA рд░ SDR рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЦреБрд▓рд╛ Wi-Fi рдЪрд┐рдкрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕рд╛рде OpenWifi рдкрд░рд┐рдпреЛрдЬрдирд╛

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди