Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

GSM модули
http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=18446
Страница 1 от 3

Автор:  TheWizard [ Чет Юли 07, 2022 3:17 pm ]
Заглавие:  GSM модули

накратко без много много подробности - пиши го: офис-килър с муза за писане (по памет)...
дори и да съм допуснал грешки в обясненията се дължи на ... мързел :D преценил съм, че не са съществени за да ги коригирам и едва ли ще ги коригирам

GSM - вече е синоним на телефон от "дръжка" до смартфон, други разбират 2G, трети GPRS...

1G, 2G, 3G, 4G, 5G, 6G означава Номер Генерация за мобилна връзка и определя максимума услуги и скорост на данни, който хардуера за генерацията трябва да предостави на клиентите
Практиката показа, че нито една генерация не напълни на максимума заложените параметри

1G - аналогови мрежи, аналогово радио, аналогов звук

2G - или GSM, общо взето начин с който се предава цифров звук в ефира от клетки до ... дръжки. Как точно работи - не ни интересува
за да предава цифрови данни като Факс, Модем... операторите раздаваха втори номер, а телефона използваше CSD ( Circuit Switched Data ), а данните се предават както звука
или казано: Това е традиционната форма на модемна комуникация, използвана за пренос на данни чрез GSM мрежа. Не си спомням 2G да е бил клиент на интернет
За звук ще спомена само на още на няколко места, по-интересен е Интернет
и защото 2G няма Интернет го надградиха с GPRS и стана

2.5G, a цифровите данни "скачат" по свободните от звук канали
От тук нататък всички думи като GPRS, LTE... разбирай технология за достигане на максимални параметри наложени от генерацията... най-вече скорост на обмен
SMS - е "издънка" в протокола, едно празно място в протокола, които бяха усвоени за прибиране на пари от клиентите

3G - два протокола за звук и данни: по единия върви звук CS ( Circuit Switched ) по другия PS ( Packed Switched )
UMTS и разновидности, a заради скороста се появиха и видео разговори ... стримваше youtube без проблем
CSD може да се подържа, но е премахната като "отживелица"

4G - само PS ( Packed Switched ) образно казано всичко е Интернет и Войс Овър Нет
LTE - както споменах: технология за достигане на максимални параметри наложени от генерацията
LTE-CAT0, CAT1, CAT4 ... CAT666 са КАТегории скорост
С появата на понятието IoT и желание да се узвоят пари от индустрията се появиха
LTE-CAT-М1 и М2 ... които са LPWA ( Low Power Wide Area ) технология към която спадат и LoRa, Sigfox...
общо взето: малка скорост на по-голямо разстояние с по-малка мощност на излъчване ... електромери, водомери, сензори изобщо
М1 и М2 са изцяло LTE протокол и са разпространени в USA и други
Европа използва NB-IoT ( Narrow Band )
NB-IoT e китайско изобретение, което може да работи САМО без каквито и да е GSM технологи. Усвоен е и се предоставя от GSM оператори с цел да покрият нужди на индустрията
NB-IoT не е LTE, ще срещате надпис LTE-NB-IoT и може да ви заблуди
LTE се слага отпред за реклама и за това, че работи в обхвата на LTE и/или CAT-M и/или използва части от протокола за ауторизация
Радиото му работи на съвсем друг принцип, подобно на LoRa с цел да се увеличи разстоянието с по-малката мощност, за да пази енергията на батерията
В GSM мрежата работи или на специализиран канал или в защитните области между каналите на операторите ( от икономическа гледна точка )
Например в България NB се намира на 900 MHz, a там няма LTE, има UMTS, който е стара генерация и не разбира от LTE

5G, 6G и нататък - СКОРОСТ...

За нашата специалност прозрачно за нас ни се предоставя Интернет във вид на AT команди или директен достъп до TCP/IP/RAW сокети, HTTP/S и SSL и други "екстри",
за Звук, SMS, SIM карти - те са заложени в "ядрото" на GSM технологиата и се поддържат от началото и мисля, че са безинтересни...
Повечето модули дават и PPP за външна обработка на TCP/IP

Напоследък се наблюдава тенденция за премахване на 2G и 3G дори са премахнати в някой държави - тъй че внимавайте какви модули избирате
някъде ще видите модул LTE-NB-IoT-CAT-M-GSM ... избран за нормално LTE и настъпахте мотиката...
това означава, че модула подържа: LPWA NB-IoT(Европа) LTE-CAT-M(Щатите) и GSM-GPRS, a за LPWA ви трябва SIM карта, която има правото, чрез друг APN да работи в LPWA мрежата на оператора
и ако няма GSM услуга навярно SMS няма да може да изпратите - SMS зависи от оператора, които го махат от LPWA

"Зоопарк" от Производителите на модули произвеждат "зоопарк" от модули, които реално зависят от чипсета ( SoC ) сложен под "ламарината" и от SDK-то с което е изграден firmware
Масови производители на чипсети са Mediatek, Qualcomm, Huawei и разни по-малки такива. Те не произвеждат физически чиповете, те са продали лиценза и правото на фабрика да произвежда чипа
за някой чипове дори са забравили, че съществуват изобщо. Например на Mediatek чиповете ги произвeжда и обслужва Airoha ( GSM, WiFI, BT ) която има и подизпълнители
интересното е че като ги попитах ( Airoha ) защо няма чипове те отговориха - ще правим 5G :) за което се изисква съвсем друго ниво на технология :finga:
Производители на чипсети са продали или подарили SDK на производителя на модули и тази информация и възможности са "забранени" за нас ( пари и конкуренция )
Повечето SoC подържат и периферия за която дори и не подозирате като LCD, Камера, JPG, MP3, но се орязват подобни екстри от производителите на модули
пример: https://www.youtube.com/watch?v=62bWJpoJi-I

Повечето съвременни GSM модули предоставят Userware SDK за потребителски приложения изпълними от самия модул без външно управление ( за икономия ), а ВСИЧКИ работят с AT команди дори и "отвътре"
Това SDK е базирано на оригиналното С SDK ( чипсет производител ) с което е създадено firmware на модула от производителя на модула
и от последния зависи какъв достъп до периферията и услугите на ядрото и GSM модема ви предоставя, общо взето най-необходимото за вашето IoT приложение
пример за оригинално SDK: най-разпростанените GPRS модули
https://github.com/AIOT-WORKSHOP/AWS_MT2503_SDK
примери за клинтско приложения
https://www.youtube.com/watch?v=MdGzIl_6uzA
https://www.youtube.com/watch?v=XgH9zvNGdGg
https://www.youtube.com/watch?v=VnA0EKnP6oQ

Userware SDK може да бъде нативно С API мост до оригиналните функции в ядрото или директен достъп с прекомпилирани библиотеки
Може да бъде и microPython, JavaScript, Lua и всевъзможни решения

Относно хардуера под ламарината 99% е оригинално чипсет решение предоставено от чипсет производителя... плюс минус по-евтин елемент
Напоследък повечето чипсети са нормален ARM ( нормално GCC ) плюс "екстри", някога може да "светне" и RISC-V
Качеството на модулите - ако имат сертификат се предполага, че са похарчили достатъчно пари за да не се излагат в Европа и Щатите ( всяко правило има изключения )
Цените и support зависят от количеството, които купувате...

и те така - ако на някой е в помощ - бира не отказвам :)

Автор:  Н'бабане Гт'муан'га [ Чет Юли 07, 2022 6:52 pm ]
Заглавие:  Re: GSM модули

Непременно да дойдеш на бира другата седмица

Автор:  Nikola Kirov [ Пет Юли 08, 2022 6:50 am ]
Заглавие:  Re: GSM модули

To да се чудиш нова разработка на какъв модул да започнеш :)

Автор:  TheWizard [ Пет Юли 08, 2022 8:51 am ]
Заглавие:  Re: GSM модули

Бабане, ще питам жената :finga:

Киров, в момента в който си помислиш: Ще използвам АТ команди... и избора приключва :) дириш малък, евтин и достъпен
проблеми има, ако ще "точиш" проекта...

АТ командите е технология от миналия век и firmware обработката им е достатъчно осъвършенствана
SDK-то с което е билднато firmware e дело на производителя на чипсета, а те не са от вчера на "пазара"
В основата на SDK има 99% тествана обработка на всички AT операции
Някой пускат модул с "базово" firmware, други преименуват някой AT команди за реклама и добавят някой екстри
Крайното firmware е тествано многократно - иначе ще изгубят клиенти и яко ще се изложат, ако нящо не работи
естествено се намират и бъгове чат пат, но не е плачевно

И друго - 100% от всички модули са с "индустриална насоченост" за работа с АТ команди основно
Всички други "екстри" - узер апи сдк, питони и жави са на заден план, щото на производителя на модули им куцат идеите с приложенията на модула през 21 век
Обяснявал съм на производители на модули "екстрите" ... :idea: Така ли е? ... Така е, АМА :(

Автор:  TheWizard [ Пет Юли 08, 2022 9:15 am ]
Заглавие:  Re: GSM модули

ако чипето има ресурси ( рам и ос ) за обработка на АТ команди
ето "хубав" сорс за обработка или идея кое как става
сорса е от Андроид версии под 3.0
https://github.com/aosp-mirror/platform ... erence-ril
там има и един "полезен" сорс ( без malloc ) at_tok - за обработка на стрингове разделени със запетая или друг чар

Автор:  itso.t [ Пет Юли 08, 2022 9:24 am ]
Заглавие:  Re: GSM модули

Пишеш неясно и двусмислено. Обикновено "хубав" = лош, а "полезен" = безполезен.
Та, какво всъщност си написал?

Автор:  TheWizard [ Пет Юли 08, 2022 9:35 am ]
Заглавие:  Re: GSM модули

:) не мога да ви кажа хубав и полезен, ако не го разгледате и/или пробвате ... всеки си има предпочитания
под "хубав" разбирай многократно тестван ... от Андроид джаджи
на мен лично горния сорс ми е вършил добра работа

по-принцип обработка на 90% от АТ командите в просто супер-луп приложение не кой знае каква сложност
пращаш, чакаш, приемаш, проверяваш, действие
обаче има едни отговори - URC ( Unsolicited Result Code ) или асинхронен колбак от уарта
и ако тръгнеш и тях да обработваш в луп приложение, обикновено става мазало :)
та горния пример дава добра представа: как

Автор:  dumfree [ Пет Юли 08, 2022 10:02 am ]
Заглавие:  Re: GSM модули

При GPRS (може и при следващите поколения) има един ефект, който не ми е съвсем ясен.
Има пусната сесия за данни, модема (в случая тракер) се разхожда в даден район и няма проблем (определено сменя базови станции в този район)
Но на определени места връзката се прекъсва и модема някакси не се усеща да се презакачи отново за данни, обхват определено има.
По-точно усеща се, но след доста дълго време (минути или часове).
Това май по-скоро е проблем на този който управлява модема, да се усети че няма никой и да направи каквото трябва.

Автор:  TheWizard [ Пет Юли 08, 2022 10:32 am ]
Заглавие:  Re: GSM модули

познат "дефект" :) следствие на 3GPP спецификации - таймаута и реакцията е около 120 секунди заради стандартно и задължително съобразяване с клетката ( master - slave )
по принцип GSM трябва да даде реакция с URC ( разширени такива )
в ядрото се получават съобщенията какво се е случило и причината - загуба на обхват, загуба на оператор, загуба на data-call, загуба на сокет
но дали са включени всички реакции в АТ стека е друг проблем

логиката е обратна на действията
сим, мрежа, дейта-кол, сокет
ако сокета "умре" ще даде грешка при send (след таймаут) ... реконект сокет
ако data-call "умре" сокета ще "умре", а data-call ще реагира в callback (след таймаут) ... реконект това и горното
ако мрежа/сим - горните две ще реагират

крайно решение е таймаут реконект/ресет

когато си "чешех крастата" да интегрирам Ардуино вътре в модул си играх много да "нацеля" точна логика и колбаци за тези неща
и трябваше да се съобразявам да става auto и лесно за потребителя в смисъл и стил на Ардуино

Автор:  miro_atc [ Пет Юли 08, 2022 10:41 am ]
Заглавие:  Re: GSM модули

TheWizard написа:
АТ командите е технология от миналия век и firmware обработката им е достатъчно осъвършенствана


Че е стара технология... стара си е. Но най-интересните моменти така и не се стандартизираха и едни и същи мотики продължават да се настъпват. Същото го наблюдавам и при други технологии. Примерно в момента боря един ESC/pos принтер... ми сякаш е правен от студент дето е преписвал ESC командите без изобщо да схване как трябва да работят и да се ползват.
За АТ командите нямам идея какво ползват за основа, но видимо се повтарят едни и същи бъгове и то при различни производители. Примерно загубата на непрочетени данни при затваряне на сокет. Това карахме едни да си го оправят, наскоро колегата подкара един сравнително нов модул на quectel и същата мотика.
Другата мъка беше с нотификациите. Първите модули (телетата) си ги праскаха както им дойде и когато им дойде. Че било в средата на данни хич не им пука. После лека полека спряха да ги смесват с данните, но беше голяма мъка докато ги оформят така, че да се разпознава лесно дали ти отговаря на някоя команда или ти вкарва нотификация някаква.
После беше борбата с отварянето на няколко сокета едновременно. И там бая мотики имаше...
Та с две думи като идея АТ командите не са лоша идея, ама реализацията винаги всеки си я прави както му дойде. И при всеки модул логиката е различна. Ако някой иска с bare metal да поддържа различни модули не мисля, че ще му е лесно. При нас е отделен стек с драйвери и пак не е лесно, но поне е възможно и става...

Автор:  TheWizard [ Пет Юли 08, 2022 11:01 am ]
Заглавие:  Re: GSM модули

Цитат:
Че било в средата на данни хич не им пука

де бе, верно ли :D
по стандарт трябва да е в началото или до 300 мс в края

със сокети ги има мотиките навсякъде
решението трябва да се търси в асиннхронна/синхронна конекция, обикновено използват синхронна с таймаут и се "оправдават" със 120 сек таймаут
то попринцип тези неща са зададени в SDK на SoC и много много не ги барат тези дето пишат firmware

затова се чоплех отвътре - по добре да си напиша решението за lwIP от колкото да разучавам какво са искали да кажат с еди кое си

BTW: Миро, мисли как работи lwIP ( повечето нови ) и ако не работи така - има бъг/мотика
и друго - при GSM, сигурен прост сокет - няма гаранция

Автор:  miro_atc [ Пет Юли 08, 2022 11:38 am ]
Заглавие:  Re: GSM модули

TheWizard написа:
BTW: Миро, мисли как работи lwIP ( повечето нови ) и ако не работи така - има бъг/мотика
и друго - при GSM, сигурен прост сокет - няма гаранция


Въпросът е принципен. Без значение какво е API-то трябва да имаш сигурен начин да се разбираш с модема. Както бяха първите (вече не помня телит или телтоника, а може и двете да бяха), тръгваш да четеш данни от сървъра, онова прекъсва данните и вмъква нотификация. Съответно трябва да си сканираш данните, само че ако данните могат да съдържат нещо наподобяващо нотификация си става манджа с грозде. Слава Богу от години престанаха с тая глупост. Пускаш команда "АТ+CMDXX", то трябва ти отговори "+CMDXX... отговор". Все още някои не стандартизират, демек при една команда отговорът започва по един начин, при друга по друг. Но поне може да се ориентираш дали е отговор или нотификация.

Относно самото API... Под lwip предполагам разбираш berkeley sockets. И при мен това си е крайната цел. Всичко накрая изглежда като сокети, без значение дали е gsm/gprs дали е WiFi или етернет. Приложенията винаги работят със сокета и никога не се интересуват какъв е точно интерфейса.
Въпросът е, че сокет API-то ти е по дефиниция локално, демек на контролера на който е и приложението. Ако ползваш самия модул и като хост, то може да си спестиш АТ-командите и директно да викаш lwip или там какъвто стек има в модула. Но при мен тоя сценарий не е особено подходящ. Процът винаги е отделен и си комуникира с каквото му закачиш. Та няма как да се ползва API, трябва си протокол някакъв... И като цяло АТ команди/протокол не е лош, стига да е имплементиран смислено от страна на модула ;-)

Автор:  TheWizard [ Пет Юли 08, 2022 12:52 pm ]
Заглавие:  Re: GSM модули

прав си - зоопарк производители...


Какво има под капака на GSM SoC ( чипсет )

Хардуер:
- Модем процесор обикновено DSP ( +- FPGA ) с DSR радио или казано накратко: модем - мен лично тази "кутийка" не ме интересува. В тази "кутийка" понякога слагат и GSM стека за по-бързо да стават нещата
- Аплицационен процесор APP ( минимим един ) ARM всевъзможни весии, чат-пат MIPS, в бъдеще може и RISC-V. Този е поле за действие на firmware девелопърите ( модул производител ) на база SDK ( чипсет производител )
Връзката между двате ядра е или жица(старо) или регистър(ново) за RPC обмен на съобщения и структури данни между тях
- и разни всевъзможни хардуерни "кутиики" като FLASH, RAM, стандартни периферии ( APP ARM ) и хардуерни ускорители за LCD, камери, JPG и видео...

Този SoC не е мислен за модул, Мислен е за пълноценна "шарена дръжка" или wearable приложение ( часовници, фитнес тракери... )
това, че някой го използва за 2 жици AT команди си е негов проблем и на тези след него

Софтуер: ако разгледате SDK на ESP32 е ... същото
- RTOS, драйвери, стекове, апликации
Старите GSM използват най-различни RTOS и стекове на отдавно забравени по-по-най платени софтуерни фирми.
В момента нещата са: FreeRTOS ( или подобна ) за "слаби" GSM, или ThreadX или Linux/Android за от 4G нагоре модули
Ако ОС е FreeRTOS подобна, следва: lwIP, mbedTLS и целия "зоопарк"

INIT на ARM, модем, OS, драйвери и периферии ... Main таск и всевъзможни таскове за протоколи и услуги
Връзката между таскове е messages & task queue
Един от тасковете е обработката на AT команди на база RPC и мулти-таск обмена на съобщения и параметри
АТ командите се обработват от масив[n] структури { AT-STRING, параметри и callbacks } а начина за обработка е SDK определена
Някъде, може да бъде стартиран и таск за за изпълнение на user application вътре в модула

и те така

Автор:  Nikola Kirov [ Пет Юли 08, 2022 1:47 pm ]
Заглавие:  Re: GSM модули

TheWizard написа:
Киров, в момента в който си помислиш: Ще използвам АТ команди... и избора приключва :) дириш малък, евтин и достъпен
проблеми има, ако ще "точиш" проекта...

Тия неща с управлението са изциклени отдавана.
Въпроса е че нали все разправят че ще закриват 2 и 3G то.

Автор:  TheWizard [ Пет Юли 08, 2022 2:28 pm ]
Заглавие:  Re: GSM модули

мен ако питаш: хвърляш на боб или залагаш на LTE да спиш спокойно
САЩ и Китай се пънят нагоре с G
Индия и Пакистан са в основа 2G
Англия заяви след 10 години
Европа - майка плаче
България - трима оператора. ако един закрие другите ще са на плюс
политика, чипове и най-вече едни много пари определят нещата...

Страница 1 от 3 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/