CDMA无线终端TCP/IP协议介绍
扫描二维码
随时随地手机看文章
CDMA是无线通信领域的后起之秀,采用频分编码技术,与基于时分复用的GSM相比具有明显优势。CDMA能够实现从现有通信系统到下一代通信系统的平滑过渡,具有较强的功能伸缩性;可以支持先进的天线技术,通过增加小区覆盖范围减少基站数目;所有带宽信道都能支持高速数据业务;网络频率利用率高,设计施工和扩容较为简便。
内嵌TCP/IP协议的CDMA无线终端通过CDMA网络和Internet达到数据传输的目的,适合于开发基于无线应用的产品,如监控、调度、车载、遥控、远程测量、定位和导航等。这些系统开机就能自动附着到CDMA网络上,与数据中心实时在线进行数据通信、高速传输,可靠性强,具有良好的应用前景。文中提出的CDMA无线通信模块,提供了TCP/IP协议接口的AT命令,结合命令控制模块,适用于主机没有TCP/TP协议,但使用串口通信的情况(如单片机数据采集传输系统等)。
1 CDMA无线终端TCP/IP协议实现
Internet的实质是实现异种网络的互联,它充分利用各种通信子网的数据传输能力,通过在依赖于通信子网的通信模块和应用程序之间插入新的协议软件来保证应用程序之间的互操作性。因特网的协议族称为“TCP/IP协议族”,其中包含了为数众多的协议,如应用层协议,传输层TCP、UDP协议,网络层的IP、ARP、ICMP协议以及数据链路层协议等。无线网络与互联网整合,信息包通过无线媒介无缝地传输至基于IP协议的网络,在传输前,数据包必须根据TCP/IP协议封装。在CDMA网络中也采取了IP协议进行传输。CDMA系统中的TCP/IP协议结构自下而上分别为数据链路层(包括接口层和链接层)、网络层和传输及应用层。
1.1 数据链路层原理
CDMA系统中的数据链路层比较特别,涉及无线链路的链接及控制。链路层由RLP和PPP组成,数据业务的传递主要由无线链路协议(RLP)完成。RLP子层是上层应用与底层物理连接之间的重要接口,位于MAC层的复用子层之上。其主要作用是利用物理层的前向和反向信道为上层应用提供面向比特流的传输,而并不考虑上层应用的具体帧格式,根据复用子层的要求形成RLP帧。RLP子层中质量保证措施的核心思想是一种尽力而为的传输机制(Best Effort Delivery),即RLP子层依据协议规定的参数尽可能地保证数据的正确传输。
PPP包括串行链路上封装数据报的方法;建立、配置和测试数据链路链接的LCP协议(Link contr01 Protocol);建立和配置网络层协议的IPCP协议(IP ControlProtocol);鉴权协议PAP/CHAP。为了在点到点链路上建立通信,PPP链路的一端必须在建立阶段首先发LCP包配置数据链路。在链路建立后,进入网络层协议之前,PPP提供一个可选择的鉴权阶段。默认情况下,鉴权不是强制的。如果希望进行链路的鉴权,则实现者必须在建立阶段指明鉴权协议配置选项。
1.2 应用层实现
传统的网络编程都调用Socket API函数连接低层传输协议。常用的网络编程接口包括BSD(Berkeley Software Distributlon)Sockets和Winsock TM。为了支持网络应用,CDMA系统自身提供了完整的Socket API函数。建立一个TCP连接过程如图1所示。
应用程序调用dss_open_netlib()函数打开网络库,使数据业务状态机进入Socket模式,同时定义网络回调函数和Socket回调函数,返回应用ID号。应用程序通过网络回调函数得知低层网络是否可用,Socket回调函数描述Socket事件。
应用程序调用dss_pppopen()函数建立网络子系统,包括传输信道的建立和连接。网络子系统建立后,网络回调函数通知应用程序当前网络可用。
图1中省略了一个步骤,即低层协议建链后,调用dss_socket()函数创建一个新的套接字用来进行网络通信。返回一个描述符代表这个套接字;同时进行SCB(SocketControl Block)及相关数据结构的初始化,指定协议使用的地址族(AF_INET)、Socket类型(sock stream-TCPsockets)和协议类型(IPPROTO_TCP)。
此时调用dss_connect()与远程服务器建立一个活动连接。函数立即返回DS_EWOULDBLOCK,表示操作需要暂停。应用程序通过dss_async_select()函数,设定SCB的相应位,指定当前待处理事件(如DS_WRITE_EVENT),以支持Socket库的无阻塞函数调用,并及时得到异步事件通知。应用程序得知异步事件发生,立即调用dss_getnextevent()函数检查何种事件发生,并清除SCB队列中的相应位。
应用Huntel Technologies推出的CDMA 800 MHz标准无线模块HT6025-A,在CDMA操作系统自身提供的Socket API函数基础上进行网络应用层程序开发,实现了CDMA无线模块的TCP/IP协议的AT命令支持。用户只需通过模块串口输入/输出相应的AT命令即可实现TCP/IP协议的调用,以达到连接Internet的目的。系统采用CDMA系统支持的分组数据业务(Packet DataSetvice)进行数据传输。分组数据业务充分共享无线信道,采用IP Over PPP实现数据终端的高速、远程接入,以数据流量计费,传输速率可达14.4 kbps,是收发随机突发数据的最佳选择。图2为CDMA模块内部任务调用及软件结构功能图。
◇SIO:串口输入/输出。
◇Call Mgmt:其他呼叫处理和用户接口。
◇TX:CDMA数据发送。
◇RX:CDMA数据接收。
◇DS:数据业务控制,数据模式控制及AT命令执行任务块。
◇PS:协议服务任务块(EIA-617/TCP/IP/PPP)。
用户通过串口输入AT命令,如AT$TCPOPEN=ip,pott(用于发起TCP连接),DS任务块对命令进行处理,包括命令解析、排列等待、查找AT命令表、函数执行和响应返回等过程。DS任务块中函数执行将调用PS任务块,真正实现链路的连接、数据打包、路由及可靠传输。
2 测试及应用
将CDMA无线模块通过串口与PC机相连,PC机上运行串口调试程序,向模块发送AT命令,与联通给定的服务器IP地址建立连接,应用其测试端口,发送数据并接收回显数据。
测试命令包括:设置TCP/IP用户账号AT$TCPUID=account;设置TCP/IP用户密码AT$TCP-PASSWD=password;TCP/IP拨号ATD=dial;建立TCP/IP连接AT$TCPOPEN=ip,port;发送数据AT$TCPDATA=data(允许一次最多发送512个字符);关闭TCP/IP Socket AT$TCPCLOSE;退出TCP/IP应用AT$TCPEXIT。各命令返回正常,数据收发正确无误,有数据流量情况下永不断线,没有数据流量一定时间后,网络端关闭该连接。数据收发测试结果如图3所示。
在这一实现的基础上,设计开发了一套数据采集传输系统以证实其可靠性。应用系统由单片机、CDMA无线模块、电源部分和外部接口部分构成,如图4所示。
电源部分为单片机和CDMA模块提供合适的电源。外部接口部分包括天线接口和UIM(User Identity Module)卡座接口。
单片机实现数据采集、格式化、CDMA无线模块初始化,发送AT命令建立TCP连接并发送数据等功能。单片机提供多种传感器接口,如TTL电平串口、RS232标准串口以及自定义输入电压范围的多路模拟输入通道,可接入多种类型的模拟或数字传感器。考虑到移动设备的低功耗要求,选用TI公司的MSP430单片机。MSP430单片机是一种性能优良的Flash超低功耗单片机,烧写调试方便,工作电压3.3V,支持超低功耗工作模式,非常适合置于野外。其内置的多路A/D转换模块提供了方便的模拟传感器接口;内置的两路UART模块提供了数字传感器接口。MSP430通过UARTl直接与CDMA无线模块相连接,实现对CDMA无线模块的初始化和数据收发功能;同时UART2扩展MAX232标准串口与其他嵌入式系统或PC机进行数据交换。
CDMA无线模块将数据通过CDMA网络无线传送到基站。基站的互通功能单元IWF(Inter Working Function)完成无线数据业务和IP接入网的互通,实现传感器数据的Interrlet接入。Internet另一端的服务器对数据进行接收,可对来自传感器的物理量进行处理,如数据分析、数据融合、过程判断和数据显示等。
结论
互联网和移动通信的交叉呈现出强大的生命力,已成为当今全球信息产业的热点,它将引发人们工作和生活的巨大变革,有广阔的发展前景。本文完成了CDMA无线终端TCP/IP应用层的Socket编程,实现了CDMA移动终端的Internet接入,给出了实际应用系统原理及实现方法,对内嵌TCP/IP协议的CDMA无线终端的其他应用有重要的参考价值。