| 网站首页 | 科技前沿 | it产品项目 | 软件项目 | 硬件项目 | 发明专利 | 商业城 | 资源中心 | 博客 | 论坛 |  子站: it客栈 多奥网
会员中心
会员注册
繁體中文
推荐:索引 linux arm 手机 嵌入式 os wince dsp 音乐 游戏
 站内搜索:
项目资讯 资源中心
您现在的位置: 爱问科技网 >> 软件项目 >> WinCE >> 文章正文
在基于WinCE的产品上使用手机模块           ★★★★
在基于WinCE的产品上使用手机模块
作者:佚名 文章来源:不详 更新时间:2006-11-23 19:27:52
在基于WinCE的产品上使用手机模块 作者: 付林林 出处: 天极网 责任编辑: 方舟 [ 2004-12-16 00:05 ]
  付林林:

  2001年计算机专业毕业。从毕业起一直从事软件开发工作。目前从事 Windows CE 下操作系统内核定制和应用程序开发。在实际工作中积累了CE下开发的一些经验。希望和 CE 下开发者交流、探讨,更希望你们能不吝赐教。我的EMail:windowsce@tom.com

  进入作者专栏

  本文作者将在天极社区嵌入式开发版回答读者的疑问。

  要在你的基于Windows CE的产品上具备无线通讯(拨号上网、拨打电话、收发短信)功能,你的选择是要么让用户外接手机,要么在你的产品上集成手机模块。如果是外接手机,那么手机只是起到在上网浏览期间接收和发送数据的作用。如果必须集成手机模块,那么手机模块要完成无线通讯的全部功能,从软件开发角度讲,相对要麻烦一点。本篇文章简略地讲解在开发控制手机模块的软件过程中需要注意的事项。

  一、拨号上网

  在连接Internet浏览网页过程中,手机模块负责连接ISP、从ISP接收数据和发送数据。如果ISP为中国移动,那么有两种拨号号码,一种号码为17201,属于普通的拨号上网业务,可以以9.6Kbps的数据传输速率接入到CMNET;另一种号码为*99# ,利用GRPS来加速接收和发送数据,GPRS接入方式提供30KB/秒到40KB/秒的接入速度,使用数据加速系统后可以达到60KB/秒到80KB/秒。Windows CE提供对拨号连接的支持,具体需要调用哪些API我在前面的文章中讲过了(参见《Windows CE下拨号上网》)。利用RAS函数,我们只需要确定连接手机模块的串口,输入用户名、密码、电话号码就可以连接到ISP了,接着只要调用IE浏览器就可以轻松浏览网页了,整个功能的实现我们只做了很少的工作。不过利用RAS函数有利有弊,利在开发相对容易一些,弊在它掩盖了底层的实现,从《Windows CE下拨号上网》的图中可以看出,RAS是实现拨号连接的最上层,TAPI和Unimodem是主要的实现层。换句话说你想在RAS层设置例如串口波特率是不可能的。而CE默认的拨号连接记录中串口波特率为19200,相对于17201的数据传输速度来说都慢,更何况是GPRS。要设置串口的波特率为最大值115200,可行的办法有两个,一个是放弃RAS,调用TAPI函数实现拨号上网,TAPI函数中有几个函数例如带界面的lineConfigDialogEdit和无界面的lineDevSpecific 都可以设置波特率;另一个方法要简单的多,在CE下先用CE自带的"拨号连接"程序建立一个拨号记录,在建立过程中可以设置波特率,这个拨号记录的数据被保存到注册表中。如果自己开发拨号程序,那么只要在拨号前到注册表中找到拨号记录就可以了。通过这种方法就可以设置波特率了。如果你的CE平台不支持永久保存注册表,那么可以把拨号记录的数据直接保存到PB中,这样定制的内核本身就包含一个拨号记录,可以任意读取。

  二、拨打电话、收发短信

  实现拨打电话和收发短信,利用的是AT命令集和串口通讯。因为CE的串口不支持重叠,所以在拨号和网页浏览期间是不能再次打开同一个串口的。关于串口通讯我以前写过一篇文章,不过其中接收串口数据的线程不适合接收手机模块返回的数据,必须针对手机模块的特点构架一个合理的模型。下面我谈谈我在开发过程中遇到的两个问题,如果您有不同见解请发邮件给我,我希望能得到您的宝贵意见。

  1、不像手机,有些手机模块不具备存储功能,所以每次在启动的时候都要初始化一些必要的设置。如设置短信文本模式、字符格式、麦克和听筒的音量等。实际的初始化会更多。这种情况下如果发送一个命令后紧接着发送另一个命令,那么手机模块是吃不消的。必须先发送一个命令,然后等待手机模块对这个命令的返回结果,如果成功了再发送下一个命令,这才能够保证初始化都能成功完成,而且可以实时显示当前工作状态。

  2、手机模块返回的信息不确定。任何发送到手机模块的命令都会被返回,返回的字符串中可能包含对命令的响应,也可能不包含。这样就必须对整个返回信息做检索工作,而且还要区分返回的信息是否是对命令的响应。如"\r\nRING\r\n"就不是对命令的响应。

  实际遇到的问题不止这两个,所以在构架接收数据部分和处理数据部分的时候要把问题考虑全了。

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    相关文章
    Dreamweaver 入门:创建基…
    Dreamweaver 入门:创建基…
    Dreamweaver 入门:创建基…
    Dreamweaver 入门:创建基…
    Dreamweaver 入门:创建基…
    Web服务器上防范基于ASP…
    基于CMM实施软件过程改进…
    基于UML的系统分析方法研…
    基于UML的短信计费系统的…
    为 DB2 编写基于 Web 的…
    更多内容
    专题栏目
    更多内容
    最新推荐 更多内容
    | 设为首页 | 加入收藏 | 关于我们 | 版权申明 | 友情链接 | 谷歌 雅虎 百度 | 管理登录 | 

    爱问科技网
    爱问科技网

    21aw@21aw.com
    粤icp备06099319