Способ кодирования и декодирования двоичной информации (варианты)
Изобретение относится к способам кодирования двоичной информации с помощью времяимпульсных кодов, а также к способам декодирования информации, закодированной такими времяимпульсными кодами. При использовании изобретения обеспечивается возможность передачи информации как в синхронном, так и в асинхронном режимах с обнаружением ошибки в любом разряде без использования избыточных разрядов, в том числе и по цепям питания. Для этого в первом варианте кодирование каждого разряда осуществляется парой неравных временных интервалов T(1) и T(2), соотношение длительностей которых определяется двоичным значением кодируемого разряда, и по крайней мере одна из n (n1) пар дополняется временным интервалом T(3), неравным временным интервалам T(1) и T(2), который при декодировании играет роль поразрядного синхросигнала. Во втором варианте длительность одного из временных интервалов T(1) и T(2) по крайней мере в одной из n (n
1) пар увеличивается на временной интервал t, чтобы временной интервал с увеличенной длительностью превышал любой из временных интервалов T(1) и T(2). 2 с. и 35 з.п. ф-лы, 1 табл., 11 ил.
Изобретение относится к способам кодирования двоичной информации с помощью времяимпульсных кодов, в частности, для передачи по цепям питания, а также к способам декодирования информации, закодированной такими времяимпульсными кодами.
При передаче информации по линиям электропитания используют различные методы кодирования. Так, в патенте ЕПВ N 0088862, кл. H 04 B 3/54, опублик. 1983 импульсные сигналы по линии низковольтной сети энергоснабжения передаются с помощью меандрового сигнала, в котором при смене значения передаваемого разряда происходит перескок фазы, приводящий к появлению интервала одного уровня вдвое большей ширины. Такой сигнал требует значительно большей полосы пропускания, чем полоса передаваемого сообщения, а отношение усредненных длительностей сигнала на разных уровнях близко к единице. Все это делает такой сигнал неудобным для передачи сообщений по цепям постоянного питания. Гораздо удобнее для этого воспользоваться кратковременными по сравнению с периодом повторения передаваемых разрядов понижениями напряжения в моменты начала передаваемых разрядов (см. патент ЕПВ N 0092284 кл. H 04 B 3/54, опублик. 1983). Такие понижения напряжения в начале, "например, единичных разрядов передаваемой двоичной информации могут быть выбраны достаточно короткими, чтобы они не влияли на работу нагрузки, запитываемой такой линией электропитания. Однако в такой системе требуется каким-то образом (например, по дополнительной линии связи) передавать синхросигналы для предупреждения сбоя в передаче информации. В устройстве для передачи кодовых сообщений по авт. св. СССР N 920811, кл. G 08 C 19/28, опублик. 1982 каждое слово передаваемого сообщения дополняется в своем начале реперным сигналом, обеспечивающим пословную синхронизацию. Однако для обнаружения ошибки в разряде требуется использование специальных кодов с избыточными разрядами, что резко усложняет декодер. Для передачи по цепям электропитания этот сигнал также малопригоден. Проще всего обеспечить способность кода обнаруживать ошибку в разряде без увеличения числа разрядов с помощью времяимпульсного кода (см. авт. св. СССР N 1562948, кл. G 08 C 19/24, опублик. 1990 и N 1658188, кл. G 08 C 19/24, опублик. 1991). Каждый разряд этого кода состоит из двух неравных частей с различными двоичными уровнями. Переход с одного уровне на другой осуществляется в первой либо во второй половине разряда в зависимости от того, какое значение двоичной информации - 0 или 1 - передается в этом разряде. Обратный переход происходит в начале следующего разряда. Суммарная длительность обеих частей разряда постоянна, чем обеспечивается тактовая синхронизация. При декодировании определяется уровень в середине разряда. Однако данный способ передачи информации работает лишь с периодическими сигналами, имеющими заданный тактовый период. Кроме того, данный способ непригоден для передачи данных по сетям электропитания. Задачей данного изобретения является разработка способов кодирования и декодирования информации, которые позволили бы передавать информацию как в синхронном, так и в асинхронном режимах с обнаружением ошибки в любом разряде без использования избыточных разрядов и при этом были бы применимы для передачи информации по цепям электропитания. Для получения указанного технического результата по первому варианту изобретения при способе кодирования двоичной информации, заключающемся в представлении двоичного значения V каждого разряда двоичной информации в виде пары временных интервалов T(1) и T(2) T(1)и T(2) (T(1)






V = ~A при T(1)<T(2),
A - логическая константа ("0" или "1"),
~A - инверсия A. Для обеспечения лучшей достоверности декодирования в условиях возможных сбоев в канале передачи информации определяют число временных интервалов между выделенными (например, соседними) временными интервалами T(3) и информацию, закодированную длительностями соответствующих интервалов T(1) и T(2), считают правильно декодированной только при совпадении указанного числа временных интервалов с заранее заданным числом. Для получения указанного выше технического результата по второму варианту изобретения при способе кодирования двоичной информации, заключающемся в представлении двоичного значения каждого разряда двоичной информации в виде пары временных интервалов T(1) и T(2) (T(1)






V = A при t + T(i) < 4Т(3 - i),
V = ~A при t + T(i) > 4Т(3 - i),
где
i = 1 или 2,
A - логическая константа ("0" или "1"),
~A - инверсия A. Для обеспечения лучшей достоверности декодирования в условиях возможных сбоев в канале передачи информации определяют число временных интервалов между выделенными (например, соседними) временными интервалами t' и информацию, закодированную длительностями соответствующих интервалов T(1) и T(2), считают правильно декодированной только при совпадении указанного числа временных интервалов с заранее заданным числом. На фиг. 1 - 5 показаны кодированные двоичные сигналы, полученные по первому варианту изобретения для разных случаев реализации; на фиг. 6 - кодированные двоичные сигналы, полученные по второму варианту изобретения для разных случаев реализации; на фиг. 9 - 11 примеры функциональных схем кодеров и декодеров, реализующих первый и второй варианты изобретения. На фиг. 1 показан кодированный двоичный сигнал, полученный при одной из возможных реализаций первого варианта изобретения. На всех временных диаграммах (фиг. 1 - 8) двоичный сигнал представлен в виде периодического сигнала (с периодом T для передачи одного разряда в реализациях, показанных на фиг. 1 - 4, 6, 7 и с периодом T для передачи группы разрядов на фиг. 5, 8), что, однако, не является обязательным, как это будет показано ниже. На фиг. 1 в каждом периоде T сигнал представлен тремя различными временными интервалами T(1), T(2) и T(3). Соотношение между длительностями интервалов T(1) и T(2) меняется в зависимости от двоичного значения V кодируемого разряда двоичной информации в соответствии с заранее принятым соглашением. Например, можно принять T(1) > T(2) при V = 0 и T(1) < T(2) при V = 1, как это показано на фиг. 1. При этом длительности максимального и минимального интервалов из пары T(1) и T(2), а также длительность интервала T(3) могут иметь постоянные значения для разных разрядов или значения, изменяющиеся от разряда к разряду по некоторому закону, например монотонно увеличивающиеся или уменьшающиеся либо изменяющиеся периодически, либо изменяющиеся случайным образом. Важно лишь, чтобы между длительностями временных интервалов соблюдались исходные соотношения (неравенства). Для вариантов реализации функциональных схем декодеров, описанных ниже, достаточно, чтобы исходные соотношения выполнялись в пределах по крайней мере двух соседних (последовательно принимаемых) разрядов - в этом случае возможно выделение из входной последовательности временных интервалов группы интервалов, соответствующей каждому отдельному разряду. На фиг. 1 изображен вариант выбора этих соотношений, когда T(3) > max(T(1),T(2)), хотя очевидно, что можно выбрать и другие соотношения (например, T(3) < min(T(1),T(2)) или min(T(1),T(2)) < T(3) < max(T(1),T(2))). В равной мере не имеет особого значения взаимное расположение временных интервалов. На фиг. 1 дан пример, когда временной интервал T(3) предшествует паре временных интервалов T(1) и T(2), но он может располагаться и после этой пары, и между временными интервалами T(1) и T(2) одной пары. В общем случае не обязательно, чтобы относительное расположение интервалов в группе, соответствующей одному разряду, не изменялось от разряда к разряду. Важно лишь, чтобы закон смены вариантов относительного расположения был известен и на кодирующей, и на декодирующей сторонах канала связи, использующего данный код. Однако с точки зрения простоты реализации схем кодера и декодера предпочтительно выбирать неизменное относительное расположение интервалов от разряда к разряду. Более того, для некоторых применений (в частности, когда прием информации начинается с разряда, номер которого заранее неизвестен) одинаковое относительное расположение интервалов может быть обязательным. Кроме того, при сохранении количества временных интервалов между интервалами T(3) (что может быть достигнуто, в частности, за счет неизменности относительного расположения интервалов от разряда к разряду) обеспечивается возможность контроля правильности приема каждого разряда информации непосредственно во время приема этого разряда путем простого подсчета указанного количества интервалов и сравнения его с заранее заданным числом. На фиг. 1, как указано выше, принято следующее соответствие между двоичным значением кодируемого разряда и соотношением длительностей временных интервалов: T(1) > T(2) при V = 0 и T(1) < T(2) при V = 1. Возможно использование обратного соответствия: T(1) < T(2) при V = 0 и T(1) > T(2) при V = 1. В общем случае не обязательно, чтобы соответствие между двоичным значением кодируемого разряда и соотношением длительностей временных интервалов не изменялось от разряда к разряду. Важно лишь, чтобы закон смены вариантов этого соответствия был известен и на кодирующей, и на декодирующей сторонах канала связи, использующего данный код. Однако с точки зрения простоты реализации схем кодера и декодера предпочтительно выбирать неизменное соответствие между двоичным значением кодируемого разряда и соотношением длительностей временных интервалов от разряда к разряду. Более того, для некоторых применений (в частности, когда прием информации начинается с разряда, номер которого заранее неизвестен) одинаковое соответствие между двоичным значением кодируемого разряда и соотношением длительностей временных интервалов может быть обязательным. Временной интервал T(3) выполняет роль синхронизирующего интервала для каждого кодируемого разряда. При декодировании проверяется соотношение длительностей в каждой тройке соседних интервалов входной последовательности интервалов. Для варианта реализации, изображенного на фиг. 1, при декодировании сначала выделяются тройки, в которых длительность первого интервала превосходит длительности двух следующих за ним интервалов. Очевидно, что этому условию удовлетворяют те и только те тройки, для которых впереди расположен временной интервал T(3). Затем по соотношению между длительностями двух оставшихся интервалов T(1) и T(2) определяется двоичное значение декодируемого разряда. Вследствие выбора длительностей интервалов T(1), T(2) и T(3), намного отличающихся одна от другой, декодирование обеспечивается с большей достоверностью. Выбор длительностей интервалов T(1), T(2) и T(3) осуществляется также из соображений простоты реализации схем кодера и декодера. В предпочтительном варианте реализации выбрано T(3) = T/2, min(T(1),T(2)) = T/8, max(T(1),T(2)) = 3Т/8. На фиг. 1 представлен случай, когда кодированный двоичный сигнал образуется путем чередования двоичных уровней при переходе от одного временного интервала к другому. Можно, однако, дополнить каждый период Т еще одним временным интервалом T(4) и поставить в соответствие этому интервалу один из двоичных уровней, чередуя эти уровни как и прежде. При этом одноименные интервалы для каждого из разрядов будут иметь одинаковый уровень, что может оказаться полезным при декодировании. Этот случай иллюстрируется на фиг. 2 и 3. Отличие реализации, показанной на фиг. 3, от реализации, показанной на фиг. 2, состоит в том, что в реализации, показанной на фиг. 3, интервалы, несущие информацию о двоичном значении кодируемого разряда T(1) и T(2), имеют одинаковый уровень, что также может оказаться полезным при декодировании. Кроме того, в реализации, показанной на фиг. 3, интервалы T(3) и T(4) также имеют одинаковый уровень. Если при этом задать одинаковое соотношение между длительностями интервалов T(3) и T(4) для всех разрядов, то выделение интервалов при декодировании T(3) можно осуществлять по признаку "больший (меньший) из пары соседних интервалов с низким (высоким) уровнем". В частности, для варианта, изображенного на фиг.3, выделение интервалов T(3) можно осуществлять по признаку "больший из пары соседних интервалов с низким уровнем". Фиг. 4 представляет еще один случай кодирования, применимый в тех случаях, когда сигнал надо передать по линии питания постоянного напряжения. В этом случае на границах временных интервалов T(1),T(2) и T(3) размещают кратковременные изменения напряжения ("иголки"), которые могут быть падениями напряжения (как показано на фиг. 3) или выбросами (кратковременными повышениями напряжения). Длительности этих "иголок" выбирают так, чтобы работа устройств, которые запитываются постоянным напряжением указанной линии питания, не нарушалась. При этом "иголки" могут быть одинаковой длительности (

V = A при t + T(i) < 4T(3 - i),
V = ~A при t + T(i) > 4Т(3 - i),
где
i = 1 или 2,
A - логическая константа ("0" или "1"),
~A - инверсия A. Предпочтительность такого способа декодирования определяется простотой реализации схемы декодера, обсуждаемой ниже (см. фиг. 11). Такой же способ декодирования может быть осуществлен для предпочтительной реализации второго варианта изобретения, в которой выбрано n = 1, t = T/2, min(T(1), T(2)) = T/8, max(T(1), T(2)) = 3Т/8. Для иллюстрации обсуждаемого способа декодирования при указанном выборе значений длительностей интервалов в таблице приведены правая и левая части проверяемого неравенства для противоположных значений декодируемого разряда и результат сравнения правой и левой частей. Из сравнения второго и третьего столбцов таблицы видно, что выполняется сравнение намного отличающихся одна от другой величин, что повышает достоверность декодирования. Фиг. 7 показывает случай кодирования для передачи сигнала по линии постоянного напряжения (аналогично фиг. 4). Варианты реализации, показанные на фиг. 6 и 7, предусматривают добавление интервала 1 к одному из интервалов в каждой паре T(1), T(2), кодирующей двоичный разряд. Можно, однако, добавлять один интервал t к одному из интервалов в группе пар, кодирующих группу разрядов. В частности, на фиг. 8 показан вариант реализации, когда интервал t' является общим для двух пар интервалов Т(1 - 1), Т(2 - 1) и Т(1 - 2), Т(2 - 2). Обозначение Т(1 - 1) расшифровано выше в связи с фиг. 5. На фиг. 9a показан пример функциональной схемы кодера, выполняющей кодирование по предпочтительной реализации первого варианта данного изобретения (n = 1, T(3) = T/2, min(T(1),T(2)) = T/8, max(T(1),T(2)) = 3Т/8). Временные диаграммы сигналов показаны на фиг. 9б. Сигналы F0, F1, F2, F3 могут быть, например, выходами последовательных разрядов двоичного счетчика. Сигнал D - информационный, его уровень определяет двоичное значение кодируемого разряда. Блок BCF (формирователь кода бита) выполняет логическую функцию:
Y1 = F1&F2+(~F1)&(~F3)&[D&F2+(~D)&(~F2)]
На временных диаграммах фиг. 9б высокий уровень сигнала соответствует логической "1", низкий уровень - логическому "0". Блок LD (логическое дифференцирование) преобразует нарастающий фронт входного сигнала в импульс длительности

Y1 = F1&F2&F3+(~F1)&(~F3)&[D&F2+(~D)&(~F2)]. . Временные диаграммы сигналов-показаны на фиг. 9в. На фиг. 10 приведен пример функциональной схемы декодера по первому варианту изобретения (при n = 1). Для определенности принято T(3) > max(T(1), T(2)); интервал T(3) расположен перед парой интервалов T(1), T(2) в группе интервалов, кодирующей каждый разряд. Входная последовательность интервалов поступает по входу IN. Блок BC (например, двоичный счетчик или интегрирующая RC-цепь) формирует на своем выходе d значение, характеризующее длительность принимаемого в текущий момент времени интервала. Для рассматриваемого примера несущественно, в какой (цифровой или аналоговой) форме представлены величины a, b, c и d. Для определенности будем считать, что они представлены в цифровой форме. Запоминающие устройства (например, регистры) RG1, RG2 и RGЗ стробируются входной последовательностью интервалов и записывают информацию в моменты смены интервалов. Таким образом, величины a, b и c всегда характеризуют последнюю полностью принятую тройку интервалов (принятых в временной последовательности c - b - a). Компараторы COPM2 и COMPЗ, объединенные по выходам элементом И, обеспечивают стробирование триггера TT только при выполнении условий синхронизации по разряду, то есть только тогда, когда максимальный по длительности интервал расположен (по времени) в начале тройки. При этом на информационный вход триггера с выхода компаратора COMP1 поступает информация, характеризующая двоичное значение декодируемого разряда, и это значение V появляется на выходе триггера. Блок CC, обведенный штриховой линией на фиг. 10, выполняет дополнительную функцию контроля при работе устройства в условиях возможности появления сбоев в канале передачи сигнала или при формировании сигнала. В рассматриваемой реализации изобретения входная последовательность интервалов характеризуется тем, что между синхронизирующими интервалами T(3) всегда расположено два других интервала. Нарушение этого свойства входной последовательности интервалов свидетельствует о наличии сбоев. Например, если границы интервалов задаются "иголками", нарушение указанного свойства входной последовательности может свидетельствовать об отсутствии одной из "иголок" или о появлении "ложной иголки". При нарушении указанного свойства входной последовательности контрольный сигнал CS на выходе блока CC изменяет свой уровень. Блок CC может быть реализован, например, в виде счетчика с контролем совпадения заранее заданного состояния с сигналом 5 (см. фиг. 10). На фиг. 11 приведен пример функциональной схемы декодера по предпочтительной реализации второго варианта изобретения (n = 1, t + max(T(1),T(2)) > 4min(T(1), T(2)) и t + min(1),T(2)) < 4max(T(1),T(2)), или, более конкретно, t = T/2, min(T(1), T(2)) = T/8, max(T(1),T(2)) = 3Т/8). Для определенности принято t = t + T(1) и что интервал t' расположен перед вторым интервалом T(2) в паре интервалов кодирующей каждый разряд. Аналогично фиг. 11 входная последовательность интервалов поступает по входу IN. Блок BC (например, двоичный счетчик или интегрирующая RC-цепь) формирует на своем выходе d значение, характеризующее длительность принимаемого в текущий момент времени интервала. Для рассматриваемого примера несущественно, в какой (цифровой или аналоговой) форме представлены величины a, b, d и e. Для определенности будем считать, что они представлены в цифровой форме. Запоминающие устройства (например, регистры) RG1 и RG2 стробируются входной последовательностью интервалов и записывают информацию в моменты смены интервалов. Таким образом, величины a и b всегда характеризуют последнюю полностью принятую пару интервалов (принятых в временной последовательности b - а). Устройство SH осуществляет умножение величины a на 4; если величина а представлена в двоичной форме, умножение сводится просто к сдвигу на два разряда и может быть выполнено только за счет коммутации без аппаратных затрат. Компаратор COMP2 обеспечивает стробирование триггера TT только при выполнении условия синхронизации по разряду, то есть только тогда, когда максимальный по длительности интервал расположен (по времени) в начале пары. При этом на информационный вход триггера с выхода компаратора COMP1 поступает информация, характеризующее двоичное значение декодируемого разряда, и это значение V появляется на выходе триггера. Блок CC, обведенный штриховой линией на фиг. 11, выполняет дополнительную функцию контроля аналогично такому же блоку, показанному на фиг. 10. Предлагаемые варианты изобретения допускают большое разнообразие возможных промышленных применений. Изобретение может применяться как в проводных, так и беспроводных каналах передачи информации, например, при передаче информации от датчиков температуры, давления, влажности и т. п. к контроллерам датчиков. В частности, в случаях, когда датчики расположены в труднодоступных местax, изобретение может быть применено для надежной передачи информации от датчика по проводу, подводящему напряжение питания к датчику. Применение изобретения целесообразно также в тех случаях, когда длительности интервалов, кодирующих разряды, существенно изменяются от разряда к разряду (например, вследствие колебаний или монотонных изменений напряжения питания передающего устройства). Рассмотренные примеры никоим образом не ограничивают объем изобретения, охарактеризованный формулой изобретения.
Формула изобретения














V = A при t + T(i) < 4T(3 - i);
V =

где i = 1 или 2;
A - логическая константа (0 или 1);

РИСУНКИ
Рисунок 1, Рисунок 2, Рисунок 3, Рисунок 4, Рисунок 5, Рисунок 6, Рисунок 7, Рисунок 8, Рисунок 9, Рисунок 10, Рисунок 11, Рисунок 12