Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

Проблема с RS232 - сбиваются CTS/RTS

Ср ноя 28, 2012 16:22:50

Здравствуйте.
Возникла такая проблема: есть микроконтроллер PIC33, который связан с GSM-модемом с по RS232 с использованием CTS/RTS. Всё работает нормально, но время от времени одно из устройств (бывает как модем, так и PIC) выводит на линию квитирования запрещающий сигнал, и соответственно, другое устройство прекращает передачу. Система зависает в таком состояний и лечится только перезапуском.

Сама по себе передача небольшая - периодически по нескольку байт (как в одну сторону, так и в другую). UART и CTS/RTS на микроконтроллере управляются аппаратно. Скорость 9600.

У меня возникло предположение, что в модуле UART на МК (а может быть и на модеме) иногда возникают ошибки принятия (сбивки скорости, или ещё чего-нибудь), и приёмный буфер заполняется не полностью и зависает в таком подвешенном состоянии, и поэтому устройство запрещает дальнейший приём, высылая соовтетствующий сигнал на линию квитирования.
Может быть кто-нибудь уже сталкивался с подобным?

Re: Проблема с RS232 - сбиваются CTS/RTS

Ср ноя 28, 2012 20:54:33

А ошибки приема/передачи обрабатываешь ?
Из-за помех в приемном буфере вполне может оказаться ерунда,
обычно перед началом обмена посылают 0xFF, чтоб это ушло по frame error
Из вариантов :
можно подтянуть линии USART резисторами на землю;
можно отключить аппаратное управление CTS/RTS и дергать их из программы

Re: Проблема с RS232 - сбиваются CTS/RTS

Ср ноя 28, 2012 21:48:21

Есть такой косяк у модемов. Всмысле сталкивался не с именно ошибками квитирования, а с зависанием долго работающих модемов. Причем этой болезнью страдают многие изделия из поднебесной и не только.
Я сигналы квитирования не использовал т.к. пакеты данных были редкие и не большого размера. Просто коротнул RTS-CTS и оно само работает.

Re: Проблема с RS232 - сбиваются CTS/RTS

Ср ноя 28, 2012 23:32:27

Этот случАй всех злее (С) вот мультик не помню....
Хотелось бы увидеть программную обработку пропуска стопового бита и переполнения 2 байтового буфера...
Согласитесь, ничего сверх чего-то не прошу.
Просто как бы обмен падает не просто так, а по причине (с) капитан очевидность

Re: Проблема с RS232 - сбиваются CTS/RTS

Вт дек 04, 2012 08:10:09

Интересный момент - модем прижимает CTS по время вызова (обмен данными по CSD), при этом если на другом конце модем выключить (разорвать вызов) первый модем через какое-то время приходит в себя и отпускает CTS.

Re: Проблема с RS232 - сбиваются CTS/RTS

Вт дек 04, 2012 15:50:49

Если проблема еще осталась, то как вариант перейти на XON-XOFF. Заодно по активности канала можно узнать когда модем повис и дернуть ключиком питание.
Ответить