Как стать автором
Обновить

Моя система тестирования и повышения качества GSM шлюза, часть первая: функциональный и схемный уровень

Время на прочтение12 мин
Количество просмотров20K
Всего голосов 21: ↑21 и ↓0+21
Комментарии53

Комментарии 53

Отличная статья, спасибо!
Даже удивительно, что сейчас разработчики электроники еще выкладывают схемы коммерческих устройств, да еще и с описанием работы узлов.
И Вам спасибо.
мы можем так же описать работу основной прошивки,
там есть: адаптивное эхоподавление на КИХ фильтре, кодеки и декодеки, меню, обработка звука, выдача и помехозащищённое детектирование FSK и DTMF на квадратурных детекторах, и прочие вещи.
Если интересно, то можем опубликовать. А так же приложить часть исходников и разбор их работы (но не все), например FSK детектор.
Для DTMF используем МТ8870, канал обычный звуковой (низкочастотный).
И как они?
Мы использовали HT9170D — но DTMF коды нередко надо набирать во время разговора: когда донабор добавочных, активация винды и голосовое меню. Но у нашей микросхемы было много ложных срабатываний и иногда она срабатывала на широкополосный импульс, например при подъёме трубки паралельного телефона — у такого звука АЧХ идеально ровная порой и приводило с ложным срабатываниям.

Поэтому решили сами сделать детектор DTMF, чтоб ложных срабатываний было минимум: на 27 гигах звука (десятки тыщь часов аудиокниг) не больше сотни.
коды нередко надо набирать во время разговора

у нас такой задачи не стояло, поэтому просто телеуправление.
Опубликуйте пожалуйста!
За статью спасибо, жду продолжения. Взял себе пару моментов на заметку.

Пара вопросов по вашей схеме:
1. При использовании SMD компонентов у вас стоят обычные электролиты. Не думали поставить что-то с большим ресурсом? Хотя у вас керамика присутствует.
2. Почему был выбран именно TOPOR для трассировки?

И еще вопрос на правах оффтопа. Для GSM модулей SimCom (наверное и в Telit так тоже можно — не знаком с линейкой) можно создать свою собственную пользовательскую прошивку внутри самого модуля. Причем размер этой прошивки довольно приличный. В итоге можно управлять и звуком и сигналом и настройками модуля и дисплеями и прочим без внешнего МК.
Но при этом сколько проектов на GSM-модулях видел и работал — всегда есть внешний МК и взаимодействие по UART. Так вообще кто-то кроме производителей телефонов делает?
1. При использовании SMD компонентов у вас стоят обычные электролиты. Не думали поставить что-то с большим ресурсом?

Устройство работает при плюсовых температурах, и мы нашли выводные, качественные, дешевые электролиты с высоким ресурсом.

Но при этом сколько проектов на GSM-модулях видел и работал — всегда есть внешний МК и взаимодействие по UART

Нам нужно качество, поэтому:
У нас своя обработка звука, включая эхо подавление, свои голосовые кодеки и декодек. Это около 150DMIPS. В модулях обычно существенно меньше быстродействие.
Нужно обновление прошивки и такое чтоб не украли: там сделать это сложнее.
Нужно тестирования и система контроля качества: модулем это вообще не сделать
Если начинаешь писать на их SDK, то оказывается что многие вещи либо недоступны, либо неудобно сделаны.

Про топор ответ ниже
У меня всегда только один вопрос к таким платам. Чем действительно топор лучше?
У нас он куплен и есть лицензия. Лицензия удобная — в виде флешь брелка. Он лучше разводит т.к. у него больше степеней свобод чем у тех что разводят под 90 и 45 градусов. Потому что он разводит под любым углом. Результат разводки лучше — т.к. меньше длинна дорожки, меньше паразитное сопротивление и меньше наводки — выше качество. Есть минусы — после Топора надо ручками исправлять мелкие огрехи. И в последних версиях изменили внешний вид — для нас стало жутко не удобно работать.
Вы так написали, как будто я не могу сам зайти на официальный сайт. В принципе, после «У нас он куплен и есть лицензия» можно уже дальше не читать. Если вы используете автоматическую трассировку, то тут конечно особо вариантов нет.
Добавлю: Топор у нас давно, и купили лицензию на него после того, как не смогли вообще в спектре развести, то с чем топор не только отлично справился, да ещё позволил чуток уменьшить плату.
Еще раз повторюсь, если вы автоматом разводите, то никакой трассировщик не справится с более-менее приличными платами. В профессиональной среде разводить автоматом считается моветоном.
Там первый вариант платы как раз очень показателен — типичнейший пример автотрассировки, без какой либо ручной оптимизации.
И про это не надо забывать, тем более при жрущем до 2 ампер GSM модуле. EMC Immunity
мы не столько категоричны и экстремальны.

В реальности плата разводилась так:
В начале вручную были разведены критичные цепи: питание и антенна у GSM модуля по просчёту импеданса и рекомендациям производителя.
Эти цепи были «зафиксированы» — их авто разводчик не будет трогать и заплутать в них не сможет.
Зафиксированые - тёмно зелёным


Далее расставляются элементы отвечающие за аналоговый звук в противоположной стороне платы и был выбран наилучший вариант после авторазводчика: меньше суммарная длинна, меньше переходов, цифровые и аналоговые группы цепей с наименьшими пересечениями и тп. Немало работы после авторазводчика — удаление излишних петлей: авторазводчик маниакально нелюбит переходные и вместо того чтоб поставить переходной он ведёт через всю плату порой самые длининные дорожки.
Вывод: авторазводчик удобно, но руками надо многое делать и всё после него контроллировать и выбирать наилучший вариант его работы, а не абы что, и даже его править и дорабатывать.
Да-да, и BGA о 100500 ногах тоже обязательно ручками на 32-ух слоях разводить, с учетом всех импедансов, посчитанных для каждой дороги вручную на калькуляторе.
«Меньше паразитное сопротивление» говорите? У вас блокировочные конденсаторы по питанию соединяются длинным тонкими проводочками с соответствующими пинами микроконтроллера.
Мне вот это место понравилось
image

Тут все прекрасно, и толстые вензеля слева, и тонкий проводник справа. Я конечно не умоляю достоинств Топора, но как по мне — разведенные им платы просто не красивы.
Эти два кондёра на схеме
image

Схема работает по постоянке + шумы стабилизатора из-за пропусков шима, шумы в этой точке порядка 100мВ на 60В (0.2%).
Вопрос: какой ток через 50нф потекёт, и надо ли дорожки длинной в 1мм делать толщиной с палец?
А я не про кондеры. Я про 4 параллельных резистора, и про то как трассировщик на автомате их развел. Я не Топор, и не выписывал бы эти зигзаги, а сделал бы намного проще, тем более там цепь питания.
image
извините, но кроме эстетического негодования, есть в этом какие либо тех проблемы?
Именно в этом месте — нет. А вот что он там понаразводил в районе питания GSM модуля — надо смотреть. Про блокировочные емкости — уже сказали. Смотреть разделение аналоговой и цифровой земель. Еще меня смущает цепь кварца.
c цепью кварца всё впорядке — соседние дорожки это дорожки датчика постоянки с очень хорошим фильтром, или очень тихого аналогово питания, переходных по сигнальным нет, земля подключена короче некуда — сразу в полигон цифровой земли ныряет
Конечно, такая лапша выглядит просто отвратительно. Может сложиться впечатление, что человек, который разводил эту плату, только-только начал заниматься этой тематикой.
есть такой антипаттерн проектирования: черезмерное стремление к идеалу.
Просьба не забывать что сделав такие мелочи, как максимально близко расположенные конденсаторы, мы резко ухудшаем технологичность сборки, или увеличиваем плату, или ещё чем либо жертвуем.
Просьба не забывать что это изделие собирает вручную в больших количествах один человек преклонного возраста. А всеми шлюзами занимается 5 человек включая разработчиков, администратора производства и упаковщика.
И цель статьи не «смотрите как я всё сделал идеально, спорим что ничего никогда не найдёте».
Просто хочется подчеркнуть, что это не должно быть нормой.

У вас плата без шелкографии со стороны, где подавляющее количество компонентов, и её собирают вручную. А вы говорите о технологичности сборки.
норма это когда невозможно всё сделать идеально за отведённые деньги и время.
Шелкографию сборщик просил убрать — мы сделали.
Есть риск что из-за разного поверхностного натяжения при оплавлении в печи резисторы эти раком повстают. При автоматическом монтаже лучше чтобы к паду приходила дорожка только с одной стороны.
Есть, но там акцентировалось внимание на ручном монтаже, и с другой стороны резисторов — дорожки с двух сторон.
более того — сейчас основная проблема в людях: тот монтажник что собирал уже не справляется с объёмом и подключили других. Количество не прошедших с первого раза тестов выросло в разы, но со временем стало постепенно падать — люди привыкают и обучаются.
Другая проблема это бракованные или поддельные компоненты — тесты их обнаруживают, но это эпичный вынос мозга и сразу всё останавливается на несколько дней. Пример: Совсем недавно ёмкость кондёров на рабочем токе (2А) оказалась на 30% меньше, а допустимо отклонение 10%, оказалось что они не LowESR, а RLC метр не мог это замерить т.к. замерял существенно меньшим током. Убили день на выяснение, а перед этим неделю производство втихаря мучалось проклиная баги тестовой прошивки.

Эти две проблемы 3/4 затрат времени — потому что они связаны с людьми, и задача нас инженеров скорее работать с людьми чем работать с железом.
Некоторые особенности TopoR:
— Сокращение времени проектирования в несколько раз;
— Высокая скорость и великолепное качество трассировки;
— Наилучшие показатели электромагнитной совместимости;
— Полная поддержка проектирования сложных и высокоскоростных плат;
— Обмен данными с популярными САПР печатных плат;
— Разработанные платы надежнее и лучше подготовлены к производству;
— Оптимальное соотношение цена/качество.

+ Российский разработчик, да и сейчас вроде какой то редактор схем появился.
Получается, шлюз по сути работает как порт FXS, и может распознавать как набор номера — это сделано только для DTMF программно или ещё и импульсный на случай войны работает? Как можно тут почуять импульсный набор, по росту тока в линии?
Вы так классно расписали работу, что аж захотелось купить шлюз! Сам для своей коллекции телефонных аппаратов старых хочу просто сделать автомат, который работал бы как АТС, и при наборе номера распознавал бы в линию какую-либо историческую справку по аппарату, либо аудиофрагменты какого-либо года…
Как можно тут почуять импульсный набор, по росту тока в линии?

Да, цепочка такая: рост тока вызывает падение напряжения на больших резисторах 680 Ом, это напряжение есть на одном из них, потому что один подключен к питанию +48 а другой к земле. Поэтому напряжение берётся с обоих, диодной сборкой выбирается максимальное — цепь SLIC_LINEU (выделена жёлтым на схеме), и далее поступает на резистивный делитель 1:21 и он же фильтр RC чтоб звук не ловить. После него естественно защита, хоть и 100кОм, но на всякий случай. И на вход АЦП у МК.
Схема детектора постоянки в телефонной линии



ещё и импульсный на случай войны работает
да работает, и проектировался на случай войны: проверялся на имитаторе длинной линии, длинной в 1км, имитатор представляет из себя 10 катушек телефонных кабелей по 100+м сомнительного качества на скрутках и «соплях». Проверялась вся партия в много штук. Временные допуски так же плюс минус километр и поддерживает даже самые старые телефонные аппараты.

А насчёт автомата — в шлюзе скоро будет автоинформатор и автоответчик, возможно он подойдёт для Ваших нужд. Пришлите пожалуйста более понятное описание, желательно с примерами в личку.
Спасибо за консультацию! А ещё какие функции у линий SLIC_LINE?

Сформулирую подробнее описание функционала моего прибора, и напишу, обязательно.
SLIC_LINE это цепь детектора напряжения в линии, определяет импульсный набор, подъём трубки, очень плотно участвует в тестировании, но это уже материал второй статьи про тестовую прошивку.
А библиотекой для P-CAD, нет желания поделиться? Не принципиально, но смотрю почти все компоненты пытались выполнить в стиле УГО ГОСТ.
А мы и не знали что это по ГОСТу — просто наращивали свою библиотеку по мере надобности. Давать её сомнительная затея — там бардак и есть свои ляпы и особенности — мы тоже ленимся иногда.
Нет нет, прошу прощения. Я какраз таки и сказал, что: «пытались выполнить в стиле УГО ГОСТ». Я не сказал, что Вы все правильно сделали в плане соблюдения ЕСКД. Просто в основном у всех библиотек, самое ценное — это посадочные места: footprint, pattern — называйте как хотите. Я из-за этого поинтересовался, мне не принципиально.
Респект автору(ам) за хороший отчет по хорошо проделанной работе.

Есть одно подозрение — согласно статье, в процессе разработки чуть ли не половина усилий было потрачено на борьбу с помехами — описанный их объем скорее соответствуют Hi-Fi или Hi-End аппаратуре с динамическим диапазоном 80+ dB и полосой частот 20-20000 Гц.

Телефонный же канал имеет ЕМНИП 300-3300 и хорошо если 40 dB динамического диапазона. Понятно, что широкополосные помехи от импульсных источников пролезут и в этот спектр, но существует подозрение, что в конструкции есть либо проблемы с разводкой печати, либо с соблюдением эвристик проектирования смешанных аналого-цифровых схем — и соответственно, большинство этих мер — борьба с самим собой.

Простите за негативно-подозрительный коммент, однако. Скорее всего, подозрения беспочвенны, и текущее решение — результат большой и тщательно проделанной работы
И вдогонку — очень зрело смотрятся аппаратно-программные средства самодиагностики — то, что об этом было подумано, и имплементировано не только с программной, но и с аппаратной избыточностью, вызывает уважение.
Да, мне тоже так показалось, я проектирую шлюзы для голосового радиооборудования, ни каких усилий по борьбе с помехами не предпринимал в принципе, так как словить помехи в таком узком спектре и малом дд достаточно сложно. Здесь мне кажется некоторая нехватка опыта и излишнее увлечение автотрассировщиком. Плата несложная, её лучше ручками разводить, ни чего высокоскоростного/высокочастотного нет.

Автору спасибо, интересно про софт почитать, особенно про эхоподавление.
, так как словить помехи в таком узком спектре и малом дд достаточно сложно.

да, так и есть, но если используешь уже готовые модули телефонной линии, в первом варианте шлюза у нас были только помехи по питанию, решились они грубой силой: поставили вот такой вот здоровый конденсатор по цифровому питанию и они почти полностью ушли. А были они только потому, что у китайского модуля не было раздельного питания аналога и цифры, а звук был аналоговый и поэтому зависел от помех по цифре.
Совсем другое дело когда надо сделать телефонную линию самому. Когда на фоне 48 В, помеха всего в 1В (-33dB), даст на звуке 0 dB.
300-3300 недостаточно. Схема выдачи может, например, загенерить на 10кГц. И такое было и не раз, в других схемах из за ошибок сборки. И эти 10кГц во первых слышны и крайне назойливо, во вторых будут мешать работе АОНа. Поэтому выбран диапазон тестирования АЧХ в 16кГц: его достаточно чтоб покрыть все случаи что у нас были и учитывались при проектировании второго варианта.

Такая маниакальная борьба с шумами из-за особенностей телефонной линии, звук надо выдавать в 1В на фоне 48В постоянки что уже -33dB, т.е. уже надо делать схему питания не на 40dB, а на 73dB.
А почему нельзя разделить AC и DC цепи, например кондером и дросселем? И никто тогда не обяжет использовать для ввода сигнала в линию генератор тока — можно будет вводить генератором напряжения через конденсатор
Вы предлагаете ставить кондер, но нужно два в + и в — т.к. земли схемы нет на телефонном разъеме, дроссель, мощный выходной каскад (2 транзистора) с защитой который не сгорит при подаче импульсов. Скорее всего еще мощные резисторы чтобы по переменке не замкнуть схему.
Но зачем если все решается существенно проще: одним транзистором?
Плата — жуть. Автороутер — зло.
Спасибо, я безумно рад что все остальное, значительно более важное, получилось без претензий. Я очень рад что всё недовольство далеко от технической части. Это очень хорошо когда только эстетика не нравится и нарушены личные стереотипы о том как должна выглядеть плата. Но я не против чтоб кто нибудь поспорил с тысячами успешно работающих без нареканий экземпляров.
Без претензий? Недовольство далеко от технической части?

Далее стабилизатор на 3.75 В и 0.5 А. GSM модуль во время работы потребляет импульсами 500 мк. сек х 2А

В следующей партии модулей вам поменяют ревизию и внутренности, и он будет потреблять 1сек х 1А — хватит вам емкости?

Также свой вклад в фильтрацию вносит стабилизатор — он ограничивает импульсы потребления с 2 А до 0.5 А, не позволяет брать все 2А с блока питания, эти импульсы берутся с конденсаторов, чем уменьшается влияние на другие ветки питания.

Как модуль отнесется к тому что его питают по сути нестабилизированным напряжением? Не хотите менять 34063 на более мощный стабилизатор — ставьте внешний ключ и не ограничивайте самый потребляющий элемент в вашем устройстве.

Вы увлеклись всякими сервисными функциями — контролем напряжений во всех точках, но ключевые моменты у вас почему то сделаны довольно странно. И красивость или некрасивость разведенной автороутером платы — дело десятое.
В следующей партии модулей вам поменяют ревизию и внутренности, и он будет потреблять 1сек х 1А — хватит вам емкости?
500 мк. сек х 2А — так работает 2G GSM, уже 20 лет он так работает и вряд ли его кто изменит. 100% требований даташита на модуль учтены и более того это проверяется в каждом изделии, включая в основную прошивку, там тоже есть тест при каждом включении.

Как модуль отнесется к тому что его питают по сути нестабилизированным напряжением?
основной вход питания называется Vbat и предназначен под работу от нестабилизированных литиевых батарей.

Вы увлеклись всякими сервисными функциями — контролем напряжений во всех точках
всё остальное сделано штатными средствами и описано будет во второй части. Контролем напряжений — это очень важная штука. Это не что-то там вспомогательное. От него зависит всё остальное. Тем-более когда работаем с аналоговыми сигналами.
И что сделано странно?
500 мк. сек х 2А — так работает 2G GSM, уже 20 лет он так работает и вряд ли его кто изменит.

GSM умеет менять выходную мощность в зависимости от дальности до соты. И если в черте города вам хватает того, что вы запасаете в емкостях после стабилизатора — то не факт что так будет всегда, и ваш контроль напряжения во всех точках тут не поможет.

основной вход питания называется Vbat и предназначен под работу от нестабилизированных литиевых батарей.

Литиевая батарея отдаст пару ампер и не чихнет, в отличие от 34063. И запас энергии у нее намного больше, чем в нескольких электролитах.

И что сделано странно?

Питание GSM модуля потребляющего в пике 2А от стабилизатора на 500mA, в надежде что пики вытянут электролиты на выходе стабилизатора. У вас в даташите приведена в качестве примера L5973D. Не доступно? Поставьте внешний ключ на 34063. Толку от ваших контролей напряжения, если из-за недостатка питания модуль не сможет проинициализироватся или зарегестрироваться в сети.
The GSM system is made in a way that the RF transmission is not continuous, but it is packed
into bursts at a base frequency of approx. 217 Hz, and the relative current peaks can be as
high as about 2A.
6.2. Power Consumption
см Рис.
image


Вы спорите с стандартами GSM и тем как сделан модуль. Контроль поможет: мы точно узнаем что именно оно виновато, потому что есть датчик и оно отслеживается. Случится — узнаем. И я Вам проставлюсь. Договорились?
Да ваше устройство, вам и флаг в руки. Только вы приведите весь абзац, в котором английским по белому написано, что (не дословно) «передача идет пакетами с частотой пакетов примерно 217 Гц. При этом пиковое потребление может доходить до 2А, и что и питание и разводка платы должны быть рассчитаны на это пиковое потребление.»
И дальше идет пункт 6.3.1.2 в котором приведена схема стабилизатора на L5873D. У вас стоит 34063 который при КЗ на выходе максимум отдает 1,1А, рабочий ток — 500mA.
Я спорю со стандартами? Ну ОК, спор окончил.

В качестве PS: есть у меня мысль что и помехи с которыми вы боретесь двойными стабилизаторами линейный+импульсный и возбуд на 10 КГц, с которым вы по вашим словам уже сталкивались — это и есть результат ошибок в разводке платы и некоторых ошибках в схемотехнике. Но вы пошли по пути усложнения и контроля.
Только вы приведите весь абзац, в котором английским по белому написано

Привожу абзац
image
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории