Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя

🏠 Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ВсСго 🚗

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. man diagram. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-man diagram. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° man diagram. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ «Encode Manchester!«:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ посмотрим Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ основныС прСимущСства ΠΈ нСдостатки прСобразования Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€ΡΠΊΠΈΠΉ Код:

ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ логичСских ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ 11 ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ послСднСм принятом 0, Π° комбинация 00, соотвСтствСнно, Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ 1. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ послС ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊ синхронизируСтся

НС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ΄Ρ‚ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… логичСских ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ, Ρ‚.Π΅. комбинация Ρ‚ΠΈΠΏΠ° 111 ΠΈΠ»ΠΈ 000 Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°

Π‘Π½Π°Ρ‡Π°Π»Π° пишСм тСст

Π’Π΅ΠΏΠ΅Ρ€ΡŒ сами тСсты. Π‘ΠΎΠ»Π΅Π΅ простой Π·Π°Π΄Π°Ρ‡Π΅ΠΉ являСтся ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€ΡΠΊΠΈΠΉ Код (encode), поэтому с Π½Π΅Ρ‘, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, ΠΈ Π½Π°Ρ‡Π½Ρ‘ΠΌ:

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€ΡΠΊΠΈΠΉ Код ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ:

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ рСализация процСсса дСкодирования ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°:

Π‘Π±ΠΎΡ€ΠΊΠ° ΠΈ запуск тСстов

Если Π’Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² связкС Windows + Visual Studio, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. win gtest gmock run. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-win gtest gmock run. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° win gtest gmock run. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

ΠŸΡ€ΠΈ использовании Linux + gcc g++:

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. suse tests run. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-suse tests run. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° suse tests run. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄. Бинхронизация, ΠΏΡ€ΠΈΡ‘ΠΌ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π˜Ρ‚Π°ΠΊ, для Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ прСдставляСт собой «манчСстСрскоС» ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. manchester 1. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-manchester 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° manchester 1. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

Π’ «манчСстСрском» ΠΊΠΎΠ΄Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Π° кодируСтся ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ сигнала Π² сСрСдинС Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° ΠΈΠ· состояния Β«OFFΒ» Π² состояниС Β«ONΒ», Π° ноль β€” Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ сигнала Π² сСрСдинС
Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° ΠΈΠ· состояния Β«ONΒ» Π² состояниС Β«OFFΒ».

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ состояния Β«ONΒ» ΠΈ Β«OFFΒ»?
Бостояния сигнала Β«ONΒ» ΠΈ Β«OFFΒ» β€” это логичСскиС состояния. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС Β«OFFΒ» β€” это Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ состояниС, Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ отсутствии ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° Π²ΠΎΠΎΠ±Ρ‰Π΅, Π° Β«ONΒ» β€” это Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ состояниС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΊΠ°ΠΊ-Π»ΠΈΠ±ΠΎ отличаСтся ΠΎΡ‚ Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ справа состояниС сигнала Β«ONΒ» ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ высоким ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ сигнала, Π° состояниС Β«OFFΒ» ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠ·ΠΊΠΈΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ, это Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ (просто с высоким ΠΈ Π½ΠΈΠ·ΠΊΠΈΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Π΅Π΅ ΠΈ нагляднСС). На самом Π΄Π΅Π»Π΅ состояния Β«ONΒ» ΠΈ Β«OFFΒ» ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. НапримСр, ИК-ΠΏΡƒΠ»ΡŒΡ‚Ρ‹ ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ эти состояния Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ отсутствиСм ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ² Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ частотС, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΠΎΡ‚ΠΎΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊΠΈ (Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‡Π°Ρ‰Π΅ всСго Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ являСтся высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ сигнала Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅) Π²Ρ‹Π΄Π°ΡŽΡ‚ ΠΊΠΎΠ΄, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Β«ONΒ» Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π½ΠΈΠ·ΠΊΠΈΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ, Π° Β«OFFΒ» β€” высоким ΠΈ Ρ‚.Π΄.

Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ нуля ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Π² манчСстСрском ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ одинаковая, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π»ΠΈΠ½Π° сообщСния Π½Π΅ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, сколько Π² сообщСнии Π½ΡƒΠ»Π΅ΠΉ ΠΈΠ»ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†, Π° зависит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ количСства Π±ΠΈΡ‚.

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. manchester 2. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-manchester 2. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° manchester 2. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ свойством «манчСстСрского» кодирования являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠ±Π° состояния сигнала: Β«ONΒ» ΠΈ Β«OFFΒ» (Π΅Ρ‰Ρ‘ Ρ€Π°Π· смотрим Π½Π° рисунок Π²Π²Π΅Ρ€Ρ…Ρƒ). Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π²ΠΎ врСмя ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° сигнал Π΄ΠΎΠ»ΠΆΠ΅Π½ хотя Π±Ρ‹ Ρ€Π°Π· ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ своё состояниС. Π’ΠΎ Π΅ΡΡ‚ΡŒ «манчСстСрский» ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ, Ссли сосСдниС Π±ΠΈΡ‚Ρ‹ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅, ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ, Ссли сосСдниС Π±ΠΈΡ‚Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ, Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (это продСмонстрировано Π½Π° рисункС слСва).

ОписанноС свойство позволяСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊ с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΡ‘ΠΌΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ β€” ΠΌΠΎΠΆΠ΅Ρ‚ Π»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄ Π±Ρ‹Ρ‚ΡŒ «манчСстСрским», Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ† сообщСния ΠΈΠ»ΠΈ Β«ΠΏΠΎΡ‚Π΅Ρ€ΡŽΒ» сигнала ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°.

Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Ссли ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ частота ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ скачком ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π² 1,5 Ρ€Π°Π·Π°, Ρ‚ΠΎ отсутствиС измСнСния состояния сигнала Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ 3-Ρ… ΠΏΠΎΠ»ΡƒΠ±ΠΈΡ‚ ΠΌΠΎΠΆΠ½ΠΎ смСло Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΊΠΎΠ½Π΅Ρ† сообщСния ΠΈΠ»ΠΈ Β«ΠΏΠΎΡ‚Π΅Ρ€ΡŽΒ» сигнала ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° (Ссли ΠΌΡ‹ Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π½Π°Π΅ΠΌ Π΄Π»ΠΈΠ½Ρƒ сообщСния). Или, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ исслСдовании ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ нСизвСстного ΠΊΠΎΠ΄Π°, Ссли ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ΄Π΅ присутствуСт Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ состояниями Β«ONΒ» ΠΈ Β«OFFΒ», Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ исслСдуСмый ΠΊΠΎΠ΄ Π½Π΅ «манчСстСрский».

НадСюсь, с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ «манчСстСрский» ΠΊΠΎΠ΄, всё Π±ΠΎΠ»Π΅Π΅ ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΅ понятно, поэтому ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ вопросу β€” ΠΊΠ°ΠΊ этот ΠΊΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Ну, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ измСнСнию состояния сигнала, воспринимаСмого ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊΠΎΠΌ, с Β«OFFΒ» Π½Π° Β«ONΒ». Однако Ρ‚ΡƒΡ‚ Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ нюанс. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Ρ‚ΠΎΠΆΠ΅ начинаСтся с состояния Β«OFFΒ», Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ сигнала ΠΈΠ· Β«OFFΒ» Π² Β«ONΒ» ΠΌΡ‹ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ смоТСм Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ это β€” сСрСдина ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΈΠ»ΠΈ Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ нуля. ЕдинствСнноС, Ρ‡Ρ‚ΠΎ Ρ‚ΡƒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ β€” это Π·Π°Ρ€Π°Π½Π΅Π΅ ΡƒΡΠ»ΠΎΠ²ΠΈΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊΠΎΠΉ Π±ΠΈΡ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ввСсти ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ старт-Π±ΠΈΡ‚, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ всСгда строго ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ).

Всё, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ с ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° посылка начинаСтся, Π·Π½Π°Π΅ΠΌ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² состояний Β«ONΒ» ΠΈ Β«OFFΒ», наш ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ, ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΈ ΠΌΡ‹
Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π΅ΠΌ сколько Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π±ΠΈΡ‚, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ восстановлСния исходной, Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ «манчСстСрским» ΠΊΠΎΠ΄ΠΎΠΌ посылки:

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΉ. ΠœΡ‹ Π·Π½Π°Π΅ΠΌ с ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° посылка начинаСтся, Π·Π½Π°Π΅ΠΌ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² Β«ONΒ» ΠΈ Β«OFFΒ», наш ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Π½ΠΎ ΠΌΡ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅ΠΌ ΠΎ Π΄Π»ΠΈΠ½Π΅ сообщСния. Π’ этом случаС ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π΅ΠΌ свойством манчСстСрского ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ сигнал Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ постоянным Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ 3-Ρ… ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»ΡƒΠ±ΠΈΡ‚. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° сигнал Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ 3-Ρ… ΠΏΠΎΠ»ΡƒΠ±ΠΈΡ‚ остаётся Π² состоянии Β«OFFΒ» ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ†ΠΎΠΌ сообщСния. Алгоритм восстановлСния исходного ΠΊΠΎΠ΄Π° Π² этом случаС ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ. ΠœΡ‹ Π·Π½Π°Π΅ΠΌ с ΠΊΠ°ΠΊΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° посылка начинаСтся, Π½ΠΎ Π½Π΅ Π·Π½Π°Π΅ΠΌ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ², Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сигнал находится Π² состоянии Β«ONΒ» ΠΈ Β«OFFΒ». Π§Ρ‚ΠΎ Π½Π°ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ Π²
этом случаС? Если Π²Ρ‹ ΠΏΠΎ счастливой случайности Π·Π½Π°Π΅Ρ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°, Π½ΠΎ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ, β€” Π·Π½Π°Ρ‡ΠΈΡ‚ Π²Π°ΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ извСстно, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ (Ρ‡Π΅Ρ€Π΅Π· Ρ†Π΅Π»Ρ‹ΠΉ Π±ΠΈΡ‚ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ)
ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 2 ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ Π²Ρ‹ с Π»Ρ‘Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ Π·Π°ΡΠ΅Ρ‡ΡŒ ΠΈΠ»ΠΈ, Π½Π°ΡƒΡ‡Π½ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ°ΡΡΡŒ, β€” ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊ с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ.
(Ага, Π²ΠΎΡ‚ ΠΌΡ‹ ΠΈ раскусили Π·Π°Ρ‡Π΅ΠΌ Ρƒ RC-5 Ρ†Π΅Π»Ρ‹Ρ… 2 стартовых Π±ΠΈΡ‚Π°. ΠšΡΡ‚Π°Ρ‚ΠΈ, Π² сСтях ethernet, Π³Π΄Π΅ Ρ‚ΠΎΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ «манчСстСрскоС» ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, для Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ синхронизации ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ цСлая 56-битная ΠΏΡ€Π΅Π°ΠΌΠ±ΡƒΠ»Π°).
Π”Π°Π»Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΈΠ»ΠΈ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ².

Ну ΠΈ, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. ΠœΡ‹ Π·Π½Π°Π΅ΠΌ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° Π±ΠΈΡ‚Π° посылки, Π½ΠΎ наш Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ β€” ΠΏΠΎΠ»Π½ΠΎΠ΅ Π³ΠΎΠ²Π½ΠΎ, хотя ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ (ΠΈΠ»ΠΈ, говоря Π½Π°ΡƒΡ‡Π½Ρ‹ΠΌΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°ΠΌΠΈ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π·Π° врСмя, Ρ€Π°Π²Π½ΠΎΠ΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎΠ»ΡƒΠ±ΠΈΡ‚Π°, частота Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒΡΡ Π² 1,5 Ρ€Π°Π·Π° ΠΈ Π±ΠΎΠ»Π΅Π΅). Π’ΡƒΡ‚-Ρ‚ΠΎ ΠΊΠ°ΠΊ Π±Ρ‹Ρ‚ΡŒ?

Π”Π° просто Π½Π°Π΄ΠΎ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π½ΠΎΠ²ΠΎΠΌΡƒ Ρ„Ρ€ΠΎΠ½Ρ‚Ρƒ Π·Π°Π½ΠΎΠ²ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ значСния Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎΠ»ΡƒΠ±ΠΈΡ‚Π° ΠΈ Ρ†Π΅Π»ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π½ΡƒΠΆΠ½ΠΎ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊ с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ Π½Π΅ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² самом Π½Π°Ρ‡Π°Π»Π΅, Π° ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π½ΠΎΠ²ΠΎΠΌΡƒ Ρ„Ρ€ΠΎΠ½Ρ‚Ρƒ (ΠΏΠΎΠ΄ Ρ„Ρ€ΠΎΠ½Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ состояниями Β«ONΒ»/Β»OFFΒ»), Π±Π»Π°Π³ΠΎ ΠΏΡ€ΠΈ манчСстСрском ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Ρƒ нас Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Ρ€ΠΎΠ½Ρ‚ присутствуСт Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌ Π±ΠΈΡ‚Π΅.

ΠšΠΎΡ€ΠΎΡ‡Π΅ говоря, Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ»Π³ΠΎ, Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ Π³Π»Π°Π²Π½ΠΎΠ΅ прСимущСство, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ «манчСстСрский» ΠΊΠΎΠ΄ всСм Ρ‚Π°ΠΊ полюбился: ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° сущСствуСт ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ состояния Β«ONΒ»/Β»OFFΒ», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΈ ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊ.

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. manchester 3. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-manchester 3. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° manchester 3. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

ΠšΡ€ΠΎΠΌΠ΅ описанного Π²Ρ‹ΡˆΠ΅, сущСствуСт Π΅Ρ‰Ρ‘, Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅, «разностноС» ΠΈΠ»ΠΈ Β«Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅Β» «манчСстСрскоС» ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ нуля Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» начинаСтся с измСнСния состояния сигнала Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ΅, Π° ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ β€” состояниС сигнала Π² Π½Π°Ρ‡Π°Π»Π΅ Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Π½Π΅ измСняСтся. Π’ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌ всё Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ «манчСстСрском» ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ β€” Π² сСрСдинС Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° состояниС сигнала ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ мСняСтся Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΠ΅ (смотрим рисунок слСва).

Π‘Π°ΠΌΠΎΠ΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ИК-ΠΏΡƒΠ»ΡŒΡ‚Ρ‹ ΠΈ ΠΏΡ€ΠΈΡ‘ΠΌΠ½ΠΈΠΊΠΈ сигналов дистанционного управлСния

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½Π°Ρ ΠΏΠ°ΠΌΡΡ‚ΡŒ

Π”Π΅ΡˆΠΈΡ„Ρ€Π°Ρ†ΠΈΡ (Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅) этого ΠΊΠΎΠ΄Π° Π³ΠΎΡ€Π°Π·Π΄ΠΎ слоТнСС кодирования (рис. 11.20). Она Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ выдСлСния «ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ…», ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Ρ€ΠΎΠ½Ρ‚ΠΎΠ² Π² сСрСдинС Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² (ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Π½Π° рисункС ΠΊΡ€ΡƒΠΆΠΊΠ°ΠΌΠΈ) ΠΈ отсСчСниС «Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ…» Ρ„Ρ€ΠΎΠ½Ρ‚ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°ΠΌΠΈ (ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Π½Π° рисункС крСстиками). Для этого Π½ΡƒΠΆΠ½ΠΎ послС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ (ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ) Ρ„Ρ€ΠΎΠ½Ρ‚Π° Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° 0,75Π’ Π½Π΅ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° приходящиС Ρ„Ρ€ΠΎΠ½Ρ‚Ρ‹ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ сигнала, Π° Π·Π°Ρ‚Π΅ΠΌ снова ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ любой приходящий Ρ„Ρ€ΠΎΠ½Ρ‚, снова Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» 0,75Π’ ΠΈ Ρ‚.Π΄. ΠŸΡ€ΠΈ ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π΅ «ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ…», ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Ρ€ΠΎΠ½Ρ‚ΠΎΠ² (Π² сСрСдинС Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ²) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ синхросигналы, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ фиксируСтся (Π² рСгистрС) информация ΠΈΠ· сигнала Π² ΠΊΠΎΠ΄Π΅ ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€-II.

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. 06 20. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-06 20. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 06 20. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

Π‘Ρ…Π΅ΠΌΠ° Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚Π° (рис. 11.21) ΠΎΡ‡Π΅Π½ΡŒ проста, ΠΎΠ½Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠŸΠ—Π£ Ρ‚ΠΈΠΏΠ° Π Π•3, рСгистр ИР27 ΠΈ Ρ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ с частотой, Π² 8 Ρ€Π°Π· ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰Π΅ΠΉ частоту ΠΏΡ€ΠΈΡ…ΠΎΠ΄Π° Π±ΠΈΡ‚ΠΎΠ² Π² ΠΊΠΎΠ΄Π΅ ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€-II. НапримСр, ΠΏΡ€ΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΠΈΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° 1 мкс (ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ 1 ΠœΠ±ΠΈΡ‚/с) частота Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎΠΉ 8 ΠœΠ“Ρ†. Π‘Ρ…Π΅ΠΌΠ° практичСски Π½Π΅ отличаСтся ΠΎΡ‚ схСмы, рассмотрСнной Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, хотя выполняСмая Сю функция Π³ΠΎΡ€Π°Π·Π΄ΠΎ слоТнСС.

Помимо синхросигнала (Π΅Π³ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ RxC ΠΈΠ»ΠΈ Π‘), ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ Π²Ρ‹Π΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ сигнал ΠΎΠ³ΠΈΠ±Π°ΡŽΡ‰Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° (Π ), Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ сигнал, Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€-II ΠΈ пассивный ΠΏΡ€ΠΈ отсутствии ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (см. рис. 11.20). Π‘ΠΈΠ³Π½Π°Π» Π‘ (RxC) стробируСт запись сигнала Π΄Π°Π½Π½Ρ‹Ρ… RxD, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ собой просто Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ сигнал Π² ΠΊΠΎΠ΄Π΅ ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€-II, ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ Ρ‡Π΅Ρ€Π΅Π· рСгистр.

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. 06 21. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-06 21. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 06 21. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

ΠœΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ составлСниС ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для дСкодирования ΠΊΠΎΠ΄Π° ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€-II, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это заняло Π±Ρ‹ слишком ΠΌΠ½ΠΎΠ³ΠΎ мСста. Достаточно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π». 11.10, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с коммСнтариями, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΉ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ Π½Π° Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ сигнал, ΠΈ Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠ² (Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°), ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ Π² Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ адрСса, ΠΈ остановки для оТидания ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚ΠΎΠ² Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ сигнала.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄. Π§Π°ΡΡ‚ΡŒ 1. ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. av 300 1. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-av 300 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° av 300 1. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. manchesterskij kod. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-manchesterskij kod. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° manchesterskij kod. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

Из названия ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈ ΠΎΠ±Π»ΠΎΠΆΠΊΠΈ Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΎ Ρ‡Π΅ΠΌ сСгодня ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Π±Π΅Π· прСдисловий сразу с Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ. Π˜Ρ‚Π°ΠΊ, Π±ΡƒΠ΄Π΅ΠΌ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ манчСстСрского ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° STM32. РазумССтся, Π²Π½Π°Ρ‡Π°Π»Π΅ разбСрСмся, Ρ‡Ρ‚ΠΎ ΠΈΠ· сСбя прСдставляСт Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ кодирования Π² Ρ†Π΅Π»ΠΎΠΌ. Π‘Ρ€Π°Π·Ρƒ ΠΌΠΎΠ³Ρƒ Π°Π½ΠΎΠ½ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ, которая Π±ΡƒΠ΄Π΅Ρ‚ посвящСна ΡƒΠΆΠ΅ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ‚ΠΎΠ³ΠΎ сигнала, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ сгСнСрируСм сСгодня, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ слСдитС Π·Π° обновлСниями, добавляйтС Π² Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° всячСскиС наши Π³Ρ€ΡƒΠΏΠΏΡ‹ )

ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄.

ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€ΡΠΊΠΎΠ΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (ΠΊΠΎΠ΄ ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€-II) прСдставляСт ΠΈΠ· сСбя способ кодирования исходного Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌ ΠΆΠ΅ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ сигналом. Или Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ – Π½Π° Π²Ρ…ΠΎΠ΄Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΈ Π½ΡƒΠ»ΠΈ, Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ – Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΈ Π½ΡƒΠ»ΠΈ, Π½ΠΎ порядок ΠΈΡ… слСдования, СстСствСнно, различаСтся.

БущСствуСт Π΄Π²Π° основных Ρ‚ΠΈΠΏΠ° кодирования:

ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· этих Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ², Π½ΠΎ это Π½Π΅ Ρ‚Π°ΠΊ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚ΠΈΠΏ кодирования ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ просто Π±Π°Π½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.

К особСнностям манчСстСрского ΠΊΠΎΠ΄Π° я Π±Ρ‹ отнСс, Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ:

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΈΠ½ΡƒΡ‚ΠΊΠ° истории… Код ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» своС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π² Ρ‡Π΅ΡΡ‚ΡŒ унивСрситСта ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€Π° ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€ΡΠΊΠΈΠΉ ΠœΠ°Ρ€ΠΊ I, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ Π±Ρ‹Π» Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ использован. Π’ΠΎΡ‚ этот красавСц:

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. manchester mark. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-manchester mark. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° manchester mark. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

Наступило врСмя для Π΄Π²Π°ΠΆΠ΄Ρ‹ ΠΎΠ±Π΅Ρ‰Π°Π½Π½ΠΎΠ³ΠΎ наглядного ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ Π΄Π²Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Π±Π°ΠΉΡ‚Π°, ΠΏΡƒΡΡ‚ΡŒ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΡ…. Напоминаю, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ манчСстСрский ΠΊΠΎΠ΄ ΠΏΠΎ IEEE 802.3. И Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ – Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… Π±Π°ΠΉΡ‚Π° Π±ΡƒΠ΄ΡƒΡ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚ младшСго Π±ΠΈΡ‚Π° ΠΊ ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΌΡƒ. Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, смотрим:

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. manchester code 1. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-manchester code 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° manchester code 1. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ β€œ0” Π½Π° Π²Ρ…ΠΎΠ΄Π΅ соотвСтствуСт ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ высокого уровня ΠΊ Π½ΠΈΠ·ΠΊΠΎΠΌΡƒ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ (ΠΎΡ‚ β€œ1” ΠΊ β€œ0”), для β€œ1” – Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ, Π½ΠΎ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΎΡ‚ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ ΠΊ высокому.

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ манчСстСрский ΠΊΠΎΠ΄ довольно просто. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π°ΠΊΡ‚ΠΎΠ²Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€. Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ я Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π» ΠΏΠΎ Ρ‚ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ этот Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ· сСбя ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΎΡ‚ β€œ0” ΠΊ β€œ1” ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ. ΠŸΡ€ΠΈ этом ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° (ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ измСнСния значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ) Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π² Π΄Π²Π° Ρ€Π°Π·Π° мСньшС Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° Π² исходной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ кодирования. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ наглядности:

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. generator manchesterskogo koda. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-generator manchesterskogo koda. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° generator manchesterskogo koda. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±ΠΈΡ‚: Π½Π° Π²Ρ…ΠΎΠ΄Π΅ – β€œ1”, Π½Π° Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ – β€œ1”, ΠΊΠΎΠ΄ ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€-II – β€œ1” ^ β€œ1” = β€œ0”.

Аналогично, для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°: Π½Π° Π²Ρ…ΠΎΠ΄Π΅ – β€œ1”, Π½Π° Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠΌ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ – β€œ0”, ΠΊΠΎΠ΄ ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€-II – β€œ1” ^ β€œ0” = β€œ1”. ИмСнно Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ.

Π“Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ манчСстСрского ΠΊΠΎΠ΄Π° Π½Π° STM32.

По Π½ΠΎΠ²ΠΎΠΉ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ я ΠΏΠΎΠΌΠ΅Ρ‰Ρƒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ссылку Π½Π° ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π½ΠΎ ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎΠ΄ спойлСрами. А ΠΏΠΎΠΊΠ° настраиваСм Π² STM32CubeMx всС, Ρ‡Ρ‚ΠΎ понадобится. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ основой для всСго, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡ€Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π°, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ манчСстСрский ΠΊΠΎΠ΄. Π£ мСня Π²Ρ‹Π±ΠΎΡ€ ΠΏΠ°Π» Π½Π° TIM2 ΠΈ PA3, само собой, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π² точности Ρ‚Π°ΠΊΠΆΠ΅:

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. manchester code stm32cubemx. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-manchester code stm32cubemx. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° manchester code stm32cubemx. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

НС Π·Π°Π±Ρ‹Π²Π°Π΅ΠΌ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ интСрфСйс SWD для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ внСшнСС Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π”Π°, кстати, Ρƒ мСня Π±ΡƒΠ΄Π΅Ρ‚ STM32F103C8 с внСшним Ρ€Π΅Π·ΠΎΠ½Π°Ρ‚ΠΎΡ€ΠΎΠΌ Π½Π° 8 ΠœΠ“Ρ†. Но, ΠΊΠ°ΠΊ ΠΈ всСгда, ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° любом Π΄Ρ€ΡƒΠ³ΠΎΠΌ STM32 Π±Π΅Π· ΠΌΠ°Π»Π΅ΠΉΡˆΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Настройки тактирования Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅:

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. stm32cubemx rcc 1. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-stm32cubemx rcc 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° stm32cubemx rcc 1. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

Π’ΠΎ Π΅ΡΡ‚ΡŒ тактовая частота Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ² составляСт 72 ΠœΠ“Ρ†. Настроим TIM2 Π½Π° ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 10 мкс. Для этого Π±Π΅Ρ€Π΅ΠΌ ΠΏΡ€Π΅Π΄Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ 72 (Π² CubeMx ставим 71), ΠΈ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄, Ρ€Π°Π²Π½Ρ‹ΠΉ 10:

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. timer settings. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-timer settings. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° timer settings. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ частоту Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Ρ€Π°Π²Π½ΠΎΠΉ:

Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ β€œΡ‚ΠΈΠΊβ€ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° – 1 мкс. Π‘ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ 10 ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹Π΅ 10 мкс. ИспользованиС ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° для Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π½Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ, эта Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° устанавливаСтся Π² ΠΊΠΎΠ΄Π΅ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ. Об этом Ρ‡ΡƒΡ‚ΡŒ ниТС…

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ для Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠΎΠ΄. Π”Π°Π»Π΅Π΅ CubeMx Π½Π°ΠΌ Π½Π΅ понадобится. ДобавляСм Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ„Π°ΠΉΠ»Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ΄ΠΎΠΌ ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€-II:

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. project. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-project. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° project. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

НачнСм с опрСдСлСния констант Π² manchester_code.h – Π·Π°Π΄Π°Π΅ΠΌ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΡ€Ρ‚ ΠΈ ΠΊΠ°ΠΊ Ρ€Π°Π·-Ρ‚Π°ΠΊΠΈ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° Π² мкс:

Π’Π°ΠΊΠΆΠ΅ Ρ‚ΡƒΡ‚ присутствуСт Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ – MANCH_BIT_TIME_US – это Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° (ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ кодирования), Ρ‚Π°ΠΊΠΆΠ΅ Π² микросСкундах. ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 10 мкс, Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΠΈΡ‚Π° – 100 мкс, поэтому рассчитываСм сразу, сколько Ρ€Π°Π· Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ Π΄ΠΎ достиТСния этого значСния:

Π”Π°Π»Π΅Π΅ ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ данных… Как ΠΌΡ‹ ΡƒΠΆΠ΅ выяснили, ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ сам ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹ΠΌΠΈ Π±ΠΈΡ‚Π°ΠΌΠΈ, с этим всС Π³Π»Π°Π΄ΠΊΠΎ. Но ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ, Π³Π΄Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ β€œΠ½Π°Ρ‡Π°Π»ΠΎβ€ Π΄Π°Π½Π½Ρ‹Ρ…:

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. code synch. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-code synch. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° code synch. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ настроился Π½Π° Π°Π½Π°Π»ΠΈΠ· Π½ΡƒΠΆΠ½Ρ‹Ρ… Ρ„Ρ€ΠΎΠ½Ρ‚ΠΎΠ² (Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΡ€ΠΎ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ это ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ сдСлано 👍), Π½ΠΎ Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ мСстС Π±Π°ΠΉΡ‚Π°. А ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ€ΠΎΠ²Π½ΠΎ Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ отправляСм. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊ исходным Π΄Π°Π½Π½Ρ‹ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ 16 Π±ΠΈΡ‚ со ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ синхронизации. Π’ качСствС этого ΠΊΠΎΠ΄Π° возьмСм, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0xAA55:

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ограничимся Ρ‚Π΅ΠΌ Ρ„Π°ΠΊΡ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ эти 2 Π±Π°ΠΉΡ‚Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, соотвСтствСнно Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π² ΠΈΡ….

Для структуризации Π΄Π°Π½Π½Ρ‹Ρ… добавляСм:

ΠŸΡ€ΠΎΠ±Π΅Π³Π°Π΅ΠΌ ΠΏΠΎ полям:

По ΠΏΠΎΠ²ΠΎΠ΄Ρƒ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива – ΠΎΠ½ задаСтся всС здСсь ΠΆΠ΅ Π² manchester_code.h, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ этого Ρ„Π°ΠΉΠ»Π° Π΄Π°ΠΆΠ΅ Π½Π΅ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠ»ΠΈ:

ПойдСм поэтапно, manchester_code.c – объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

БСйчас ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ряд Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ кодирования. Для управлСния Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠΌ добавляСм:

Π”Π°Π»Π΅Π΅ ΠΏΠΎ списку ΠΈ ΠΏΠΎ ваТности – функция, которая запускаСт процСсс манчСстСрского кодирования:

Π’ качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² – ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€ (ΠΊΠΎΠ»-Π²ΠΎ Π±Π°ΠΉΡ‚). БоотвСтствСнно, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π±ΠΎΡ€ uint8_t Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ±ΠΈΡ‚Π½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π° PA3. На всякий случай напоминаю, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΡ‚ младшСго Π±ΠΈΡ‚Π° ΠΊ ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΌΡƒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ссли Π½Π° Π²Ρ…ΠΎΠ΄Π΅ Π±Π°ΠΉΡ‚ 0x22, Ρ‡Ρ‚ΠΎ Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ прСдставляСт ΠΈΠ· сСбя 0b00100010, Ρ‚ΠΎ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ β€œ0”, β€œ1”, β€œ0”, β€œ0”, β€œ0”, β€œ1”, β€œ0”, β€œ0”.

Π˜Ρ‚Π°ΠΊ, Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ обнуляСм счСтчики Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π±Π°ΠΉΡ‚Π° ΠΈ Π±ΠΈΡ‚Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ провСряСм Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ количСства ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π±Π°ΠΉΡ‚. Π’ случаС ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΡ сохраняСм Π² bytesNum максимально допустимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π”Π°Π»Π΅Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² структуру, Π½ΠΎ начиная со 2-Π³ΠΎ Π±Π°ΠΉΡ‚Π° (индСкс = MANCH_SYNC_BYTES_NUM):

Π”Π΅Π»Π°Π΅ΠΌ Ρ‚Π°ΠΊ ΠΏΠΎ Ρ‚ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π±Π°ΠΉΡ‚Π° Π±ΡƒΠ΄ΡƒΡ‚ синхрополСм, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π² массив encodeData.data[].

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΡ‚Π° Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ… структуры MANCH_Data:

Π’ manchData->data[] Ρƒ нас Π΄Π°Π½Π½Ρ‹Π΅, Π² manchData->byteIdx – Π½ΠΎΠΌΠ΅Ρ€ Π±Π°ΠΉΡ‚Π°, Π² manchData->bitIdx – Π½ΠΎΠΌΠ΅Ρ€ Π±ΠΈΡ‚Π°. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого Π±ΠΈΡ‚Π° Π² этом Π±Π°ΠΉΡ‚Π΅ Π² этих Π΄Π°Π½Π½Ρ‹Ρ….

ВсС, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΡŽ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ собСрСм Π²ΠΎΠ΅Π΄ΠΈΠ½ΠΎ всС, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ обсуТдСно:

ВсС дСйствия осущСствляСм ΠΏΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ„Π»Π°Π³Π΅:

РазбСрСмся, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π² ΠΈΡ‚ΠΎΠ³Π΅ с Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°ΠΌΠΈ ΠΏΡ€ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ HAL_TIM_PeriodElapsedCallback() ΠΌΡ‹ ΠΏΠΎΠΏΠ°Π΄Π°Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 10 мкс. ΠŸΡ€ΠΈ этом ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ кодирования Ρƒ нас Ρ€Π°Π²Π΅Π½ 100 мкс. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· заходя Π² callback ΠΌΡ‹ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ счСтчик encodeTimerCnt, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ‡Π΅Ρ€Π΅Π· 100 мкс Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ рассчитанному Ρ€Π°Π½Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ MANCH_ENCODE_TIMER_MAX. Π”Π°Π»Π΅Π΅ ΠΎΡ‚ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ трСбуСтся, поэтому обнуляСм счСтчик Π² этой части Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΡˆΠ»ΠΎ 100 мкс, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π±ΠΈΡ‚Ρƒ, инкрСмСнтируя encodeData.bitIdx. ΠžΡΡ‚Π°Π²ΡˆΠ΅Π΅ΡΡ просто – провСряСм, Π½Π΅ Π²Ρ‹ΡˆΠ΅Π» Π»ΠΈ индСкс Π±ΠΈΡ‚Π° Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π±Π°ΠΉΡ‚Π°, ΠΈ Π² случаС Π²Ρ‹Ρ…ΠΎΠ΄Π°, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π±Π°ΠΉΡ‚. А Ссли счСтчик Π±Π°ΠΉΡ‚ Ρ€Π°Π²Π΅Π½ ΠΊΠΎΠ»-Π²Ρƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π±Π°ΠΉΡ‚ (encodeData.bytesNum), Ρ‚ΠΎ всС, Ρ„ΠΈΠ½ΠΈΡˆ, процСсс Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.

ΠžΡΡ‚Π°Π»Π°ΡΡŒ малСнькая, Π½ΠΎ самая ваТная Ρ‡Π°ΡΡ‚ΡŒ, которая осущСствляСт Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ манчСстСрского ΠΊΠΎΠ΄Π°:

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, ΠΌΡ‹ обсуТдали, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Π΄Π²ΠΎΠ΅ мСньшС Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΠΈΡ‚Π°? Π’Π°ΠΊ Π²ΠΎΡ‚ поэтому здСсь ΠΌΡ‹ провСряСм счСтчик Π½Π° равСнство Π΄Π²ΡƒΠΌ значСниям, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ этот кусок ΠΊΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒΡΡ Π΄Π²Π°ΠΆΠ΄Ρ‹ Π·Π° врСмя, Ρ€Π°Π²Π½ΠΎΠ΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π±ΠΈΡ‚Π°. И Π² этом кускС ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ исходного Π±ΠΈΡ‚Π° ΠΈ рассчитываСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π΄Π°Ρ‚ΡŒ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄ всС ΠΏΠΎ Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅:

И Π² Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ мСняСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ virtTact с 0 Π½Π° 1, Π»ΠΈΠ±ΠΎ с 1 Π½Π° 0.

Π”Π΅Π»ΠΎ Π·Π° ΠΌΠ°Π»Ρ‹ΠΌ – запускаСм процСсс Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€-II ΠΊΠΎΠ΄Π° ΠΈΠ· main() ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. Для этого запускаСм Ρ‚Π°ΠΉΠΌΠ΅Ρ€ HAL_TIM_Base_Start_IT(&htim2) ΠΈ Π² while(1) Π±ΡƒΠ΄Π΅ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 500 мс:

Π’Π°ΠΊΠΆΠ΅ здСсь Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ txData – ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ массив тСстовых Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΉ здСсь ΠΆΠ΅, Π² main.c:

ПослСдний Π±Π°ΠΉΡ‚ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π² Ρ†ΠΈΠΊΠ»Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π½Π΅ тСряСм посылки. ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌ, ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π΅ΠΌ, запускаСм, встаСм осциллографом Π½Π° PA3:

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. primer manchesterskogo koda. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-primer manchesterskogo koda. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° primer manchesterskogo koda. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ мыслСнно нСсколько Π±Π°ΠΉΡ‚ наблюдаСмого сигнала ΠΈΠ· манчСстСрского ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΠ΅ соотвСтствиС исходным Π΄Π°Π½Π½Ρ‹ΠΌ (плюс синхрополС), Ρ‡Ρ‚ΠΎ явно сигнализируСт ΠΎΠ± успСхС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ кодирования.

Засим ΠΎΡ‚ΠΊΠ»Π°Π½ΠΈΠ²Π°ΡŽΡΡŒ, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ этот ΠΆΠ΅ самый сигнал ΠΌΡ‹ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΡƒΠ΅ΠΌ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ этим ΠΆΠ΅ самым ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄. Π§Π°ΡΡ‚ΡŒ 2. Π”Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. av 300 1. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-av 300 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° av 300 1. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. dekodirovanie manchesterskogo koda 1. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-dekodirovanie manchesterskogo koda 1. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° dekodirovanie manchesterskogo koda 1. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

Π—Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π² Π΄Π°Π½Π½Ρ‹Π΅ манчСстСрским ΠΊΠΎΠ΄ΠΎΠΌ слСдуСм ΠΏΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠΌΡƒ ΠΏΡƒΡ‚ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π΅Π΄Π΅Ρ‚ нас ΠΊ процСссу дСкодирования ) ΠŸΠΎΡΡ‚Π°Π²ΠΈΠΌ Π·Π°Π΄Π°Ρ‡Ρƒ Π²Π·ΡΡ‚ΡŒ нСпосрСдствСнно Ρ‚Π΅ самыС Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ сгСнСрированы Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅, ΠΏΠΎΠ΄Π°Ρ‚ΡŒ ΠΈΡ… Π½Π° Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ ΠΈ ΡΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ с исходной ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ.

Π—Π° основу возьмСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠ· ΡƒΠΆΠ΅ упомянутой ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для дСкодирования манчСстСрского ΠΊΠΎΠ΄Π°. Π‘ΠΈΠ³Π½Π°Π» гСнСрируСтся Π½Π° PA3, возьмСм Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΈΠ½, ΠΈ Π½Π° Π½Π΅Π³ΠΎ ΠΏΠΎΠ΄Π°Π΄ΠΈΠΌ этот сигнал физичСски Π·Π°ΠΌΠΊΠ½ΡƒΠ² Π½ΠΎΠΆΠΊΠΈ. ΠŸΡƒΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ PA4, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹ Π½Π΅Ρ‚:

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. dekodirovanie manchester ii koda. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-dekodirovanie manchester ii koda. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° dekodirovanie manchester ii koda. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

Π’Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ настраиваСм Π½Π° Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΡŽ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ уровня сигнала, ΠΏΠΎ ΠΎΠ±ΠΎΠΈΠΌ Ρ„Ρ€ΠΎΠ½Ρ‚Π°ΠΌ сигнала, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π½ΠΈΠΉ ΠΈ Π·Π°Π΄Π½ΠΈΠΉ Ρ„Ρ€ΠΎΠ½Ρ‚Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹:

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. gpio settings. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-gpio settings. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° gpio settings. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

Помимо этого Π² CubeMx Π½ΠΈΡ‡Π΅Π³ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π΅ потрСбуСтся, Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅, насколько я помню – TIM2.

Π”Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π°.

Для Π½Π°Ρ‡Π°Π»Π° пройдСмся ΠΏΠΎ физичСской сути процСсса дСкодирования. Π― Π΅Π³ΠΎ Ρ€Π°Π·Π±ΠΈΠ» Π½Π° нСсколько этапов, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ наглядности ΠΈ прозрачности Π² рассмотрСнии ΠΏΡ€ΠΎΡ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΡ… явлСний. Π˜Ρ‚Π°ΠΊ, список Ρ‚Π°ΠΊΠΎΠΉ:

Бинхронизация ΠΏΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Π°ΠΌ.

Π‘Π΅Ρ€Π΅ΠΌ рассмотрСнный Π½Π°ΠΌΠΈ манчСстСрский ΠΊΠΎΠ΄:

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. manchesterskoe kodirovanie. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-manchesterskoe kodirovanie. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° manchesterskoe kodirovanie. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

НиТний сигнал ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½Π° Π²Ρ…ΠΎΠ΄Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. И, Π² Ρ†Π΅Π»ΠΎΠΌ, всС просто – Ссли ΠΏΠ΅Ρ€Π΅Π΄Π½ΠΈΠΉ Ρ„Ρ€ΠΎΠ½Ρ‚ (ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня ΠΊ высокому, 0 => 1), Ρ‚ΠΎ это Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π±ΠΈΡ‚ β€œ1”. Если Π·Π°Π΄Π½ΠΈΠΉ Ρ„Ρ€ΠΎΠ½Ρ‚ (ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ высокого уровня ΠΊ Π½ΠΈΠ·ΠΊΠΎΠΌΡƒ, 1 => 0), Ρ‚ΠΎ это Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π±ΠΈΡ‚ β€œ0”.

Но ΠΈΠ· Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ€Π°Ρ‚ΡŒ Π½Π΅ всС Ρ„Ρ€ΠΎΠ½Ρ‚Ρ‹, Π° Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅, ΠΎΠ½ΠΈ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ Π·Π΅Π»Π΅Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ. Напротив, измСнСния сигнала с красными ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ.

НС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° – зная ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ кодирования ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ β€œΠ½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅β€ ΠΏΠ΅Ρ€Π΅ΠΏΠ°Π΄Ρ‹, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ врСмя ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΌΠΈ ΠΏΠ΅ΠΏΠ΅ΠΏΠ°Π΄Π°ΠΌΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ соотвСтствуСт этому ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Ρƒ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅ всС нСидСально, Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ»Π°Π²Π°Ρ‚ΡŒ, поэтому Π·Π°Π΄Π°Π΄ΠΈΠΌ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ Π² 75% ΠΎΡ‚ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° кодирования. Если врСмя ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„Ρ€ΠΎΠ½Ρ‚Π°ΠΌΠΈ большС, Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ, Ссли врСмя мСньшС, пропускаСм Ρ„Ρ€ΠΎΠ½Ρ‚.

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ. Π’ΠΎ Π΅ΡΡ‚ΡŒ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Π»ΠΎΠ³ΠΈΠΊΡƒ с Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ ΠΈ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°ΠΌΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°Ρ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΉ Ρ„Ρ€ΠΎΠ½Ρ‚ (с Π·Π΅Π»Π΅Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅Π³ΠΎ ΡƒΠΆΠ΅ вСсти отсчСт. Для этой Ρ†Π΅Π»ΠΈ послуТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ мСханизм…

ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅ ΠΈΠ· Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π²Π° ΠΏΠ΅Ρ€Π΅ΠΏΠ°Π΄Π° Ρ€Π°Π·Π½ΠΎΠ³ΠΎ(!) направлСния, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ кодирования, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΌΠΈ. И Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΏΠ΅Ρ€Π΅Π΄Π½ΠΈΠΉ Π»ΠΈ это Ρ„Ρ€ΠΎΠ½Ρ‚ послС Π·Π°Π΄Π½Π΅Π³ΠΎ ΠΈΠ»ΠΈ Π·Π°Π΄Π½ΠΈΠΉ послС ΠΏΠ΅Ρ€Π΅Π΄Π½Π΅Π³ΠΎ. Π’ этих случаях ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ:

Π’ ΠΈΡ‚ΠΎΠ³Π΅ процСсс, Π½Π°Π·Π²Π°Π½Π½Ρ‹ΠΉ ΠΌΠ½ΠΎΠΉ синхронизациСй ΠΏΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Π°ΠΌ, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ этих Π΄Π²ΡƒΡ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ². Π‘Π½Π°Ρ‡Π°Π»Π° ΠΈΡ‰Π΅ΠΌ сосСдниС Ρ„Ρ€ΠΎΠ½Ρ‚Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ, ΠΈ с Ρ€Π°Π·Π½Ρ‹ΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΏΠ°Π΄Π°. Π—Π°Ρ‚Π΅ΠΌ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ этих β€œΠ²Π΅Ρ€Π½Ρ‹Ρ…β€ Ρ„Ρ€ΠΎΠ½Ρ‚ΠΎΠ² Π±Π΅Ρ€Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅, Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, Ρ€Π°Π²Π½Ρ‹ΠΌ (Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π²Π½Ρ‹ΠΌ) ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Ρƒ кодирования.

Бинхронизация ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ.

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ этапу – синхронизации ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ. Π‘Π½ΠΎΠ²Π° отсылка ΠΊ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΡ€ΠΎ манчСстСрскоС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π³Π΄Π΅ ΠΌΡ‹ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ Π±Π°ΠΉΡ‚Ρ‹ синхрополя. Они Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π³Π΄Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹.

Π—Π΄Π΅ΡΡŒ рСализация Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ. Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ 16-Π±ΠΈΡ‚Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π±ΠΈΡ‚ Π·Π° Π±ΠΈΡ‚ΠΎΠΌ, ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ значСния. Выглядит это всС Ρ‚Π°ΠΊ:

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. dekodirovanie manchesterskogo koda. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-dekodirovanie manchesterskogo koda. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° dekodirovanie manchesterskogo koda. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° сохраняСм Π΅Π³ΠΎ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, сдвигая принятыС Ρ€Π°Π½Π΅Π΅ Π±ΠΈΡ‚Ρ‹. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ синхрополя. ИмСнно этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π°ΠΌ ΠΈ трСбуСтся ΠΎΡ‚Π»ΠΎΠ²ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² дальнСйшСм ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅Π³ΠΎ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π±ΠΈΡ‚Ρ‹.

Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠΈΡΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ, Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ этап, собствСнно, сохранСниС ΠΈ Π°Π½Π°Π»ΠΈΠ· ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ…, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ…, Π΄Π°Π½Π½Ρ‹Ρ….

Π”Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ….

Π—Π΄Π΅ΡΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ всС Ρ‚ΠΎΡ‚ ΠΆΠ΅ – смотрим Π½Π° Ρ„Ρ€ΠΎΠ½Ρ‚Ρ‹, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ кодирования. Π Π°Π·Π½ΠΈΡ†Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈΡ… Π±ΡƒΠ΄Π΅ΠΌ Π½Π΅ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ со сдвигом, Π° Π² массив. ЀизичСски ΡΡƒΡ‚ΡŒ всС Ρ‚Π° ΠΆΠ΅, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ практичСской Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π”Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π½Π° STM32.

Π’Ρ…ΠΎΠ΄ для Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ, поэтому сразу ΠΊ Π΄Π΅Π»Ρƒ. Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π² Ρ‚Π΅Ρ… ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π°Ρ…:

По Ρ‚ΠΎΠΉ ΠΆΠ΅ схСмС, Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ с добавлСния констант:

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

Π˜Ρ‚Π°ΠΊ, Ρ‚Π°ΠΉΠΌΠ΅Ρ€ Ρƒ нас Ρ‚ΠΎΡ‚ ΠΆΠ΅, Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΈ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ – 10 мкс. РассчитываСм ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ MANCH_DECODE_TIMER_MAX – это ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ кодирования, ΠΎΠ½ ΠΆΠ΅ – Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π·Π°Π΄Π°Π΅ΠΌ ΠΏΠΎΡ€ΠΎΠ³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ обсудили, Ρ€Π°Π²Π½Ρ‹ΠΉ 75% ΠΎΡ‚ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° кодирования:

ОбъявляСм Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ состояния Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€Π° ΠΈ, для удобства, Ρ„Ρ€ΠΎΠ½Ρ‚ΠΎΠ² сигнала:

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° для хранСния Π΄Π°Π½Π½Ρ‹Ρ… остаСтся Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ:

По ΠΏΠΎΠ²ΠΎΠ΄Ρƒ состояний Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€Π°:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ manchester_code.c объявляСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ (я ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠΆΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ отличия ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ исходного ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°):

ВсС, Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, понятно ΠΈΠ· Π½Π°Π·Π²Π°Π½ΠΈΠΉ:

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг, Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ уровня Π½Π° Π²Ρ…ΠΎΠ΄Π΅ PA4:

Π”Π°Π»Π΅Π΅ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с GetDataBit(), ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ использовали ΠΏΡ€ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, создаСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ SetDataBit(), Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ установку Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π±ΠΈΡ‚Π° Π² массивС Π΄Π°Π½Π½Ρ‹Ρ… data[] Π² структурС:

Π’ callback’С ΠΏΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΏΠΎΠΊΠ° добавляСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ счСтчика:

Π’Π΅ΡΡŒ основной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π±ΡƒΠ΄Π΅Ρ‚ Π² ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΈ ΠΏΠΎ измСнСнию уровня сигнала Π½Π° PA4. Рассмотрим ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π·Π°Ρ‚Π΅ΠΌ пройдСмся ΠΏΠΎ Π½Π΅ΠΌΡƒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ:

Для Π½Π°Ρ‡Π°Π»Π° опрСдСляСм ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ сигнала Π½Π° Π²Ρ…ΠΎΠ΄Π΅, Ρ‡Ρ‚ΠΎ позволяСт Π½Π°ΠΌ ΡΡƒΠ΄ΠΈΡ‚ΡŒ ΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ°:

На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ обновляСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ„Ρ€ΠΎΠ½Ρ‚Π°:

ΠžΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π² switch (decodeState) ΠΈ подчиняСтся Ρ‚Π΅ΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ ΠΈ явлСниям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ обсудили Π² Π½Π°Ρ‡Π°Π»Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Π’ исходном состоянии запускаСм процСсс дСкодирования Ρ‡Π΅Ρ€Π΅Π· Ρ„Π»Π°Π³ decodeData.active, Ρ‡Ρ‚ΠΎ ΠΏΠΎ сути ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π² ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΈ ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ начинаСтся процСсс инкрСмСнтирования счСтчика decodeTimerCnt.

Π˜Ρ‰Π΅ΠΌ сосСдниС Ρ„Ρ€ΠΎΠ½Ρ‚Ρ‹ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΠ°Π΄Π°ΠΌΠΈ, Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ кодирования. Для этого сравниваСм счСтчик с Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΠΏΠΎΡ€ΠΎΠ³Π° MANCH_DECODE_TIMER_THRESHOLD. Если Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠ°Π΄Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π½ΠΈΠΉ Ρ„Ρ€ΠΎΠ½Ρ‚-Π·Π°Π΄Π½ΠΈΠΉ Ρ„Ρ€ΠΎΠ½Ρ‚, Ρ‚ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π±ΠΈΡ‚Ρ‹ β€œ1” ΠΈ β€œ0”, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅ΠΌ Π² decodeData.bitStream:

ПослС выполнСния этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. bitstream. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-bitstream. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° bitstream. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

Π­Ρ‚ΠΎ соотвСтствуСт Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ сначала ΠΌΡ‹ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ β€œ1”, Π·Π°Ρ‚Π΅ΠΌ β€œ0”. Аналогично ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹Ρ… Ρ„Ρ€ΠΎΠ½Ρ‚Π°Ρ…, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ:

На этом Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ Π³ΠΎΡ‚ΠΎΠ² ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ состояниС:

НачинаСм ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ. Для этого ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π·Π°ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ decodeData.bitStream Π±ΠΈΡ‚Π°ΠΌΠΈ. Если ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ β€œ1”, Ρ‚ΠΎ выставляСм Π² β€œ1” ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±ΠΈΡ‚:

Π’ случаС β€œ0” Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅ΠΌ, Π·Π° счСт сдвига ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅:

Π’ΠΎΡ‚ ΠΈ всС! Π‘ΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ ΠΈ Π½Π΅ΠΏΡ€ΠΈΠ½ΡƒΠΆΠ΄Π΅Π½Π½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π±ΠΈΡ‚Ρ‹ Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ совпадСния со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ синхрополя:

Π’ случаС совпадСния Π·Π°ΠΊΠΈΠ΄Ρ‹Π²Π°Π΅ΠΌ Π±Π°ΠΉΡ‚Ρ‹ Π² decodeData.data[], обнуляСм счСтчики Π±ΠΈΡ‚ΠΎΠ² ΠΈ Π±Π°ΠΉΡ‚, ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ Π² состояниС DATA_SYNC.

ПослС Ρ‡Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ самоС, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΠΈΡ‚Ρ‹ записываСм Π½Π΅ Π² decodeData.bitStream, Π° Π² массив decodeData.data[] ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ SetDataBit(). ЕстСствСнно, этому сопутствуСт ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ индСксов Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… Π±ΠΈΡ‚ΠΎΠ² ΠΈ Π±Π°ΠΉΡ‚.

Π›ΠΎΠ³ΠΈΠΊΠ° такая ΠΆΠ΅, ΠΏΡ€ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π±ΠΈΡ‚Π° β€œ1” – выставляСм Π΅Π³ΠΎ Π² массивС – SetDataBit(&decodeData, 1). Если β€œ0”, Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ трСбуСтся, Π½ΡƒΠΆΠ½Ρ‹ΠΉ β€œ0” окаТСтся Π½Π° своСм мСстС Π·Π° счСт увСличСния индСкса Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π±ΠΈΡ‚Π°.

Когда количСство Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π±Π°ΠΉΡ‚ Ρ€Π°Π²Π½ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ количСству (MANCH_DATA_BYTES_NUM + MANCH_SYNC_BYTES_NUM), Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ Π² хэдСрС, останавливаСм процСсс:

Π’ этом тСстовом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Ρƒ мСня Π·Π°Π΄Π°Π½ΠΎ 10 Π±Π°ΠΉΡ‚ – 8 ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… + 2 Π±Π°ΠΉΡ‚Π° синхрополя.

По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ дСкодирования Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ callback MANCH_DataReadyCallback(), ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹ΠΉ Π² этом ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π΅ Ρ‡ΡƒΡ‚ΡŒ Π²Ρ‹ΡˆΠ΅:

Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΈ с колбэками ΠΈΠ· HAL, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ свой ΠΊΠΎΠ΄. НапримСр, я Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π² main.c:

ВызываСтся Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ функция ΠΈΠ· manchester_code.c, которая лишь ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ Π² исходноС состояниС:

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ ΡƒΡ‡Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Π½Π΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½Ρ‹ΠΉ нюанс. Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ процСсс дСкодирования Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° принято MANCH_BYTES_NUM Π±Π°ΠΉΡ‚. Если исходная посылка Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΡ€ΠΎΡ‡Π΅, Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ коллапс, Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°ΡŽΡ‚ΡΡ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ условиС, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ признаСтся Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΌ. Если Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰Π΅Π³ΠΎ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ кодирования, Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ уровня Π½Π° Π²Ρ…ΠΎΠ΄Π΅, Ρ‚ΠΎ останавливаСм Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π― Π²ΠΎΠ·ΡŒΠΌΡƒ врСмя, Ρ€Π°Π²Π½ΠΎΠ΅ 3-ΠΌ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°ΠΌ кодирования. ОбновляСм ΠΊΠΎΠ΄ прСрывания ΠΏΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρƒ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ всС Π² Π½ΠΎΡ€ΠΌΠ΅, тСстируСм. Π’ main() Ρƒ нас ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ осущСствляСтся манчСстСрскоС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅:

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ дСкодирования встаСм Π±Ρ€Π΅ΠΉΠΊΠΏΠΈΠ½Ρ‚ΠΎΠΌ Π½Π° callback Π² main.c:

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΏΠΎΠ»Π½ΠΎΠ΅ соотвСтствиС исходным Π΄Π°Π½Π½Ρ‹ΠΌ 👍

Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. primer programmy dekodirovaniya. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ„ΠΎΡ‚ΠΎ. Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя-primer programmy dekodirovaniya. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ манчСстСрского ΠΊΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° primer programmy dekodirovaniya. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ число ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ "Encode Manchester!":

И Π½Π° этом Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΊΠΎΠ΄ΠΎΠΌ ΠœΠ°Π½Ρ‡Π΅ΡΡ‚Π΅Ρ€-II, надСюсь, всС Π±Ρ‹Π»ΠΎ понятно, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ вопросы Π½Π° Ρ„ΠΎΡ€ΡƒΠΌΠ΅ ΠΈΠ»ΠΈ Π² коммСнтариях катСгоричСски ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ )

P. S. Π”Π°, кстати, здСсь ΠΏΡ€ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΡ‹ использовали ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π΅ кодирования, Π½ΠΎ эта Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° Π½Π΅ всСгда извСстна. Если Π±ΡƒΠ΄Π΅Ρ‚ спрос ΠΈ интСрСс, ΠΎΠΏΠΈΡˆΡƒ ΠΊΠ°ΠΊ провСсти Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΡƒΡŽ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ отсутствии Π°ΠΏΡ€ΠΈΠΎΡ€Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π±ΠΈΡ‚Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *