ืืืกืืึธืจืืฉ, ืจืืึฟ ืขืืคึผืืืืื ื ืืฆื ืืืืืจืืืก ืงืืืึธืจืื ืืื ืืืกืข ืคึฟืื Logitech. ืืืขื ืืืจ, ืื ืกืคึผืขืฉืึทืืึทืกืฅ ืคืื ืื ืฉืึทืคึผ ืกืขืงืืจืืื ืืึทื ืฉืึทืคึฟื ืืืืืขืจ, ืึทืจืืึทื ืืื ืืืขืจ ืคึผืึทืกืืืขืจืื, ืืึธืื ืืื ืืขืคืจืขืื: ืืื ืฉืืืขืจ ืืื ืขืก ืฆื ืืืืคึผืึทืก ืื ืืืืขืจืืืื ืืขืงืึทื ืืืึทืื ืคืื ืืืืืจืืืก ืงืืืึธืจืื? ืืขืจ ืืขืจื ืขื ืื ืืคืืขืงื ืึทืจืงืึทืืขืงืืฉืขืจืึทื ืคืืึธื ืืื ืืืืืืืืืจื ืขืจืจืึธืจืก ืืืึธืก ืืึธืื ืึทืงืกืขืก ืฆื ืึทืจืืึทื ืฉืจืืึทื ืืึทืื. ืื ืืขืจ ืืขืจ ืฉื ืืึทืื ืืื ืืืึธืก ืืืจ ืืึทื.
ืคืืจืืืืก ืืึธืืืืขืืฉ?
ืืืื ืืื ืืืขืจ ืืืื ืื ื, Logitech ืึทืจืืึทื ืฉืจืืึทื ืืขืืืืกืขืก ืืขื ืขื ืฆืืืืฉื ืื ืืขืืกืื ืงืืืึทืืืืขื ืืื ืืขืจืกื ืืึทืงืืืขื. ืจืืึฟ ืคืื ืื ืืขืืืืกืขืก ืืืึธืก ืืืจ ืืึธืื ืืขื ืขื ืืืืืจื ืืืืฃ ืื Logitech ืืืืืื ื
ืืึธื ืืืข ืืคื ืขืืขืจ ืืื Logitech Unifying ืฉืืืฆื
ืื ืงืืึทืืืืึทืืืจ ืงืขื ืขื ืืืขืจื ืึท ืืงืืจ ืคืื ืืื ืคึฟืึธืจืืึทืฆืืข ืคึฟืึทืจ ืึทืืึทืงืขืจื. Logitech, ืืขื ืืืขื ืืื ืืฉืืื ืื ืืขืืืขื ืกืึทืงืึธื ืข, ืืขื ืืืขื ืืึธืจืื ืคืื ืืืืขืจืืืื - ืืขืืืืื ื ืื AES128 ืขื ืงืจืืคึผืฉืึทื ืึทืืืขืจืืืึทื ืืื ืื ืจืึทืืืึธ ืงืึทื ืึทื ืคืื ืื ืืืืืจืืืก ืงืืึทืืืืึทืืืจ. ืืขืจ ืขืจืฉืืขืจ ืืขืืึทื ืง ืึทื ืึท ืึทืืึทืงืขืจ ืงืขื ืืึธืื ืืื ืืขื ืกืืืืึทืฆืืข ืืื ืฆื ืื ืืขืจืกืขืคึผื ืฉืืืกื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขื ืขืก ืืื ืืจืึทื ืกืืืืืขื ืืืืขืจ ืึท ืจืึทืืืึธ ืงืึทื ืึทื ืืขืฉืึทืก ืื ืืืื ืืื ื ืคึผืจืึธืฆืขืืืจ. ื ืึธื ืึทืืข, ืืืื ืืืจ ืืึธืื ืึท ืฉืืืกื, ืืืจ ืงืขื ืขื ืื ืืขืจืกืขืคึผื ืื ืจืึทืืืึธ ืกืืื ืึทืื ืคืื ืื ืงืืึทืืืืึทืืืจ ืืื ืืขืงืจืืคึผื ืืื. ืึธืืขืจ, ืืขืจ ืืึทื ืืฆืขืจ ืจืึทืจืขืื (ืึธืืขืจ ืืคืืื ืงืืื ืืึธื) ืืึทืจืฃ ืฆื ืคืึทืจืืื ืืงื ืื ืงืืึทืืืืึทืืืจ, ืืื ืึท ืืขืงืขืจ ืืื ืึท ืกืงืึทื ืื ื ืจืึทืืืึธ ืืืขื ืืึธืื ืฆื ืืืึทืจืื ืึท ืืึทื ื ืฆืืึทื. ืืื ืืขืจืฆื, ื ืื ืึทืืฅ ืืื ืึทืืื ืคึผืฉืื ืืื ืื ืื ืืขืจืกืขืคึผืฉืึทื ืคึผืจืึธืฆืขืก ืืื. ืืื ืื ืืขืฆืืข ืืขืจื ืขื ืืื ืืื ื 2019, ืืืืขืจืืืื ืขืงืกืคึผืขืจื Markus Mengs ืืจืืืก ืึธื ืืืื
ืืืจ ืืืขืื ืจืขืื ืืืขืื ืืื ืืืขืจ ืืืืขืจืืืื ืืขืจื ืขื ืคืื ืื ืืึธืืืืขืืฉ ืืึธื ืืืข ืืืืืจื ืืืืฃ ืื NRF24 SoC ืคึฟืื ื ืึธืจืืืง ืกืขืืืงืึทื ืืึทืงืืขืจ. ืืึธืืืจ ืึธื ืืืืื, ืืึธืืขืจ, ืืื ืื ืจืึทืืืึธ ืงืึทื ืึทื ืืื.
ืืื ืืึทืื "ืคืืขืก" ืืื ืึท ืจืึทืืืึธ ืงืึทื ืึทื
ืคึฟืึทืจ ืฆืืื-ืึธืคืืงืืึทื ืึทื ืึทืืืกืืก ืคืื ืื ืจืึทืืืึธ ืกืืื ืึทื, ืืืจ ืืขืืืืื ื ืึท SDR ืืคื ืขืืขืจ ืืืืืจื ืืืืฃ ืื Blade-RF ืืืื ืืื ืกืคึผืขืงืืจืื ืึทื ืึทืืืืขืจ ืืึธืืข (ืืืจ ืงืขื ื ืืืื ืืืืขื ืขื ืืืขืื ืืขื
SDR Blade-RF ืืืื
ืืืจ ืืืื ืงืึทื ืกืืืขืจื ืื ืืขืืืขืืงืืื ืคืื ืจืขืงืึธืจืืื ื ืงืืืึทืืจืึทืืืจืขืก ืคืื ืื ืจืึทืืืึธ ืกืืื ืึทื ืืื ืึท ืื ืืขืจืืืืืื ืึธืคืืงืืึทื, ืืืึธืก ืงืขื ืืืื ืึทื ืึทืืืืื ืืื ืืืืืืึทื ืกืืื ืึทื ืคึผืจืึทืกืขืกืื ื ืืขืงื ืืงืก.
ืฉืืึทื ืงืึทืืืฉืึทื ืืืืฃ ืจืึทืืืึธ ืคืจืขืงืืืขื ืกืืขืก ืืื ืื ืจืืกืืฉืข ืคืขืืขืจืืืฉืึทื
ืกืคึผืขืงืืจืื ืคืื ืื 2,4 GHz ืืึทื ื
ืื ืื ืืขืจืคืืจืึทื ืก ืกืืืืืืข ืืื ืื ืงืืื ืืื ืืึทื ืฅ ืงืึธืืคึผืืืฆืืจื. ืืจืึธืฅ ืืขื, Logitech ืืื ืืืืืืช ืฆื ืฆืืฉืืขืื ืคืึทืจืืึธืืืขื ืืื ืกืืึทืืื ืึธืคึผืืจืึธื ืืืจื ืื ื ืืฆื ืคืื ืื ืขื ืืึทื ืกื ืฉืึธืงืงืืืจืกื ืคึผืจืึธืืึธืงืึธื ืืื ืื NRF24 ืืจืึทื ืกืกืขืืืืขืจ ืืื ืงืึธืืืื ืึทืฆืืข ืืื ืึธืคืืงืืึทื ืึทืืึทืคึผืืืืฉืึทื ืึทืืืขืจืืืึทืื.
ืืฉืึทื ืึทืื ืืื ืึท ืืึทื ื ืืขื ืขื ืืขืฉืืขืื ืืื ืื ืืึทืืืฉืขืจ ืืื ืฉืืขืืขืก ืืื ืืืคืืื ื ืืื
ืงืืึทืืืืึทืืืจ ืจืึทืืืึธ ืกืืื ืึทื ืืื ืฆืืื ืคืึทืจืืจืขืืื ื
ืืขืจ ืืคื ืขืืขืจ ื ืืฆื ืื ืงืึธืจืึทืืืืฉืึทื ืคึผืจืื ืฆืืคึผ ืคืื ืึธืคึผืืจืึธื, ืึทืืื ืื ืืจืึทื ืกืืืืืขื ืคึผืึทืงืึทื ืึผืืื ืึท ืคึผืจืืึทืืืืข ืืื ืึท ืึทืืจืขืก ืืืื. ืจืึทืฉ-ืงืขืื ืฉืืขืืืง ืงืึธืืืจืื ื ืืื ื ืืฉื ืืขื ืืฆื; ืื ืืึทืื ืืืฃ ืืื ืื ืงืจืืคึผืืื ืืื ืื AES128 ืึทืืืขืจืืืึทื.
ืืื ืึทืืืขืืืื, ืื ืจืึทืืืึธ ืฆืืืื ื ืคืื ืื Logitech ืืืืืจืืืก ืงืืึทืืืืึทืืืจ ืงืขื ืขื ืืืื ืงืขืจืึทืงืืขืจืืืื ืืื ืืึธืจ ืืืกืื ืืงืจืึทื ืึทืก ืืื ืกืืึทืืืกืืืฉ ืืืืืืคึผืืขืงืกืื ื ืืื ืึธืคืืงืืึทื ืึทืืึทืคึผืืืืฉืึทื. ืืขื ืืืื ืึทื ืื ืงืืึทืืืืึทืืืจ ืืจืึทื ืกืืืืขืจ ืกืืืืืฉืื ืื ืงืึทื ืึทื ืฆื ืึทืจืืืขืจืคืืจื ืืขืืขืจ ื ืืึท ืคึผืึทืงืึทื. ืืขืจ ืืคื ืขืืขืจ ืืืืืกื ื ืืฉื ืืื ืฉืืืึทืื ืื ืืจืึทื ืกืืืกืืข ืฆืืื ืึธืืขืจ ืื ืึธืคืืงืืึทื ืงืึทื ืึทื, ืึธืืขืจ ืืืืื ืืืืขืจ ืจืฉืืื ืืื ืืึทืืืืกื. ืื ืืคื ืขืืขืจ ืืื ืืจืึทื ืกืืืืขืจ ืืจืขืคื ืืื ืืื ืืขื ืงืึทื ืึทื ืืึทื ืง ืฆื ืงืึธืืึธืจืืึทื ืืืืื ืึธืคืืงืืึทื ืืืืคึผืึทืก ืืื ืฆืืืขืืขืจื ืึทืืืขืจืืืึทืื, ืืื ืืขืืื ื ืืื ืขื ืืึทื ืกื ืฉืึธืงืงืืืจืกื ืืขืจืงืขื ืืขื ืืฉ ืืขืงืึทื ืืืึทืื. ืืืจ ืืึธืื ื ืืฉื ืื ืืืขืกืืึทืืืืืึทื ืฆื ืื ืงืึทื ืึทื ืจืฉืืื ืืื ืกืืึทืืืง. ืืืกืืึธืืข, ืืืึทื ืขื ืืขืจืื ื ืืื ืจืขืื ืฆื ืืขืจ ืึธืคืืงืืึทื ืึทืืึทืคึผืืืืฉืึทื ืึทืืืขืจืืืึทื. ืขืคึผืขืก ื ืึธืขื ื ืฆื ืื ืึธืคืืงืืึทื ืืึทืคึผืื ื ืืืคึฟื (ืคึผืกืขืืืืึธ-ืจืึทื ืืึธื ืืื ืื ื ืคืื ืื ืึทืคึผืขืจืืืืื ื ืึธืคืืงืืึทื) ืงืขื ืขื ืืืื ืืขืืขื ืืื ืื ื ืืฆื ืคืื ืื ืึธืคืืงืืึทื ืืืื ืคืื ืื ืงืืื.
ืืืื, ืืื ืืขืจ ืื ืึธืื ืคืื ืฆืืื-ืึธืคืืงืืึทื ืึทื ืกืขืจืืึทื ืื, ืฆื ืขื ืฉืืจ ืืขืจืึทื ืืื ืึธืคึผืืจืึธื ืคืื ืึทืืข ืงืืึทืืืืึทืืืจ ืกืืื ืึทืื, ืึท ืึทืืึทืงืขืจ ืืืขื ืืึทืจืคึฟื ืฆื ืงืขืกืืืืขืจ ืืึธื ืืืึธืจ ืื ืืื ืฆืข ืึธืคืืงืืึทื ืืจืื ืคืื 84 ืฉืืขืืขืก, ืืืึธืก ืจืืงืืืืืขืจื ืึท ืืึทืืืืืืง ืฆืืื. ืืึธ ืขืก ืืืขืจื ืงืืึธืจ ืืืึธืก ืื ืืืึทืื ืขืจืึทืืืืืื ืคืื ืื ืืกื ืฉืืืกื ืืงืกืืจืึทืงืฉืึทื (CVE-2019-13054)
ื ืงืืง ืืืืฃ ืื ืคึผืจืึธืืืขื ืคืื ืืื ืขืืืืื ืืง
ืคึฟืึทืจ ืืื ืืืขืจ ืืขืจื ืขื, ืืืจ ืืืืกืืขืจืืืืืื ืืืื ืขืจ ืคืื ืืื ืืืขืจ ืืืืืกืืื ื Logitech K330 ืงืืืึธืจืื ืืื ืึท Logitech Unifying ืืึธื ืืืข.
ืืึธืืืืขืืฉ ืงืงืกื ืืืงืก
ืืื ืก ื ืขืืขื ืึท ืงืืง ืืื ืื ืงืืึทืืืืึทืืืจ. ืึท ืืฉืืงืึทืืืข ืขืืขืืขื ื ืืืืฃ ืืขื ืืจืขื ืฆื ืืขืจื ืขื ืืื ืื SoC NRF24 ืฉืคึผืึธื ืคึฟืื ื ืึธืจืืืง ืกืขืืืงืึทื ืืึทืงืืขืจ.
SoC NRF24 ืืืืฃ Logitech K330 ืืืืืจืืืก ืงืืึทืืืืึทืืืจ ืืจืขื
ืื ืคืืจืืืืึทืจืข ืืื ืืืื ืืื ืื ืขืจืืขื ืืึผืจืื, ืืืืขื ืขื ืืื ืืืืึทืืื ื ืืขืงืึทื ืืืึทืื ืืขื ืขื ืคืึทืจืงืจืืคึผืื. ืฆืื ืืึทืืืืขืจื, ืื ืคืืจืืืืึทืจืข ืืื ื ืืฉื ืืจืืืก ืืื ืึธืคึฟื ืงืืืืื. ืืขืจืืืขืจ, ืืืจ ืืึทืฉืืึธืกื ืฆื ืฆืืืึทื ื ืืขื ืคึผืจืึธืืืขื ืคืื ืื ืื ืืขืจืข ืืืึทื - ืฆื ืืขืจื ืขื ืื ืื ืขืจืืขื ืืื ืืึทืื ืคืื ืื Logitech ืืึธื ืืืข ืืคื ืขืืขืจ.
ืื "ืื ืขืจ ืืืขืื" ืคืื ืื ืืึธื ืืืข ืืคื ืขืืขืจ ืืื ืืึทื ืฅ ืืฉืืงืึทืืืข. ืื ืืึธื ืืืข ืืื ืืืืื ืืืกืึทืกืขืืืึทืื, ืืจืืื ืืืืฃ ืืจืขื ืื ืืึทืงืึทื ืืข NRF24 ืืขืืืื ื ืืื ืึท ืืขืืืื-ืืื ืืกื ืงืึธื ืืจืึธืืืขืจ ืืื ืงืขื ืขื ืืืื ืจืืคึผืจืึธืืืจืึทืื ืืืืืข ืคึฟืื ืื ืืกื ืืืึทื ืืื ืืืืึทื ืคึฟืื ืื ืคึผืจืึธืืจืึทืืืกื.
ืืึธืืืืขืืฉ ืืึธื ืืืข ืึธื ืืึธืืกืื ื
ืืื ื ืขืก ืืื ืึท ื ืึธืจืืึทื ืืขืงืึทื ืืืึทื ืคึฟืึทืจ ืึทืคึผืืืืืื ื ืื ืคืืจืืืืึทืจืข ื ืืฆื
ืืืึธืก ืืื ืืขืฉืขื: ืคืืจืืืืึทืจืข RQR_012_005_00028.bin ืืื ืืงืกืืจืึทืงืืื ืคืื ืื ืืืฃ ืคืื ืื Firmware Update Tool ืึทืคึผืืึทืงืืืฉืึทื. ืฆื ืงืึธื ืืจืึธืืืจื ืืืึทื ืึธืจื ืืืขืืงืืึทื, ืื ืืึธื ืืืข ืงืึธื ืืจืึธืืืขืจ ืืื ืืขืืืขื ืงืึธื ื ืขืงืืขื ืืื ืึท ืงืึทืืืข
ืงืึทืืืข ืคึฟืึทืจ ืงืึทื ืขืงืืื ื ืื ืืึธืืืืขืืฉ ืืึธื ืืืข ืฆื ืื ChipProg 48 ืคึผืจืึธืืจืึทืืืกื
ืฆื ืงืึธื ืืจืึธืืืจื ืื ืึธืจื ืืืขืืงืืึทื ืคืื ืื ืคืืจืืืืึทืจืข, ืขืก ืืื ืืฆืืื ืืขืฉืืขืื ืืื ืื ืืืงืึธืจื ืคืื ืื ืงืึธื ืืจืึธืืืขืจ ืืื ืืขืืจืืขื ืจืืืืืง, ืื ืงืืึทืืืืึทืืืจ ืืื ืืืื ืืขื ืขื ืคืืจืืื ืื ืฆื ืื ืืึธื ืืืข ืืืจื Logitech Unifying. ืขืก ืืื ืืขืืืขื ืฆื ืฆืืคึฟืขืืืงืขืจ ืืึทืืึทืคืืื ืคืืจืืืืึทืจืข ื ืืฆื ืื ื ืึธืจืืึทื ืืขืจืืืึทื ืืืงื ืืขืงืึทื ืืืึทื, ืืืืึทื ืขืก ืืขื ืขื ืงืืื ืงืจืืคึผืืึธืืจืึทืคืืง ืฉืืฅ ืืขืงืึทื ืืืึทืื ืคึฟืึทืจ ืื ืคืืจืืืืึทืจืข. ืคึฟืึทืจ ืคืึธืจืฉืื ื ืฆืืืขืงื, ืืืจ ืืขืืืืื ื ืึท ืืฉืืืืช ืงืฉืจ ืฆื ืื ืคึผืจืึธืืจืึทืืืกื, ืืืืึทื ืืืืึทืืื ื ืืื ืคืื ืคืึทืกืืขืจ ืืืืฃ ืืขื ืืืขื.
ืคืืจืืืืึทืจืข ืคืึธืจืฉืื ื ืืื ืืึทืคืึทืื ืืืืฃ ืืึทื ืืฆืขืจ ืึทืจืืึทื ืฉืจืืึทื
ืื NRF24 ืฉืคึผืึธื ืืื ืืืืืื ื ืืืืืจื ืืืืฃ ืื Intel 8051 ืงืึทืืคึผืืืืื ื ืืึทืจืฅ ืืื ืืจืืืืฆืืื ืขืื ืืึทืจืืืึทืจื ืึทืจืงืึทืืขืงืืฉืขืจ. ืคึฟืึทืจ ืื ืืึทืจืฅ, ืื ืืจืึทื ืกืกืขืืืืขืจ ืืงืื ืืื ืึท ืคึผืขืจืืคืขืจืึทื ืืืื ืืื ืืื ืืขืฉืืขืื ืืื ืื ืึทืืจืขืก ืคึผืืึทืฅ ืืื ืึท ืืึทื ื ืคืื ืจืขืืืฉืืกืืขืจื. ืืึทืงืืืืขื ืืืืฉืึทื ืคึฟืึทืจ ืืืืฉืคืืื ืคืื ืื ืฉืคึผืึธื ืืื ืืงืืจ ืงืึธื ืงืขื ืขื ืืืื ืืขืคึฟืื ืขื ืืืืฃ ืืขืจ ืืื ืืขืจื ืขืฅ, ืึทืืื ืืืกืึทืกืขืืืึทื ืื ืคืืจืืืืึทืจืข ืืื ื ืืฉื ืฉืืืขืจ. ืืขืฉืึทืก ืคืึทืจืงืขืจื ืื ืืฉืขื ืืขืจืืข, ืืืจ ืืึธืืงืึทืืืืื ืื ืคืึทื ืืงืฉืึทื ื ืคึฟืึทืจ ืจืืกืืืืื ื ืงืืกืืจืึธืืง ืืึทืื ืคืื ืื ืจืึทืืืึธ ืงืึทื ืึทื ืืื ืงืึทื ืืืขืจืืื ื ืขืก ืืื HID ืคึฟืึธืจืืึทื ืคึฟืึทืจ ืืจืึทื ืกืืืกืืข ืฆื ืืขืจ ืืึทืืขืืึธืก ืืืจื ืื ืืกื ืฆืืืื ื. ืื ืื ืืืฉืขืงืฉืึทื ืงืึธื ืืื ืืขืฉืืขืื ืืื ืคืจืื ืืืงืึธืจื ืืืขื ืื, ืืืึธืก ืึทืจืืึทื ืืขืจืขืื ื ืืืฉืืจืื ืคึฟืึทืจ ืื ืืขืจืกืขืคึผืืื ื ืงืึธื ืืจืึธื, ืฉืคึผืึธืจื ืืื ืจืืกืืึธืจืื ื ืืขืจ ืึธืจืืืื ืขื ืืืจืืคืืจืื ื ืงืึธื ืืขืงืกื, ืืื ืืขืืื ื ืืื ืคืึทื ืืงืฉืึทื ืึทื ืงืึธื.
ืื ืคึผืึทืงืึทื ืคืื ืืจืื ืืืขื ืึธืืขืจ ืจืืืืกืื ื ืึท ืฉืืืกื ืืืงืืืขื ืืืจื ืื ืืึธื ืืืข ืคึฟืื ืื ืจืึทืืืึธ ืงืึทื ืึทื ืืื ืืขืงืจืืคึผืืื, ืงืึธื ืืืขืจืืขื ืืื ืึท ื ืึธืจืืึทื HID ืืึทืจืืื ืืื ืืขืฉืืงื ืฆื ืื ืืกื ืฆืืืื ื ืืื ืคึฟืื ืึท ืจืขืืืืขืจ ืงืืึทืืืืึทืืืจ. ืืื ืึท ืืืื ืคืื ืืขืจ ืคืึธืจืฉืื ื, ืืืจ ืืขื ืขื ืืขืจืกื ืืื ืืขืจืขืกืืจื ืืื ืืขื ืืืื ืคืื ืื HID ืืึทืจืืื ืืื ืึท ืืืื ืคืื ืืึธืืืคืืขืจ ืคืืึทืืก ืืื ืึท ืืขื ืืข ืคืื โโโโ6 ืืืืขืก ืืื ืงืืกืืจืึธืืง ืงืึธืืื (ืคึฟืึทืจ ืืขืจืืึธื ืขื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื HID
HID ืืึทืจืืื ืกืืจืืงืืืจ:
// Keyboard HID report structure.
// See https://flylib.com/books/en/4.168.1.83/1/ (last access 2018 december)
// "Reports and Report Descriptors", "Programming the Microsoft Windows Driver Model"
typedef struct{
uint8_t Modifiers;
uint8_t Reserved;
uint8_t KeyCode[6];
}HidKbdReport_t;
ืืืืื ืืืืืขืจ ืืจืึทื ืกืืืืื ื ืื HID ืกืืจืืงืืืจ ืฆื ืืขืจ ืืึทืืขืืึธืก, ืื ืื ืืืฉืขืงืืื ืงืึธื ื ืขืื ืงืึธื ืืจืึธื, ืงืึธืคึผืืข 8 ืืืืขืก ืคืื ืืขืืืืจื HID ืืึทืื ืืื ืืึผืจืื ืืื ืกืขื ืื ืขืก ืฆื ืื ืจืึทืืืึธ ืืืึทื ืงืึทื ืึทื ืืื ืงืืึธืจ ืืขืงืกื. ืืื ืงืึธื ืขืก ืงืืงื ืืื ืืึธืก:
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~>
// Profiling have shown time execution ~1.88 mSec this block of code
SaveRfState(); // save transceiver state
RfInitForTransmition(TransmitRfAddress); // configure for special trnsmition
hal_nrf_write_tx_payload_noack(pDataToSend,sizeof(HidKbdReport_t)); // Write payload to radio TX FIFO
CE_PULSE(); // Toggle radio CE signal to start transmission
RestoreRfState(); // restore original transceiver state
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~<
ืืขืจ ืืืึทื ืงืึทื ืึทื ืืื ืึธืจืืึทื ืืืืจื ืืื ืึท ืึธืคืืงืืึทื ืืืึธืก ืืืจ ืฉืืขืื ืืื ืืืืขืจ ืงืขืจืึทืงืืขืจืืกืืืงืก ืคืื ืืึทื ืืคึผืืึทืืืืฉืึทื ืืืืงืืึทื ืืื ืคึผืึทืงืึทื ืกืืจืืงืืืจ.
ืึธืคึผืขืจืึทืฆืืข ืคืื โโืื ืืจืึทื ืกืกืขืืืืขืจ ืืื ืื ืฉืคึผืึธื
ืืขืืึธืืืืึทืืขื ืคึผืืึทืฆื ืคึผืืึทืฆื ืกืืื ืึทื ืืื ืืืึทื ืงืึทื ืึทื
ื ืึธื ืืจืึทื ืกืืืืืขื ืื ืคึผืึทืงืึทื ืฆื ืื ืืืึทื ืงืึทื ืึทื, ืื ืื ืืืฉืขืงืืื ืงืึธื ืจืืกืืึธืจื ืื ืฉืืึทื ืคืื ืื ืืจืึทื ืกืกืขืืืืขืจ. ืืืฆื ืขืก ืืื ืืืืืขืจ ืืจืืื ืฆื ืึทืจืืขืื ื ืึธืจืืึทืื ืืื ืืขื ืงืึธื ืืขืงืกื ืคืื ืืขืจ ืึธืจืืืื ืขื ืคืืจืืืืึทืจืข.
ืืื ืื ืึธืคืืงืืึทื ืืื ืฆืืื-ืึธืคืืงืืึทื ืืึธืืืืื ื, ืื ืืืึทื ืงืึทื ืึทื ืงืืงื ืืื ืืึธืก:
ืกืคึผืขืงืืจืึทื ืืื ืฆืืื-ืึธืคืืงืืึทื ืคืึทืจืืจืขืืื ื ืคืื ืื ืืืึทื ืงืึทื ืึทื
ืฆื ืคึผืจืืืืจื ืื ืึธืคึผืขืจืึทืฆืืข ืคืื โโืื NRF24 ืฉืคึผืึธื ืืื ืืึทืืึทืคืืื ืคืืจืืืืึทืจืข, ืืืจ ืคืืจืืืืื ืึท ืฉืืืื ืืืึธืก ืื ืงืืืื ืึท ืืึธืืืืขืืฉ ืืึธื ืืืข ืืื ืืึทืืึทืคืืื ืคืืจืืืืึทืจืข, ืึท ืืืืืจืืืก ืงืืึทืืืืึทืืืจ ืืื ืึท ืืคื ืขืืขืจ ืคืืจืืืืื ืืืืฃ ืืขืจ ืืืืข ืคืื โโืึท ืืื ืขืืืฉ ืืึธืืืืข ืืื ืื NRF24 ืฉืคึผืึธื.
ืืึธืืืืขืืฉ ืืืืืจืืืก ืงืืึทืืืืึทืืืจ ืจืึทืืืึธ ืกืืื ืึทื ืื ืืขืจืกืขืคึผืฉืึทื ืงืจืืึทื
NRF24 ืืืืืจื ืืึธืืืืข
ืืืืฃ ืืขืจ ืืึทื ืง, ืืื ืื ืงืืึทืืืืึทืืืจ ืึทืคึผืขืจืืืืื ื ื ืึธืจืืึทืื, ื ืึธื ืงืึทื ืขืงืืื ื ืขืก ืฆื ืื ืืึธืืืืขืืฉ ืืึธื ืืืข, ืืืจ ืืืืขืจืงื ืื ืืจืึทื ืกืืืกืืข ืคืื โโืงืืึธืจ ืืึทืื ืืืขืื ืงืืกืืจืึธืืงืก ืืื ืื ืืืึทื ืจืึทืืืึธ ืงืึทื ืึทื ืืื ืื ื ืึธืจืืึทื ืืจืึทื ืกืืืกืืข ืคืื โโืขื ืงืจืืคึผืืื ืืึทืื ืืื ืื ืืืืคึผื ืจืึทืืืึธ ืฆืืืื ื. ืืืื, ืืืจ ืืขื ืขื ืืืืืืช ืฆื ืฆืืฉืืขืื ืืืจืขืงื ืื ืืขืจืกืขืคึผืฉืึทื ืคืื ืืึทื ืืฆืขืจ ืงืืึทืืืืึทืืืจ ืึทืจืืึทื ืฉืจืืึทื:
ืืขืจ ืจืขืืืืืึทื ืคืื ืื ืืขืจืกืขืคึผืืื ื ืงืืึทืืืืึทืืืจ ืึทืจืืึทื ืฉืจืืึทื
ืื ืื ืืืฉืขืงืืื ืงืึธื ืื ืืจืึทืืืกืื ืงืืืื ืืืืืื ืืื ืื ืึธืคึผืขืจืึทืฆืืข ืคืื โโืื ืืึธื ืืืข ืคืืจืืืืึทืจืข. ืึธืืขืจ, ืืื ืืขื ืขื ืฆื ืงืืืื ืคึฟืึทืจ ืืขืจ ืืึทื ืืฆืขืจ ืฆื ืืึทืืขืจืงื.
ืืื ืืืจ ืงืขื ืขื ืืืึทืืืฉืึทื, ืงืืื ืืึธืืืืขืืฉ ืงืืึทืืืืึทืืืจ ืืืึธืก ืืื ืงืึทืืคึผืึทืืึทืืึทื ืืื Unifying ืืขืื ืึธืืึธืืืข ืงืขื ืขื ืืืื ืืขืืืืื ื ืคึฟืึทืจ ืืขื ืืึทืคืึทืื ืืืขืงืืึธืจ. ืืื ื ืื ืืึทืคืึทืื ืืึทืจืืึทืฅ ืื ืื ืืคืืื ื ืืคื ืขืืขืจ ืึทืจืืึทื ืืขืจืขืื ื ืืื ืจืืึฟ Logitech ืงืืืึธืจืื, ืขืก ืืื ืคืจืืึท ืคืื ืื ืกืคึผืขืฆืืคืืฉ ืงืืึทืืืืึทืืืจ ืืึธืืขื.
ืกืึธืฃ
ืื ืจืขืืืืืึทืื ืคืื ืืขืจ ืืขืจื ืขื ืคึฟืึธืจืฉืืึธืื ืื ืืขืืืขื ื ืืฆื ืคืื ืื ืืึทืืจืึทืื ืกืฆืขื ืึทืจ ืืืจื ืึทืืึทืงืขืจื: ืืืื ืึท ืืขืงืขืจ ืจืืคึผืืืืกืื ืื ืงืึธืจืื ืืื ืึท ืืึธื ืืืข ืืคื ืขืืขืจ ืคึฟืึทืจ ืึท ืืึธืืืืขืืฉ ืืืืืจืืืก ืงืืึทืืืืึทืืืจ, ืขืจ ืืืขื ืงืขื ืขื ืฆื ืืขืคึฟืื ืขื ืื ืคึผืึทืกืืืขืจืื ืฆื ืื ืงืึธืจืื ืก ืึทืงืึทืื ืฅ ืืื ืึทืืข ืื ืคืืืืขื ืืข. ืคืืืื. ืื ืืืืกื ื ืืฉื ืคืึทืจืืขืกื ืึทื ืขืก ืืื ืืืื ืืขืืืขื ืฆื ืึทืจืืึทื ืฉืคึผืจืืฆื ืงืืกืืจืึธืืงืก, ืืืึธืก ืืืื ืึทื ืขืก ืืื ื ืืฉื ืฉืืืขืจ ืฆื ืืืกืคืืจื ืึทืจืืืืจืึทืจืืฉ ืงืึธื ืืืืฃ ืื ืงืึธืืคึผืืืืขืจ ืคืื ืื ืงืึธืจืื.
ืืืึธืก ืืืื ืคึผืืืฆืืื ื ืึท ืึทืืึทืงืขืจ ืงืขื ืขื ืจืืืึธืืืื ืืึธืืืคืืฆืืจื ืื ืคืืจืืืืึทืจืข ืคืื โโืงืืื ืืึธืืืืขืืฉ ืืึธื ืืืข ืืืจื ืืกื? ืืขืจื ืึธื, ืคึฟืื ืขื ื ืกืคึผืืืกื ืืึธื ืืืขืก, ืืืจ ืงืขื ืขื ืฉืึทืคึฟื ืึท ื ืขืฅ ืคืื ืจืืคึผืืืขืจื ืืื ืคืึทืจืืจืขืกืขืจื ืื ืืืงืึทืืืฉ ืืืกืืึทื ืกืข. ืืึธืืฉ ืึท "ืคืื ืึทื ืฆืืขื ืจืืึทื" ืึทืืึทืงืขืจ ืืืขื ืงืขื ืขื ืฆื "ืืขืจื" ืฆื ืงืืึทืืืืึทืืืจ ืึทืจืืึทื ืฉืจืืึทื ืืื ืืจืืงื ืงืื ืืคืืื ืคึฟืื ืึท ืืจืืืืงืข ืื ืื, ืืึธืืขืจื ืจืึทืืืึธ ืึธืคึผืืจืึธื ืืืกืจืืื ืืื ืืขืืกื ืกืขืืขืงืืืื ืกืืกืืขืืขื, ืฉืคึผืืจืขืืืืืง ืจืึทืืืึธ ืจืึทืกืืืืขืจื ืืื ืงืืจืฅ ืึธืคืืงืืึทื ืืื ืื ื ืฆืืื ืืื ืืขืืกื ืืืจืขืงืืืึธื ืึทื ืึทื ืืขื ืึทื ืืืขื ืืึธืื ืืื. ืฆื "ืืขืจื" ืฆื ืงืืึทืืืืึทืืืจ ืึทืจืืึทื ืฉืจืืึทื ืืื ืืจืืงื ืงืื ืืคืืื ืคึฟืื ืึท ืืจืืืืงืข ืื ืื.
ืคืึทืืืึทื ืจืึทืืืึธ ืืืกืจืืื
ืืื ื ืื ืืืืืจืืืก ืืึทืื ืืจืึทื ืกืืืกืืข ืงืึทื ืึทื ืคืื ืื ืืึธืืืืขืืฉ ืงืืึทืืืืึทืืืจ ืืื ืืึทื ืฅ ืืขืืื ื ืคึผืจืึธืืขืงืืขื, ืื ืืขืคึฟืื ืขื ืึทืืึทืง ืืืขืงืืึธืจ ืจืืงืืืืืขืจื ืืฉืืืืช ืึทืงืกืขืก ืฆื ืื ืืคื ืขืืขืจ, ืืืึธืก ืืืืึทืฅ ืื ืึทืืึทืงืขืจ ืืืืขืจ. ืืขืจ ืืืืื ืฉืืฅ ืึธืคึผืฆืืข ืืื ืืขื ืคืึทื ืืืึธืื ืืืื ืฆื ื ืืฆื ืงืจืืคึผืืึธืืจืึทืคืืง ืฉืืฅ ืืขืงืึทื ืืืึทืื ืคึฟืึทืจ ืื ืืคื ืขืืขืจ ืคืืจืืืืึทืจืข, ืืืฉื, ืงืึธื ืืจืึธืืืจื ืื ืืกืืืข ืคืื โโืื ืืึธืืืื ืคืืจืืืืึทืจืข ืืืืฃ ืื ืืคื ืขืืขืจ ืืืึทื. ืึธืืขืจ, ืืืืืขืจ, NRF24 ืฉืืืฆื ื ืืฉื ืืขื ืืื ืขืก ืืื ืืืืืขืืืขื ืฆื ืื ืกืืจืืืขื ื ืฉืืฅ ืืื ืื ืงืจืึทื ื ืืืื ืึทืจืงืึทืืขืงืืฉืขืจ. ืึทืืื ื ืขืืขื ืงืขืืจ ืคืื ืืืื ืืึธื ืืืขืก, ืืืืึทื ืื ืืืกืงืจืืืื ืืึทืคืึทืื ืึธืคึผืฆืืข ืจืืงืืืืืขืจื ืืฉืืืืช ืึทืงืกืขืก ืฆื ืืื.
ืฉืึทืคึผ ืกืขืงืืจืืื ืืื ืึท ืกืคึผืขืฆืืขื ืืึทื ืฉืึทืคึฟื ืคืื ืขืงืกืคึผืขืจืฅ ืคืื ืื ืืืืืงืึทื ืคืึธืจืฉืื ื ืืื ืึทื ืืืืืงืืื ื ืฆืขื ืืขืจ ืืื ืื ืคืขืื ืคืื ืคึผืจืึทืงืืืฉ ืืื ืคึฟืึธืจืืึทืฆืืข ืืืืขืจืืืื, ืงืจืืคึผืืึธืืจืึทืคื, ืงืจืืึทื ืคึผืืึทื, ืคืึทืจืงืขืจื ืื ืืฉืขื ืืขืจืืข ืืื ื ืืืขืจืืง-ืืืจืื ืืืืืืืืืจื ืฉืึทืคืื ื.
ืืงืืจ: www.habr.com