基于RFID 的石油运输车阀门监控装置的研究
作者:白德海 李相平 曹静
来源:RFID世界网
日期:2007-12-17 16:49:14
摘要:本课题是基于RFID(无线射频技术)的油罐车出油口阀门监控系统的研究,使用nRF2401 射频收发芯片开发系统天线,利用AT89S8252 单片机作为RFID 系统阅读器以及机械机构控制单元,采用USB 作为与PC 机通信接口,并且用VB 开发了基于PC 机平台的上位机应用软件。经过新疆地区测试表明系统可以稳定运行。
1. 引 言
新疆地区石油资源丰富,石油资源分布广泛,油井与集中存储区域距离很远,因此需要油罐车将各地开采的石油运输到集中的存储区,然后再通过管道输送到内地。在石油运输的过程中,由于当地地广人稀,人民生活不富裕,因此养成了靠油吃油的传统,盗油现象十分普遍,运输车队因此损失巨大。基于这种情况,车队希望能够开发一种监控装置,可以控制油罐车的每日装卸油次数、在非规定区域不得卸油等。
2. 电子锁的方案设计
基于上述考虑,本设计采用区域允许方案,即油罐车只有在进入指定区域之后才被获准可以进行装/卸油操作,而在其他任何地域,均不可进行这样的操作,否则视为盗油。在此基础上采用无线射频技术,利用小区广播的方式在装/卸油区域内发布电磁信号,当油罐车进入此区域以后,安装在油罐上的监控装置会自动响应控制台的射频信号并与主控制台进行身份验证、操作允许等动作,具体操作过程见第三章。并通过人工方式操纵阀门扳手打开出油口门。在数据上传方面,由于存在多台车并行出发以及数据操作实时性等要求,因此采用USB(Universal Serial Bus)通用串行总线接口将控制台信息上传到PC 终端,并通过一个应用软件来汇总信息,实现车辆信息管理。
3. 硬件系统设计
本设计的硬件包括了机械动作模块、射频天线模块、控制器模块和USB 接口模块等四个部分[1],如图2 所示:
当油罐车进入到储油区时,安装在出油阀门的射频天线响应由控制器发出的射频信号,通过ShockBurstTM 方式建立连接,油罐车将存储在内部EEPROM 中的16 位ID 上传到控制端,然后由控制器将此ID 通过USB 口传输至PC 机,上位机软件计算出此ID 所对应的车辆信息,如果正确则返回1,确认车辆可以开启阀门,此时控制器收到确认信息后,控制直流电机正转,将阀门锁打开,阀门即可常规操作。
3.1 机械机构设计
机械部分的设计采用LR260 型直流电机,电压范围为DC1.2-12V,步进电机采用20BYG型,工作于DC3.0-12V,全部的机械结构简图如图3 所示:
机械动作过程为当射频天线4 接收到确认信息后,3 控制电路3 响应按键9 的中断,开启直流电机7 正转,带动齿轮11 正向转动,拉动齿条6 向上提起,使锁芯从阀门垫片8 中拔出,从而扳手1 可以转动阀门。当卸油完毕,按下关闭按键10,此时控制电路3 使直流电机1 反转,将锁芯6 插入阀门垫片8 中,锁住扳手1。当需要进行修理或拆卸的时候,需要控制步进电机2,使得锁销打开,从而可以将整个机构拆下来。
3.2 射频天线设计
RFID(Radio Frequency Identification)无线射频技术,是80 年代起走向成熟的一项非接触式自动识别技术,它利用射频方式进行非接触式双向通信,以达到自动识别并交换数据的目的[2]。它通过射频信号自动识别目标对象并获取相关数据,识别工作无需人工干预。因此RFID 技术具有很多突出的优点防水、防磁、耐高温、无机械磨损、寿命长、读取距离大、标签上数据可以加密、存储数据容量更大、存储信息更改自如等。
本设计中的射频天线模块使用基于2.4GHz 超高频的nRF2401 芯片,工作于2.4—2.5HzISM 频段,采用ShockBurstTM 收发模式,它使nRF2401 能够处理射频协议,在配置完成后,在nRF2401 工作的过程中,只需改变其最第一个字节中的内容,就可以实现接收模式和发送模式之间切换。其电源来自车载蓄电池[3]。
由于电磁干扰对射频天线起着决定性的影响,因此,在设计PCB 的过程中采用将高频放大、混频、解调、本振等部分分开,数字地与模拟地分离,尽量减小信号环路面积,并与相应的滤波电路的地线就近相接,全PCB 版敷铜,在合适位置开过孔等方式,尽量减少电磁干扰[4]。
3.3 阅读及控制器设计
阅读器采用带有EEPROM 的AT89S8252 单片机,采用地址、数据和控制三总线方式,串行方式读取nRF2401 发送过来的16 位ID 信息,并将其存储于EEPROM 中,然后通过ISP1581 采用USB2.0 的Bulk Only 方式上传到PC 终端。
对直流电机的控制包括正转、反转和时间控制。由于动作距离短,因此对时间的要求比较严格,正/反转一次的时间为1.2 秒,单片机的P2.0 引脚写1 表示电机正转1.2 秒,写0表示反转1.2 秒。步进电机用于控制阀门扳手头部的锁销,当需要对装置进行修理、拆卸时,需要控制阅读器向射频天线写8 位开启密码,然后通过与控制器中EEPROM 中的密码相比对,正确步进电机正转,打开锁销。
3.4 USB 接口
USB 接口采用PHILIPS 公司生产的ISP1581 芯片,该芯片是不带微处理器的专用USB接口芯片,完全符合USB 2.0 规范,并为基于微控制器或微处理器的系统提供了高速USB通信能力[5]。USB 接口与控制器设计为一块电路板,这样做的目的是减少系统故障可能以及降低成本,并且接口简便,提高数据传送速率。
接口采用USB2.0 协议,采用Mass Storage 子类协议,用Bulk Only 传输方式。AT89S8252使用控制0 通道对ISP1581 进行配置,配置的寄存器包括了需要预置初值的寄存器、数据流寄存器和常规寄存器。需要预置初值的寄存器有:地址寄存器、方式寄存器、中断配置寄存器、中断使能寄存器。数据流寄存器有:端点MaxPacketSize 寄存器、端点索引寄存器、控制功能寄存器、端点类型寄存器、短包等。定义的常规寄存器有:帧数目寄存器、测试方式寄存器等[6]。
4. 软件开发
整个的软件包括下位机和上位机两部分,包括了射频收发、电机控制、USB 接口、WDM驱动和应用程序等,其中射频收发、电机控制、USB 接口控制属于下位机模块,其流程图如图4 所示:
下位机的主要功能是确保正确的ID 被发送并保证在接收确认信息后可以正确操作直流电机和步进电机。上位机包括了射频收发、USB 接口、WDM 驱动和应用程序,其中射频收发和USB 接口程序处于阅读器上,用于上位机前端,全部程序包括Mainloop.c、Init_system.c、Usb.h、Charp9.c、Isr_RFID.c、Isr_USB.c、AT89S52.h、nRF 2401.h、ISP1581.h 等,其中Isr_RFID.c负责处理射频收发,而Isr_USB.c 负责处理USB 接口数据传输[6-7]。主程序流程图如图5 所示:
USB 的驱动程序采用典型的WDM(Windows Driver Model)Windows 驱动程序模型结构[8],在VC 环境下使用DriverStudio2.9 开发,其功能是正确采用Mass Storage 协议配置USB接口芯片ISP1581,提供USB 接口硬件和应用程序之间的桥梁。应用程序采用VB 语言开发,采用ADODC 控件和DATAGRID 控件与ACCESS 数据库连接[9],管理大约600 台油罐车的ID、驾驶员信息、进出储油区的时间和次数等信息。
5. 系统试验和测试
系统于2007 年初开发完毕,送往新疆地区实地测试,测试的内容包括通信距离、温度对系统的影响、车辆颠簸对系统的影响、污染的影响等几项。nRF2401 的理论通信距离为200 米,但是在包括电磁干扰、功率影响等干扰下,其实际测试的距离大概为150 米,即在150 米以后有丢失数据的现象,但是在100 米范围内完全可以做到不丢失数据,而一个油罐的范围为89 米,因此可以保证数据完成和准确。由于新疆地区昼夜温差大,因此进行了晚间的试验,结果表明在零下30○C 的环境下可以正常工作。污染的影响,用石油将出油口的监控装置糊住,然后再50 米处和150 米处测试其性能,试验表明完全不受影响。 最后是颠簸试验,由于整个测试过程中油罐车一直在工作,因此经受住了大概一个星期的考验,结果表明其能够承受新疆地区复杂的路况和天气情况。
6. 总结
整个设计于2006 年10 月份开始,到2007 年2 月开发完毕。系统采用了目前比较流行的两种技术,即无线射频技术和USB 技术,用C 语言开发了全部的固件程序,用基于VC的DriverStudio2.9 开发了USB 的WDM 驱动程序,使用VB 语言开发了基于ACCESS 数据库的应用程序,经验证表明系统可以可靠的运行。
参考文献
[1]张益强,郑铭,张其善.远距离无源射频识别系统设计[J].遥测遥控,2004.7:2~3.
[2][德]Klaus Finkenzeller 著.射频识别(RFID)技术——无线电感应的应答器和非接触IC 卡的原理与应用[M].电子工业出版社,2002:5~7.
[3]NORDIC Semiconductor.Single Chip 2.4GHz Transceiver nRF2401A [J].DATASHEET,2004:17~18.
[4]范博.射频电路原理与实用电路设计 [M] .北京:机械工业出版社,2006:249~250.
[5]马伟.计算机USB 系统原理及其主/从机设计[M].北京航空航天大学出版社,2004:108~116.
[6]周立功等.PDIUSBD12 USB 固件编程与驱动开发[M] .北京:北京航空航天大学出版社,2002:177~201.
[7]先锋工作室.单片机程序设计实例[M] .北京:清华大学出版社,2004:300~302.
[8][美]Chris Cant 著. Windows WDM 设备驱动程序开发指南[M] .马莉波,,孙义,国雪飞,等译,北京:机械工业出版社,2004:323~324.
[9]杨晶.VB6.0 程序设计教程与实训 [M] .北京:科学出版社,2006:102~118.
新疆地区石油资源丰富,石油资源分布广泛,油井与集中存储区域距离很远,因此需要油罐车将各地开采的石油运输到集中的存储区,然后再通过管道输送到内地。在石油运输的过程中,由于当地地广人稀,人民生活不富裕,因此养成了靠油吃油的传统,盗油现象十分普遍,运输车队因此损失巨大。基于这种情况,车队希望能够开发一种监控装置,可以控制油罐车的每日装卸油次数、在非规定区域不得卸油等。
2. 电子锁的方案设计
基于上述考虑,本设计采用区域允许方案,即油罐车只有在进入指定区域之后才被获准可以进行装/卸油操作,而在其他任何地域,均不可进行这样的操作,否则视为盗油。在此基础上采用无线射频技术,利用小区广播的方式在装/卸油区域内发布电磁信号,当油罐车进入此区域以后,安装在油罐上的监控装置会自动响应控制台的射频信号并与主控制台进行身份验证、操作允许等动作,具体操作过程见第三章。并通过人工方式操纵阀门扳手打开出油口门。在数据上传方面,由于存在多台车并行出发以及数据操作实时性等要求,因此采用USB(Universal Serial Bus)通用串行总线接口将控制台信息上传到PC 终端,并通过一个应用软件来汇总信息,实现车辆信息管理。
3. 硬件系统设计
本设计的硬件包括了机械动作模块、射频天线模块、控制器模块和USB 接口模块等四个部分[1],如图2 所示:
当油罐车进入到储油区时,安装在出油阀门的射频天线响应由控制器发出的射频信号,通过ShockBurstTM 方式建立连接,油罐车将存储在内部EEPROM 中的16 位ID 上传到控制端,然后由控制器将此ID 通过USB 口传输至PC 机,上位机软件计算出此ID 所对应的车辆信息,如果正确则返回1,确认车辆可以开启阀门,此时控制器收到确认信息后,控制直流电机正转,将阀门锁打开,阀门即可常规操作。
3.1 机械机构设计
机械部分的设计采用LR260 型直流电机,电压范围为DC1.2-12V,步进电机采用20BYG型,工作于DC3.0-12V,全部的机械结构简图如图3 所示:
机械动作过程为当射频天线4 接收到确认信息后,3 控制电路3 响应按键9 的中断,开启直流电机7 正转,带动齿轮11 正向转动,拉动齿条6 向上提起,使锁芯从阀门垫片8 中拔出,从而扳手1 可以转动阀门。当卸油完毕,按下关闭按键10,此时控制电路3 使直流电机1 反转,将锁芯6 插入阀门垫片8 中,锁住扳手1。当需要进行修理或拆卸的时候,需要控制步进电机2,使得锁销打开,从而可以将整个机构拆下来。
3.2 射频天线设计
RFID(Radio Frequency Identification)无线射频技术,是80 年代起走向成熟的一项非接触式自动识别技术,它利用射频方式进行非接触式双向通信,以达到自动识别并交换数据的目的[2]。它通过射频信号自动识别目标对象并获取相关数据,识别工作无需人工干预。因此RFID 技术具有很多突出的优点防水、防磁、耐高温、无机械磨损、寿命长、读取距离大、标签上数据可以加密、存储数据容量更大、存储信息更改自如等。
本设计中的射频天线模块使用基于2.4GHz 超高频的nRF2401 芯片,工作于2.4—2.5HzISM 频段,采用ShockBurstTM 收发模式,它使nRF2401 能够处理射频协议,在配置完成后,在nRF2401 工作的过程中,只需改变其最第一个字节中的内容,就可以实现接收模式和发送模式之间切换。其电源来自车载蓄电池[3]。
由于电磁干扰对射频天线起着决定性的影响,因此,在设计PCB 的过程中采用将高频放大、混频、解调、本振等部分分开,数字地与模拟地分离,尽量减小信号环路面积,并与相应的滤波电路的地线就近相接,全PCB 版敷铜,在合适位置开过孔等方式,尽量减少电磁干扰[4]。
3.3 阅读及控制器设计
阅读器采用带有EEPROM 的AT89S8252 单片机,采用地址、数据和控制三总线方式,串行方式读取nRF2401 发送过来的16 位ID 信息,并将其存储于EEPROM 中,然后通过ISP1581 采用USB2.0 的Bulk Only 方式上传到PC 终端。
对直流电机的控制包括正转、反转和时间控制。由于动作距离短,因此对时间的要求比较严格,正/反转一次的时间为1.2 秒,单片机的P2.0 引脚写1 表示电机正转1.2 秒,写0表示反转1.2 秒。步进电机用于控制阀门扳手头部的锁销,当需要对装置进行修理、拆卸时,需要控制阅读器向射频天线写8 位开启密码,然后通过与控制器中EEPROM 中的密码相比对,正确步进电机正转,打开锁销。
3.4 USB 接口
USB 接口采用PHILIPS 公司生产的ISP1581 芯片,该芯片是不带微处理器的专用USB接口芯片,完全符合USB 2.0 规范,并为基于微控制器或微处理器的系统提供了高速USB通信能力[5]。USB 接口与控制器设计为一块电路板,这样做的目的是减少系统故障可能以及降低成本,并且接口简便,提高数据传送速率。
接口采用USB2.0 协议,采用Mass Storage 子类协议,用Bulk Only 传输方式。AT89S8252使用控制0 通道对ISP1581 进行配置,配置的寄存器包括了需要预置初值的寄存器、数据流寄存器和常规寄存器。需要预置初值的寄存器有:地址寄存器、方式寄存器、中断配置寄存器、中断使能寄存器。数据流寄存器有:端点MaxPacketSize 寄存器、端点索引寄存器、控制功能寄存器、端点类型寄存器、短包等。定义的常规寄存器有:帧数目寄存器、测试方式寄存器等[6]。
4. 软件开发
整个的软件包括下位机和上位机两部分,包括了射频收发、电机控制、USB 接口、WDM驱动和应用程序等,其中射频收发、电机控制、USB 接口控制属于下位机模块,其流程图如图4 所示:
下位机的主要功能是确保正确的ID 被发送并保证在接收确认信息后可以正确操作直流电机和步进电机。上位机包括了射频收发、USB 接口、WDM 驱动和应用程序,其中射频收发和USB 接口程序处于阅读器上,用于上位机前端,全部程序包括Mainloop.c、Init_system.c、Usb.h、Charp9.c、Isr_RFID.c、Isr_USB.c、AT89S52.h、nRF 2401.h、ISP1581.h 等,其中Isr_RFID.c负责处理射频收发,而Isr_USB.c 负责处理USB 接口数据传输[6-7]。主程序流程图如图5 所示:
USB 的驱动程序采用典型的WDM(Windows Driver Model)Windows 驱动程序模型结构[8],在VC 环境下使用DriverStudio2.9 开发,其功能是正确采用Mass Storage 协议配置USB接口芯片ISP1581,提供USB 接口硬件和应用程序之间的桥梁。应用程序采用VB 语言开发,采用ADODC 控件和DATAGRID 控件与ACCESS 数据库连接[9],管理大约600 台油罐车的ID、驾驶员信息、进出储油区的时间和次数等信息。
5. 系统试验和测试
系统于2007 年初开发完毕,送往新疆地区实地测试,测试的内容包括通信距离、温度对系统的影响、车辆颠簸对系统的影响、污染的影响等几项。nRF2401 的理论通信距离为200 米,但是在包括电磁干扰、功率影响等干扰下,其实际测试的距离大概为150 米,即在150 米以后有丢失数据的现象,但是在100 米范围内完全可以做到不丢失数据,而一个油罐的范围为89 米,因此可以保证数据完成和准确。由于新疆地区昼夜温差大,因此进行了晚间的试验,结果表明在零下30○C 的环境下可以正常工作。污染的影响,用石油将出油口的监控装置糊住,然后再50 米处和150 米处测试其性能,试验表明完全不受影响。 最后是颠簸试验,由于整个测试过程中油罐车一直在工作,因此经受住了大概一个星期的考验,结果表明其能够承受新疆地区复杂的路况和天气情况。
6. 总结
整个设计于2006 年10 月份开始,到2007 年2 月开发完毕。系统采用了目前比较流行的两种技术,即无线射频技术和USB 技术,用C 语言开发了全部的固件程序,用基于VC的DriverStudio2.9 开发了USB 的WDM 驱动程序,使用VB 语言开发了基于ACCESS 数据库的应用程序,经验证表明系统可以可靠的运行。
参考文献
[1]张益强,郑铭,张其善.远距离无源射频识别系统设计[J].遥测遥控,2004.7:2~3.
[2][德]Klaus Finkenzeller 著.射频识别(RFID)技术——无线电感应的应答器和非接触IC 卡的原理与应用[M].电子工业出版社,2002:5~7.
[3]NORDIC Semiconductor.Single Chip 2.4GHz Transceiver nRF2401A [J].DATASHEET,2004:17~18.
[4]范博.射频电路原理与实用电路设计 [M] .北京:机械工业出版社,2006:249~250.
[5]马伟.计算机USB 系统原理及其主/从机设计[M].北京航空航天大学出版社,2004:108~116.
[6]周立功等.PDIUSBD12 USB 固件编程与驱动开发[M] .北京:北京航空航天大学出版社,2002:177~201.
[7]先锋工作室.单片机程序设计实例[M] .北京:清华大学出版社,2004:300~302.
[8][美]Chris Cant 著. Windows WDM 设备驱动程序开发指南[M] .马莉波,,孙义,国雪飞,等译,北京:机械工业出版社,2004:323~324.
[9]杨晶.VB6.0 程序设计教程与实训 [M] .北京:科学出版社,2006:102~118.