TA的每日心情 | 衰 2024-10-6 20:55 |
---|
签到天数: 1 天 [LV.1]初来乍到
二级逆天
- 积分
- 1392
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
[paragraph]GPRS技术是在现有的GSM系统上发展出来的一种新的分组数据承载业务,其最大优势在于它的数据传输速度大大提高,目前已达到了115Kbps。其次GPRS是按GSM标准定义的封包交换协议,可快速接入数据网络。它在移动终端和网络之间实现了“永远在线”的连接,网络容量只有在实际进行传输时才被占用。基于这些优势,GPRS技术适合进行数据传输,同时由于其可靠性,可以进行远程控制的设计。本文以油田抽油机为实际应用背景,介绍基于GPRS技术的开关磁阻电机调速系统远程控制的架构和具体实现。
系统整体结构
本系统是通过上位机操作系统,利用无线网络远程控制应用于油田抽油机的开关磁阻电机,控制开关磁阻电机的启动、停止、复位以及转速设定等参数,并对电机的运行状态进行采集,如电流参数、温度参数、转速信息、故障信息等,并将其返回到上位机操作系统进行分析,判断电机工作情况和下一步的控制情况,实现远程控制的目的。
本系统整体工作结构原理图见图1。
图1 GPRS远程控制系统整体结构图
上位机操作系统
上位机操作系统是人机对话的平台。本文采用VB语言编写的可视化界面,编写了一个TCP/IP超级终端,实现了TCP/IP服务器端的功能,这是Socket的一个简单应用。由于每次GPRS拨号,系统端获的的IP地址都不一样,而PC端的IP地址应该是固定的,因此选择PC端作为服务器端。服务器端创建后开始侦听来自网络的数据,循环等待客户端的连接,如果有客户端连接,接收到的数据会保存在缓冲器中,然后服务器端会判断是否是系统发来的数据,如果正确则显示该客户端发来的数据,同时服务器端会重新启动一个线程等待新的客户连接。
系统硬件设计
如图2所示,远程控制系统内部结构可分为系统电源、复位电路、信号采集、控制给定以及其他控制部分。这里着重介绍信号采集、GPRS远程控制等部分。
图2 GPRS远程控制系统内部结构图
本设计需要采集开关磁阻电机的运行状态,包括电流信号、电压信号等,需要进行ADC变换。
GPRS远程控制系统
GPRS远程控制系统是系统的核心部分,传输控制信息以及采集运行状态,是负责上位机控制系统和底层电机的联系纽带。核心部分由ARM7处理器LPC2134和GPRS无线通信模块MC35i构成。LPC2134与GPRS通信模块MC35i的通信是通过串口通信来实现的,如图3所示,通信模块MC35i的16~23引脚数据输入/输出端标准串口的8个引脚分别为DSR0、RING0、RXD0、TXD0、CTS0、RTS0、DTR0和DCD0。它有固定的参数:8位数据位和1位停止位,无校验位,波特率在300bps~115000bps之间。为了和开关磁阻电机调速系统正常地进行通信,这里选择1200bps作为数据传输的波特率,硬件握手信号用RTS/CTS,模块串口支持标准的AT命令集。
图3 GPRS模块MC35i引脚结构图
模块的24“29管脚为SIM卡引脚,其中CCVPP引脚用于检测SIM卡插槽中SIM卡是否插入正常,CCCLK用于模块在该周期下定时检测SIM卡,因此,CCVPP脚会定时出现一个跳变;CCVCC引脚是MC35i模块为SIM卡提供的供电电源。
系统软件设计
本设计采用国际化标准组织所定义的开放系统互连模型,OSI/RM参考模型包括七个协议层来定义数据通讯的协议功能。图4所示为本设计互联参考模型结构图及所涉及的协议。
图4 系统互联参考模型结构图
图中包括上位机、INTERNET、GPRS网络、GPRS远程控制板、开关磁阻电机调速系统以及开关磁阻电机几大部分的信息通信,其中GPRS远程控制板和GPRS网络间的通讯通过PPP(点对点协议)实现,GPRS网络和INTERNET的通信通过GPRS网关节点实现,INTERNET和上位机的通信通过TCP/IP协议,并通过可视化界面实现。
PPP的设计与实现
本设计环节需要支持GPRS功能的GSM模块,使移动终端通过串口和GPRS模块相连,然后通过AT命令先设置好模块,定义PDP上下文和网络服务质量;发出进行申请GPRS服务的拨号命令, GPRS模块的PPP协议服务器端程序进行协商通信。收到拨号命令后,GPRS模块会进行网络的附着,网络分配无线链路资源,这时GPRS模块中的PPP协议服务器端进入NETWORK状态,得到网络分配的IP地址并通过IPCP协议分配给移动终端,这样,移动终端就在串口和GPRS之间用PPP协议建立了一条透明的传输通道,并取得了自己的IP地址,可以和数据中心通信了。PPT实现流程见图5。
图5 PPP实现流程框图
TCP/IP小型协议栈uIP的设计和实现
uIP是一个极其小型的TCP/IP协议栈,可以适用于低至8位或16位微处理器的嵌入式系统。它可以被看作是一个代码库为系统提供确定的函数。uIP提供三个函数到系统底层uip_init()、uip_input()和uip_periodic()。应用程序必须提供一个回应函数给uIP。当网络或定时事件发生时,调用回应函数。
VB语言编写的可视化界面
TCP/IP协议是Internet最重要的协议,本设计采用VB语言实现了TCP/IP服务器端的功能。Socket接口是TCP/IP网络的API,网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。VB提供了WinSock控件,用于在TCP/IP的基础上进行网络通信。当使用Socket进行网络通信时,其中一个必须创建Socket服务器侦听以进行通信,创建服务器,首先创建一个服务端口号,并开始侦听是否有客户请求连接。部分VB程序如下:
Private Sub Form_Load()
SockServer.LocalPort = 3000 ‘服务器端口号
SockServer.Listen ‘开始侦听
End Sub
Private Sub Form_Unload(Cancel As Integer)
SockServer.Close
End Sub
Private Sub SockServer_Close()
SockServer.Close
End Sub
Private Sub SockServer_ConnectionRequest(ByVal REQID As Long)
SockServer.Close
SockServer.Accept REQID ‘表示客户请求连接的ID号
End Sub
Private Sub SockServer_Data Arr (ByVal bytesTotal As Long)
‘当向服务器发送的数据到达后,产生DataArr事件,在事件中接收数据
Dim a As String
SockServer. GetData a
Text1.Text = a
End Sub
…… |
|