首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

在基于WinCE的产品上使用手机模块 01

在基于WinCE的产品上使用手机模块 01

要在你的基于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的串口不支持重叠,所以在拨号和网页浏览期间是不能再次打开同一个串口的。关于串口通讯我以前写过一篇文章,不过其中接收串口数据的线程不适合接收手机模块返回的数据,必须针对手机模块的特点构架一个合理的模型。下面我谈谈我在开发过程中遇到的两个问题,如果您有不同见解请发邮件给我,我希望能得到您的宝贵意见。
返回列表