杨立志
摘要:随着互联网+应用领域的不断深化和扩展,很多工控设备、工业检测手持设备都需要能够通过网络在线传输图像,由于受无线网络覆盖范围的限制,使用wifi作为无线通信手段无法达到实时就地传输的目的,用户普遍选择使用GPRS来完成。该文结合一种工业检测手持设备的研发过程,对采用GPRS向远程服务器传输图像的方法进行分析。
关键词:工业检测手持设备;GPRS图像传输;远程服务器
中图分类号:TP317.4 文献标识码:A 文章编号:1009-3044(2017)30-0188-02
Research on Image Transmission Method Based on GPRS
YANG Li-zhi
(Computer Science Department Jiangyin Polytechnic College, Jiangyin 214433, China)
Abstract: With the Internet plus application domain increasing deepening and the expansion of industrial equipment, industrial inspection, many handheld devices are need to be able to online through the network transmission of images, due to the wireless network coverage limit, the use of WiFi as a wireless communication means can not achieve real-time objective local transmission, users generally choose to use GPRS to complete. In this paper, a method of using GPRS to transmit images to remote server is analyzed in combination with the development process of handheld devices for industrial inspection.
Key words: Industrial inspection handheld devices; GPRS image transmission; remote servers
1 背景
部分工业检测用的手持设备,需要作业人员拍摄现场照片传输到服务器,供管理人员或其他专业人员进行分析,而现场作业人员有时也需要从服务器下载与现场作业相关的图像进行问题分析或决策,采
用wifi作为无线通信手段具有成本低、流量大等优点,但很多情况下作业现场无法确保能够提供wifi热点,这给实时解决现场问题带来了一定的麻烦。与之相比,GPRS实时性相对较高[1-2],虽然成本较高,流量受到多种条件的限制,但很多用户仍然倾向于选择GPRS作为无线通信手段。由于工业检测手持设备一般情况下传输的数据量不是很多,综合考虑生产成本等因素,本文方法以2GGPRS模块为应用平台。重点探讨基于stm32硬件平台开发的工业检测手持设备中图像文件传输部分。
2 GPRS服务器访问流程[3-4]
为了简化设计流程,本文方法采用http协议与远程服务器完成信息交互,控制器采用stm32f407系列MCU完成GPRS模塊的控制及网络数据的收发处理。其主要流程如图1所示。
图1给出了启动GPRS并从服务器获取数据[5]的基本设置步骤,其中GPRS入网初始化模块中主要完成以下设置:
1) 为了后续处理方便,一般首先关闭GPRS的回显功能。
2) 查询sim卡是否正常;
3) 查询信号强度;
4) 设置接入类型为GPRS,接入点为CMNET;
5) 打开承载。
以上步骤中,步骤5比较重要,这一步的成功与否直接决定后续的http访问能否成功,一般情况下步骤5设置成功会返回OK,然而,如果已经设置成功,再一次设置将与设置失败一样会返回ERROR,在实际应用中要区别对待。入网设置成功后,需要对GPRS进行http通信方式初始化,初始化成功后即可通过http协议与服务器通信。
3 图像数据传输
手持设备向服务器申请图像数据主要方式是将请求命令码附加到请求参数中向服务器提交,一般有Get和Post两种方式,本文采用Get方式,主要请求格式如下:
"AT+HTTPPARA=\"URL\",\http://www.52oa.cn/images/+imgName
"AT+HTTPACTION=0"
服务器将返回图像数据给GPRS,由GPRS暂存到本地供控制器读取。
受内存限制,控制器往往无法一次接收一副完整的图像数据,只能分批读取,下图2是以接收图像为例给出的接收处理流程。其中提交请求通过AT+HTTPACTION=0实现Get请求,成功后GPRS返回”0,200,number”字符串,根据GPRSHTTP协议,字符串中200标识通信成功。
图2 图像接收流程图
图2给出了图像下载过程中,访问GPRS缓存及fatfs文件系统下数据流操作的步骤,访问GPRS缓存通过AT+HTTPREAD=n,m指令完成,其中n为GPRS缓存偏移,m为需要读取的字节数。如果是多任务系统[6-7],在图像下载过程中GPRS模块是一直被占用的,其他任务此时不能访问GPRS,否则将会使模块出现错误,为了能够使多个任务相互配合,共同使用GPRS访问网络,而不至相互干扰,需要引入互斥机制。而如果使用互斥机制不当,在通过GPRS频繁访问网络的过程中又会偶尔出现网络繁忙错误(错误码601),致使系统进入忙等,为了有效解决这一问题,本文采用以下方式进行处理:
3.1 提交请求阶段
如果请求图像
如果请求到的图像数据量超出系统准备的接收图像的缓存量
系统加锁,进入步骤2
否则
请求到的图像数据量大于0吗
是
系统加锁
直接进入读取阶段
系统解锁
否则
网络出现错误
对 GPRS进行初始化
3.2 读取图像数据阶段
剩余数据量大于系统缓存吗
是
调整偏移量,继续读取
否
系统解锁
通过以上流程,可以消除其他任务竞争GPRS导致的系统死锁,当然在实施过程中其他任务仍然要采取互斥机制,以防申请图像任务竞争GRPS而导致死锁。
4 实验与总结
本文在stm32f407硬件平台的基础上,结合UCOSII操作系统,完成了工业检测手持设备的开发,采用多个任务分别完成图像数据的上传下载,现场数据的统计和上传。系统主界面采用ucgui-3.90开发,LCD采用4.3寸电容屏。实践表明,本系统能够较好的协助工程人员完成作业现场的工程技术分析、检测数据上传任务。
参考文献:
[1] 马士玲, 刘志丹. 物联网技术在智能校園中的应用[J]. 物联网技术, 2012(6):102-104
[2] 吕海东, 葛日波. 云平台分布式智能感知物联网应用开发[J]. 计算机测量与控制, 2016(7).
[3] 马洪伟, 盛翊智. GPRS技术在无线传输数据中的应用[J]. 计算机技术与发展, 2005(3):101-103.
[4] 李琴, 陈蒙爱, 杨滢. 虚拟仪器中利用GPRS技术进行无线数据传输[J]. 仪表技术, 2007(5):37-38
[5] 王玉峰, 王常虹, 滕飞, 等. 基于Internet的远程控制实验系统[J]. 测控技术, 2004, 23(2):44-45
[6] 钟汉如, 郭建飞. 基于uC/OS无刷直流电机控制的研究[J]. 微计算机信息, 2007(5):122-124.
[7] 王晓明. 电动机的单片机控制[M]. 北京: 北京航空航天大学出版社, 2002.endprint