L1 - физический уровень
Тезисы:
- за основу возьмем сеть Ethernet, но с модемной модуляцией на звуковой частоте;
- питание и передача данных идут по одним проводам (2-Wire);
- в начале проекта рассмотрим только питание от постоянного тока 24В, но, в качестве цели, будем иметь в виду и сеть переменного тока 220В;
- для начала возьмем за основу модемный протокол V22:
- фазовая манипуляция а скорости 600 бод;
- 2 символа на одном бодовом пространстве: итого, скорость передачи будет составлять 1200bps;
- т.к. связь будет полу-дуплексной, поэтому обойдемся одной несущей: 1200Гц;
- опционально будет рассмотрена возможность работы на нескольких несущих с шагом 1200Гц, с целью повышения скорости передачи, но обязатеьным будет только один канал;
- настройка передачи должна выполняться автоматически: необходимость пользователю настраивать оборудование является недопустимым.
Передача кадра
Тезисы:
- если данные не передаются несущей (несущих) нет: на линии тишина;
- перед началом передачи кадра передается Preamble: чередование нулей и единиц, которые позволяют приемнику обнаружить несущую;
- длина Preamble точно не определена, но нужно оговорить ее минимальную длину (для начала примем ее равной 7 байтам);
- об окончании Preamble сообщает символ SFD: после его получения приемник сразу должен перейти к приему кадра;
- после передачи контрольной суммы несущая (несущии) снимаются;
- по пропаданию несущей приемник узнает о конце файла и, следовательно, определяет длину пакета;
- определять количество используемых каналов можно двумя способами:
- во время включения устройства оно на минимальной скорости по одному каналу обменивается сервисной информацией с партнером, в котором оговаривается, в том числе, и количество (и номера) используемых каналов;
- Preamble передается по всем используемым каналам и приемник узнает их количество (есть сложность, если передатчик может использовать большее число каналов, чем может услышать приемник).
Схемотехника
Note: ''стандартный Line-In звуковой карты имеет амплитуду ±2В.
Аналоговый вход
ADC на Atmega имеет разрешение в 10 бит, поэтому мы можем обойтись и без усилителя, сохраняя разрешение 8-9 бит. При этом сохраниться разумный уровень сигнала в ±0.5В.
Аналоговый выход
В Atmega придется использовать PWM в качестве аналогово выхода.
Ссылки
- Модель модулятора на FreeMATH: http://svn.stdio.ru/svn/branches/smarthome/p1_modem_math/