CAN总线的双机冗余系统设计.docx

上传人:b****6 文档编号:5246479 上传时间:2022-12-14 格式:DOCX 页数:16 大小:152.54KB
下载 相关 举报
CAN总线的双机冗余系统设计.docx_第1页
第1页 / 共16页
CAN总线的双机冗余系统设计.docx_第2页
第2页 / 共16页
CAN总线的双机冗余系统设计.docx_第3页
第3页 / 共16页
CAN总线的双机冗余系统设计.docx_第4页
第4页 / 共16页
CAN总线的双机冗余系统设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

CAN总线的双机冗余系统设计.docx

《CAN总线的双机冗余系统设计.docx》由会员分享,可在线阅读,更多相关《CAN总线的双机冗余系统设计.docx(16页珍藏版)》请在冰豆网上搜索。

CAN总线的双机冗余系统设计.docx

CAN总线的双机冗余系统设计

课程设计(论文)任务及评语

院(系):

电气工程学院教研室:

自动化

学号

学生姓名

专业班级

课程设计(论文)题目

CAN总线的双机冗余系统设计

课程设计(论文)任务

课题完成的功能、设计任务及要求、技术参数

实现功能

CAN总线的双机冗余系统设计,使在出现故障时能自动切换,保证系统安全、稳定运行。

设计硬件包括总线控制器、总线收发器及ATMEL系列单片机及切换逻辑等。

软件采用汇编语言或C语言,并调试与分析。

设计任务及要求

1、确定设计方案,画出方案框图。

2、冗余系统硬件设计,包括元器件选择。

3、画出硬件原理图。

4、绘出程序流程图,并编写初始化、接收及发送程序。

5、要求认真独立完成所规定的全部内容;所设计的内容要求正确、合理。

6、按学校规定的格式,撰写、打印设计说明书一份;设计说明书应在4000字以上。

技术参数

1、符合CAN2.0B规范;

2、40米内最高可达1Mbit/s;(设计选定传输速率为125Kbit/s)

3、可扩充110个节点;

进度计划

1、布置任务,查阅资料,确定系统设计方案(2天)

2、系统硬件设计及模块选择(3天)

3、系统软件设计及编写功能程序及调试(3天)

4、撰写、打印设计说明书(1天)

5、验收及答辩。

(1天)

指导教师评语及成绩

 

平时:

论文质量:

答辩:

总成绩:

指导教师签字:

年月日

注:

成绩:

平时20%论文质量60%答辩20%以百分制计算

摘要

CAN总线的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。

现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。

它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。

随着功能强大的单片机在控制领域应用的不断深入,容错控制系统也在不断地发展,在一些特定的场合下,如在航空航天、军事、铁路、石油、化工、电力等重要部门和在恶劣工作环境下工作的计算机控制系统,对系统安全性、可靠性、可用性的要求更高。

双冗余系统的两个模块同时执行一样的操作,在其中一个模块出现故障的时候,可以自动判断切换,以保证系统稳定、可靠、不间断的工作。

双冗余系统不仅有较高的可靠性,而且有很高的安全性,因此在控制领域中可广泛应用。

关键词:

CAN总线;单片机;双冗余系统;

第1章绪论

1.1CAN总线的发展

CAN(ControllerAreaNetwork)是现场总线的一种,即控制器局域网,CAN是一种有效支持分布式控制或实时控制的串行通信网络,是由德国Bosch公司为汽车的监测和控制系统而设计的,目前CAN总线规范已被国际标准化组织ISO制订为国际标准ISO11898,并得到了Motorola,Intel,Philips等大半导体器件生产厂家的支持,迅速推出各种集成有CAN协议的产品,用于汽车内部检测部件与执行部件间的数据通讯。

但随着时间的发展,其应用范围已不再局限于汽车工业,仅在国内,其应用已遍及过程控制、机械工业、智能建筑、智能电器、化学工业、码头货运、分布管理等领域,并且得到了快速发展。

CAN总线已形成国际标准,并已被公认为几种最有前途的现场总线之一。

1.2CAN通信特点

与其它同类技术相比,CAN在可靠性、实时性、和灵活性方面具有独特的技术优势,其主要技术特点为:

(1)CAN总线上任一节点均可在任意时刻主动地向其它节点发起通信,节点不分主从,通信方式灵活。

(2)可将CAN总线上的节点信息,按对实时性要求的紧急程度,分成不同优先级,最高优先级的数据可在最多134µs内得到传输,以满足控制信息的通信要求。

(3)CAN采用载波监听堕落访问、逐位仲裁的非破坏性总线仲裁技术。

一是先听再讲,二是当多个节点同时向总线发送报文而引起冲突时,优先级较低的节点会主动地退出发送,而最高优先级的节点可不受影响的继续传输数据,从而大大的节省了总线冲突仲裁时间。

(4)CAN的直接通信距离最远可达10Km(速率5Kb/s以下);通信速率最高可达1Mbps(此时通信距离最长为40m)。

(5)CAN上的节点数主要决定于总线驱动电路,目前可达110个,报文标示符可达2032种(CAN2.0A),而扩展标准(CAN2.0B)的报文标识符几乎不受限制。

(6)采用短帧结构,传输时间短,受干扰概率低,具有极好的检错效果。

(7)CAN节点中均设有出错检测、标定和自检的强有力措施。

出错检测的措施包括发送自检、循环冗余码检验、位填充和报文格式检查。

因而数据出错率低。

(8)CAN总线的通信介质可为双绞线、同轴电缆或光线,选择灵活。

1.3CAN总线的应用

随着汽车电子技术的发展,消费者对于汽车功能的要求越来越多,汽车上所用的电控单元不断增多,电控单元之间信息交换的需求,使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线,这就促进了车用总线技术的发展。

CAN总线的出现,就是为了减少不断增加的信号线,所有的外围器件都可以被连接到总线上由于CAN总线具有可靠性高、实时性好、成本合理等优点,逐渐被应用于如船舶、航天、工业测控、自动化、电力系统、楼宇监控等其他领域中。

电量采集及计量系统是一个较新的领域,涉及的专业多,系统管理的计量点数量庞大。

系统包括数十个变电站,数百多个计量点,应用最先进的计算机网络通信和控制技术,采用分层、分布、开放型结构,充分考虑了系统功能的全面性、实用性,实现变电站电能量的自动采集、传输、存储、分析、计费、管理、监控和WEB发布功能。

目前在局域网上的用户通过IE浏览器即可浏览该系统采集的各厂站的电能量数据;可了解到每天各市各县的供电量;可全面掌握电子式电能表的各种运行参数;可了解到各厂站每天的母线不平衡率、主变线损、全站线损情况。

同时该系统可与全市的大用户负荷管理系统接口,可进一步了解到各联络线线损和专线线损情况。

系统通过当地移动通讯部门,将手机卡安装在用户端加装的电量采集终端内,利用无线通讯技术和网络,随时采集用户计费表的表码、电流、电压、功率、失压记录等各种运行数据,实现了远程自动抄表、数据对比分析。

如果用户端有窃电行为,预设的报警功能可及时提醒。

 

第2章课程设计的方案

2.1系统整体结构

本系统以MSP430F149单片机作为主控机,设计了一种基于CAN总线的双机冗余系统的设计方案,防止在其中一套系统出现故障时,另一套系统能立即启动,代替工作。

总体结构是通过单片机连接总线控制器、总线收发器、总线切换器,进行数据传递并控制工作。

本方案以MSP430F149单片机作为主控核心,与CAN总线控制器SJA1000完成通信协议。

CAN总线收发器TJA1050、总线切换器、总线控制器等模块组成核心主控制模块。

总线切换器进行主站从站工作的切换,使当系统发生故障时,冗余配置的部件介入并承担故障部件的工作,由此减少系统的故障时间。

系统设计的总体方框图如图2.1所示。

 

图2.1为总体框图

 

2.2系统设计方案选择

根据上述系统要求,本系统应由主控制器、现场总线收发器、现场总线控制器、上位机等几部分组成。

主控机和执行器的选型关系到系统的实用性、经济性和可靠性等方面,因此器件的选型显得尤为重要。

下面依次对各个组成部分进行选择。

2.2.1主控机的选择

常用的主控机是方案一中的单片机,但本次课程设计,考虑到节约成本,方便简单等方面的综合因素,选用方案二中的单片机作为主控制器。

考虑到本系统程序部分较大,而且要求经济实用,处理速度快,综合考虑选择方案二。

方案一:

采用AT89C51单片机作为主控制器,AT89C51片内存储器采用闪速存储器,使程序写入更方便;芯片尺寸小,使整个硬件电路更小。

此外价格低廉、性能比较稳定,CPU具有8K⨯8ROM、256⨯8RAM、2个16位定时计数器、4个8位I/O接口。

AT89C51是一种低功耗、低电压、高性能的8位单片机。

方案二:

采用MSP430F149单片机作为主控机。

MSP430F149具有低成本和超低功耗的特点,闪存高达16KB,具有通用串行通讯接口和10位ADC,处理速度极快。

MSP430F149是一种16位处理器单片机,与8位单片机相比占绝对优势。

2.2.2现场总线收发器选择

总线的一个非常重要的特点是它对多通信介质的支持。

CAN总线可以根据不同的现场环境选择不同的收发器和介质。

在本次课程设计中,要求总线连接110个节点,速率达到1Mbps,但是由于TJA1050在待机模式下关闭发送器和过热保护等更加完善的功能,所以本次课程设计中的现场总线收发器,选择方案一,即TJA1050总线收发器。

 

方案一:

TJA1050收发器。

TJA1050收发器是Philips公司生产的、用以替代PCA82C250的高速的CAN总线收发器。

该器件提供了CAN控制器与物理总线之间的接口以及对CAN总线的差动发送和接收功能。

TJA1050与ISO11898标准完全兼容,具有过热保护,总线与电源及地之间的有短路保护功能。

方案二:

PCA82C250/251收发器。

PCA82C250/251收发器是协议控制器和物理传输线路之间的接口。

此期间对总线提供差动发送能力,对CAN控制器提供差动接收能力,可以在汽车和一般的工业应用上使用。

PCA82C250/251收发器完全符合ISO11898标准高速率,最高可达到1Mbps,可连接110个节点,工作温度范围为-40~125℃。

2.2.3现场总线控制器选择

按照本次课程设计的具体要求,并且考虑到成本以及安全性能,本次课程设计的总线控制器选择方案一,即SJA1000控制器。

方案一:

82C200总线控制器。

有PAC82C200和PCF82C200两种类型。

前者的使用温度范围为-40~+125℃,适用于汽车及某些军用领域;后者适用于一般工业领域,温度范围是-40~80℃。

82C200具有完成高性能通信协议所要求的必要特性。

通过简单地连接即可完成CAN总线协议物理层和数据链路层的所以功能,应用层由微控制器完成。

方案二:

SJA1000总线控制器。

SJA1000是一种独立控制器,用于汽车和一般工业环境中的局域网络控制。

它是Philips公司的PCA82C200CAN的替代产品。

而且,它增加了新的工作模式,并且这种模式支持具有很多新特点的CAN2.0B协议。

按照本次课程设计的具体要求,并且考虑到成本以及安全性能,本次课程设计的总线控制器选择方案一,即SJA1000控制器。

 

第3章系统硬件设计

3.1单片机最小系统设计

MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗单片机,其中包括一系列部件,它们由MSP430单片机的CPU,以及针对不同的应用而提供的外围模块组成。

MSP430F149具有低成本和超低功耗的特点,闪存高达16KB,具有通用串行通讯接口和10位ADC,处理速度极快。

MSP430F149是一种16位处理器单片机,与8位单片机相比占绝对优势。

MSP430系列单片机具有16位RISC结构,运算能力较强,并具有丰富的片内外设,具有非常广泛的应用范围。

MSP430F149单片机的主要特性有以下几点:

●低电源电压范围:

1.8~3.6V.

●超低功耗:

2.5

@4KHz,2.2V;280

@1MHz,2.2V。

●5种节电模式:

LPM0~LPM4,其中LPM4耗电最省,仅为0.1

●从等待方式唤醒,时间小于6

●16位RISC结构,125ns指令周期。

●基本时钟模块配置:

高速晶体(最高8MHz);低速晶体(32KHz);数字控制振荡器DCO。

●配合外部期间可构成单斜边A/D转换器。

●12位200ksps的A/D转换器,自带采样保持。

●内部温度传感器。

●具有3个捕获/比较寄存器的16位定时器Timer_A,Timer_B。

●两通道串行通信接口可用于异步或同步模式。

●6个8位并行端口,且2个8位端口有中断能力。

●硬件乘法器。

●多达60KBFlash和2KBRAM。

●串行在系统编程。

●保密熔丝的程序代码保护。

单片机的最小系统是指单片机能正常工作所必须的外围元件,主要可分成复位电路和时钟电路。

MSP430F149单片机最小系统如图3.1所示。

 

 

图3.1为单片机最小系统

3.2总线控制器设计

SJA1000总线控制器是一种独立控制器,用于汽车和一般工业环境中的局域网络控制。

它是Philips公司的PCA82C200CAN的替代产品。

而且,它增加了新的工作模式,并且这种模式支持具有很多新特点的CAN2.0B协议。

SJA1000的控制模块由接口管理逻辑,发送缓冲器,接收缓冲器,验收滤波器,位流处理器位时序逻辑,错误管理逻辑等部分组成。

其SJA1000接口电路如图3.2所示。

 

图3.2为SJA100控制器

3.3总线收发器设计

TJA1050收发器是Philips公司生产的、用以替代PCA82C250的高速的CAN总线收发器。

该器件提供了CAN控制器与物理总线之间的接口以及对CAN总线的差动发送和接收功能。

TJA1050与ISO11898标准完全兼容,具有过热保护,总线与电源及地之间的有短路保护功能。

引脚S用于选定TJA1050的工作模式。

有两种工作模式可供选择:

高速和静音。

如果引脚S接地,则TJA1050进入高速模式。

当S端悬空,其默认工作模式也是高速模式。

高速模式也是TJA1050的正常工作模式。

如果引脚S接高电平,则TJA1050进入静音模式,在这种模式下,发送器被关闭,器件的所有其它部分仍继续工作。

该模式可以防止由于CAN控制器失控而造成网络阻塞。

TJA1050接口电路如图3.3所示。

 

图3.3为TJA1050接口电路

 

3.4总体连接图

如图3.4为器件总体连接图,其中的连线在protel中可以用网络标号代替,更加简洁明了。

 

图3.4为总体连接图

 

第4章软件设计

4.1主程序流程图

如图4.1为主程序流程图。

系统开始复位后,MSP430单片机初始化,开始正常工作后,如果出现故障,则立刻进行冗余切换。

当遇到中断时,马上去处理中断,然后再继续执行任务。

 

如图4.1为主程序流程图

 

4.2接收中断服务程序流程图

单片机初始化完成后,在总线上发送询问帧,若有主机在运行,则置当前机为主机。

获得三总线的控制权和使用权。

若两机同时接受到信号,则根据CAN总线仲裁协议,其中一个回去的优先权,使它的询问帧发送成功。

若发送询问帧后无反应,则认为出现故障。

如图4.2。

 

 

图4.2接收中断服务程序流程图

单片机初始化完成后,在总线上发送询问帧,若有主机在运行,则置当前机为主机。

获得三总线的控制权和使用权。

若两机同时接受到信号,则根据CAN总线仲裁协议,其中一个回去的优先权,使它的询问帧发送成功。

若发送询问帧后无反应,则认为出现故障。

 

4.3系统程序

CAN初始化程序:

voidinit_can()large

{unsignedintdatai;

for(i=0;i<512;i++)

{_nop_()}

con_reg=ox41;

for(i=0;i<512;i++)

{_nop_()}

cpu_inter_reg=ox41;

clk_out_reg=ox30;

bus_config_reg=0;

g_m_s_reg0=oxff;

g_m_s_reg1=ox1f;

g_m_e_reg0=oxff;

g_m_e_reg1=oxff;

g_m_e_reg2=oxff;

g_e_s_reg3=oxff;

m15_m_reg0=oxff;

m15_m_reg1=ox1f;

m15_m_reg2=oxff;

m15_m_reg3=oxff;

tim0_reg=ox87;

tim1_reg=oxc8;

mesg_reg10=ox55;

mesg_reg20=ox55;

mesg_reg30=ox55;

mesg_reg40=ox55;

mesg_reg50=ox55;

mesg_reg60=ox55;

mesg_reg70=ox55;

mesg_reg80=ox55;

mesg_reg90=ox55;

mesg_rega0=ox55;

mesg_regb0=ox55;

mesg_regc0=ox55;

mesg_regd0=ox55;

mesg_rege0=ox55;

mesg_regf0=ox55;

mesg_reg16=ox88;

mesg_reg12=oxf3;

mesg_reg13=0;

mesg_reg14=0;

mesg_reg15=0;

mesg_reg10=ox95;

mesg_reg26=ox80;

mesg_reg22=oxf0;

mesg_reg24=0;

mesg_reg25=0;

mesg_reg21=ox55;

mesg_reg20=ox99;

mesg_regf6=ox80;

mesg_regf1=ox55;

mesg_regf0=ox99;

con_reg=ox02;

单片机程序如下:

#include

#include

#include"s.h"

sbitled1   =P2^0;

sbitled2   =P2^1;

sbitSDA   =P2^2;

sbitSCL   =P2^3;

sbitJ1    =P3^0;

sbitJ2    =P3^1;

sbitst1   =P0^4;

sbitALE_CAN=P0^0;

sbitRD_CAN  =P0^1;

sbitINT_CAN=P0^2;

sbitCS_CAN  =P0^3;

sbitWR_CAN  =P2^7;

#defineWriteDeviceAddress0xa0//地址以及读写方向,本设备中只有一个IIC设备地址为0

#defineReadDviceAddress0xa1

#defineucharunsignedchar

#defineuintunsignedint

#definenop_nop_

ucharc1[16]={0X00,0X01,0X02,0X03,0X04,0X05,0X06,0X07,0X08,0X09,0X0a,0X0b,0X0c,

0X0d,0X0e,0X0f};

ucharc2[16];

ucharc3[8]={0X00,0X01,0X02,0X03,0X04,0X05,0X06,0X07};

unsignedintidataMaxLenCanRxBuf=440;

unsignedcharxdataCanRxBuf[440];   

unsignedcharidataCanTempBuf[11];  

unsignedcharidataCanTxData[8];  

unsignedchardata_flag=0;

unsignedintidataCanRxAddr=0;

unsignedcharCanRxcompleteFlag=0;

unsignedcharidatacfgbuf[32];

unsignedcharSendBufId[2]={0x07,0x20};

unsignedcharSendBufInfo;

unsignedintxdatamSendDelay=0;

unsignedchar*h_pointer;

unsignedchar*l_pointer;

unsignedchari=0;

unsignedcharj=0;

uintLedFlag1=0;

第5章课程设计总结

经过了大约一周的课程设计,终于完成了CAN总线的双机冗余系统设计,虽然系统还有许多不足,但我从中学到了许多东西,我知道了如何根据单片机连接线路图。

此次课程设计涉及到了许多框图和流程图的设计,我通过学习Visio这个绘图软件很好的完成了图纸的设计。

此次课程设计我通过查阅大量的资料,经过分析思考将有用的部分应用到了论文之中,刚开始对双机冗余的概念完全不知道是怎么回事,通过查阅资料已经有了整体上的了解。

虽然在今年的工业控制网络这门课中学习了CAN总线,但我对此的了解并不深入,这次我已经掌握了大多部分。

最重要的是学到了论文的格式如何写,论文的Word排版如何做,这是平时所练习不到的。

通过此次课程设计,使我更加扎实的掌握了有关单片机和总线方面的知识。

在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。

我认为,在这学期的课程设计中,我不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。

更重要的是,在课设中,我学到了总线的应用和双冗余系统的设计。

而这是日后最实用的,真的是受益匪浅。

参考文献

[1]阳宪惠.现场总线技术及其应用[M].清华大学出版社,2008

[2]周明.现场总线控制[M].中国电力出版社,2001

[3]梁清华,赵越岭,戴永彬,郭栋.工业控制网络技术实验教程[M].沈阳:

东北大学出版社.2013.

[4]JamesA.Rehg.Glenn.Sartori.可编程逻辑控制器[J].北京:

电子工业出版社,2008.8,196-298

[5]陈正义.单片机控制实习[M].北京:

人民邮电出版社,2006.3-90.

[6]吉雷:

《Protel99从入门到精通》,西安电子科技大学出版社,2000.10

[7]郭永贞.电子技术试验与课程设计指导模拟电路分册[M].南京:

东南大学出版社,2004.34-39.

[8]孙立辉,原亮.单片机与嵌入式系统应用合订本(7~12)[M].2001

[9]西华大学老师.电子技术试验指导书[M].成都:

西华大学电工电子试验实习中心,2009.105-188.

[10]褚南峰.电工技术试验及课程设计[M].北京:

中国电力出版社,2005.166-168.

[11]邹季军.现场总线CAN原理与应用技术[M].北京:

北京航空航天大学出版社,2003

[12]李凤阁,佟为明.电气控制与可编程控制器应用技术[M].北京:

机械工业出版社,2008

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1