Appcat 发表于 2009-2-15 18:04:20

【恢复】公开自己做的CDMA/GPRS无线modem的全部资料

网站终于恢复了,现在发现我的积分少了一半多,原来的原创资料贴也不见了,郁闷!好在那么多积分都是瞎掰打屁混来的,不值得一提,可惜的是那几篇酷帖,埋头搜索,终于找回来了一些,就贴上来吧。贴上来的文字里边带原有附件文件名,又要辛苦阿莫给挂上了。

==========================================================================================
首先说一下,这个无线modem是来自于我上半年做的一个产品,由于经济危机,这个产品已经停掉,所以目前手里作为配套压了很多半成品板,
还有十几块空的PCB板,半成品板已经入库,没法免费往外拿,但是空的PCB板是原来留给调试用的,所以财务没入库,就准备考虑送给感兴趣
的OURDEV的朋友。
无线MODEM的简单描述:
板上资源: LM2576电源,MAX3232电平转换芯片,11.0592M有源晶振,ATMEGA128L,FM32256(铁电),滑槽式SIM卡座,40PZIF接插件,通信
模块支持CM320,TC35i,MC35i,MC39i,GTM900A/B等模块。
使用方法:1、不焊接M128和FM32256以及晶振,将桥接电阻R29,R30,R31焊上,就是标准串口无线MODEM,根据模块不同可以支持GPRS和CDMA,
             当然也可以作为GSM猫或者短信猫来使用。
          2、焊上M128芯片,FM32256可以根据实际需要决定是否使用,除了支持上面的应用模式外,还能做成不需要上位机的透明传输模块,
             实现单片机或者一些非计算机设备无线上网传输数据的要求。

说明:由于是产品,并且已经销售出去一些了,所以就不能给PCB文件了,在后面我提供的代码里边把机卡认证的算法也去掉了

上电原理图:GTM900以及CM320模块电原理,西门子TC35I/MC39I直接代换gtm900    ourdev_525576.PDF(文件大小:44K) (原文件名:GTM900SCH.PDF)


再来吹吹牛,下面是别人给我做的产品介绍上摘下来的:

1)内部集成TCP/IP协议栈
DTU内部封装了PPP拨号协议以及TCP/IP协议栈并且具有嵌入式操作系统,从硬件上,它可看作是嵌入式PC机与无线GPRS/CDMA1X MODEM的结合;它具备无线拨号上网以及TCP/IP数据通信的功能。
2)提供串口数据透明双向转换功能
DTU提供了串行通信接口,包括RS232,RS485,RS422串行通信方式,而且DTU在设计上将串口数据设计成“透明转换”的方式,也就是说DTU可以将串口上的原始数据转换成TCP/IP数据包进行传送,而不需要改变原有的数据通信内容,而接收上位机软件能将TCP/IP传输的数据包还原成串口数据。因此,DTU可以和各种使用串口通信的用户设备进行连接,而且不需要对用户设备作改动,不需要修改用户的程序。
3)支持自动心跳,保持永久在线
DTU终端设备永久在线, DTU在设计上都支持永久在线功能,包含了上电自动拨号、采用心跳包保持永久在线(当长时间没有数据通信时,移动网关将断开DTU与中心的 连接,心跳包就是DTU与数据中心在连接被断开之前发送一个小数据包,以保持连接不被断开)、支持断线自动重连、自动重拨号等特点。
4)支持参数配置,永久保存
DTU作为一种通信设备,其应用场合十分广泛。在不同的应用中,数据中心的IP地址及端口号,串口的波特率等都是不同的。因此,DTU支持参数配置,并且将配置好的参数保存内部的永久存储器件内。一旦上电,就自动按照设置好的参数进行工作。
5)支持用户定制权限认证、加密功能,满足用户对知识产权保护的要求。
DTU作为智能设备,具备操作系统,具备用户交互界面,可以根据用户特殊需求定制命令界面进行各种权限校验和数据加密传输,支持开机上电口令、传输口令、双重握手校验、SIM卡校验、白名单黑名单等功能。使得用户能将DTU与其自己的设备或者上位机软件捆绑起来,能与SIM卡号电话号码捆绑起来,最大程度保护用户知识产权不被窃取,保护用户投资和市场利益。
6)提供远程固件升级
当DTU固件程序根据需要升级后,针对已经安装运行的设备,用户无需到现场进行升级,只需要通过远程指令就能够对DTU进行升级,最大程度方便用户,降低DTU总拥有成本。
7)提供短信通道、GPRS自由控制通道
“天翼通”DTU支持在支持先进的透明数据传输模式的同时,为兼容一些原有系统的应用要求,还支持短信通道,DTU表现为一个传统的短信猫,全面兼容短信猫操作指令。对于用户上位机需要进行PPP协议和TCP/IP协议直接控制的系统,我们的产品还兼容标准GPRS MODEM模式,用户只需要像操作一个传统有线MODEM一样操作该DTU。最大程度方便用户使用,保护用户原有投资。


上源码,这个源码是用法2中的M128中的代码,这个代码提供了一个用户操作无线modem的交互界面,本身对模块没什么操作,具体需要什么样的操作,可以自己在这个基础上写,这只是一个框架。
框架源码ourdev_525596.rar(文件大小:154K) (原文件名:无线MODEM源码.rar)
源代码使用CVAVR 2.03.4编译的。点击此处下载 ourdev_525936.rar(文件大小:8.15M) (原文件名:cvavr2.0.3.4.rar)


下面要上配套资料了,先是GTM900系列的资料
GTM900 无线模块 产品描述手册ourdev_525616.pdf(文件大小:516K) (原文件名:华为GTM900 无线模块 产品描述手册.pdf)
GTM900 无线模块 AT命令手册ourdev_525617.pdf(文件大小:2.51M) (原文件名:华为GTM900 无线模块 AT命令手册 for 205&206.pdf)
GTM900 无线模块 TCPIP AT命令 使用指导书ourdev_525618.pdf(文件大小:502K) (原文件名:华为GTM900 无线模块 TCPIP AT命令 使用指导书.pdf)
GTM900 无线模块 GPRS拨号 设置方法ourdev_525619.pdf(文件大小:367K) (原文件名:华为GTM900 无线模块 GPRS拨号 设置方法.pdf)
GTM900 无线模块 STK命令用户 使用手册ourdev_525620.pdf(文件大小:444K) (原文件名:华为GTM900 无线模块 STK命令用户 使用手册.pdf)
GTM900 无线模块 串口多路复用 参考手册ourdev_525621.pdf(文件大小:387K) (原文件名:华为GTM900 无线模块 串口多路复用 参考手册.pdf)
锁定模块频点的命令ourdev_525622.txt(文件大小:464字节) (原文件名:锁定模块频点的命令.txt)
工程模式AT命令(2118)ourdev_525623.txt(文件大小:6K) (原文件名:工程模式AT命令(2118).txt)


下面上图

已经焊接好的板子正面 (原文件名:DSC_5694.JPG)

已经焊接好的板子背面,没焊CPU (原文件名:DSC_5695.JPG)

已经焊接好的板子背面,焊上CPU (原文件名:背面.jpg)

已经安装模块的板子正面 (原文件名:正面.jpg)


需要说明一点就是PCB板上的RS232串口接头DB9和2.54串口接头以及ISP接头都是重叠在一起的,因为当初设计是产品,对体积都要求,所以没有分开设计,这样就造成了如果使用M128时,由于要用ISP,所以不能用DB9的头了,只能使用2.54的串口(电平也是RS232)。
我自己的办法是,做一个转接线把2.54排针变成DB9母头,就可以直接连PC机串口了,还有一个办法就是,往M128里边写入一个bootloader,直接焊好DBF的头,通过bootloader来开发,这时如果还需要ISP就要从板子反面引出ISP了。

继续公开代码,这回是PC端的,就是当这个MODEM做成了透传DTU时,服务端负责接收数据的程序,也是一个框架,接收到的数据如何处理,需要使用者去自己写。
如果是成千上万个这样的模块向服务端传数据怎么办?负责接收的程序岂不是要很强大才行?那么使用什么技术呢?多线程吗?非也,多线程从理论上行得通,但是在实际使用中,在Windows操作系统中,当线程数达到100个以上,CPU时间基本都浪费在线程切换上了,根本没有时间进行数据处理,所以,多线程处理高并发在Windows下行不通,微软也知道这个问题,他们在WINSOCK2.0的网络模型中就提供了全新的完成端口模型,利用此模型能够轻松应付上千个连接,真正实现高并发通信。这里的这个程序就是使用了完成端口模型的最简单的程序,连窗体都没开。编译环境是VC6,运行环境是WindowsXP和WindowsServer2003,其他的我没测试过。
完成端口模型接收DTU数据,高性能高并发ourdev_525917.rar(文件大小:8K) (原文件名:test.rar)

DTU就是data transmission unit的缩写,其实就是指不用PC机,不需要拨号,不需要外部TCP/IP协议栈的无线数据传输模块,这类模块一般都有自己的用户交互界面,内置TCP/IP协议栈,内置缓冲,有的甚至还有自己的操作系统。当然DTU也能兼容GPRS/CDMA MODEM的功能了,所以一般称这类DTU叫透明传输(用户只要从串口发数据,后台就能原样收到),适合单片机,工业控制设备等一些非智能设备通过无线网络传输数据之用。

可以用在需要传输数据的地方,地点比较分散,布线不方便,特别是野外。
比如:
危险品转运跟踪
旅馆住宿登记上报
低压变电箱监控
远程无线抄表
远程考勤
专卖专营专柜销售数据实时汇总
南水北调沿线渗漏监控
油田采油机状态监控
...................

GTM900B的启动信号是一个持续不小于10ms的低电平,所以持续低电平也没有问题。注意的是网上流传的GTM900的开发板原理图(广和通版)有一个问题,就是IGT用一个电阻上拉到VCC,同时跨一个电容到地,这种做法是不稳定的,会造成开机使用一段时间后随机数量的GTM900的AT命令界面死锁,而GSM栈工作正常。正确的做法应该是直接把IGT拉低或者把那个电阻接VCC那头改接地,如果使用MCU控制IGT就简单了,直接拉低。
如果确认模块已经上电,重点关注一下几个命令:
AT+CSQ   信号如何
AT+CIMI是否已经找到SIM卡
AT+CREG? 网络是否注册正常

看datasheet太长,看程序太累,如何快速上手GTM900模块,请看GTM900精简指令说明,超快速上手。
点击此处下载 ourdev_534058.TXT(文件大小:1K) (原文件名:GTM900推荐开关机流程.TXT)
点击此处下载 ourdev_534059.txt(文件大小:1K) (原文件名:GTM900推荐初始化流程.txt)
点击此处下载 ourdev_534060.txt(文件大小:583字节) (原文件名:GTM900推荐TCP发送流程.txt)
点击此处下载 ourdev_534061.txt(文件大小:1K) (原文件名:GTM900推荐TCP关闭流程.txt)


向大家道个歉,37楼给的服务器程序是有问题的,是我在CSDN里边找的一个例程,很简单的改了一下就拿出来了,今天我自己替另外一个客户添加功能调试时发现有很多错误,由于C++我也是半瓶子水,所以今天才发现。把客户的程序改完后,就把这个框架重新理了一遍,基本没有错误了,再次放上来。已经购买开发板套件的朋友我会通过邮箱把程序发给你们。
点击此处下载 ourdev_548702.rar(文件大小:10K) (原文件名:demo.rar)


预告一下:具备透传功能的开发板固件(就是M128程序),下周公布,完全重新写的,不涉及其他客户的商业代码,使用GPRS不要再用复杂的AT指令了,一个SEND指令一切都搞定!

上程序了!已经可以支持直接传输数据,目前在华为CM320和GTM900B上调试通过。相比原来发布的版本,多了很多功能指令,这些指令的详细说明文档我再整理,时间来不及了,先把程序放上来吧。
点击此处下载 ourdev_560263.rar(文件大小:345K) (原文件名:DTU透传源码.rar)

使用方法:·先用set指令设定服务端IP地址和端口,拨号的用户名密码。set指令设定的内容掉电不会丢失,直到下次用户使用set指令改变
         例如:set ip=192.168.16.1
                set port=9998
                如果是CDMA的话还要下面的命令
                set uid=CARD
                set pwd=CARD
          ·然后使用PPP进行拨号,返回OK表示成功
          ·使用TCP进行服务器连接,返回OK表示成功
          ·使用SNDXXXXXXXXXX^^^^^^指令发送数据,其中SND是指令,X是任意字符,联系6个^符号表示指令结束,DTU会把中间的
            XXXXXXXXXX数据向服务器发出,^^^^^^不会发出。XXXXXXXXXX最长为255个字符。
            当服务器返回数据时REVaXXXXXXXX,其中REV是指令头标,a是后续字符个数,XXXXXXX就是服务器返回的内容,a的
            类型为unsigned char,所以在调试工具中a可能会显示为乱码。a的最大值为255
          ·断开服务器传输时使用TCPCLS指令
          ·结束PPP拨号连接使用PPPCLS指令
          ·中间如有任何一步返回ERROR信息,调用TCPCLS,PPPCLS指令后再从PPP指令重新开始。


以上使用方法配合【180】楼的服务器程序使用。

下一步的目标是实现1、存储发送(针对有铁电的硬件),包含断电续传
                  2、上电自动连接服务器,并用心跳信号保持服务器连接
                  3、处理好批量发送与批量接收的关系,而不是像想在一发一收这么简单。
                  4、实现UDP协议传输
                  5、......大家提提建议

-------------------------------------------------------------
感谢Appcat提供的好东西!特做一个服务器端测试小程序给喜欢的朋友。
点击此处下载 ourdev_584124.rar(文件大小:1.54M) (原文件名:setup.rar)
源码
点击此处下载 ourdev_593684.rar(文件大小:7K) (原文件名:test.rar)
-------------------------------------------------------------
本次开源的最后一个版本,支持透明模式,指令模式和AT模式的DTU固件代码发布。
做为开源版本,作为大家学习参考的框架,此版本代码已经实现了DTU所有的数据传输方式,包括透明传输。所以此版本为开源的最终版本,appcat不再开源更新的版本了,太累了。如果有朋友需要应用该产品,请和我联系,我将提供真正商业化的固件和产品。

源代码,工程,使用说明,编译好的HEX文件全打到rar里了。

另外,等着CDMA的朋友可能要失望了,这个版本把CDMA的代码全部摘掉了,原因是,CDMA的指令集不完善,很难调(我水平菜,找个借口:),而且CM320作为华为的一个过渡产品,已经停产了,现在市场上全面断货,存货价格已经上涨了50%,所以暂时去掉了。等牛年春天来的时候,华为将推出新的CDMA模块,到时我再做CDMA了。
点击此处下载 ourdev_598224.rar(文件大小:796K) (原文件名:gtm900b-dtu(ouravr开源版).rar)

再上源代码了。还是VC写的,MFC下完成端口TCP高并发服务器模型。
今天,有个买了我的开发板套装的朋友,在网上说,想要一个MFC下接收DTU传输数据的程序,他们那里要在MFC下写数据库
的应用,但是我原来的程序是基于控制台的,他们无法在控制台下连接数据库,所以就改了一个MFC下的IOCP框架,同时也
贴到这里来,希望有人能用上。
在移植过程中发现:1、VC6带的MFC默认使用winsock库,而不是winsock2,所以就不能让MFC做网络初始化工作,而要自己做。
这个问题应该在VS2003以后解决了,默认使用winsock2库了,但是听说winsock2.h必须在windows.h前被include,否则会出错。
2、控制台的网络服务器程序和UNIX的下很像,只要在MAIN函数里边反复循环处理用户连接就可以了,但是在MFC界面下如果也
这样做,会导致主程序界面锁死,就像死掉一样,对用户操作无反应。所以我就又开一个线程,用来干原来程序main函数的事情。

点击此处下载 ourdev_605704.rar(文件大小:3.65M) (原文件名:MFCIOCP.rar)

Appcat 发表于 2009-2-15 18:05:31

自己坐沙发

Appcat 发表于 2009-2-15 18:13:35

上面的恢复比较乱,一些和网友讨论的文字都没有了,我把网页快照下载下来了,这里有讨论的文字,需要的朋友请下载
点击此处下载 ourdev_417932.RAR(文件大小:50K) (原文件名:公开自己做的CDMA GPRS无线modem的全部资料(论坛文字资料).RAR)

如果有朋友需要文中公开的资料和源代码,请给我邮件,我的邮箱是gpio(at)163.com,我会通过邮箱发送给你们的。

Appcat 发表于 2009-2-15 18:32:34

相关的硬件:板子,模块,配件,套装等,请到www.appcat.cn(淘宝店)查看

_yuming 发表于 2009-2-16 08:11:07

To 【3楼】 Appcat讨论文字我这里都有,我一会就上传,我是一mht格式保存的,看来还要麻烦 Armok来整理了。。。。辛苦辛苦。。。

_yuming 发表于 2009-2-16 08:19:04

我保存的截止时间是2009-02-11,还算是比较完整的吧,里面包含了当初的所有图片。。

点击此处下载 ourdev_418105.mht(文件大小:1.92M) (原文件名:公开自己做的CDMA-GPRS无线modem的全部资料(空PCB板已经送完,感谢大家关注) (ourdev_cn 我们的电子开发社区).mht)

Appcat 发表于 2009-2-16 16:01:32

严重感谢_yu-ming !

lysoft 发表于 2009-2-16 21:47:49

丢失不少东东呀-_#!

Appcat 发表于 2009-2-16 23:18:05

阿莫说附件都没有丢,现在的问题是文字资料也全了,就是要把文字和附件挂起来,附件包括源代码、文档、照片。最近阿莫太忙了,大家先不要急,有需要这些资料的,我自己硬盘上都有,给我邮件,我用邮箱发给大家。

wswh2o 发表于 2009-2-16 23:44:24

www.appcat.cn转到淘宝是怎么办的?

Appcat 发表于 2009-2-16 23:56:36

www.appcat.cn本来就是我给淘宝店注册的域名,比较完整的文字以及图片资料在【5楼】,如果要原来的附件(文档资料和源代码),给我发邮件,通过邮件来分发。阿莫这边太忙,暂时不再重复上传,耐心等等。有什么问题还是可以直接在这里讨论。

armok 发表于 2009-3-2 09:31:17

YourARM 发表于 2009-3-2 11:02:41

【9楼】 wswh2o 水之影

积分:753
派别:
等级:------
来自:www.powerARM.cn
        www.appcat.cn转到淘宝是怎么办的?
__________________________
淡泊以明志,宁静以致远
http://shop57071344.taobao.com/
21IC DIY
http://wswh2o.5166.info/secret

域名解释时跳转到指定网页

armok 发表于 2009-3-2 23:09:36

Appcat 发表于 2009-3-2 23:18:12

呵呵,感谢阿莫和同事们的辛勤劳动!帖子内容全部恢复啦!
送美女一张,也是车友哦
http://cache.amobbs.com/bbs_upload782111/files_12/ourdev_423174.jpg
(原文件名:20071161840072066.jpg)

af00 发表于 2009-3-3 00:13:26

终于恢复了,再顶一下

kite2006 发表于 2009-3-4 19:53:10

感谢Appcat 和 armok 团队,

Gvinnar 发表于 2009-4-11 21:51:58

我现在是初级,一步步试探中用AT指令,很想问问使用GPRS模块
如果SIM卡并没有开通GPRS功能,放在模块里可以用来发短信么?
基本的短信发送指令可以使用么

wuxianglei 发表于 2009-5-5 01:08:53

mark

zqy517 发表于 2009-9-3 17:08:46

把美女也恢复了,多谢LZ!

hejiangzai 发表于 2009-10-6 20:47:10

mark

jspp 发表于 2010-11-24 12:57:53

mark

halcyo 发表于 2012-12-27 19:51:12

顶一个~~

libing1991 发表于 2013-7-13 16:10:58

感觉好像很复杂的样子{:lol:}

气球 发表于 2013-7-13 16:16:54

{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}

晚枫 发表于 2013-10-23 11:01:44

楼主,精神不错啊,支持。

smcnm 发表于 2013-11-1 10:45:48

你好,我的邮箱是gohome047@163.com能否发一下这个的资料和源代码给我?
页: [1]
查看完整版本: 【恢复】公开自己做的CDMA/GPRS无线modem的全部资料