CDMA无线终端TCP/IP协议
时间:2023-09-29 10:36来源: 作者: 点击: 次是通信领域的后起之秀,采用频分编码技术,与基于时分复用的GSM相比具有明显优势。能够实现从现有通信系统到下一代通信系统的平滑过渡,具有较强的功能伸缩性;可以支持先进的天线技术,通过增加小区覆盖范围减少基站数目;所有带宽信道都能支持高速数据业务;网络频率利用率高,设计施工和扩容较为简便。
内嵌/的通过CDMA网络和Internet达到数据传输的目的,适合于开发基于应用的产品,如监控、调度、车载、遥控、远程测量、定位和导航等。这些系统开机就能自动附着到CDMA网络上,与数据中心实时在线进行数据通信、高速传输,可靠性强,具有良好的应用前景。文中提出的CDMA无线通信模块,提供了/接口的AT命令,结合命令控制模块,适用于主机没有/TP,但使用串口通信的情况(如单片机数据采集传输系统等)。
1 CDMA无线TCP/协议实现
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任务块,真正实现链路的连接、数据打包、路由及可靠传输。
内嵌/的通过CDMA网络和Internet达到数据传输的目的,适合于开发基于应用的产品,如监控、调度、车载、遥控、远程测量、定位和导航等。这些系统开机就能自动附着到CDMA网络上,与数据中心实时在线进行数据通信、高速传输,可靠性强,具有良好的应用前景。文中提出的CDMA无线通信模块,提供了/接口的AT命令,结合命令控制模块,适用于主机没有/TP,但使用串口通信的情况(如单片机数据采集传输系统等)。
1 CDMA无线TCP/协议实现
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任务块,真正实现链路的连接、数据打包、路由及可靠传输。