Как правило данные передаются кадрами (Frame). Типичный кадр имеет формат: +---------+ |Preambule| Используются для синхронизации начала кадра | | на media или в сети +---------+ | Address | Адресс получателя (и отправителя) (в сети) | | иногда адресс сектора на media | | [может и отсутсвовать если Point-to-Point, | | или media hard-sectored или серворазметка] +---------+ | | | Data | Блок данных | | +---------+ | FCS | Frame Checksum | | Контрольные или Корректирующие ошибку коды +---------+ |Terminate| Коды указывающие на конец кадра | | [могут отсутствовать] +---------+
Рассмотрим формат кадра последовательного порта (RS-232-C): RS-232-C
Мы видем: +----------+ |Start Bit | Стартовый бит - preambule. +----------+ | | = Data = Биты данных | | +----------+ |Parity Bit| Бит четности данных - контроль ошибок +----------+ |StopBit(s)| Стоповый бит - указывает на конец кадра +----------+
Другой типичный пример - это кадры Ethernet. 00 01 02 03 04 05 06 07 +-----+-----+-----+-----+-----+-----+-----+-----+ +0000 | Preambule | +-----+-----+-----+-----+-----+-----+-----+-----+ +0008 | Destination Address | +-----+-----+-----+-----+-----+-----+ +000e | Source Address | +-----+-----+-----+-----+-----+-----+-----+-----+ +0014 | | = Data = 62-1502 bytes | | +-----+-----+-----+-----+-----+-----+-----+-----+ +END-4| CRC | +-----+-----+-----+-----+ Мы видим все тоже самое: Синхропоследовательность, Адрес, Данные, Контрольная сумма. (Кодов указывающих на конец кадра нет - просто media будет не модулированна после посылки). Ethernet
CD-ROM frame - это 588 битов (CD-ROM сектор = 98 CD-ROM frames). Имеет формат: Количество битов +----------+ 24+3 | | Synchropattern = 100000000001000000000010 | | +----------+ 14+3 | | Subchannel - это адрессная и другая информация | | типа CD-Text (1 байт) +----------+ 24*(14+3) | | Data (24 байта) +----------+ 8*(14+3) | | CIRC - Коды Рида-Соломона для исправления ошибок +----------+ 8 байт Subchannel,Data и CIRC - кодируется по ЕFM (отсюда 14). Synchropattern - не кодируется по EFM - он уже такой. К каждому 14бит EFM и к Synchropattern добавляются дополнительные 3 бита для того что бы код имел нужный спектр. CD-ROM frame
Формат сектора Floppy диска: Gap - защитный зазор, который пишется только один раз при форматировании трека, нужен из-за того что скорость вращения floppy-диска различна в различных дисководах, и надо что бы новая запись не повредила данные в другом секторе. +-------+ | 50x4E | Gap перед адрессом сектора +-------+ | 12x00 | Sync +-------+ | 3xA1 | Указание на данные адресса сектора (Маркер адресса сектора) | FE | +-------+ | CYL | Номер цилиндра +-------+ | HD | Номер головки +-------+ | SEC | Номер сектора +-------+ | NO | Размер сектора (на Floppy от 256 байт до 1KB). +-------+ | CRC | CRC для адресса сектора +-------+ | 22x4E | Gap (Нужен чтобы котроллер дискеты успел) +-------+ --+ | 12x00 | Sync | +-------+ | Это пишется | 3xA1 | Указание на данные (Маркер данных) | при записи | FB/F8 | | сектора +-------+ | | DATA | Данные | +-------+ | | CRC | CRC данных | +-------+ --+ | | | GAP | Большой межсекторный Gap | | +-------+ Данные FM или MFM модулированны. Floppy disk