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

 
 
man with no name
сообщение Nov 16 2008, 22:07
Сообщение #1


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

Группа: Свой
Сообщений: 158
Регистрация: 6-08-07
Из: Moscow
Пользователь №: 29 586



Модем упрятан в железяку. Надо обновитьпрошивку. Между компом и модемом - камень от силабс.

Смотрю дш, в передатчике UART нет буфера передачи (как, например, в AVR). Возможно ли избежать паузы меджу завершением передачи стопового бита и началом передачи стартового следующего байта?

Надо для того, чтобы перенаправлять большие массивы данных из одного порта в другой, притом в обе стороны (прошивка - в одну сторону, верификация - в другую). Железки, находящиеся "по ту сторону" UART'ов таких задержек не имеют.

Буферы ввёл (по 256 байт), но они переполняются.

Длины непрерывных пакетов не знаю, но подозреваю, что порядка нескольких килобайт.

Порты полнодуплексные.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
barabek
сообщение Nov 17 2008, 00:12
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(man with no name @ Nov 17 2008, 08:07) *
Модем упрятан в железяку. Надо обновитьпрошивку. Между компом и модемом - камень от силабс.

Смотрю дш, в передатчике UART нет буфера передачи (как, например, в AVR). Возможно ли избежать паузы меджу завершением передачи стопового бита и началом передачи стартового следующего байта?

Надо для того, чтобы перенаправлять большие массивы данных из одного порта в другой, притом в обе стороны (прошивка - в одну сторону, верификация - в другую). Железки, находящиеся "по ту сторону" UART'ов таких задержек не имеют.

Буферы ввёл (по 256 байт), но они переполняются.

Длины непрерывных пакетов не знаю, но подозреваю, что порядка нескольких килобайт.

Порты полнодуплексные.

Нет, специально отведенных буферов нет. Только если у Вас достаточно низкие скорости и прерыванию от UART выставить высокие приоритеты можно приблизиться к вашему требованию. Какая у Вас скорость? Подозреваю что большая. И что должен делать камень кроме приема-передачи?
Go to the top of the page
 
+Quote Post
AndreyS
сообщение Nov 17 2008, 06:43
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 28-01-05
Из: Санкт-Петербург
Пользователь №: 2 276



Цитата(man with no name @ Nov 17 2008, 01:07) *
Модем упрятан в железяку. Надо обновитьпрошивку. Между компом и модемом - камень от силабс.

Смотрю дш, в передатчике UART нет буфера передачи (как, например, в AVR). Возможно ли избежать паузы меджу завершением передачи стопового бита и началом передачи стартового следующего байта?


В UART аппарате SiLabs есть буфер передачи глубиной на 1 байт (свой для передачи и свой на прием. Только доступ к ним идет через один и тот же SFR адрес).
В AVR при использовании буфера FIFO (глубиной на 2 байта) только теоретически есть возможность передачи без пауз. А практически???
Естьу SiLabs в одном из контроллеров с FIFO UART более 2-х байт. Реализация с ним даст наименьшую паузу. Нашел его F50x серия. НО только в нем FIFO на прием. На передачу его нет.

Но тем не менее. А какая минимальная пауза у вас возможна???

Цитата
Буферы ввёл (по 256 байт), но они переполняются.


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


Какие паузы при передачи байтов по UART с той стороны???


--------------------
Удачи.
Go to the top of the page
 
+Quote Post
man with no name
сообщение Nov 17 2008, 11:41
Сообщение #4


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

Группа: Свой
Сообщений: 158
Регистрация: 6-08-07
Из: Moscow
Пользователь №: 29 586



barabek
Спасибо. Вы полностью ответили на поставленный вопрос.
Скорости любые, но и объёмы передачи довольно большие, потому ставить 9600 бод не получится.
Цитата
AndreySВ AVR при использовании буфера FIFO (глубиной на 2 байта) только теоретически есть возможность передачи без пауз. А практически???

Но у силабс буфер передачи является выходным сдвиговым геристром, в АВР - нет.
В AVR на практике без пауз, т.к. есть флаг (и соответствующее прерывание) по опустошению буфера. При начале передачи данных первое и второе прерывания по опустошению буфера срабатывают "почти сразу", т.к. из буфера байт сразу уходит в сдвиговый регистр. Сразу заполняем буфер вторым байтом. Таким образом, получаем всегда запас по времени чуть меньше, чем в 10 бит, для того, чтобы положить очередной байт в буфер.
Цитата
Если буферы пелеполняются, то получается что входной поток данных (с той или иной стороны) огромен. И ваша прошивка попросту не справляется с ним. Тут или прошивку ускорять или поток уменьшать (это конечно если буферы у вас кольцевые).

Повторюсь: Длины непрерывных пакетов не знаю, но подозреваю, что порядка нескольких килобайт.
Буферы кольцевые. Прошивку менять особо некуда. Смотрел, что получается в ассемблере - ничего лишнего. Один простой цикл.
Цитата
Какие паузы при передачи байтов по UART с той стороны???

Ещё повторюсь: Железки, находящиеся "по ту сторону" UART'ов таких задержек не имеют.
Go to the top of the page
 
+Quote Post
barabek
сообщение Nov 17 2008, 23:18
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(man with no name @ Nov 17 2008, 21:41) *
barabek
Спасибо. Вы полностью ответили на поставленный вопрос.
Скорости любые, но и объёмы передачи довольно большие, потому ставить 9600 бод не получится.

Я не зря спросил, занимается ли контроллер кроме трансляции потоков чем либо еще. Просто возможен такой вариант. Так как Вы не написали какой из силабовских камней используете, беру по максимуму smile.gif - камень с 2 UART на борту. Их приемники используем по назначению, а передатчики делаем софтверно, с использованием PCA. Сдвиговый регистр организовать - проще пареной репы. Вы будете точно знать, когда заканчивается стоп-бит (вернее Вы его сами выдаете), соответственно начинаете передачу следущего байта. Вобщем мою мысль поняли.
Go to the top of the page
 
+Quote Post
man with no name
сообщение Nov 19 2008, 02:34
Сообщение #6


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

Группа: Свой
Сообщений: 158
Регистрация: 6-08-07
Из: Moscow
Пользователь №: 29 586



Контроллер больше ничем не занимается. Разве что ждёт таймаута или парсит строчку завершения обновления. Идея хорошая, спасибо, подумаю. Камень действительно с двумя уартами.
Go to the top of the page
 
+Quote Post

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

 


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


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