微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 传感器 > 大型货车超载超速实时检测系统

大型货车超载超速实时检测系统

时间:03-18 来源:3721RD 点击:

duration = (double)(finish - start) / CLOCKS_PER_SEC;

printf( "%f seconds\n", duration );

}

//获取当前时间

int momentNow(void)

{

time_t t;

t=time(0);

local=localtime(&t);

printf(" %d-%d-%d\n%d:%d:%d\n",local->tm_year+1900,local->tm_mon,local->tm_mday,local->tm_hour,local->tm_min,local->tm_sec);

return 0;

}

4.2 获取速度模块设计

4.2.1 硬件设计

本方法采用测量一个转盘的转速间接地测出货车的速度,因此转盘要与货车的转轴相连,转盘的转速与车轴的转速成一定的关系。将转盘等分为四等份,在每等份的分界线上安装一块磁钢,如图4.2所示。

图4.5 测速硬件原理

霍尔开关的VCC端接5~12V直流电源,OUT端接到SPCE061A的IOB3(外部中断2输入口)[27],另一端接公共地。每次磁钢经过霍尔开关下方时,OUT端都会产生一个脉宽的负脉冲。

4.2.2软件设计

软件采用C语言程序,定时采用低频定时器,用2Hz时基定时,定时周期为1s(定时时长0.5s),同时要用外部中断2对OUT脉计数。使用一个标志(signal)显示计时长度(第几个0.5s)。当signal为1时,启动外部中断计数;当signal为3时,关闭外部中断,同时关闭定时中断,完成一次计数[30]

(1)函数流程图分析

测速度模块主要由三个子函数组成:测速主函,定时中断子函数,外部中断子函数。

数测速函数是测速模块的主体,是主函数直接调用的子函数,流程图如图4.3所示。

图4.6 测速函数流程图

定时子程序是用于给定准确的时间,以便能够计算出精准的速度,定时使用2Hz低频时基计时。定时中断子函数流程图如图4.4所示。

图4.7 定时中断子函数流程图

为了能够及时的计下AH44E产生的每个负脉冲,必须采用外部中断计数。外部中断子函数流程图如图4.5所示。

图4.8 外部中断子函数流程图

(2)部分程序代码

unsigned int signal=0; //计时标志

unsigned int count=0; //计外部脉冲数

double speed(void)

{

unsigned int uiDelay=0xffff;

__asm("INT OFF"); //关闭中断

*P_INT_Ctrl=C_IRQ3_EXT2 | C_IRQ5_2Hz;

//设置中断 IRQ3_EXT1、IRQ5_2Hz

__asm("INT IRQ"); //开中断

while(uiDelay--)

*P_Watchdog_Clear = C_WDTCLR; //延时等待

uiDelay=0xffff;

while(uiDelay--)

*P_Watchdog_Clear = C_WDTCLR; //延时等待

return (double)count/(signal-1)*2; //计算速度

}

//中断服务子程序代码如下:

void IRQ5(void)

{

if(*P_INT_Ctrl&0x0004)

{

signal++;

if(signal==1)

{

count=0; //signal=1时计数开始

*P_IOB_Dir=0x00; //设IOB3为上拉电阻输入

*P_IOB_Attrib=0x00;

*P_IOB_Data=0x08;

}

else if(signal==3)

//signal=3时计数结束

(*P_INT_Ctrl)&=~(C_IRQ3_EXT2 | C_IRQ5_2Hz);

//关IRQ3_EXT1、IRQ5_2Hz中断

*P_INT_Clear=C_IRQ5_2Hz; //清中断标志位

}

else

{

*P_INT_Clear=0x0008; //清中断标志位

}

}

void IRQ3(void)

{

if(*P_INT_Ctrl&C_IRQ3_EXT1) //外部中断1

{

*P_INT_Clear=C_IRQ3_EXT1; //清中断标志位

}

else if(*P_INT_Ctrl&C_IRQ3_EXT2) //外部中断2

{

count++; //计数加1

*P_INT_Clear=C_IRQ3_EXT2; //清中断标志位

}

}

图4.9 GPRS程序流程图

4.3 GPRS模块

ARM将收集到的重量和速度信号经过处理之后,如果货车超载或者超速就将相关的货车信息(车牌号,超速超重多少等)传送到GPRS模块,通过GPRS传送到主服务器上,主程序程序流程图如图4.9:

/************************************************

* GPRS demo, use ppp to connect internet

* use ttyS1 to ctrol GPRS

* by Zou jian guo <ah_zou@163.com>

* 2004-11-02

*************************************************/

#include <termios.h>

#include <stdio.h>

#include <unistd.h>

#include <fcntl.h>

#include <time.h> #i

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top