基于CAN总线的交通信号控制节点设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于CAN总线的交通信号控制节点设计
Design of Traffic Signal Control Node Base on CAN BUS
Abstract: The traffic signal control machine, as a kind traffic signal equipment, plays a important role in improving the traffic capacity of the road and cutting down a traffic accident. With the development of the intelligent traffic, it is very import to construct a kind of traffic signal control node based on the field bus technology, so, the work theory and its hardware electric circuit of a traffic signal control node based on A T89C51 is discussed, its CAN communication protocol and flow are pointed out, with this, the monitor and control node can effectively controls all traffic nodes by the CAN interface.
Key words: CAN BUS; Traffic; Field-Bus
摘要:交通信号机作为一种重要交通信号装置,对于提高道路通行能力,减少交通事故有明显效果。
随着智能交通技术的发展,构建现场总线标准的交通信号控制节点显得很有必要,围绕符合CAN总线标准的交通信号控制节点设计,讨论了基于A T89C51单片机控制的交通信号控制节点的工作原理及其硬件电路设计,给出了CAN总线通信协议和通信流程,使监控站能够有效地通过CAN接口控制交通信号控制节点的工作状态。
关键字:CAN总线;交通;现场总线
1 引言
随着经济发展,城市交通拥挤状况也日益恶化,交通问题已成为城市建设和发展的主要制约因素,交通信号系统对调节城市交通秩序的作用越来越重要。
在现有交通信号控制系统设计中,绝大部分是独立的控制节点,彼此之间难以协调工作和管理,交通状况异常时必须人为介入,费时费力;部分网络化节点大都是通过串行总线标准RS232或RS485与上位监控中心组成交通管理网络系统,存在通讯距离短,抗干扰能力小,系统扩展困难等缺点,针对已有系统存在的不足,研究和开发新型的交通信号控制节点显得很有必要。
2 CAN总线及特点
CAN (Controller Area Network)总线,又称控制器局域网[1,2],是Bosch公司在现代汽车技术中领先推出的一种多主机局域网,现已广泛应用于工业现场控制、交通工具等众多领域,CAN总线规范已被ISO国际标准组织制订为国际标准。
同RS232或RS485等串行总线技术相比,CAN总线具有如下一些典型特点:
(1)CAN为多主方式工作,节点信息分成不同的优先级,网络上任一节点均可在任意时刻主动地向网络上其他节点发送信息,可满足不同的实时要求。
(2)CAN上节点数可达110个,通讯介质可为双绞线、同轴电缆或光纤,可灵活选择,直接通信距离最远可达10km(速率5Kbit/s以下),通信速率最高可达1Mbit/s。
(3)CAN采用长、短帧结构,每帧信息都有CRC校验及其他检错措施,数据出错率极,传输时间短,
只需通过报文滤波即可实现点对点、全局广播等几种方式传输数据。
(4)CAN采用非破坏性总线仲裁技术,节省总线冲突仲裁时间,CAN节点在错误严重的情况下具有自动关闭输出功能。
在现场总线应用系统中,节点作为网络上信息的接收和发送站,占有至关重要的地位,如何设计符合CAN 总线规范的交通信号控制节点,是能否构建CAN总线交通信息控制系统的关键所在,也是城市智能交通技术日益发展发展的需要。
3 节点设计方案
3.1 总体方案
CAN总线交通信号控制节点具有现场交通信号控制、通行时间显示及CAN总线通信等功能,可通过CAN 总线与上位监控站和其他交通信号控制节点传送状态和各种参数,并接受来自监控站的控制信息以调整和改变自身的控制状态,其系统总体设计方案如图1所示。
该CAN交通信号控制节点以ATMEL公司的AT89C51为核心,为了实现CAN总线通信功能,采用CAN 通信控制器SJA1000和CAN总线接口电路PCA82C50组成CAN通信电路,节点中主要功能单元有:A T89C51单片机、SJA1000 CAN总线控制器、PCA82C50总线驱动器、显示模块、计时模块和键盘模块。
微控制器A T89C51的I/O分配原则是:P0口连接SJA1000的AD0~AD7;P1口用于驱动相应的交通信号标志;P2口用于键盘、显示、辅助控制位;P3口用于CAN控制器的读、写和中断信号等。
单个交通信号控制节点的主要工作过程如下:节点微控制器A T89C51和CAN通讯控制器在上电复位,初始化后,A T89C51对交通信号标志和倒计时显示进行控制;当监控节点发出命令和数据要求控制节点报告自身的控制参数和数据时,A T89C51根据命令将相应的数据送入CAN控制器的发送缓冲区,并启动CAN控制器完成数据的发送;当监控节点需要修改节点控制参数,则直接将相应的命令和数据发至总线上,CAN控制器接收命令和数据并使节点工作状态做相应的改变。
为了完成上述应用任务,需要制定出特定的CAN通信应用协议,在交通信号控制系统的通信过程中,根据不同的标示符来区分不同控制命令以便完成任务。
3.2 CAN总线通信接口硬件设计
在CAN总线通信接口[3]中,主要由PLILIPS公司的CAN控制器SJA1000、CAN驱动器PCA82C250等来实现CAN通信功能,SJA1000 CAN控制器主要完成A T89C51与CAN总线之间的数据传输,CAN驱动器PCA82C250主要为CAN总线的数据传输提供物理保证,微控制器A T89C51负责对SJA1000的初始化,通过控制SJA1000实现数据的接收和发送等通信任务,考虑到减小干扰对通信的影响,在SJA1000和PCA82C50之间采用了6N137构成的光电隔离电路。
SJA1000是一种独立的CAN控制器,增加了支持CAN2.0B协议的PeliCAN模式,适合用于一般工业环境中的区域网络控制;PCA82C250芯片是CAN协议控制器和物理总线间的接口,为总线提供差动发送能力,对CAN控制器提供差动接收能力,能够满足高速数据通信的要求。
CAN总线通信硬件电路图如图2所示,电路主要由四部分构成:微控制器A T89C51、独立CAN通信控制器SJA1000、CAN总线收发器PCA82C250和高速光电耦合器6N137。
CAN总线控制器SJA1000的AD0~AD7连接到A T89C51单片机的P0口;CAN控制器和微控制器内部各自都有时钟产生电路,为了避免时钟输入驱动能力不够或错误所造成的SJA1000不工作,特别采用了双晶振方案;SJA1000的片选端CS连接到A T89C51的P2.7,当P2.7为1时,A T89C51片外存储器地址可选中SJA1000,AT89C51可通过相应地址对SJA1000执行读/写操作;SJA1000的中断输出信号INT接到A T89C51的INT0中断,通过中断方式实现单片机与CAN控制器的通信;为了使CAN控制器和微控制器能同时可靠的复位,外加了按键手动复位电路,A T89C51是高电平复位,SJA1000是低电平复位,复位信号要通过一个反相器与SJA1000的复位端相连;SJA1000的RD、WR、ALE分别与A T89C51的对应引脚相连。
为了增强CAN总线交通控制节点的抗干扰能力[4],节点电路中SJA1000的TX0与RX0引脚通过高速光隔6N137后才与PCA82C250相连接,用于实现总线上各CAN节点间的电气隔离;同时,在PCA82C250与节点端口之间,PCA82C250的CANH和CANL引脚通过一个120欧的限流电阻与CAN总线相连,保护CAN 驱动器PCA82C250免受过流的冲击。
3.3 通信协议
CAN总线协议是建立在国际标准化组织开放系统互连模型(OSI)基础上的,其模型结构只有物理层、数据链路层和应用层等3层。
在CAN 2.0规范标准中,只对物理层和数据链路层进行了规定,没有定义应用层,用户需要根据需求制定应用层协议。
在交通信号控制系统中,CAN总线上传输的信息主要可分为以下5类[5]:
(1)控制信息:上位监控节点发送给控制节点,如各节点初始化、自检命令等信息。
(2)数据信息:控制节点工作数据信息,如交通信号机设置模式、交通通行时间等。
(3)状态信息:控制节点执行完控制命令后,向上位监控节点发送的反馈结果。
(4)广播信息:由上位监控节点发送至所有交通信号控制节点。
(5)紧急信息:由上位监控节点发送至特定交通信号控制节点,如出现紧急情况需要该信号控制节点调整工作模式等,此信息具有不定时、高优先级等特点。
CAN协议通讯格式中有四种帧格式:数据帧、远程帧、出错帧和超载帧。
数据帧和远程帧的发送需要在控制器控制下进行,而出错帧和超载帧发送是在错误发生或超载发生时自动进行的。
本节点设计中,在CAN 2.0扩展帧格式的基础上,以数据帧为主,根据需求特点制定了一个相应的应用层协议,协议中,将29位信息标识符按表1进行分配[6]。
ID28-ID25为数据帧类型,可代表16种不同的数据帧类型,根据数据信息种类,目前只用了5种,其中0001代表控制信息,0010代表数据信息,0011代表状态信息,0100代表广播信息,0101代表紧急信息,其他留做扩充之用。
ID24为多帧符,代表多帧传输(1)或单帧传输(0)。
ID23-ID19为多帧序列号,代表在多帧传输情况下各帧的标号,5位可存放32个帧标号。
CAN帧数据域可包含8个字节,采用多帧传输时,可提供长度为256个字节数据传输能力,能够满足现场的需求。
ID18-ID12为帧接收目的地址,代表该帧传输应该到达的目的节点,考虑到系统的扩充性和驱动能力,采用了7位来编制总线节点的地址,地址范围为0-127,可以满足CAN总线最大110个节点的驱动能力;与之对应的是ID11-ID5为帧发送地址,同样为7位。
ID4-ID0为帧优先级,为帧传送提供了5位32级的优先级定义能力,可根据交通信号控制系统的实际情况,对重要的通信帧定义相应比较高的优先级。
3.4 节点软件设计
交通信号控制节点的软件设计大体可以分为三个部分:一部分为节点初始化,其中包括单片机的初始化和CAN控制器的初始化;二部分为节点实际要完成的交通信号控制功能;三部分为实现CAN数据通信功能:包括数据的发送和接收。
限于篇幅,只着重介绍CAN通信模块的软件设计:初始化、数据的接收和发送。
系统上电后,通过CAN总线完成通信的主要工作[1,3]为:
(1)节点根据SJA1000的硬件和软件连接设置控制器
(2)节点根据选择的模式、验收滤波、位定时等设置CAN控制器的通讯。
(3)节点准备要发送的报文并激活SJA1000发送报文。
(4)节点处理接收CAN控制器接收报文。
CAN通信模块初始化程序主要是通过CAN控制器SJA1000控制段中的寄存器写入控制字,从而确定CAN 控制器的工作方式等,有三种方式进入初始化程序:一是上电复位;二是硬件复位;三是软件复位,在运行期间通过给CAN控制器发一个复位请求,置复位请求位为1。
为了顺利实现CAN通信功能,必须初始化的寄存器有接收代码寄存器ACR、屏蔽寄存器AMR、总线定时寄存器BTR和输出控制寄存器OCR等,控制字的具体代码依赖与选定的工作模式。
接收子程序负责节点报文的接收,节点工作于中断方式下,CAN控制器的接收中断以及和SJA1000通讯主控制器的外部中断开放。
若CAN控制器SJA1000已接收到一个报文,而且报文经过验收滤波器并放入接收缓冲区中,则产生一个接收中断,微控制器AT89C51响应接收,将收到的报文接收并保存在存储器中,再通过置位命令寄存器的相应标志发送一个释放缓冲器命令,释放缓冲区,再接收下一帧,数据接收流程如图3
所示。
类似的,发送子程序负责节点报文的发送,将被发送的数据按协议中的数据格式组合成一帧报文,主控制器AT89C51检查CAN控制器SJA1000状态寄存器的“发送缓冲器状态”标志后,再送到CAN控制器SJA1000的发送缓冲区,置位命令寄存器的“发送请求”标志,发出相应的中断请求,启动发送命令即可顺利实现数据的发送,数据发送流程如图4所示。
4 结论
基于CAN总线的交通信号控制节点在数据传输速率最高可达1Mbit/s,误码率低,当单个节点出现严重错误时,可自动脱离总线而整个系统不受影响。
在实验中,该节点设计方案是可行的,具有操作简便、实时性强、扩展灵活、纠检错能力强等特点,可广泛应用于分布式交通监控系统中。
本文创新之处在于:针对传统交通信号控制系统存在的不足和智能交通发展的需求,对符合CAN总线规范的交通信号控制节点设计进行了研究,提出了相应的硬件、软件和通信协议解决方案,对于交通监控领域CAN总线控制节点设计有着较好的借鉴作用。
参考文献:
[1] 邬宽明.CAN 总线原理和应用设计[M].北京:北京航空航天大学出版社,1996.
[2] 饶运涛.现场总线CAN 原理与应用技术[M]. 北京:北京航空航天大学出版社,2003.
[3] 周凤余等.CAN 总线智能节点的设计和实现[J]. 微计算机信息,1999,(6):9—10.
[4] 蒋建文等.智能型CAN总线测控节点的研究[J]. 仪器仪表学报,2001,22(3):282-283.
[5] 杨晓华,侯巍,王树新等.基于CAN总线的水下机器人执行节点设计与实现[J].海洋技术,
2005,24(4):15-17.
[6] 陈春艳,曾超.基于CAN总线的某通信系统应用层协议的设计与实现[J].电子工程师,2006,32(3):14-17.
作者简介:
李伟(1976-)(联系人),男,汉族,四川人,重庆交通大学计算机与信息学院,讲师,研究方向:智能控制与知识工程。
Email:lwsccn@
联系方式:重庆市九龙坡区西郊二村桃源佳景58-8-4 邮编:400051
张长元(1984-),男,汉族,山东人,重庆交通大学计算机与信息学院,本科生,研究方向:电子信息技术。