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

 
 
 
Reply to this topicStart new topic
> 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
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
mempfis_
сообщение Dec 28 2013, 17:23
Сообщение #3


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

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



Цитата(smalcom @ Dec 28 2013, 17:38) *
2. там есть кадр. UIH вроде. при помощи которого и контролируется состояние виртуального канала. Почитать об этом можно в телитовской доке про CMUX.
Теоретически всё просто:
а. отправили один кадр данных(лучше использовать размеры не более 64 байт).
б. запросили состояние канала. и либо повторяем п.(б) либо переходим к п.(а).


Я надеялся что всё будет значительно проще.
Скачал документ Telit’s CMUX Implementation User Guide. На сколько я понял всё что мне нужно описано в главе 3.1.1 UIH Control Channel Frame Coding.
На стр. 17 описана команда Modem Status Command (MSC). Там написано MSC command is used to send Virtual V.24 Signals status.
Если я сгенерирую пакет как на приложенном рисунке, а в поле TYPE вставлю 0b000111 (как описано на странице 18), то в ответ получу пакет, содержащий состояние линий управления потоком модема (как описано всё на той же странице 18)?
Я конечно всё проверю, когда попаду на работу после новогодних праздников, но если кто работал со всем этим и ответит раньше, то буду премного благодарен. Также будут интересны ответы от представителей Телит, которые могут напрямую у производителя запросить информацию об управлением потоком в режиме CMUX.


Go to the top of the page
 
+Quote Post

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

 


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


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