|
|
  |
Как реализовать высокоскоростной RS485 |
|
|
|
Nov 12 2006, 10:01
|
Участник

Группа: Участник
Сообщений: 21
Регистрация: 3-08-06
Из: Санкт-Петербург
Пользователь №: 19 279

|
Каким образом к сигнальному процессору (ADSP21062) можно прикрутить интерфейс RS485 для работы на скорости 1-10 МБит/с, возможно ли это в принципе. Теоретически существуют передатчики RS485 для скорости передачи 10 и более МБит/с (например, MAX3490), но при этом преобразователи SPI в RS485 я нашел только для скорости 0.2 МБит/с (MAX3100, MAX3140). Кроме SPI на процессоре есть еще 4-х разрядные линк-порты которые тоже могут работать с высокими скоростями, но опять же как преобразовать их в сигналы RS485. Можно ли это преобразование сделать на ПЛИС, какая максимальная скорость может быть при этом достигнута и какой для этого требуется тактовый генератор.
|
|
|
|
|
Nov 12 2006, 10:38
|

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

|
Цитата(RRaptor @ Nov 12 2006, 12:01)  можно прикрутить интерфейс RS485 для работы на скорости 1-10 МБит/с А зачем? Может достаточно прямо к SPI 485 приемопередатчики прикрутить... Ну а вообще: Цитата Можно ли это преобразование сделать на ПЛИС Точно в лоб решит поставленую задачу для 'любых' скоростей. Необходимость отдельного тактирования PLD зависит от степени желаемой интелектуальности и если без закосов в буферизацию и иже с ней, то вполне решается просто на клоках от SPI
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Nov 13 2006, 09:09
|
Участник

Группа: Участник
Сообщений: 21
Регистрация: 3-08-06
Из: Санкт-Петербург
Пользователь №: 19 279

|
В описаниях интерфейса RS485 сказано, что он определяет только электрические параметры, а протокол передачи в нем можно реализовать любой, например как в RS232, поэтому в идеале хотелось бы следующего: 1. Логически преобразовать один из имеющихся интерфейсов (SPI или LINK порты) в стандартный RS232 (стартовый бит, данные, стоповый бит)
2. Иметь возможность установить для него скорость передачи 115200 бит/с как для стандартного RS232, и скорость побольше, например 1 МБит/с. В крайнем случае можно просто иметь одну фиксированную скорость передачи 1 МБит или более.
3. Эта штука нужна только для передачи, прием данных не нужен вообще
4. По возможности иметь некоторое FIFO и соответственно сигнал прерывания о том что оно не содержит данных
5. Передавать данные в линию через дифференциальные высокоскоростные приемопередатчики стандарта RS485
Вызывает сомнение возможность реализции в ПЛИС логики RS232 на скорости 1-10 МБит/с и более так как при этом нужна высокая тактовая частота. Я раньше не занимался ПЛИС отсюда и возникают вопросы о возможности реализации. Мои приблизительные расчеты таковы: 10 МБит/с=1.25 МБайт/с, с учетом стартового/стопового бита - 1.56 МБайт/с, умножаем на 16 для выделения битов по тактовым сигналам получаем ~25 МГц. Насколько верен такой подсчет? Кстати, в процессоре есть незадействованный таймер который умеет формировать тактовые импульсы с частотой работы ядра - до 40 МГц
|
|
|
|
|
Nov 14 2006, 16:02
|
Частый гость
 
Группа: Свой
Сообщений: 119
Регистрация: 29-11-05
Из: Украина, Черкассы
Пользователь №: 11 564

|
Цитата(rezident @ Nov 12 2006, 23:23)  или просто нужно сигналы SPI передать на большое расстояние путем применения дифференциальных приемопередатчиков? to rezident Ваши рекомендации для SPI: 10m, 10MHz ?
|
|
|
|
|
Nov 14 2006, 19:47
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(gala @ Nov 14 2006, 21:02)  Цитата(rezident @ Nov 12 2006, 23:23)  или просто нужно сигналы SPI передать на большое расстояние путем применения дифференциальных приемопередатчиков?
to rezident Ваши рекомендации для SPI: 10m, 10MHz ? Если нужна фреймовая синхронизация, то для передачи нужно использовать три передатчика RS-485/RS-422 или один строенный/счетверенный. Выбор не такой уж и скудный MaximTIЕсли фреймовой синхронизации не требуется (хотя я не совсем себе представляю какие данные при этом можно передавать), то достаточно двух передатчиков. Кабель нужен FTP-ный (две/четыре витые пары в экране).
|
|
|
|
|
Nov 16 2006, 11:30
|
Знающий
   
Группа: Админы
Сообщений: 689
Регистрация: 24-06-04
Из: South Africa
Пользователь №: 164

|
Господин RRaptor - определитесь, пожалуйста, с терминологией. Если речь идет о преобразовании одного логического интерфейса в другой, то это одна задача. И никакого отношения она к RS232/485/422 не имеет. Решается, обычно, на FPGA, как Вы и предполагаете, хотя это не единственное решение. Если же надо преобразовать "уровни" - то это задача совсем другая, как правило, намного проще, к FPGA совершенно не относится (по крайней мере - к классическому набору FPGA функций, хотя можно сделать например преобразователь TTL - LVDS на FPGA. Он будет немножко дорогим, но все на любителя)
--------------------
"В мире есть две бесконечные вещи: Вселенная и человеческая глупость. За Вселенную, впрочем, поручиться не могу". (С)
А. Эйнштейн.
|
|
|
|
|
Nov 17 2006, 08:07
|
Участник

Группа: Участник
Сообщений: 21
Регистрация: 3-08-06
Из: Санкт-Петербург
Пользователь №: 19 279

|
Цитата(LeonY @ Nov 16 2006, 14:30)  Господин RRaptor - определитесь, пожалуйста, с терминологией ... Может раньше я не совсем понятно написал, но в общем задача такова: планируется к разработке устройство обработки данных поступающих с АЦП (нескольких), которое будет формировать пакеты длиной 64 байта с частотой 12 кГц. Процессор я уже указывал - ADSP-21062. Требуется организовать обмен такими пакетами с другим устройством, пока неизвестно каким с помощью одного из стандарных последовательных интерфейсов на расстояние до 100 м с указанной частотой. У процессора есть SPI и параллельные 4-битные линк порты. Вот собственно и все. Для такой частоты обмена подходит RS485 поэтому встал вопрос о том, как его реализовать. То есть вопрос был в возможности логического преобразования SPI или параллельных link-портов в RS485, например с протоколом RS232, FIFO, прерыванием и т.д. для скорости работы 10 МБит/с, какой при этом потребуется тактовый генератор (как раз эту чать я и не понял из приведенных ответов). Видится мне это примерно так: по SPI передаю n байт где n размер FIFO и жду прерывания по завершению передачи. Что то на ПЛИС эти данные передает в линию на скорости 10 МБит/с и генерит прерывание по завершению передачи, потом следующая порция и т.д.. Ну и совсем было бы хорошо если получится сделать переменную скорость работы этого чуда путем управления процессором частотой выдачи тактовых импульсов которые он может генерить до 40 МГц, чтобы можно было установить скорость 115200 как для RS232. А преобразовать "уровни" как раз не проблема практически для любой скорости.
|
|
|
|
|
Nov 6 2013, 15:20
|
Участник

Группа: Участник
Сообщений: 35
Регистрация: 19-10-13
Пользователь №: 78 801

|
Здравствуйте! Скажите, пожалуйста, за 7 лет что-нибудь изменилось по этому вопросу? Немало удивлён тем, что в 2006-м году были предложены варианты, а меня на других форумах даже сейчас пытаются отговорить и говорят, что надо лепить Ethernet. А мне по-прежнему мерещится, что RS-485 идеально подойдет. Задача: в небольшой квартире с системой умный дом (на CAN-шине) есть желание гонять весь звук по RS-485. "Весь звук" это например микрофон в одной комнате и динамик в другой, или звуковое оповещение на все динамики дома, или звук качества cd-audio с хранилища до пару-тройки определенных колонок. Возможно параллельное использование шины, но не более 2-3 потоков. Т.е. 10 мегабит должно хватить. Устройства ещё не выбрал, т.к. опыт работы есть только с atmega, которые задачу всё-равно не потянут. Можно сделать очень гибкую систему, а самое главное со временем её расширять. Можете посоветовать в какую сторону копать?  Поразбираться с новыми железками только рад буду. Приоритет на handmade (ЛУТ, фоторезист, паяльник, программатор), а не пойди купи 10 raspberry и гоняй всё через них
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|