(华中科技大学电子与信息工程系 湖北武汉 430074)
摘 要:介绍了嵌入式操作系统μCLinux和GPRS网络各自的特点和他们各自具有的优势,详细讨论并实现了把GPRS模块集成进基于嵌入式μCLinux的手持式终端的方法,并分析了该无线手持式终端的应用前景。
关键词:嵌入式;μCLinux;GPRS;MC35
1 引 言
近年来,随着各类手持设备以及信息家电的广泛应用,嵌入式应用的发展进入了一个全新的时期。在嵌入式操作系统的领域中,嵌入式Linux以其性能稳定、价格低廉、功能强大又易于移植而正在被广泛采用,成为新兴的力量,向各种主流嵌入式操作系统如VxWorks,pSOS,Windows CE等显示了强有力的攻势,μCLinux正是在这种氛围下产生的。由于其开放、可靠、完善等优良的特性,μCLinux在嵌入式终端领域越来越受到重视。另一方面,在移动通信领域,GSM网络已经不能满足人们对数据、多媒体方面的需求,但3G(第三代移动通信系统)商用系统迟迟未能推出。而GPRS(GeneralPacket Radio Service,通用分组无线业务)具有“高速”和“永远在线”等优点,是GSM网络向第三代移动通信平滑过渡的桥梁,目前已经处于商用阶段。解决嵌入式手持终端的移动性问题,GPRS成为一种新的选择。
2 GPRS在基于μCLinux的手持终端上的实现
2.1 硬件设计与连接
一个功能较完善的手持终端所需要的硬件包括CPU,FLASH,DRAM,LCD液晶显示触摸屏、串口
等外围设备。
(1)CPU采用Motorola公司MC68EZ328系列CPU芯片,其片内地址总线为32 b,片外地址总线为24 b,主频为33 MHz。他是Motorola龙珠系列MC68328芯片中的新成员,EZ系列芯片集成了便携式系统处理器核MC68EZ328。在继承了原龙珠系列处理器显示控制功能的基础上,MC68EZ328具备更为灵活的LCD控制,在更小的封装内置入了一个外围设备的流式列表。这一款处理器主要致力于满足需要更少的外围设备和更灵活的LCD控制器的便携式用户产品的需求。
(2)闪速存储器和EPROM类似,可用电擦除,其使用方便而且寿命也很长(几万到几十万次不等)。我们选用2 M容量的AML29LV160芯片。
(3)动态RAM的优点是集成度高,读取时间短。我们采用8 M容量的MD51V65160芯片。
(4)串行通信芯片MAX202将3.3 V的通讯信号变换成232电平通讯信号。
(5)电阻式触摸屏。目前手持终端的主要输入方式还是用笔或手指,触摸屏提供了用户与手持终端进行输入的接口。常用的触摸屏主要有3种,分别是电阻式、电容式和电感式。目前市面上的触摸屏主要是电阻式和电容式触摸屏,电容式触摸屏尽管透明度较好,但易受到干扰,屏幕易磨损,因此用得较多的触摸屏仍是电阻式。
(6)GPRS模块采用Siemens公司的MC35。这是Siemens第一款支持GPRS的GSM/GPRS模块。他体积小巧,易于集成到手持式终端中。并且由于他是一款GSM/GPRS模块,不但可以提供GPRS功能,也可以为终端提供语音通话功能,利于以后功能扩展。
系统硬件结构图如图1所示。
2.2 MC35模块驱动及软件设计
MC35模块要正常工作,首先要启动模块并对串口进行配置,然后通过串口发AT命令联结GPRS无线网络。具体工作流程如下:
(1)启动模块
系统上电后,模块的引脚IGT上必须有一个下拉脉冲且最少需要延时100 ms,模块才能正常启动。启动后,引脚VDD电压从0升到2.9 V。可以依据引脚VDD的电压判断MC35模块是否已经正常启动。电路中由MC68EZ328的引脚EMUIRO提供IGT上的启动脉冲,引脚PE7检测VDD上的电压变化。
(2)模块启动成功后,需要对串口进行设置
系统必须通过串口发送AT命令,才能控制MC35模块的工作状态。串口设置包括打开串口、设置波特率、帧格式和流量控制等。
串口具体设置参数如下:
其中波特率设为115 200 b/s,数据位8 b,无流量控制。
(3)串口配置完成后,就可以对模块发AT命令
MC35模块虽然兼容标准的AT指令,但是对他进行了一些扩充。特别指出MC35模块的拨号指令是“ATD*99***1#”。拨号基本过程示例如下:
其中sendandrecvcmd为模块接口收发函数。
(4)运行PPP拨号程序,通过GPRS网络与Internet进行连接
PPP(Point to Point Protocol)是专门为解决Modem拨号上网的问题而设计的。PPP在连接过程中所处的主要状态有死亡、建立、认证、网络和终止。当链路是死亡时没有物理层连接,成功建立物理连接后链路变成建立。这时LCP选项商议开始,如果成功进入认证。如果在LCP阶段要求了认证,现在就可以检查PEER的标志,然后进入网络阶段,采用相应的NCP协议配置网络层。当完成数据传输后,链路进入终止阶段,并返回死亡。其简要的流程如图2所示。
Linux上的PPP程序稍做修改,就可以移植到μCLinux中去。值得注意的是:
①μCLinux是在系统初始化时初始化网络设备的,且同时初始化路由,根据是否有网卡,存在是否有默认路由的问题。由于本来手持终端就集成有网卡,所以存在默认的路由。因此要保证通过GPRS联结网络,必须删除默认路由。
②在拨号程序中,由于采用与PC不同串口的原因,所以只能以缓冲区的形式发送,而不能单字符发送。
③嵌入式Linux的用户本身就是Root用户,并且嵌入式Linux运行的平台本身没有与PC类似的网络信息,如主机名等。
④运行用户网络应用程序。面向一般应用的手持式终端所需的常用的网络应用程序包括收发邮件、浏览网页等。而面向特定应用如行业应用,就需要开发专用的网络应用程序。
3 结 语
嵌入式μCLinux系统内核源自于Linux内核,并保留了对TCP/IP以及其他的网络协议的支持。在嵌入式μCLinux系统上编写网络应用程序与在Linux上编写网络应用程序没什么大区别,通常只需要作很小的修改就可以移植到嵌入式μCLinux系统上了。至此,GPRS模块完整地集成到嵌入式手持终端中去了。
参考文献
[1]庞勇.手机无线上网技术及应用[M].北京:国防工业出版社,2001.
[2]MC35-Hardware - Interface - Description - V0010.
摘自 现代电子技术