Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Пакеты 1к и CSD
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
viakon
Не проходят пакеты 1к при соединении CSD. Количество пришедших/отправленных байт совпадает. Такое впечатление что пропадает кусок из середины. Начало совпадает, потом нет куска, потом данные с конца, затем добивается до нужного количества мусором.
Обмен ведется между двумя BGS2. Раньше подобная задача делалась пакетами по 256 байт, никаких проблем не было. Может в CSD есть ограничение на длину?
Alechek
Цитата(viakon @ Feb 26 2016, 10:27) *
Не проходят пакеты 1к при соединении CSD. Количество пришедших/отправленных байт совпадает. Такое впечатление что пропадает кусок из середины. Начало совпадает, потом нет куска, потом данные с конца, затем добивается до нужного количества мусором.
Обмен ведется между двумя BGS2. Раньше подобная задача делалась пакетами по 256 байт, никаких проблем не было. Может в CSD есть ограничение на длину?

Может просто нет аппаратного управления потоком?

Насчет BGS2 не знаю, у SIMCOM все проходит, во всех моделях.
viakon
Цитата(Alechek @ Feb 26 2016, 12:35) *
Может просто нет аппаратного управления потоком?

Насчет BGS2 не знаю, у SIMCOM все проходит, во всех моделях.

По GPRS можно до 1500 байт передавать, правда не пробовал, не было необходимости. Управления потоком нет.
Alechek
Ну, а как Вы хотите попустить 115200 бод в 9600?
Настройте тогда обмен с модемом на 4800 да проверьте еще раз.
Baser
Цитата(viakon @ Feb 26 2016, 07:27) *
Не проходят пакеты 1к при соединении CSD. Количество пришедших/отправленных байт совпадает. Такое впечатление что пропадает кусок из середины. Начало совпадает, потом нет куска, потом данные с конца, затем добивается до нужного количества мусором.

Согласен, типичная картина переполнения приемного буфера при отсутствии управления потоком.
Сначала вы запихиваете в буфер начало пакета, буфер заполняется (скорость передачи в канале маленькая), модем снимает CTS, а вы на это положили и продолжаете пихать данные, которые пропадают.
Потом модем передает буфер (начало пакета), поднимает CTS и принимает в буфер конец вашего пакета и его передает.
Ну а длину пакета вы указали заранее, поэтому в конце модем шлет мусор - данные то уже кончились, середина была потеряна.
viakon
Есть несколько моментов. В составе модема есть микроконтроллер стоит между модулем и портом RS-232. С модулем обмен идет с использованием CTS, вот по внешнему RS аппаратного контроля нет, но зато приемный буфер 1500 байт, куда пакет входит без проблем. Все что посылается в порт модуля выводится в отладочный порт и там весь пакет виден без ошибок. При обмене по CSD длина пакета нигде не указывается, просто пихается 1к байт подряд, в этом случае если б CTS не работало, приходило бы меньше байт, а приходит точное количество.
Baser
Цитата(viakon @ Feb 29 2016, 06:39) *
С модулем обмен идет с использованием CTS, ...

А в модуле режим работы его порта Hardware Flow Control программно точно включен?
viakon
Цитата(Baser @ Feb 29 2016, 15:40) *
А в модуле режим работы его порта Hardware Flow Control программно точно включен?

Был выключен, но включение (AT\Q2) не помогло. Сделал обмен по 256 байт, все стабильно работает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.