图像传输系统的软件设计

 图像传输系统的软件设计
3.1 设计目的
   
软件设计目的:通过向GPRS模块发送AT指令,控制移动终端的通信过程,使移动台能借助GPRS提供的网关和路由接入Intemet,并通过TCP/IP网络协议完成与Internet上监控中心传输图像数据的任务。

    基于以上要求,设计了通信软件,即GPRS客户端软件和服务器端软件。

3.2 GPRS无线模块通信指令

    WISMO 2D模块的软件部分对外提供了控制系统操作的AT指令集,通过接收来自UART的AT指令,解释并执行相应操作,实现无线Modem相应功能。

    由于编写的程序过长,只列出进行TCP传输用到的主要AT指令:
    AT+CGREG=1;//设置GPRS注册状态
    AT+CGATT=l;//GPRS网络附着
    AT#APNSERV=“CMNET”;//设置GPRS接入点
    AT#APNUN=″″;//身份验证用户名设为空
    AT#APNPW=″″;//身份验证密码设为空
    AT# ConnectionStart;//连接CPRS网登录Internet,成功返回动态分配的IP地址
    AT#TCPSERV=″202.112.135.203″://设置服务器IP地址,即监控中心的IP地址
    AT#TCPPORT=″6000″://设置服务器与客户端通信的Socket端口:
    AT#otcp;//打开与远程服务器的TCP连接

    TCP连接成功后,GPRS模块进入数据传送状态,这时就可通过串口向GPRS模块发送图像数据,模块通过Socket发送到监控中心,监控中心也能向模块发送回应数据。数据传完后控制机向GPRS模块发送终止字符<ETX>,移动终端又回到AT指令接收状态。

3.3 GPRS客户端软件

    运行于控制机上的客户端软件具有以下功能:
    (1)串口通信,包括AT指令通信和数据文件通信。
    (2)显示传输过程计时,用于测试系统的传输速率。
    (3)中止GPRS模块TCP协议栈通信。系统传输出错时中止协议栈工作。

    Q2406B内嵌TCP协议栈的缓存区有限,若串口写入速率远高于GPRS传输速率,协议栈将会丢失数据。为保证数据传输的可靠性,必须进行流控制。设计中采用了两种流控制方法:数据分包法和硬件握手法。

    采用数据分包法的GPRS客户端传输图像文件流程图如图4所示。该方法将图像文件先打成若干个小数据包,逐个写入串口,由GPRS模块发送。监控中心的服务器端接收完一个数据包后返回应答帧,GPRS模块再发下一个数据包。若超时还未返回应答帧,则重发上一个数据包。此法牺牲了一定时间,但很好地保证了图像传输的可靠性。

    硬件握手法采用9线串口中的硬件握手信号:RTS/CTS做流控制。系统工作时。控制机使用RTS启动GPRS模块的数据流,GPRS模块用CTS启动和暂停来自控制机的数据流。当缓存区内数据量达到高位时,模块将CTS线置低电平,控制机程序检测到CTS为低后,就停止发送数据,直到协议栈缓存区的数据量低于低位而将CTS置高电平。

    此法也可保证写入数据不丢失,而且传输图像文件的耗时低于前种方法。但它不能用于简化的三线串口协议,也不能如前种方法那样检测到GPRS数据传输过程中的丢包现象,通过重发来保证传输过程的可靠性。

3.4 GPRS服务器端软件

    GPRS图像传输系统采用多个移动终端都与监控中心服务器连接的方法。服务器采用普通Internet上的主机方式,作为TCP服务器端,具有静态公网IP,开放了侦听端口,可从外部访问,其上运行TCP端口监听程序,接收来自移动台的TCP数据包,并向移动台发送回应数据。采用数据分包法的GPRS服务器端接收图像文件流程如图5所示。该服务器端软件具有以下功能:(1)监听TCP端口;(2)接收数据包,发送接收应答帧;(3)显示接收数据和大小,保存图像文件。

    本系统的发送端设计了两种流控制方法,一种从硬件上实现,另一种从软件上实现。前者在网络状况稳定的情况下,传输速度较快。后者可有效保证整个GPRS传输过程的稳定可靠,并能直接用于简化的三线串口协议,当控制机采用嵌入式微处理器时,能方便地与微处理器串口相连,无需串口转换芯片。

    使用中国移动提供的普通GPRS业务进行测试,本系统的传输速率可达10kbps,大量测试中未出现丢失数据的情况,整套系统工作稳定可靠。同时也可胜任传输任何形式的文件数据,应用于需要远程传送数据的系统中。

3 建立SOCKET连接的命令

  下面对SOCKET通信中要用到的一些AT命令[2]进行说明。

  3.1 基本设置

  ① GPRS ISP 码。
  AT+IISP1=*99***1# //全国通用

  ② 登录用户名。
  AT+IUSRN=WAP//GPRS网络登录名

  ③ 登录密码。
  AT+IPWD=WAP// GPRS网络登录密码

  ④ MODEM 类型。
  AT+IMTYP=2 //定义GPRS MODEM

  ⑤ 初始化命令。
  AT+IMIS=“AT+CGDCONT=1,ip,CMNET”

  ⑥ 域名服务器。
  AT+IDNS1=211.136.18.171
  //DNS服务器地址,全国通用

  ⑦ 扩展码(XRC)。
  AT+IXRC=0

  3.2 SOCKET设置

  ① 建立一个TCP通信。
  AT+ISTCP:218.66.16.173,1024<CR>
  建立SOCKET连接,218.66.16.173为应用服务中心计算机端IP地址(实际地址由实际情况决定),1024 为端口号(端口号由中心SOCKET端口监听程序设置决定)。 如果连接成功,LT8030返回I/xxx。xxx为LT8030中本次SOCKET连接的句柄号。中心监听程序会显示连接的终端IP地址。如果连接失败,LT8030返回I/ERROR(xxx)。xxx为错误代码。

  ② 发送数据。
  AT+ISSND%:xxx,<string Length>:<string>
  发送数据,xxx为句柄,<string Length>为要发送的字符长度,<string>为要发送的数据。发送成功后,在中心端可看到终端发送的数据。最多一次能够发送5K以下的数据。

  ③ 查询SOCKET状态。
  AT+ISST:xxx<CR>
  查询SOCKET状态,xxx为句柄。 LT8030返回I/<SOCKETstat>。如果<SOCKETstat>= 000,表示该端口连接正常;如果<SOCKETstat>≥1,LT8030通过该端口从中心接收存在Buffer 里的字节数;如果<SOCKETstat><0,则SOCKET错误。

  ④ 接收数据。
  AT+ISRCV:xxx<CR>
  xxx为句柄。该指令会读取LT8030通过该句柄从中心接收到的,存在Buffer 里的数据;Buffer最大可存储30K的数据。

  ⑤ 关闭SOCKET通道。
  AT+ISCLS:xxx
  关闭SOCKET通道,xxx为句柄。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值