资源描述
课程设计(论文)任务及评语
院(系):电气工程学院 教研室:自动化
学 号
学生姓名
专业班级
课程设计(论文)题目
CAN总线双机冗余系统设计
课程设计(论文)任务
课题完成功效、设计任务及要求、技术参数
实现功效
CAN总线双机冗余系统设计,使在出现故障时能自动切换,确保系统安全、稳定运行。设计硬件包含总线控制器、总线收发器及ATMEL系列单片机及切换逻辑等。软件采取汇编语言或C语言,并调试和分析。
设计任务及要求
1、确定设计方案,画出方案框图。
2、冗余系统硬件设计,包含元器件选择。
3、画出硬件原理图。
4、绘出程序步骤图,并编写初始化、接收及发送程序。
5、要求认真独立完成所要求全部内容;所设计内容要求正确、合理。
6、按学校要求格式,撰写、打印设计说明书一份;设计说明书应在4000字以上。
技术参数
1、符合CAN2.0B规范;
2、40米内最高可达1Mbit/s;(设计选定传输速率为125K bit/s)
3、可扩充110个节点;
进度计划
1、部署任务,查阅资料,确定系统设计方案(2天)
2、系统硬件设计及模块选择(3天)
3、系统软件设计及编写功效程序及调试(3天)
4、撰写、打印设计说明书(1天)
5、验收及答辩。(1天)
指导老师评语及成绩
平时: 论文质量: 答辩:
总成绩: 指导老师签字:
年 月 日
注:成绩:平时20% 论文质量60% 答辩20% 以百分制计算
摘 要
CAN总线高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展热点之一,被誉为自动化领域计算机局域网。它出现为分布式控制系统实现各节点之间实时、可靠数据通信提供了强有力技术支持。
伴随功效强大单片机在控制领域应用不停深入,容错控制系统也在不停地发展,在部分特定场所下,如在航空航天、军事、铁路、石油、化工、电力等关键部门和在恶劣工作环境下工作计算机控制系统,对系统安全性、可靠性、可用性要求更高。双冗余系统两个模块同时实施一样操作,在其中一个模块出现故障时候,能够自动判定切换,以确保系统稳定、可靠、不间断工作。双冗余系统不仅有较高可靠性,而且有很高安全性,所以在控制领域中可广泛应用。
关键词:CAN总线;单片机;双冗余系统;
目 录
第1章 绪论 1
1.1 CAN总线发展 1
1.2 CAN通信特点 1
1.3 CAN总线应用 2
第2章 课程设计方案 3
2.1 系统整体结构 3
2.2系统设计方案选择 4
2.2.1主控机选择 4
2.2.2现场总线收发器选择 4
2.2.3现场总线控制器选择 5
第3章 系统硬件设计 6
3.1单片机最小系统设计 6
3.2总线控制器设计 7
3.3总线收发器设计 8
3.4总体连接图 9
第4章 软件设计 10
4.1 主程序步骤图 10
4.2接收中止服务程序步骤图 11
4.3系统程序 13
第5章 课程设计总结 16
参考文件 17
第1章 绪论
1.1 CAN总线发展
CAN (Controller Area Network) 是现场总线一个,即控制器局域网,CAN 是一个有效支持分布式控制或实时控制串行通信网络,是由德国Bosch 企业为汽车监测和控制系统而设计, 现在 CAN总线规范已被国际标准化组织 ISO 制订为国际标准 ISO11898,并得到了 Motorola,Intel,Philips 等大半导体器件生产厂家支持,快速推出多种集成有 CAN 协议产品,用于汽车内部检测部件和实施部件间数据通讯。但 随 着 时 间 发 展 ,其应用范围已不再局限于汽车工业,仅在中国,其应用已遍布过程控制、机械工业、智能建筑、智能电器、化学工业、码头货运、分布管理等领域,而且得到了快速发展。CAN总线已形成国际标准,并已被公认为多个最有前途现场总线之一 。
1.2 CAN通信特点
和其它同类技术相比,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.3 CAN总线应用
伴随汽车电子技术发展,消费者对于汽车功效要求越来越多,汽车上所用电控单元不停增多,电控单元之间信息交换需求,使得电子装置之间通讯越来越复杂,同时意味着需要更多连接信号线,这就促进了车用总线技术发展。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单片机关键特征有以下几点:
l低电源电压范围:1.8~3.6V.
l超低功耗:2.5 @ 4KHz,2.2V;280 @ 1MHz,2.2V。
l5种节电模式:LPM0~LPM4,其中LPM4耗电最省,仅为0.1。
l从等候方法唤醒,时间小于6。
l16位RISC结构,125ns指令周期。
l基础时钟模块配置:高速晶体(最高8MHz);低速晶体(32KHz);数字控制振荡器DCO。
l配合外部期间可组成单斜边A/D转换器。
l12位200kspsA/D转换器,自带采样保持。
l内部温度传感器。
l含有3个捕捉/比较寄存器16位定时器Timer_A,Timer_B。
l两通道串行通信接口可用于异步或同时模式。
l6个8位并行端口,且2个8位端口有中止能力。
l硬件乘法器。
l多达60KB Flash和2KB RAM。
l串行在系统编程。
l保密熔丝程序代码保护。
单片机最小系统是指单片机能正常工作所必需外围元件,关键可分成复位电路和时钟电路。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初始化程序:
void init_can()large
{unsigned int data i;
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 <c8051f340.h>
#include <INTRINS.H>
#include "s.h"
sbit led1 = P2^0;
sbit led2 = P2^1;
sbit SDA = P2^2;
sbit SCL = P2^3;
sbit J1 = P3^0;
sbit J2 = P3^1;
sbit st1 = P0^4;
sbit ALE_CAN = P0^0;
sbit RD_CAN = P0^1;
sbit INT_CAN = P0^2;
sbit CS_CAN = P0^3;
sbit WR_CAN = P2^7;
#define WriteDeviceAddress 0xa0 //地址和读写方向,本设备中只有一个IIC设备地址为0
#define ReadDviceAddress 0xa1
#define uchar unsigned char
#define uint unsigned int
#define nop _nop_
uchar c1[16]={0X00,0X01,0X02,0X03,0X04,0X05,0X06,0X07,0X08,0X09,0X0a,0X0b,0X0c,
0X0d,0X0e,0X0f};
uchar c2[16];
uchar c3[8] ={0X00,0X01,0X02,0X03,0X04,0X05,0X06,0X07};
unsigned int idata MaxLenCanRxBuf=440;
unsigned char xdata CanRxBuf[440];
unsigned char idata CanTempBuf[11];
unsigned char idata CanTxData[8];
unsigned char data_flag=0;
unsigned int idata CanRxAddr=0;
unsigned char CanRxcompleteFlag=0;
unsigned char idata cfgbuf[32];
unsigned char SendBufId[2]={0x07,0x20};
unsigned char SendBufInfo;
unsigned int xdata mSendDelay=0;
unsigned char *h_pointer;
unsigned char *l_pointer;
unsigned char i=0;
unsigned char j=0;
uint LedFlag1=0;
第5章 课程设计总结
经过了大约一周课程设计,最终完成了CAN总线双机冗余系统设计,即使系统还有很多不足,但我从中学到了很多东西,我知道了怎样依据单片机连接线路图。此次课程设计包含到了很多框图和步骤图设计,我经过学习Visio这个绘图软件很好完成了图纸设计。
此次课程设计我经过查阅大量资料,经过分析思索将有用部分应用到了论文之中,刚开始对双机冗余概念完全不知道是怎么回事,经过查阅资料已经有了整体上了解。即使在今年工业控制网络这门课中学习了CAN总线,但我对此了解并不深入,这次我已经掌握了大多部分。最关键是学到了论文格式怎样写,论文Word排版怎样做,这是平时所练习不到。
经过此次课程设计,使我愈加扎实掌握了相关单片机和总线方面知识。在设计过程中即使碰到了部分问题,但经过一次又一次思索,一遍又一遍检验最终找出了原因所在,也暴露出了前期我在这方面知识欠缺和经验不足。我认为,在这学期课程设计中,我不仅培养了独立思索、动手操作能力,在多种其它能力上也全部有了提升。更关键是,在课设中,我学到了总线应用和双冗余系统设计。而这是以后最实用,真是受益匪浅。
参考文件
[1] 阳宪惠.现场总线技术及其应用[M].清华大学出版社,
[2] 周明.现场总线控制[M].中国电力出版社,
[3] 梁清华,赵越岭,戴永彬,郭栋.工业控制网络技术试验教程[M].沈阳:东北大学出版社..
[4] James A.Rehg.Glenn.Sartori.可编程逻辑控制器[J].北京:电子工业出版社,.8,196-298
[5] 陈正义.单片机控制实习[M].北京:人民邮电出版社,.3-90.
[6] 吉雷:《Protel99从入门到精通》,西安电子科技大学出版社,.10
[7] 郭永贞.电子技术试验和课程设计指导模拟电路分册[M].南京:东南大学出版社,.34-39.
[8] 孙立辉,原亮.单片机和嵌入式系统应用合订本(7~12)[M].
[9] 西华大学老师.电子技术试验指导书[M].成全部:西华大学电工电子试验实习中心,.105-188.
[10] 褚南峰.电工技术试验及课程设计[M].北京:中国电力出版社,.166-168.
[11] 邹季军.现场总线CAN原理和应用技术[M].北京:北京航空航天大学出版社,
[12] 李凤阁,佟为明.电气控制和可编程控制器应用技术[M].北京:机械工业出版社,
展开阅读全文