Ваша логика синхронизации работать не будет, и вот почему, 5 бит нулей, в начале байта могут восприниматься как часть данных, вот если бы вначале было 10бит нулей, тогда это точно начало байта, потому что в данных не может быть 10 бит. Другой способ, это работать с клоком. Т.е. длина одного бита данных например 2 такта, а длина бита синхронизации 1 такт. Тогда если в начале сделать последовательность 010101, причем длиной в 1 такт каждый бит синхронизации, то даже при сбое клока, перепад данных на каждый такт можно вопринимать как синхронизацию. Затем пауза два такта. И все, после данные. Тогда при сбое синхронизации ловим перепад данных на каждый такт клока, хотя бы один раз и паузу в два такта и все мы входим в байт данных.
Сообщение отредактировал vvvv - Jan 24 2009, 18:26
|