基于WCDMA 3G通信模块IM506P的嵌入式TCP&IP方案设计


一、 方案议题综述
移动互联网的普及以及智能家居的发展,物联网的发展,越来越多的小设备,脱机设备亟待接入互联网形成互联互通,与服务提供商连接,提供更新更强服务。但是普通小设备都是低成本非常简单的单片机为主控芯片的,不具备上网功能,更不可能在单片机里面跑TCP/IP协议栈,由此,3G模块具备嵌入式TCP/IP协议栈并提供串口供单片机收发数据,单片机只需提供一路串口,并且把要发送的数据通过串口发送出去,3G模块负责把数据传输到公网的指定主机上,这样单片机就接入互联网了。
今天的课题,我们选用IM506P作为核心元素,IM506P是由睿联通信出品,在车载/移动终端/POS支付等工业领域应用相当广泛的一款模块,性能稳定,接口和业务功能齐全,是我们选择它作为客体主元素的原因。
此课题,意在引导更多互联网因子加入互联网,激发更多实用的业务应用,促进行业发展。
阅者如需了解此模块规格参数,可自行到其官网下载或者网上搜索下载。
二、 主要特性
具备嵌入式TCP/IP的IM506,通过串口和单片机相连作为收发整体,B/S架构下面,单片机既可用作为普通客户端连接云端服务器,与服务器收发数据,并且保持到云服务区的心跳,链接协议支持TCP和UDP,同时支持最大5路socket链接,可以同时和5个服务器保持通信;单片机还可以作为TCP服务器或者UDP服务器,其他客户端可以连接它,进行收费数据,功能非常强大。
下面验证过程将一一呈现出来。

三、 测试拓扑图






四、 TCP&UDP服务器主机环境搭建
本测试环境是一个路由器建立局域网内主机和公网的连接,通过设置路由器的NAT将公网端口映射到局域网端口,从而公网主机可以访问局域网内部的TCP&UDP服务器主机。

1. 获得本机局域网IP信息



2. 增加NAT端口映射
telecomadmin 密码nE7jA%5m

3. 运行服务管理程序
运行TCP-UDP服务管理 V1.03.exe,如果出现下面警告点否。


4. TCP服务器主机设置
其中自动回复勾选框和透明回复/数据回复 必须在第一次收到数据后才允许选择。当第有一次收到数据后可以根据自己需要进行设置。


5. UDP服务器主机设置

设置好后点击侦听,如下。其中自动回复勾选框和透明回复/数据回复可以根据自己需要进行设置。



6. 获取服务器主机公网IP
获取TCP&UDP服务器主机所在局域网的公网IP,最简单的方式就是直接Baidu ip。

五、 3G模块客户端准备
1. 将RELINK 3G模块扣入开发板
2. 插入联通3G 卡到开发板
3. 串口线把开发板和上位机电脑相连
给3G模块上电,发AT查看联网状态,如下则为OK

六、 TCP协议测试
(一) 正常模式
1. 3G模块发送数据到TCP主机

2. TCP服务器主机接收到3G模块发送过来的数据

此时可对自动回复和透明回复等选项进行操作

(二) 透传模式
3. 设置为透传模式
透传/正常模式必须在+ENETINIT建立网络链接前配置,UDP同样。


4. 透传模式的数据发送与接收

5. 服务器的数据接收与发送

6. 发送”+++”退出透传模式

7. 关闭网络


(三) 多客户端模式
8. 启动多个TCP服务器。
如下图,端口为6801和6802。

9. 客户端SOCKET连接建立
最大支持0~9个客户端SOCKET。

10. 客户端0发送和接收TCP数据

11. TCP服务器主机接收到客户端0的TCP数据并回复

12. 客户端1发送和接收TCP数据

13. TCP服务器主机接收到客户端1的TCP数据并回复

14. 关闭SOCKET并关闭网络


七、 UDP协议测试
(一) 正常模式
1. 3G模块发送数据到UDP主机
 

2. UDP服务器主机接收到3G模块发送来的数据

3. 关闭链接

(二) 多客户端模式

4. 启动多个UDP服务器。
如下图,端口为7001和7002。

5. 客户端SOCKET链接建立
最大支持0~9个客户端SOCKET。

6. 客户端0发送和接收UDP数据

7. UDP服务器主机接收到客户端0的UDP数据并回复

8. 客户端1发送和接收UDP数据

9. UDP服务器主机接收到客户端1的UDP数据并回复

10. 关闭SOCKET并关闭网络链接




八、 TCP&UDP协议混合测试
该场景存在于多客户端模式。
1. 启动多个TCP&UDP服务器。
如下图,端口分别为6801和7001。

2. 客户端SOCKET连接建立
最大支持0~9个客户端SOCKET。

3. 客户端0发送和接收TCP数据

4. TCP服务器主机接收到客户端0的TCP数据并回复

5. 客户端1发送和接收UDP数据

6. UDP服务器主机接收到客户端1的UDP数据并回复

7. 关闭SOCKET连接并关闭网络

九、 结束语
这次课题,我们验证了具备嵌入式TCP/IP的IM506,通过串口和单片机相连作为收发整体,B/S架构下面,单片机既可用作为普通客户端连接云端服务器,与服务器收发数据,并且保持到云服务区的心跳,链接协议支持TCP和UDP,同时支持最大5路socket链接,可以同时和5个服务器保持通信;单片机还可以作为TCP服务器或者UDP服务器,其他客户端可以连接它,进行收费数据,功能非常强大。
非常适合做物联网接入点,去扩展突破传统形态的产品,开发更多更实用业务功能,促进行业发展,提供人民生活水平。
此课题的成功完成,得到了模块原厂睿联通信的大力支持,特别是组网和收发流程上面,使得我们少走了很多弯路,特别特别感谢技术支持黄工,每次当我们遇到瓶颈困难的时候,黄工远程过来非常迅速就把问题搞定,我们的课题继续往下走,黄工深厚的技术功底,扎实的通信技术令人佩服。




本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
毕加索的艺术——Picasso,一个强大的Android图片下载缓存库,OkHttpUtils的使用,二次封装PicassoUtils实现微信精选 官网: http://square.github.io/picasso/ 我们在上篇OkHttp的时候说过这个Picasso,学名毕加索,是Square公司开源的一个Android图形缓存库,而且使用起来也是非常的简单,只要一行代码就轻松搞定了,你会问,为什么不介绍一下Glide?其实Glide我有时间也是会介绍的,刚好上篇我们用到了Picasso,所以就聊下

手把手教你解析Resources.arsc - 2016-06-24 18:06:23

一、前言 对于APK里面的Resources.arsc文件大家应该都知道是干什么的(不知道的请看我的另一篇文章 Android应用程序资源文件的编译和打包原理 ),它实际上就是App的资源索引表。下面我会结合实例对它的格式做一下剖析,读完这篇文章应该能够知道Resources.arsc的格式,并可以从二进制的文件中查找到资源的相关信息,或者根据资源的id可以定位到二进制文件中的位置。不过本人对Android资源文件的有一些相关概念并不是特别熟悉,所以文章中有很多地方也并不明白,如有错误欢迎指正! 二、R.
一、IMS开机初始化 (如果图片看不清的话,可以右键选择在查看图片,或者把图片另存到自己电脑再查看。) 本 文 来 自 http://blog.csdn.net/linyongan , 转 载 请 务 必 注 明 出 处 。 1.1 监控IMS Service PhoneApp进程是在系统开机时启动的,Phone进程初始化的时候(步骤1~6),在创建GSMPhone或者CDMAPhone之后,会执行监控IMS Service的流程,也就是流程图上的 步骤7 ,在PhoneFactory. Java 的ma
怎样防止App在后台运行,点击App桌面的图标重新启动?            在项目中,遇到一个问题百思不得其解,那就是:我在app使用过程中,点击了home键,然后去看看微信之类的其他应用,这个时候再点击app桌面的图标,这个时候app是重新启动的,而不是从上次停止的界面开始的。            对于上面的情况,我觉得既然我的app已经在后台还运行着,为什么就不能继续重上一个界面继续运行,非得从新运行呢。然后我就去查资料解决了这个问题。首先讲讲这个现象的本质。            原因:当点击
1、ZIP文件目录遍历简介 因为ZIP压缩包文件中允许存在“../”的字符串,攻击者可以利用多个“../”在解压时改变ZIP包中某个文件的存放位置,覆盖掉应用原有的文件。如果被覆盖掉的文件是动态链接so、dex或者odex文件,轻则产生本地拒绝服务漏洞,影响应用的可用性,重则可能造成任意代码执行漏洞,危害用户的设备安全和信息安全。比如近段时间发现的“寄生兽”漏洞、海豚浏览器远程命令执行漏洞、三星默认输入法远程代码执行漏洞等都与ZIP文件目录遍历有关。 阿里聚安全的应用漏洞扫描服务,可以检测出应用的ZIP文

浅谈Android中的MVP - 2016-06-24 17:06:24

转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/51745798 本文出自: 【顾林海的博客】 前言 为什么使用MVP,网上有很多说法,最主要就是减轻了Activity的责任,相比于MVC中的Activity承担的责任太多,因此有必要讲讲MVP。 MVP入门 在MVC框架中,View是可以直接读取Model模型中的数据的,Model模型数据发生改变是会通知View数据显示发生相应的改变。而在MVP中Model和View之间的没有
阅读此文前请先阅读 Retrofit+okhttp网络框架介绍 从上文中我们已经了解通过如下代码即可得到返回给我们call 以及 response对象,今天我们通过源码来分析这个过程是如何实现的。 /** * 获取天气数据 * @param cityname * @param key * @return */ @GET ( "/weather/index" ) CallWeatherData getWeatherData( @Query ( "format" ) String format, @Query
一、Block 的类型 根据 Block 在内存中的位置分 为三种类型 NSGlobalBlock , NSStackBlock, NSMallocBlock 。 NSGlobalBlock :类似函数,位于 text 段; NSStackBlock :位于 栈内存,函数返回后 Block 将无效; NSMallocBlock :位于堆内存。 二、Block 的 copy 、 retain 、 release 操作   不同于 NSObjec 的 copy 、 retain 、 release 操作: B
前言 module 怎能少得了动画呢~ 代码解读 weex code API 接口 transition (node, options, callback) Arguments 参数node(Node):将要动画的元素。options( object ):操作选项styles( object ):指定要应用的过渡效果的样式的名称和值。color( string ):色彩的元素时,animaiton完成。transform( object ):变换函数被应用到元素。支持下列值。translate/ tran
目录 概述 这是一个关于 RecycleView 滑动事件的辅助类,该辅助类可以检测 RecycleView 滑动到顶部或者底部的状态. 可用于实现 RecycleView 加载更多或者刷新(虽然刷新可以直接用 SwipeRefreshLayout ).也可用于某些滑动相关的需求,如 FloatingActionButton 的隐藏与显示之类的. 关于 RecycleView 的滑动监听 RecycleView 本身已经提供了滑动的监听接口, OnScrollListener ,这个接口包含了以下的方法.