OpenLinux SIM7600E-H модульдерінің бөлігі ретінде

OpenLinux SIM7600E-H модульдерінің бөлігі ретінде

Пайдаланушы қолданбасын әзірлеу және оны модульге жүктеу механизмі Linux және Windows операциялық жүйелерінде қол жетімді. Бұл мақалада біз берілген SDK мысалдарын пайдалана отырып, қалай жасалатынын егжей-тегжейлі қарастырамыз SIMCom сымсыз шешімдері реттелетін қолданбаны модульге құрастырыңыз және жүктеңіз.

Мақаланы жазбас бұрын, менің таныстарымның бірі, Linux үшін әзірлеуден алыс, SIM7600E-H модуліне арналған өз қосымшамды әзірлеу процесін мүмкіндігінше егжей-тегжейлі сипаттау мәселесіне жүгінуді сұрады. Материалды ұсынудың қолжетімділігін бағалау критерийі «мен түсінуім үшін» деген сөйлем болды.

Мен сізді болған оқиғамен танысуға шақырамын.

Мақала үнемі толықтырылып, жаңартылып отырады

Prelude

Әдетте ұялы байланыс модульдері тек деректерді беру, дауыстық қоңыраулар, SMS жіберу және т.б. үшін пайдаланылады. Мұның бәрі сыртқы басқару микроконтроллерінен жіберілген AT командалары арқылы орындалады. Бірақ сырттан жүктелген реттелетін кодты орындауға мүмкіндік беретін модульдердің санаты бар. Кейбір жағдайларда бұл құрылғының жалпы бюджетін айтарлықтай азайтады, бұл тақтаға қарапайым (және бірдей бюджеттік) микроконтроллерді орнатуға немесе одан мүлдем бас тартуға мүмкіндік береді. Android немесе Linux ОЖ басқаратын LTE модульдерінің және олардың қуатты ресурстарының пайда болуымен танымал процессорларға қол жетімді кез келген тапсырмаларды шешуге болады. Бұл мақалада Linux ОЖ басқаратын SIM7600E-H туралы айтылады. Біз орындалатын қолданбаны жүктеп алу және іске қосу жолын қарастырамыз.

Көптеген жолдармен материал «SIM7600 Open Linux Development quide» құжатына негізделген, бірақ кейбір толықтырулар және ең алдымен орыс тіліндегі нұсқасы пайдалы болады. Мақала модульді меңгере бастағандарға демо-қосымшаны қалай жүктеп алу керектігін түсінуге және кейінгі жұмыс үшін қажетті дағдыларды беруге көмектеседі.

SIM7600E-H кім екендігі туралы қысқаша

SIM7600E-H – Qualcomm фирмасының ARM Cortex-A7 1.3 ГГц процессорында құрастырылған модуль, ішінде Linux операциялық жүйесі (ядро 3.18.20), Cat қолдайтын еуропалық (соның ішінде орыс) 2G/3G/ LTE жиілік диапазондарымен жұмыс істей алады. .4, 150 Мбит/с дейінгі максималды жүктеу жылдамдығын және 50 Мбит/с дейінгі жүктеу жылдамдығын қамтамасыз етеді. Бай перифериялық құрылғылар, өнеркәсіптік температура диапазоны және орнатылған GPS/GLONASS навигациясының болуы M2M өрісіндегі заманауи модульдік шешімге қойылатын кез келген талаптарды қамтиды.

Жүйеге шолу

SIM7600E-H модулі Linux операциялық жүйесіне негізделген (ядро 3.18.20). Өз кезегінде, файлдық жүйе журналдалған файлдық жүйе UBIFS (Сұрыпталмаған блоктық кескін файлдық жүйесі) негізінде құрастырылған.

Бұл файлдық жүйенің маңызды мүмкіндіктеріне мыналар жатады:

  • бөлімдермен жұмыс істейді, олардың өлшемін жасауға, жоюға немесе өзгертуге мүмкіндік береді;
  • тасушының бүкіл көлемі бойынша жазудың туралануын қамтамасыз етеді;
  • нашар блоктармен жұмыс істейді;
  • электр қуатының үзілуі немесе басқа ақаулар кезінде деректердің жоғалу ықтималдығын азайтады;
  • журналдарды жүргізу.

Сипаттама алынды мұнда, сондай-ақ мұндай файлдық жүйенің егжей-тегжейлі сипаттамасы бар.

Анау. Файлдық жүйенің бұл түрі модульдің қатал жұмыс жағдайлары мен ықтимал қуат ақаулары үшін өте қолайлы. Бірақ бұл тұрақсыз қуат жағдайлары модульдің күтілетін жұмыс режимі болады дегенді білдірмейді, бұл тек құрылғының өміршеңдігін көрсетеді.

жад

Жад аймақтарын бөлу келесідей құрастырылған:

OpenLinux SIM7600E-H модульдерінің бөлігі ретінде

Үш негізгі бағытты атап өту керек:

ubi0:rootfs – тек оқуға арналған және Linux ядросының өзін қамтиды
ubi0:usrfs – негізінен пайдаланушы бағдарламасы мен деректерді сақтау үшін қолданылады
ubi0:cahcefs – FOTA жаңартулары үшін сақталған. Қол жетімді орын жаңартуды жүктеп алу үшін жеткіліксіз болса, жүйе пайдаланылмаған файлдарды жояды және осылайша орынды босатады. Бірақ қауіпсіздік мақсатында файлдарды ол жерге қоймау керек.

Барлық үш бөлім келесідей бөлінеді:

Файлдық жүйе
Өлшем
Қолданылған
Қол жетімді
%пайдалану
Орнатылған

ubi0:rootfs
40.7M
36.2M
4.4M
89%
/

ubi0:usrfs
10.5M
360K
10.1M
3%
/ деректер

ubi0: кэштер
50.3M
20K
47.7M
0%
/ кэш

Қолжетімді функционалдылық

Жоғарыда айтылғандай, модуль Qualcomm фирмасының Cortex A7 чипсетіне салынған. Қолданушы бағдарламасын өңдеу және бағдарламаның кейбір бөлігін модульге түсіру арқылы құрылғының негізгі процессорын түсіру үшін мұндай жоғары өнімді ядроны бермеу дұрыс емес.

Пайдаланушы бағдарламасы үшін келесі перифериялық жұмыс режимдері бізге қолжетімді болады:


Толық аты-жөніңіз
Sys GPIO нөмірі.
Әдепкі әрекет
Функция1
Функция2
Тарт
Оянуды тоқтату

6
SPI_CLK
-
UART1_RTS
-
-
B-PD
-

7
SPI_MISO
-
UART1_Rx
-
-
B-PD
-

8
SPI_MOSI
-
UART1_Tx
-
-
B-PD
-

9
SPI_CS
-
UART1_CTS
-
-
B-PD
-

21
SD_CMD
-
SD-карта
-
-
B-PD
-

22
SD_DATA0
-
SD-карта
-
-
B-PD
-

23
SD_DATA1
-
SD-карта
-
-
B-PD
-

24
SD_DATA2
-
SD-карта
-
-
B-PD
-

25
SD_DATA3
-
SD-карта
-
-
B-PD
-

26
SD_CLK
-
SD-карта
-
-
B-PN
-

27
SDIO_DATA1
-
Fi
-
-
B-PD
-

28
SDIO_DATA2
-
Fi
-
-
B-PD
-

29
SDIO_CMD
-
Fi
-
-
B-PD
-

30
SDIO_DATA0
-
Fi
-
-
B-PD
-

31
SDIO_DATA3
-
Fi
-
-
B-PD
-

32
SDIO_CLK
-
Fi
-
-
B-PN
-

33
GPIO3
GPIO_1020
MIFI_POWER_EN
GPIO
MIFI_POWER_EN
B-PU
-

34
GPIO6
GPIO_1023
MIFI_SLEEP_CLK
GPIO
MIFI_SLEEP_CLK
B-PD
-

46
ADC2
-
ADC
-
-
-
-

47
ADC1
-
ADC
-
-
B-PU
-

48
SD_DET
GPIO_26
GPIO
GPIO
SD_DET
B-PD
X

49
STATUS
GPIO_52
мәртебе
GPIO
мәртебе
B-PD
X

50
GPIO43
GPIO_36
MIFI_COEX
GPIO
MIFI_COEX
B-PD
-

52
GPIO41
GPIO_79
BT
GPIO
BT
B-PD
X

55
SCL
-
I2C_SCL
-
-
B-PD
-

56
SDA
-
I2C_SDA
-
-
B-PU
-

66
РТС
-
UART2_RTS
-
-
B-PD
-

67
CTS
-
UART2_CTS
-
-
B-PD
-

68
RxD
-
UART2_Rx
-
-
B-PD
-

69
RI
-
GPIO(RI)
-
-
B-PD
-

70
DCD
-
GPIO
-
-
B-PD
-

71
TxD
-
UART2_Tx
-
-
B-PD
-

72
DTR
-
GPIO(DTR)
-
-
B-PD
X

73
PCM_OUT
-
PCM
-
-
B-PD
-

74
PCM_IN
-
PCM
-
-
B-PD
-

75
PCM_SYNC
-
PCM
-
-
B-PD
-

76
PCM_CLK
-
PCM
-
-
B-PU
-

87
GPIO77
GPIO77
BT
GPIO
BT
B-PD
-

Келісіңіз, тізім әсерлі және ескеріңіз: перифериялық құрылғылардың бір бөлігі модульді маршрутизатор ретінде басқару үшін пайдаланылады. Анау. Осындай модульдің негізінде сіз Wi-Fi арқылы Интернетті тарататын шағын маршрутизатор жасай аласыз. Айтпақшы, SIM7600E-H-MIFI деп аталатын дайын шешім бар және ол дәнекерленген SIM7600E-H модулі және бірнеше антенна түйреуіштері бар miniPCIE картасы болып табылады, олардың бірі - Wi-Fi антеннасы. Дегенмен, бұл бөлек мақаланың тақырыбы.

сәрсенбі (аптаның бір күні емес)

SIMCom сымсыз шешімдері әзірлеушілерге Linux немесе Windows үшін ең таныс әзірлеу ортасын таңдау мүмкіндігін береді. Егер модульдегі бір орындалатын қолданба туралы айтатын болсақ, онда Windows таңдаған дұрыс, ол жылдамырақ және оңайырақ болады. Қолданбаның күрделі архитектурасы және одан кейінгі жаңартулар күтілсе, Linux-ті қолданған дұрыс. Сондай-ақ, модульге кейіннен жүктеу үшін орындалатын файлдарды құрастыру үшін бізге Linux қажет; компиляция үшін виртуалды машина жеткілікті.

Сізге қажет нәрсені жүктеп алу тегін емес - дистрибьютордан сұрауға болатын SDK.

Модульмен жұмыс істеуге арналған утилиталарды орнату

Бұдан әрі біз Windows жүйесінде көптеген пайдаланушыларға ең таныс ОЖ ретінде жұмыс істейтін боламыз.

Модульмен жұмыс істеуді меңгеру үшін бізге бірнеше қарапайым қадамдармен қажетті бағдарламалық жасақтаманы орнату қажет:

  1. GNU / Linux
  2. Cygwin
  3. Драйверлер
  4. АДБ

GNU/Linux орнату

Қолданбаны құру үшін кез келген ARM-Linux үйлесімді компиляторын пайдалануға болады. Біз SourceryCodeBenchLiteARM GNU/Linuxtranslater қолданбасын жүктеп алуға болады. байланыс.

Барлық компоненттер дұрыс орнатылғанына көз жеткізу үшін орнату процесінің бірнеше скриншоттарын қалдырамын. Негізінде, орнатуда күрделі ештеңе жоқ.

Барлық компоненттер дұрыс орнатылғанына көз жеткізу үшін орнату процесінің бірнеше скриншоттарын қалдырамын. Негізінде, орнатуда күрделі ештеңе жоқ.

  1. Біз лицензиялық келісімді қабылдаймыз
    OpenLinux SIM7600E-H модульдерінің бөлігі ретінде
  2. Орнату қалтасын көрсетіңіз
    OpenLinux SIM7600E-H модульдерінің бөлігі ретінде
  3. Біз қажетті компоненттерді өзгеріссіз қалдырамыз
    OpenLinux SIM7600E-H модульдерінің бөлігі ретінде
  4. Оны сол күйінде қалдырыңыз
    OpenLinux SIM7600E-H модульдерінің бөлігі ретінде
  5. Бірнеше рет «Келесі», «Орнату» және негізінен бұл
    OpenLinux SIM7600E-H модульдерінің бөлігі ретінде

Cygwin орнатылуда

Әрі қарай, әзірлеу үшін сізге ұсынылған жинақтағы кітапханалар мен утилиталар жиынтығы қажет Cygwin. Мұнда бәрі қарапайым, Cygwin-тің ағымдағы нұсқасын жобаның ресми сайтында тегін жүктеп алуға болады, жазу кезінде 3.1.5 нұсқасы қол жетімді болды, біз материалды дайындау кезінде пайдаландық.

Cygwin орнатуда күрделі ештеңе жоқ, сізге таңдау керек жалғыз нәрсе - орнатушы қажетті файлдарды жүктеп алып, кез келгенін таңдап, оны орнататын айна, сонымен қатар барлық қол жетімді кітапханаларды қалдырып, утилиталар мен кітапханалар жиынтығы. утилиталар таңдалды.

драйверлерін орнату

Модуль компьютерге қосылғаннан кейін драйверлерді орнату қажет болады. Оларды дистрибьютордан сұрауға болады (ұсынылады). Интернетті өз бетімен іздеуді ұсынбаймын, себебі... Құрылғының қақтығысқа не себеп болғанын табу үшін көп уақыт қажет болуы мүмкін.

OpenLinux SIM7600E-H модульдерінің бөлігі ретінде

Таңдалған порттардың ішінде біз мыналарды көреміз:

Windows
Linux
сипаттамасы

SimTech HS-USB диагностикасы
USB сериясы
Диагностикалық интерфейс

SimTech HS-USB NMEA
USB сериясы
GPS NMEA интерфейсі

SimTech HS-USB AT порты
USB сериясы
AT портының интерфейсі

SimTech HS-USB модемі
USB сериясы
Модем портының интерфейсі

SimTech HS-USB аудио
USB сериясы
USB аудио интерфейсі

SimTech HS-USB WWAN адаптері
USB желісі
NDIS WWAN интерфейсі

Android Composite ADB интерфейсі
USB ADB
Android түзету портын қосу

Сіз байқағандай, скриншоттағы порттар арасында USB ADB жоқ, себебі модульдегі ADB порты әдепкі бойынша жабылады және оны AT + CUSBADB = 1 пәрменін жіберу арқылы қосу керек. модуль портын таңдап, оны қайта жүктеңіз (бұны «AT+CRESET» пәрменімен жасауға болады).

Нәтижесінде біз құрылғы менеджерінде қажетті интерфейсті аламыз:

OpenLinux SIM7600E-H модульдерінің бөлігі ретінде

Драйверлерді бітірдік, енді АДБ-ға көшейік.

ADB орнату

Ресми Android Developer веб-сайтына өтіңіз байланыс. Біз ауыр Android Studio бағдарламасын жүктеп алмаймыз; бізге тек «Windows жүйесіне арналған SDK платформасын-құралдарын жүктеп алу» сілтемесі арқылы жүктеп алуға болатын пәрмен жолы қажет.

OpenLinux SIM7600E-H модульдерінің бөлігі ретінде

Алынған мұрағатты C дискінің түбіріне жүктеп алыңыз және ашыңыз.

Қоршаған ортаның айнымалылары

Cygwin орнатқаннан кейін төмендегі скриншотта көрсетілгендей Cygwin/bin/ жолын әзірлеу ортасының айнымалы мәндеріне (Классикалық басқару тақтасы → Жүйе → Кеңейтілген жүйе параметрлері → Кеңейтілген → Ортаның айнымалылары → Жүйе айнымалылары → Жол → Өңдеу) қосу керек:

OpenLinux SIM7600E-H модульдерінің бөлігі ретінде

Сол сияқты, жүктеп алынған және ашылған ADB мұрағатына жолды C дискінің түбіріне қосыңыз.

OpenLinux SIM7600E-H модульдерінің бөлігі ретінде

OK түймесін бірнеше рет басып, компьютерді қайта іске қосыңыз.

Қайта жүктегеннен кейін пәрмен жолын (Win+R → cmd) ашып, «adb нұсқасы» пәрменін теру арқылы АДБ дұрыс жұмыс істеп тұрғанын оңай тексеруге болады. Біз келесідей нәрсені аламыз:

OpenLinux SIM7600E-H модульдерінің бөлігі ретінде

Модульді компьютерге қосайық (егер ол ажыратылған болса) және АДБ оны «adb құрылғылары» пәрменімен көретінін тексерейік:

OpenLinux SIM7600E-H модульдерінің бөлігі ретінде

Дайын, бұл модульге қосылу конфигурациясын аяқтайды және біз модульмен жұмыс істеу үшін қабықты іске қоса аламыз.

OpenLinux SIM7600E-H модульдерінің бөлігі ретінде

SDK бумасын ашу және құрастыру

Енді біз қабықшаға қол жеткізе аламыз және модульдің пәрмен жолымен жұмыс істей аламыз, модульге жүктеу үшін бірінші қолданбамызды құрастырып көрейік.

Көптеген адамдар бұл қиын болуы мүмкін! Өйткені Модуль Linux операциялық жүйесінде жұмыс істейді, Windows жүйесінде кодты құрастыру кезінде соқтығысуды болдырмау үшін жергілікті Linux ортасында компиляция жасаған дұрыс.

Біз Linux болмаған жағдайда және оны компьютеріңізге орнатуды қаласаңыз, оны виртуалды машинаға қалай орнатуға болатыны туралы егжей-тегжейлі тоқталмаймыз. Біз VirtualBox қолданамыз, Ubuntu 20.04 нұсқасын орнатамыз (жазылған кездегі ағымдағы нұсқа) және оның астында біз компиляторлармен, SDK және т.б. жұмыс істей бастаймыз.

Linux ортасына өтіп, дистрибьютордан алынған мұрағатты ашайық.

simcom@VirtualBox:~/Desktop/OpenLinux$ sudo tar -xzf MDM9x07_OL_2U_22_V1.12_191227.tar.gz 

sim_open_sdk каталогына өтіп, ортаны қосыңыз:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ cd sim_open_sdk
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ source sim_crosscompile/sim-crosscompile-env-init 

Біз сол қалтада қаламыз және оның ішінде болған кезде кейінгі командаларды орындаймыз.
Егер ол орнатылмаған болса, libncurses5-dev кітапханасын орнатыңыз:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get update && sudo apt-get install libncurses5-dev -y

Python, егер ол орнатылмаған болса:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install python -y

және gcc:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install gcc

Құрастыру:

Енді бізге бірнеше файлдарды құрастыру керек, келесі командаларды ретімен орындаймыз.

Егер компиляция кезінде ядро ​​конфигурациясының терезесі пайда болса, Exit пәрменін таңдап, консольге оралыңыз; ядроны қазір конфигурациялаудың қажеті жоқ.

Біз жасаймыз:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make

Жүктеу құралын құрастыру:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make aboot

Ядроны құрастыру:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_menuconfig
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel

Түбірлік файлдық жүйені құрастырыңыз:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make rootfs

Linux пайдаланушылары үшін модуль драйверін құрастыру маңызды болады:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_module

Демонстрацияны құрастырайық:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make demo

Осыдан кейін sim_open_sdk/output каталогында бірнеше жаңа файлдар пайда болады:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ ls output/
appsboot.mbn  boot.img  demo_app  helloworld  system.img

Демо

Демонстрацияны біздің модульге жүктеп көрейік және одан не шығатынын көрейік.

Жүктеу

sim_open_sdk каталогында біз demo_app файлын көре аламыз. Біз оны алып, оны модуль қосылған компьютердегі C дискінің түбіріне тасымалдаймыз. Содан кейін Windows пәрмен жолын іске қосыңыз (Win+R -> cmd) және енгізіңіз:

C:>adb push C:demo_app /data/

Консоль бізге мынаны айтады:

C:demo_app: 1 file pushed, 0 skipped. 151.4 MB/s (838900 bytes in 0.005s)

Бұл файлдың модульге сәтті жіберілгенін білдіреді және бізге оны іске қосу ғана қалады. Еш ойланбайық.

Біз жасаймыз:

C:>adb shell

Жүктелген файлдың құқықтарын кеңейтеміз:

/ # cdhmod 777 /data/demo_app

Ал біз жүгіреміз:

/ # /data/demo_app

Сол консольде модуль бізге мынаны айтады:

SDK_VER : SIM_SDK_VER_20191205
DEMO_VER: SIM_SDK_VER_20191205

Please select an option to test from the items listed below.

1. WIFI                       2. VOICE CALL
3. DATA CALL                  4. SMS
5. WDS(APN)                   6. NAS
7. AT                         8. OTA
9. TTS                        10. GPIO
11. GPS                       12. Bluetooth
13. TCP/UDP                   14. Timer
15. ADC                       16. I2C
17. UIM(SimCard)              18. DMS(IMEI,MEID)
19. UART                      20. SPI
21. Version                   22. Ethernet
23. FTP                       24. SSL
25. HTTP(S)                   26. FTP(S)
27. MQTT(S)                   28. ALSA
29. DEV                       30. AUDIO
31. JSON                      32. LBS
99. EXIT
Option >   

Модульдің IMEI-ін қарастырайық, 7 енгізіңіз (пәрмен режиміне ауысыңыз), содан кейін 5 енгізіңіз:

Please select an option to test from the items listed below.

1. WIFI                       2. VOICE CALL
3. DATA CALL                  4. SMS
5. WDS(APN)                   6. NAS
7. AT                         8. OTA
9. TTS                        10. GPIO
11. GPS                       12. Bluetooth
13. TCP/UDP                   14. Timer
15. ADC                       16. I2C
17. UIM(SimCard)              18. DMS(IMEI,MEID)
19. UART                      20. SPI
21. Version                   22. Ethernet
23. FTP                       24. SSL
25. HTTP(S)                   26. FTP(S)
27. MQTT(S)                   28. ALSA
29. DEV                       30. AUDIO
31. JSON                      32. LBS
99. EXIT
Option > 7

Please select an option to test from the items listed below.

1. get Module Version         2. get CSQ
3. get CREG                   4. get ICCID
5. get IMEI                   6. get CIMI
99. back
Option > 5
IMEI: 867584030090489

Please select an option to test from the items listed below.

1. get Module Version         2. get CSQ
3. get CREG                   4. get ICCID
5. get IMEI                   6. get CIMI
99. back
Option >

Осылайша біз модульдің IMEI кодын көреміз.

Қорытынды ретінде

Біз модульді қалай бастау керектігі туралы жалпы түсінік ала алдық деп үміттенемін. Келесі мақалаларда SIM7600E-H платформасы ұсынатын мүмкіндіктерді, сондай-ақ модульдегі жеке қолданбаңызды қашықтан қалай жаңартуға болатынын егжей-тегжейлі қарастырамыз.

Мен сізді түсініктемелерде сұрақтар қоюға шақырамын, сонымен қатар модуль мүмкіндіктерінің қай аспектісін келесі мақалаларда көрсету керек екенін көрсетемін.

Ақпарат көзі: www.habr.com

пікір қалдыру