当前位置:首页 > 电源 > 数字电源
[导读]摘要:以先进的精简指令(RISC)的ARM9 S3C2410X微处理器为核心,通用无线分组业务(GPRS)和全球移动通讯系统(GSM)模块等组成无线上网系统。通过对网络拨号功能的程序设计,并充分利用Qt/Embedded系统关于网络资源的特

摘要:以先进的精简指令(RISC)的ARM9 S3C2410X微处理器为核心,通用无线分组业务(GPRS)和全球移动通讯系统(GSM)模块等组成无线上网系统。通过对网络拨号功能的程序设计,并充分利用Qt/Embedded系统关于网络资源的特点,实现无线MODEM经GPRS连接到Internet的无线网络通信,为了使程序设计更加合理,本文将网络拨号分成两部分,即网络和拨号。经过在嵌入式Linux操作系统上验证测试,本设计既可较好地完成网络拔号功能,又可方便地应用在PDA等智能嵌入式系统中。
关键词:GPRS;网络拔号;PPP协议;GSM

    随着网络时代的深入,Internet己成为重要的基础信息设施,越来越多的设备需要接入Internet,对于PDA等一些嵌入式智能系统,实现无线通信是十分必要的。拨号上网方式是家用电器利用互联网实现智能化的途径之一,目前在接入网络的众多方式中,比较经济实用的方式是通过拨号连接ISP的接入模式。这种模式下使用的数据链路层协议主要是PPP。
    本文分析了拨号上网的PPP协商过程,对网络拔号功能程序设计进行了深入研究,并在基于ARM9处理器为核心的嵌入式硬件平台上验证实现。

1 系统硬件平台的搭建
    本文采用基于ARM920T内核的芯片S3C2410X,它是美国ARM公司推出的一款32位嵌入式RISC微处理器。该处理器主要面向手持式设备以及高性价比、低功耗的应用。
    无线通信模块采用GPRS模块。wavecom Q2403A是一款基于GPRS网络传送数据的无线Modem,能够实现语音呼叫、短消息服务、数据传输等功能。Q2403A对用户提供了多种接口,包括电源接口、液晶显示器接口、SIM卡接口、充电器接口、耳机接口、麦克风接口,以及用于其他特殊目的的多种外围设备接口。Q2403A通过GPRS发送数据时的下载速度是26.8 Kb/s,上传速度为13.4 Kb/s。基于ARM微处理器的系统硬件结构如图1所示。



2 网络拨号连接过程
    在众多接入网络的方式中,本文以GPRS为例,说明具体网络拨号连接过程。网络拨号接入Internet是使用PPP协议创建连接,利用GPRS进行数据传输的。其中PPP链路建立过程分为创建阶段、认证阶段和网络协商阶段。
    (1)创建PPP链路
    链路控制协议LCP(Link Control Protocol)负责创建链路。在这个阶段,将对基本的通信方式进行选择。
    (2)用户验证
    在这个阶段,客户端会将自己的身份发送给远端的接入服务器。该阶段使用一种安全验证方式避免第三方窃取数据或冒充远程客户接管与客户端的连接。在认证完成之前,禁止从认证阶段前进到网络层协议阶段。如果认证失败,认证者应该跃迁到链路终止阶段。
    最常用的认证协议有口令验证协议PAP(Password Authentication Protoc01)和取得IP选项和IP地址IPCP(Internet Protocol Control Protocol)。
    (3)调用网络层协议
    认证阶段完成后,PPP将调用在链路创建阶段选定的网络控制协议NCP(Network Control Protocol)。选定的NCP解决PPP链路之上的高层协议问题。例如,在该阶段IP控制协议(IPCP)可以向拨入用户分配动态地址。
    这样,经过三个阶段以后,一条完整的PPP链路就建立起来了。[!--empirenews.page--]

3 网络拨号设计实现
    本文选用嵌入式Linux操作系统,因为Linux自带TCP/IP协议,所以该系统省去了TCP/IP协议的移植。当系统上电后,首先启动Linux系统,建立主任务,进行串口和GPRS模块的初始化,然后通过串口信号线驱动Q2403A串口,通过AT指令集进行一系列串口参数设置,并附着与GPRS网络,拨号到GGSN,新建PPP任务进行数据链路层和网络层的协商,得到IP地址,完成上网过程。本文采用Qt作为网络拨号功能程序开发的基础。同时在功能架构设计方面,为了使程序更加合理,将网络拨号分成两部分,即网络(network.h和network.cpp)和拨号(dailup.cp-p)。它们之间的调用由network.h完成。关系类图如图2所示。


    (1)network.h头文件定义了拨号请求结果和网络状态。
    ①请求结果定义如下:
   
    ②状态定义如下:
 
    (2)network.cpp由类NetworkServer和Network组成,说明如下:
    第一:类Network主要成员函数
    ①成员函数:choices
    功能:得到所有网络服务配置。
    原型:static QStringList choices(QListBox*=0,const QString&dir=QString::null)
    ②成员函数:createServer
    功能:创建NetworkServer实例,为qpe使用。
    原型:static void createServer(QObject*parent)
    ③成员函数:serviceName
    功能:通过网络服务配置文件得到网络服务名。
    原型:static QString serviceName(const QString&service)
    ④成员函数:serviceType
    功能:通过服务配置文件得到网络服务类型。正常为“dialup”。
    原型:static QString serviceType(const QString&service)[!--empirenews.page--]
    ⑤成员函数:start
    功能:开启网络服务。如果网络空闲,则开始新的网络服务。如果有相同网络服务在运行,应用程序将使用已存在的网络服务。
    原型:Static void start(const Quuid&uuid,const QString&service=QString::null,const QString&password=QString::null)
    ⑥成员函数:stop
    功能:停止网络服务。如果有其他应用程序使用该网络服务,网络服务将不会断开,仅仅终止该应用程序。否则停止网络服务。
    原型:static void stop(const QUuid&uuid)
    第二:类NetworkServe主要成员函数:
    ①成员函数:emitFailed
    功能:发送失败信息。
    原型:void emitFailed(QUuid&uuid,intstatus)
    ②成员函数:examineNetworks
    功能:检查网络配置。
    原型:void examineNetworks()
    ③成员函数:networkOnline
    功能:判断网络是否连接。
    原型:bool networkOnline()const
    ④成员函数:start
    功能:开始网络服务。
    原型:void start(QUuid&uuid,const QString&file,const QString&password)
    ⑤成员函数:stop
    功能:停止网络服务。
    原型:void stop()
    ⑥成员函数:timeEvent
    功能:若网络连接,开启定时器进行监控;否则网络断开,终止定时器,并发送网络断开消息。
    原型:void timerEvent(QTimerEvent*timer)
    ⑦成员函数:receive
    功能:接收应用进程发送的网络信息。
    原型:void NetworkServer::receive(const QCString&msg,const QByteArray&data)
    (3)dailup.cpp主要是进行拨号,由类PppMon,
    Dailup和DialupImpl构成。定义如下:
    ①类PppMon。功能:监视网络状态;
    ②类Dialup。功能:实现一个拨号窗体;
    ③类DialupImpl。功能:拨号实现。
    (4)网络拨号建立
    ①应用程序发起上网请求。
    ②如果当前网络空闲,则自动拨号(配置拨号文件、开启网络状态监控和发送AT指令连接)。
    ③如果网络已被占用,则表明其他应用程序在使用网络。
   此时需判断当前上网方式:CSD(按照时长来收费)或GPRS(按照产生的流量来收费)。若为CSD/GPRS方式,且该应用程序也是以CSD/GPRS方式上网,则不要建立拨号连接,可共同使用网络;若为CSD/GPRS方式,而该应用程是以GPRS/CSD方式上网,则拒绝上网请求。拨号建立如图3所示。

[!--empirenews.page--]
    (5)网络停止。网络停止分两种情况:一种情况是当前网络三分钟内无数据传输,则停止应用程序与网络的连接。另一种情况,应用程序主动要求与网络断开,若只有该应用程序与网络连接,则断开网络;若还有其他应用程序与网络连接,则结束该应用进程。网络停止如图4所示。


    (6)网络断开
    ①发送AT命令:AT+CGACT=0,1,2,3;
    ②杀死网络状态监控进程;
    ③杀死PPP相关进程。网络断开如图5所示。



4 测试结果
    主要是对GPRS模块进行无线接入Internet的功能测试,使用嵌入式Qt作为集成开发环境,界面友好,易于开发。图6为QT设计的网络拨号界面。


    测试结果表明,GPRS模块可以很快无线接入Internet,可以浏览网页和收发数据。因此,网络拨号功能能正常准确的工作。

5 结语
    在基于ARM9嵌入式硬件平台和嵌入式Linux操作系统上,本文设计的网络拔号程序运行良好,并充分利用Qt/Embedded和Qtopia Phone系统关于网络资源的特点,较好地实现了网络拨号的功能,该设计可广泛应用在PDA等嵌入式产品中,实现连接到Internet的无线网络通信。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

武汉2025年9月9日 /美通社/ -- 7月24日,2025慧聪跨业品牌巡展——湖北•武汉站在武汉中南花园酒店隆重举办!本次巡展由慧聪安防网、慧聪物联网、慧聪音响灯光网、慧聪LED屏网、慧聪教育网联合主办,吸引了安防、...

关键字: AI 希捷 BSP 平板

上海2025年9月9日 /美通社/ -- 9月8日,移远通信宣布,其自研蓝牙协议栈DynaBlue率先通过蓝牙技术联盟(SIG)BQB 6.1标准认证。作为移远深耕短距离通信...

关键字: 蓝牙协议栈 移远通信 COM BSP

上海2025年9月9日 /美通社/ -- 为全面落实党中央、国务院和上海市委、市政府关于加快发展人力资源服务业的决策部署,更好发挥人力资源服务业赋能百业作用,8月29日,以"AI智领 HR智链 静候你来&quo...

关键字: 智能体 AI BSP 人工智能

北京2025年9月8日 /美通社/ -- 近日,易生支付与一汽出行达成合作,为其自主研发的"旗驭车管"车辆运营管理平台提供全流程支付通道及技术支持。此次合作不仅提升了平台对百余家企业客户的运营管理效率...

关键字: 一汽 智能化 BSP SAAS

深圳2025年9月8日 /美通社/ -- 晶泰科技(2228.HK)今日宣布,由其助力智擎生技制药(PharmaEngine, Inc.)发现的新一代PRMT5抑制剂PEP0...

关键字: 泰科 AI MT BSP

上海2025年9月5日 /美通社/ -- 由上海市经济和信息化委员会、上海市发展和改革委员会、上海市商务委员会、上海市教育委员会、上海市科学技术委员会指导,东浩兰生(集团)有限公司主办,东浩兰生会展集团上海工业商务展览有...

关键字: 电子 BSP 芯片 自动驾驶

推进卓越制造,扩大产能并优化布局 苏州2025年9月5日 /美通社/ -- 耐世特汽车系统与苏州工业园区管委会正式签署备忘录,以设立耐世特亚太总部苏州智能制造项目。...

关键字: 智能制造 BSP 汽车系统 线控

慕尼黑和北京2025年9月4日 /美通社/ -- 宝马集团宣布,新世代首款量产车型BMW iX3将于9月5日全球首发,9月8日震撼亮相慕尼黑车展。中国专属版车型也将在年内与大家见面,2026年在国内投产。 宝马集团董事...

关键字: 宝马 慕尼黑 BSP 数字化

北京2025年9月4日 /美通社/ -- 在全球新一轮科技革命与产业变革的澎湃浪潮中,人工智能作为引领创新的核心驱动力,正以前所未有的深度与广度重塑各行业发展格局。体育领域深度融入科技变革浪潮,驶入数字化、智能化转型快车...

关键字: 人工智能 智能体 AI BSP

上海2025年9月2日 /美通社/ -- 近日,由 ABB、Moxa(摩莎科技)等八家企业在上海联合发起并成功举办"2025 Ethernet-APL 技术应用发展大会"。会议以"破界•融合...

关键字: ETHERNET 智能未来 BSP 工业通信
关闭