基于RFID技术的高速公路自动收费系统设计

2012-06-06 06:57刘艳昌王娜
关键词:收费站日志进程

刘艳昌,王娜

(1.河南科技学院,河南新乡453003;2.济源职业技术学院电气工程系,河南济源,454650)

近年来,随着各类车辆特别是私家车的快速增长,由于大多中小城市高速公路收费站仍采用人工收费方式,使得车辆在交费时需完全停止,引起的交通拥挤、延误等问题不断出现,在交通高峰期拥堵现象尤为严重.在如何提高收费结算率、避免拥堵方面,收费站已成为高速公路的“瓶颈”问题.另外车辆频繁的启动、刹车也造成了能源浪费和环境污染,同时也加快了车辆部件的磨损,带来交通隐患.基于RFID技术的高速公路自动收费系统采用无线方式,通过安装在车辆前部的射频卡(缴费卡)和置于收费站内的读卡器进行信息交换,是一种全自动收费方式.该系统的开发与实现,可以消除人为因素带来的影响,对于提高收费效率,降低车辆拥堵率具有积极作用[1-2].

1 系统总体结构

系统网络总体结构如图1所示.该系统主要由现场收费站,开户、收费中心和自动收费控制中心3大部分组成.现场收费站分为人工收费和自动收费两个通道,自动收费通道可以实现不停车自动收费,由射频卡和读卡器完成信息记录并通过内部局域网将车辆通过信息传输到控制中心[3].开户、收费中心用来实现远程开户,充值付费功能.由自动收费系统控制中心完成一切信息的处理,包括添加收费站、设置价格表、自动收费、记录用户信息等功能.

图1 系统网络总体结构

2 系统软件模块实现

该系统软件模块是在Linux操作系统下采用C语言编程来实现全自动车道收费流程[4-6],具有系统长期稳定、可移植性好、灵活等特点.根据实际功能需要,该系统的应用程序实现主要分3个模块:网络传输模块实现、收费模块实现和管理模块实现.功能模块之间关系如图2所示.

图2 软件功能模块关系

2.1 网络传输模块实现

由于要求入口线圈检测到车辆时,系统立即响应入口线圈的开关信号,将信息传入网络模块,并在车辆通过收费站出口前的短暂时间内完成收费过程.为了提高收费可靠性,缩短信息传输时间,在网络传输模块应用程序中创建一个子进程,采用异步通知机制,用以执行信息读取和信息发送同时进行,通过管道机制,实现进程间的同步和通信.车辆控制网络传输模块软件流程如图3所示.

图3 车道控制网络传输模块软件流程

创建管道:程序开始时先从配置文件中读取配置信息,包括服务器地址、生成操作日志文件的信息级别设置、基本的程序信息,并且通过调用pipe()函数创建管道为后面进程间的通信做准备.

调用fork()创建子进程:一般情况下网络传输只需要一个顺序的流程,不需要创建多个进程来完成数据传输任务,但考虑到车流量不固定,网络通信模块实时性要求高,需要创建进程来分别完成信息读取和发送任务.父进程与读卡器连接来读取通行车辆的射频标签,子进程调用read()函数阻塞等待父进程向管道中写入信息,并将读到的车辆信息通过内部局域网络发送给收费模块.

父子进程中的异步通知:在没有车辆通过时,系统处于休眠状态,当入口或出口感应线圈检测到车辆来时,才执行读写操作,因此应采用中断的方式来实现.在Linux系统中,通常采用设备驱动的异步通知来实现.在父进程中,打开I/O接口设备文件,调用signal()为sigio信号安装信号处理函数,在信号处理函数中执行读写模块.

2.2 收费模块实现

收费模块作为服务器端的后台程序执行,是前台管理模块的一个线程,通过公用的内存和全局变量实现之间的信息同步.收费模块运行开始时,先从配置文件中读取配置信息,包括通信用的端口号、告警日志信息级别、路径等信息.然后通过socket连接到网络,绑定监听端口[7].为了实现服务器能为多个收费站路侧设备服务,还有来自网络的充值信息,收费模块通过select机制实现多用户操作.当监听到收费站设备的联接时,通过信息对比和管理员事先设置好的收费标准来对用户的金额进行修改,并生成操作日志.收费系统流程如图4所示.

图4 收费系统流程

2.3 管理模块实现

系统在完成自动收费功能的同时,还需要有管理员对系统进行全面的管理.管理模块和收费模块属于同一个进程,且两模块接收的数据是相同的,管理员通过对系统的操作可以查看整个系统的信息并进行相应的管理和修改.管理模块由用户信息管理、收费站信息管理和查看收费信息3部分组成,涵盖了对整个系统所有信息的操作.管理模块的实现主要采用service()函数处理来自不同收费站或充值中心的信息,通过简单的协议来区分这些信息,从而做到相应的处理.service()函数采用非阻塞的方式得到收费站信息,并对信息进行实时的处理,具有远程用户充值、记录上下站用户信息、自动按照价格表扣除经过某段高速公路的金额和自动将操作信息、错误告警信息写入操作日志的功能.service()函数的流程如图5所示.

图5 service()函数的流程

3 系统仿真

该系统仿真是在Linux系统下用C语言结合面向对象的gtk库函数及相关编程语言编写.管理员在进入管理系统执行管理之前,身份验证成功后会自动跳转到一个简洁的管理界面,可以根据实际需要和系统的提示对用户信息进行添加、删除、修改、充值和查找等操作.为了方便管理员对信息的查看、分析和记录,管理系统没有设置列表自动刷新,管理员可以通过刷新数据按钮来查看用户最新的动态信息.用户管理界面如图6所示.

图6 用户管理界面

图6中的站点管理除了具有传统操作外,管理员还能够以表格的形式查看收费站之间的价格表,以便于随时了解相关信息;查看告警日志,便于提醒管理员对欠费用户采取必要措施;查看操作日志,使管理员能详细了解记录系统中的操作时间、信息等级(“info”、“warning”、“error”)和发生的事件.其站点管理和警告日志界面如图7所示.

图7 站点管理和告警日志界面

4 实验运行结果

在实际高速公路自动收费系统的应用中,射频卡与读卡器之间无线数据传输的可靠性尤为重要.为防止外界干扰等因素造成的通信死机,在通信过程中加入了超时控制,并对此进行了多次试验,即若数据传输中断超过规定的控制时间2 s时,系统会自动重新建立通信连接;若中断不足2 s,则不需要重新建立通信连接即可成功实现数据通信.测试结果如表1所示.

表1 系统无线数据传输通信质量

测试结果表明,读卡器能够迅速识别射频卡,并能按照管理员事先设定的收费标准进行路段费用收取.

5 结论

本文主要在已有硬件平台的基础上,对系统软件进行了分析及实际测试,证实了该系统能够可靠、稳定地进行无线数据通信并能够高效地完成自动收费功能.同时,该系统采用在Linux系统下用C语言结合面向对象的gtk库函数进行相关软件编程,可进一步提高程序执行速度,为提高收费成功率提供了保障.

[1]黄伟华,杨建华,谭丽,等.基于无线射频技术的高速公路自动收费系统设计及软件实现[J].电气自动化,2010,32(3):72-73.

[2]闫群民.基于非接触式IC卡的高速公路收费系统设计[J].计算机测量与控制,2009,17(1):215-217.

[3]史绪蓬.高速公路电子收费系统的设计[D].哈尔滨:哈尔滨理工大学,2009:1-10.

[4]李波,杨红.网络管理必备工具软件精讲:Linux版[M].北京:人民邮电出版社,2009.

[5]陈立定,吕盛林.嵌入式Linux监控终端的多进程控制[J].自动化仪表,2011,32(1):13-15.

[6]孙新贺,王晓辉,于月森.一种嵌入式Linux操作系统的构建方法[J].工业控制计算机,2011,24(1):69-71.

[7]冯伟,王博.嵌入式Linux案例开发指南[M].北京:中国电力出版社,2008.

猜你喜欢
收费站日志进程
江苏20个高速收费站实施“准自由流”改造
浙江首个“云收费站”投用
一名老党员的工作日志
扶贫日志
债券市场对外开放的进程与展望
改革开放进程中的国际收支统计
基于Spark的高速收费站大数据系统的设计与实现
游学日志
一种收费站排队模型的模拟实现
社会进程中的新闻学探寻