реклама на сайте
подробности

 
 
> Мультипроцессорный обмен
Oleg_IT
сообщение Dec 16 2005, 08:54
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Начал работать с мультипроцессорным обменом, для начала использую два МК. Написал программку, работает, но как-то странно.
Передаю следующий массив
char BuffTx[] = {0x55,AdrTo,0x23,0xCC,0x**,0xAA};
0x55 – преамбула
AdrTo – число, адрес МК куда посылаю, девятый бит 1.
0xCC – конец массива. По приёму этого байта подчинённый МК ставит флаг «приём завешён»
0x**(любой байт) и 0xAA – конец передачи для мастера. 0xAA в UART не посылается, по нему ресетится UART. Но без 0x** байт 0xCC не передаётся. Не пойму почему.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
andk
сообщение Dec 16 2005, 11:56
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 199
Регистрация: 17-12-04
Из: Миасс
Пользователь №: 1 519



Судя по всему, проиходит вот это:
байт СС ложится в сдвиговый регистр передатчика(начинает выдвигаться), UART говорит - "я свободен", берется следующий байт для помещения в регистр данных передатчика - АА - догадываемся что конец и спокойно сбрасываем UART (кстати - как ?)
Вообще говоря, враги давно придумали и протокол и символы для терминала - в начале таблицы ASCII есть STX, ETX,DLE,ACK,NAK
Процесс выглядит так:
STX--DATA--ETX
Для приемника STX - всегда старт и ETX всегда стоп.
Для устранения коллизий с данными есть DLE - т.е. если в данных обнаруживается STX или ETX или DLE вставляется DLE.
Если хочешь, могу выложить сишный код с реализацией этого протокола.
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Dec 17 2005, 09:45
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Цитата(andk @ Dec 16 2005, 14:56) *
Судя по всему, проиходит вот это:
байт СС ложится в сдвиговый регистр передатчика(начинает выдвигаться), UART говорит - "я свободен", берется следующий байт для помещения в регистр данных передатчика - АА - догадываемся что конец и спокойно сбрасываем UART (кстати - как ?)
Вообще говоря, враги давно придумали и протокол и символы для терминала - в начале таблицы ASCII есть STX, ETX,DLE,ACK,NAK
Процесс выглядит так:
STX--DATA--ETX
Для приемника STX - всегда старт и ETX всегда стоп.
Для устранения коллизий с данными есть DLE - т.е. если в данных обнаруживается STX или ETX или DLE вставляется DLE.
Если хочешь, могу выложить сишный код с реализацией этого протокола.


Если не сложно, то сбросьте код сюда iteris@yandex.ru

Байт 0xCC уходит, по прерыванию "я свободен" посылается байт 0x**, следующее прерывание "я свободен", программа видит байт 0xAA и сбрасываем UART так (переводя его на приём:
UBRRL = 5;
UCSRA = 0x01; // MPCM Bit set
UCSRB = 0x94;
UCSRC = 0xC6;
//XCK - Pin as input
DDRB &= 0xFE;

Цитата
Не пойму что имелось в виду "без 0x** байт 0xCC не передаётся".

Если я не передаю любой байт за 0xCC он на принимающий МК не приходит. Вообще создается впечатление, что очередной байт уходит только после записи в передатчик следующего байта.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Oleg_IT   Мультипроцессорный обмен   Dec 16 2005, 08:54
- - BVU   Цитата(Oleg_IT @ Dec 16 2005, 11:54) Нача...   Dec 16 2005, 10:59
|- - Oleg_IT   ЦитатаМожет Ваш контроллер на стороне приема не ус...   Dec 16 2005, 11:23
|- - BVU   Цитата(Oleg_IT @ Dec 16 2005, 14:23) Цита...   Dec 16 2005, 11:54
- - Roma_te   Цитата(Oleg_IT @ Dec 16 2005, 12:54) Нача...   Dec 16 2005, 15:04
- - Rash   Цитатаесли не сложно, то сбросьте код сюда iteris@...   Dec 17 2005, 10:20
- - Laptop   Цитата(Oleg_IT @ Dec 16 2005, 11:54) Нача...   Dec 18 2005, 16:51
- - Laptop   Кому интересно. Вот мой вариант. Внутри код для об...   Dec 18 2005, 17:12
- - andk   Вот код. Заточено под мои заморочки: Отдельные выд...   Dec 19 2005, 05:08
|- - Oleg_IT   Цитата(Laptop @ Dec 18 2005, 19:51) Видим...   Dec 19 2005, 06:00
|- - Laptop   Цитата(Oleg_IT @ Dec 19 2005, 09:00) Имее...   Dec 19 2005, 10:21
|- - Oleg_IT   Цитата(Laptop @ Dec 19 2005, 13:21) Именн...   Dec 19 2005, 11:41
- - andk   >6. По приходу прерывания,… и по обнаружения в ...   Dec 19 2005, 12:05
|- - Oleg_IT   Цитата(andk @ Dec 19 2005, 15:05) >6. ...   Dec 19 2005, 12:24
|- - andk   Цитата(Oleg_IT @ Dec 19 2005, 17:24) Цита...   Dec 20 2005, 08:54
- - Laptop   Вот кусочек моего исходника по мультипроцессорному...   Dec 19 2005, 23:25


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 12:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016