道路交通流量监测系统技术手册
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
道路交通信息监测系统
技术手册
2010年6月
第一部分数据采集器硬件设计
1.硬件结构
2.资源分配
GPIO管脚功能和作用GPIO管脚功能和作用P0.7 GPIO,接LED P1.7 接SHT11的SDA信号P0.6 未用,接PCF8563的CLKOUT P1.6 接SHT11的SCL信号P0.5 IRQ1,接WT3224模块中断P1.5 IRQ2,传感器A的中断信号P0.4 IRQ0,两个传感器同时有效中断P1.4 IRQ3,传感器B的中断信号P0.3 未用,JTAG的TRST信号P1.3 I2C接口的SDA信号P0.2 接外部RAM的BHE P1.2 I2C接口的SCL信号
P0.1 接外部RAM的BLE P1.1 串口TXD信号
P0.0 未用,专门用于下载P1.0 串口RXD信号
P2.7 未用
P2.6 未用P4.0-P4.7 外部RAM的D8-D15 P2.5 配置选通信号,低有效P3.0-P3.7 外部RAM的D0—D7 P2.4 外部RAM的CS信号
P2.3 外部RAM的AE信号
P2.2 外部RAM的RD信号
P2.1 外部RAM的WR信号
P2.0 未用
B.数据采集部分
1) 模拟信号数据采集
ADC0----传感器A的输入信号
ADC1----传感器B的输入信号
ADC2----电池电压
ADC16----ADuC芯片内部工作温度
2) 数字信号采集
SHT11----温湿度采集,由P1.7/P1.6接口
PCF8563----实际时间采集,标准I2C接口
配置信息----由D7—D0数据线连接,由P2.5片选(用GPIO方式采集)
C.DAC参考电压输出部分
DAC3 ---- 传感器A的低阀值
DAC2 ---- 传感器A的高阀值
DAC1 ---- 传感器B的低阀值
DAC0 ---- 传感器B的高阀值
DAC输出需要增加一个跟随器以提高阻抗能力
D.I2C接口部分
用于连接实时时钟芯片PCF8563
E.外部扩展存储器RAM部分
外部RAM选用ISSI的IS61WV12816,共有64X16K空间
F.无线通讯模块部分
选用WT3224。
G.电源部分
选用7.4V锂电池,为了保证电源的稳定性,使用BL1085进行稳压到5V给传感器
供电,同时转换到3.3V给主控芯片供电。
H.其它(指示灯和配置)
指示灯共有三个,其中有3.3V电源指示灯、工作状态指示灯、RF模块工作指示灯,
3.3V电源灯可以根据需要使用(实际使用时不需要);工作状态指示灯的表现为工
作时亮休眠时灭;RF模块指示灯为模块工作时亮,RF模块不工作时灭。
3.数据采集部分原理
采用GMR传感器实时采集地磁信号,经放大后送A/D采样,同时送阀值比较电路。当突然来车时,GMR发生变化,阀值比较电路产生信号引起CPU中断,从而获得需要的车流量和相关的车速和车长估计;最后通过RF模块将数据发送出去。
为了避免干扰信号造成GMR信号变化,使用CPU的DAC功能输出跟踪地磁信号的变化;为了省电,主CPU采用休眠模式工作,RF模块只有在发送的时候才打开工作。
另外使用了外部RAM进行数据保存,使用了日历芯片控制程序流程。可以手工配置工作模式、阀值大小和RF模块地址。
第二部分数据采集器软件设计
1.软件结构
软件系统使用u-Vision 3.0编写,程序结构如下:
TMS-A project ----- main.c 主程序(包括初始化、流程控制程序)
------ IRQ.c 中断服务程序(包括车流量检测程序)
-------sub.c 子程序(包括各类数据采集、保存、发送子程序)
-------myADuC7026.h 头文件
2.主程序框图
数据采集器的设计思路是尽量快速而有效地采集车流量和计算车速和车长,同时为了节约能源,在软件设计时,所有的车辆信息测量(包括车流量、车速、车长)都有GMR传感器的中断服务程序完成(GMR-A管理进入,GMR-B负责退出)。也就是说平常时刻,系统都处于休眠状态,来车后才唤醒工作。为了保证地磁跟踪,采集周期为2秒。
整个软件有工作模式配置,分为三个模式:Mode=1为定时发送,一小时为一个循环,包括存取、发送和计数;Mode=2为实时发送模式,即来一辆车发送一次,但计数按天计算;Mode=3为测试方式,每分种发送一次最新的测试数据(即使没有车辆信息),同时也实时发送实际测量信息,需要注意的是发送的测试数据地址是0X20,结果数据发送地址为0x10,Mode3下的计数不清零。
计数值就是车流量。
3.各种函数定义
主程序main.c ---- main();
中断服务程序IRQ.c ----- IRQ_hander()__irq 唤醒中断
------ FIQ_hander()__fiq 车流量/车速/车长测试程序子程序sub.c ----- ADC() 模拟信号采集子程序
-----DACout() 模拟信号输出子程序(阀值跟踪)
----Get_T_H() 温度湿度采集子程序(包括各类相关子程序)
----Get_Real_time() 实际时间采集子程序(包括各类相关子程序)
----UART_Send_Buffer() 数据发送子程序(包括各类发送相关子程序)
----常用延时子程序
----Save_Current_Data() 保存当前测试结果子程序(Mode 1使用)
----Send_Save_Data() 发送保存数据子程序(Mode 1 使用)
----Send_Current_Data() 发送当前测试结果子程序(Mode 2 使用)
----Send_Test_Data() 发送当前测试数据子程序(Mode 3使用)
4.各种全程变量定义
流程控制类:
unsigned short Mode1_Counter,Mode2_Counter,Mode3_Counter ----车流量计数器
unsigned char Local_Addreee ----RF模块本地地址
unsigned char Config_Data -------配置数据
unsigned char Work_Mode--------配置信息(工作模式)
其中:Config_Data = Work_Mode (D7/D6)+ Vref_Bias(D5/D4) + Local_Address(D3—D0)
参数类:
unsigned char Start_time[6],Real_time[6]--------初始化时间,实际时间
unsigned short SensorA_Data,SensorB_Data----两个GMR传感器信号
unsigned short Temperature,Humidity ------------地表温度和湿度
unsigned short Operation_Temperature,Battery_V oltage----工作温度和电池电压
unsigned short Car_Speed,Car_Length ------------车速和车长
unsigned short Verf_Bias ----------------------------阀值
其它:
Unsigned char UART_Buffer_length,UART_Buffer_Data[90] -----串口发送长度和数据
自定义:
UART_Test_Address 0x20 ----RF模块发送测试数据地址为0x20
UART_Object_Address 0x10 ----RF模块发送结果数据地址为0x10
5.发送信息格式
标准WSN设计,发送信息就一条,总共27个字节,格式如下: