Страница 1 из 1

Подскажите метод распознавания строки данных на МК

Добавлено: Вс янв 11, 2009 17:04:53
Alexeus
Есть строка данных из 48бит с МК NEC (передается по интерфейсу SPI, 6 пачек по 8 бит от мастера к подчиненному мк) или, соответственно 6 Байт. В них заложено режимы работы, которые нужно отображать на инф.дисплее.
вот так:

11010110 11101111 11101101 10110010 11111111 00010111
(D6 EF ED B2 FF 17)

Мне нужно подключиться своим МК (AVR мега8, например) к передающему мк NEC, и принимая поток данных, выцеплять заранее известные коды (их около 30) далее я собирался интерпретировать их на дисплей...

Так вот как мне это сделать, может кто нть подсказать какой алгоритм применяется в таких случаях?

/я пока сделал на меге8 считывание битов с шины данных по прерыванию в такт передающего мк NEC (в ПК по USART). Но принимает не чистую последовательность- есть место быть и ошибкам и ложные прерывания бывают еще перед началом основных данных (пара, тройка), но затем идет чистая последовательность нужных данных целыми строками, без ошибок- вот из этой последовательности мне нужно распознавать что сейчас активировано, какой режим. Грубо говоря, сопоставить уже имеющиеся коды с теми данными, что передаются, при совпадении с одним из них, выводить на дисплей соответствующую этому коду информацию о включенном режиме.

Добавлено: Вс янв 11, 2009 19:01:35
Aheir
Должно быть некоторое стартовое условие (последовательность), которое Dss должны выделить в этой посылке или, если оно не предусмотрено, как-то определить для себя. Т.е. каким-то образом Ваш МК должен узнавать, что пора принимать данные и проверять их на корректность. Вариантов здесь м.б. много, контроль временных параметров посылки, количества данных и т.п. Вообще, "разбор" данных обычно называют парсингом (хотя это больше справедливо для текстовых данных), возможно это что-то даст для поиска.

Добавлено: Вс янв 11, 2009 19:53:00
Alexeus
особенность такова, что данные поступают на ведомый мк непрерывно и при смене режима посылка может прерваться в любом месте и затем пойти уже новый код... видимо как то основываясь на сравнении нужно делать...

Добавлено: Вс янв 11, 2009 20:07:10
NiTr0
Смотреть структуру пакетов в разных режимах, тут либо стартовый байт постоянный будет (при этом он не должен нигде более встречаться), либо - по контрольной сумме пакеты отлавливать...

P.S. А почему не заюзан встроенный в мегу SPI?

Добавлено: Вс янв 11, 2009 20:20:57
Alexeus
да со SPI меги еще не разбирался, пока для изучения хватает прерывания по низкому уровню (по возрастанию не пошло как то - ошибок много) и считывания в этот момент лог.уровня со входа (подцепил к шине данных), затем на комп и анализирую (устройство просто промышленое)