CDMA无线数据传输方法

本文介绍一种基于ARM9处理器S3C2410的CDMA无线数据传输方法,利用CDMA无线Modem实现远程无线传输,并详细阐述了PPP协议的移植及嵌入式网络编程。
摘要:本文介绍了一种ARM9系列的微处理器S3C2410,利用CDMA无线Modem进行远程无线数据传输的方法。并对PPP协议的移植以及CDMA无线Modem配置和嵌入式网络编程进行了详细介绍。
关键词:S3C2410;CDMA;无线Modem;PPP

1 引言

Linux嵌入式系统,具有高性能、低功耗、体积小、可靠性高、源代码开放等优点,逐渐被越来越多的人认可并使用,原先只有在PC机上实现的功能,如今也被移植到了更加方便的嵌入式系统上。近些年嵌入式系统已经应用十分广泛,而随着网络特别是无线网络的兴起和发展,将更加快捷方便的无线网络与嵌入式系统相结合更成为了当前研究的热点。CDMA(码分多址)无线网络具有覆盖面广、速度稳定、效率高、成本低等优点,CDMA的网络速度最大可达200k/s。本文着重介绍了ARM9与CDMA无线网络相结合的,进行无线数据传输的方法。

2 软硬件平台设计

这里采用的是三星公司的基于S3C2410的高端ARM9处理器芯片,适用于高端手持设备和微型智能控制设备的开发。它的主频可以达到203MHz,内建有MMU(内存管理单元),扩展总线最大频率100MHz。S3C2410具有3个UART、4个DMA通道、1个RTC和触摸屏接口,还具有IIC总线、一个USB Host,可以挂接图片采集终端设备。

Linux为嵌入式系统提供了一个极有价值的选择,它与Unix相似,是一个多任务多进程操作系统,支持非常广泛的硬件,并且源码完全公开,可以方便的根据需要修改,而且Linux提供了强大的网络功能,使其具有了同其他操作系统相同的地位。Linux可以用于多种硬件平台,并且受开销和时间限制小,通过剪裁、编译后的Linux内核文件非常小,只有2MB左右,可以方便地烧写入FLASH中,适合嵌入式系统的应用。最重要的是可以在PC机上开发,然后移植到硬件平台上运行。因此,这里我们选择Linux2.4作为嵌入式的操作系统。

2.1 系统结构设计

该系统为实时监控系统,也就是说当发生异常情况的是时候,图片采集终端自动拍摄图片后,将图片存储到系统SDRAM中,并通过无线CDMA模块,将采集到的图片上传至Internet,也就是发送到指定的Email地址中。通过登陆Internet就可以查看现场发送来的图片。系统结构如图1:

图1系统结构图

2.2 硬件结构设计

本嵌入式系统自带32MB SDRAM和8MB FLASH,将编译好的Linux内核文件和ramdisk文件系统分别烧写入FALSH中,运行时再由系统自动调入到SDRAM中。S3C2410引出一个USB Host连接USB摄像头用于图片采集,通过一个UART接口连接CDMA无线Modem,另一个UART连接PC主机,硬件结构如图2:

图2硬件结构图

3 软件设计

3.1 Linux内核编译

嵌入式系统资源有限,因此不可能在嵌入式系统之上进行程序的编译,需要在PC机上将程序编译成嵌入式系统识别的二进制代码,然后再移植到其上。交叉编译环境就是用来在PC机上编译嵌入式系统可识别代码的工具。这里用到的交叉编译环境是ARM-Linux。把对PPP的支持编译进Linux内核的方法为:在kernel目录,终端下输入make menuconfig,选择Network device support,[*]选择所有关于PPP的选项,然后保存退出编译即可。

3.2 PPP移植[1]

PPP(Point-to-Point Protocol)点到点,是为在点对点连接上传输多协议数据包提供了一个标准方法。本文用到的CDMA无线连网方法,就需要PPP协议的支持,这里用的版本是PPP-2.4.1和rp-PPPoE-3.7。其编译方法就是在建立的交叉编译环境下编译,生成pppd和chat等可执行文件,并写入文件系统ramdisk的/bin目录中。编写三个拨号脚本文件放在文件系统/ppp目录下。

第一个脚本文件为chap-secrets:

“card”  *  “card”

其中card分别为用户名和密码,*表示对服务器没有限制。

第二个脚本文件为cdma1:

ttyS0                     #CDMA Modem连接到串口1上

19200                   #CDMA波特率

nocrtscts                #不采用modem的rts和cts信号线流控

connect ‘/bin/chat –v –f /etc/ppp/chat/cdma2’      #用chat程序完成连接建立的会话过程,会话要通过/etc/ppp/chat/cdma2文件控制

debuf                 #表示pppd工作在调试模式

nodetach              #表示不让pppd转入后台工作

ipcp-accept-local       #表示接受服务器分配的本机IP地址

ipcp-accept-remote     #表示接受服务器指定的服务器IP地址

defaultroute            #表示把服务器指定的IP地址设定为默认的路由

user card     #表示认证时用户名card,pppd根据该用户名,从chat-secrets文件中取得密码

第三个脚本文件为cdma2:

ABORT “NO CARRIER”

ABORT “NO DIALTONE”

ABORT “ERROR”

ABORT “NO ANSWER”

ABORT “BUSY”

TIMEOUT 120

“”at

OK atdt#777

connect

以上几行代码的意思是如果modem拨号过程中出现了例如NO CARRIER之类的返回信息,则取消chat过程,连接失败,TIMEOUT 120则表示为连接超时,atdt#777表示拨号至#777。

设置好后,在开发板环境下输入pppd,如果出现乱码,则说明ppp移植正确。键入拨号命令pppd call cdma1,生成一个新的网络接口ppp0,服务器自动分配一个IP地址。此时PPP的移植及设置结束,也就是说现在已经创造好了一个可以上网的嵌入式系统。

3.3 Email发送程序设计[2]

图片采集终端采集的图片要发送到Email中,需要以附件的形式发送。邮件发送过程中,需要对邮件地址、用户密码和附件内容进行加密处理,这里采用了Base64加密法。Base64算法就是以3个字节为单位,当剩下的字符数量不足3个字节时,则应使用0进行填充,依次取6位数据并在前面补上两个0形成新的8位编码,由于3*8=4*6,这样3个字节的输入会变成4个字节的输出,长度上增加了1/3。相应地,输出字符则使用‘=’占位,因此编码后输出的文本末尾可能会出现1至2个‘=’。

邮件发送程序经过了以下几个过程[3]

(1)socket(int domain,int type,int protocol);

该函数建立新的socket,以建立一个新的通信端口并获得文件描述符。函数中的参数domain确定一个协议族,这里定义为AF_INET,type指定套接字类型,该处使用SOCK_STREAM,protocol一般为0,使用默认协议。

(2)connect(int sockfd,struct sockaddr *address,size_t address_len);

当调用socket建立传输端口后,调用connect函数建立与远程服务器相连的连接线路。

(3) recv(int sockfd,void *buf,int len,unsigned int flags);

该函数用于接收从套接口传来的信息,socket用connect连接的套接口,buf是指向内存块的指针,用于存储接受的消息,len指明内存块的大小,flags是一个操作标志。

(4)Base64_Code();//对登陆信息或附件内容进行加密

(5)send(int sockfd,const void *msg,int len,unsigned int flags);

该函数是用来通过套接口向其它程序传递数据的。sockfd是用来传输数据的socked描述符,msg是一个指向要发送数据的指针,len是以字节为单位的数据的长度,flags一般情况下设置为0。

其中对附件文件的发送需要预先设定每次读取的字节数和每次发送的字节数,将附件分批读取编码发送。程序执行过程如图3:

图3 数据传输流程

4 总结

实验证明用CDMA无线网络发送数据,速度比较稳定,有时会由于网络原因发送失败,但是成功率较高,收到的图片数据丢帧现象不明显。该方法可用于工业现场的监视以及家庭监控系统以及远程的数据采集。由于图片是发送到Email中的,因此运行成本较低,有较大的推广空间。

本文创新点:目前基于GPRS的无线数据传输方法研究的较多,而CDMA网络的高性能特性,逐渐引起了研究者的注意,本文就结合CDMA网络设计了一套与嵌入式相结合的系统,,将采集的现场图片,以附件的形式发送到Email中。

参考文献:

[1]栾昌海,王盟.基于GPRS的嵌入式Internet设计研究[J].微计算机信息,2006,6-2:94-96。

[2]K.Wall等.GNU/LINUX编程指南[M].王勇等译.北京:清华大学出版社,2000

[3]W.RICHARD STEVENS,BILL FENNER,ANDREW M.RUDOFF.UNIX网络编程[M].杨继张译.北京:
华为 HUAWEI E176G WCDMA 无线数据终端 驱动 说的是即插即用,可是我的老端口它不认,只好提取出来安装后,电脑可以识别上网卡了,共享给大家吧。 解压后安装Mobile Card 文件夹的内容。 转帖: 首次开通默认1G流量,当月使用超出1G的话系统会自动升为3G。依此类推 80元/月1GB 150元/月3GB 200元/月5GB 300元/月10GB * 温 馨 提 示 : 1. 中国联通于10月1日推出无线上网卡80元套餐(包1G流量) 2. 不收取功能费,您只需交纳上网费和短信费用。 3. 上网费不区分本地、漫游,您在国内(不含港澳台地区)任何3G网络覆盖地区上网一个价。 4. 启用即生效,您启用首月系统默认设置为80元套餐。如果您下半月启用,套餐月费和所含流量均减半(即40元月费包含512MB流量),次月按您选择的资费执行。 5. 上网卡预付费产品,您上半月(16日前)激活,按全月套餐收取;下半月(16日后,含16日)激活,按半月套餐收取,套餐月费和套餐所含流量均减半 6 您选择套餐的前提下执行套餐自动升级模式:(参见与传统计费模式对比表举例) 1)先扣除您所申请套餐内包含的数据流量,超出部分按照流量计费; 2)当原套餐月费与超出部分使用费用之和达到更高一级套餐月费时,自动向更高一级套餐升级; 3)下月自动恢复到您选择的套餐档。 7 无论您选用标准资费或套餐,上网流量15G封顶。 8 为体现资源公平使用原则,当月数据流量达到15G后自动关闭数据功能,次月自动开通。 无线上网卡资费(不含国际及港澳台资费) 小贴士: 店主测试,在不停的浏览网页、收取工作邮件、聊QQ/MSN等日常网上活动,每小时消耗10M流量,3G流量可保持300小时上网。 转载:“联通包流量计费真的很好,对于投资炒股、商务出差、休闲旅游、娱乐游戏一族来说,通常都是需要长时间在线,但是流量产生的都很少,3G高速无线上网一个小时一般产生5-30M流量。下面有游戏发烧友评测玩魔兽1小时连10M流量都不到。算下来1G=1024M折合成小时102小时。真是要多划算有多划算。有的顾客说我要下载电影看,呵呵,你考虑过你的笔记本的电池使用时间吗?有的顾客说我在家台式电脑上面用,那么我还是推荐您自己装宽带,我自己卖网卡的在家都是用宽带!在现阶段3G无线上网只是ADSL的一个延伸,无法完全取代ADSL。电信的3G 天翼包时长,猛一看是很划算,下载不限量,可是现阶段国内大部分的天翼资费都是100元包60小时,你自己计算一下60小时你能下多少部电影?一部电影多少钞票,长时间持续下载发热严重,对3G网卡的寿命影响有多大? 我估计这个账目大家都会算。!!!!” 以上一段话说的实在是精彩,每个买家都觉得受限制不舒服,可是这段话,切实的算了一笔经济账。以电信的速度,就算是不限流量,60小时又能下载多少电影?股民炒股,一天四小时看盘,然后再花两小时分析个股,一天就是6个小时,一个月是180小时。200小时/月的电信3G资费卡,一个月至少也要150左右。可是联通这种包流量计费,完美的满足了挂机上网的需求。供买家参考。 上网流量大致数据(请参考): 在线正常QQ不断聊天(不发送文件或下载文件),约用在0.48M/小时,低于1M/小时; 在线正常浏览网页(没有视频的那种),约用在6M/小时; 在线打网络游戏(魔兽争霸、劲舞团两款),约用在8-9M/小时,低于10M/小时; 在线看高清电影(PPS、PPLive),约用在550M/小时,低于600M/小时;
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值