基于CAN总线的适配器节点设计课程设计论文1

上传人:1777****777 文档编号:38675996 上传时间:2021-11-08 格式:DOC 页数:24 大小:406.50KB
返回 下载 相关 举报
基于CAN总线的适配器节点设计课程设计论文1_第1页
第1页 / 共24页
基于CAN总线的适配器节点设计课程设计论文1_第2页
第2页 / 共24页
基于CAN总线的适配器节点设计课程设计论文1_第3页
第3页 / 共24页
点击查看更多>>
资源描述
辽辽 宁宁 工工 业业 大大 学学 工业控制网络技术工业控制网络技术 课程设计(论文)课程设计(论文)题目:题目: 基于基于USBUSB的的CANCAN总线适配器设计总线适配器设计院(系):院(系): 电气工程学院电气工程学院 专业班级:专业班级: 学学 号:号: 学生姓名:学生姓名: 指导教师:指导教师: 起止时间:起止时间:2013.12.18-2013.12.272013.12.18-2013.12.27本科生课程设计(论文)课程设计(论文)任务及评语课程设计(论文)任务及评语院(系):电气工程学院 教研室:自动化 学 号100302038学生姓名栾旭专业班级自动化102课程设计题目 基于USB的CAN总线适配器设计课程设计(论文)任务课题完成的功能、设计任务及要求、技术参数课题完成的功能、设计任务及要求、技术参数实现功能实现功能USB 的 CAN 总线适配器设计,实现计算机串口与 CAN 总线协议的转换。设计硬件包括总线控制器、总线收发器及 ATMEL 系列单片机及 USB 芯片等。软件采用汇编语言或 C语言,并调试与分析。设计任务及要求设计任务及要求1、确定设计方案,画出方案框图。2、适配器硬件设计,包括元器件选择。3、画出适配器的原理图、线路图。4、绘出程序流程图,并编写初始化、接收及发送程序。5、要求认真独立完成所规定的全部内容;所设计的内容要求正确、合理。6、按学校规定的格式,撰写、打印设计说明书一份;设计说明书应在4000字以上。技术参数技术参数1、符合 CAN2.0B 规范;2、设定速率 1Mbit/s; 3、可扩充 110 个节点;4、可与上位机通信。进度计划1、布置任务,查阅资料,确定系统设计方案(2 天)2、系统硬件设计及模块选择(3 天)3、系统软件软件及编写功能程序及调试(3 天)4、撰写、打印设计说明书(1 天)5、验收及答辩。 (1天)指导教师评语及成绩平时: 论文质量: 答辩: 总成绩: 指导教师签字: 年 月 日本科生课程设计(论文)注:成绩:平时20% 论文质量60% 答辩20% 以百分制计算本科生课程设计(论文)摘 要CAN总线是一种应用极为普及的现场总线。CAN总线作为智能设备的联系纽带,把挂在总线上作为网络节点的智能设备连接为网络系统,并进一步构成自动化系统,实现基本控制的综合自动化系统。随着现场总线技术和计算机外设接口技术的发展,现场总线与计算机快速有效的连接又有了更多的方案,USB 作为一种新型的接口技术,以其简单易用、速度快等特点而备受青睐。本文简要提出了 USB 接口与 CAN 总线连接方案,论述了系统的硬件构成,固件开发和驱动程序等内容。关键词:现场总线 USB CAN 总线本科生课程设计(论文)目 录第 1 章 绪论 .1第 2 章 课程设计的方案 .22.1 概述 .22.2 系统组成总体结构 .2第 3 章 硬件设计 .33.1 单片机最小系统设计 .33.2 CAN 总线.43.3 USB 接口.5 3.4 收发器 PCA82C250.6 3.5 系统总体框图.8第 4 章 软件设计 .94.1 CAN 总线的初始化程序.94.2 SJA1000 发送和接收数据的流程.10第 5 章 课程设计总结 .12参考文献 .13附录 .14本科生课程设计(论文)1第 1 章 绪论CAN 总线最初是德国 Bosch 公司在 1986 年为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种支持分布式实时控制系统的串行数据通讯总线。CAN 总线与其它通信网的显著不同之处在于: (1)报文传送中不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,该收的收下,不收的弃用。其好处是可线上网下网、即插即用和多站接收。 (2)特别强化了对数据安全性的关注,满足控制系统及其它较高数据要求的系统需求。另外 CAN 总线采用短帧结构,借助接收滤波的多地址帧传送,受干扰概率低,每帧信息都有 CRC 校验及其它检错措施。响应远程数据请求,配置灵活,具有全系统的数据相容性。节点数主要取决于总线驱动电路,目前最多可达 110个节点。CAN 总线符合 ISO11898 标准,通信速率高,最大传输速率可达1Mbit/S,最大传输距离为 10km,传输介质可为双绞线。基于 CAN 总线以上的特点,把它应用于系统分布比较分散且需要在同一总线上挂接多个节点的场合是非常适合的。CAN 总线具有高性能、高可靠性、高性价比、连接方便、实时性好及其独特的设计等突出优点应用于许多工业部门,目前已成为比较流行的一种现场总线,广泛应用于控制系统中的各检测和执行机构之间的数据通信。而实际应用中 PC机与 CAN 总线的人机交互设计尤为重要,它直接影响系统的运行和结果,其连接方法也成为系统设计的重点,通常采取 3 种连接方式:RS-232 串行口通信、PCI卡、USB 口通信,由于串行通信端口在系统控制领域中一直扮演着极为重要的角色,以其开发简单,资源丰富,成本低,无需驱动程序等诸多优点,不仅没有被淘汰,反而在规格上更先进,故应用广泛。结合设计中 AT89S51 单片机有串行通信口且接口简单的特点,选用 RS-232 作为 CAN 总线与 PC 机之间的连接方式。将就这一基于 CAN 控制器 SJA1000 与 AT89S51 的具有通用性的工业测控系统设计的软硬件设计方案作详细介绍。本科生课程设计(论文)2第 2 章 课程设计的方案2.1 概述本次设计主要是综合应用所学知识,设计 CAN 总线适配器接口设计,并在实践的基本技能方面进行一次系统的训练。能够较全面地巩固和应用“现场总线”课程中所学的基本理论和基本方法。系统以单片机 AT89S51 和 SJA1000 控制器为核心,USB 的 CAN 总线适配器设计,实现计算机串口与 CAN 总线协议的转换。设计硬件包括总线控制器、总线收发器及 ATMEL 系列单片机及 USB 芯片等。软件采用汇编语言或 C 语言,并调试与分析。本设计系统主要部件结构图如图 2.12.2 系统组成总体结构AT89S51复位电路24M 时钟SJA1000PDIUSBD12控制逻辑6M 时钟光电隔离DCDCTJA1050适配器接口图 2.1 系统总体框图本科生课程设计(论文)3第 3 章 硬件设计3.1 单片机最小系统设计AT89S51 是一个低功耗,高性能 CMOS 8 位单片机,片内含 4k Bytes ISP(In-system programmable)的可反复擦写 1000 次的 Flash 只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS-51 指令系统及 80C51 引脚结构,芯片内集成了通用 8 位中央处理器和 ISP Flash 存储单元,功能强大的微型计算机的 AT89S51 可为许多嵌入式控制应用系统提供高性价比的解决方案。图3.1单片机最小系统本科生课程设计(论文)43.2 CAN 总线在本系统中,CAN 控制器采用 Philips 公司生产的 SJA1000,它作为一个发送、接受缓冲器,实现主控制器和总线之间的数据传输;CAN 收发器采用 TJA1050芯片,它是 CAN 控制器和物理总线的接口,主要可以提供对总线的差动发送能力和对 CAN 控制器的差动接受能力。 在 CAN 总线结构中,总线的两端还要配置两个120 的电阻,其作用是总线匹配阻抗,可以增加总线传输的稳定性和抗干扰能力,减少数据传输中的出错率。为了增强 CAN 总线节点的抗干扰能力,SJA1000的TXO 和 RX0可通过高速光耦6N137与 TJA1050相连,这样就很好的实现了总线上各节点的电气隔离。光耦部分电源与 CAN_V 必须用小功率电源隔离模块进行隔离,这样就提高了节点的稳定性和安全性。图3.2为 SJA1000引脚图。AD 71AD 62AD 53AD 44AD 35AD 26AD 17AD 08WR_N9RD _N10CS_N11AL E12CL OCK OUT13INT _N14TX 027TX 126RX 025RX 124MO DE23VD D122VD D221VD D320VSS119VSS218VSS317RST_NXT AL 116XT AL 215SJA1000.图3.2 SJA1000引脚图本科生课程设计(论文)53.3 USB 接口PDIUSBD12 是一款带有并行总线和局部 DMA 传输能力的高速 USB 接口器件,它支持 USB1.1 协议的所有传输方式,在本设计中用到了控制传输,中断传输和批量传输。控制传输处理主机到 USB 设备的控制信息,固定使用端点 0。中断传输用来传送数据量很小,但需要及时处理,以达到实时效果的数据,使用端点 1。批量传输用来实现 CAN 节点与主机之间大数据快传送,使用主端点(端点 2),一次最大可发送 64 字节。PDIUSBD12 的固件设计成完全的中断驱动,当 MCU 处理前台任务时 USB 的传输可在后台进行。这就确保了最佳的传输速率和更好的软件结构,同时简化了编程和调试。后台 ISR 中断服务程序和前台主程序循环之间的数据交换通过事件标志和数据缓冲区来实现,当 PDIUSBD12 从 USB 收到一个数据包那么就对 MCU 产生一个中断请求,MCU 立即响应中断,在 ISR 中固件将数据包从PDIUSBD12 内部缓冲区移到数据缓冲区,并在随后清零 PDIUSBD12 的内部缓冲区,以使能接收新的数据包。MCU 可以继续它当前的前台任务,返回到主循环检查循环缓冲区内是否有新的数据。图 3.3 为 PDIUSBD13 固件编程结构图。图3.3 PDIUSBD13固件编程结构图这部分程序结构可包括:1) 请求处理程序对 USB 的标准设备请求进行处理和对用户添加的厂商请求进行处理;USB 设备接入主机后要进入复杂的设备列举过程,并安装正确的驱动程序。2)硬件提取层对单片机的 I/O 口、数据总线等硬件接口进行操作,该层包含最底层的函数,这些函数在不同的 MCU 平台上需要进行改变,本科生课程设计(论文)6 void outportb(unsigned char port,unsigned char val); void inportb(unsigned char port); 对 PDIUSBD12 所有的 I/O 访问都可由它们实现; 3)PDIUSBD12 命令接口 对 PDIUSBD12 器件进行操作的模块子程序集,以简化器件的编程; 4)中断服务程序 当 PDIUSBD12 向单片机发出中断请求时,读取 PDIUSBD12 的中断传输来的数据,并设定事件标志和 Setup 包数据缓冲区,传输给主循环。 5)主循环 发送 USB 请求,处理 USB 总线事件和用户功能处理等。MCU 一旦上电就需要初始化其所有端口存储区,中断服务程序。在主循环程序中 MCU 对事件进行轮询,如有 CAN 总线发来的数据,则送往 PDIUSBD12 进行发送,如有 USB 总线数据,则启动 CAN 发送程序,它们在接口的接收工作分别由各自的中断程序完成。要注意的是,我们在用了 PDIUSBD12 的端口最大一次可发送 64 字节,SJA1000 一次最多能发 8 字节, 如果端口 1 传输的长度大于 8 字节,MCU 在传输阶段就必须根据数据大小,分数次完成 CAN 数据的发送工作。PDIUSBD12 初始化程序:void D12_init() D12_SetAddressEnable(0,1); D12_SetEndpointEnable(1); Disconnect(); Delay(2); Connect();D12_ReadInterruptRegister();3.4 收发器 PCA82C250PCA82C250 是 CAN 协议控制器和物理总线间的接口,它主要是为汽车中高速通讯(高达 1Mbps)应用而设计。此器件对总线提供差动发送能力,对 CAN 控制本科生课程设计(论文)7器提供差动接收能力,与 ISO11898 标准完全兼容。PCA82C250 芯片由接收器、驱动器、基准电压产生电路、工作模式选择电路及保护电路等组成。PCA82C250 内部的限流电路可以防止发送输出级对电池电压的正端和负端短路。虽然在这种故障条件出现时,功耗将增加,但这种特性可以阻止发送器输出级的破坏。在节点温度大约超过 160时,两个发送器输出端的极限电流将减少。由于发送器是功耗的主要部分,因此芯片温度会迅速降低。PCA82C50 芯片的其他部分将继续工作。当总线短路时,热保护十分重要。图 3.4 为 PCA82C250 引脚图。 图 3.4 为 PCA82C250 引脚图本科生课程设计(论文)83.5 系统总体框图图 3.5 为系统总体框图,主要说明单片机与 SJA1000 和 PDIUSBD13 的引脚连接。 图 3.5 系统总体框图本科生课程设计(论文)9第 4 章 软件设计4.1 CAN 总线的初始化程序 CAN 总线的三层结构模型为:物理层、数据链路层和应用层。其中物理层和数据链路层的功能由 SJA1000 完成,系统的开发主要在应用层软件的设计上,它主要由三个子程序:初始化子程序、发送数据和接收数据程序。同时,还包括一些数据溢出中断以及帧出错的处理。SJA1000 在上电硬件复位之后,必须对其进行软件初始化之后才可以进行数据通讯,初始化过程主要包括对其复位模式下配置时钟分频寄存器 CDR、总线定时寄存器 BTR0 和 BTR1、验收代码寄存器 ACR、验收屏蔽寄存器 AMR 及输出控制寄存器 OCR 等,实现对总线的速率、验收屏蔽码、输出引脚驱动方式、总线模式及时钟分频进行定义。图 4.1 为 CAN 总线初始化流程图。图 4.1 CAN 总线初始化流程图开始启动运行指示灯进入复位模式写ACR写AMR写BTR0写BTR1写OCR写CDR开错误中断,发送中断,接收中断,溢出中断结束进入运行模式?清除复位标志位NY本科生课程设计(论文)104.24.2 SJA1000 发送和接收数据的流程SJA1000 发送和接收数据的流程,基本过程为主控制器将数据保存到SJA1000 发送缓冲器,然后对命令寄存器的发送请求 TR 标志位进行置位开始发送;接收过程为 SJA1000 将从总线上接收到的数据存入接收缓冲器,通过其中断标志位通知主控制器来处理接收到的信息,接收完毕之后清空缓冲器,等待下次接收。图 4.2 为发送程序流程图,图 4.3 为接受程序流程图。满开始接受缓冲器状态?给缓冲器加载信息发送数据图 4.2 CAN 总线发送程序流程图本科生课程设计(论文)11YYYNN开始关 CAN 中断数据帧?远程帧?发送数据N读入数据计算校验检验正确?记录数据帧标识符将数据压入接受队列开 CAN 中断结束图 4.3 CAN 总线接收程序流程图本科生课程设计(论文)12第 5 章 课程设计总结这次课程设计根据课题要求,复习了所学的工业控制网络课程内容,设计重点是理论与实践相结合,使我得到了一次用专业知识、专业技能分析和解决问题的锻炼。通过这次课程设计使我明白了自己的知识还有所欠缺。明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己的综合素质。本文主要研究 USB 的 CAN 总线适配器设计,以单片机 AT89S21 和 SJA1000 控制器为控制核心,完成系统的控制要求。本文介绍了 CAN 总线的发展及它的一些性能指标,确定系统的方案设计,通过一些硬件连接完成了系统的硬件设计。本文的核心在于 SJA1000 的初始化、发送和接受数据的程序设计,在老师的帮助下也顺利完成。这次课设的重点在于动手实践,做出实验现象,不单单是一条条的程序分析。在课设的过程中我了解了 CAN 总线的性能指标,还了解一些知识,不仅仅巩固了工业控制网络课程的内容,还大大的拓展我的知识面,了解了一些课外的知识,这对我将来走向工作岗位有了很大的帮助。本科生课程设计(论文)13参考文献1 王彬、郑红平,CAN 总线在远程抄表系统中的应用,北京:清华大学出版社,2004:19-48,81-932 张凤登,现场总线技术应用,北京:科学出版社,1990:45-563 梅丽凤,单片机原理及接口技术,北京:清华大学出版社,2009:126-1354 李庆峰,现场总线技术及其应用,北京:机械工业出版社,2004:25-405 周季军,微型计算机控制,北京:电子工业出版社,1997:201-2206 李俊、郑勇云,现场总线 CAN 原理与应用技术,北京:北京航空航天大学出版社,2000:40-607 邹继军,现场总线 CAN 原理与应用技术,北京:北京航空航天大学出版社,2003.38 邬宽明,现场总线技术应用选编,北京:北京航空航天大学出版社,2004.29 杨春杰,CAN 总线技术,北京:北京航空航天出版社,2010.1本科生课程设计(论文)14 附录CAN 初始化程序:void init_can()large unsigned int data i; for (i=0;i512;i+) _nop_() con_reg=ox41; for(i=0;i512;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;本科生课程设计(论文)15mesg_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;发送数据程序代码:int can_tran_file(int id ,char *f)void far *ptr;char ch;本科生课程设计(论文)16int i,j,re_comd,length;FILE *fp; get_ram_access_right(); ptr=MK-FP(oxd000,0); FP_OFF(ptr)+=ox100; pokeb(FP_SEG(ptr),FP_OFF(ptr),02); FP_OFF(ptr)+; pokeb(FP SEG(ptr),FP OFF(ptr),id); FP_OFF(ptr)+; pokeb(FP_SEG(ptr),FP_OFF(ptr),1); FP_OFF(ptr)+; i=0; while(fi!=0) pokeb(FP_SEG(ptr),FP_OFF(ptr),fi); FP_OFF(ptr)+; i+; pokeb(FP_SEG(ptr),FP_OFF(ptr),fi); ptr=MK_FP(oxd000,0);FP_OFF(ptr)+=ox120;if(!(fp=fopen(f,rb)release_ram_acces_right();return(6); i=0; while(!feof(fp) fread(&ch,sizeof(char),1,fp); pokeb(FP_SEG(ptr),FP_OFF(ptr),ch); FP_OFF(ptr)+; i+; 本科生课程设计(论文)17 fclose(fp); length=i-1; ptr=MK_FP(oxd000,0); FP_OFF(ptr)+=0 x114; poke(FP_SEG(ptr),FP_OFF(ptr),length); release_ram_acces_right(); inportb(0 x218); for(i=0;i6000;i+)ch=0; get_ram_access_right(); prt=MK_FP(oxd000,0); FP_OFF(ptr)+=ox4000; re_comd=peekb(FP_SEG(ptr),FP_OFF(ptr); if(re_comd=0 x12) pokeb(FP_SEG(ptr),FP_OFF(ptr),0); release_ram_acces_right(); return(1); else ptr=MK_FP(oxd000,0); FP_OFF(ptr)+=ox4020; i=peekb(FP_SEG(ptr),FP_OFF(ptr); release_ram_acces_right(); return(i);接收数据子程序代码:int can_recv_file(int id,char *f) void fra *ptr; char ch; int i,j,re_comd,length; get_ram_access_right(); ptr=mk_fp(oxd000,0); fp_off(ptr)+=ox100; pokeb(fp_seg(ptr),fp_off(ptr),01); fp_off(ptr)+; pokeb(fp_seg(ptr),fp_off(ptr),id);本科生课程设计(论文)18 pokeb(fp_seg(ptr),fp_pff(ptr),1); fp_off(ptr)+; i=0; while(fi!=0) pokeb(fp_seg(ptr),fp_off(ptr),fi); fp_off(ptr)+; i+; pokeb(fp_seg(ptr),fp_off(ptr),fi);release_ram_acces_right();inportb(ox218); for(i=0;i6000;i+)ch=0;get_ram_access_right(); ptr=mk_fp(oxd000,0);fp_off(ptr)+=ox4000;re_comd=peekb(fp_seg(ptr),fp_off(ptr);if(re_comd=ox11) pokeb(fp_seg(ptr),fp_off(ptr),0); if(!(fp=fopen(f,wb) release_ram_accea_right(); return(6); ptr=mk_fp(oxd000,0); fp_off(ptr)+=ox4014; lenght=peek(fp_seg(ptr),fp_off(ptr); ptr=mk_fp(oxd000,0); fp_off(ptr)+=ox4020;fwrite(ptr,sizeof(char),length,fp);fclose(fp);release_ram_acces_right();return(1); else ptr=mk_fp(oxd000,0); fp_off(ptr)+=ox4020; i=peekb(fp_seg(ptr),fp_off(ptr);release_ram_acces_right();本科生课程设计(论文)19 return(i);
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 任务书类


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!