91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)嵌入式Linux中同時實現(xiàn)GPRS和SMS短信收發(fā)

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-01-14 11:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

隨著移動通訊技術(shù)的發(fā)展普及,GPRS無線通訊和SMS短信收發(fā)越來越多地應(yīng)用到工業(yè)領(lǐng)域的遠程數(shù)據(jù)通訊中。GPSR主要是進行的數(shù)據(jù)通訊,SMS則是AT指令的操作模式,在不少的無線通訊模塊,比如西門子的MC39i、華為的GTM900,模塊一旦處于GPRS數(shù)據(jù)通訊狀態(tài),則無法再進行AT指令的操作,從而難以同時實現(xiàn)SMS短信數(shù)據(jù)收發(fā)的功能。解決這個問題方法之一是在軟件上實現(xiàn)多路轉(zhuǎn)換協(xié)議,這種方式通過軟件協(xié)議的方式將一個物理口虛擬為多個口,從而將GPRS通訊和SMS通訊分開,這種模式程序往往比較復(fù)雜,在嵌入式的應(yīng)用中比較難以實現(xiàn)。方法之二就是直接在硬件物理口上將GPRS和SMS通訊分開,西門子提供的MC37i無線模塊本身就自帶有兩個物理串口,可以支持分別進行GPRS和SMS通訊的操作。本文將結(jié)合英利公司提供的ARM9 Linux主板EM9160和ETA300 GPRS擴展單元(GPRS無線模塊為MC37i),著重介紹如何同時實現(xiàn)GPSR通訊和SMS短信收發(fā)的應(yīng)用。

硬件組成

英利公司的嵌入式Linux主板EM9160共有6個異步串口,在Linux環(huán)境中為“/dev/ttyS1”-“/dev/ttyS6”。ETA300是包括MC37i模塊的外掛式GPRS通訊單元,可直接通過帶線與英利EM9160開發(fā)評估底板相連,如下圖所示。其中GPRS通訊占用EM9160的 “/dev/ttyS1” (或稱COM2) 口,SMS通訊占用EM9160的“/dev/ttyS4”( 或稱COM5 ) 口,連接方式如下圖所示。

MC37i電源管理

通過ETA300 GPRS擴展單元可實現(xiàn)對MC37i的電源管理,MC37i的電源管理是通過兩路GPIO:GPIO8和GPIO9來實現(xiàn),分別對應(yīng)GPRS _STB、GPRS_AUX管腳信號。在程序上操作GPIO8、GPIO9實現(xiàn)對MC37i的上電、關(guān)電操作。以下為提供的對MC37i電源管理的操作函數(shù):

// 功能描述:該函數(shù)通過對EM9160的GPRS_STB和GPRS_AUX兩個管腳信號的操作,實現(xiàn)對GPRS模塊的電源管理。
// 輸入?yún)?shù) OpMode: 電源管理功能索引號,有效索引號包括:
OpMode = 1: 對GPRS模塊進行上電操作,并把執(zhí)行該操作后電 源狀態(tài)返回;
OpMode = 2: 對GPRS模塊進行強制關(guān)電,并把執(zhí)行該操作后電源狀態(tài)返回;
OpMode = 3: 讀取GPRS模塊當(dāng)前的電源狀態(tài)。
// 輸出參數(shù) pResult: 用于存儲讀取的電源狀態(tài)信息。
*pResult = 0: 表示GPRS模塊的電源已關(guān)閉;
*pResult = 1: 表示GPRS模塊的電源已加載成功;
int GPRS_PM( int fd, int OpMode, int* pResult )

嵌入式Linux中的GPRS撥號

嵌入式Linux ppp GPRS撥號程序pppd和相關(guān)的腳本文件,均已經(jīng)缺省包含在EM9160板卡的根文件系統(tǒng)中。

嵌入式Linux主板EM9160環(huán)境下進行GPRS撥號時,首先調(diào)用函數(shù)GPRS_PM(…)使MC37i上電成功,然后再啟動pppd進程進行GPRS撥號。

printf('GPRS Power On\n');
GPRS_PM(fd, 1, &GPRS_State);
// MC37i模塊上電登錄到移動網(wǎng)絡(luò)等待時間
for( i1=0; i1<8; i1++ )
{
sleep( 1 );
printf( '.\n' );
}
system( 'pppd call pppd-connect-script' );

掛斷直接可調(diào)用ppp-off腳本:

system( '/etc/ppp/ppp-off' );

嵌入式Linux中的SMS短信收發(fā)

SMS短信收發(fā)的核心通訊模式為串口通訊,應(yīng)用程序上也是采用的C++編程方式,利用英利公司網(wǎng)站技術(shù)天地欄目中《嵌入式Linux串口通訊的C++設(shè)計》一文中介紹的CSerial類,在CSerial基礎(chǔ)上派生了一個針對于SMS收發(fā)應(yīng)用的class SMS,該派生類 class SMS 中重新實現(xiàn)了虛函數(shù)PackagePro(…) 接收數(shù)據(jù)處理函數(shù),以滿足SMS收發(fā)的應(yīng)用需求。

在sms.h中定義了短信的數(shù)據(jù)結(jié)構(gòu):

struct SMS_DATA
{
unsigned char PhoneNum[16]; // 對端電話號碼
struct Date d; // 日期:年月日
struct Time t; // 時間:時分秒
int DatLen; // 數(shù)據(jù)長度
unsigned char DBuf[168]; // 短信數(shù)據(jù)內(nèi)容
};

對于SMS短信收發(fā)可調(diào)用的類函數(shù)包括有:

// 按照指定的參數(shù)打開短信Modem端口,并創(chuàng)建短信接收線程
int OpenPort( int PortNo, int baudrate, char databits, char stopbits, char parity );
// 關(guān)閉短信Modem端口并釋放相關(guān)資源
int ClosePort( );
// 發(fā)送AT指令初始化短信Modem
int InitSMSModem( );
// 發(fā)送短信
int SendMessage( struct SMS_DATA* pSMS );

在該例程中短信接收的處理放在函數(shù)PackagePro(…)中實現(xiàn)的,用戶可以根據(jù)實際情況加以調(diào)整。SMS短信收發(fā)的實現(xiàn)代碼均在sms.cpp下,由于是CSerial的派生類,其接收的主要流程可參見英利公司網(wǎng)站技術(shù)天地欄目中《嵌入式Linux串口通訊的C++設(shè)計》一文中相關(guān)介紹,這里不再贅述。

在class SMS中實現(xiàn)了支持中文短信的發(fā)送,所以短信發(fā)送的模式均采用PDU模式。對于中文字符,在短信發(fā)送時還需要轉(zhuǎn)換為unicode碼,程序代碼中已經(jīng)實現(xiàn)了中文內(nèi)碼到unicode 碼的自動轉(zhuǎn)換,客戶在測試該程序時,需要注意的是要將unicode 的相關(guān)轉(zhuǎn)換文件表COPY到/mn/nandflash:gsm0338.bin gb2312.bin unicode.bin。

本文中所介紹的例程僅僅適用于英利EM9160嵌入式主板,均有源碼提供。感興趣的客戶可以發(fā)郵件到公司技術(shù)支持郵箱 support@emlinix.com索取相關(guān)代碼。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11760

    瀏覽量

    219039
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6107

    瀏覽量

    37078
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Linux 下開發(fā)嵌入式必備命令速查表

    嵌入式開發(fā),Linux系統(tǒng)幾乎成為必備的開發(fā)環(huán)境。不管你是在做STM32、RaspberryPi、還是基于ARM的板子,熟練掌握Linux命令不僅能加快開發(fā)效率,還能讓你在調(diào)試、交
    的頭像 發(fā)表于 01-19 09:06 ?884次閱讀
    <b class='flag-5'>Linux</b> 下開發(fā)<b class='flag-5'>嵌入式</b>必備命令速查表

    如何在Zynq UltraScale+ MPSoC平臺上通過JTAG啟動嵌入式Linux鏡像

    在之前文章,我們介紹了如何使用 XSCT 工具通過 JTAG 在 Zynq SoC 上啟動嵌入式 Linux 鏡像(從 JTAG 啟動 Zynq-7000 嵌入式
    的頭像 發(fā)表于 01-13 11:45 ?4435次閱讀

    什么是嵌入式應(yīng)用開發(fā)?

    、實現(xiàn)和部署,還包括硬件選擇、軟件設(shè)計、測試、集成和維護等流程?。 定義和背景 嵌入式應(yīng)用開發(fā)是指將軟件部署到嵌入式系統(tǒng),這些系統(tǒng)廣泛應(yīng)用于消費電子和工業(yè)自動化
    發(fā)表于 01-12 16:13

    從小白到大牛:Linux嵌入式系統(tǒng)開發(fā)的完整指南

    )、單元測試(CUnit)。學(xué)會使用 Buildroot、Yocto Project 等嵌入式 Linux 構(gòu)建工具,實現(xiàn)系統(tǒng)的自動化編譯、定制與升級。同時,培養(yǎng)問題排查能力(如通過日
    發(fā)表于 12-16 10:42

    系統(tǒng)嵌入式的學(xué)習(xí)路線

    嵌入式技術(shù)是各種電子產(chǎn)品的核心技術(shù),也是工業(yè)4.0、遠程醫(yī)療、3D打印等新興產(chǎn)業(yè)的核心技術(shù),具有廣闊的發(fā)展前景。很多計算機、電子信息類專業(yè)的
    發(fā)表于 12-16 07:49

    C語言在嵌入式開發(fā)的應(yīng)用

    嵌入式設(shè)備能夠與外部網(wǎng)絡(luò)進行通信,實現(xiàn)數(shù)據(jù)傳輸和信息共享。 在智能家居、工業(yè)物聯(lián)網(wǎng)、智能交通等領(lǐng)域,嵌入式網(wǎng)絡(luò)編程的應(yīng)用無處不在。在智能家居系統(tǒng)
    發(fā)表于 11-21 08:09

    嵌入式和FPGA的區(qū)別

    。 在當(dāng)今智能化時代,嵌入式系統(tǒng)和FPGA技術(shù)都是電子系統(tǒng)設(shè)計的重要組成部分,但許多工程師和技術(shù)愛好者常常對兩者的區(qū)別和應(yīng)用場景感到困惑。本文將深入解析
    發(fā)表于 11-19 06:55

    物聯(lián)網(wǎng)短信實戰(zhàn):SMS收發(fā)功能速成來啦!

    在物聯(lián)網(wǎng)開發(fā)短信收發(fā)是常見需求。本文帶來一場技術(shù)實戰(zhàn),借助SMS庫,10分鐘內(nèi)即可實現(xiàn)物聯(lián)網(wǎng)
    的頭像 發(fā)表于 10-21 17:09 ?842次閱讀
    物聯(lián)網(wǎng)<b class='flag-5'>短信</b>實戰(zhàn):<b class='flag-5'>SMS</b>庫<b class='flag-5'>收發(fā)</b>功能速成來啦!

    嵌入式需要掌握哪些核心技能?

    嵌入式需要掌握哪些核心技能? 若想通過學(xué)習(xí)嵌入式技術(shù)提升就業(yè)競爭力,需重點掌握C語言、嵌入式硬件架構(gòu)、RTOS/Linux開發(fā)、通信協(xié)議四
    發(fā)表于 10-21 16:25

    LuatOS短信功能全解析:技術(shù)原理與運行邏輯

    想要了解短信如何在LuatOS上高效運行?本文將拆解其airsms.lua文件技術(shù)架構(gòu),從通信協(xié)議到代碼實現(xiàn),逐層揭示短信功能的完整運作流程與核心邏輯。 ? 一、發(fā)送
    的頭像 發(fā)表于 07-03 15:25 ?703次閱讀
    LuatOS<b class='flag-5'>短信</b>功能全解析:<b class='flag-5'>技術(shù)</b>原理與運行邏輯

    怎么結(jié)合嵌入式Linux,和FPGA三個方向達到一個均衡發(fā)展?

    嵌入式領(lǐng)域,不少人都懷揣著讓嵌入式、Linux 和 FPGA 三個方向實現(xiàn)均衡發(fā)展的夢想,然而實踐卻面臨諸多挑戰(zhàn)。就像備受矚目的全棧工程
    的頭像 發(fā)表于 06-25 10:08 ?867次閱讀
    怎么結(jié)合<b class='flag-5'>嵌入式</b>,<b class='flag-5'>Linux</b>,和FPGA三個方向達到一個均衡發(fā)展?

    Linux嵌入式和單片機嵌入式的區(qū)別?

    Linux嵌入式與單片機嵌入式在多個方面存在顯著的區(qū)別,以下是詳細的比較和歸納: 一、基本概念 1. Linux嵌入式: 定義:將
    發(fā)表于 06-20 09:46

    科普|信創(chuàng)是什么?一文讀懂“信息技術(shù)應(yīng)用創(chuàng)新”戰(zhàn)略

    什么是信創(chuàng)?信創(chuàng),即“信息技術(shù)應(yīng)用創(chuàng)新”,是國家推動IT系統(tǒng)自主可控、安全可控的重要戰(zhàn)略工程。它不僅是技術(shù)層面的創(chuàng)新,更承載著保障國家網(wǎng)絡(luò)安全、推動產(chǎn)業(yè)升級和
    的頭像 發(fā)表于 06-13 10:06 ?8303次閱讀
    科普|信<b class='flag-5'>創(chuàng)</b>是什么?一文讀懂“<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新”戰(zhàn)略

    Linux的作用

    。 2、嵌入式系統(tǒng):Linux可以被嵌入到各種嵌入式設(shè)備,如智能路由器、智能電視等。它提供了一個靈活的平臺,可以根據(jù)設(shè)備的需求進行定制和優(yōu)
    發(fā)表于 04-04 01:57

    硬核升級!華清遠見STM32MP157驅(qū)動開發(fā)課程助力嵌入式Linux底層開發(fā)入門進階

    嵌入式Linux系統(tǒng)開發(fā),驅(qū)動程序開發(fā)是一項關(guān)鍵技術(shù),它作為硬件與軟件之間的橋梁,實現(xiàn)了操作系統(tǒng)對硬件設(shè)備的控制。相較于
    的頭像 發(fā)表于 04-03 16:40 ?1017次閱讀
    硬核升級!華清遠見STM32MP157驅(qū)動開發(fā)課程助力<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>底層開發(fā)入門進階