[毕业设计精品论文]基于can总线的主从机通信系统设计_第1页
[毕业设计精品论文]基于can总线的主从机通信系统设计_第2页
[毕业设计精品论文]基于can总线的主从机通信系统设计_第3页
[毕业设计精品论文]基于can总线的主从机通信系统设计_第4页
[毕业设计精品论文]基于can总线的主从机通信系统设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

本科生课程设计(论文)I课程设计(论文)任务及评语院(系)电气工程学院教研室自动化注成绩平时20论文质量60答辩20以百分制计算学号070302145学生姓名李娜专业班级自动化075课程设计题目基于CAN总线的主从机通信系统设计课程设计(论文)任务课题完成的功能、设计任务及要求、技术参数实现功能以CAN总线为基础,设计主从机间通信,硬件上完成单片机最小系统、总线控制器、驱动器、串口通信等电路的设计,软件上完成主机、从机和CAN总线的收发数据。设计任务及要求1、选择总线控制器、单片机型号,确定设计方案;2、设计单片机最小系统(晶振、电源、复位等);3、设计实现系统功能的单片机外围电路;4、设计CAN总线电路(包括控制器、驱动器、接口电路);5、软件设计(编写主程序、接收、发送程序及相应的流程图)6、要求认真独立完成所规定的全部内容;所设计的内容要求正确、合理。7、撰写、打印设计说明书一份;设计说明书应在4000字以上。技术参数1、符合CAN20B规范;2、CAN节点参数晶振频率为24MHZ,,总线的速度为20KB/S,最大的传输距离为3000M,双滤波接收数据。进度计划1、布置任务,熟悉课设题目,查找及收集相关书籍、资料。(1天)2、确定控制方案、选型。(2天)3、总线电路硬件设计。(3天)4、程序实现及流程图。(2天)5、撰写设计说明书。(1天)6、验收及答辩。(1天)指导教师评语及成绩平时论文质量答辩总成绩指导教师签字年月日本科生课程设计(论文)II摘要现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。CANCONTROLLERAREANETWORK属于现场总线的范畴,是一种多主方式的串行通讯总线,数据通信实时性强。与其它现场总线比较而言,CAN总线具有通信速率高、容易实现、可靠性高、性价比高等诸多特点。本系统要在单片机中实现CAN总线的接口,通过CAN总线,实现两个模块之间的数据通讯。系统主要由四部分所构成PC机、微控制器80C51、独立CAN通信控制器SJA1000和CAN总线收发器PCA82C250。微处理器80C51负责SJA1000的初始化,通过控制SJA1000实现数据的发送和接收等通信任务。CAN总线节点的软件设计主要包括三大部分CAN节点初始化、报文发送和报文接收。本系统通过扩展CAN总线控制器SJA1000,在单片机系统中实现了CAN总线的接口,并且编写了SJA1000的驱动程序,通过读写其的内部寄存器,完成工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR)和接收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设置等基本操作;利用各基本操作,完成了对SJA1000的初始化,并且实现了数据发送和接收。关键词CAN总线;SJA1000;89C51;PCA82C250。本科生课程设计(论文)III目录第1章绪论1第2章课程设计的方案221概述222系统组成总体结构2第3章硬件设计331单片机最小系统设计3311单片机AT89C513312时钟电路4313复位电路设计4314电源电路设计532CAN总线电路设计5321控制器SJA10005322驱动器及接口电路MAX2326323发送隔离6N1376324收发器PCA82C250733硬件原理图9第4章软件设计1041主程序1042初始化子程序1043报文发送子程序1244报文接收子程序12第5章系统实验数据及分析14第6章课程设计总结15附录程序清单16参考文献22本科生课程设计(论文)1第1章绪论CAN即控制器局域网络,控制器局部网(CANCONTROLLERAREANETWORK)是BOSCH公司领先推出的一种多主机局部网,由于其高性能、高可靠性、实时性等优点现已广泛应用于工业自动化、多种控制设备、交通工具、医疗仪器以及建筑、环境控制等众多部门。控制器局部网将在我国迅速普及推广。由于CAN为愈来愈多不同领域采用和推广,导致要求各种应用领域通信报文的标准化。为此,1991年9月PHILIPSSEMICONDUCTORS制订并发布了CAN技术规范(VERSION20)。该技术规范包括A和B两部分。20A给出了曾在CAN技术规范版本12中定义的CAN报文格式,能提供11位地址;而20B给出了标准的和扩展的两种报文格式,提供29位地址。此后,1993年11月ISO正式颁布了道路交通运载工具数字信息交换高速通信控制器局部网(CAN)国际标准(ISO11898),为控制器局部网标准化、规范化推广铺平了道路。本科生课程设计(论文)2第2章课程设计的方案21概述本次设计主要是综合应用所学知识,设计基于CAN总线的主从机通信系统,并在实践的基本技能方面进行一次系统的训练。能够较全面地巩固和应用“工业控制网络”课程中所学的基本理论和基本方法,并初步了解CAN总线协议规范。系统介绍扩展CAN总线控制器,在单片机系统中实现CAN总线的接口,并编写接口芯片的驱动程序。通过CAN总线,实现两个模块之间的数据通讯,CPU控制第一个模块发送1帧数据,第二个模块收到这帧数据并送至另一个CPU的内部存储器。22系统组成总体结构在本系统中,采用AT89C51单片机,AT89C51与PC机串行通信,设置SJA1000工作于INTEL模式,由PC机发送的数据写入SJA1000并通过CAN收发器发送。接收数据是通过中断进行的,CAN总线传输过来的数据经CAN接口芯片PCA82C250接收并写入SJA1000的RXFIFO,然后通过中断提请CPU读取,读取的数据上传送给PC机。系统结构框图如图21所示。82C250收发器6N137发送隔离6N137发送隔离SJA1000CAN总线控制器AT89C51单片机MAX232图21系统结构框图本科生课程设计(论文)3第3章硬件设计31单片机最小系统设计311单片机AT89C51ATMEL公司生产的AT89C51单片机采用高性能的静态80C51设计,并采用先进工艺制造,还带有非易失性FLASH程序存储器。它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。其主要特点如下图31AT89C51面向控制的8为CPU;一个片内振荡器和时钟产生电路,振荡频率为024MHZ;片内4KBFLASHROM程序存储器;128B的片内数据存储器;可寻址64KB的片外程序存储器和片外数据存储器控制电路;2个16位定时/计数器;本科生课程设计(论文)45个中断源,2个中断优先级;一个全双工的异步串行口;4个并行I/O口,共32条可单独编程的I/O线;21个特殊功能寄存器;具有节点工作方式,即休闲方式和掉电保护方式;312时钟电路时钟电路用于产生单片机工作所需的时钟信号。时钟信号可以有两种方式产生内部时钟方式和外部时钟方式。本设计选用内部时钟方式如图32所示。图32时钟电路313复位电路设计复位操作可以使单片机初始化,也可以使死机状态下的单片机重新启动,因此复位电路对单片机非常重要。复位电路一般分为上电复位,按键复位等。本系统所选用的复位电路为按键复位如图33。图33按键复位电路本科生课程设计(论文)5314电源电路设计本系统用LM1572芯片设计电源电路。LM1572是一个频率为500KHZ降压型开关脉宽调制稳压电路,可驱动15A的负载,占用较小的PCB空间,有极好的电流响应特性和较宽的工作电压范围,是美国国半公司采用先进的模拟双极形CMOS与DMOS处理工艺制造,能够较高的开关频率下提供较高的效率。内置150M场效应功率管可在较小的封装中提供较大的功率。其输出电压可固定5V和33V或可调输出。电路图如图34所示。图34电源电路32CAN总线电路设计321控制器SJA1000SJA1000是PHILIPS公司早期CAN控制器PCA82C200的替代品,功能更强,具有如下特点1完全兼容PCA82C200及其工作模式,即BASICCAN模式;2具有扩展的接收缓冲器,64字节的FIFO结构;3支持CAN20B;4支持11位和29位识别码;5位速率可达1MBIT/S;6支持PELICAN模式及其扩展功能;724MHZ的时钟频率;8支持与不同微处理器的接口;9可编程的CAN输出驱动配置;本科生课程设计(论文)6对于CPU来说,CAN控制器是确保双方独立工作的存贮器映象外围设备。CAN控制器与外部CPU的接口是通过控制器接口逻辑(CIL)实现的,80C51的CPU通过将地址总线(AB)和数据总线(DB)连接到CIL上来完成与CAN控制器之间的信息交换,不需要专门的控制总线(CB),CPU与PCA82C250之间的状态、控制和命令信号的交换在CAN控制器中完成。SJA1000与单片机的接口电路如图35所示图35SJA1000与单片机的接口电路322驱动器及接口电路MAX232MAX232芯片是美信公司专门为电脑的RS232标准串口设计的接口电路,使用5V单电源供电。它的内部结构可分为三个部分;第一部分是电荷泵电路,由1、2、3、4、5、6脚和4只电容构成,功能是产生12V和12V两个电源,提供给RS232串口电平的需要。第二部分是数据转换通道,由7、8、9、10、11、12、13、14脚构成两个数据通道,其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道;8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道;TTL/CMOS数据从T1IN、T2IN输入转换成RS232数据从T1OUT、T2OUT送到电脑DP9插头;DP9插头的RS232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。第三部分是供电。15脚DNG、16脚VCC(5V)。MAX232芯片引脚如图36所示。323发送隔离6N137高速光电耦合器6N137由磷砷化镓发光二极管和光敏集成检测电路组成。通过光敏二极管接收信号并经内部高增益线性放大器把信号放大后,由集电极开路本科生课程设计(论文)7门输出。6N137引脚图如图37所示。该光电器件高、低电平传输延迟时间短,典型值仅为45NS,已接近TTL电路传输延迟时间的水平。具有10MBPS的高速性能,因而在传输速度上完全能够满足隔离总线的要求。内部噪声防护装置提供了典型10KV/S的共模抑制功能。除此之外,6N137还具有一个控制端,通过对该端的控制,可使光耦输出端呈现高阻状态。图36MAX232引脚图图37发送隔离6N137324收发器PCA82C250PCA82C250是CAN协议控制器和物理总线间的接口,它主要是为汽车中高速通讯(高达1MBPS)应用而设计。此器件对总线提供差动发送能力,对CAN控制器提供差动接收能力,与ISO11898标准完全兼容。PCA82C250芯片由接收器、驱动器、基准电压产生电路、工作模式选择电路及保护电路等组成。PCA82C250内部的限流电路可以防止发送输出级对电池电压的正端和负端短路。虽然在这种故障条件出现时,功耗将增加,但这种特性可以阻止发送器输出级的破坏。在节点温度大约超过160时,两个发送器输出端的极限电流将减少。由于发本科生课程设计(论文)8送器是功耗的主要部分,因此芯片温度会迅速降低。PCA82C50芯片的其他部分将继续工作。当总线短路时,热保护十分重要。图38PCA82C250本科生课程设计(论文)933硬件原理图P101P112P123P134P145P156P167P178RESET9P3010P3111P32INT012P34INT113P34T014P35T115P36WR16P37RD17XTAL218XTAL119VSS20P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/PROG30AE/VPP31P0732P0633P0534P0435P0336P0237P0138P0039VCC40U189C515VVCCAD023AD124AD225AD326AD427AD528AD61AD72CS4RD5WR6ALE3INT16TX013TX114RX019RX120CLKOUT7MODE11VDD122VDD218VDD312VSS18VSS221VSS315X19X210U2SJA1000C3C4Y1VCCY1C1C2VCCC5C6C75VTXD1GND2VCC3RXD4VREF5CANL6CANH7RS8U682C250R2OUT9T2IN10T1IN11R1OUT12R1IN13T1OUT14GND15VCC16C11V2C13C24C25V6T2OUT7R2IN8C232162738495J1DGNDP00P01P02P03P04P05P06P07RDWRALEINT0P20VCC8IN2VDD3GND5OUT6EN7U46N137IN2OUT3GND5VDD6EN7VCC8U56N137VCCVDDAD0AD1AD2AD3AD4AD5AD6AD7RDWRALEINT0CS本科生课程设计(论文)10第4章软件设计41主程序CAN总线节点的软件设计主要包括三大部分CAN节点初始化、报文发送和报文接收。程序开始运行后,先调用初始化子程序,分别对两个CAN模块中的SJA1000进行初始化,然后把要发送的数据写入CPU的存储器中,然后循环调用发送数据子程序和接收数据子程序。具体流程如图41所示。开始CAN1初始化CAN2初始化待发送数据写入存储器CAN1发送数据CPU读取数据结束图41主程序流程图42初始化子程序SJA1000的初始化只有在复位模式下才可以进行,初始化主要包括工作方式的设置、接收滤波方式的设置、接收屏蔽寄存器(AMR)和接收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设置等。在完成SJA1000本科生课程设计(论文)11的初始化设置以后,SJA1000就可以回到工作状态,进行正常的通信任务。初始化子程序先设置MOD选择复位模式,然后分别设置CDR选择工作模式;设置IER选择中断类型;设置BTR0、BTR1设定传输速率;设置OCR选择输出模式;设置ACR、AMR设定接收数据类型;RBSA、TXERR、ECC均清零,最后设置MOD进入工作模式。具体流程如图42所示开始设置复位模式设置时钟分频寄存器设置中断时间寄存器设置总线定时寄存器设置输出控制寄存器设置验收代码寄存器设置验收屏蔽寄存器接收缓冲器首地址清零发送错误计数器清零错误代码捕捉寄存器清零进入工作模式结束图42初始化子程序流程图本科生课程设计(论文)1243报文发送子程序发送子程序负责节点报文的发送。发送时用户只需将待发送的数据按特定格式组合成一帧报文,送入SJA1000发送缓存区中,然后启动SJA1000发送即可。发送数据子程序先把三个控制字节写入发送缓冲区,然后把等待发送的数据也写入发送缓冲区,最后设置CMR,发出发送请求、启动SJA1000发送数据。具体流程如图43所示。开始控制字节写入发送缓冲区待发送数据写入发送缓冲设置命令寄存器启动SJA1000发送结束图43发送子程序流程图44报文接收子程序接收子程序负责节点报文的接收以及其它情况处理。接收子程序比发送子程序要复杂一些,因为在处理接收报文的过程中,同时要对诸如总线脱离、错误报警、接收溢出等情况进行处理。SJA1000报文的接收主要有两种方式中断接收方式和查询接收方式,两种接收方式编程的思路基本相同,如果对通信的实时性要求不是很强,一般采用查询接收方式。接收数据子程序首先要读SR和IR,判断工作状态及中断类型并做相应处理,若RXFIFO有数据,应判断帧类型并做相应处理,若数据正确则送至CPU的内部存储器。具体流程如图44所示本科生课程设计(论文)13图44接收子程序流程图本科生课程设计(论文)14第5章系统实验数据及分析系统要求CAN总线参数为晶振频率为24MHZ,,总线的速度为20KB/S,最大的传输距离为3000M,双滤波接收数据。根据上述参数计算总线定时器0和定时器1得控制字,计算过程如下由总线的速度为20KB/S得SKBTBAUD/201MTTTTTSEGTSEGSYN5012因为晶振频率为24MHZ,所以SMTCLK241MBRPBRPBRPBRPBRPBRPTTCLKSCL52101224384165322MSJWSJWTTSCLSJW51012SMTCLK241SMBRPBRPBRPBRPBRPBRPTTCLKSCL52101224384165322MSJWSJWTTSCLSJW51012S得总线定时器0各控制字位76543210SJW1SJW0BRP5BRP4BRP3BRP2BRP1BRP001011101即BTR05DH得总线定时器1各控制字位76543210SAMTSEG22TSEG21TSEG20TSEG13TSEG12TSEG11TSEG1000101111即BTR12FH本科生课程设计(论文)15第6章课程设计总结本文设计的基于CAN总线的主从机通信系统,可实现主机与从机之间的数据通信。系统设计的关键部分是CAN总线通信接口适配卡的设计,其任务是将PC的数据和控制参数迅速传送给给定的网络节点,同时将CAN网络节点数据送到PC做进一步处理。其功能主要由MAX232接口芯片、AT89C51单片机、SJA1000CAN总线控制器、发送隔离6N137及82C250完成。节点与上位机之间的数据通信稳定可靠,可以通过现场设置模块修改节点参数。系统中只有2根线与外部相连,并且内部集成了错误探测和管理模块。CAN总线通过CAN收发器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会在出现在RS485网络中的现象,即当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题,使得总线处于“死锁”状态。而且,CAN具有的完善的通信协议可由CAN控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期,这些是仅有电气协议的RS485所无法比拟的。实验表明了节点的实用性与可靠性开发过程中提到的技术方案和实现方法可以在汽车内部系统与各个检测和执行机构间的数据通信设计中推广应用。本科生课程设计(论文)16附录程序清单CANASMMODEQU00H模式寄存器CMREQU01H命令寄存器SREQU02H状态寄存器IREQU03H中断寄存器IEREQU04H中断使能寄存器BTR0EQU06H总线定时寄存器0BTR1EQU07H总线定时寄存器1OCREQU08H输出控制寄存器ALCEQU0BH仲裁丢失捕捉寄存器ECCEQU0CH错误代码捕捉寄存器TXERREQU0FH发送错误计数器ACR0EQU10H验收代码寄存器0ACR1EQU11H验收代码寄存器1ACR2EQU12H验收代码寄存器2ACR3EQU13H验收代码寄存器3AMR0EQU14H验收屏蔽寄存器0AMR1EQU15H验收屏蔽寄存器1AMR2EQU16H验收屏蔽寄存器2AMR3EQU17H验收屏蔽寄存器3FINEQU10H发送/接收帧信息ID1EQU11H发送/接收缓冲区之标示符一ID2EQU12H发送/接收缓冲区之标示符二DATA1EQU13H发送/接收数据首址RBSAEQU1EH接收缓冲器起始地址CDREQU1FH时钟分频寄存器READERCOS10ORG4000HJMPSTARTORG4080H主程序STARTMOVDPH,0D3HCAN1初始化CAN1片选为LCS20D300HMOVR0,0AAH验收代码为AAHLCALLINITCAN本科生课程设计(论文)17MOVDPH,0D4HCAN2初始化CAN2片选为LCS30D400HMOVR0,0BBH验收代码为BBHLCALLINITCANMOVR0,20H20H27H赋初值MOVR1,00HMOVDPTR,TXDATASS1MOVA,R1MOVCA,ADPTRMOVR0,AINCR0INCR1CJNER1,08,SS1CAN1发送1帧数据LOOPMOVDPH,0D3HMOVR0,20HLCALLSEND发送20H为首址的1帧数据前三控制字节为08H、BBH、FFH,由程序给出)LCALLDELAY调用延时子程序CAN2接收1帧数据MOVDPH,0D4HMOVR0,30HLCALLRECV调用接收数据子程序NOP设断点处HALTJMPLOOPTXDATADB0AAH,0BBH,0CCH,0D4H要发送的一帧数据,用户可改写DB0E5H,0F6H,97H,18H初始化子程序INITCANDPH、R0为入口参数MOVDPL,MOD模式寄存器,选择双验收滤波器模式,进入复位模式MOVA,09HMOVXDPTR,AMOVDPL,CDR时钟分频器,选择PELICAN模式,MOVA,88H关闭CLKOUT输出本科生课程设计(论文)18MOVXDPTR,AMOVDPL,IER中断使能寄存器,开溢出、错误、MOVA,0DH接收中断MOVXDPTR,AMOVDPL,BTR0总线定时寄存器0MOVA,03HMOVXDPTR,AMOVDPL,BTR1总线定时寄存器1,6MHZ晶振,MOVA,0FFH波特率30KBPSMOVXDPTR,AMOVXA,DPTRMOVDPL,OCR输出控制寄存器,选择正常输出模式MOVA,0AAHMOVXDPTR,AMOVDPL,ACR0验收代码寄存器ACR0MOVA,R0MOVXDPTR,AINCDPTR验收代码寄存器ACR1MOVA,0FFHMOVXDPTR,AINCDPTR验收代码寄存器ACR2MOVXDPTR,AINCDPTR验收代码寄存器ACR3MOVXDPTR,AMOVDPL,AMR0验收屏蔽寄存器AMR0MOVA,00HMOVXDPTR,AINCDPTR验收屏蔽寄存器AMR1MOVA,0FFHMOVXDPTR,AINCDPTR验收屏蔽寄存器AMR2MOVXDPTR,AINCDPTR验收屏蔽寄存器AMR3MOVXDPTR,AMOVDPL,RBSA接收缓冲器起始地址为0MOVA,00HMOVXDPTR,A本科生课程设计(论文)19MOVDPL,TXERR清除发送错误计数器MOVXDPTR,AMOVDPL,ECC清除错误代码捕捉寄存器MOVXDPTR,AMOVDPL,MOD双验收滤波器模式,返回工作模式MOVA,08HMOVXDPTR,ARET发送数据子程序SENDDPH、R0为入口参数MOVDPL,FINSJA1000发送缓存区首址MOVA,08HMOVXDPTR,AINCDPLMOVA,0BBHMOVXDPTR,AINCDPLMOVA,0FFHMOVXDPTR,AINCDPLMOVR2,08HSEND1MOVA,R0R0为发送数据首址MOVXDPTR,AINCR0INCDPLDJNZR2,SEND1MOVDPL,CMR命令寄存器发出发送请求,MOVA,01H启动SJA1000发送MOVXDPTR,ARET接收数据子程序RECVDPH、R0为入口参数MOVDPL,SR状态寄存器地址MOVXA,DPTRANLA,0C3H读取总线

温馨提示

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

评论

0/150

提交评论