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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> UART в мегах как межблочная связь, Можно ли так?
add
сообщение Mar 20 2006, 06:17
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



оф топ:
Вопрос по поводу uart : если связывать два контроллера по UART и взять тактовую одинаковую для обоих контроллеров (к примеру 16 МГц) и скорость по максимуму 115кбод, то ошибка будет равна нулю? так нет? Поправте меня знающие люди! Спасибо.


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 20 2006, 07:15
Сообщение #17


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(add @ Mar 20 2006, 08:17) *
Вопрос по поводу uart : если связывать два контроллера по UART и взять тактовую одинаковую для обоих контроллеров (к примеру 16 МГц) и скорость по максимуму 115кбод, то ошибка будет равна нулю? так нет? Поправте меня знающие люди! Спасибо.

Ошибка будет равна 0% если 2 МК тактировать одним и тем же внешним генератором.
Если тактировать от разных кварцев одинакового номинала, то ошибка будет близкой к 0%.
По поводу максимума, для AVR на 16Mhz это 2Мбод.
Go to the top of the page
 
+Quote Post
AndyBig
сообщение Mar 20 2006, 20:28
Сообщение #18


Иногдящий
****

Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931



Цитата
А вы уверены, что от 320 кБит/с вашему контроллеру не будет плохо, это где то 30 мкс на байт, а если по доброму делать протокол, так еще бы не плохо битые фреймы отслеживать по паузам между байтами.

Оба контроллера будут пахать на 16 мегагерцах, так что, думаю, вполне будут успевать smile.gif. Ошибки будут отслеживаться по CRC в конце каждого пакета, при необходимости пакет будет повторен.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Mar 21 2006, 06:12
Сообщение #19


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(AndyBig @ Mar 18 2006, 23:15) *
Вот стоит задача - один управляющий блок и произвольное число подчиненных. И в управляющем и в подчиненных блоках стоят атмеги. Для упрощения межблочных соединеий и удешевления модулей решили делать связь между управляющим и подчиненными блоками на основе встроенного в меги UART. Кто-нибудь пробовал решать подобную задачу таким путем? Если да, то на какие результаты можно расчитывать (скорость и расстояние)? В идеале достаточно 320 kbps на расстояния до двух метров. Соединения расчитывается сделать плоским кабелем с землей через одну жилу.


Читайте про интерфейс LIN.
В той задаче, о которой Вы пишете - самое трудное это выделение начала кадра данных. Либо делать избыточное кодирование. Либо делать аппаратные сигналы, по которым определяется начало кадра к абоненту.
А иначе - либо множество линий "точка-точка", либо обработка КАЖДОГО принятого байта данных с программной проверкой на начало кадра.
А все остальное - тривиально.
Если хотите на русском - у меня на сайте статья о микроконтроллерах NEC-2, там намного описан ЛИН.
Физический уровень можно выполнить по-другому, а вот логику и обработку ошибок при работе сети и синхронизацию UART'ов я бы взял оттуда.
Да и потом все устройства со стандартным LIN - будут Ваши: купил, прицепил, запрограммировал.
Удачи!


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
alekseykoj
сообщение Mar 21 2006, 06:25
Сообщение #20


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 8-11-05
Пользователь №: 10 602



В теории оно конечно получится. Но UART это асинхронный интерфейс, в нормальной промышленной системе на такой скорости я думаю замучаетесь с помехами. Для этого подойдет синхронный I2C встроенный в атмеги аппаратно. Он позволяет развить скорость до 400 кбод. Но опять длина кабеля у него по спецификации помоему сантиметров 90. Точно не помню
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 21 2006, 06:43
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(iosifk @ Mar 21 2006, 08:12) *
В той задаче, о которой Вы пишете - самое трудное это выделение начала кадра данных. Либо делать избыточное кодирование.

Собственно никаких проблем, буквально десяток команд и "избыточное кодирование" по типу
SLIP протокола готово, что действительно решит проблемы с фреймами радикально.

Ну а уж если LIN.....CAN, то Atmel-ы с CAN имеют место быть, но тут вроде рачь идет об абсолютном минимализме в железе.




Цитата(alekseykoj @ Mar 21 2006, 08:25) *
1.Но UART это асинхронный интерфейс, в нормальной промышленной системе на такой скорости я думаю замучаетесь с помехами.

2.Для этого подойдет синхронный I2C встроенный в атмеги аппаратно. Он позволяет развить скорость до 400 кбод.

Это Вы не подумав :-(


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

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

 


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


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