《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 机动车检测系统中总线设备网络化改造的实现

机动车检测系统中总线设备网络化改造的实现

2008-11-26
作者:王 芳1,2, 刘云卿2, 刘云

    摘  要: 实现了一种机动车检测系统" title="检测系统">检测系统中总线设备网络化改造的可行方案。利用SST89E564RD单片机与网卡芯片设计的主要接口模块,既为检测设备网络化提供了网关服务,也实现了在线仿真和下载的功能。 

    关键词: 机动车检测系统; 现场总线; 以太网; 串口" title="串口">串口; 在线仿真

 

    随着道路交通和汽车工业的迅速发展,各地区急剧上升的机动车拥有量及道路车流量对交通安全造成了很大的压力,这对机动车管理部门提出了更高的技术要求,对检测系统进行远程控制的要求愈加迫切。目前,机动车检测系统一般都基于RS232总线,采用专用通信协议。系统存在可扩展性差、传输距离短、抗干扰性差等弊端。将以太网技术引入到工业测控领域,是当前现场总线技术发展的新趋势[1-3]。以太网在办公自动化领域和企业管理网络内,由于技术成熟、性能稳定,可靠性高而得到了广泛应用,占据国内现有局域网的80%。在测控领域,它以速度快、协议通用、可扩展性好、易于与Internet集成等特点而被视为继集散控制系统DCS(如RS232总线)、基于现场总线的控制系统FCS(如CAN)之后控制网络中最热门的研究领域之一。借鉴工业测控领域的应用,设计基于以太网的机动车检测系统,不仅免除了不同现场总线水平层之间难以集成的问题,而且大大地降低了外界的干扰,为实现现场设备与互联网的直接连接,提供了一种非常便捷的方法,也给总线设备的网络化提供了低成本、高可靠性、可移植性的产品和方案。 

1 串口通信与网络传输 

    两个设备之间交换信息时,必须有一条线路(或是多条线路)将两者连接,而通过线上电压的改变来达到交换数据的目的。考虑本系统的数据传输速度和传送距离,选择了RS232通信标准[4]。本文主要是通过串口与外部设备进行通信,实现数据传输、在线仿真和网卡参数配置等功能。 

    要实现现场设备网络化,保证数据的可靠传输和远程控制,就必须将可靠的TCP/IP" title="TCP/IP">TCP/IP协议栈嵌入到单片机中实现数据的网络传输。图1是目前机动车检测系统最常用的结构图[5],它是基于串口传输数据的。由于计算机串口有限导致可扩展性差,串口本身又存在传输距离短、抗干扰性差等缺点,所以不是一种长远的方案。图2是网络化改造后的控制结构图,从图中可以看出:只需要简单地接入一个集线器便可大大地提高系统的可扩展性,增强抗干扰性,还可以通过以太网远程控制机动车检测并将检测到的数据通过以太网传送到各个部门。 

 

 

 

2 系统主要模块硬件结构设计 

    模块硬件设计电路结构如图3所示。模块主要包括单片机SST89E564RD、网卡芯片RTL8019AS、外扩的EEPROM X5045、外扩的RAM HM62256、串口通信、网口通信等单元。为检测设备的网络化提供了串口转以太网的网关服务。模块既可以作为服务器端又可以作为客户端" title="客户端">客户端接口来使用。由于SST89E564RD具有在线仿真和下载功能,Flash(内部Flash擦写次数为1 000 000次以上)存储器取代了原来的ROM(一次性写入),为开发工程中的调试提供了最大的方便,大大节约了开发成本。 

 

 

    采用SST89E564RD单片机作为主处理器控制以太网卡芯片来实现与以太网的数据交换。SST89E564RD的工作频率为40MHz,从而具有了更快的计算速度,内部程序Flash 64KB,达到51内核单片机寻址最大范围,能够满足容纳裁剪后的TCP/IP协议的需求。由于需要处理网络数据包,一个最大网络数据包有1 514B,而SST89E564RD内部的RAM只有256B,所以需要考虑外扩RAM。同时TCP/IP协议栈需要考虑数据阻塞、超时重发等,需要比较大的数据空间作为数据缓存,因此选择HM62256 32K×8bit 动态RAM作为数据缓存。 

    在系统中还使用X5045 作为外部扩展的EEPROM,用来存储IP地址、物理地址以及网卡的其他配置信息。同时X5045还具有电压监控、看门狗定时器、上电复位三种功能,使用X5045监控系统的运行过程,当系统不稳定时可以进行有效的复位。 

    由于单片机的高低电平与串行口的高低电平不同,二者之间需要进行电平转换,在本设计中使用MAX232作为串口电平转换芯片,负责单片机与PC机的电平转换。数据可从串口输入到单片机,单片机把数据送到RTL8019AS后传出。反之,从RTL8019AS接收到的数据通过单片机可从串口发出。 

    网卡芯片采用Realtek公司生产的10M的RTL8019AS以太网卡[6]控制器,价格低廉,与NE2000兼容。RTL8019AS符合ETHERNETⅡ和IEEE802.3标准;内置16KB SRAM,用于收发缓冲,降低了对主处理器的要求;支持8/16位数据总线、8个中断申请、16个I/O基地址选择等许多特性,在本设计中选用8位数据总线。网卡控制器与以太网是不能直接相连的,中间要通过网络隔离变压器才能连接到以太网上。网络隔离变压器的作用是隔直通交,避免双绞线上的直流电平干扰芯片RTL8019AS的工作点;同时,利用变压器自身的通频带限制高频干扰。 

3 系统软件设计 

    系统软件设计主要包括客户端和服务器端软件的设计,在TCP/IP网络应用中,通信的两个进程之间相互作用的主要模式是客户模式和服务器模式[7-8]。在面向连接的TCP协议中,服务器和客户机开始通信之前必须首先建立连接。在连接之前,服务器程序必须正在运行并处于监听模式,等待客户端的连接。TCP的连接是通过三次握手协议来完成的。同样,终止一条TCP连接实际上也是三次握手。 

3.1 初始化  

    整个系统的初始化工作主要包括:串口及串口缓冲区初始化,定时器初始化,初始化PING表、ARP表,初始化TCP,RTL8019AS的初始化等。 

    RTL8019AS的初始化主要包括网卡的复位和网卡寄存器的初始化。复位方式有硬件复位和软件复位两种,本模块所采用的是硬件复位方式,使RTL8019AS的硬件复位引脚RSTDRV与单片机的P1.6相连,单片机向P1.6脚输出大于800ns的高电平,完成RTL8019AS的硬件复位。 

3.2 数据包的发送和接收 

    数据包的发送过程包括三个步骤:主处理器将数据包按照RTL8019AS发送数据帧格式进行封装;封装完后通过远程DMA通道将数据包送到RTL8019AS的发送缓冲区;最后通过本地DMA将数据送到FIFO,通过设置寄存器CR启动发送。RTL8019AS完成上一帧的发送,再开始下一帧的发送。发送前需要设置以太网目的地址、以太网源地址、协议类型,再按所设置的协议类型来设置数据段。为提高发送效率,将12页的发送缓存区分为两个6页的发送缓存区,一个用于数据包发送,另一个用于构造发送端的数据包,交替使用。  

    接收数据是通过本地DMA 从网卡接口接收,RTL8019AS对接收到的数据包通过MAC比较、CRC校验,由FIFO存到网卡接收缓冲区,收满一帧后以寄存器标志方式通知主处理器,主处理器通过远程DMA将缓冲区的数据读到自己的内存中。帧的接收工作是由网卡自动完成的,当网卡接收到一帧数据并存入内存后,就会开始对这帧数据进行处理, 具体处理步骤如图4所示。 

 

 

4 实验用例 

4.1 实验环境 

    应用VB开发的接口小程序[9],设置网卡的配置参数并实现数据的发送与接收;在完成串口数据到以太网数据转发的过程中,RTL8019AS具有10Mb/s的传输率,远远高于原有系统的串口传输率,可以很好地满足检测数据的传输要求,而且运行稳定。 

4.2实验内容 

4.2.1修改系统参数 

    用串口线把系统中的TCP/IP模块与电脑连接起来,选择好串口号,然后按“连接单片机”按钮,当连接状态工具栏里出现“已经连接”,说明与电脑已经连接上,然后就可以修改配置参数了。在参数设置栏中填写正确的参数值后,按“设定”按钮,接收状态栏中会提示参数设置成功,然后按模块上的复位键,网卡的参数配置就被写到了X5045中。参数设置界面如图5所示。所有配置参数(包括本地IP地址、服务器端IP地址、端口号" title="端口号">端口号、网卡物理地址、ping的IP地址、串口号等)都能通过串口动态地更改。 

 

 

    串口波特率是通过硬件上跳线完成的,串口波特率支持300b/s、600b/s、1 200b/s、2 400b/s、4 800b/s、9 600b/s、19 200b/s。 

4.2.2 计算机模拟测试 

    如果系统中的TCP/IP模块为TCP客户端,则图6所示的程序就作为服务器端使用,在主机端口号(这里设置端口号为3330,要与客户端所设端口号一致)中输入要监听的端口号,设置好端口号后按“开启主机”按钮进入监听状态, 模块会每隔1秒钟连接一次该服务器程序,直到连上为止,如果超过10次都没有连上,则放弃连接。 

 

 

    如果系统中的TCP/IP模块作为TCP服务器端,则图7所示的程序就作为客户端使用,在连接端口号(这里设置端口号为3330,要与服务器端监听的端口号一致)中输入要连接的服务器端的端口号,设置好端口号后再设置要连接的IP地址(为服务器端的IP地址),然后按“连接主机”按钮直到提示成功登录通信系统为止,连接期间模块作为服务器端一直处于监听状态。 

 

 

    连接上以后就可以进行正常的数据收发了,检测现场工作人员不仅可以通过以太网远程控制机动车检测,还可以将检测到的烟度、废气等数据通过以太网传送到各个部门。 

    本文实现了一种总线设备网络化改造的可行方案,并解决了数据包的超时重发、定时保活、参数配置、硬件看门狗复位等一系列问题。实验表明,整套程序已经比较稳定,收发数据正常,TCP超时重传效果很好。经过四周,每天连续12个小时的测试,没有出现任何丢包和堵塞的现象,设备实际运行状态正常,目前已经投入到北京部分机动车检测现场使用。 

参考文献 

[1] 张飞舟,邓旭明,王豪.嵌入式工业以太网接口开发与应用.计算机工程,2003,29(16):154-156,194. 

[2] 尚晨旭,邢化锋,柴燕,等.用单片机实现以太网卡通信的设计. 电子工程师,2006,32(2):53-54,57. 

[3] 陈翠,田捷,王金刚.嵌入式软件开发技术[M]. 北京:国防工业出版社,2003. 

[4] 马忠梅,籍顺心,张凯,等.单片机C语言应用程序设计[M]. 第3版.北京: 北京航空航天大学出版社, 2006. 

[5] 刘云卿.机动车检测复合推进式控制方法及其系统:中国,1664541[P]. 2005-09-07. 

[6] RTL8019AS specification. Realtek Semi-conductor CO.Ltd., 1999. 

[7] COMER D E. 用TCP/IP进行网际互连(第1卷,第2卷). 北京: 电子工业出版社,1998.  

[8] 周明天,汪文勇.TCP/IP网络原理与技术.北京:清华大学出版社,1994. 

[9] 郑阿奇,曹戈.Visual Basic 实用教程.北京:电子工业出版社, 2003.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。