Opnedevices.net 嵌入式开发网 技术文档精华
  • 设为首页

  • 加入收藏

  • 联系我们
  • Opendevices开源项目
    opendevices论坛 OD WebLog 嵌入式系统开发 嵌入式应用开发
       首 页 |嵌入式系统技术 |Linux技术平台 |编程高手文档 | 投 稿
        相关文章
    Home  首 页 »  Linux技术平台 »  Linux网络 » 

    Linux 无线网络技术系列之三GSM,GPRS


    作者:Sreekrishnan Venkate   来源:IBM    更新日期:2005-04-02    浏览次数:
     
    Linux 无线网络技术系列之三GSM,GPRS
    作者:Sreekrishnan Venkateswaran 发文时间:2004.12.31
        GSM 上的 Linux GPRS 和数据

        GPRS 是一个用于通过 GSM 传输数据的数据分组服务,是一种卓越的数字蜂窝标准。尽管 GSM 上的数据是线路交换的并且不管怎样都占用一个通道,但是 GPRS 上的数据是一直连接的(always-on)、分组交换(packet-switched)的数据流,用户根据使用付费。GSM 的传输速度一般是 9.6 kbps,而 GPRS 能够运行的速度为 56 kbps 到 170 kbps。
        GPRS 和 GSM 芯片通常有一个到系统的 UART 接口。对于内置 GSM/GPRS 支持的母板(例如,一个带有连接到 UART 通道的 Siemen MC-45 模块的母板),传统的串行驱动程序就能驱动这个链接。考虑 PCMCIA/CF 的形成因素(例如一张可选 GPRS 卡),serial_cs(是用于访问 PCMCIA 串行设备的普通卡服务驱动程序)能够允许其他操作系统把此卡当作一个串行设备。第一个未使用的串行设备(/dev/ttySx)被分配给此卡,然后此卡就可以被当成串行设备访问。serial_cs 也可以通过全球定位系统 (GPS) PCMCIA 和 CF 卡模拟串行端口。针对 USB GPRS 调制解调器而言,USB-to-serial 转换器一般 USB 端口转换为虚拟串行端口,因此系统其他部分就会将它看作串行设备。

        GPRS 网络使用 GGSN(GPRS 网关支持节点) 连接到一个外部网络(例如 Internet)。GPRS 设备类似于拥有扩展 AT 命令集的调制解调器,在进入数据模式之前必须使用 AT 命令定义一个上下文。上下文字符串看起来类似于清单 3 中给出的示例。

        清单 3. 上下文字符串

    'AT+CGDCONT=1,"IP","internet.voicestream.com","0.0.0.0",0,0'


        在这个示例中,1 代表上下文编号,IP 是数据分组类型,internet.voicestream.com 是接入点名称(APN) 字符串,0.0.0.0 意味着服务提供者选择 IP 地址,其他参数与数据和报头压缩有关。APN 字符串取决于服务提供者。一般不需要用户名和口令。

        PPP 允许网络协议(比如 TCP/IP)在串行链路上运行。在无线网络的上下文中,PPP 可以使 TCP/IP 运行于 GPRS 上,数据通过 GSM、Bluetooth RFCOMM 以及 IrDa COMM 进行传输。清单 4 给出了一种调用 PPP 后台进程 pppd 的公共语法。

        清单 4. 调用 PPP 后台进程 pppd 的公共语法

    pppd ttySx call connection-script


        在这个示例中,ttySx 是物理或虚拟的串行设备(PPP 运行其上),connection-script 是 /etc/ppp/peers/ 目录中的一个文件,这个目录包含在 pppd 和服务提供者之间交换的用于建立链接的 AT 命令序列。建立链接并完成身份验证以后,PPP 将启动网络控制协议(Network Control Protocol,NCP)。IPCP (Internet Protocol Control Protocol,Internet 协议控制协议) 是用于运行 IP 的 NCP。一旦 IPCP 成功通过 IP 地址,PPP 就开始与 TCP/IP 栈交互。

        清单 5 给出了用于连接到 GPRS 服务提供者的 PPP 链接脚本示例,而清单 6 给出的是用于到 GSM 服务提供者的数据连接的连接脚本示例。

        清单 5. 针对 GPRS 的 pppd 链接脚本示例(/etc/ppp/peer/gprs-script)

    115200
    connect "/usr/sbin/chat -s -v "" AT+CGDCONT=1,"IP",
    "internet2.voicestream.com","0.0.0.0",0,0 OK AT+CGDATA="PPP",1"
    crtscts
    noipdefault
    modem
    usepeerdns
    defaultroute
    connect-delay 5000


        从操作系统的角度出发,GSM 上的数据类似于通过拨号调试解调器连接收发的数据。互联网服务提供商(ISP)的电话号码是使用 GSM 拨入的,并且会建立一个拨号连接。利用用户名和口令进行身份验证。

        一旦 PPP 建立了与服务提供者的 IP 连接,TCP 应用程序例如 Web 浏览器就可以不加更改地在 GSM/GPRS 设备上运行。

        gsmlib 项目为通过 GSM 发送语音和 SMS(Short Messaging Service,短信服务)提供了实用程序(请参阅 参考资料 了解更多关于 gsmlib 的信息)。它包括用于存取 Subscriber Identity Module (SIM)卡中的电话簿、收发 SMS 消息等功能的实用程序。

        清单 6. 用于通过 GSM 传输数据的 pppd 连接脚本示例(/etc/ppp/peer/gsm-script)

    115200
    connect '/usr/sbin/chat -s -v ABORT "NO CARRIER" ABORT "NO DIALTONE" ABORT "BUSY" "" AT OK 
    ATDT<phone_number> CONNECT'
    crtscts
    noipdefault
    modem
    user "linux"
    usepeerdns
    defaultroute
    connect-delay 5000


      责任编辑:为了让栏目更好为您服务,希望您给我们多提意见。
    (责任编辑:superman)
    [推荐给朋友] [显示打印版本]

      相关评论

    您的姓名:
    评论内容:
     
    OpenDevices开发网 专门从事嵌入式开发 www.opendevices.net bbs.opendevices.net
    嵌入式 技术文档精华 致力于收录开发人员开发过程中搜集、总结和发表的有价值技术资料。
    Copyright by Opendevices开发网 2002-2004 版权声明
    OpenDevices.net All Rights Reserved
    友情链接:停雨轩时尚饰品 11FM.COM社区
    Power by linux apache php4 mysql phpbb 9466aticle