引言
近年来,无线通信技术得到广泛的应用,gprs (general packet radio system)通用无线分组网络就是一种比较流行的无线通信网络。
gprs网络具有覆盖范围广、数据传输速度快、通信质量高、永远在线和可按流量计费等优点。
本传输方案采用的是西门子gprs无线通信模块mc35i,该模块支持标准的at指令集,但并没有嵌入tcp/ip协议,不过系统采用的linux操作系统里面带有完整的tcp/ip协议栈以及ppp协议,它不但减少了软件系统的复杂度,也增加了系统的稳定性。这样,本方案就可用于不同的场合,只要设计相应的上层软件处理系统即可。
1 系统总体设计
该系统主要由gprs通讯模块和控制模块两部分组成,并采用嵌入式系统来设计gprs终端。该嵌入式系统由硬件和应用软件组成,其架构可分为微处理器、内存、输入输出、操作系统和应用软件等五部分。系统的硬件由微处理器、gprs模块、sim卡座、外部接口和扩展数据存储器等部分组成。微处理器可控制gprs模块的信息接收和发送,以通过标准rs232串口和外部控制器进行数据通讯,其系统原理结构如图1所示。
2 系统硬件设计
本系统硬件主要是以arm为开发平台,以西门子公司的mc39i模块作为gprs发送模块,从而使系统快速完成发送工作。
2.1 嵌入式微处理器单元
本硬件平台的cpu采用samsung的基于arm920t内核的s3c2410微处理器,s3c2410是采用0.18μm工艺制造的32位微控制器,该处理器拥有独立的16 kb指令cache及16 kb数据cache和mmu,并可支持tft的lcd控制器、nand闪存控制器、3路uart、4路dma、4路带pwm的定时器、i/o 口、rtc、8路10位adc、touch screen接口、iic-bus接口、iis-bus接口、2个usb主机、1个usb设备、sd主机和mmc接口和2路spi。s3c2410处理器最高可运行在203mhz频率下。另外,通过提供一系列完整的系列外围设备,s3c2410x可大大减少整个系统的成本,消除了为系统配置额外器件的需要。
2.2 gprs模块mc35i
mc35i是西门子公司最近推出的新一代双频gsm/gprs通讯模块的无铅产品,它简洁的封装是很多应用系统中无线高速数据传输的理想解决方案,可进行数据、语音、sms和fax各个方面的应用,且功耗低。它为用户提供了永远在线、高速度、更简单的移动数据通信接入手段。 mc35i具有丰富的at指令,而且功能强大,操作灵活方便,是继gprs手机的又一种非常重要的gprs移动通信系统的终端设备。它的出现给gprs的发展注入了新的活力。
mc35i具有体积小、重量轻、功耗低等特点。mc35i的工作电压为3.3~4.8 v,典型电压为4.2v,最大工作电流为2 a。模块可工作在egsm900和gsml800两个频段。工作于egsm900时的功耗为2 w,工作于gsml800时的功耗为1 w,可利用at指令进行控制,并支持文本和pdu模式的短消息、第i组的二类传真。mc35i模块常用的工作模式有省电模式、idle、talk、数据等模式。通过独特的40脚连接器(zif)可实现电源连接、指令、数据、语音信号及控制信号的双向传输。mc35i模块主要由gsm基带控制器、射频模块、供电模块、闪存、zif连接器、射频功率放大器、天线接口等部分组成。
3 系统软件设计
根据系统需求,在操作系统linux启动前,首先应该对微处理器和gprs模块在内的系统内外部硬件进行初始化,在硬件初始化就绪后,可按系统要求划分并创建系统任务,最后启动linux进行各任务的调度。应用程序共分为初始化任务、配置任务、数据发送任务、数据处理任务和用户串口中断服务等五个任务。本文主要完成系统的初始化以及拨号连入internet等工作。
3.1 系统初始化
为了能利用tcp/pi协议进行数据传输。设计时必须对系统的硬件和软件进行初始化。图2所示为系统初始化部分的软件流程图。
本系统软件在开始时,首先需要通过检查0x90端口的输入电平是否为高来判断mc35i模块是否正常上电。若未能正常上电,那么,软件将通过0x90端口的输出使mc35i模块上电。
当mc35i模块上电后,软件将在内存中开辟一个缓存区做为包括ppp、ip、tcp、udp等协议的数据缓存区。该缓存区内数据的存放方式采用双向链表的方式。
为了tcp协议实现中能够进行超时检测,在软件中应利用r8822cpu模块的内部定时器安装一个20ms的时钟中断。
etr186可通过其串口com2和mc35i模块相连接,用软件可通过安装串口中断来和mc35i模块进行数据传输。
在完成上述操作后,系统即可以利用at命令登录gprs网络。若不成功,即进行重试,超过重试次数后,即发送出错报告。最后就是进行ppp链路的连接,同时发送数据。
3.2 拨号原理
所谓初始化模块,主要就是设定apn:cmnet,
at+cgdcont=1,ip,cmnet,
然后利用chat程序拨号*99***1,#
待拨号连接成功后,再由pppd建立通信链路即可。其脚本改动如下:在ppp-on里改了电话号码为*99***1#,将账号与密码清除,再修改dialer_script的路径,同时把下面的设备改成/dev/ttys0,速率改为115200,再将crtscts参数去掉。同时在ppp-on-dialer里把帐号密码去掉。其改动后的脚本如下:
改动完成后,执行脚本ppp-on/ppp-on,即可拨号上网。
3.3 无线数据传输
当gprs拨号成功接入internet后,就可以进行无线数据传输了,这可通过linux下的网络编程实现。基于tcp/ip协议的网络编程主要有两种方式可以选择:tcp方式和udp方式。采用udp方式进行通信时,要求通信双方都知道对方的ip地址和端口号。但是目前gprs网络并不提供固定的ip服务,通信链路中的gprs终端的ip地址是由网关支持节点(gsn)动态分配的。因此,gprs终端在进行每次数据发送后。它的ip地址和端口都可能发生变化。本方案中的网络数据通信采用tcp方式。即采用流套接字进行网络编程。
3.4 上位机软件设计
中心服务器端软件应提供一个可视化的监控界面,以便直观、方便、快捷地了解远程数据采集终端的状态,及时发现并处理异常和故障情况,实现与gprs终端的通信。上位机部分采用的是windows的平台,编译器采用vc6.0。为了方便网络编程,90年代初,由microsoft联合了其他几家公司共同制定了一套windows下的网络编程接口,即windows sockets规范,这实际上不是一种网络协议,而是一套开放的、可支持多种协议的、windows下的网络编程接口,现在的winsock已经基本上实现了与协议无关,可以使用winsock来调用多种协议的功能,但较常使用的是tcp/ip协议。socket在计算机中实际提供了一个通信端口,可以通过这个端口与任何一个具有socket接口的计算机进行通信。应用程序在网络上传输时,接收的信息都可通过这个socket接口来实现。
在vc中进行winsock的api编程开发时,需要在项目中使用下面三个文件,否则就会出现编译错误:
(1)winsock.h:这是winsockapi的头文件,需要包含在项目之中;
(2) wsock32.lib:winsockapi连接库文件。在使用中,一定要把它作为项目的非缺省的连接库包含到项目文件中去;
(3) winsock.dll:winsock的动态连接库,位于windows的安装目录下。
4 结束语
该系统将无线通信技术与嵌入式技术有机的融合在一起,可使用户终端以低廉、快速、可靠的方式连入gprs网络和互联网,并可使用户终端的数据信息简洁、实时的进行传送,从而为用户终端安全稳定的运行提供了可靠的保证。实验结果证明,该系统在上位机上能很好地接收数据,尤其在中低业务和低速率的数据传输中,能体现良好的性价比,同时可满足实时性的要求。
海能达发布了2020年一季度业绩报告
基于Nios II的多媒体广告系统原理设计
中国掀OLED投资潮 资金技术是难题
相序、相位、零序和正序定义和区别
如何对抗智能合约系统中的审查攻击
基于ARM和GPRS的无线传输与接收设计
高通苹果陷入“专利流氓”怪圈,急需一个平衡点
阿里旗下半导体公司发布玄铁910嵌入式处理器
48V至5V DC-DC转换器采用MAX638开关降压型稳压器从电话线借电
德州仪器成功入选2015年教育部产学合作育人项目
电池型号怎么看 电池型号LR6是几号电池
又一新车横空出世 启用生物识别指令控制
RFMD发表全新单晶模拟温度补偿衰减器RFSA4013与RFSA4023
TOPS算力超华为昇腾910近2倍,Groq嵌入式芯片的优势
IDO-SOM2D01模块的特征及应用
【免费指南】如何应对2022年Windows DCOM安全更新?
语音交互的智能电子屏让我们的生活不再枯燥
石墨烯产业锦上添花,产业增长将迎来爆发
高压探头NorthStar北极星产品特性及其应用
热箔供热的低成本微流控平台用于原位变温光谱的研究