1、 道路交通信息监测系统道路交通信息监测系统技术手册2010年6月第一部分 数据采集器硬件设计1. 硬件结构2. 资源分配A. GPIO资源分配GPIO管脚功能和作用GPIO管脚功能和作用P0.7GPIO,接LEDP1.7接SHT11的SDA信号P0.6未用,接PCF8563的CLKOUTP1.6接SHT11的SCL信号P0.5IRQ1,接WT3224模块中断P1.5IRQ2,传感器A的中断信号P0.4IRQ0,两个传感器同时有效中断P1.4IRQ3,传感器B的中断信号P0.3未用,JTAG的TRST信号P1.3I2C接口的SDA信号P0.2接外部RAM的BHEP1.2I2C接口的SCL信号P0
2、.1接外部RAM的BLEP1.1串口TXD信号P0.0未用,专门用于下载P1.0串口RXD信号P2.7未用P2.6未用P4.0-P4.7外部RAM的D8-D15P2.5配置选通信号,低有效P3.0-P3.7外部RAM的D0D7P2.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-实际时间采集,
3、标准I2C接口 配置信息-由D7D0数据线连接,由P2.5片选(用GPIO方式采集)C. DAC参考电压输出部分DAC3 - 传感器A的低阀值DAC2 - 传感器A的高阀值DAC1 - 传感器B的低阀值DAC0 - 传感器B的高阀值DAC输出需要增加一个跟随器以提高阻抗能力D. I2C接口部分用于连接实时时钟芯片PCF8563E. 外部扩展存储器RAM部分外部RAM选用ISSI的IS61WV12816,共有64X16K空间F. 无线通讯模块部分选用WT3224。G. 电源部分选用7.4V锂电池,为了保证电源的稳定性,使用BL1085进行稳压到5V给传感器供电,同时转换到3.3V给主控芯片供电。
4、H. 其它(指示灯和配置)指示灯共有三个,其中有3.3V电源指示灯、工作状态指示灯、RF模块工作指示灯,3.3V电源灯可以根据需要使用(实际使用时不需要);工作状态指示灯的表现为工作时亮休眠时灭;RF模块指示灯为模块工作时亮,RF模块不工作时灭。3. 数据采集部分原理采用GMR传感器实时采集地磁信号,经放大后送A/D采样,同时送阀值比较电路。当突然来车时,GMR发生变化,阀值比较电路产生信号引起CPU中断,从而获得需要的车流量和相关的车速和车长估计;最后通过RF模块将数据发送出去。为了避免干扰信号造成GMR信号变化,使用CPU的DAC功能输出跟踪地磁信号的变化;为了省电,主CPU采用休眠模式工
5、作,RF模块只有在发送的时候才打开工作。另外使用了外部RAM进行数据保存,使用了日历芯片控制程序流程。可以手工配置工作模式、阀值大小和RF模块地址。第二部分 数据采集器软件设计1. 软件结构软件系统使用u-Vision 3.0编写,程序结构如下:TMS-A project - main.c 主程序(包括初始化、流程控制程序) - IRQ.c 中断服务程序(包括车流量检测程序) -sub.c 子程序(包括各类数据采集、保存、发送子程序) -myADuC7026.h 头文件2. 主程序框图数据采集器的设计思路是尽量快速而有效地采集车流量和计算车速和车长,同时为了节约能源,在软件设计时,所有的车辆信
6、息测量(包括车流量、车速、车长)都有GMR传感器的中断服务程序完成(GMR-A管理进入,GMR-B负责退出)。也就是说平常时刻,系统都处于休眠状态,来车后才唤醒工作。为了保证地磁跟踪,采集周期为2秒。整个软件有工作模式配置,分为三个模式:Mode=1为定时发送,一小时为一个循环,包括存取、发送和计数;Mode=2为实时发送模式,即来一辆车发送一次,但计数按天计算;Mode=3为测试方式,每分种发送一次最新的测试数据(即使没有车辆信息),同时也实时发送实际测量信息,需要注意的是发送的测试数据地址是0X20,结果数据发送地址为0x10,Mode3下的计数不清零。计数值就是车流量。3. 各种函数定义
7、主程序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使
8、用) -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-配
9、置信息(工作模式)其中:Config_Data = Work_Mode (D7/D6)+ Vref_Bias(D5/D4) + Local_Address(D3D0)参数类:unsigned char Start_time6,Real_time6-初始化时间,实际时间unsigned short SensorA_Data,SensorB_Data-两个GMR传感器信号unsigned short Temperature,Humidity -地表温度和湿度unsigned short Operation_Temperature,Battery_Voltage-工作温度和电池电压unsigned
10、short Car_Speed,Car_Length -车速和车长 unsigned short Verf_Bias -阀值其它:Unsigned char UART_Buffer_length,UART_Buffer_Data90 -串口发送长度和数据自定义:UART_Test_Address 0x20 -RF模块发送测试数据地址为0x20UART_Object_Address 0x10 -RF模块发送结果数据地址为0x105. 发送信息格式标准WSN设计,发送信息就一条,总共27个字节,格式如下:AA 55 10 模块地址 20 16 时间 车流量 车速 车长 温度 湿度 工作温度 电池电
11、压 校验其中:所有数据均为16进制AA 55 -为帧头;10 -目标地址,为固定值;模块地址-为本地RF模块地址;20 -为RF模块要求固定值;16 -为RF模块要求后续信息长度(20个字节); 时间-为6个字节,分别为年、月、日、时、分、秒; 车流量-为2个字节,高位在前,低位在后;车速-为2个字节,高位在前,低位在后;车长-为2个字节,高位在前,低位在后;温度-为2个字节,高位在前,低位在后,实际温度为除以10再减40;湿度-为2个字节,高位在前,低位在后;工作温度-为2个字节,高位在前,低位在后,实际温度为除以10;电池电压-为2个字节,高位在前,低位在后,实际电压为除以10;校验-为1
12、个字节,为上述所有字节的异或值。第三部分 数据集中器硬件设计1.硬件结构2.资源分配A. GPIO资源分配GPIO管脚功能和作用GPIO管脚功能和作用P0.7GPRS-RXDP1.7接SHT11的SDA信号P0.6T1功能,接风速传感器记数P1.6接SHT11的SCL信号P0.5IRQ1,接GPRS模块中断P1.5IRQ2,雨量传感器中断信号P0.4IRQ0,接WT3224中断P1.4GPIO,接蜂鸣器控制P0.3未用,JTAG的TRST信号P1.3I2C接口的SDA信号P0.2接外部RAM的BHEP1.2I2C接口的SCL信号P0.1接外部RAM的BLEP1.1串口TXD信号(WT3224)
13、P0.0接LED灯,同时用于下载P1.0串口RXD信号(WT3224)P2.7GPIO,接GPRS的DTR信号P2.6GPIO,接配置选通信号,低有效P3.0-P3.7外部RAM的D0D7P2.5GPIO,接风向选通信号,低有效P4.0-P4.7外部RAM的D8-D15P2.4外部RAM的CS信号P2.3外部RAM的AE信号P2.2外部RAM的RD信号P2.1外部RAM的WR信号P2.0GPRS-TXDB. 数据采集部分1) 模拟信号数据采集ADC0-大气压力传感器ADC9-能见度传感器(选配)ADC10-电池电压ADC11-太阳光总辐射ADC16-ADuC芯片内部工作温度2) 数字信号采集
14、SHT11-温湿度采集,由P1.7/P1.6接口 PCF8563-实际时间采集,标准I2C接口 配置信息-由D7D0数据线连接,由P2.6片选(用GPIO方式采集) 风向采集-由D7D0数据线连接,由P2.5片选(用GPIO方式采集) 风速采集-由定时器T1计数 雨量采集-有IRQ2中断计数 3) RF信号采集 通过IRQ0中断(WT3224)来获取数据采集器的交通信息测试数据C. EEPROM部分标准EEPROM(BL24C32),存储配置信息,标准I2C接口,存取内容为:Page 1:WinTech TMS V1.0 2010-5-30-公司名,项目名称,版本号,生成日期Page 2:SI
15、M卡卡号,共6个字节,BCD码格式Page 3:IP地址和端口号,共6个字节,16进制格式D. I2C接口部分用于连接实时时钟芯片PCF8563E. 外部扩展存储器RAM部分外部RAM选用ISSI的IS61WV12816,共有64X16K空间F. 无线通讯模块部分选用WT3224。北京沃英泰科有限公司设计。 G. 无线远程通讯模块部分选用M580,为深圳有方科技有限公司设计。H. 电源部分选用12V太阳能,为了保证电源的稳定性和省电,使用LM2596进行稳压到5V给传感器供电,同时转换到3.3V给主控芯片供电。I. 其它(指示灯和配置)指示灯共有五个,其中有3.3V电源指示灯、工作状态指示灯、
16、RF模块工作指示灯各一个,GPRS模块用指示灯2个。3.3V电源灯可以根据需要使用(实际使用时不需要);工作状态指示灯的表现为工作时亮休眠时灭;RF模块指示灯为模块工作时亮,RF模块不工作时灭;GPRS灯为GPRS专用,可以省去电源指示灯。3. 数据集中器工作原理数据集中器主要有两个任务,一是采集本地的气象环境数据,包括气象7要素和光能见度,这些功能都是选配,可根据需要使用;另一个是通过RF模块(WT3224)接收来自地面数据采集器的数据,然后转发给远程数据监控中心。另外使用了内部EEPROM进行关键信息的保存,主要分为3个页面,分别保存项目信息、SIM卡的卡号、远程传输的IP地址;同时还使用
17、了外部RAM进行气象数据的临时保存;又使用了日历芯片控制程序流程。可以手工配置RF模块的地址(后四位+0X10)、工作模式(采样时间和发送时间)以及工作模式。第四部分 数据集中器软件设计1. 软件结构软件系统使用u-Vision 3.0编写,程序结构如下:TMS-A project - main.c 主程序(包括初始化、流程控制程序) - IRQ.c 中断服务程序(包括RF中断车流量检测程序和GPRS中断配置) -Get_Data.c 数据获取子程序(包括各类数据采集子程序) -Send_Data.c 数据发送子程序(包括数据发送、保存子程序) -Common.c 通用子程序库(包括延时和初始
18、化相关子程序) -myADuC7026.h 头文件2. 主程序框图数据集中器的设计思路比较清晰,其主要工作就是将下端数据采集器通过RF模块发来的车辆交通(车流量、车速、车长)转发到远程的数据管理中心,为了使产品功能更加丰富,增加了气象数据采集功能,特别是交通部门需要的能见度采集数据。所有下端数据的RF采集和转发都由中断服务程序完成,这样设计的主要目的是为了节约能源,为了防止SIM卡被意外停机,每分钟发送一次信息(包括实际时间、气象数据)。设计了一小时保存一次气象数据,由远程数据中心根据需要是否获取,具体的采样时间可以由系统配置(采样时间有5秒、10秒、20秒、30秒四种选择)。为方便调试,还设
19、计了测试数据发送功能。注意测试数据地址为0x20。3. 中断服务程序框图中断服务程序是整个数据集中器的核心部分,RF模块接收到下端发来的车辆交通信息后产生外部中断(XIRQ1),进入中断服务程序后,通过串口接收数据(为了保证数据接收的完整性,采用了定时接收的办法,总计时间为100ms),然后对接收到的数据进行分析判断,如果是测试地址发来的信息(0X20)就认为是配置信息(配置时间、IP地址、SIM-ID号等),如果是下端发来的信息(0X000X0F),就说明是测试数据,那就将测试数据转发给远程数据接收中心。中断服务程序中还有唤醒中断和雨量计数中断,上述框图中没有说明。同时中断程序中还有GPRS
20、中断服务程序,图中没有标出。4. 各种函数定义主程序main.c - main();中断服务程序IRQ.c - IRQ_hander()_irq 唤醒中断/雨量中断/WT3224中断服务程序 - FIQ_hander()_fiq GPRS中断服务程序子程序 Get_Data.c - Get_Analog_Data() 模拟信号采集及相关子程序 -Get_Digital_Data() 数字信号采集及相关子程序 -Get_Real_time() 实际时间采集及相关子程序 子程序Send_Data.c-Send_Heart_Data() 发送心跳报子程序 -Send_Test_Data() 发送测试
21、数据子程序 -Save_Current_Data() 保存当前气象数据子程序子程序Common.c -通用延时子程序 -串口和GPRS初试化子程序5. 各种全程变量定义 流程控制类:unsigned char Local_Addreee -RF模块本地地址unsigned char Config_Data -配置数据unsigned char ERROR_Code-GPRS出错代码其中:Config_Data = Test_Flag (D7)+D6 +Sample_Time(D5/D4) + Local_Address(D3_D0) Local_Address = D3D0 + 0x10参数类
22、:unsigned char Start_time6,Real_time6-初始化时间,实际时间unsigned short Wind_Speed,Wind_Direction-风速,风向unsigned short Air_Temperature,Humidity -大气温度和湿度unsigned short Air_Pressure, Precipitation_Intensity-大气压力和降水强度unsigned short Radiation_Intensity, Light_Visibility-光辐射和能见度unsigned short Operation_Temperature
23、,Battery_Voltage-工作温度和电池电压其它:unsigned char UART_Buffer_length,UART_Buffer_Data90 -串口发送长度和数据unsigned char Sensor_ID4,IP_Address4 -ID号,IP地址unsigned short IP_Port -IP端口号自定义:UART_Test_Address 0x20 -RF模块发送测试数据地址为0x20UART_Object_Address 0x10 -RF模块发送结果数据地址为0x106. 发送信息格式信息格式有两种,一种是心跳报文,一种是转发下端发来的结果数据。A) 心跳报
24、报文格式:总共为33个字节AA 55 SIM_ID 10 时间 风速 风向 温度 湿度 压力 雨量 光辐射 能见度 工作温度 电池电压 校验其中:所有数据均为16进制AA 55 -为帧头;SIM_ID-为3个字节的SIM_ID号,是SIM卡的后6位手机号;10-为本数据集中器的RF模块地址; 时间-为6个字节,分别为年、月、日、时、分、秒; 风速-为2个字节,高位在前,低位在后;风向-为2个字节,高位在前,低位在后;温度-为2个字节,高位在前,低位在后,实际温度为除以10再减40;湿度-为2个字节,高位在前,低位在后;压力-雨量-光辐射-能见度-工作温度-为2个字节,高位在前,低位在后,实际温
25、度为除以10;电池电压-为2个字节,高位在前,低位在后,实际电压为除以10;校验-为1个字节,为上述所有字节的异或值。B) 结果数据报文:共有27个字节AA 55 SIM_ID 模块地址 时间 车流量 车速 车长 温度 湿度 工作温度 电池电压 校验其中:所有数据均为16进制AA 55 -为帧头;SIM_ID-为3个字节的SIM_ID号,是SIM卡的后6位手机号;模块地址-为下端的RF模块地址; 时间-为6个字节,分别为年、月、日、时、分、秒; 车流量-为2个字节,高位在前,低位在后;车速-为2个字节,高位在前,低位在后;车长-为2个字节,高位在前,低位在后;温度-为2个字节,高位在前,低位在后,实际温度为除以10再减40;湿度-为2个字节,高位在前,低位在后;工作温度-为2个字节,高位在前,低位在后,实际温度为除以10;电池电压-为2个字节,高位在前,低位在后,实际电压为除以10;校验-为1个字节,为上述所有字节的异或值。注意:1) 时间为当前数据集中器的时间;2) 通过模块地址可以判定是哪个下端数据采集器设备发来的数据。如果地址是0x10就说明是心跳报数据。本文是通过网络收集的资料,如有侵权请告知,我会第一时间处理。13