| |
Коммуникатор GPRS-485Обзор, тест, обсуждение
Лев
Долгожитель форума
Всего сообщений: 582 СсылкаДата регистрации на форуме: 22 мар. 2008
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 21 ноября 2012 18:20
Дмитрий Анисимов написал top: "Но если от Вас и дальше будут следовать уничижительные высказывания о других разработчиках-производителях - я Вас отключу"
Дмитрий, не отключайте, пжл, top - он часто пишет дельные вещи. Ну да, иногда его заносит не в меру, но читается с пользой и интересом. А для top скажу, как бывший разработчик, что в какой-то момент любому разработчику после погружения в проблему кажется, что он может всё-всё объяснить - и так до того момента, пока не появляется факт, который, так сказать, не укладывается. Тогда опять начинаешь извилины разминать. Спасибо и Вам, и, конечно, Дмитрию за очень интересную ветку.
Хорошо бы копенгагенам в этом деле в связи с актуальностью и насущностью вопроса лекцию тиснуть в "Школу Теплопункта" на эту тему (некоторые разъяснения и Дмитрия, и top прям-таки готовые абзацы из неё). Чтобы без ненужного наукообразия (и эскапад, конечно), но технически корректно и с пользой. Можете совместную написать, или по разделам распределиться - народ вам спасибо только скажет. | | |
top
Изгнанный
Откуда: Керчь, Крым Всего сообщений: 406 СсылкаДата регистрации на форуме: 22 июня 2010
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 21 ноября 2012 19:48 Сообщение отредактировано: 21 ноября 2012 19:51
Лев написал: [q] А для top скажу, как бывший разработчик, что в какой-то момент любому разработчику после погружения в проблему кажется, что он может всё-всё объяснить - и так до того момента, пока не появляется факт, который, так сказать, не укладывается. Тогда опять начинаешь извилины разминать.[/q]
Нет, не кажется. В этой области проблем возникает уйма и что самое плохое - "проблемы не собственного производства", а косяки операторов и производителей, под которые надо "ставить костыли", а для этого надо собирать информацию. Ни на кого не хотел наезжать и тем более уничижать. Откуда такое "восприятие"? Дмитрий написал о том, что Robastel по ощущениям лучше работает. Он и должен работать лучше. У него выше класс. Скорость выше и скорее всего сделан он на Telite - а там буфер у стека существенно больше. -- Карат сделан на wavecome у которого буфер стека всего в 120 байт. Поэтому он требует жёсткого протокола и ОБЯЗАТЕЛЬНОГО аппаратного контроля потока - иначе переполнение и потеря данных, куча перезапросов ( из сообщения Дмитрия всё сходится) и соответственно потеря скорости. А многие вычислители в принципе не имеют управлять потоком (нет CTS RTS) - вычислитель выдаёт пакет в 200-300 байт, пакет не успеват уйти в эфир, режется до 120 байт и исчезает на этапе проверки контрольной суммы, захватывая (возможно , в зависимости от реализации ПО серверной части) ещё и следующий пакет данных потомучто терминатора конца пакета не было. А если он сделан на OpenAT (т.е. программа встроенная внутрь модуля GPRS) (обратную сторону плату Дмитрий к сожалению не показал) , то , из общения на других спец.форумах по интерфейсам , можно сказать, что зависания могут быть именно следствием этого факта - не отработанная "фича", хоть и сильно рекламируемая. Многие клюнули. По отзывам - многие пострадали. PS Думаю достаточно политкорректно написал? Не ради срача, а для обмена опытом | | |
Дмитрий Анисимов
Администратор
Откуда: Верхняя Салда Всего сообщений: 8269 СсылкаДата регистрации на форуме: 1 мар. 2008
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 23 ноября 2012 5:38
top написал: [q] Скорость выше [/q]
В моем случае скорость 19200 и для коммуникатора, и для модема. top написал: [q] буфер стека[/q]
Не знаю, каков буфер у коммуникатора, а для модема я поставил настройку "0", т.е. данные передаются в канал без буферизации в темпе поступления на порт модема. top написал: [q] А многие вычислители в принципе не имеют управлять потоком (нет CTS RTS)[/q]
КАРАТ-307 точно не умеет - у него интерфейс RS-485. top написал: [q] А если он сделан на OpenAT[/q]
Используем модемы Maestro 100evo на OpenAT - с ними никаких проблем пока не обнаружено. Так что, видимо, не в буферах счастье. | | |
top
Изгнанный
Откуда: Керчь, Крым Всего сообщений: 406 СсылкаДата регистрации на форуме: 22 июня 2010
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 23 ноября 2012 8:48 Сообщение отредактировано: 23 ноября 2012 8:56
Дмитрий Анисимов написал: [q] [/q]
[q] В моем случае скорость 19200 и для коммуникатора, и для модема.[/q]
Причём тут это ? Вы можете настроить и 115.2Кбод, а данные застрянут в модеме [q] Прием и передача информации осуществляется через таймслоты – это отрывки времени в кадре стандарта GSM. Всего GPRS предусматривает использование до 8 таймслотов, если задействовать их все одновременно, теоретически предел составляет 171,2 кбит/с. В реальности скорость значительно ниже, поскольку операторы не позволяют использовать максимальное количество слотов. Более того, оператор динамически отдает определенное количество таймслотов в зависимости от загруженности сети. Отсюда вытекает также некоторая особенность стандарта, связанная с нестабильностью соединения: пакеты могут пересылаться через разные базовые станции, что приводит к задержкам доставки – это неприемлемо для обмена потоковой информацией (такой, как видео). Номер класса говорит о максимальном количестве используемых телефоном таймслотов. Ниже следует таблица, связывающая номер класса с количеством таймслотов, использующихся на прием и на передачу, также указывается максимально возможное количество одновременно задействованных слотов.
Класс Слоты на прием Слоты на передачу Class 1 1 1 Class 2 2 1 Class 3 2 2 Class 4 3 1 Class 5 2 2 Class 6 3 2 Class 7 3 3 Class 8 4 1 Class 9 3 2 Class 10 4 2 Class 11 4 3 Class 12 4 4 [/q] http://mkt.kiev.ua/klassi_gprs.htmlЧем выше класс - тем больше пропускная способность канала. [q] Не знаю, каков буфер у коммуникатора, а для модема я поставил настройку "0", т.е. данные передаются в канал без буферизации в темпе поступления на порт модема.[/q]
А куда она делась? Физически вы никакими настройками от буфера не избавитесь. Это реально существующая область памяти, куда складируются данные перед отправкой. Она для вас скрыта и повлиять вы на неё не можете. ПОэтому производители модулей делают сигнальные линии CTS-RTS для управления потоком информации , превышающей буфер и скорость передачи в эфир. [q] КАРАТ-307 точно не умеет - у него интерфейс RS-485.[/q]
Интерфейс интерфейсу рознь... Можно ведь и управление потоком передавать через 485 используя ещё 4 провода. А размер ответов , которые он выдаёт на запрос, какой? А в принципе , возможно, что на проблемных объектах просто падает скорость изза потерей в эфире.В действительности Она может быть и 2-3Кбод( и даже меньше) супротив ваших 19200. А вычислитель шлёт и шлёт в никуда...В переполненный буфер. [q] Используем модемы Maestro 100evo на OpenAT - с ними никаких проблем пока не обнаружено.[/q]
Я ж писал - ктото экономит, ктото нет. | | |
Дмитрий Анисимов
Администратор
Откуда: Верхняя Салда Всего сообщений: 8269 СсылкаДата регистрации на форуме: 1 мар. 2008
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 23 ноября 2012 9:25
top написал: [q] Причём тут это ? [/q]
При том, что выше Вы написали top написал: [q] Дмитрий написал о том, что Robastel по ощущениям лучше работает. Он и должен работать лучше. У него выше класс. Скорость выше...[/q]
А я говорю: в данном случае "скорость у него не выше". top написал: [q] А куда она делась? Физически вы никакими настройками от буфера не избавитесь.[/q]
В Open AT размер буфера задается командой. Если указан размер от 1 байта до максимума (по поводу 120 байт я не в курсе, надо будет уточнить), то данные в канал отправляются после заполнения буфера. Если указать размер "0", то данные будут отправляться без предварительной буферизации: байт пришел в модем и тут же ушел из модема. top написал: [q] Интерфейс интерфейсу рознь... Можно ведь и управление потоком передавать через 485 используя ещё 4 провода.[/q]
На этом беседу можно закончить. | | |
top
Изгнанный
Откуда: Керчь, Крым Всего сообщений: 406 СсылкаДата регистрации на форуме: 22 июня 2010
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 23 ноября 2012 9:38 Сообщение отредактировано: 23 ноября 2012 9:41
Дмитрий Анисимов написал: [q] [/q]
[q] я говорю: в данном случае "скорость у енго не выше".[/q]
ВЫ понимаете, что скорость передачи по последовательному порту <> скорость передачи GPRS? Это вобще не связанные ничем, кроме буфера , канала. Я вам даже мурзилку привёл - почему скорость у Робастела выше. [q] В Open AT размер буфера задается командой. Если указан размер от 1 байта до максимума (по поводу 120 байт я не в курсе, надо будет уточнить), то данные в канал отправляются после заполнения буфера.
[/q]
Это внешняя буферизация. У каждого модема есть FIFO буфера. Сигнал CTS выставляет когда буфер переполняется свыше (обычно) 2/3 буфера. После этого передающее устройство ДОЛЖНО "заткнуться" - иначе данные будут потеряны. Это физический уровень и он никак не настраивается. [q] Если указать размер "0", то данные будут отправляться без предварительной буферизации: байт пришел в модем и тут же ушел из модема.
[/q] Это не правильно! Байт пришёл в модем и ждёт очереди ( если она не пуста).ПРи плохой связи она обычно не пуста. [q] На этом беседу можно закончить.[/q]
А что вас смущает в дополнительных проводах? То, что сами сигналы не вывел производитель оборудования? Так я об этом выше писал | | |
Дмитрий Анисимов
Администратор
Откуда: Верхняя Салда Всего сообщений: 8269 СсылкаДата регистрации на форуме: 1 мар. 2008
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 23 ноября 2012 11:28 Сообщение отредактировано: 23 ноября 2012 11:29
Дмитрий Анисимов написал: [q] В Open AT размер буфера задается командой. Если указан размер от 1 байта до максимума (по поводу 120 байт я не в курсе, надо будет уточнить), то данные в канал отправляются после заполнения буфера. Если указать размер "0", то данные будут отправляться без предварительной буферизации: байт пришел в модем и тут же ушел из модема.[/q]
Вот здесь я ошибся, каюсь: при настройке "не ноль" данные из буфера уходят по достижении заданного кол-ва байт, а при настройке "0" - по тайм-ауту (если задан), по длине пакета (если задана), по разделителю пакетов (если предусмотрен) или (вероятно) при "физическом" заполнении буфера. А теперь по поводу всего остального. top работает в фирме, которая предлагает системы сбора данных, основанные на применении собственных устройств. Поэтому во всех своих сообщениях top пытается убедить читателей в том, что "стандартные" модемы не приспособлены для работы в сетях GSM, а устройства других ("не top") разработчиков - это вообще откровенный хлам. Парадокс: производители, выпускающие и продающие свои модемы десятками и сотнями тысяч штук не в курсе, что эти модемы ни на что не годны? top пишет, что буфер в N байт в модеме - это очень и очень мало, а без аппаратного управления потоком (RTS-CTS) работать невозможно в принципе. Так ли это? Давайте вспомним, почему и для чего были придуманы линии RTS, CTS в интерфейсе RS-232 (выделяю название интерфейса, т.к. это важно). RS232 был разработан для связи между терминалом и устройством передачи данных. В роли терминала обычно выступал (и выступает) компьютер, в роли устройства передачи данных - модем. В 1962 году (год появления первой версии RS232) передача данных модемом по телефонной линии была и еще долго оставалась очень медленным по сравнению с передачей данных между компьютером и модемом процессом. Понятно, что если компьютер "толкает" в модем данные со скоростью, например, 19200 бит в секунду, а модем способен передавать эти данные в линию (т.е. другому модему) со скоростью только, например, 2400 бит в секунду, в модеме должен быть буфер, и модем должен уметь сообщать компьютеру, что буфер заполнен, и нужно подождать. И процесс передачи данных в этом случае происходит так: компьютер на скорости 19200 забивает "порцию" данных в буфер модема и ждет, когда модем сообщит ему, что буфер освободился (данные "медленно" ушли в линию), после чего "быстро" записывает в модем новую порцию данных и т.д. Сигнализировать компьютеру о заполнении буфера можно по-разному. Например, можно отправить какой-нибудь специальный код по тем же линиям, по которым идет обмен между компьютером и модемом. Но при общей тогдашней "слабости" вычислительной техники это было бы долго и ненадежно. Проще воспользоваться некой дополнительной (не занятой в передаче данных) линией, выставляя на ней сигнал "нуля" или "единицы". Поэтому в интерфейсе RS232 и появились линии RTS (Ready To Send - терминал сообщает, что готов передавать данные) и CTS (Clear To Send - модем сообщает, что тоже готов ("чист", "открыт", т.е. можно передавать). А вот в стандарте RS-485 этих линий никогда не было, т.к. это стандарт связи между "равными" устройствами по общей двупроводной шине. Вообще RS-485 регламентирует только электрические параметры и не описывает (в отличие от RS-232) разъемы / контакты / дополнительные линии. Вернемся к нашим модемам. С течением времени росли и скорости передачи и вычислительные возможности устройств (причем не только терминальных, но и передающих). Поэтому от аппаратного управления потоком и, соответственно, от использования линий RTS / CTS в RS-232 стали отказываться. И это не помешало модемам работать. Вы ведь не сомневаетесь, что USB-модемы работают нормально, хотя они никаких RTS / CTS не знают в принципе? Тогда почему вы сомневаетесь, что модем с RS-232 без RTS / CTS не сможет работать или будет работать плохо? Но top пишет, что: [q] ... производители модулей делают сигнальные линии CTS-RTS для управления потоком информации, превышающей буфер и скорость передачи в эфир. [/q]
И вот тут он прав! Да, производители модулей ДЕЛАЮТ, а производители модемов РАЗРЕШАЮТ НЕ ИСПОЛЬЗОВАТЬ, для чего и придуманы AT-команды игнорирования этих сигналов. И мы не используем (а с RS-485 это и в принципе невозможно), потому что в нашем случае скорость "потока информации" многократно ниже "скорости передачи в эфир"! В предыдущих сообщениях я специально дважды подчеркнул - в описываемой в данной теме ситуации скорость передачи "вычислитель - модем" составляет всего 19200 бит/c. А когда мы работаем с Эльфами - так и вообще 4800. Т.е. модем, даже несмотря на все типичные для GPRS задержки передает данные "влет", и его буфер при этом освобождается раньше, чем вычислитель успевает его заполнить. Поэтому ни размер буфера, ни отсутствие линий RTS / CTS, ни скорости передачи в нашем случае теоретически влиять на работоспособность модемов, коммуникаторов и т.п. не должны. Я в этой теме описал недостатки каратовских коммуникаторов, выявленные как бы "до связи": коммуникаторы зависают в непонятном состоянии и не могут (в этом состоянии) выйти на связь (зарегистрироваться в сети, соединиться с сервером), коммуникаторы "сбиваются с расписания" выходов на связь и т.п. Модем Robustel не зависает и всегда выходит на связь по расписанию, т.к. в нем, очевидно, лучше продуманы алгоритмы обработки всевозможных внештатных ситуаций. Но об этом я напишу позже в теме про этот модем. Сравнение логов обмена с модемом и с коммуникатором, стоявшим на том же объекте до модема, показывает, что коммуникатор время от времени переставал выходить на связь (оживал только по СМС-команде), а при выходе на связь часто просто вообще не отвечал на запросы сервера. Т.е. не посылал в ответ ни байта. Почему? - думаю, в моих условиях (коммерческие узлы, да еще и очень далеко от меня расположенные) разобраться в этом сложно, а в "лаборатории" ситуация не воспроизводится. | | |
top
Изгнанный
Откуда: Керчь, Крым Всего сообщений: 406 СсылкаДата регистрации на форуме: 22 июня 2010
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 23 ноября 2012 12:09
[q] А теперь по поводу всего остального. top работает в фирме, которая предлагает системы сбора данных, основанные на применении собственных устройств. Поэтому во всех своих сообщениях top пытается убедить читателей в том, что "стандартные" модемы не приспособлены для работы в сетях GSM, а устройства других ("не top") разработчиков - это вообще откровенный хлам. Парадокс: производители, выпускающие и продающие свои модемы десятками и сотнями тысяч штук не в курсе, что эти модемы ни на что не годны?[/q]
Дмитрий, не очень хорошо додумывать и выдавать СВОИ мысли за чужие высказывания. Это просто некультурно. Я нигде не писал, что реализация прозрачных каналов - неработоспосбна, а модемы для неё - хлам. Это всё ваши мысли от непонимания или нежелания понимать факты, а манипулирование размытыми понятиями типа "мистика", "это модем лучше/хуже". Неважно в общем. Мы уже давно реализовали прозрачный канал для тех вычислителей, которые позволяют его реализовать. Только в России выпускают сотни тысяч спец.средств телеметрии не используя "стандартные модемы" ( кстати что ЭТО? "стандартный модем"? Круглый квадрат? ). Потому что не ко всем типам оборудования ОНО подходит. В частности с оборудованием , где период квитирования менее 1-2 секунд - это заведомо "глючное" техническое решение. Н-р, есть такой тепловычислитель supercal 531 - после послыки посылки "пробуждения" надо в течении 500мс-1с подать команду соединения и также быстро опросить Такая же ситуёвина с Kamstrup multical 66. Сначала подаётся посылка 300 бод, а ответ приходит на скорости 1200 - как вы видите эту реализацию на "стандартном модеме"? [q] А вот в стандарте RS-485 этих линий никогда не было, т.к. это стандарт связи между "равными" устройствами по общей двупроводной шине. Вообще RS-485 регламентирует только электрические параметры и не описывает (в отличие от RS-232) разъемы / контакты / дополнительные линии.[/q]
RS485 это просто помехоустойчивый интерфейс. Он не может ничего регламентировать. Это бред. Вы можете по нему пустить весь набор сигналов RS232. [q] Вернемся к нашим модемам. С течением времени росли и скорости передачи и вычислительные возможности устройств (причем не только терминальных, но и передающих). Поэтому от аппаратного управления потоком и, соответственно, от использования линий RTS / CTS в RS-232 стали отказываться. И это не помешало модемам работать. Вы ведь не сомневаетесь, что USB-модемы работают нормально, хотя они никаких RTS / CTS не знают в принципе? Тогда почему вы сомневаетесь, что модем с RS-232 без RTS / CTS не сможет работать или будет работать плохо?
[/q]
Если вернуться к модемам, то в реальности СНГ скорость по GPRS(10класс) ограничена 4-9Кбодами. USB модемы очень даже "знают" сигналы RTS|CTS Не обманывайте людей. Если в USB только 2 информационных вывода - это не значит, что управления потоком там нет. [q] потому что в нашем случае скорость "потока информации" многократно ниже "скорости передачи в эфир"![/q]
Скорость передачи в эфир зависит от кучи параметро: схема кодировая, мощность модема, удаление от базовых станций - и 300 бод часто бывает. [q] Т.е. модем, даже несмотря на все типичные для GPRS задержки передает данные "влет", и его буфер при этом освобождается раньше, чем вычислитель успевает его заполнить.[/q]
Кроме "проблемных объектов" и "нового года и праздников" В чём собственно проблемность я описал выше. [q] Почему? - думаю, в моих условиях (коммерческие узлы, да еще и очень далеко от меня расположенные) разобраться в этом сложно, а в "лаборатории" ситуация не воспроизводится[/q]
Вы модем в заземлённое ведро закройте Воспроизведётся. | | |
top
Изгнанный
Откуда: Керчь, Крым Всего сообщений: 406 СсылкаДата регистрации на форуме: 22 июня 2010
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 23 ноября 2012 13:30 Сообщение отредактировано: 23 ноября 2012 13:56
В реальности существуют только 2 вида телеметрии: 1) Ч1<-любой интерфейс->Ч2<-GSM|GPRS->Ч3<-оборудование БС->Ч4<-internet->Ч5 сравнивать проще на людях )))) Ч1 - человек 1 - источник информации. Ч2 - человек 2 - передающий информацию с помозью радиостанции Ч3 и Ч4 - имитируют оборудование БС( базовых станций оператора) Ч5 - принимающая сторона Главный НЮАНС: Ч3 и Ч4 ОБЯЗАТЕЛЬНО И ВСЕГДА отдают предпочтение реальному общению ( голосу, CSD) , а не работе с радиостанцией. В случае с прозрачным каналом скорость передачи и качество передачи определяется самым слабым звеном. В данном случае это GPRS. Даже если на модеме написано до 170 Кбод - это не так. ДО - не значит, что это реальная скорость. РЕальную скорость определяет - захочет ли человек 3 и 4 работать с вами и как много времени они готовы вам уделять. При этом они не предупреждают никого, они просто не слышат вас, а вам не приходит подтверждение сервера. Человек 1 может бесконечно долго передавать информацию через Ч2, чтобы тот передал её Ч3, но он не слышит подтверждение и хранит эту информацию в голове на определённый объём ( который нельзя увеличить), по превышению которого данные теряются. Дмитрий, вы наивно полагаете, что скорость передачи Ч1 - Ч5 определяется скоростью последовательной передачи от Ч1 к Ч3 - но это же бред. Теоретически и особенно практически Если человек Ч1 не слышит/не слушает Ч2 , что изза плохих метеоусловий , Ч3 и Ч4 могут принимать данные только со скоростью 30 , а не 100 слов в минуту, то Ч5 многократно будет давать новые запросы по каналу( о чём вы выше свидетельствовали) . В итоге скорость передачи упадёт пропорционально кол-ву запросов на каждый пакет. В итоге эффективная скорость может упать и до 10 слов в минуту, вместо выдаваемых 30. Пропорционально вырастает и трафик, который надо оплачивать.
2) Способ реализации второй ( который вы назвали "собственное оборудование"). Сначала Ч1 надиктовывает в блокнот для Ч2 с низкой , устойчивой к помехам или ограниченной производителем, скоростью , после чего Ч2 выдаёт Ч3 эти данные настолько быстро, насколько данные подтверждения приёма приходят от Ч5. При этом исключается куче запросов, которые отвлекают Ч1 ( в приближении к тепловычислителю - садят его батарею).
ЗЫ И дело тут не в регламенте, не в "производитель разрешил", "Интерфейс позволяет" - а в реальности. | | |
Василий Кузнецов
Долгожитель форума
Всего сообщений: 3233 СсылкаДата регистрации на форуме: 28 июня 2011
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 23 ноября 2012 14:37
Ограмное спасибо за такой информативный диспут. Целая кладезь полезной и ценной информации была изложена в удобоваримой форме. | | |
|
Время выполнения скрипта: 0.0462. Количество выполненных запросов: 17, время выполнения запросов 0.0243
|