基于NXP5209的AT指令分析与扩展

时间:2022-10-03 10:50:17

基于NXP5209的AT指令分析与扩展

摘要:分析了3GPP定义的AT指令规范,它是由终端发出的被用来控制和执行无线通信模块功能的指令。主CPU使用AT命令驱动通信模块工作。介绍了多路终端适配器的结构,ATCUST模块管理所有具有客户特征的AT指令和URC命令,通过对其中的ATCUST模块的修改实现AT指令的规范化和功能的扩展。

关键词:AT;多路复用;EDEG;扩展

中图分类号:TN929文献标识码:A文章编号:1009-3044(2008)23-1026-03

Analyze and Extend AT commands Based on NXP 5209

ZHAO Zhi-yue

(School of Software,Southeast University,Nanjing 210096,China)

Abstract: The present paper specifies a profile of AT commands and recommends that this profile be used for controlling Mobile Termination functions and GSM/UMTS network services from a Terminal Equipment through Terminal Adaptor. The paper describes the architecture of Multi-TA. ATCUST executor manages all the AT commands and URC linked with customer feature. This module allows customers to create their own AT commands, to override existing AT command behavior, or to extend an existing command.

Key words: AT; multiplexing; EDEG; extend

信息化时代,人们对移动通信的要求已经不仅仅局限于通话本身,而更关注将通信和移动数据应用集成在一起。所谓智能手机,主要指将传统手机和PDA功能集合在一起的产品,它增加了传统手机所不具有的足够屏幕尺寸和带宽、信息及数据处理能力,同时具备无线网络访问功能。智能手机将会配备特定的操作系统,除了移动通信功能以外,还能上网、收发E-mail、做个人信息管理、处理Office文件,甚至几声光影像等功能于一身。目前,智能手机的发展非常迅速,市场上也出现了多款手机。手机产品已经成为了家用电子产品市场上的最大业务领域。从功能方面来看,手机朝着终端趋向智能化、终端功能多样化、个性终端多元化、终端趋向多媒体化的方向发展。

1 智能手机架构

系统以Linux作为嵌入式操作系统、Qtopia作为图形用户界面应用平台、采用双CPU(一个作为主微处理器、另一个作为无线通信模块)方式的手机解决方案。两端各是一个独立的子系统,各有其软硬件资源,主CPU主要完成GSM基带、射频、协议处理。两者通过串口进行通信,主CPU使用标准的AT命令驱动通信模块工作。

1.1 硬件设计

系统设计采用Marvell公司的Xscale PXA310高性能的32位微处理器,基于Xscale RISC核心,兼容ARM v.5TE指令。它引入了多媒体技术,适合作为具有视频和数字电视的3G智能手机平台。主频可调至624MHz,建基于低功率90纳米工艺,结合低功率模式,并能够调整电压和频率的动态需求,支持特殊电池待机模式。

同时采用PHILIPS公司的NXP Sy.Sol5209作为智能手机的无线收发模块实现智能手机的GSM通话、GPRS/EDEG上网及其它PDA应用等功能,该解决方案使客户能够开发出具有竞争力的EDEG数据应用产品。

智能手机的其它设备还有LCD、Touch panel、Audio CODEC等。

1.2 软件设计

软件架构采用了Trolltech公司的Qtopia Phone Edition平台,设计中最下面一层为操作系统层,主要实现对Linux操作系统的移植,其中包括Bootloader引导程序、LCD等设备的驱动程序。Qtopia Phone Edition是用于键盘或触摸屏手机的Trolltech应用程序平台。它在嵌入式Linux基础上提供了一套完整的视窗系统与主要应用程序。Qtopia Phone Edition中,提供手机Phone功能、管理全部用户操作流程、集中控制与底层硬件设备的接口的功能是由名为Phone Library的一套类库来实现的。为了使系统增加对VoWifi的支持,需要对Phone Library进行功能扩充。图1给出了应用端通过进程间通讯,并交由Phone Library统一管理,最后发送AT命令,通过物理串口控制通讯芯片的过程。

2 AT指令

AT 指令是由终端发出的被用来控制和执行无线通信模块功能的指令,如图2所示。

2.1 AT指令简介

AT指令的规范协议由3GPP组织进行定制,使用 AT 指令可实现如下作用:控制DCE、GPRS、EDEG、呼叫控制、增值服务、SIM应用工具包。

在项目中,应用端软件需要服务时,通过进程间通信,由Phone Library库对应用的请求进行统一的管理,最后发送AT commands通过串口和通信模块交互。Phone Library提供手机Phone功能、管理全部用户操作流程、集中控制与底层硬件设备的接口的功能。AT指令在Phone Library的AT HANDLER中通过串口发送到多路TA模块,实现具体的无线通信模块的控制指令。

为了提高AP端软件的移植性,使AP端软件能够按照3GPP相关协议的指令参数直接调用指令,就需要对项目采用的具体通信模块AT实现方案进行分析测试,对不符合标准的指令需要改写其实现方式,使其符合3GPP相关协议的标准。另外,应用端软件可能会调用一些无线通信模块的软件架构尚未提供的AT指令功能,这时,就需要扩展一些自有指令,来满足应用端的需要,简化应用端的开发。

2.2 多路复用技术

在常用的GSM/GPRS通用模块中,只能通过一个普通9针的异步串口与终端设备TE进行通信。TE和UE需要通过这个串换各种类型的数据,例如:语音、传真、数据、SMS、CBS、USSD等。如何在一个串口上同时支持这么多的业务?例如,在数据通信过程中,怎样发送或接受SMS?为了解决这些问题,3GPP提出了一个协议――TS27.010协议(Terminal Equipment to User Equipment multiplexer protocol)。有了Multiplexer,即使在数据连接过程中,也可以发送SMS。其它业务组合也可以同时进行。例如,数字语音和SMS同时发送。Multiplexer的存在使得一个完整的系统能够根据需要进行划分。

3GPP的Multiplexer设计非常灵活,并且独立于UE/TE平台,已有的应用程序不需要改动即可工作。在设计Multiplexer时,特别考虑到采用电池供电的设备的需要,所以包含了省电模式控制和优先权等很重要的功能,并且Multiplexer本身在运行时也尽量使用最小的功耗和内存。

Multiplexer基于ISO的HDLC(ISO/IEC 13239)标准设计,工作于有多种选项的单模式下。但是Basic Option并不遵从HDLC。

在基本选项模式下,Multiplexer没有透明机制,也没有错误恢复功能。但是在高级选项(Advanced Option)模式下,使用ISO HDLC标准的透明机制,且Multiplexer有一个方便的再同步机制,能够在DC1/DC3(XON/XOFF)流控打开的链路上工作,且包含了错误恢复功能。

在基本选项模式下,当UE和TE间存在一个高质量的链路并且UE中HDLC没有透明机制,Multiplexer将被采用。如果一个UE支持HDLC透明机制,它将被Multiplexer采用。当产生失败同步事件(例如,数据过载或低载),ISO HDLC透明机制必须被采用。当链路包含了错误恢复功能,错误恢复选项应该采用。

3GPP的Multiplexer依赖于一个控制信道。在这个控制信道上,TE和UE交换控制信息,例如参数协商、节电控制信息、流控信息、测试信息、关闭信息等。

Multiplexer是一个可选项,如果支持这个功能,就应使用AT+CMUX命令激活它。

3 多路TA系统实现

在NXP5209中,已经给出了多路终端适配器的实现解决方案,其结构如图3所示。

3.1 NXP GSM/GPRS/EDEG模块Multiplexer协议介绍

Multi-TA是管理并行AT指令的一个框架。专有的模块负责某一特征的AT指令集(SMS,Data,Call,Phonebook,etc…)。其中的每一个模块称为执行者,和其他执行者之间是相互独立的,在实现中设置了一个编译开关来方便激活/去激活。

鉴别器是Multi-TA框架的入口,它主要负责MIS和框架间的连接。包括如下五个模块:解析块:对输入的指令解析并将它们调度给合适的执行者;连接块:管理和TE间的连接;应答块:给TE发送应答;内存访问块:访问永久内存内容(通常情况)和信道中的数据内容;异步消息路由块:将从SPV层(通过RAP)传来的异步消息进行路由。

后四个服务由ATDISC的外部接口(ATKI)提供给ATCUST和其他执行者。ATKI是Muti-TA框架的内部主要接口。ATDISC是唯一和MIS模块交互的AT框架模块,通过MOBI接口。结果,输入的AT指令按照ATDISC模块的解析块的消息被路由到相应的执行者,每一条消息和一个信道ID相联系。这个信道ID由ATDISC提供给执行者,所以每一个执行者块都能够知道当前的工作信道ID。

在指令执行时,执行者通过消息直接和相应的SPV模块通信。如果执行这需要读或者设置存储在永久存储体中的数据,他们通过ATDISC模块中的内存块提供的宏来访问。

如果数据在执行者之间共享,他们也必须通过ATDISC模块的内存块提供的宏来访问。

当一条指令执行结束,执行者调用ATDISC模块的应答块提供的宏来向MIS发送结果命令,并通知ATDISC这次执行中止。ATDISC模块的路由块负责接收异步事件通告并发送这些消息给合适的执行者。

ATCUST模块的目标是保持AT自有指令在一个专有的模块实现,来和其他执行者区分开来。这个专有的模块由ATKI接口通过RTK消息来和ATDISC通信。

ATDISC和执行者与手机软件通过RTK消息交换来运作执行。

客户执行者(涉及到ATCUST模块)作为特殊模块专门用来实现新的AT指令或者重载已存在的指令,结果,当解析块分离一个命令,他先查看ATCUST的命令列表来验证ATCUST是否能够管理它,ATCUST模块使用主ATKI接口(它提供了所有使得AT命令运转的请求服务)。

3.2 环境搭建和NXP AT指令扩展

实验平台是Windows XP Pro系统,目标软件需要的环境是一个装有ARM compiler version ARM ADS 1.2 + patches 837 and 842,以及Cygwin软件。

将Cygwin安装在C:\cygwin下,ADS 1.2安装为C:\ADSv1_2,在环境变量中进行相关的设置。

在C根目录下建立一个目录C:\Dragonfly,将目标源代码拷贝到该目录下C:\Dragonfly\dv15,它包括了所有的源代码和嵌入式软件的库。拷贝目标代码中的/df/tools/.bashrc和/df/tools/.tcshrc到c:/cygwin/home/中。

在项目中AT指令的使用原则:尽量使用3GPP规范中的标准指令,其次考虑该MODEM供应商提供的自用命令,如果前两者都无法满足上层应用的需求,这时就需要自己订制满足需求的扩展AT指令。其中ATCUST模块就是PHILIPS给客户提供的用来扩展AT指令所需的模块。这一个执行者模块管理所有具有客户自定义特征的AT指令和URC命令。它允许客户插入自己定义的命令或者重写已存在的AT指令的特征。

下面先介绍下AT指令流程:

执行者将会从鉴别器ATDISC中接收到一条附带有信道Channel特定参数的消息AKI_COMMAND_REQ(Channel,NextBlockAvailable);

通过ATDISC的宏MC_ATK_GET_DECODED_CMD(Channel)执行者将获取指令的内容;

执行者执行该命令(可能同时会和SPV进行交互,甚至需要内部命令);

在命令的执行期间,执行者可能会通过宏MC_AKI_SEND_DATA或MC_AKI_SEND_MESSAGE给ATDISC发送数据;

接着,执行者用MC_AKI_SEND_RESULT(result,data,channel)宏向ATDISC发送指令的执行结果;

执行者通过宏MC_AKI_COMMAND_OVER(channel)暗示该AT指令执行结束;

当执行者接收到来自ATDISC的AKI_COMMAND_ABORTED_REQ(channel)消息时,一个AT指令就该停止了。

ATCUST模块是一个有限状态机进程,它有三个状态Idle、Wait和Data Wait三个状态。当它接收到不同消息时,将在这些状态间转换。

然后,在了解了框架的结构,就可以进行AT指令的扩展。通过对Delivery 1 软件包中psatcust模块的修改即可达到AT指令的定制,也可以对psatcore模块改写来更改PHILIPS中实现不是很完善的AT指令。当修改完成,就可以在Cygwin中进行编译链接,得到目标文件3400004536000101.cla。用PHILIPS提供的downloder工具bfdownloder经过配置参数后就可以将新的目标烧写到PHILIPS NXP 5209 Modem 的NorFlash中。这样新定义的自有指令就可以供上层应用来使用了。

最后,对新的版本还需要进行测试,对同样的场景进行的测试将是一个很重复的过程,为了节约人力和提高效率,在项目中将要编制自动化测试脚本,供测试使用。

4 结束语

在给定的硬件平台上,介绍了AT指令的传输和控制流程,接合特定的移动通信模块,分析了多路TA的实现框架,并给出客户定制AT指令的思路和方法,从而可以实现AT指令的规范化或扩展AT指令的功能。

参考文献:

[1] 周余,都思丹,王自强,等.应用处理器PXA 255上的嵌入式Linux系统开发[J].计算机应用,2004,24(3):158-160.

[2] 3GPP TS 27.001 V7.0.0 General on Terminal Adaptation Functions (TAF) for Mobile Stations (MS)[EB/OL].(2007-06)./ftp/Specs.

[3] 3GPP TS 27.007 V7.4.0 AT command set for User Equipment (UE)[EB/OL].(2007-06)./ftp/Specs.

[4] 3GPP TS 27.010 V7.0.0 Terminal Equipment to User Equipment (TE-UE) multiplexer protocol[EB/OL].(2007-06)./ftp/Specs.

上一篇:嵌入式系统基于DirectDraw的图像处理 下一篇:基于PSP的数据库项目实训