基于ARM7的路灯监控通信终端的设计
时间:05-12
来源:微计算机信息
点击:
0 引言
对于城市路灯管理部门来说,防盗、节能等一直是一件非常头疼的事情,需要投入大量的人力、物力和财力,因为路灯数量众多,地理位置分散,给工作人员带来极大的困难。 GPRS即通用分组无线业务[1],英文全称为General Packet Radio Service,这种无线业务是在现有GSM网络上开通的一种新型的分组数据传输业务。GPRS采用分组交换技术,它可以让多个用户共享某些固定的信道资源。GPRS特别适用于间断的、突发性的或频繁的、少量的数据传输,也适用于偶尔的大数据量传输,具有实时在线、按量计费、快捷登录、高速传输、自如切换等优点。因此,利用GPRS组建的无线通信系统是一种造价低,易于维护和推广,无制约,可靠性高,稳定性好,具有一定的先进性,标准性且易于扩充的系统。可以说,将GPRS应用于路灯监控系统的数据传输是目前最理想的选择。
本系统设计一种基于ARM7处理器以及利用GPRS技术的路灯监控通信系统的终端,实现远程无线的各路现场数据的传输。结合上位机软件,将各路数据实时传递到集中监控中心,以实现对路灯运行情况的统一监控和分布式管理。系统结构模型图如图1所示。
图1 GPRS路灯监控通信系统模型图
1 主要芯片简介
1.1 LPC2106芯片[2]
LPC2106处理器是菲利普公司的ARM7TDMI-S 处理器,该芯片带有一个支持实时仿真和跟踪的ARM7TDMI-SCPU,并嵌入了128KB的高速Flash存储器。具有ISP 和IAP 功能,128位的储存器接口和特别的允许在最高时钟周期执行32位代码的加速体系,在代码长度起关键作用的程序中,可选的16位的Thumb模式在最少的代价下能够减少了超过30%的代码,CPU 操作频率可达60MHz ;LPC2106体积很小,它有两个低功耗模式:空闲和掉电,使系统保证在低功耗使用,非常省电,在路灯监控系统中,它是非常理想的选择。它内部RAM达到64K大小,提供I2C 串行和SPI 串行接口等接口,使得LPC2106在GPRS系统中能够进行各种扩充;它的两个定时器,分别具有4 路捕获/比较通道,适合路灯控制多路数据处理,看门狗定时器确保了系统的安全,双电源技术保证了系统的可靠性。
1.2 P87LPC760芯片[3]
P87LPC760是14 脚封装的单片机,适合于许多要求高集成度低成本的场合,可以满足多方面的性能要求。它是菲利普公司小型封装系列中的一员,P87LPC760提供高速和低速的晶振和RC 振荡方式,可编程选择具有较宽的操作电压范围,可编程I/O口线输出模式选择,可选择施密特触发输入LED 驱动,输出有内部看门狗定时器,P87LPC760采用加速80C51处理器结构,指令执行速度是标准80C51 MCU的两倍特性。在路灯监控通信终端中作为从处理器。
2 硬件系统结构
2.1 GPRS通信终端硬件结构
GPRS路灯监控系统终端安装在路灯的各个数据采集点,通过RS232口和RS485口与GPRS透明数据传输终端连接,数据经过协议封装后发送到中国移动的GPRS数据网络,通过GPRS数据网络将数据传送至路灯监控中心,实现路灯终端和路灯监控中心系统的实时在线连接。GPRS通信终端硬件结构采用主从CPU的设计方法,这样提高系统的可靠性和运行速度,主处理器采用菲利普公司的ARM7TDMI-S 处理器LPC2106,主要负责协议的封装,与GPRS通信的实现;从处理器采用菲利普公司的P87LPC760,主要负责对ARM7芯片和GPRS模块的控制。GPRS监控通信终端的实现结构图如图2所示。
图2 GPRS监控通信终端结构图
2.2 监控通信硬件的实现
在路灯监控通信终端中,主处理器是基于AMR7核心的LPC2106处理器,它是整个系统的硬件核心,连接结构图如图3所示,主要功能是实现GPRS下的通信协议封装及数据传输,同时采用适用于GPRS的AT指令,使用TCP/IP协议将数据打成IP包,经GPRS接口接入无线GPRS网络,并应用Winsock控件来实现接收数据及数据交换。
2.3 监控通信控制的实现
从处理器使用P87LPC760,主要功能是对LPC2106处理器与GPRS模块的数据传输通信控制;
2.4 监控通信接口的实现
由于监控通信终端是3.3V的系统,而且核心处理器LPC2106的UART1带有完全的调制解调器接口,使用TTL电平,所以使用8 路的RS232 转换芯片SP3238进行RS232电平转换及串口通信,SP3238芯片是+3.0V和+5.5V的RS232转换器。具有低功耗、高数据速率、增强型ESD保护等特性。MAX3485是RS485电平转换,这些口线可保留给用户作为其它功能使用。
2.5 GPRS模块的实现
中兴ZTE815主要是用来实现GPRS模块,使用SIM卡进行实现。SIM卡的1和4脚接电源,2脚接地,3脚是复位,与ZTE815的41脚相连;5脚是时钟,与ZTE815的45脚相连;6脚是通信读写I/O引脚,与ZTE815的43脚相连。
图3 LPC2106连接结构图
3 GPRS通信软件的设计
软件的设计是本监控通信终端的核心,其中通信模块设计是整个终端软件设计主要部分,软件设计采用ARM公司的ADS集成开发环境,使用C语言进行编程,主要是对LPC2106处理器进行控制,实现协议的封装及与GPRS系统的通信,从初始化串行通讯模块设计到与带SIM 卡的GPRS终端的通信流程设计,需要兼顾软件的各个功能模块,包括参数设置、自动接收数据、请求数据以及信号判断等。
3.1 通信命令处理
通信数据处理主要是针对需要发送的数据和接收到的信息进行相关处理。通过在ARM7模块建立AT指令实现数据的收发,并实现对AT指令的分析和控制。本系统用到的AT指令是:建立TCP/socket连接命令"AT+ISTCP:";发送数据命令"AT+ISSND%:";查询数据命令"AT+ISRCV:";查询数据链路命令"AT+ISST:";模块退出传输模式命令"AT+IMCM";查询模块信号值命令"AT+CSQ";模块返回数据传输模式命令"ATO";DTU返回控制命令模式命令"AT+I";关闭SOCKET命令"AT+ISCLS: "。
3.2 系统主要函数介绍
通信控制是比较复杂的过程,本系统主要的函数有:(1)接收的字符串与目标pSrc字符串对比函数unsigned char Recive_GpCmp(const unsigned char *pSrc,unsigned char unNum),用于对接收指令的检测;(2)提取信号强度函数unsigned char Achieve_IMFSrong(void),信号强度为0~30;(3)对比连接返回值函数unsigned char Achieve_Socket(void);(4)建立SOCKET连接函数void Connect_Socket(unsigned char *pIp),该函数负责发送IP地址及端口号,等待时间是一分钟,在数据返回值中,I/000 表明连接成功,字柄号为000,I/ERROR 表明连接超时或不成功;(5)查询信号强度函数void Check_IMFSrong(void),等于1为查询信号强度状态,等于0为空闲状态,在查信号强度,最长时间3.2秒,时间间隔为6分钟,并在主循环调用该函数;(6)查询在线状态,秒间隔调用函数void Check_Gprs(void),设置在线查询时间间隔为3分钟,两次判断掉线就确认掉线了。
3.3 数据收发函数的实现
由于篇幅的限制,不能对各函数进行详细的描述,下面主要对数据收发函数进行实现。
3.3.1 接收数据函数的实现
void Recive_Data_Socket(void)
{
unsigned char buf[20],i;
Check_IMFSrong();
if(ucGPRSMode&&ucGprsLink)
{
for(i=0;i
buf[i]=pGPRSCMD[2][i];
buf[i++]=0x0d;
ucGPRSMode="1"; //接收数据
UART1_SendStr(buf,i);
}
}
3.3.2 发送数据函数的实现
Void Send_Data_Socket( )
{
unsigned char i,j,tmp,buf[20];
unsigned short usYn,usTmp,usLen;
if(Len==0)return ;
for (i =0;i
{
buf[i] = pGPRSCMD[1][i];
}
i--;
buf[i++] = ':';
for (j=0;j<3;j++)
buf[i++]=szGprsHandle[j]; //数据句柄号
buf[i++] = ',';
usTmp =10000;
usYn="0";
usLen="Len";
for(j=0;j<5;j++) //发送长度
{
tmp="usLen/usTmp";
usLen="usLen"%usTmp;
if(usYn)
{
buf[i++]=tmp+'0';
}
else
{
if(tmp)
{
usYn="1";
buf[i++]=tmp+'0';
}
}
usTmp/=10;
}
buf[i++] = ':';
UART1_SendStr(buf,i); //发送数据头
UART1_SendStr(Data,Len); //发送数据
}
4 结语
采用基于ARM7核心的GPRS网络远程数据通信方法,主从处理器的嵌入式设计,思路新颖,程序算法效率高,解决了远程监控终端通信问题。采用无线模式,数据传输的安全性得到了很大的提高,并且不需要布线,几乎不受区域限制。该系统成功投入了实际的路灯管理,经济地解决了城市路灯控制管理问题。如系统进行适当修改,可用于环境监测、水文监测、人防、城市交通控制等领域,具有很好的参考价值。
本文作者创新点:(1)该系统使用ARM芯片,双CPU的设计、具有数据处理速度高、稳定性和可靠性的特点;(2)系统采用的芯片性价比高,能方便的进行系统扩充,能与GPRS通信系统进行连接。(3)软件设计效率高,在城市路灯管理中取得良好的效果。并获得2006年梧州市科技进步三等奖。项目产生的经济效益高达80万元/年,数据由梧州路灯管理处提供,根据节约电费、人力、管理成本等核算。
参考文献:
[1] 马少平,骆志刚,孙雷等. 基于ARM 的 GPRS 远程终端设计与实现[J],微计算机信息,2006,5-2:118-120.
[2] 中国IC资料网[EB/OL],http://www.icpdf.com/pdf/LPC2106.htm ,2006-8-19.
[3] 北京威旺达电子科技有限责任公司[EB/OL],/upload/eWebUpload/200805/2008052821285442.pdf, 2006-1-20.
对于城市路灯管理部门来说,防盗、节能等一直是一件非常头疼的事情,需要投入大量的人力、物力和财力,因为路灯数量众多,地理位置分散,给工作人员带来极大的困难。 GPRS即通用分组无线业务[1],英文全称为General Packet Radio Service,这种无线业务是在现有GSM网络上开通的一种新型的分组数据传输业务。GPRS采用分组交换技术,它可以让多个用户共享某些固定的信道资源。GPRS特别适用于间断的、突发性的或频繁的、少量的数据传输,也适用于偶尔的大数据量传输,具有实时在线、按量计费、快捷登录、高速传输、自如切换等优点。因此,利用GPRS组建的无线通信系统是一种造价低,易于维护和推广,无制约,可靠性高,稳定性好,具有一定的先进性,标准性且易于扩充的系统。可以说,将GPRS应用于路灯监控系统的数据传输是目前最理想的选择。
本系统设计一种基于ARM7处理器以及利用GPRS技术的路灯监控通信系统的终端,实现远程无线的各路现场数据的传输。结合上位机软件,将各路数据实时传递到集中监控中心,以实现对路灯运行情况的统一监控和分布式管理。系统结构模型图如图1所示。
图1 GPRS路灯监控通信系统模型图
1 主要芯片简介
1.1 LPC2106芯片[2]
LPC2106处理器是菲利普公司的ARM7TDMI-S 处理器,该芯片带有一个支持实时仿真和跟踪的ARM7TDMI-SCPU,并嵌入了128KB的高速Flash存储器。具有ISP 和IAP 功能,128位的储存器接口和特别的允许在最高时钟周期执行32位代码的加速体系,在代码长度起关键作用的程序中,可选的16位的Thumb模式在最少的代价下能够减少了超过30%的代码,CPU 操作频率可达60MHz ;LPC2106体积很小,它有两个低功耗模式:空闲和掉电,使系统保证在低功耗使用,非常省电,在路灯监控系统中,它是非常理想的选择。它内部RAM达到64K大小,提供I2C 串行和SPI 串行接口等接口,使得LPC2106在GPRS系统中能够进行各种扩充;它的两个定时器,分别具有4 路捕获/比较通道,适合路灯控制多路数据处理,看门狗定时器确保了系统的安全,双电源技术保证了系统的可靠性。
1.2 P87LPC760芯片[3]
P87LPC760是14 脚封装的单片机,适合于许多要求高集成度低成本的场合,可以满足多方面的性能要求。它是菲利普公司小型封装系列中的一员,P87LPC760提供高速和低速的晶振和RC 振荡方式,可编程选择具有较宽的操作电压范围,可编程I/O口线输出模式选择,可选择施密特触发输入LED 驱动,输出有内部看门狗定时器,P87LPC760采用加速80C51处理器结构,指令执行速度是标准80C51 MCU的两倍特性。在路灯监控通信终端中作为从处理器。
2 硬件系统结构
2.1 GPRS通信终端硬件结构
GPRS路灯监控系统终端安装在路灯的各个数据采集点,通过RS232口和RS485口与GPRS透明数据传输终端连接,数据经过协议封装后发送到中国移动的GPRS数据网络,通过GPRS数据网络将数据传送至路灯监控中心,实现路灯终端和路灯监控中心系统的实时在线连接。GPRS通信终端硬件结构采用主从CPU的设计方法,这样提高系统的可靠性和运行速度,主处理器采用菲利普公司的ARM7TDMI-S 处理器LPC2106,主要负责协议的封装,与GPRS通信的实现;从处理器采用菲利普公司的P87LPC760,主要负责对ARM7芯片和GPRS模块的控制。GPRS监控通信终端的实现结构图如图2所示。
图2 GPRS监控通信终端结构图
2.2 监控通信硬件的实现
在路灯监控通信终端中,主处理器是基于AMR7核心的LPC2106处理器,它是整个系统的硬件核心,连接结构图如图3所示,主要功能是实现GPRS下的通信协议封装及数据传输,同时采用适用于GPRS的AT指令,使用TCP/IP协议将数据打成IP包,经GPRS接口接入无线GPRS网络,并应用Winsock控件来实现接收数据及数据交换。
2.3 监控通信控制的实现
从处理器使用P87LPC760,主要功能是对LPC2106处理器与GPRS模块的数据传输通信控制;
2.4 监控通信接口的实现
由于监控通信终端是3.3V的系统,而且核心处理器LPC2106的UART1带有完全的调制解调器接口,使用TTL电平,所以使用8 路的RS232 转换芯片SP3238进行RS232电平转换及串口通信,SP3238芯片是+3.0V和+5.5V的RS232转换器。具有低功耗、高数据速率、增强型ESD保护等特性。MAX3485是RS485电平转换,这些口线可保留给用户作为其它功能使用。
2.5 GPRS模块的实现
中兴ZTE815主要是用来实现GPRS模块,使用SIM卡进行实现。SIM卡的1和4脚接电源,2脚接地,3脚是复位,与ZTE815的41脚相连;5脚是时钟,与ZTE815的45脚相连;6脚是通信读写I/O引脚,与ZTE815的43脚相连。
图3 LPC2106连接结构图
3 GPRS通信软件的设计
软件的设计是本监控通信终端的核心,其中通信模块设计是整个终端软件设计主要部分,软件设计采用ARM公司的ADS集成开发环境,使用C语言进行编程,主要是对LPC2106处理器进行控制,实现协议的封装及与GPRS系统的通信,从初始化串行通讯模块设计到与带SIM 卡的GPRS终端的通信流程设计,需要兼顾软件的各个功能模块,包括参数设置、自动接收数据、请求数据以及信号判断等。
3.1 通信命令处理
通信数据处理主要是针对需要发送的数据和接收到的信息进行相关处理。通过在ARM7模块建立AT指令实现数据的收发,并实现对AT指令的分析和控制。本系统用到的AT指令是:建立TCP/socket连接命令"AT+ISTCP:";发送数据命令"AT+ISSND%:";查询数据命令"AT+ISRCV:";查询数据链路命令"AT+ISST:";模块退出传输模式命令"AT+IMCM";查询模块信号值命令"AT+CSQ";模块返回数据传输模式命令"ATO";DTU返回控制命令模式命令"AT+I";关闭SOCKET命令"AT+ISCLS: "。
3.2 系统主要函数介绍
通信控制是比较复杂的过程,本系统主要的函数有:(1)接收的字符串与目标pSrc字符串对比函数unsigned char Recive_GpCmp(const unsigned char *pSrc,unsigned char unNum),用于对接收指令的检测;(2)提取信号强度函数unsigned char Achieve_IMFSrong(void),信号强度为0~30;(3)对比连接返回值函数unsigned char Achieve_Socket(void);(4)建立SOCKET连接函数void Connect_Socket(unsigned char *pIp),该函数负责发送IP地址及端口号,等待时间是一分钟,在数据返回值中,I/000 表明连接成功,字柄号为000,I/ERROR 表明连接超时或不成功;(5)查询信号强度函数void Check_IMFSrong(void),等于1为查询信号强度状态,等于0为空闲状态,在查信号强度,最长时间3.2秒,时间间隔为6分钟,并在主循环调用该函数;(6)查询在线状态,秒间隔调用函数void Check_Gprs(void),设置在线查询时间间隔为3分钟,两次判断掉线就确认掉线了。
3.3 数据收发函数的实现
由于篇幅的限制,不能对各函数进行详细的描述,下面主要对数据收发函数进行实现。
3.3.1 接收数据函数的实现
void Recive_Data_Socket(void)
{
unsigned char buf[20],i;
Check_IMFSrong();
if(ucGPRSMode&&ucGprsLink)
{
for(i=0;i
buf[i]=pGPRSCMD[2][i];
buf[i++]=0x0d;
ucGPRSMode="1"; //接收数据
UART1_SendStr(buf,i);
}
}
3.3.2 发送数据函数的实现
Void Send_Data_Socket( )
{
unsigned char i,j,tmp,buf[20];
unsigned short usYn,usTmp,usLen;
if(Len==0)return ;
for (i =0;i
{
buf[i] = pGPRSCMD[1][i];
}
i--;
buf[i++] = ':';
for (j=0;j<3;j++)
buf[i++]=szGprsHandle[j]; //数据句柄号
buf[i++] = ',';
usTmp =10000;
usYn="0";
usLen="Len";
for(j=0;j<5;j++) //发送长度
{
tmp="usLen/usTmp";
usLen="usLen"%usTmp;
if(usYn)
{
buf[i++]=tmp+'0';
}
else
{
if(tmp)
{
usYn="1";
buf[i++]=tmp+'0';
}
}
usTmp/=10;
}
buf[i++] = ':';
UART1_SendStr(buf,i); //发送数据头
UART1_SendStr(Data,Len); //发送数据
}
4 结语
采用基于ARM7核心的GPRS网络远程数据通信方法,主从处理器的嵌入式设计,思路新颖,程序算法效率高,解决了远程监控终端通信问题。采用无线模式,数据传输的安全性得到了很大的提高,并且不需要布线,几乎不受区域限制。该系统成功投入了实际的路灯管理,经济地解决了城市路灯控制管理问题。如系统进行适当修改,可用于环境监测、水文监测、人防、城市交通控制等领域,具有很好的参考价值。
本文作者创新点:(1)该系统使用ARM芯片,双CPU的设计、具有数据处理速度高、稳定性和可靠性的特点;(2)系统采用的芯片性价比高,能方便的进行系统扩充,能与GPRS通信系统进行连接。(3)软件设计效率高,在城市路灯管理中取得良好的效果。并获得2006年梧州市科技进步三等奖。项目产生的经济效益高达80万元/年,数据由梧州路灯管理处提供,根据节约电费、人力、管理成本等核算。
参考文献:
[1] 马少平,骆志刚,孙雷等. 基于ARM 的 GPRS 远程终端设计与实现[J],微计算机信息,2006,5-2:118-120.
[2] 中国IC资料网[EB/OL],http://www.icpdf.com/pdf/LPC2106.htm ,2006-8-19.
[3] 北京威旺达电子科技有限责任公司[EB/OL],/upload/eWebUpload/200805/2008052821285442.pdf, 2006-1-20.
- 基于ARM7内核的IP电话设计(01-06)
- WiFi控制的无线音乐播放系统设计(05-18)
- 基于GPRS与ZigBee的智能家居设计(01-10)
- GPRS数据传输模块的设计与实现(07-25)
- 基于无线网络的远程电力抄表系统的设计(11-27)
- 基于GPRS的嵌入式智能家居终端的设计与实现(11-20)