基于CAN总线的适配器节点设计_第1页
基于CAN总线的适配器节点设计_第2页
基于CAN总线的适配器节点设计_第3页
基于CAN总线的适配器节点设计_第4页
基于CAN总线的适配器节点设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、辽辽 宁宁 工工 业业 大大 学学 工业控制网络技术工业控制网络技术 课程设计(论文)课程设计(论文)题目:题目: 基于基于CANCAN总线的适配器节点设计总线的适配器节点设计 院(系):院(系): 电气工程学院电气工程学院 专业班级:专业班级: 自动化自动化 学学 号:号: 070302078070302078 学生姓名:学生姓名: 王金玉王金玉 指导教师:指导教师: 起止时间:起止时间:2010.12.29-2011.1.072010.12.29-2011.1.07本科生课程设计(论文)课程设计(论文)任务及评语课程设计(论文)任务及评语院(系):电气工程学院 教研室:自动化 学 号070

2、302078学生姓名王金玉专业班级自动化073课程设计(论文)题目基于CAN总线的适配器节点设计课程设计(论文)任务实现功能CAN 总线上的智能节点和其他的智能设备通信,需要完成通信协议和通信标准的转换,设计 CAN 总线适配器,并与 PC 机实现通信(采用 232 标准) 。设计任务及要求1、分析功能,确定设计方案;2、完成主机、总线控制器、驱动器等的选择;3、完成硬件电路的设计,包括框图、原理图、电路图;4、编写标准转换程序,用汇编语言,包括初始化、接收及发送程序;5、要求认真独立完成所规定的全部内容;所设计的内容要求正确、合理。6、撰写、打印设计说明书一份;设计说明书应在 4000 字以

3、上。技术参数1、符合 CAN2.0B 规范;2、高速率,最高可达 1Mbit/s;(设计选定传输速率为 500k bit/s)3、可扩充110个节点.。进度计划1、布置任务,查阅资料,确定系统设计方案(2 天)2、系统硬件设计及模块选择(3 天)3、系统软件软件及编写功能程序及调试(3 天)4、撰写、打印设计说明书(1 天)5、验收及答辩。 (1天)指导教师评语及成绩平时: 论文质量: 答辩: 总成绩: 指导教师签字: 年 月 日本科生课程设计(论文)注:成绩:平时20% 论文质量60% 答辩20% 以百分制计算本科生课程设计(论文)摘 要CAN总线是一种应用极为普及的现场总线。CAN总线作为

4、智能设备的联系纽带,把挂在总线上作为网络节点的智能设备连接为网络系统,并进一步构成自动化系统,实现基本控制的综合自动化系统。本文中提出了一种基于CAN总线的适配器接口的设计方案。CAN总线的适配器智能节点用单片机AT89S51和SJA1000控制器为核心组成。分别从硬件电路设计和SJA1000软件初始化、发送、接收设计方面进行了分析,实现了相应的网络控制功能, 具有较高的实用性。关键词:CAN 总线;智能节点;系统设计本科生课程设计(论文)目 录第 1 章 绪论.1第 2 章 课程设计的方案.22.1 概述 .22.2 系统组成总体结构 .2第 3 章 硬件设计.33.1 单片机最小系统设计

5、.33.2 CAN 总线 .43.3 网络适配器 .53.4 系统总体框图 .6第 4 章 软件设计.74.1 CAN 总线的初始化程序 .74.2 SJA1000 发送和接收数据的流程 .10第 5 章 课程设计总结.15参考文献.16本科生课程设计(论文)1第 1 章 绪论CAN 总线最初是德国 Bosch 公司在 1986 年为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种支持分布式实时控制系统的串行数据通讯总线。CAN 总线与其它通信网的显著不同之处在于: (1)报文传送中不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,该收的收下,不

6、收的弃用。其好处是可线上网下网、即插即用和多站接收。 (2)特别强化了对数据安全性的关注,满足控制系统及其它较高数据要求的系统需求。另外 CAN 总线采用短帧结构,借助接收滤波的多地址帧传送,受干扰概率低,每帧信息都有 CRC 校验及其它检错措施。响应远程数据请求,配置灵活,具有全系统的数据相容性。节点数主要取决于总线驱动电路,目前最多可达 110个节点。CAN 总线符合 ISO11898 标准,通信速率高,最大传输速率可达1Mbit/S,最大传输距离为 10km,传输介质可为双绞线。基于 CAN 总线以上的特点,把它应用于系统分布比较分散且需要在同一总线上挂接多个节点的场合是非常适合的。CA

7、N 总线具有高性能、高可靠性、高性价比、连接方便、实时性好及其独特的设计等突出优点应用于许多工业部门,目前已成为比较流行的一种现场总线,广泛应用于控制系统中的各检测和执行机构之间的数据通信。而实际应用中 PC机与 CAN 总线的人机交互设计尤为重要,它直接影响系统的运行和结果,其连接方法也成为系统设计的重点,通常采取 3 种连接方式:RS-232 串行口通信、PCI卡、USB 口通信,由于串行通信端口在系统控制领域中一直扮演着极为重要的角色,以其开发简单,资源丰富,成本低,无需驱动程序等诸多优点,不仅没有被淘汰,反而在规格上更先进,故应用广泛。结合设计中 AT89S51 单片机有串行通信口且接

8、口简单的特点,选用 RS-232 作为 CAN 总线与 PC 机之间的连接方式。将就这一基于 CAN 控制器 SJA1000 与 AT89S51 的具有通用性的工业测控系统设计的软硬件设计方案作详细介绍。本科生课程设计(论文)2第 2 章 课程设计的方案2.1 概述本次设计主要是综合应用所学知识,设计 CAN 总线适配器接口设计,并在实践的基本技能方面进行一次系统的训练。能够较全面地巩固和应用“现场总线”课程中所学的基本理论和基本方法,并初步掌握适配器智能节点设计的基本方法。系统以单片机 AT89S51 和 SJA1000 控制器为核心,完成通信协议和通信标准的转换,设计 CAN 总线适配器,

9、并与 PC 机实现通信。该系统主要由 AT89S51 控制电路、适配器接口电路、CAN 总线电路、挂起复位电路、光电隔离电路等组成,本设计系统主要部件结构图如图 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 只读程

10、序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS-51 指令系统及 80C51 引脚结构,芯片内集成了通用 8 位中央处理器和 ISP Flash 存储单元,功能强大的微型计算机的 AT89S51 可为许多嵌入式控制应用系统提供高性价比的解决方案。图3.1单片机最小系统本科生课程设计(论文)43.2 CAN 总线在本系统中,CAN 控制器采用 Philips 公司生产的 SJA1000,它作为一个发送、接受缓冲器,实现主控制器和总线之间的数据传输;CAN 收发器采用 TJA1050芯片,它是 CAN 控制器和物理总线的接口,主要可以提供对总线的差动发送能力和

11、对 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 E

12、12CL OCK OUT13INT _N14TX 027TX 126RX 025RX 124MO DE23VD D122VD D221VD D320VSS119VSS218VSS317RST_NXT AL 116XT AL 215SJA1000.图3.2 SJA1000引脚图本科生课程设计(论文)53.3 网络适配器本设计中的 PDIUSBD13 是一个性能优化的适配器器件,通常用于基于微控制器的系统并与微控制器通过高速通用并行接口进行通信。PDIUSBD13 与 MCU 的接口有 2 种方式:多路地址/数据总线方式、单地址/数据总线方式。在这个系统中,我们采用的是前一种方式:使用了 AT89

13、S51 的INT0、ALE、WR、RD 和 P0 口,A0 脚接地,当 PDIUSBD12 接收到主机的有效信息时,会产生一个中断通知 89C52 进行处理。若单片机的输出地址为奇数,则表示对PDIUSBD13 发送指令;若输出地址为偶数,则表示对 PDIUSBD13 进行数据传输。AT89C52 将数据经 PDIUSBD13 的并行接口送入 FIFO 存储器。对一个单片机而言,PDIUSBD13 看起来就像 1 个带 8 位数据总线和 1 个地址位的存储器件。控制CLKOUT 时钟输出为 SJA1000 提供时钟输入。由于在 USB 的信号传递过程中会掺杂进瞬间的高压噪声,这些噪声对 USB

14、 口的收发电路将产生致命的危害,因此需要对这些噪声电压进行抑制。在 USB 接口电路中使用了 SN75240,它可以对 USB 接口中的不正常电压进行有效的抑制,以保证硬件设备的安全。图 3.3 为PDIUSBD13 引脚图。DA TA01DA TA12DA TA23DA TA34GN D5DA TA46DA TA57DA TA68DA TA79AL E10CS_N11SU SPEN D12CL KOU T13INT _N14RD _N15WR_N16DM ACK _N17EO T_N18RE SE T_N19GL _N20XT AL 121XT AL 22223VD D24D-25D+26V

15、O UT27A028PD IUSBD13.图3.3 PDIUSBD13引脚图本科生课程设计(论文)63.4 系统总体框图图 3.4 为系统总体框图,主要说明单片机与 SJA1000 和 PDIUSBD12 的引脚连接。图 3.4 系统总体框图EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11

16、RXD10AD7AD6AD5AD4AD3AD2AD1AD0WR_NRD_NCS_NALECLKOUTINT_NTX0TX1RX0RX1MODEVDD1VDD2VDD3VSS1VSS2VSS3RST_NXTAL1XTAL2SJA10006N1376N137U?6N137CHNCHNSVDDTXDRXDGNDVCCU?TJA1050DATA0DATA1DATA2DATA3GNDDATA4DATA5DATA6DATA7ALECS_NSUSPENDCLKOUTINT_NRD_NWR_NDM REQDM ACK_NEOT_NRESET_NGL_NXTAL1XTAL2VDDD-D+VOUTA0PDIUSB

17、D12器器器U?器器器R?RES2R?RES2.本科生课程设计(论文)7第 4 章 软件设计4.1 CAN 总线的初始化程序 CAN 总线的三层结构模型为:物理层、数据链路层和应用层。其中物理层和数据链路层的功能由 SJA1000 完成,系统的开发主要在应用层软件的设计上,它主要由三个子程序:初始化子程序、发送数据和接收数据程序。同时,还包括一些数据溢出中断以及帧出错的处理。SJA1000 在上电硬件复位之后,必须对其进行软件初始化之后才可以进行数据通讯,初始化过程主要包括对其复位模式下配置时钟分频寄存器 CDR、总线定时寄存器 BTR0 和 BTR1、验收代码寄存器 ACR、验收屏蔽寄存器

18、AMR 及输出控制寄存器 OCR 等,实现对总线的速率、验收屏蔽码、输出引脚驱动方式、总线模式及时钟分频进行定义。图 4.1 为 CAN 总线初始化流程图。图 4.1 CAN 总线初始化流程图开始启动运行指示灯进入复位模式写ACR写AMR写BTR0写BTR1写OCR写CDR开错误中断,发送中断,接收中断,溢出中断结束进入运行模式?清除复位标志位NY本科生课程设计(论文)8CAN 初始化程序:void init_can()large unsigned int data i; for (i=0;i512;i+) _nop_() con_reg=ox41; for(i=0;i512;i+) _nop

19、_() 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=

20、ox55;mesg_reg40=ox55;mesg_reg50=ox55;mesg_reg60=ox55;mesg_reg70=ox55;mesg_reg80=ox55;本科生课程设计(论文)9mesg_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

21、_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;本科生课程设计(论文)104.2 SJA1000 发送和接收数据的流程SJA1000 发送和接收数据的流程,基本过程为主控制器将数据保存到SJA1000 发送缓冲器,然后对命令寄存器的发送请求 TR 标志位进行置位开始发送;接收过程为 SJA1000 将从总线上接收到的数据存入接收缓冲器,通过其中断标志位

22、通知主控制器来处理接收到的信息,接收完毕之后清空缓冲器,等待下次接收。图 4.2 为发送程序流程图,图 4.3 为接受程序流程图。满开始接受缓冲器状态?给缓冲器加载信息发送数据图 4.2 CAN 总线发送程序流程图本科生课程设计(论文)11发送数据程序代码:int can_tran_file(int id ,char *f)void far *ptr;char ch;int i,j,re_comd,length;FILE *fp; get_ram_access_right(); ptr=MK-FP(oxd000,0); FP_OFF(ptr)+=ox100; pokeb(FP_SEG(ptr)

23、,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

24、_ram_acces_right();return(6); i=0; while(!feof(fp) 本科生课程设计(论文)12 fread(&ch,sizeof(char),1,fp); pokeb(FP_SEG(ptr),FP_OFF(ptr),ch); FP_OFF(ptr)+; i+; 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);

25、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); re

26、lease_ram_acces_right(); return(i);本科生课程设计(论文)13YYYNN开始关 CAN 中断数据帧?远程帧?发送数据N读入数据计算校验检验正确?记录数据帧标识符将数据压入接受队列开 CAN 中断结束图 4.3 CAN 总线接收程序流程图接收数据子程序代码: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

27、_seg(ptr),fp_off(ptr),01); fp_off(ptr)+; pokeb(fp_seg(ptr),fp_off(ptr),id);本科生课程设计(论文)14 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+

28、)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=peek

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论