roboforum.ru

Технический форум по робототехнике.

COM порт vs МК

KiCom » 11 янв 2006, 20:28

Возник вопрос как правильно организовать передачу данных в МК, а то может быть я пытаюсь изобрести велосипед. Как правильно распределять данные, тоесть отличать, номер сервы, угол поворота и контрольную сумму, друг от друга. Сейчас у меня это сделано по "порядковому номеру" получения данных в МК но мне кажеться это неправильным или это нормально? Для передачи я использую программу изначально написаную Александром, за что ему большое спасибо, Между передачами чисел стоит задержка, нужна ли она или можно отправлять числа без задержки а МК с компьютером сами разберуться? И правильно ли я понял что можно отправить число в пределах от 0 до 255 за одну отправку?

-= Александр =- » 11 янв 2006, 21:08

Отправляется 1 байт. Это так всегда, потому как больше в ком-порт не пролезет. Я делаю так: есть формат посылки: заголовок, количество байтов, сами байты, стоп-байт. Иногда перед стопом еще и CRC идет, но это когда девайс рядом с источкиком помех находится. Все просто: пришла посылка, мы ее в массив положили и далше смотрим заголовок и соответствующим образом разбираем. Есть вариант сложнее, но надежнее. Каждый байт режется на пополам и раскладывается в 2 байта (4 старших сдвигаются вправо если это данные, 4 младших влево если команда) - это позволяет исключить перепутывания команд и данных. Третий вариант еще круче: эти полубайты клеются хитрым образом, так чтобы старшие 4 бита - это команда, а младшие - данные. Но тогда придется ограничиваться 16-ю командами, т.к. вся команда должна вместиться в 4 бита и быть у двух таких байтов одинаковой.

В ICC можно отправлять функцией putchar или puts без задержки, он сам контролирует состояния порта и по-очереди все туда складывает...
Последний раз редактировалось -= Александр =- 11 янв 2006, 21:15, всего редактировалось 1 раз.

ASin » 11 янв 2006, 21:08

KiCom писал(а):Как правильно распределять данные, тоесть отличать, номер сервы, угол поворота и контрольную сумму, друг от друга.


я использую такую штуку
http://www.spetspribor.com/support/soft ... /wake.html

принцип там простой, можно и самому что-нибудь написать на эту же тему.

P.S. и не надо ничего резать!  :D

avr123.nm.ru » 11 янв 2006, 21:28

KiCom писал(а):Возник вопрос как правильно организовать передачу данных в МК, а то может быть я пытаюсь изобрести велосипед. ?


там все - документация протокол схема исходники

http://www.microrobotna.com/mrservo8cpu.htm

ASin » 11 янв 2006, 21:55

avr123.nm.ru писал(а):там все - документация протокол схема исходники

http://www.microrobotna.com/mrservo8cpu.htm


А где там, собственно, COM порт?

KiCom » 22 янв 2006, 13:32

У меня где-то теряются данные (одно число из пакета пропадает) что может быть причиной? МК Atinny 2313  кварц на 11.0592 вроде UART'товский.

avr123.nm.ru » 22 янв 2006, 14:15

KiCom писал(а):У меня где-то теряются данные (одно число из пакета пропадает) что может быть причиной? МК Atinny 2313  кварц на 11.0592 вроде UART'товский.


Это загадка ? предлагаешь отгадать ?

BOBKA » 27 янв 2006, 20:16

Попутный вопрос по теме.
Можно ли в обвязке микросхем, реализующих интерфейс RS-232, конкретно:MAX232A, MAX202CPE вместо электролитов 0,1 мкФ поставить керамические конденсаторы 0,1 мкФ ?
Я поставил. Все работает. Видимых глюков нет. Но меня интересует - равноценная ли это замена ?
Может быть я просто не накопил достаточную статистику ошибок передачи ?
Кто в этом разбирается, пожалуйста, дайте свой ответ - есть ли потенциальная проблема в применении керамики для MAX232A, MAX202CPE ?

-= Александр =- » 27 янв 2006, 20:28

Я встречал керамику и в промышленных девайсах, так что думаю там нет разницы керамика или электролиты. Но в даташите все-же электролиты нарисованы.  :roll:

BOBKA » 30 янв 2006, 12:02

Я целенаправлено искал ответ на свой вопрос в Инете, но кроме фото с керамическими конденсаторами в обвязке некоторых МАХ-ов (или аналогов от ST) я пока ничего не нашел. Некоторые ставят керамику вопреки рекомендациям Даташита. Хотелось бы знать - чем это чревато ?
Чем отличается физика работы электролитов малой емкости (0,1 мкФ) от керамических конденсаторов ?


Rambler\'s Top100 Mail.ru counter