Привет Den!
Tuesday August 12 2003 08:49, Den Y. Borisov wrote to Alexander Torres:
DB>>> 1) делать три выборки в середине битового интервала DB>>> с расстоянием между выборками в 1/16 битового интервала; DB>
AT>> А как ты собираешся определать что это имено середина? Hачало AT>> стартового бита - асинхронно по отношению к твоим выборкам, значит AT>> тебе надо будет ловить начало, потом отсчитывать примерно полбита, и AT>> делать 3 выборки, который затем повторять с периодом в бит. Это AT>> конечно реаьлно, но помоему неоправданно сложно. DB>
DB> Все именно так и сделал, сложностей пока не нашел :) .
Hикто не говорил что это "очень сложно", но непонятно - "зачем".
DB>>> 2) делать три выборки подряд (расстояние между выборками получится DB>>> в моем случае 1-1,5 мкс независимо от битрейта). DB>
AT>> Я чаще всего делаю так - в системе есть "часы", т.е. лупящий все AT>> время таймер. Его частоту надо выбрать кратную битрейту. Тогда путем AT>> программных счетчиков легко выделить те прерывания таймера AT>> (тики), которые соответствуют выборкам, обычно с частотой в 3 или 5 AT>> раз выше битрейта. Все выбоки производятся асинхронно по отношению к AT>> входному сигналу, поэтому одна выбрка может попать на "чужой бит". DB>
DB> Если битрейты приемника и передатчика будут заметно отличаться, то при DB> таком алгоритме в конце байта будет приниматься не то, что хотели передать DB> :) . Если добиваться, чтобы приемник понимал передатчик, который работает DB> с битрейтом, отличающимся на 4%, нужно хотя бы 10 выборок (а требуемые 5% DB> при таком алгоритме вообще недостижимы :( ).
Hе пробовал. но вскорости проверю. У меня как раз будет задачка програмного УАРТа на процессоре, с RC-генератором.
Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com
formatting link