TD-SCDMA是我国提出的具有自主知识产权的三大3G标准之一,对我国通信业的发展有着举足轻重的作用。随着3G时代的不断临近,TD-SCDMA的商用化受到了越来越多的关注。但是,在前几轮运营商对TD-SCDMA规模网络测试中,终端成熟度问题还未得到彻底解决。此外,TD-SCDMA手机暂时缺乏国际手机巨头的支持,消费者在心理上能否认同国产手机还是一个疑问,终端产业链亟待打通。而且,对3G特色业务支持的不成熟依然困扰着TD-SCDMA终端。
由于我国2G网络用户众多,2G网络存在CDMA和GSM两种制式,在3G正式商用时,不可能所有的用户都一下子转到3G网络上来。因此,开发基于TD-SCDMA、性能优良的双模或多模终端已成为我国3G产业发展的关键。
1 嵌入式操作系统
目前市场中的智能手机操作系统主要有三种:Nokia主推的Symbian;开放内核的嵌入式Linux;微软的Windows CE(Windows Mobile仅是基于Windows CE的一个应用)。
Windows CE提供强大的多媒体支持以及多种输入法,支持广泛的音频视频格式。Windows CE采用标准的Windows API函数,大大方便了开发人员,发挥可重定目标应用代码库的作用,软件开发商们则可将其现有的资源快速移植到Windows CE平台上。基于以上原因,并考虑到Windows产品的普及性以及用户对Windows软件的依赖性(如:word、excel、IE浏览器、媒体播放器、Outlook express等),本文采用Windows CE作为双模终端的操作系统。
2 终端系统构建
2.1 系统层次结构
系统的运行平台为基于Intel Xscale构架的IntelPXA270微处理器,采用64MB的内存、32MB的Flash存储、320×240/3.5寸LCD显示触摸屏。通信模块为TD-SCDMA和CDMA2000 1X。在以上基础上构建的系统结构如图1所示。操作系统通过硬件驱动与硬件平台相连接。应用平台所有应用程序的数据都以数据库文件的形式存放于Flash中,以免出现TD-SCDMA双模终端掉电数据丢失问题。通信软件(短信软件和拨号程序)通过通信服务程序读写串口数据,通信软件和通信服务软件则通过双模终端应用软件通信协议进行互联。通信串口负责向通信模块写入数据或读出通信模块返回的指令。通信模块之间的切换在硬件中实现,通过键盘上的切换键进行网络切换。
2.2 TD-SCDMA协议栈
开发基于TD-SCDMA移动终端,还需要开发TD-SCDMA协议栈。由于双模终端具有PDA功能,TD-SCDMA的协议栈直接在基带芯片的处理器上完成,主处理器完成一般应用程序与多媒体功能的处理。
该TD-SCDMA的协议栈采用分层结构,且易于扩展,其结构示意图如图2所示。
物理层的主要功能是传输信道的编解码, 物理信道的扩频、调制、解调与解扩, 同步、闭环功率控制等。MAC子层向高层提供数据传输、无线资源和MAC参数的重分配、测量的执行及报告等服务。RLC子层向高层提供RLC连接建立、释放、透明模式数据传输、非确认模式数据传输、确认模
2.3 操作系统定制
定制操作系统采用Platform Builder工具。Windows CE出色的图形用户界面以及强大的可扩展性对3G特色业务发展十分有利。故在定制操作系统时应充分考虑适应3G业务发展,尽可能加入一些多媒体组件。定制系统时不应加入全部组件,这会使系统变得臃肿,降低系统的运行效率,应尽可能做到系统功能完善而运行稳定。
该双模终端应用软件使用的数据库为EDB(Embedded Database),必须在定制系统时加入相关组件。EDB是Windows CE自带的数据库,使用EDB可以非常方便地存储和检索数据,极大地提高软件工作效率。相对于一般的数据库(如Microsoft
3 通信系统软件设计
3.1 概要设计
为了使双模终端具备基本的PDA操作功能,并通过通信模块实现话音和数据业务,需设计智能手机必须具有的基本应用程序,即拨号程序、短消息程序、通信录。拨号程序、短消息程序实现常用的拨打、接听、收发短信等功能;通信录实现用户号码的存储、查询等功能。
3.2 软件构架
根据Windows通信体系的结构,给出一种双模终端的通用软件架构,其结构如图3所示。其中关键是在操作系统层创建了支持任何第三方应用程序的第三方TSP(Telephony Service Provider)。在TSP中需要封装一些接口函数,主要包括:phone接口、line接口、SMS接口、SIM接口、IPC接口等。根据硬件设计的具体情况,TSP中封装了与TD-SCDMA通信模块和CDMA2000 1X通信模块相对应的AT指令。若硬件设计中未采用通信模块而直接使用芯片设计,TSP包中则应封装相应的通信协议。
采用TSP是为了兼容第三方的通信软件,TSP还可以根据需要和近期可能出现的应用程序进行定制,以提高该软件架构的可扩展性和灵活性,使双模终端具有更好的可扩展性和兼容性。这样软件开发人员就可以使用微软提供的标准API函数(如TAPI函数)开发应用程序,而不必担心软件的兼容性问题。
3.3 系统软件设计
使用eMbedded Visual C++4.0编写程序,编写代码时应注意:Windows CE只支持Unicode编码。
3.3.1 拨号程序
拨号程序主要使用API函数中的TAPI实现。利用TAPI能使两个或多个设备进行电话连接,通过电话服务供应者能实现应用程序更复杂的应用。语音通信应用程序实现过程如下:
(1)初始化TAPI(调用lineInitialize)。
(2)协商TAPI的可用版本(调用lineNegotiateAPIVersion):TAPI有多个可用版本,如果需要判断在设备上对TAPI集的支持程度,则有必要检查TAPI的版本号。
(3)获取线路通信能力(调用lineGetDevCaps):初始化后,为了使用线路设备,还必须打开线路设备,但是在对于TAPI来说,手机设备上还存在许多线路设备,如电话线路、串口线路、USB线路和MDODEN线路等,通过lineGetDevCaps函数选择特定的线路。
(4)打开线路设备(调用lineOpen)。
(5)翻译目的电话号码(调用lineTranslat码转换成TAPI能识别的格式,lineTranslateAddress函数能够实现转换号码地址。
(6)呼叫目的号码(调用lineMakeCall):应用程序使用lineMakeCall函数呼叫对方,TAPI会发送Line_CallsTate来通知呼叫的过程。
3.3.2 其他程序
短信程序的实现和拨号程序类似,区别是其调用的API函数不同,此处不再详述。通信录程序使用MFC编写,采用名片式存储,最多可存储500条记录。
各程序之间的通信及数据传递采用UDP sockets实现,三个程序的端口号分配分别是6785,6786,6787。但是,如果要在非拨号软件中发起呼叫,首先要调用tapiRequestMakeCall函数,将所要拨叫的号码送达拨号程序。如果是在非短信程序中发送短信,可以直接调用SMS接口,或者通过IPC将短信内容和目的号码等信息传递给短信程序,由短信程序发送短信。
程序中涉及到大量的数据,如短信内容、通话记录
TD-SCDMA双模终端的研发对我国移动通信,特别是TD-SCDMA的发展有极大的推动作用。利用Windows CE实时系统丰富的用户界面和处理芯片的强大处理能力,TD-SCDMA双模终端可以为用户提供丰富的多媒体服务。上述系统设计方案已经通过了测试验证,采用基于Windows CE的双模终端系统构架,开发周期短,开发难度相对较小,具有良好的兼容性和可扩展性。在(开发TD-SCDMA/GSM等双模或多模终端时也可采用以上系统构架,只需对协议栈、硬件接入以及TSP包进行相应扩展。
参考文献
[1] 李小文,李贵勇,陈贤亮,等.TD-SCDMA第三代移动通信系统信令及实现[M].北京:人民邮电出版社,2003.
[2] 何宗键.Window CE嵌入式系统[M].北京:北京航空航天大学出版社,2006.
[3] 傅曦,陈黎.Windows CE嵌入式开发入门——基于Xscale构架[M].北京:人民邮电出版社,2006.
[4] 张冬泉,谭南林.Windows CE实用开发技术[M].北京:电子工业出版社,2006.
[5] PETZOLD C.Window CE程序设计[M].北京:北京大学出版社,1999.