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

 
 
> Прозрачный режим SPI1 to SPI2 или то же с UARTами, Как обеспечить максимальную скорость передачи данных?
Make_Pic
сообщение Mar 9 2015, 12:09
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 779
Регистрация: 9-10-04
Из: Россия, Пермь
Пользователь №: 828



Хочу написать подпрограмму поддержки прозрачного режима по SPI1 to SPI2 или то же с UARTами
Как обеспечит максимальную скорость передачи данных?
Напрашивается делать обмен в прерывании - какой нибудь есть алгоритм - пример?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SSerge
сообщение Mar 10 2015, 13:00
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Почему-то никто пока не вспомнил о самом главном - возможном несовпадении скоростей удалённого и своего локального передатчиков.
UART, например сохраняет работоспособность при рассогласовании скоростей до 4%.

Рассмотрим самый тяжёлый случай, когда удалённый передатчик немного быстрее.
При непрерывном потоке входящих данных неизбежно будет накапливаться рассогласование.
Понятно, что такая система сможет работать без потери данных только если во входящем потоке будут присутствовать паузы, позволяющие компенсировать рассогласование.
Накапливающиеся "лишние" байты придётся временно сохранять в FIFO буфере.
Несложно прикинуть необходимый для этого размер буфера - максимальная длина пакета умножить на максимальное относительное отклонение скоростей.
Для того-же UART-а потребуется буфер размером порядка 5% (чтобы уж наверняка хватило) от максимального размера пакета.

Известные реализации (большинство из них) могут работать когда и запись и извлечение из буфера производится в обработчиках прерываний, при условии что этим прерываниям назначены приоритеты из одной группы (важно для кортексов-М), так что они не смогут прерывать друг друга.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Make_Pic   Прозрачный режим SPI1 to SPI2 или то же с UARTами   Mar 9 2015, 12:09
- - aaarrr   На сферическом ARM'е в вакууме (да и не только...   Mar 9 2015, 12:13
|- - Make_Pic   Цитата(aaarrr @ Mar 9 2015, 15:13) На сфе...   Mar 9 2015, 13:22
- - aaarrr   Если речь о UART, то да, пересылка в прерывании бу...   Mar 9 2015, 13:36
- - Сергей Борщ   Мне казалось, что DMA будет пошустрее прерываний.   Mar 9 2015, 14:40
|- - aaarrr   Цитата(Сергей Борщ @ Mar 9 2015, 17:40) М...   Mar 9 2015, 14:53
|- - mantech   Цитата(Сергей Борщ @ Mar 9 2015, 17:40) М...   Mar 9 2015, 16:13
|- - Make_Pic   Цитата(mantech @ Mar 9 2015, 19:13) При ч...   Mar 10 2015, 07:41
- - Golikov A.   схема про UART Прерывание от UART пришел символ {...   Mar 10 2015, 09:05
|- - aaarrr   Цитата(Golikov A. @ Mar 10 2015, 12:05) с...   Mar 10 2015, 09:26
- - Golikov A.   про заморочки организации слейв - мастер, чипселек...   Mar 10 2015, 12:53
- - mantech   Цитата(SSerge @ Mar 10 2015, 16:00) Почем...   Mar 10 2015, 15:48
- - Make_Pic   Цитата(SSerge @ Mar 10 2015, 16:00) ... ...   Mar 12 2015, 06:45
- - mantech   Цитата(Make_Pic @ Mar 12 2015, 09:45) Где...   Mar 12 2015, 06:51


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

 


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


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