Π’ ΠΌΠΈΡ€Π΅ слоТной элСктроники ΠΈ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹Ρ… систСм управлСния Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Β«SlaveΒ» часто Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅Π΄ΠΎΡƒΠΌΠ΅Π½ΠΈΠ΅ Ρƒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ², хотя тСхничСски ΠΎΠ½ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ всСго лишь Β«Π²Π΅Π΄ΠΎΠΌΡ‹ΠΉΒ». Π Π΅ΠΆΠΈΠΌ Slave β€” это состояниС устройства, ΡƒΠ·Π»Π° ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ, Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ элСмСнта систСмы, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Master. ПониманиС этой ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ критичСски Π²Π°ΠΆΠ½ΠΎ для ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ², систСмных администраторов ΠΈ энтузиастов, Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… домашниС сСрвСры ΠΈΠ»ΠΈ ΡƒΠΌΠ½Ρ‹ΠΉ Π΄ΠΎΠΌ.

Π‘ΡƒΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Master-Slave Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, Π³Π΄Π΅ Master ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π° Slave лишь исполняСт ΠΈΡ…, Π½Π΅ проявляя ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π­Ρ‚ΠΎ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ систСмы, Π³Π΄Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ дСсятками ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Ρ… устройств, Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ ТСсткиС диски Π² RAID-массивС ΠΈΠ»ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ Π² заводском Ρ†Π΅Ρ…Ρƒ. Π‘Π΅Π· Ρ‡Π΅Ρ‚ΠΊΠΎΠ³ΠΎ раздСлСния Ρ€ΠΎΠ»Π΅ΠΉ Π²ΠΎΠ·Π½ΠΈΠΊ Π±Ρ‹ хаос Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ оборудования.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ этот Ρ€Π΅ΠΆΠΈΠΌ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сфСрах: ΠΎΡ‚ программирования ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² Π΄ΠΎ настройки Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΠ»ΡŽΡ‡Π΅Π²Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌΠ° Slave β€” Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· запроса ΠΎΡ‚ Master-устройства. Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ ΠΎ Π½ΡŽΠ°Π½ΡΠ°Ρ… синхронизации, рисках Π΅Π΄ΠΈΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΎΡ‚ΠΊΠ°Π·Π° ΠΈ способах ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ оборудования для ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ всСй систСмы.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Master-Slave Π² Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅

Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ любой систСмы с Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ€ΠΎΠ»Π΅ΠΉ строится Π½Π° строгой ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ. Master-устройство (Π²Π΅Π΄ΡƒΡ‰Π΅Π΅) Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя Ρ€ΠΎΠ»ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт Ρ‚Π°ΠΉΠΌΠΈΠ½Π³ΠΈ, Π·Π°Π΄Π°Π΅Ρ‚ Ρ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ распрСдСляСт Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, устройство Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Slave (Π²Π΅Π΄ΠΎΠΌΠΎΠ΅) постоянно ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ ΠΈΠ»ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ прСрывания, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. Вакая асиммСтрия ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру систСмы ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… областях. Π’ интСрфСйсах ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ SPI (Serial Peripheral Interface), Π²Π΅Π΄ΠΎΠΌΠΎΠ΅ устройство Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ. Оно Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠ³ΠΎ сигнала ΠΎΡ‚ Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ потСряны ΠΈΠ·-Π·Π° рассинхронизации скоростСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΡƒΡ„Π΅Ρ€ΠΎΠ².

  • πŸ”Œ Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ связи: Π’Π΅Π΄ΠΎΠΌΡ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Bluetooth ΠΈΠ»ΠΈ Wi-Fi ΠΆΠ΄Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ смартфона.
  • πŸ’Ύ ДисковыС массивы: Π’ RAID-конфигурациях Π²Π΅Π΄ΠΎΠΌΡ‹Π΅ диски хранят Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ управляСт ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€.
  • πŸ–₯️ Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ: ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Π² Π΄ΠΎΠΌΠ΅Π½Π΅ зависят ΠΎΡ‚ сСрвСра для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ систСмы ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ создания Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ, Π³Π΄Π΅ Slave ΠΎΠ΄Π½ΠΎΠ³ΠΎ уровня становится Master для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ, Ссли ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» этого Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ явно, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ критичСским Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌ (latency).

Π’Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² соврСмСнных высокоскоростных систСмах Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Β«SlaveΒ» часто Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½Π΅ΠΉΡ‚Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ синонимы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Β«SecondaryΒ», Β«PeripheralΒ» ΠΈΠ»ΠΈ Β«ReplicaΒ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΊΠΎΠ½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ тСхничСская ΡΡƒΡ‚ΡŒ процСсса остаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ. Π›ΠΎΠ³ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ остаСтся ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΉ: Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€ ΠΈ Π΅ΡΡ‚ΡŒ исполнитСли.

Π Π΅ΠΆΠΈΠΌ Slave Π² Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Π’ контСкстС управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (Π‘Π£Π‘Π”) Ρ€Π΅ΠΆΠΈΠΌ Slave Ρ‡Π°Ρ‰Π΅ всСго встрСчаСтся ΠΏΡ€ΠΈ настройкС Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Π—Π΄Π΅ΡΡŒ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ сСрвСр (Master) записываСт всС измСнСния Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΆΡƒΡ€Π½Π°Π» (binary log), Π° Π²Π΅Π΄ΠΎΠΌΡ‹Π΅ сСрвСры (Slaves) ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ этот ΠΆΡƒΡ€Π½Π°Π» ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ измСнСния ΠΊ своим копиям Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ позволяСт Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ: запросы Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Slave-сСрвСры, разгруТая Π³Π»Π°Π²Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи.

Настройка Ρ‚Π°ΠΊΠΎΠΉ связки Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ синхронизации. Если ΡΠ΅Ρ‚ΡŒ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°, Slave ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΡ‚Π°Ρ‚ΡŒ ΠΎΡ‚ мастСра, создавая ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄ΠΈΡ‚ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅. Для ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ этого эффСкта ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡŽ, Π½ΠΎ ΠΎΠ½Π° сниТаСт ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ систСмы записи.

πŸ“Š Какой Ρ‚ΠΈΠΏ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²Ρ‹ Ρ‡Π°Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅?
  • Асинхронный
  • ΠŸΠΎΠ»ΡƒΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½Ρ‹ΠΉ
  • Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½Ρ‹ΠΉ
  • Π“ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹ΠΉ

БущСствуСт нСсколько Ρ‚ΠΈΠΏΠΎΠ² Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²Π΅Π΄ΠΎΠΌΡ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ:

  • πŸ”„ Statement-based: На Slave ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ SQL-запросы.
  • πŸ“ Row-based: ΠšΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ нСпосрСдствСнно ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ строки Π΄Π°Π½Π½Ρ‹Ρ….
  • ⚑ Mixed: ΠšΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ, Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ слСдуСт ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌ. Π’ кластСрС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Slave Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ server-id, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚ Master ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π΅Π΄ΠΎΠΌΡ‹Ρ… ΡƒΠ·Π»ΠΎΠ². Если IDs совпадут, рСпликация прСрвСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ сСрвСр Π½Π΅ смоТСт ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ сСбя ΠΎΡ‚ ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€Π° ΠΏΠΎ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Настройка SPI ΠΈ I2C: Slave для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ²

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Arduino, ESP32 ΠΈΠ»ΠΈ STM32, Ρ€Π΅ΠΆΠΈΠΌ Slave Π² интСрфСйсах SPI ΠΈ I2C являСтся Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ Π½Π°Π²Ρ‹ΠΊΠΎΠΌ. Π’ SPI Π²Π΅Π΄ΠΎΠΌΠΎΠ΅ устройство выбираСтся сигналом SS (Slave Select), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Master опускаСт Π² логичСский ноль ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ сСанса связи. Π‘Π΅Π· этого сигнала Π²Π΅Π΄ΠΎΠΌΡ‹ΠΉ Ρ‡ΠΈΠΏ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΡ‹ Π½Π° Π»ΠΈΠ½ΠΈΠΈ SCK.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ SPI, интСрфСйс I2C являСтся Π΄Π²ΡƒΡ…ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½Ρ‹ΠΌ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π°Π΄Ρ€Π΅ΡΠ°Ρ†ΠΈΡŽ. КаТдоС устройство Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Slave ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ 7- ΠΈΠ»ΠΈ 10-Π±ΠΈΡ‚Π½Ρ‹ΠΉ адрСс. Master Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ с ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ адрСса; Ссли адрСс совпадаСт с настроСк Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ, ΠΎΠ½ΠΎ отзываСтся acknowledgement-сигналом (ACK). Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ мноТСство устройств ΠΊ ΠΎΠ΄Π½ΠΎΠΉ шинС.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Slave

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΏΡ€ΠΈ настройкС Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚:

  • ❌ ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ΠΎΠ±Ρ‰Π΅ΠΉ Π·Π΅ΠΌΠ»ΠΈ (GND) ΠΌΠ΅ΠΆΠ΄Ρƒ Master ΠΈ Slave.
  • ❌ НСвСрный порядок Π±Π°ΠΉΡ‚ (Big Endian vs Little Endian).
  • ❌ ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ адрСсов Π½Π° шинС I2C.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ мСняйтС Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° (с Master Π½Π° Slave) Π½Π° Π»Π΅Ρ‚Ρƒ Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ»ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ сброса, Ссли Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ динамичСскоС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ зависанию ΡˆΠΈΠ½Ρ‹.

Для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ логичСскиС Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, отправляСт Π»ΠΈ Master ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π»ΠΈ Slave Π² ΠΎΡ‚Π²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉηͺ—口. Π’Π°ΠΉΠΌΠΈΠ½Π³ΠΈ здСсь ΠΈΠ³Ρ€Π°ΡŽΡ‚ Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ: Ссли Slave Π½Π΅ успССт ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π° Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ°, Master ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ мусор ΠΈΠ»ΠΈ старыС Π΄Π°Π½Π½Ρ‹Π΅.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ устройств

Π§Ρ‚ΠΎΠ±Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ различия, рассмотрим ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ характСристик устройств Π² Ρ€Π°Π·Π½Ρ‹Ρ… ролях. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊΠΎΠ΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для вашСй Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€ΠΎΠ»ΠΈ Π² сСти.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Master (Π’Π΅Π΄ΡƒΡ‰ΠΈΠΉ) Slave (Π’Π΅Π΄ΠΎΠΌΡ‹ΠΉ) Peer-to-Peer
Π˜Π½ΠΈΡ†ΠΈΠ°Ρ†ΠΈΡ связи ВсСгда Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ сСанс Волько Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΠ΅Ρ‚ ΠœΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚
Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹ΠΉ сигнал Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ внСшний Ρ‚Π°ΠΊΡ‚ БогласовываСт динамичСски
Π—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ НС зависит ΠΎΡ‚ Slave ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ зависит ΠΎΡ‚ Master Автономно
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΠΈ Высокая (ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ) Низкая/БрСдняя (ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ) ΠžΡ‡Π΅Π½ΡŒ высокая

Из Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Slave устройства часто ΠΏΡ€ΠΎΡ‰Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ… Π·Π°Π΄Π°Ρ‡Π° β€” Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° внСшниС события. Однако ΠΎΠ½ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ бСсполСзны Π±Π΅Π· Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ΠΎΡ€Π°. Π’ систСмах Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚ΠΊΠ°Π· Master ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ остановкС всСй Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Slave-устройств.

Π§Ρ‚ΠΎ происходит ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π΅ Master?

Π’ классичСской Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Master-Slave ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· строя Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ устройства всС Π²Π΅Π΄ΠΎΠΌΡ‹Π΅ (Slaves) пСрСходят Π² состояниС оТидания ΠΈΠ»ΠΈ простоя. Π”Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ, Π° систСма управлСния β€” ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. Для критичСских систСм Π²Π½Π΅Π΄Ρ€ΡΡŽΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ автоматичСского Π²Ρ‹Π±ΠΎΡ€Π° Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΈΠ΄Π΅Ρ€Π° (Leader Election), Π½ΠΎ это ΡƒΠΆΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄ Π·Π° Ρ€Π°ΠΌΠΊΠΈ чистого Slave-Ρ€Π΅ΠΆΠΈΠΌΠ°.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ синхронизации ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ (Latency)

Одной ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² систСмах с Π²Π΅Π΄ΠΎΠΌΡ‹ΠΌΠΈ устройствами являСтся Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°. Когда Slave ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π΅ΠΌΡƒ трСбуСтся врСмя Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ (processing time) ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΎΠΉ ΠΎΡ‚Π²Π΅Ρ‚Π°. Π’ высокоскоростных сСтях это врСмя измСряСтся микросСкундами, Π½ΠΎ Π² ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… систСмах ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ расти ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ.

БущСствуСт понятиС «дроТания» (jitter) β€” Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ°. Если Master ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· строго фиксированный ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π», Π° Slave ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΈΠ·-Π·Π° Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Ρ… процСссов, связь ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΎΡ€Π²Π°Π½Π° ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρƒ. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° сторонС Π²Π΅Π΄ΠΎΠΌΠΎΠ³ΠΎ устройства β€” ΠΊΠ»ΡŽΡ‡ ΠΊ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ прСрывания (Interrupts) вмСсто опроса (Polling) Π½Π° сторонС Slave-устройства. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° запрос Master, Π΄Π°ΠΆΠ΅ Ссли ΠΎΠ½ занят Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌΠΈ вычислСниями, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ снизив Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ.

Π’Π°ΠΊΠΆΠ΅ стоит ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ. Если Slave Π½Π΅ успСваСт ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ входящий ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±ΡƒΡ„Π΅Ρ€ достаточного Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΡ„Π΅Ρ€Π° Π²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². Π’ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°Ρ… с ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ доставки (ACK/NACK) это Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΡƒΡŽ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ большС Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ ΠΊΠ°Π½Π°Π» связи.

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ уязвимости Π²Π΅Π΄ΠΎΠΌΡ‹Ρ… ΡƒΠ·Π»ΠΎΠ²

Π’ контСкстС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ бСзопасности устройства Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Slave часто становятся «слСпым пятком». ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ соСдинСния, Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„Π°Π΅Ρ€Π²ΠΎΠ»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, ΠΈΠ΄ΡƒΡ‰ΠΈΠΉ ΠΎΡ‚ Master, считая Π΅Π³ΠΎ Π»Π΅Π³ΠΈΡ‚ΠΈΠΌΠ½Ρ‹ΠΌ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ. Π₯Π°ΠΊΠ΅Ρ€Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠ΅ доступ ΠΊ Master, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ всСми Slave.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ простыС ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ ΠΈ IoT-Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Slave Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ встроСнных ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ подлинности ΠΊΠΎΠΌΠ°Π½Π΄. Π—Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π»ΠΎΠΆΠ½Ρ‹ΠΉ Master Π² ΡΠ΅Ρ‚ΡŒ ΠΈ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Slave-устройства Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСструктивныС дСйствия ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

  • πŸ”’ ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ: Slave часто выполняСт любой запрос ΠΎΡ‚ любого Master.
  • πŸ‘οΈ ΠŸΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…: Π”Π°Π½Π½Ρ‹Π΅ Π½Π° Π²Π΅Π΄ΠΎΠΌΠΎΠΌ ΡƒΠ·Π»Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ.
  • πŸ›‘ DoS-Π°Ρ‚Π°ΠΊΠΈ: Π—Π°Π²Π°Π»ΠΈΠ²Π°Π½ΠΈΠ΅ Slave запросами ΠΌΠΎΠΆΠ΅Ρ‚ вывСсти Π΅Π³ΠΎ ΠΈΠ· строя.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ критичСски Π²Π°ΠΆΠ½Ρ‹Ρ… Slave-устройств (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, систСм доступа ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠΊΠΈ) ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ физичСскиС ΠΊΠ»ΡŽΡ‡ΠΈ доступа для смСны Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ рСкомСндуСтся Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ с ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π°ΠΆΠ΅ Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, TLS для MQTT ΠΈΠ»ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² SPI), хотя это Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹Ρ… процСссоров. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ цСлостности ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° сторонС Slave ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΡ… исполнСниСм.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ устройство Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Master ΠΈ Slave?

Π”Π°, такая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° называСтся Multi-Master ΠΈΠ»ΠΈ Peer-to-Peer. Устройство ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² Ρ€ΠΎΠ»ΠΈ Master для ΠΎΠ΄Π½ΠΈΡ… Π·Π°Π΄Π°Ρ‡ ΠΈ Slave для Π΄Ρ€ΡƒΠ³ΠΈΡ…, Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ€ΠΎΠ»ΠΈ динамичСски. Однако Π² классичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅ SPI устройство ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ТСстко зафиксировано Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ€ΠΎΠ»ΠΈ Π½Π° врСмя сСанса.

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π΄Π²Π° Master ΠΏΠΎΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ с ΠΎΠ΄Π½ΠΈΠΌ Slave?

На ΡˆΠΈΠ½Π°Ρ… Π²Ρ€ΠΎΠ΄Π΅ I2C это ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π°Ρ€Π±ΠΈΡ‚Ρ€Π°ΠΆΡƒ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· мастСров. На SPI, Ссли Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π²Ρ‹Π±ΠΎΡ€Π° ΠΊΠ°Π½Π°Π»Π° (Chip Select), Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Π»ΠΈΠ½ΠΈΠΈ ΡΠΌΠ΅ΡˆΠ°ΡŽΡ‚ΡΡ, ΠΈ Slave ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, игнорируя ΠΎΠ±Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ адрСс Slave устройства?

АдрСс ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ задаСтся ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡Π΅ΠΊ Π½Π° ΠΏΠ»Π°Ρ‚Π΅, DIP-ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ рСгистры ΠΏΡ€ΠΈ стартС. Для I2C ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ сканСры ΡˆΠΈΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ адрСса автоматичСски.

ВлияСт Π»ΠΈ Π΄Π»ΠΈΠ½Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ Slave?

БСзусловно. Π§Π΅ΠΌ Π΄Π»ΠΈΠ½Π½Π΅Π΅ линия связи ΠΌΠ΅ΠΆΠ΄Ρƒ Master ΠΈ Slave, Ρ‚Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ риски Π½Π°Π²ΠΎΠ΄ΠΎΠΊ ΠΈ затухания сигнала. Для SPI Π½Π° высоких частотах Π΄Π»ΠΈΠ½Π° ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ² Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ 10-20 см Π±Π΅Π· использования Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² ΠΈΠ»ΠΈ Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΠΎΠΉ Slave Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ (No Acknowledge)?

НаиболСС частыС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹: Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ адрСс Π² ΠΊΠΎΠ΄Π΅ Master, отсутствиС ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… рСзисторов Π½Π° линиях Π΄Π°Π½Π½Ρ‹Ρ… (для I2C), ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Π½Π½Ρ‹Π΅ Π»ΠΈΠ½ΠΈΠΈ MOSI/MISO ΠΈΠ»ΠΈ отсутствиС ΠΎΠ±Ρ‰Π΅Π³ΠΎ зазСмлСния (GND) ΠΌΠ΅ΠΆΠ΄Ρƒ устройствами.