基于CAN总线的液位控制装置的设计课程设计论文.docx
《基于CAN总线的液位控制装置的设计课程设计论文.docx》由会员分享,可在线阅读,更多相关《基于CAN总线的液位控制装置的设计课程设计论文.docx(21页珍藏版)》请在冰豆网上搜索。
基于CAN总线的液位控制装置的设计课程设计论文
课程设计(论文)任务及评语
学号
XXXXXX
学生姓名
赵达睿
专业班级
三班
课程设(论文)题目
基于CAN总线的液位控制装置的设计
课程设计(论文)任务
课题完成的功能、设计任务及要求、技术参数
实现功能
基于CAN总线的液位控制器实现通过CAN总线接收控制指令及上传数据、并根据指令进行液位的控制功能。
硬件设计包括CPU选型、CAN总线控制器、CAN总线收发器及液位采集与驱动电路等。
软件采用汇编语言或C语言,并调试与分析。
设计任务及要求
1、确定设计方案,画出方案框图。
2、控制器硬件设计,包括元器件、传感器的选择。
3、画出控制器的原理图。
4、绘出程序流程图,并编写CAN总线初始化、接收及发送程序。
5、要求认真独立完成所规定的全部内容;所设计的内容要求正确、合理。
6、按学校规定的格式,撰写、打印设计说明书一份;设计说明书应在4000字以上。
技术参数
1、CAN总线符合CAN2.0B规范;
2、CAN总线通讯速率500kbit/s;
3、CAN总线进行光电隔离设计;
4、液位控制精度为1%;
5、液位调整阀的驱动电流为±20mA。
进度计划
1、布置任务,查阅资料,确定系统设计方案(2天)
2、系统硬件设计及模块选择(3天)
3、系统软件设计及编写功能程序及调试(3天)
4、撰写、打印设计说明书(1天)
5、验收及答辩。
(1天)
指导教师评语及成绩
平时:
论文质量:
答辩:
总成绩:
指导教师签字:
年月日
院(系):
电气工程学院教研室:
注:
成绩:
平时20%论文质量60%答辩20%以百分制计算
摘要
自20世纪80年代开始,由于微电子计算机、光纤、超声波等高科技的迅猛发展,在液位控制领域出现了种类多样的控制手段,并且其功能越来越完善,各项性能指标越来越易于适应工业生产的要求,趋于自动化、智能化。
本课设主要研究的是基于CAN总线的液位控制,实现通过CAN总线接收控制指令及上传数据、并根据指令进行液位的控制。
硬件设计包括CPU-AT89C51、CAN总线控制器MPC2510、CAN总线收发器PAC82C250及液位变送器CYB31与驱动电路等。
首先由液位变送器产生一个输入信号给A/D转换器ADC0804进行信号转换送入CPU,进行数据处理,然后经由CAN总线控制后由CPU输出信号给D/A转换器DAC0832,然后输出信号作用于控制阀门,直接作用于容器装置,形成一个完整的循环控制系统。
总体的来达到基于CAN总线的液位控制。
基于CAN总线的液位控制技术也因其优点特性而被广泛应用于工业生产过程中。
发展现场总线技术已成为工业自动化领域广为关注的焦点课题,国际上现场总线的研究、开发,使控制系统冲破了长期封闭系统的禁锢,走上开放发展的征程,这对中国现场总线控制系统的发展是个极好的机会,也是一次严峻的挑战。
关键词:
CAN总线;CAN总线控制器;CAN总线收发器
目录
论文内容变化后,右键单击目录区域,选择“更新域”,再选择“更新整个目录”,确定。
第1章绪论1
第2章课程设计的方案2
2.1概述2
2.2系统组成总体结构2
第3章系统硬件设计3
3.1最小系统设计3
3.2液位变送器3
3.3A/D接口电路设计4
3.4D/A接口电路设计5
3.5CAN总线的接口设计5
3.5.1CAN总线的控制器接口设计5
3.5.2CAN总线的收发器接口设计6
3.5.3光电隔离设计7
3.6系统总体电路图7
第4章软件设计9
4.1系统流程框图9
4.2控制程序9
第5章课程设计总结15
参考文献16
第1章绪论
在工业生产过程中,液位往往是很重要的控制参数,常常需要测量容器中液体的液位。
液位测量的目的主要是通过液位测量来确定容器里的原料、半成品或产品的数量,以保证生产过程各环节物料平衡以及为进行经济核算提供可靠的依据。
随着各行业的快速发展,液位测量已应用到越来越多的领域,传统的液位测量手段已经无法满足对其精确性的要求,所以基于CAN总线的液位控制,这种智能化控制方向已经成为一种新的手段被广泛的应用。
主要针对液位数据采集和传输。
以单片机为核心,以CAN协议总线作为数据传输手段,数据采集模块将采集到的数据转换输送到单片机内进行处理,再由单片机通过CAN通讯模块将液位信息数据经CAN总线传输给中心机房的上位机处理,形成基于CAN总线的液位控制系统。
现场总线CAN作为一种工业网络通讯技术,以其独特的设计思想、优良的实时传输性能和极高的可靠性,越来越受到人们的重视。
本设计就是开发一种基于CAN总线的液位控制。
CAN总线,实现液位检测系统与工业数字化信息平台的信息共享,具有良好的发展前景。
第2章
课程设计的方案
概述
随着电子技术、计算机技术和信息技术的发展,工业生产中传统的检测和控制技术发生了根本性的变化。
液位作为化工等许多工业生产中的一个重要参数,其测量和控制效果直接影响到产品的质量,因此液位控制成为过程控制领域中的一个重要的研究方向。
本课设主要研究的是基于CAN总线的液位控制,实现通过CAN总线接收控制指令及上传数据、并根据指令进行液位的控制。
硬件设计包括CPU、CAN总线控制器、CAN总线收发器及液位采集与驱动电路等。
系统组成总体结构
通过对现有元器件进行分析和对所掌握知识的了解,本次设计对所有元器件进行了选择,并对数据采集模块和CAN通讯模块进行了硬件设计。
主要是针对微处理器AT89C51、A/D转换器0804、D/A转换器0832、CAN总线控制器MPC2510和CAN总线收发器PCA82C250的硬件选择和设计。
系统总体结构框图如图2.2。
图2.2系统总体结构框图
第3章系统硬件设计
最小系统设计
AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
为了精确的对系统进行控制,满足控制要求,本设计选用AT89C51可满足控制要求,如图3.1。
图3.1AT89C51
液位变送器
CYB31系列隔离式液位变送器采用进口不锈钢隔离膜片的高精度、高稳定性的力敏芯片,经合理精密的结构设计和厚膜技术温度补偿、信号放大、V/I转换,对不锈钢壳体进行全密封焊接,使用有通风导管的防水电缆,使传感器背压腔与大气连通,从而制成工业标准的4~20mA信号输出且性能稳定可靠的全固态产品。
本设计要求液位控制精度为1%,而CYB31的控制精度可达到0.2%,结合具体情况本系统选用CYB31型液位变送器来进行液位的测量,如图3.2。
图3.2液位变送器
A/D接口电路设计
来自于液位变送器的信号为模拟信号,必须经过A/D转换后才能进入单片机。
A/D转换就是将连续的模拟电压转换成相对应的数字量,输入的电压与输出的数字量有严格的对应关系。
在本次设计中采集模拟信号是使用的转换器是ADC0804,如图3.3,它是典型的八位逐次逼近型A/D转换器。
最多可以允许8位模拟量的输入,借助三位的地址锁存器与译码电路,多路模拟开关可以选择此八路模拟量中的一个,所有的模拟量转换共用一个A/D转换器。
图3.3ADC0804
D/A接口电路设计
来自于CAN总线上的信号经过单片机变成数字信号。
输出的数字信号只有经过D/A转换才能实现模拟量的输出。
本次设计采用DAC0832,DAC0832是一种常用的8位数字/模拟转换芯片。
DAC0832最具有特色是输入为双缓冲结构,数字信号在进入D/A转换前,需经过两个独立控制的8位锁存器传送。
其优点是D/A转换的同时,DAC寄存器中保留现有的数据,而在输入寄存器中可送入新的数据。
系统中多个D/A转换器内容可用一公共的选通信号选通输出。
图3.4DAC0832
CAN总线的接口设计
单片机将采集的液位数据运算处理之后,还要将数据通过CAN总线通信接口以符合CAN协议的数据形式发送到总线上供中心机房的上位机处理。
要完成这一功能所以必须得对CAN总线接口进行设计,其中包括CAN控制器、CAN收发器及对CAN总线的光电隔离设计。
CAN总线的控制器接口设计
本设计中CAN总线控制器芯片采用MCP2510,MCP2510是Microchip公司推出的采用独立CAN控制器的CAN总线控制器芯片,它完全符合CAN总线的2.0B技术规范,并带有符合工业标准的SPI串行接口。
MCP2510在目前市场上是体积最小、最易于使用也是最节约成本的独立CAN控制器。
MCP2510是一种带有SPI接口的CAN控制器,它支持CAN技术规范V2.0A/B;并能够发送的接收标准的和扩展的信息帧,同时具有接收滤波和信息管理的功能。
MCP2510通过SI接口与MCU进行数据传输,最高数据传输速率可达5Mb/s,MCU可通过MCP2510与CAN总线上的其它MCU单元通讯。
MCP2510内含三个发送缓冲器、二个接收缓冲器。
同时还具有灵活的中断管理能力,这些特点使得MCU对CAN总线的操作变得非常简便。
如图3.5.1。
图3.5.1CAN总线控制器MCP2510
CAN总线的收发器接口设计
CAN收发器是一个物理层的器件,它是CAN总线控制器和物理总线之间的接口,器件可以提供对总线的差动发送能力和差动接收能力。
本设计总线收发器选用PCA82c250,其与ISO/DIS11891标准完全兼容,最高速可达1Mbps,很强的抗瞬间干扰和保护总线的能力,降低射频干扰(RFI--RadioFrequencyInterference)的斜率控制,热防护,可防护电池与地之间发生短路,存在低电流备用模式,并且某一个节点掉电不会影响总线。
如图3.5.2。
图3.5.2CAN收发器PCA82C250
光电隔离设计
本设计要求对CAN总线进行光电隔离设计,这里我们选择TLP113光耦合器。
TOSHIBA小型扁平耦合器TLP113(P113)是一个小外型耦合器,适用于贴片安装。
TLP113(P113)包含一个高输出功率的砷化镓铝发光二极管,该二极管光耦合到一个高增益,高速单片光探测器。
探测器的输出为肖特基钳位晶体管,集电极开路输出,如图3.5.3。
图3.5.3TLP113光耦合器
系统总体电路图
本设计总体电路图如图3.8。
图3.8系统总体电路图
第4章软件设计
系统流程框图
软件流程图如图4.1
图4.1系统流程图
控制程序
系统控制程序如下:
#include
#include"CANCOM.h"
unsignedcharUART_TX_Data[8]={0,1,2,3,4,5,6,7};
unsignedcharCAN_TX_Data[8]={0,1,2,3,4,5,6,7};
unsignedcharxdataUART_RX_Data[255]; //串口接收到的串行帧
unsignedcharxdataCAN_TX_Data[255]; //待发送的数据缓冲区
unsignedcharcodeACR_ID[4]={0,0,0,0}; //CAN初始设置验收滤波值
unsignedcharcodeAMR_ID[4]={0xff,0xff,0xff,0xff};
unsignedcharCAN_TX_ID[4]={0,0,0,0}; //待发送的目标的ID
unsignedcharCAN_RX_ID[4]={0,0,0,0}; //接收到的信息来自何ID
unsignedcharCAN_RX_Data[8]={7,6,5,4,3,2,1,0}; //接受到的数据缓冲
unsignedcharcodeCAN_BTR0[10]={0xdf,0xcf,0xc7,0xc3,0x43,0xc1,0xc1,
xc0,0xc0,0x80};
unsignedcharcodeCAN_BTR1[10]={0x7f,0x7f,0x7f,0x7f,0x2f,0x7f,0x4d,0x3e,0x3a,0x23};
// 5K 10K 20K 40K 50K 80K 100K200K250K500K
unsignedcharcodeUART_BTR[4]={0xe8,0xf4,0xfa};
// 1.2K,2.4K,4.8K
unsignedcharCAN_flag; //CAN发送标志位
unsignedcharUART_flag; //
unsignedcharCAN_ERROR_flag=NOT; //
unsignedcharCAN_DataLength=8; //CAN信息的报文长度
unsignedcharUART_DataLength=0; //串口接收时的当前指示
unsignedcharUART_Length=0; //串口接收区的长度指示
//sbitAAA=P1^4;
voidmain(void)
{
EA=0;
System_init(); //系统初始化
Timer_init(); //定时器初始化
Interrupt_init(); //中断
UART_ini();
CAN_init();
Delay
(1);
W_WDT();
EA=1;
//Delay
(1);
//UART_Length=8;
//CAN_Transmit(0); //UART_Transmit();
voidInterrupt_init(void)
{
//IP=0x00;
IT0=0x01; //外部0中断沿触发
ET0=1; //定时器0中断使能
EX0=1; //外部中断使能
ES=1; //串行中断使能
}
// 定时中断程序
// 一旦中断,说明一帧的接收已经结束,开始启动CAN发送程序
// 把串口接收到的数据准备好给CAN总线发送
// 初始化定时器程序
// ----定时器0方式1,定时器1方式2留给串口
//voidTimer_init(void)
{
TMOD|=0x01; //使用定时器0-方式1
TH0=temp_TH0;
TL0=temp_TL0;
//TR0 =1; //这里不打开定时器
}
voidCAN_init(void)
{
EA=0;
MOD_CAN1|=0x08; //单滤波方式
do
{
MOD_CAN1|=0x01; //requesttoresetmode
}
while((MOD_CAN1&0x01)!
=0x01);
CDR_CAN1=0xc8; //选择PeliCAN模式,使用输入比较器,clk_out关闭
IER_CAN1=0x01; //允许发送中断,其他中断禁能
ACR0_CAN1=ACR_ID[0];
ACR1_CAN1=ACR_ID[1];
ACR2_CAN1=ACR_ID[2];
ACR3_CAN1=ACR_ID[3];
AMR0_CAN1=AMR_ID[0];
AMR1_CAN1=AMR_ID[1];
AMR2_CAN1=AMR_ID[2];
AMR3_CAN1=AMR_ID[3];
//ECC_CAN1=0;
//TXERR_CAN1=0;
//RBSA_CAN1=0;
BTR0_CAN1=CAN_BTR0[0];
BTR1_CAN1=CAN_BTR1[0];
OCR_CAN1=0xaa; //normaloutput
W_WDT();
do
{
MOD_CAN1&=0xfe;
}
while((MOD_CAN1&0x01)!
=0x00);
EA=1;
}
// CAN发送接受到的一帧串口数据
// ----最大长度255,根据接收到的串口信息的
// 个数来确定
// ----按每依次8个数据作为一个CAN帧的报文部分
// 不足8个或超过8的倍数的部分按实际个数作
// 为CAN报文
// ----FarmeType=1为扩展帧,FarmeType=0为
// 标准帧
while((can_status&0x04)!
=0x04);
TXFrameInfo1=0x80+UART_Length%8;
pointer=&TXID1;
for(i=0;i<4;i++)
{
*(pointer++)=CAN_TX_ID[i];
}
pointer=&TXDATA1;
for(i=0;i<(UART_Length%8);i++)
{
*(pointer++)=CAN_TX_Data[i+8*(UART_Length/8)];
}
CMR_CAN1=Request_TX;
W_WDT();
// CAN接收中断服务程序
voidCAN_ISR(void)interrupt0using1
{
unsignedcharcan_int;
EA=0;
can_int=IR_CAN1;
if((can_int&0x01)==0x01) //接收中断
{
CAN_Receive();
CMR_CAN1|=ReleaseRXBuf;
}
else
{
CAN_ERROR_flag=YES; //其他中断,暂时未用
}
//UART_flag=YES;
//CAN_flag=YES;
UART_Transmit();
EA=1;
// CAN接收数据函数
#define YES 1
//4800bps5bits1.04mS
#defineTIME_MS 1
#definetemp_TH0 (0-922*TIME_MS)/256
#definetemp_TL0 (0-922*TIME_MS)%256
sbitLED1=P1^2;
sbitLED2=P1^3;
sbitLED3=P1^5;
sbitLED4=P1^4;
sbitWDT=P3^4;
voidSystem_init(void);
voidDelay(unsignedchartime);
voidW_WDT(void);
voidInterrupt_init(void);
voidCAN_init(void);
//voidCAN_Transmit(unsignedcharFarmeinfo);
voidCAN_Transmit(bitFarmeType);
voidCAN_Receive(void);
voidTimer_init(void);
voidUART_ini(void);
voidUART_Send_Byte(unsignedcharData);
voidUART_Transmit(void);
voidClear_Buffer(unsignedchar*pointer,unsignedcharlength);
#endif
第5章课程设计总结
本设计目前完成了基于CAN总线的液位控制的设计。
测试结果表明,该液位智能控制具有动态响应好,控制准确度高,抗干扰能力强,开放性好等特点。
将该液位控制应用于自动控制系统可以确保生产装置安全平稳运行,提高经济效益和社会效益。
这次的课程设计,让我加深了对单片机以及一些驱动转换芯片的理解和应用,也对CAN总线结构有更进一步的了解。
现场总线技术,应用于液位控制系统设计,提高了系统的可靠性,降低了线路维护成本,为进一步满足社会发展的应用需求及对整体自动控制系统网络的研究和功能管理奠定了一定的基础。
同时在设计过程中,我也感觉到自己知识掌握的不够扎实,仍需不断加强学习。
通过这次设计我了解了要对任何系统进行设计必须要对整个系统的可靠性、稳定性和安全性进行考虑,任何设计的控制系统都是要经过实践和时间的考验方能不断的完善。
就如同我们做课程设计,这课程设计是对我们所学知识的考验,也是对我们对知识综合运用能力的考验。
更是对我们做一件事情态度考验。
经过设计我们应该学会认真、专心、更有毅力的做一件事情,这样我们在以后的工作和生活中才能经得起实践和时间的考验,我们才能走得更远。
参考文献
[1]杜尚丰,曹晓钟,徐津.CAN总线测控技术及其应用[M].北京:
电子工业出版社,2007.
[2]张毅刚,彭喜元,董继成.单片机原理及应用[M].北京:
高等教育出版社,2003.
[3]江思敏,陈明.Protel电路设计教程[M].北京:
清华大学出版社,2006.
[4]陈世权.自动化设备在水电站中的实际应用[J].技术与市场. 2010,09:
38-41
[5]陈小忠,黄宁,赵小侠.单片机接口技术实用子程序[M].北京:
人民教育出版社,2005.
[6]吴祚武,王磊.液位控制系统[M].北京:
化学工业出版社,2006.
[7]肖忠祥.数据采集原理[M].西安:
西北工业大学出版社,2001.
[8]阳宽惠.现场总线技术及其应用[M].北京:
清华大学出版社,1999.
[9]夏继强.现场总线工业控制网络技术[M].北京:
北航出版社,2005.
[10]杨恢先,黄辉先.单片机原理及应用[M].北京:
人民邮电出版社,2006.
[11]谢又成,章兢.PLC在恒压供水自动控制系统的应用[J].电工技术杂志. 2003,11:
7-17.
[12]布挺,王帆.基于西门子PLC的水塔水位自动控制系统[J].科技信息,2009,15:
43-47.
[13]廖贤贞.PLC对水电站水机的控制研究[J].科技创新导报,2009,23:
125-128.
[14]金轶锋,秦玉伟.用PLC实现液位分段控制系统设计[J].科技信息. 2009,23:
85-88.
[15]邹继军,饶运涛.基于SJA1000的CAN总线系统智能节点设计[R].北京:
人民教育出版社,20