基于CAN总线的交通信号控制节点设计
- 格式:pdf
- 大小:439.13 KB
- 文档页数:6
基于CAN总线的交通信号控制节点设计Design of Traffic Signal Control Node Base on CAN BUSAbstract: 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总线的智能交通控制系统设计作者:夏长权佟国栋朱金荣韩东利来源:《现代电子技术》2018年第15期摘要:为了进一步提高十字路口的车辆通行效率,提出基于CAN总线的智能交通控制系统设计方案。
该系统包括硬件控制模块、车流量采集模块、上位机软件等部分。
其中硬件控制模块由主控模块、驱动模块、硬件黄闪模块等组成。
主控模块负责协调调度各个模块之间的工作;驱动模块负责驱动路口的信号灯及故障检测;车流量采集模块负责采集排队车流量数据,为智能配时提供数据支持。
主控模块与驱动模块之间采用CAN总线通信,通信速率高、可靠性好。
调试结果表明,该控制系统能够根据车流量智能调节车辆通行时间,提高车辆通行效率。
关键词:智能交通; CAN总线;车流量采集;信息通信;远程控制;通行效率中图分类号: TN876⁃34; TP29 文献标识码: A 文章编号: 1004⁃373X(2018)15⁃0137⁃04Design of intelligent traffic system based on CAN busXIA Changquan, TONG Guodong, ZHU Jinrong, HAN Dongli(School of Physical Science & Technology, Yangzhou University, Yangzhou 225002,China)Abstract: The design scheme of intelligent traffic control system based on CAN bus is put forward to further improve the traffic efficiency of the crossroads. The system includes hardware control module, traffic flow acquisition module, PC software and other components. The hardware control module is composed of main control module, driving module and hardware yellow flashing module. The main control module is responsible for coordinating the operation among the various modules. The driving module is responsible for driving the signal lights and fault detection of the intersection. The traffic flow acquisition module is responsible for collecting the queuing traffic flow data to provide the data support for the intelligent time matching. The CAN bus communication is adopted between the main control module and driving module, which has fast communication speed and high reliability. The debugging results show that the control system can adjust the vehicle traffic time according to the traffic flow intelligently, and improve the vehicle traffic efficiency.Keywords: intelligent traffic; CAN bus; traffic flow acquisition; information communication; remote control; traffic efficiency近年来,随着机动车辆日益增长,越来越多的城市出现了交通拥堵的现像[1]。
第22卷第4期2008年5月山东理工大学学报(自然科学版)Journal of Shandong University of Technology(Natural Science Edition)Vol.22No.4J ul.2008文章编号:1672-6197(2008)04-0064-04基于CAN总线的车载网络节点设计李玉明,宋帅坤(山东理工大学交通与车辆工程学院,山东淄博255049)摘 要:设计了汽车上CAN通讯的高速与低速网络拓扑结构,并对网络节点进行了优先级编码,对其中单个节点进行了基于CAN控制器SJ A1000的智能节点硬件电路及软件设计.关键词:汽车;网络结点设计;CAN总线;优先级编码中图分类号:U463.341文献标识码:AThe net2node design of vehicle based on CAN busL I Yu2ming,SON G Shuai2kun(School of Traffic and Vehicle Engineering,Shandong University of Technology,Zibo255049,China)Abstract:A general network topology of vehicle CAN communication was designed and t he prior2 ity codes of every node in t he network were compiled.Based on t he SJ A1000controller,t he hard2 ware and t he software of t he smart node are int roduced.K ey w ords:vehicle;net2node design;CAN field2bus;priority coding 控制器局域网CAN(Cont roller Area Net2 work)总线作为一种可靠性高、价格低廉、技术成熟的现场总线,在国内外得到了广泛的应用.在汽车行业,CAN总线更是以其优异的性能成为汽车局域网的发展趋势.1 CAN总线特点控制器局域网络(CAN)是德国Robert Bosch 公司在20世纪80年代初为解决现代汽车中众多控制单元和测试仪器之间的实时数据交换而开发的一种串行数据通信总线.具有高的保密性,是一种能有效支持分布式控制或实时控制的串行通信网络. CAN具有如下特点[1]:1)CAN是到目前为止唯一有国际标准的现场总线.2)CAN总线为多主工作方式,即网络上的任一节点均可在任意时刻主动地向其他节点发送信息,不分主从,方式灵活.3)在报文标识符上,CAN上的节点分成不同的优先级,可以满足不同的实时性要求,优先级高的数据可在134μs内得到传输.4)采用非破坏性的总线仲裁技术,多点同时发送信息时,按优先级顺序通信,节省了总线冲突仲裁时间.尤其是在网络负载很重的情况下,也不会出现网络瘫痪情况(以太网则可能).5)CAN节点只需通过对报文的滤波即可实现点对点、一点对多点和全局广播方式传送接收数据.6)CAN的直接通信距离最远可达10km(速率5kbp s以下),通信速率最高可达1Mbp s(此时通信距离最长为40m).7)通信介质可采用双绞线、同轴电缆或光纤,选择灵活,结构简单,易于维护,经济性好.8)CAN上的节点数主要取决于总线驱动电路,目前可达110个.标准报文标识符有11位,而扩展报文标志符有29位,其驱动电路的个数几乎不受限制.收稿日期:20080108作者简介:李玉明(1982),女,硕士研究生. 9)报文采用短帧结构,传输时间短,受干扰概率低,保证了数据出错率低.10)CAN的每帧信息都有CRC校验及其它检错措施,具有极好的检错效果.CAN节点在错误严重的情况下具有自动关闭输出的功能,以使总线上其它节点的操作不受影响.2 CAN协议工作原理主机通过设置通信对象描述字中的“发送请求”位来请求发送一条消息,当“发送请求”位置位时,且检测到“总线空闲”,通信控制器将开始发送消息.如果有多个节点要同时发送消息,则这些节点在检测到“信道空闲”时就会同时发送“帧起始位”.在接下来的仲裁阶段,每个控制器都会发送它的标识符,具有最高优先权的消息会赢得仲裁继续发送.接收节点在其通信对象的数据字中储存数据,通过设置控制位,接收控制器会向主机发送一个“收到消息”的中断.对收到的消息进行CRC校验之后,接收控制器把第2个ACK位设为显性,表示正确接收了消息.这样,发送端就知道至少有一个节点正确接收到消息[2].各控制器数据帧发送和接收采用中断方式和查询方式.一般来说,查询方式会占用更多的系统资源,使系统的运行速度减慢.对于接收数据,通常采用中断方式实现,一旦中断发生,即将接收的数据自动装载到相应的报文寄存器中,利用屏蔽滤波寄存器,有选择地逐位比较接收报文的标识符,只有标识符匹配的报文才能进入接收缓冲器.对于发送数据,通常采取周期性的发送,根据系统实时性的要求和数据传送的重要程度,确定发送的周期,以保证数据能够及时得到处理.3 车用CAN通讯网络拓扑结构及优先级编码3.1 车用通讯网络拓扑结构车用通讯网络拓朴结构如图1所示,其中VMS为整车控制器,EMS为发动机控制系统,ABS为车辆制动系统控制器,AMT为手动—自动变速箱控制器,EPS 为助力转向系统.EMS,ABS,AMT,EPS等构成了高速CAN网络,通讯速度设定为500kbps.图1中,BODY为车身控制器(包括中央门锁和车窗等的控制),IP为显示仪表控制器以显示车速、挡位等信息,SEAT为座椅控制器,LIGHT为车灯控制器,这几个控制器构成了低速CAN总线网络.高速和低速CAN的通讯通过VMS网桥进行高速低速网络之间的信息交换.3.2 网络节点优先级编码对其中一个节点的电路、报文发送、接收等进行设计,车用网络拓扑结构中各节点编码见表1.图1 车载网络拓扑表1 优先级编码表参数组符号参数组描述优先级数据页PF PS SA参数组数码P GN数据字节PDU编码EMS发动机控制3000010B0000008300C010B ABS制动器控制300F030A0000018303F030A AM T变速器控制3001040B00FF0018300D440B EPS转向控制3001060400F0058300D0604 BOD Y车身控制300F050300F0038303F0503B IP显示600F050300F0048603F0503 SEA T座椅控制6001020400F0038600D0204 L IGA T灯光控制600F030400F0068603F0304由编码表1可知,依据二进制标识符的大小确定各节点的优先级,优先级从高到低依次为:发动机控制、转向控制、变速器控制、制动器控制、车身控制、座椅控制、灯光控制、显示等.4 CAN节点硬件电路及软件结构设计4.1 硬件电路设计车用网络节点数为8个,现在仅对其中一个节点进行设计.单智能节点设计总电路图如图2所示.56第4期 李玉明,等:基于CAN总线的车载网络节点设计4.2 软件设计CAN 总线节点的设计主要包括三大部分:CA控制器初始化、报文发送和报文接收.4.2.1 CAN 控制器的初始化SJ A1000的初始化只有在复位模式下才可以进行.初始化主要包括工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器AMR和接收代码寄存器图2 总电路图ACR 的设置、波特率参数设置和中断允许寄存器IER 的设置等.在完成S J A1000的初始化设置后,S J A1000就可以回到工作状态,进行正常的通信任务.CAN 控制器SJ A1000在正式收发信号之前必须进行初始化设置.而S J A1000的功能设置项较多,极易出错,因此把SJ A1000控制器的初始化过程作为一个重要环节[3],其流程图如图3所示.4.2.2 CAN 总线上数据的发送和接收发送子程序负责节点报文的发送.发送时用户只需将待发送的数据按特定格式组合成一帧报文,送入S J A1000发送缓冲区中,然后启动SJ A1000发送即可.当然在向S J A1000发送缓存区送报文之前,必须先做一些判断.发送数据采用查询控制方式[4],将新信息放进发送缓冲器之前主控制器必须检查状态寄存器中的发送缓冲器状态标志TBS :当发送缓冲器被锁定,定期查询状态寄存器,主控制器等待,直到发送缓冲器被释放;当发送缓冲器被释放,主控制器将新信息写入发送缓冲器,并置位命令寄存器中的发送请求TR.标志,此时S J A1000将启图3 S J A1000初始化流程图动发送.发送信息查询控制流程如图4所示.接收子程序负责节点报文的接收以及其他情况66山东理工大学学报(自然科学版)2008年 的处理.接收子程序比发送子程序要复杂一些,因为在处理接受报文的过程中,同时要对诸如总线脱离、错误报警、接收溢出等情况进行处理.S J A1000保文的接收主要有两种方式:中断接收方式和查询接收方式.如果对通信的实时性要求不强,建议采用查询接收方式.两种接收方式编程的思路基本相同.接收数据如果采用中断方式,根据CAN 协议规定,信息的接收由CAN 控制器SJ A1000独立完成.如果SJ A1000已接收一条信息,这条信息已通过验收滤波器且已放在接收FIFO 中,那么会产生一个接收中断.因此,主控制器能立刻起作用,将接收到的信息送到信息存储器,然后通过对命令寄存器的相应图4 发送信息查询控制流程图标志RRB 置位,释放接收缓冲器.本设计采用中断方式接收[4],中断接收流程图如图5所示.图5 接收信息中断控制流程图5 结束语本文对CAN 总线通信原理和总线数据接收、发送进行了详细的研究,提出了汽车网络拓扑中单智能节点的设计方案,进行了车载网络CAN 总线优先级编码,为车载CAN 总线开发设计奠定了基础.参考文献:[1]饶运涛,邹继军.现场总线CAN 原理与应用技术[M ].北京:北京航空航天大学出版社,2003.[2]宋雪桦,孔缝.汽车发动机电控单元高速CAN 通讯模块研制[J ].计算机工程与设计,2006,27(9):158821590.[3]欧德翔,汪至中.基于CAN 总线分布式控制系统智能节点的设计[J ].现场总线技术,2002,(5):19221.[4]Zhu Yuan ,Wu Hao ,Tian Guangyu.Cont rol and communicationnetwork in hybrid fuel cell vehicles [J ].Tsing Hua science and technology ,2004,9(3):3452350.76第4期 李玉明,等:基于CAN 总线的车载网络节点设计。
基于CAN总线的交通信号控制节点设计Design of Traffic Signal Control Node Base on CAN BUSAbstract: 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级的优先级定义能力,可根据交通信号控制系统的实际情况,对重要的通信帧定义相应比较高的优先级。