CAN总线网络拓扑在烟花燃放控制系统中的研究

| 浏览次数:

摘要:利用ARM S3C2440微控制器、网络通信技术和嵌入式技术设计烟花燃放控制电路。在该系统中应用CAN总线实现了下位机和CAN点火器的网络拓扑设计,实现网络上各个节点的监控和信号的传输。

关键词:S3C2440;MCP2510;通信协议;下位机

中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)16-3804-03

Application Research of CAN Bus Network Topology in Fireworks Display Control System

HAN Jin-ke, ZHAO Yuan-li

(Measuring and Testing Technologies and Instruments Physical Engineering College, Zhengzhou University, Zhengzhou 450001, China)

Abstract: The design of a fireworks display control circuit is based on the ARM S3C2440 controller、the CAN bus communication technology and Embedded Technology.In this system,the application of the CAN bus accomplish the hypogyny-computer and CAN ignition of network topology,realization of each node monitoring and signal transmission.

Key words: S3C2440; MCP2510; communication protocal; hypogynycomputer

近年来,随着工业控制的智能化和网络化,烟花控制设备的发展也从当初的手工点火发展到了现在的程控点火控制,从速度和安全性上都有了很大的提高。但是随着经济的发展和人们欣赏水平的提高,更重要的是企业竞争的不断加剧,各企业之间的设备更新和改进步伐不断的加快,是的现代烟花控制呈现百家争鸣的势头。

为了满足控制设备的高容错性、高可靠性、实时性和安全性的要求,在大中型烟花控制设备中多采用了高速的处理芯片和通信上可靠的、稳定的CAN控制器。CAN总线是一种有效支持分布式控制或适时控制的串行控制网络,网络传输距离可达10km,最大通信速率可达1Mbps.CAN 的节点数主要取决于总线驱动电路,目前可达110个。在标准帧报文标示符有11位,而在扩展帧的报文标示符(29位)的个数几乎不受限制。以CAN总线网络拓扑树形结构为基础,扩展下位机与点火器,可适用于不同规模的烟花燃放控制。目前国内研制人员尤其关注CAN总线在烟花燃放控制系统上的应用。

1 CAN网络拓扑方案

目前在数据通信,计算机网络和分布式控制中,经常用RS-232、RS-485等串行通信接口标准进行数据传送和接收。但从通信距离,通信可靠性和通信的可拓展性上都不能满足烟花控制系统的需求。以现在应用比较广泛的RS-485接口标准为例,在功能上与现场总线有下列不同特点。

① 通信距离

RS-485最大的通信距离为1219m,最大的通信传送速率为10M/S,传送距离与传送速率成反比,在100Kb/S的通信距离下,才可以达到最大的通信距离,如果需要加长距离,需要加485中继器。

CAN现场总线的最大传送距离是10Km,数据通信速率为1Mb/S,在远距离通信上它比RS-485通信有显著的优势。

② 通信的可靠性

在RS-485网络中当出现多节点同时向总线发送数据时,易导致总线呈现短路,从而损坏某些节点,影响到网路上其他节点的正常工作,甚至使整个系统瘫痪。

CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,能够保证不会出现象在网络中因个别节点出现问题,使得总线处于“死锁”状态。并且CAN总线的检错和纠错机制强。发送信息损坏自动重发,用独特的非破坏总线仲裁技术,有CRC及其它校验。

③ 通信的可扩展性

RS-485只能构成的主从结构的系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差。

CAN总线是多主机结构的系统,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。

在烟花控制系统中,一般通信的距离都在300M---1000M,但随着经济,科技和人民群众的欣赏品味不断提高,市场对更大型的烟花燃放需求也在加大,每年的各种庆祝活动规模不断变大,特别是2008年的奥运和2009年国庆出现大型动画烟花,无论是在形式上还是在点火速率上都对传统的烟花燃放提出了新的要求。采用CAN网络拓扑中的树形结构方案可有效的解决上述问题。

图1为CAN网络树型结构拓扑图。可以看出,CAN树型网络结构是一种主从结构的网络拓扑,它有效的利用了CAN总线分布式控[2]制使得现场烟花点火器的摆放更加灵活,可以满足不同规模,不同图形,不同类型的烟花燃放需求。

2 系统硬件结构原理图

系统硬件结构主要分为:烟花燃放主控制器,CAN点火控制器。

2.1 烟花燃放主控制器

烟花燃放主控制器包括:主控制器(s3c2440)、音频输入和输出(UDA1341TS)、以太网模块(DM900新片和RJ45) 、SD存储卡、液晶显示模块、USB模块、CAN模块(mcp2510控制器)以及FLASH存储器(SST39VF1601和K9F1G08)和SDRAM (HY57V561620FTP)。

在控制器的选择上考虑到成本以及功能的前提下,选择内置接口功能丰富的控制器,将为系统设计带来很大的方便,可减少外围的器件,同时降低硬件设计难度。本文选择了基于32位ARM体系结构的微控制器组建整个系统。S3C2440是一款功能强大的,接口丰富,功耗较低的微处理器。它有两路SPI接口,USB主接口,LCD控制器提供一通道专用DMA,IIS-BUS音频编解码接口,兼容SD主接口协议1.0,支持NAND FLASH存储器启动,S3C2440的SPI接口与MCP2510的SPI接口可以直接相连,设计电路简单,控制容易实现。

2.2 CAN点火控制器

CAN点火控制器:由不带SPI接口的单片机AT89C51,MCP2510控制器,光电隔离器,多路分配器CD4514以及总线收发器TJA1050等组成。AT89C51的P1口作为地址编码口,多外部编码器读得到此CAN点火器的设定地址。P0口作为点火信号的输出口控制CD4514多路输出,从而有选择的对点火装置选通。P2口的0到3口作为MCP2510的控制端口和数据接收发送端口,完成对上层控制机数据通信,数据接收采用中断方式,以便提高信号的实时性。

2.3 下位机

下位机硬件电路图与CAN点火器硬件电路基本相同,只是P2口的4到7口连接第二个CAN接口部分,它的作用是实现与CAN点火控制器的通信,同样也是利用中断方式。

3 系统软件部分

系统采用linux 2..6.32内核作为平台,使用第三方提供的bootloader程序supervivi,它基于三星原来的 bootloader 之 vivi 改进而来,名为 Supervivi,它采用功能菜单的方式。系统中有NOR FLASH和NAND FLASH这两种存储器件,通常我们将supervivi利用JTAG烧写进NOR FLASH,然后利用它的菜单模式对NAND FLASH进行烧写,方便了程序的开发。针对本系统的软件开发过程:①利于JTAG接口烧写supervivi到NOR FLASH中。②在supervivi菜单选择对NAND FLASH的擦写,利用DNW.EXE超级终端完成将supervivi,内核代码,根文件系统以此下载到NAND FLASH中。选择从NAND FLASH启动系统,系统流程图如图4所示。

3.1 CAN通信协议

当前在市场上应用较多两个应用层协议是:DeviceNet协议和CANOpeIl协议。DeviceNet协议主要应用于工业自动化控制。CANopen协议主要应用在产品部件内部的嵌入式网络,在汽车、医疗仪器以及船舶运输等领域均有广泛的应用。但是DeviceNet和CANopen协议规范比较复杂,理解和开发的难度比较大,对于可靠性和实时通信能力要求较高的但对网络控制功能要求并不复杂的监控系统来讲,DeviceNet协议和CANOpen协议不太适合。因此有必要设计一种简单可靠实时性好的CAN高层协议,以适合于实时烟花控制领域的CAN总线控制网络[3]。

CAN报文的内容包括报文标示符和报文数据两大部分。CAN报文标识符决定了报文相关的优先权和报文的等待时间,报文标识符分配被认为是基于CANBUS系统的主要结构元素。报文的接受和滤波也是根据报文的分配来进行合理组织和有效的滤波。CAN报文的两种类型一种是标准型,具有11个标示符;一种是扩展型,具有29个标示符。根据系统是实际需求总线节点不超过100个,因此我们选择标准型的报文标示符。

在使用报文表示符之前必须先定义,标准报文标示符有:帧起始、仲裁域、控制域、数据域、CRC域、ACK域、域结尾组成。CAN协议报文定义了 CAN报文的 11位标识符以及最多 8个字节数据的使用和功能含义。下面分别对报文的标识符和数据字节的定义进行分析[1]。

图5中的报文标识符1D10---ID0定义如下。

1) ID10有两种作用,既可以表示报文的优先级,也可以表示类型。ID10为0时表示高优先级,作为点火控制信号;ID10为1时表示是要传送数据以及点火控制类型。

2) ID9---ID3表示下位机地址节点。7位标示符可以表示127个地址,根据需要编码可达100个地址。

3) ID2---ID0表示功能字段。点火功能分为单一点火、多点齐发点火、任意下位机多点齐发点火以及点火情况回报。

4) DATA 0---7表示发送的数据。根据需要将偶数字段作为点火控制器地址,奇数段作为点火端口控制数据。

3.2 CAN驱动程序中的重要结构体

根据对驱动程序的读写控制需要设计一个can_id结构体,实现应用程序与驱动程序的数据传送。

typedef struct {

unsigned char nod_dcl;

unsigned char data [8];

unsignedint hypogynycomputer _id;

unsignedint command_flag;

}can_message;

该结构体的nod_dcl表示要传送的数据个数,由用户输入点火控制器的地址和点火数据存放于data[]中,偶地址放点火器点火器地址码,奇地址存放点端口地址。hypogynycompute_id表示下位机can消息的id号,command_flag是表示点火数据的执行方式。

由于烟花燃放过程中要考虑点火速度和上升时间的因素,需要设计一个uptime结构体,以定义燃放时的各种延时时间。

typedefstruct{

unsigned char number;

unsignedint up_time;

unsigned int fuse_time;

unsigned int effect_time;

}uptime;

该结构体中number表示所发送报文序列标号,up_time 表示烟花上升时间,fuse_time表示点火时间,effect_time表示燃放效果时间。实际应用中影响燃放时间的因数比较多,该结构体列出主要影响对象。

在驱动程序重要的结构体music_list,定义存储结构

typedefstruct {

unsigned int music_name;

can_message canid_list;

untime uptime_list;

music_list *music_list_next;

}music_list;

在以音乐为背景的烟花燃放系统,是在音乐开始的时候,伴随着音乐的高低起伏,燃放烟花。在不同时间点上发送不同的报文数据,此结构体以链表的形式储存在数据存储器中,在需要以音乐为背景燃放是通过music_name得到文件名对应某个音乐文件,candi_list是报文发送的命令和数据结构体,untime_list是燃放时间延迟。

在用户应用程序中,can_message、uptime、music_list结构体通过write()函数将数据写到内核空间,内核驱动程序将can_message以链表的形式存储,通过read()读出数据返回到用户空间,以便查询链表数据。

在内核驱动程序中的重要数据结构体s3c2440_fops其功能是实现CAN总线驱动程序在linux系统中的各种操作。

static struct file_operations s3c44b0_fops = {

owner:THIS_MODULE,

write:s3c2440_mcp2510_write,

read:s3c2440_mcp2510_read,

ioctl:s3c2440_mcp2510_ioctl,

open:s3c2440_mcp2510_open,

release:s3c2440_mcp2510_release,

};

在liunx系统中对字符设备和块设备是通过虚拟文件系统来完成的,虚拟文件系统的主体file_operations[5]数据结构体实际上是一个函数指针集合,将编写完成的CAN总线驱动程序入口地址赋予相应函数指针,对CAN控制器的各种操作都是通过此结构体来进行。

其成员体s3c2440_mcp2510_open 负责对将要进行的 I/O操作做好必要的准备工作, 清空 3 个发送缓冲区和 2 个接收缓冲区等。s3c2440_mcp2510_release 负责 CAN 设备关闭时的操作,s3c2440_mcp2510_ioctl 负责 CAN 主要完成设置工作模式、 设备滤波器、总线波特率等工作,s3c2440_mcp2510_write 负责处理 CAN 总线数据的id设置、执行功能和相关数据的发送,s3c2440_mcp2510_read 负责处理 CAN 总线数据读取[4]。

4 结束语

以S3C2440微控制器作为核心应用CAN总线,实现了以音乐为背景的烟花燃放控制系统的设计。硬件电路采用模块化设计,CAN总线网络拓扑简单、直观、层次清晰。实验表明嵌入式CAN总线传送数据可靠,抗干扰强。该系统允许用户根据实际需求对系统功能进行裁剪,对燃放规模进行合理的控制,具有实际的应用价值。以ARM和Linux为平台,摒弃以单片机作为系统的核心中央处理器和软件上的前后台运行方式,采用先进的嵌入式处理器和严格保证实时响应的嵌入式实时操作系统,对烟花燃放系统的发展具有重要意义。

参考文献:

[1] 贺永玲.基于CAN总线的电动汽车故障诊断系统研究[D].广东:广东工业大学,2009.

[2] 薛敏.基于CAN总线的分布式测控系统的设计与研究[D].武汉:武汉理工大学,2005.

[3] 刘辉,李文雄,刘明生.嵌入式实时系统CAN通信软件设计方案[J].计算机仿真,2008,25(4):139-141.

[4] 沈湛.基于基于S3C2440的CAN总线接口设计与驱动实现[J].电子元器件应用,2009,11(7):30-32.

[5] 宋宝华.Linux设备驱动开发详解[M].北京:人民邮电出版社,2008.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

推荐访问: 拓扑 燃放 总线 控制系统 烟花

【CAN总线网络拓扑在烟花燃放控制系统中的研究】相关推荐

工作总结最新推荐

NEW
  • XX委高度重视党校的建设和发展,出台《创建全省一流州市党校(行政学院)实施方案》及系列人才培养政策,为党校人才队伍建设提供了有力的政策支撑。州委党校在省委党校的悉心指导下、州委的正确领导下,深入贯彻落

  • 为推动“不忘初心、牢记使命”主题教育常态化,树牢“清新简约、务本责实、实干兴洛”作风导向,打造忠诚干净担当、敢于善于斗争的执纪执法铁军,经县纪委常委会会议研究,决定在全县纪检监察系统开展“转变作风工作

  • 为进一步发展壮大农村集体经济,增强村级发展活力,按照中共XXX市委抓党建促乡村振兴工作领导小组《关于印发全面抓党建促乡村振兴四个工作计划的通知》要求,工作队与村“两委”结合本村实际,共同研究谋划xx村

  • 今年来,我区围绕“产城融合美丽XX”总体目标,按照“城在林中,水在城中,山水相连,林水相依”以及“城乡一体、景城一体、园城一体”的建设思路,强力推进城市基础设施建设、棚户区改造、房地产开发和城市风貌塑

  • 同志们:新冠疫情发生至今已有近三年时间。三年来,在广大干群的共同努力下,我们坚决打好疫情防控阻击战,集团公司范围内未发生一起确诊病例,疫情防控工作取得了阶段性胜利。当前国际疫情仍在扩散蔓延,国内疫情多

  • 我是毕业于XX大学的定向选调生,当初怀着奉献家乡、服务人民的初心回到XX,在市委的关心关爱下,获得了这个与青年为友的宝贵历练机会。一年感悟如下。一要对党忠诚,做政治坚定的擎旗手。习近平总书记指出,优秀

  • 同志们:今天召开这个会议,主要任务是深入学习贯彻习近平总书记重要指示批示精神,以及李克强总理批示要求,认真落实全国安全生产电视电话会议和全省、全市安全生产电视电话会议精神,研究我县安全生产和安全隐患大

  • 2022年市委政研室机关党的建设工作的总体要求是:坚持以XXX新时代中国特色社会主义思想为指导,全面贯彻党的XX届X中X会和省、市第十二次党代会精神,自觉运用党的百年奋斗历史经验,弘扬伟大建党精神,深

  • 同志们:今天,我们在这里召开市直机关基层党建示范点工作会议,一方面是对各示范点单位进行表彰授牌,另一方面是想通过这种会议交流的方式,给大家提供一个相互学习、取长补短的平台和机会。市直工委历来把创建基层

  • 新冠疫情暴发以来,学校党委坚决贯彻习近平总书记关于疫情防控工作的指示要求和党中央的决策部署,严格执行×××部、×××厅关于疫情防控的系列要求,认真落实驻地防疫部门的工作举措,继承发扬优良传统,以最高标