已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科生课程设计(论文) iii 课程设计(论文)任务及评语课程设计(论文)任务及评语 院(系):电气工程学院 教研室: 学 号学生姓名专业班级 课程设 (论文) 题目 基于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天) 指导教师评语及成绩 平时: 论文质量: 答辩: 总成绩: 指导教师签字: 年 月 日 本科生课程设计(论文) iv 注:成绩:平时20% 论文质量60% 答辩20% 以百分制计算 本科生课程设计(论文) v 摘 要 自 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 总线收发器 本科生课程设计(论文) vi 目 录 第 1 章 绪论 1 第 2 章 课程设计的方案 2 2.1 概述 .2 2.2 系统组成总体结构 .2 第 3 章 系统硬件设计 3 3.1 最小系统设计 .3 3.2 液位变送器 .3 3.3 a/d 接口电路设计 4 3.4 d/a 接口电路设计 5 3.5 can 总线的接口设计 5 3.5.1 can 总线的控制器接口设计 5 3.5.2 can 总线的收发器接口设计 6 3.5.3 光电隔离设计 7 3.6 系统总体电路图 .7 第 4 章 软件设计 9 4.1 系统流程框图 .9 4.2 控制程序 .9 第 5 章 课程设计总结 .15 参考文献 16 论文内容变化后,右键单击目录区域,选择 “更新域” ,再选择“更新整个目录” ,确定。 本科生课程设计(论文) 1 第 1 章 绪论 在工业生产过程中,液位往往是很重要的控制参数,常常需要测量容器中液 体的液位。液位测量的目的主要是通过液位测量来确定容器里的原料、半成品或 产品的数量,以保证生产过程各环节物料平衡以及为进行经济核算提供可靠的依 据。随着各行业的快速发展,液位测量已应用到越来越多的领域,传统的液位测 量手段已经无法满足对其精确性的要求,所以基于 can 总线的液位控制,这种智 能化控制方向已经成为一种新的手段被广泛的应用。 主要针对液位数据采集和传输。以单片机为核心,以 can 协议总线作为数据 传输手段,数据采集模块将采集到的数据转换输送到单片机内进行处理,再由单 片机通过 can 通讯模块将液位信息数据经 can 总线传输给中心机房的上位机处理, 形成基于 can 总线的液位控制系统。 现场总线 can 作为一种工业网络通讯技术,以其独特的设计思想、优良的实 时传输性能和极高的可靠性,越来越受到人们的重视。本设计就是开发一种基于 can 总线的液位控制。can 总线,实现液位检测系统与工业数字化信息平台的信 息共享,具有良好的发展前景。 本科生课程设计(论文) 2 第 2 章 课程设计的方案 2.1 概述 随着电子技术、计算机技术和信息技术的发展,工业生产中传统的检测和控 制技术发生了根本性的变化。液位作为化工等许多工业生产中的一个重要参数, 其测量和控制效果直接影响到产品的质量,因此液位控制成为过程控制领域中的 一个重要的研究方向。本课设主要研究的是基于 can 总线的液位控制,实现通过 can 总线接收控制指令及上传数据、并根据指令进行液位的控制。硬件设计包括 cpu、can 总线控制器、can 总线收发器及液位采集与驱动电路等。 2.2 系统组成总体结构 通过对现有元器件进行分析和对所掌握知识的了解,本次设计对所有元器件 进行了选择,并对数据采集模块和 can 通讯模块进行了硬件设计。主要是针对 微处理器 at89c51、a/d 转换器 0804、d/a 转换器 0832、can 总线控制器 mpc2510 和 can 总线收发器 pca82c250 的硬件选择和设计。系统总体结构框 图如图 2.2。 液位变送器 cpua/dd/a 控制阀门 液体容器 总线控制器 总线收发器 can总线 驱动电路 光电隔离 图 2.2 系统总体结构框图 本科生课程设计(论文) 3 第 3 章 系统硬件设计 3.1 最小系统设计 at89c51 是一种带 4k 字节 flash 存储器的低电压、高性能 cmos 8 位微处理 器,俗称单片机。at89c2051 是一种带 2k 字节闪存可编程可擦除只读存储器的单 片机。单片机的可擦除只读存储器可以反复擦除 1000 次。该器件采用 atmel 高 密度非易失存储器制造技术制造,与工业标准的 mcs-51 指令集和输出管脚相兼 容。由于将多功能 8 位 cpu 和闪速存储器组合在单个芯片中,atmel 的 at89c51 是一种高效微控制器, at89c51 单片机为很多嵌入式控制系统提供了一种灵活性 高且价廉的方案。为了精确的对系统进行控制,满足控制要求,本设计选用 at89c51 可满足控制要求,如图 3.1。 at89c51 vcc 40 p2.0(a8) 21 p2.1(a9) 22 p2.2(a10) 23 p2.3(a11) 24 p2.4(a12) 25 p2.5(a13) 26 p2.6(a14) 27 p2.7(a15) 28 psen 29 (ale/prog) 30 epvpp 31 (ad7)p0.7 32 (ad6)p0.6 33 (ad5)p0.5 34 (ad4)p0.4 35 (ad3)p0.3 36 (ad2)p0.2 37 (ad1)p0.1 38 (ad0)p0.0 39 p1.0(t2) 1 p1.1(t2) 2 p1.2 3 p1.3 4 p1.4 5 p1.5(mosi) 6 p1.6(moso) 7 p1.7(sck ) 8 rst 9 p3.0(rxd) 10 p3.1(txd ) 11 p3.2(int0) 12 p3.3(int1) 13 p3.4(t0) 14 p3.5(t1) 15 p3.6(wr) 16 p3.7(rd) 17 xlal 2 18 xlal 1 19 gnd 20 图 3.1 at89c51 3.2 液位变送器 cyb31 系列隔离式液位变送器采用进口不锈钢隔离膜片的高精度、高稳定性 本科生课程设计(论文) 4 的力敏芯片,经合理精密的结构设计和厚膜技术温度补偿、信号放大、v/i 转换, 对不锈钢壳体进行全密封焊接,使用有通风导管的防水电缆,使传感器背压腔与大 气连通,从而制成工业标准的 420ma 信号输出且性能稳定可靠的全固态产品。 本设计要求液位控制精度为 1%,而 cyb31 的控制精度可达到 0.2%,结合具体情 况本系统选用 cyb31 型液位变送器来进行液位的测量,如图 3.2。 图 3.2 液位变送器 3.3 a/d 接口电路设计 来自于液位变送器的信号为模拟信号,必须经过 a/d 转换后才能进入单片机。 a/d 转换就是将连续的模拟电压转换成相对应的数字量,输入的电压与输出的数 字量有严格的对应关系。 在本次设计中采集模拟信号是使用的转换器是 adc0804,如图 3.3,它是典 型的八位逐次逼近型 a/d 转换器。最多可以允许 8 位模拟量的输入,借助三位的 地址锁存器与译码电路,多路模拟开关可以选择此八路模拟量中的一个,所有的 模拟量转换共用一个 a/d 转换器。 vcc 20 clk r 12 db0 18 db1 17 db2 16 db3 15 db4 14 db5 13 db6 12 db7 11 cs 1 rd 2 wr 3 clk in 4 intr 5 vin(+) 6 vin(-) 7 agnd 8 vref/2 9 gnd 10 ad c0804 本科生课程设计(论文) 5 图 3.3 adc0804 3.4 d/a 接口电路设计 来自于 can 总线上的信号经过单片机变成数字信号。输出的数字信号只有经 过 d/a 转换才能实现模拟量的输出。 本次设计采用 dac0832,dac0832 是一种常用的 8 位数字/模拟转换芯片。 dac0832 最具有特色是输入为双缓冲结构,数字信号在进入 d/a 转换前,需经 过两个独立控制的 8 位锁存器传送。其优点是 d/a 转换的同时,dac 寄存器中 保留现有的数据,而在输入寄存器中可送入新的数据。系统中多个 d/a 转换器 内容可用一公共的选通信号选通输出。 isbdi0 7 di1 6 di2 5 di3 4 di4 16 di5 14 di6 14 msbdi7 13 cs 1 xfe r 17 iout1 11 iout2 12 ile 19 vcc 20 wr2 18 wr1 2 rfb 9 da c0832 vref 8 图 3.4 dac0832 3.5 can 总线的接口设计 单片机将采集的液位数据运算处理之后,还要将数据通过 can 总线通信接口 以符合 can 协议的数据形式发送到总线上供中心机房的上位机处理。要完成这一 功能所以必须得对 can 总线接口进行设计,其中包括 can 控制器、can 收发 器及对 can 总线的光电隔离设计。 本科生课程设计(论文) 6 3.5.1 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。 vss 9 txca n 1 rxcan 2 clko ut 3 tx0rts 4 tx1rts 5 tx2rts 6 osc2 7 osc1 8 rx1bf 10 rx0bf 11 int 12 sck 13 si 14 so 15 cs 16 reset 17 vdd 18 mcp2510 图 3.5.1 can 总线控制器 mcp2510 3.5.2 can 总线的收发器接口设计 can 收发器是一个物理层的器件,它是 can 总线控制器和物理总线之间的 接口,器件可以提供对总线的差动发送能力和差动接收能力。本设计总线收发器 选用 pca82c250,其与 iso/dis 11891 标准完全兼容,最高速可达 1mbps,很强 的抗瞬间干扰和保护总线的能力,降低射频干扰(rfi-radio frequency interference)的斜率控制,热防护,可防护电池与地之间发生短路,存在低电流 本科生课程设计(论文) 7 备用模式,并且某一个节点掉电不会影响总线。如图 3.5.2。 txd 1 gnd 2 vcc 3 rxd 4 wref 5 canl 6 canh 7 rs 8 pca82c250 图 3.5.2 can 收发器 pca82c250 3.5.3 光电隔离设计 本设计要求对 can 总线进行光电隔离设计,这里我们选择 tlp113 光耦合器。 toshiba 小型扁平耦合器 tlp113(p113)是一个小外型耦合器,适用于贴片安 装。tlp113(p113)包含一个高输出功率的砷化镓铝发光二极管,该二极管光耦 合到一个高增益,高速单片光探测器。探测器的输出为肖特基钳位晶体管,集电 极开路输出,如图 3.5.3。 5 vcc 6 gnd 4 1 3 tl p113 图 3.5.3 tlp113 光耦合器 3.6 系统总体电路图 本设计总体电路图如图 3.8。 本科生课程设计(论文) 8 123456 a b c d 654321 d c b a title numberrevisionsize b date:25-dec-2013sheet of file:f:料料27.ddbdrawn by: vcc 20 clk r 12 db0 18 db1 17 db2 16 db3 15 db4 14 db5 13 db6 12 db7 11 cs 1 rd 2 wr 3 clk in 4 intr 5 vin(+) 6 vin(-) 7 agnd 8 vref/2 9 gnd 10 ad c0804 isbdi0 7 di1 6 di2 5 di3 4 di4 16 di5 14 di6 14 msbdi7 13 cs 1 xfe r 17 iout1 11 iout2 12 ile 19 vcc 20 wr2 18 wr1 2 rfb 9 da c0832 vref 8 5v 5v port rfb ou t 500k 10k a b + + _ _2 3 1 4 5 6 7 11 lm324 lm324 10k -12v +12v at89c51 vcc 40 p2.0(a8) 21 p2.1(a9) 22 p2.2(a10) 23 p2.3(a11) 24 p2.4(a12) 25 p2.5(a13) 26 p2.6(a14) 27 p2.7(a15) 28 psen 29 (ale/prog) 30 epvpp 31 (ad7)p0.7 32 (ad6)p0.6 33 (ad5)p0.5 34 (ad4)p0.4 35 (ad3)p0.3 36 (ad2)p0.2 37 (ad1)p0.1 38 (ad0)p0.0 39 p1.0(t2) 1 p1.1(t2) 2 p1.2 3 p1.3 4 p1.4 5 p1.5(mosi) 6 p1.6(moso) 7 p1.7(sck ) 8 rst 9 p3.0(rxd) 10 p3.1(txd ) 11 p3.2(int0) 12 p3.3(int1) 13 p3.4(t0) 14 p3.5(t1) 15 p3.6(wr) 16 p3.7(rd) 17 xlal 2 18 xlal 1 19 gnd 20 di0 di1 di2 di3 di4 di5 di6 di7 p0.0 p0.1 p0.2 p0.3 p0.4 p0.5 p0.6 p0.7 in1 in2 vss 9 txca n 1 rxcan 2 clko ut 3 tx0rts 4 tx1rts 5 tx2rts 6 osc2 7 osc1 8 rx1bf 10 rx0bf 11 int 12 sck 13 si 14 so 15 cs 16 reset 17 vdd 18 mcp2510 p1.3 p1.1 p1.2 p1.0 rst rst clock out 5 vcc 6 gnd 4 1 3 tl p113 5 vcc 6 gnd 4 1 3 tlp113 tl p113 390 r2 390 r1 +3.3v 390 r3 390r4 can-rx can-tx390 r5 390 r6 cgnd txd 1 gnd 2 vcc 3 rxd 4 wref 5 canl 6 canh 7 rs 8 pca82c250 c1 cgnd cvcc can-h can-l sck si cs so reset 图 3.8 系统总体电路图 本科生课程设计(论文) 9 第 4 章 软件设计 4.1 系统流程框图 软件流程图如图 4.1 开始 系统初始化 设定控制液位 can总线接收信 号,液位改变? 传送上位 机控制 pid控制 输出 结束 n y 图 4.1 系统流程图 4.2 控制程序 系统控制程序如下: #include #include “cancom.h“ unsigned char uart_tx_data8 = 0,1,2,3,4,5,6,7; unsigned char can_tx_data8 = 0,1,2,3,4,5,6,7; 本科生课程设计(论文) 10 unsigned char xdata uart_rx_data255; /串口接收到的串行帧 unsigned char xdata can_tx_data255; /待发送的数据缓冲区 unsigned char code acr_id4 = 0,0,0,0; /can 初始设置验收滤波值 unsigned char code amr_id4 = 0xff,0xff,0xff,0xff; unsigned char can_tx_id4 = 0,0,0,0; /待发送的目标的 id unsigned char can_rx_id4 = 0,0,0,0; /接收到的信息来自何 id unsigned char can_rx_data8 = 7,6,5,4,3,2,1,0; /接受到的数据缓冲 unsigned char code can_btr010 =0xdf,0xcf,0xc7,0xc3,0x43,0xc1,0xc1, xc0,0xc0,0x80; unsigned char code can_btr110 = 0x7f,0x7f,0x7f,0x7f,0x2f,0x7f,0x4d,0x 3e,0x3a,0x23; / 5k 10k 20k 40k 50k 80k 100k 200k 250k 500k unsigned char code uart_btr4 = 0xe8,0xf4,0xfa; / 1.2k,2.4k,4.8k unsigned char can_flag; /can 发送标志位 unsigned char uart_flag; / unsigned char can_error_flag = not; / unsigned char can_datalength = 8; /can 信息的报文长度 unsigned char uart_datalength = 0; /串口接收时的当前指示 unsigned char uart_length = 0; /串口接收区的长度指示 /sbit aaa = p14; void main(void) ea = 0; system_init(); /系统初始化 timer_init(); /定时器初始化 interrupt_init(); /中断 uart_ini(); can_init(); delay(1); w_wdt(); 本科生课程设计(论文) 11 ea = 1; /delay(1); /uart_length = 8; /can_transmit(0); /uart_transmit(); void interrupt_init(void) /ip = 0x00; it0 = 0x01; /外部 0 中断沿触发 et0 = 1; /定时器 0 中断使能 ex0 = 1; /外部中断使能 es = 1; /串行中断使能 / 定时中断程序 / 一旦中断,说明一帧的接收已经结束,开始启动 can 发送程序 / 把串口接收到的数据准备好给 can 总线发送 / 初始化定时器程序 / -定时器 0 方式 1,定时器 1 方式 2 留给串口 /void timer_init(void) tmod |= 0x01; /使用定时器 0方式 1 th0 = temp_th0; tl0 = temp_tl0; /tr0 = 1; /这里不打开定时器 void can_init(void) ea = 0; mod_can1 |= 0x08; /单滤波方式 do 本科生课程设计(论文) 12 mod_can1 |= 0x01; /request to reset mode while (mod_can1 cdr_can1 = 0xc8; /选择 pelican 模式,使用输入比较器,clk_out 关闭 ier_can1 = 0x01; /允许发送中断,其他中断禁能 acr0_can1 = acr_id0; acr1_can1 = acr_id1; acr2_can1 = acr_id2; acr3_can1 = acr_id3; amr0_can1 = amr_id0; amr1_can1 = amr_id1; amr2_can1 = amr_id2; amr3_can1 = amr_id3; /ecc_can1 = 0; /txerr_can1 = 0; /rbsa_can1 = 0; btr0_can1 = can_btr00; btr1_can1 = can_btr10; ocr_can1 = 0xaa; /normal output w_wdt(); do mod_can1 while (mod_can1 ea = 1; / can 发送接受到的一帧串口数据 / -最大长度 255,根据接收到的串口信息的 / 个数来确定 本科生课程设计(论文) 13 / -按每依次 8 个数据作为一个 can 帧的报文部分 / 不足 8 个或超过 8 的倍数的部分按实际个数作 / 为 can 报文 / -farmetype = 1 为扩展帧,farmetype = 0 为 / 标准帧 while (can_status txframeinfo1 = 0x80 + uart_length%8; pointer = for (i=0;i4;i+) *(pointer+) = can_tx_idi; pointer = for (i=0;i(uart_length%8);i+) *(pointer+) = can_tx_datai+8*(uart_length/8); cmr_can1 = request_tx; w_wdt(); / can 接收中断服务程序 void can_isr(void) interrupt 0 using 1 unsigned char can_int; ea = 0; can_int = ir_can1; if (can_int cmr_can1 |= releaserxbuf; else 本科生课程设计(论文) 14 can_error_flag = yes; /其他中断,暂时未用 /uart_flag = yes; /can_flag = yes; uart_transmit(); ea = 1; / can 接收数据函数 #define yes 1 /4800bps 5bits 1.04ms #define time_ms 1 #define temp_th0 (0 - 922*time_ms)/256 #define temp_tl0 (0 - 922*time_ms)%256 sbit led1 = p12; sbit led2 = p13; sbit led3 = p15; sbit led4 = p14; sbit wdt = p34; void system_init(void); void delay(unsigned char time); void w_wdt(void); void interrupt_init(void); void can_init(void); /void can_transmit(unsigned char farmeinfo); void can_transmit(bit farmetype); void can_receive(void); void timer_init(void); void uart_ini(void); void uart_send_byte(unsigned char data); void uart_transmit(void); void clear_buffer(unsigned char *pointer,unsig
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47399-2026卫生陶瓷抗菌性能试验方法荧光法
- 2025-2030中国小白鼠市场产能规模与投资风险预警报告
- 下雨了教学设计
- 快递运输安全管理体系构建
- 幽门螺杆菌解读
- 奇石映翠:传统奇石与盆景的结合艺术
- 某麻纺厂原料采购验收细则
- 2026年中考物理液体压强深度计算误区解析
- AI在海水养殖中的应用
- 2026年教学资源库建设:战略规划与实践路径
- 第4章 光谱表型分析技术
- 2026年劳务派遣管理员三级模拟通关提分题库含完整答案详解【必刷】
- 《数智化零售品类管理实务》课件-情境三 仓储会员店:人货场重构与价值逻辑
- 《PLC控制技术及应用》课件-知识延伸:常开常闭线圈使用延伸
- 芯片销售培训内容
- 廉洁知识教学课件
- 2026年无人机驾驶员ASFC考试题库完整
- 养老食品安全培训课件
- 2025年中国科学技术大学网络信息中心劳务派遣岗位招聘4人(公共基础知识)综合能力测试题附答案解析
- AIGC短视频策划与制作:AIGC短视频生成教学课件
- 肺结核合并肺心病护理查房
评论
0/150
提交评论