Семён сохраняет полезное_)
573 subscribers
217 photos
11 videos
3 files
326 links
Канал о электронике и связи.
Демократии тут нет и не будет! Бан раздается за любое "Ну очевидно, же"
Download Telegram
Продолжаю тему модемов. (Ещё один пост про модем с поддержкой 5G, и я закончу и напишу про свой проект очередного коммутатора из палок и пластилина.)

На этот раз снова модуль от Simcom (второй после Quectel на рынке) SIM7600G-H. Начнём с обзора микросхем, на которых он построен:

MDM9607 — он же Snapdragon X5, SoC, где есть процессор на базе ARM Cortex-A7 с частотой 1,3 GHz, Wi-Fi 5 и BLE. Также он имеет фирменный ADSP Hexagon QDSP6 V5 для обработки сигнала с поддержкой VLIW. RAM — 256 Мб. Настоящий комбайн из мира современных SoC, который сейчас делает Qualcomm. Появился он 10 лет назад, во второй половине 2015 года. Qualcomm гордо зовёт этот чип модемом. Конечно, он уже целый SoC.
Рядом с чипом распаяна микросхема NAND-flash памяти на 256 МБ.
Усилитель Skyworks SKY77916-21 для GSM/3G и одного диапазона для LTE. Имеет уже привычное управление по MIPI. Примечателен тем, что PA построены на биполярных транзисторах (HBT), выполненных из GaAs. Имеет интересный контроллер с поддержкой VRAMP, что обеспечивает управление огибающей GMSK и позволяет снизить влияние внешних факторов. Про современные усилители в модулях стоит сделать отдельный пост как-нибудь.
Усилитель Skyworks SKY77638-11. Схожий с усилителем, описанным выше. За исключением того, что он предназначен для диапазонов 3G/LTE.
И последний — это очередной фирменный PMIC для питания MDM9607.
Если вы хотите, расскажу как можно установить на модуль полноценный linux.
👍7🔥4
По заявке читателя на этот раз разбираю модем на базе чипа от ASR Microelectronics — ASR1803.
Мне попался модем Meig SLM770A, который в России поставляет дистрибьютор «Аврора» (у меня был крайне позитивный опыт работы с ними по Meig).

Модем не обладает выдающимися характеристиками: это LTE Cat.4 с поддержкой 3G/GSM и GNSS. Он позиционируется как решение для мобильной аппаратуры, где необходимо передавать не только данные, но и голос. Например, на его базе можно построить мобильный телефон.
Дополнительно вы получаете набор интерфейсов: UART/I2C/PCM/SPI/SDIO, а также среду разработки ASRstudio от производителя чипа.

Сам модем, как уже упоминалось, построен на базе микросхемы ASR1803. Поскольку производитель скрывает из открытого доступа документацию (например, доступ к их сайту из США заблокирован), из открытых источников известно следующее:
микросхема представляет собой SoC с процессором на базе Cortex-A7, ядром Cortex-R5 (предположительно для задач синхронизации и управления DSP) и цифровым сигнальным процессором (DSP).

Предположим для чего нужен Cortex-R5.
Cortex-R5 — управляющее ядро (control plane, RT-задания)
Cortex-R5 занимается высокоуровневым управлением процессами модема в реальном времени, в то время как DSP занят ресурсоемкими вычислениями.

Возможные функции Cortex-R5:

Управление DSP: загрузка кодеков, конфигурация режимов, обработка статусов;

Управление PHY-ресурсами: частотные и временные настройки, контроль мощности;

Работа с MAC-интерфейсом: передача и приём буферов от/к DSP;

Обработка событий L1 (управляющая логика): запуск HARQ, DRX, таймеров и т.п.;

управление режимами снами, пробуждениями, тактированием блоков.

DSP — обработка сигнала (data plane)
DSP занимается задачами физического уровня LTE:

OFDM-модуляция/демодуляция;

FFT/IFFT, эквализация;

Turbo/LDPC/Viterbi-декодеры;

Цифровая фильтрация, компенсация искажений;

Обработка и коррекция ошибок.

Также чип содержит встроенный LTE-модем и GNSS-приёмник.

Дополнительно на плате используется вторая микросхема — фирменный PMIC от ASR, PM80x.

Также присутствуют два интересных усилителя от компании Lansus:

NZ5627G — усилитель для LTE-диапазона. Управляется через MIPI, поддерживает множество диапазонов (BandS), внутри интегрирован СВЧ-коммутатор, что делает его схожим с микросхемами от Skyworks.

NZ5596G — готовый RF-фронтенд. Под одной крышкой объединены усилитель, коммутатор, делитель и фильтры.

У края платы можно заметить микросхему с маркировкой 8p7u — это AW13510 от Awinic. Это СВЧ-коммутатор, используемый для коммутации двух портов на одну антенну.

Также на плате распаяна микросхема FLASH-памяти объёмом 16 Мбайт.
На этом всё, если у вас будут вопросы или предложения про какой ещё модем рассказать, пишите комментарии.
👍4
Так как в голосовании победил вариант про алгоритмы в LTE модемах начну цикл рассказов о работе LTE модема.
Для удобства я буду называть модем UE(User equipment). Да и так принято стандартом.
Начнем с рассмотрения ключевых шагов подключения к сети:
1.Инициализация модема (UE Power-On). Перед тем как модем начинает искать сеть он загружает PLMN список зон. PLMN - идентификатор зоны обслуживания мобильной сети, который представляет собой уникальный код, состоящий из MCC (Mobile Country Code) и MNC (Mobile Network Code).
Один абонент принадлежит только одной домашней PLMN — HPLMN (Home PLMN). Если абонент находится в роуминге (не внутрисетевом), то это уже будет гостевая PLMN — VPLMN (Visited PLMN).
Также сим-карта может содержать и запрещенные к работе PLMN (Forbidden PLMN list).
Далее считывается содержимое SIM карты. Из нее модем получает IMSI(Ваш индивидуальный номер абонента), ключи безопасности и параметры сети, также из SIM карты читается свойства режима радиодоступа(RAT). Он зовется - EF-RAT элемент — preferred RAT list). Алгоритм его работы прост:
1.UE получает список доступных RAT от SIM/прошивки/настроек.
2.Сканирует каждую RAT в порядке приоритета.
3.Проверяет доступность PLMN на каждом RAT.
4."Camps on" (становится на прослушку) самой приоритетной доступной RAT.
И да нюансов как будет выбираться RAT достаточно.
Модем выбирает режим радиодоступа при включении, основываясь на:
Настройках SIM (EF-RAT)
Аппаратной поддержке RAT
Последнем успешном подключении
Настройках предпочтений (заводские, пользовательские)
Приоритетах из 3GPP TS 23.122
Далее модем инициирует Cell Selection( 3GPP TS 36.304). Для него есть два режима:
1. Initial Cell Selection
Используется при первом включении или в новой сети.
UE сканирует весь диапазон LTE (DL EARFCN). На самом деле не весь, а лишь только поддерживаемые диапазоны. И знает он их из прошивки. Иногда они хранятся на сим-карте(Предпочтительные band’ы).
Ищет PSS/SSS → находит PCI. Про это мы поговорим в следующей статье подробнее.
Считывает MIB и SIB1/SIB2.(MIB — Master Information Block (общие параметры системы, SIB1 — содержит PLMN ID, таймеры, SIB2 — параметры доступа (PRACH, T300 и др.).
Вычисляет значение критерия уровень сигнала.
Если ячейка подходит (suitable) — UE "camps on" на ней.(«Camps on» — это когда UE остаётся «на прослушке» соты, не устанавливая соединение, но будучи готовым инициировать его.),

2.Используется если UE уже был подключён к этой сети ранее.
UE использует сохранённые данные о:
EARFCN
PCI
тайминге
Быстро восстанавливает подключение к предыдущей соте

Как UE решает, подходит ли сотa?
Ключевой критерий — "suitable cell", определённый в 36.304:
TS 36.304, п. 4.3:
“A cell is suitable if it is a cell on which the UE may camp, meeting criteria including: acceptable signal level, permitted PLMN, and not barred.”
И далее вычисляется по формуле где RSRP( реальный уровень сигнала). Q(минимальный сигнал, указанный в SIB1) и P(корректировка по мощности UE).
Srxlev=RSRP−Q rxlevmin−P compensation >0
Интересный момент что такое P.
Он же UE power compensation). используется при расчёте критериев cell selection и reselection в LTE, и регламентирован в:
3GPP TS 36.304, раздел 4.3 – Cell selection criteria.
учитывает ситуацию, когда UE не может передавать на максимальной мощности, допустимой в ячейке. Это важно, чтобы:
Не переоценить пригодность соты (ведь модем может «слышать» Базовую станцию, но сам не сможет до него "докричаться")
Корректно оценить расстояние/ослабление сигнала.
Без P, UE мог бы выбрать соту с хорошим приёмом, но не смог бы передать RACH*, если его передатчик слабее требований сети.
Это особенно критично для:
Маленьких IoT-устройств
UE с ограниченной мощностью (e.g., NB-IoT, Cat-M)
Пограничных сот

*RACH (Random Access Channel) — это канал доступа, по которому UE (модем, телефон) впервые "обращается" к базовой станции (eNodeB) в радиоинтерфейсе. Он используется:
При первом подключении к сети (после Cell Selection)
При восстановлении связи после потери сигнала
При handover’ах
При переходе из Idle в Connected (RRC_IDLE → RRC_CONNECTED).
5🔥5🐳1
Семён сохраняет полезное_)
Так как посты растут в размере. Мой друг и читатель Алексей посоветовал мне публиковать их в Telegraf. Первый пост здесь и он в продолжении темы про SIM карты - https://telegra.ph/SIM-karta-06-20 #sim_card #lte #gsm
Пришел вопрос, а есть разница между SIM и USIM.

SIM (Subscriber Identity Module) и USIM (Universal Subscriber Identity Module) - это карты идентификации абонента, но USIM является более продвинутой версией SIM, предназначенной для сетей 3G и выше (UMTS, LTE). Основные отличия заключаются в объеме памяти и поддерживаемых технологиях.
SIM-карта:
Используется в сетях GSM (2G).
Обладает меньшим объемом памяти по сравнению с USIM.
Обычно хранит ограниченное количество контактов (до 255).
Может содержать только номер телефона и имя для каждого контакта.
USIM-карта:
Предназначена для сетей UMTS (3G) и LTE (4G).
Имеет больший объем памяти, позволяющий хранить больше информации, включая дополнительные номера, email и другие данные для одного контакта.
Поддерживает более продвинутые функции безопасности и шифрования.
Может использоваться в сетях GSM, но не наоборот.
Вкратце: USIM - это эволюция SIM-карты, разработанная для работы в современных сетях мобильной связи с улучшенными возможностями и безопасностью.
🔥11
Forwarded from linkmeup
Настало время увлекательных историй.
Когда-то давно в далёком немецком Майнфлингене сумрачный тевтонский гений воткнул посреди поля длинноволновый передатчик с позывным DCF77. Вроде бы ничего такого, если бы в 1973 году эта сволочь не начала пикать каждую секунду на всю Европу. И пикает она не просто так, а на скорости 1 бит в секунду, обеспечивая синхронизацию всех часов в радиусе плюс-минус 2000 километров.
Желающие послушать могут настроиться на 77.5 кГц и, скорее всего, 50 кВт изначального сигнала до вас вполне себе доберутся.

https://ru.wikipedia.org/wiki/DCF77

А если на лице твоём сейчас изумление и непонимание, кому это надо в эпоху повсеместного интернета с NTP, то привет тебе передают множество автопроизводителей, наручные часы Casio, метеостанции, настенные часы, в которых стоит микроконтроллер за три копейки, городские уличные часы, и так далее, и тому подобное.
65 лет эта штука пикает в эфир, а когда 14 апреля 2014 из-за грозы она замолчала на час, множество часов в Европе потеряло сигнал точного времени и всем резко стало грустно. Настолько, что решили поставить дублирующий.

Возникает вопрос – а чего такого критичного в этом сигнале? Ответ достаточно смешной. Ведь если у тебя есть бесплатный синхросигнал, ты можешь вообще не запариваться на точность хода часов. Через это многие городские часы получили примерно такую логику работы: через пень-колоду тикаем от нуля до 58,5 секунды, замираем на месте и дальше идём, только получив нужный сигнал. Звучит как костыль, но на практике это решает важнейшую проблему синхронизации тысячи устройств между собой, чтобы они показывали одинаковое время. И речь не столько про часы, сколько про возможность привязывать к ним техпроцессы.

https://en.wikipedia.org/wiki/Swiss_railway_clock

Для желающих вникнуть в формат сигнала есть его описание с диаграммой:
https://www.ptb.de/cms/en/ptb/fachabteilungen/abt4/fb-44/ag-442/dissemination-of-legal-time/dcf77/dcf77-time-code.html

А вообще, таких систем по миру много. BPC, JJY40, JJY60, MSF, WWVB.

https://en.m.wikipedia.org/wiki/BPC_(time_signal)
👍13🔥1
Прошла неделя с последней публикации, а значит время нового поста. Увы из-за работы чаще не успеваю писать. Материал получился крайне сжатым, ибо тема крайне обширная и интересная. Если будет отклик, думаю рассказать о ней подробнее. А в следующей части я напишу о SIB и RACH и RRC.
https://telegra.ph/Sinhronizaciya-v-setyah-LTE-Ochen-kratko-07-03
#lte #pss_sss
🔥93👍1
Forwarded from linkmeup
Когда-то недавно на канале была новость про явление миру первой спецификации Ultra Ethernet, который буквально завтра всех спасет. Ну или должен всех спасти. Но целиком, конечно же, никто в редакции читать не стал, так что давайте обратим внимание на выжимку от более ответственных людей.
TL;DR Игрушка для больших ребят, которые спят и видят как бы езернет заборол инфинибэнд. Так что ты со своей сеточкой на десять камплюхтеров спи спокойно. Но лучше изучить целиком ибо матчасти достаточно много и расписано интересно.
https://medium.com/@tom_84912/a-mostly-unbiased-review-of-the-ultra-ethernet-specification-10d816227839
👍83
Forwarded from linkmeup
Очередное прекрасное найденное в сети. Сегодня передаём привет владельцам нетгиров, потому что зацените лайфхак уровня /b:
- К урлу админки дописываем /debug.htm
- Получаем более лучшую, скрытую админку с возможностью делать портам SPAN/pcap, менять настройка вифи и так далее.

https://github.com/scramblr/NETGEAR_ROUTER_HIDDEN_PAGES/blob/main/README.md
🔥5
Forwarded from likeabus channel (Sergey Bocharnikov)
NVIDIA на прошедшем Netdev 0x19 выступила с докладом, где исследовала проблему синхронизации времени внутри ДЦ.

Суть в том, что NTP их не устраивает по причине своей медлительности. Задержки в миллисекунды внутри распределенных инфраструктур, различных баз данных или, например, в недавно построенной Сфере в Лас Вегасе, по их словам непозволительная роскошь.

Пошли изучать, нашли 3 варианта:

1. PTP

Ну тут и говорить особо нечего, всем известный и широко используемый протокол внутри провайдеров для синхронизации времени. Умеет то, что не умеет NTP. Точность до наносекунд.

Всё бы хорошо, но часто бывает когда у эндпоинта несколько карточек, либо к одной карточке подвязано несколько эндпоинтов (докер, кубер и т.д.), то соответственно возникает большое количество клиентов PTP и приходится поддерживать stateful для каждого, а это проблема.
Поэтому был предложен следующий вариант 👇

2. Клиент-серверный IEEE 1588, он же CSPTP.

Собственно практически тот же самый PTP, только проще.

Стандарт вот, но там как обычно у ieee с доступом какие-то приколы, в общем если найдёте, кидайте в комментарии - https://standards.ieee.org/ieee/1588.1/11644/.


Реализаций немного и есть вот такие:

SPTP - вариант, который предложили инженеры FB, являющиеся соавторами данной презентации;

FlashPTP - автор работает в Meinberg, немецкая компания специализирующаяся на разработке и производстве оборудования для синхронизации времени;

NTP-over-PTP - драфт от инженеров Red Hat, который поддерживается теперь и в chrony - https://chrony-project.org/doc/4.6.1/chrony.conf.html#ptpport.

В целом, все три варианта в той или иной степени по всей видимости очень даже рабочие и если я правильно понял, то первый - SPTP - сейчас и является основным внутри ДЦ FB.


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

3. Hermóðr - новый подход.

Опирается на оценку времени через корреляцию с CPU таймером.

Немного оффтопа 🙂

Если что, слово Hermóðr, или Хермод, оказывается является именем скандинавского бога скорости, аналог греческого Hermes, или Гермес, прикольно то, что у них и имена очень даже совпадают. К слову об уникальности каждого пантеона 🙂


Документации к сожалению нет, только опираться на презентацию и доклад.

Сама суть данного метода, как я понял, заключается в том, что добавляется демон, который получает время из двух источников, один из которых PCIe device, а второй CPU clock. После этого он проводит некоторое вычисление и результат складывает в shared memory. Дальше отдельная библиотека, libhermod, идёт в эту область памяти и забирает последние данные, плюс тоже идёт в CPU clock, и на основе полученной информации экстраполирует точное время. Таким образом, вы обращаетесь к PCIe только один раз, а дальше время обновляется уже без этого взаимодействия, т.е. не требуется постоянного обращения в /dev/ptpX, что сильно ускоряет результат работы и позволяет добиться снижения задержек в 80-100 раз по сравнению с CSPTP.

В общем, пока что выглядит всё так, что этот метод действительно может стать основным для подобных задач.

Ссылки вот тут:
Презентация
Видео
8🔥1🤔1