Формат данных на ленте
Прежде чем описывать входящие в пакет утилиты, я приведу краткое описание способа, принятого в БК для записи информации на ленту. Для кодирования записываемых данных используются последовательности импульсов, составляющие передаваемые данные и служебную информацию.

Логически данные (записанный файл) выглядят на ленте так: 
Стартовая синхропоследовательностьМаркер началаЗаголовокДанныеКонцевая синхропоследовательность

С точки зрения читающей программы стартовая настроечная последовательность представляет собой 100008 нулевых одиночных импульсов (один импульс - один период сигнала см. рис.). Длина (продолжительность) такого импульса в дальнейшем определяет "эталонную единичную длину" для всех последующих данных.

alt
Рисунок. Одиночный импульс.
Маркер начала это 108 нулевых одиночных импульсов, заголовок - 248 байт информации о записаном файле и следующие за этим 108 нулевых импульсов, данные - это, собственно, данные файла, заканчивающиеся двухбайтовой контрольной суммой, концевая настроечная последовательность - 4008 нулевых одиночных импульсов. Все элементы, кроме массива данных, заканчиваются синхроимпульсами, за которыми следует единичный бит (синхропоследовательностью).

Каждый бит кодируется двумя импульсами - информационным и синхронизирующим. Нулевой бит кодируется двумя одинаковыми импульсами одиночной длины (см. рис.). Первый импульс своей длительностью определяет значение бита ("0"), второй - синхронизирующий.

alt
Рисунок. Нулевой бит.
Единичный бит кодируется первым импульсом, с полупериодом вдвое больше одиночного (вчетверо длиннее) и следующим за ним синхроимпульсом одиночной длины (см. рис.).
alt
Рисунок. Единичный бит (реально).
Реально, при записи амплитуда единичного импульса понижается вдвое соответственно, в идеале при воспроизведении его размах также должен быть меньше (см. рис.). Однако, за счет нелинейности частотных характерисик трактов магнитофонов и выходного тракта БК, при считывании можно считать что амплитуда импульсов одинакова и, скорее всего именно поэтому драйвер магнитофона БК так и запрограммирован.
alt
Рисунок. Единичный бит (идеально).

Синхроимпульс представляет собой одиночный импульс утороенной длины. Данный тип импульса в комбинации с единичным битом образует синхропоследовательность и используется для обозначения границ элементов, образующих файл на ленте. Синхроимпульс также передается с половинной амплитудой. Синхропоследовательность, образующую разделительный элемент между полями в файле можно видеть на рисунке.
alt
Рисунок. Синхропоследовательность.

Фактически, синхропоследовательность это последовательность из импульсов тройной, двойной, а, затем, единичной длины.
Биты записываются в порядке увеличения разряда в байте, т.е. нулевой бит - первым, седьмой - последним. Для примера на следующем рисунке приведена последовательность, импульсов образующая комбинацию битов "0101" в виде, выводимом драйвером БК.
alt
Рисунок. Последовательность бит "1010"

На рисунке обозначены значения каждого импульса. При этом "1D" и "0D" означают стартовые (значащие) импульсы в двухимпульсных посылках, кодирующих единичный и нулевой биты соответственно, а "0S" означает синхроимпульс (по длительности совпадающий с "0D").








 
Яндекс.Метрика