CAN总线的双机冗余系统设计.docx
- 文档编号:5246479
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:16
- 大小:152.54KB
CAN总线的双机冗余系统设计.docx
《CAN总线的双机冗余系统设计.docx》由会员分享,可在线阅读,更多相关《CAN总线的双机冗余系统设计.docx(16页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAN 总线 双机 冗余 系统 设计