首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于ARM7的路灯监控通信终端的设计2

基于ARM7的路灯监控通信终端的设计2

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=pGPRSCMD[2];
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 = pGPRSCMD[1];
}
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万元/年,数据由梧州路灯管理处提供,根据节约电费、人力、管理成本等核算。
返回列表