ДВОЙНИ КОДОВЕ

Кодерите с абсолютна стойност работят в двоична система (числа, записани с комбинация от "1s" и "0s".
Информацията за позицията, в която се намират, се доставя с един от следните двоични кодове:

  • Чисто двоично
  • B C D
  • Сиво
  • Сив излишък

Ще видим всеки от тези кодове:

Чист двоичен код:

Това е система за номериране, същата като десетичната, но в база 2. Тя се формира от последователност от "1s" и "0s".
Нека да видим как да получим двоичното число от десетично число:

Да предположим, че искаме да преобразуваме десетичното число 75 в двоично: Ще разделим числото 75 на 2 и ще разделим коефициента отново на 2. Ще продължим така последователно, докато коефициентът е "0". След това двоичното число се състои от последователността на "1s" и "0s", които са получени като остатък от всяка операция.

Нека да видим процеса:

енкодер

Имайте предвид, че остатъкът от първото деление е най-малко значимата цифра от двоичния израз (първата цифра отдясно) и така до последния остатък, който ще бъде най-значимата цифра от двоичното число (първата цифра отляво).

Нека сега видим обратния процес. Ще преобразуваме двоично число в неговия израз в десетичната система. Формулата, която трябва да се приложи, е следната:

Където: D = число в десетичен знак
Bn = Брой битове в двоично (коефициент на мощността 2)
n = Брой битове

Да предположим, че имаме следното двоично число: 00110111. Нека го преобразуваме в десетично:

BCD код (двоично кодиран десетичен):

В този код всяка цифра от десетичното число е представена в чист двоичен формат. Тоест с 4 бита всяка цифра се кодира независимо от останалите цифри.

Най-ясният начин да го видите е с пример:

Имаме числото в десетичен 358, представянето му в BCD е както следва:

Така че първите четири бита вдясно са единици; вторите четири бита са десетките, а последните четири бита са стотиците.

Следователно, за да запишете 3-цифрено число (в десетични знаци) в BCD, са необходими 12 бита. Ако числото в десетична точка има 5 цифри, ще са необходими 20 бита и т.н.

Тази система за кодиране не отговаря на реално математическо представяне на числата. Това е комбинация от "1s" и "0s", които са възможните комбинации, които дадена променлива може да приеме.

Започвайки от определен брой битове, комбинациите се правят според нормите на Грей.

Основната характеристика на този код е, че две последователни числа, каквито и да са те, се различават само с един бит (имат разстояние "1").

Освен това е цикличен код. Тоест първото и последното число също са съседни, тоест те се различават само с един бит.

Засега изглежда малко сложно, но ние ще настояваме за обяснението, за да се опитаме да го изясним напълно.

По-долу има таблица с конструкцията, в сив код, на числата от 0 до 31, използващи до 5 бита:

Както може да се види в таблицата по-горе, сивият код е симетричен по отношение на прекъснатата линия, във всичките си битове, с изключение на този отляво (Gn). В този последен бит тези в горната част на пунктираната линия са "0", а тези в долната част са "1".

Нека да видим как е формирана тази таблица:

Тъй като при един бит има само две възможности (струва си „0“ или си струва „1“), можем да кодираме № 0 и № 1. За да кодираме от № 0 до № 3 са ни необходими две бита. Според правилото на Грей ние постъпваме по следния начин:

За да кодирате от № 0 до № 7, са необходими 3 бита и продължете както в предишната стъпка:

По този начин ние продължаваме последователно да добавяме още един бит всеки път.

Тъй като Сивият код не е математически израз на числа, винаги е необходимо да се преобразуват показанията, които енкодерът дава в този код, в чист двоичен файл, за да могат да се извършват математическите операции, необходими за приложението, където споменатият енкодер работи.

За да се извърши преобразуването, трябва да се приложи следната формула за изчисляване на стойността на всеки бит:

Бит (n) = Бит (n + 1) XOR G (n)

Бит (n) е n-тият бит в двоичен файл
Бит (n + 1) е следващият бит
G (n) е n-тият бит в сивото
XOR е логическата операция, която се извършва между битовете.

ЗАБЕЛЕЖКА: Операцията XOR това е логическа порта с два входа, която доставя „1“ към изхода, само когато двата входа са различни. Ако двата входа са равни (и "1", и "0"), изходът е "0". Схемата е следната:

Може да се намери и следната схема:

След това ще приложим тази функция, за да преобразуваме число в сив код в чист двоичен файл:

Нека да видим същата схема с пример. Нека преобразуваме израза на номер 4 в сив код (0110) в двоичен код (0100):

ЗАБЕЛЕЖКА: Входът Nº2 на Xor портата на най-значимия бит (M.S.B.) трябва да бъде фиксиран на логическо ниво „0“.

Превишение на сивия код

Сивият код, видян в предишния раздел, е система за кодиране, при която разстоянието между две последователни числа е 1 (това означава, че те се различават само с един бит). Което означава, че за да преминете от едно число към следващо, променете само един бит.

Освен това е цикличен код, тъй като разстоянието между последното четене и първото е 1.

Да видим пример:

С 4 бита можете да кодирате числата от 0 до 15. Изразите в сив код и за двата са: 0 = 0000 и 15 = 1000

Както виждаме, те се различават само по бита с най-голямо тегло (вляво). За да преминете от 15 на 0, просто трябва да зададете този бит на 0. Следователно разстоянието е едно и също е циклично, тъй като от последното число се предава на първото чрез промяна, само един бит.

Когато дискът, който носи енкодера, е точно двоично кратно (256, 512, 1024, 4096 или 8192), това се случва, както обяснихме.

Но когато приложението, където искате да използвате енкодера, не е точно кратно, например 360 стъпки (ъглово управление на позицията), не можете да поставите диск с 360 показания в сив код, тъй като не би било цикличен диск, тъй като разстоянието между позиция 359 и 0 не е равно на 1, както виждаме по-долу:

Разликата между двете числа е повече от един бит, така че разстоянието не е 1 и не можем да преминем от 359 на 0, като сменим само един бит.

За да се реши този проблем, е измислен Кодексът за превишение на сивото. Този код също е сив код, но е изместил определен брой стъпки: E

Ще изчислим това преместване, E, и ще проверим дали са изпълнени двете основни условия на Разстояние 1 и на Цикличност.

Формулата за прилагане е:

С пример ще го видим по-ясно:

Да предположим, че искаме да изчислим коефициента Е за 360 ° обхват на измерване. В този случай параметърът "n" е:

2 9 = 512 (512> 360)

Коефициентът R е 360, следователно можем да изчислим E:

По този начин изместването за този случай е 76. Следователно обхватът на измерване ще бъде от 76 до 435 (което е 360 деления; същото като от 0 до 359).

Приемникът на сигнала на кодера (който ще носи сивия диск - излишък 76 от 360 деления) ще трябва да извади 76 от всяко четене, за да знае правилното отчитане.

За съжаление все още няма коментари.