Все фреймы ZMODEM начинаются с заголовка,который может быть
послан в бинарной ( BIN ) или шеснадцатиричной ( HEX ) моде.
ZMODEM использует единственый способ распознованиея BIN и HEX
заголовков.Любой из заголовков содержит одиу и туже
последовательность информации:
- байт типа;
- четыре байта данных или параметры зависящие от типа фрейма.
2.Тип фрейма это целое число начиная с 0 до минимального
значения передающей таблицы требуемой памяти.
3.В будущем расширении ZMODEM может использовать старшие биты
для индикации трех вариантов:
F0 - флаг наименее значимого байта;
P0 - наименее значимая позиция в файле;
P3 - наиболее значимая позиция в файле.
------T----T----T----T----
Тип F3 F2 F1 F0
+-----+----+----+----+----+
Тип P0 P1 P2 P3
L-----+----+----+----+-----
Рис1.Расположение флаговых байт в заголовке
3.1 Бинарный заголовок с 16-битовой CRC.
Бинарный заголовок передается от посылающей программы к
принимающей программе.ZDLE закодирован применительно к XON/XOFF
контролю.
Бинарный заголовок начинается с последовательности
ZPAD,ZDLE, ZBIN.Затем следует байт типа ,четыре флаговых байта
и два байта CRC-16,далее данные.
*,ZDLE,ZBIN,TYPE,F3/P0,F2/P1,F1/P2,F0/P3,CRC-1,CRC-2.
3.1 Бинарный заголовок с 32-битовой CRC.
Бинарный заголовок с 32-битовой CRC отличется заменой
символа ZBIN на ZBIN32 и наличием четырех символов CRC.
*,ZDLE,ZBIN32,TYPE,F3/P0,F2/P1,F1/P2,F0/P3,CRC-1,CRC-2,CRC-3,CRC-4
3.3 Шеснадцатиричный заголовок.
Шеснадцатиричный заголовок используется,когда следом
отсутствуют бинарные данные.Он имеет вид:
*,*,ZDLE,ZHEX,TYPE,F3/P0,F2/P1,F1/P2,F0/P3,CRC-1,CRC-2,CR,LF,XON
Все байты в заголовке должны быть представлены как
шеснадцатиричные цыфры.
3.4 Бинарный подпакет данных.
Бинарный подпакет данных следует за бинарным заголовком.
Подпакет содержит от 0 до 1024 байт данных.Длинну подпакета
рекомендуется выбирать в соответствии со скоростью передачи:
256 при скорости менее 2400 бод;
512 при скорости около 2400 бод;
1024 при скорости более 4800 бод.
Байт ZDLE кодируется при передачи.В конце подпакета следуют
два или четыре ZDLE,а затем CRC всего подпакета.
|