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

 
 
> CMUX и аппаратное управление потоком виртуальных каналов, GL868
mempfis_
сообщение Dec 27 2013, 09:46
Сообщение #1


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

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Всем добрый день.

Впервые возникла необходимость принимать/передавать данные через модем блоками больше чем 4 кБ.
Сразу возникло несколько вопросов.
1. Если модем работает в CMUX-режиме, то будет ли работать управление потоком физического канала не зависимо от виртуальных?
2. Каким образом можно проконтролировать заполненность буффера одного канала не зависимо от других? Т.е. как можно организовать (или должно быть организовано) управление потоком виртуальных каналов? Где об этом почитать?
3. По докам на модем не вполне ясно какой объём буффера для каждого из виртуальных каналов есть внутри модема (в файле Easy Script In Python.pdf написано что для каждого из каналов MDM/MDM2/SER/SER2 выделен свой буффер по 4кБ).

Для общения с модемом используются линии RXD/TXD а также заведены RTS/CTS/DTR. UART процессора может использовать аппаратное управление потоком.
Ранее вопрос управления потоком не стоял т.к. посылки не превышали 2 кБ, чего было достаточно даже для модемов GE864. Сейчас требования другие. Устройство не имеет достаточно оперативной памяти, чтобы держать всю посылку в памяти. Реализовывать вариант с выдерживанием временных интервалов, необходимых для отправки данных, я не могу - если GPRS подвиснет и текущий пакет не уйдёт из модема на сервер, то я испорчу данные, закидывая в модем новую порцию данных для отправки. Поэтому я вижу единственное решение - использовать аппаратное управление.

Пару вопросов по самому управлению потоком.
Из того, то написано здесь http://deviceinform.ru/index.php?option=co...pparatnie-inter
я понял, что со стороны модема сигналом приостановить передачу является сигнал CTS. Если в процессе передачи данных в модем этот сигнал становится активным, то я должен буду остановить передачу и дождаться пока этот сигнал перейдёт в неактивное состояние.
Каким образом процессор может приостановить выдачу данных из модема, если буффер UART близок к переполнению? Деактивация сигнала RTS?
Если для управления потоком достаточно только RTS/CTS, то для чего может быть необходим сигнал DTR (ну кроме управления энергосберегающими режимами с помощью +CFUN)?

Заранее спасибо за ответы.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
smalcom
сообщение Dec 28 2013, 13:38
Сообщение #2


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



2. там есть кадр. UIH вроде. при помощи которого и контролируется состояние виртуального канала. Почитать об этом можно в телитовской доке про CMUX.
Теоретически всё просто:
а. отправили один кадр данных(лучше использовать размеры не более 64 байт).
б. запросили состояние канала. и либо повторяем п.(б) либо переходим к п.(а).

Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 21:51
Рейтинг@Mail.ru


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