电子论文基于单片机的CAN通信模块设计.docx
- 文档编号:17361830
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:41
- 大小:414.20KB
电子论文基于单片机的CAN通信模块设计.docx
《电子论文基于单片机的CAN通信模块设计.docx》由会员分享,可在线阅读,更多相关《电子论文基于单片机的CAN通信模块设计.docx(41页珍藏版)》请在冰点文库上搜索。
电子论文基于单片机的CAN通信模块设计
本科毕业设计(论文)
题目基于单片机的CAN通信模块设计
学生姓名
专业班级电子信息科学与技术08-1班
学号
院(系)计算机与通信工程学院
指导教师(职称)
完成时间2012年5月31日
郑州轻工业学院
毕业设计(论文)任务书
题目基于单片机的CAN通信模块设计
专业电子信息科学与技术学号姓名
主要内容、基本要求、主要参考资料等:
主要内容:
1.通过对CAN通信技术的学习,理解和掌握CAN通信的原理;
2.运用单片机结合CAN芯片完成系统的软、硬件设计;
3.实现单片机与CAN通信模块的设计。
基本要求:
4.掌握CAN总线的技术规范以及它的应用;
5.分析CAN通信技术,理解CAN通信工作原理;
6.实现各部分的功能设计,接口设计,完成模块设计。
主要参考资料:
[1]饶运涛,邹继军,郑勇芳著现场总线CAN原理与应用技术.北京航空航天大学.2003
[2]邬宽明编著现场总线技术应用选编.北京航空航天大学出版社.
[3]雷霖编著现场总线控制网络技术.北京电子工业出版社.2004.
[4]夏德海编著现场总线技术.中国电力出版社.2004.
完成期限:
2012年5月31日
指导教师签名:
专业负责人签名:
2012年1月5日
基于单片机的CAN通信模块设计
摘要
随着科技的发展、人们生活水平的提高,电子产品变得跟人们形影不离。
它极大的方便了人们的生活,同时也让可靠性也变得尤为重要。
CAN[1]最初出现在汽车工业中,最初动机是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线,由于其良好的性能及独特的设计,CAN总线越来越受到人们的重视。
本文首先简单介绍了单片机的基本特性,CAN在现代控制领域中的应用和它的发展状况及前景,CAN总线的主要性能及特点,以及CAN总线在实际工业应用中的总体结构;主要研究了CAN总线接口电路设计,给出了CAN总线的硬件设计方法和通信协议的具体用法,所设计的总线接口电路由微处理器、CAN控制器、CAN总线收发器组成,并且详细介绍了CAN控制器、CAN收发器的功能以及CAN总线接口的硬件电路和软件设计,最后总结了设计时的注意事项,为后续CAN总线接口电路的应用打下了基础。
关键词 CAN总线;控制器;收发器;电路设计
DESIGNOFMCUANDCANCOMMONICATIONMODULE
ABSTRACT
Withthedevelopmentofscienceandtechnologyandtheincreaseofpeople'slivingstandard,electronicproductsandpeoplewerelikepeasandcarrots.Itgreatlyconvenientonpeople'slife,alsoletsreliabilityalsobecomeespeciallyimportant.CANfirstappearedintheautomobileindustry,theinitialmotivationistosolvethecommunicationbetweenlargemodernautomobileelectroniccontroldevice,reducetheincreasingsignalline,becauseofitsgoodperformanceanduniquedesign,theCANbustakesmoreandmorepeople'sattention.
ThispaperbrieflyintroducesthebasiccharacteristicsofMCU,CANinthemoderncontrolfieldapplicationanditsdevelopmentstatusandprospects,wodescriptthemainCANbusperformanceandfeatures,andCANbususedinindustrialstructure;CANbusonthemaininterfacecircuitdesign,giventheCANbusprotocolconverters,thehardwaredesignmethodsandthemethodofthecommunicationprotocols.Designedbythebusinterfacecircuitsandthemicroprocessor,CANbustransceivercomponents,anddetailsoftheCANcontroller,CANtransceiveroftheCANbusinterfaceandfeaturesofthehardwareaswellassoftwareundertheconditionsoftheconditionsofthehardwaredesign,finallythepapersummarizesthedesignconsiderationsforfollow-upCANlaidthefoundationforapplication.
KEYWORDS CANbus,Controller,Transceiver,Circuitdesign
1绪论
1.1引言
在1980年的早些时候,Bosch公司的工程师就开始论证当时的串行总线用于客车系统的可行性。
因为没有一种现成的网络方案能够完全满足汽车工程师们的要求,于是,在1983年初,UweKiencke开始研究一种新的串行总线。
新总线的主要方向是增加新功能、减少电气连接线,使其能够用于产品,而非用于驱动技术。
来自Mercedes-Benz的工程师较早制定了总线的状态说明,而Intel也准备作为半导体生产的主要厂商。
当时聘请的顾问之一是来自于德的Applied大学教授WolfhardLawrenz博士,他给出了新网络方案的名字“ControllerAreaNetwork”,简称CAN。
最初动机是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线。
1993年CAN成为国际标准ISO11898(高速应用)和ISO11519(低速应用)。
由于其良好的性能及独特的设计,CAN总线越来越受到人们的重视。
随着应用领域的增多,CAN的规范从CAN1.2规范(标准格式)发展为兼容CAN1.2规范的CAN2.0规范(CAN2.0A为标准格式,CAN2.0B为扩展格式),目前应用的CAN器件大多符合CAN2.0规范。
现场总线是一种应用于生产现场,在现场设备之间、现场设备与控制装置之间实行双向、串行、多节点数字通信的技术。
它是一项以智能传感、控制、计算机、数据通信为主要内容的综合技术,是当今自动化领域发展的热点之一,被誉为自动化领域的局域网。
目前国际上存在几十种现场总线标准,比较流行的主要有FF(基金会现场总线)、CAN(控制器局域网)、LonWorks、Profibus[2]等。
1.2单片机与CAN总线
单片机作为嵌入式设备的心脏,在从消费电子到工业应用等广泛的领域中得到应用。
从单片机的历史来看,随着嵌入式设备对单片机功能和性能的要求提高,其经历了从4位机到8位机的发展过程。
目前嵌入式产品的不断发展,8bit单片机的处理能力面对越来越多的挑战,而32bit单片机在嵌入式领域得到越来越多的应用,CAN最初是用于汽车行业的监测、控制,用来解决汽车内部的复杂硬件信号接线的低成本通信总线,现今CAN总线已经被公认为一种可靠的网络总线在汽车上得以应用。
CAN总线共享信息和资源,总线的数据通信提高了系统可靠性、实时性、灵活性、可维护性,更好地匹配和协调各个控制系统。
随着汽车电子技术的发展具有高度灵活性、简单的扩展性、优良的抗干扰性和处理错误能力的CAN总线,越来越受到人们的重视,它在汽车领域上得到了广泛的应用。
单片机与CAN总线的开发与设计也越来越受到人们的重视。
1.3CAN系统的发展前景
CAN总线以其高性能,高可靠性及独特的设计,在现代分布式测量与控制技术领域中的应用已愈来愈广泛。
最近一段时期,国内开发、应用CAN系统的人员正在逐渐增多,对CAN协议的研究也在不断加深,在很多领域,如研制电动汽车和混合动力汽车的863重大课题,已经将CAN作为标准的车内通信协议确定下来。
同时由于CAN总线自身的特点,其应用范围目前已不再局限于汽车行业,而是转向铁路、交通、自动控制、航空航天、航海、机械工业、机器人、医疗器械及安防等领域发展。
CAN总线的发展已经颇具规模,它不仅在汽车领域的应用占据一定优势,在其他工业领域内也占有一席之地。
这要归根于通信技术的不断进步,对通讯本身的要求不断提高,对性价比的关注也逐步提升,这种形势下CAN总线的优势在于其优越的抗干扰能力和性价比。
从2000年开始,一个由数家公司组成的ISO任务组织定义了一种时间触发CAN报文传输的协议。
传统的CAN是基于事件触发的,信息传输时间的不确定性和优先级反转是它固有的缺点。
为了满足汽车控制对实时性和传输消息密度不断增长的需要,改善CAN总线的实时性能非常必要。
在CAN应用蓬勃发展的时候,我们也应当清醒地看到,尽管CAN协议在欧美已经发展了20多年,应用层协议[3]的发展也有10多年时间,但目前国内大多数的应用系统仍然基于CAN2.0B规范开发,还不能在应用层的水平上进一步深入,这不能不说是很遗憾的事情。
另外,国内研究、开发CAN协议,尤其是CAN高层协议的组织和人员还太少,这对CAN在中国的推广是十分不利的。
尽管CAN总线有一定局限,甚至还有漏洞,但对CAN总线的改进还在继续,相信在未来的发展中,CAN总线通过不断的更新和改进,能够取得更大的进步。
1.4论文的结构介绍
本文的主要工作是完成和实现单片机与CAN通信的模块设计,大体的组织结构是:
第一章主要介绍了CAN的概况以及它的应用于发展。
第二章主要对51系列的单片机和CAN总线进行了简单的介绍。
第三章主要是单片机与CAN通信模块的具体软、硬件的设计。
第四章讲了设计模块时应该注意的事项。
第五章是对整篇论文的一个分析和总结。
2AT89C51和CAN总线简介
2.1AT89C51简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器[4]的低电压存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory),而且是高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100万次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的器件MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
2.1.1AT89C51的主要特性
●与MCS-51兼容
●4K字节可编程闪烁存储器
●寿命:
1000万次写/擦循环
●数据保留时间:
10年
●全静态工作:
0Hz-24MHz
●三级程序存储器锁定
●128×8位内部RAM
●32条可编程I/O线
●两个16位定时器/计数器
●5个中断源
●可编程串行通道
●低功耗的闲置和掉电模式
●片内振荡器和时钟电路
图21AT89C51引脚
2.1.2管脚的说明
●VCC:
供电电压。
●GND:
接地。
●P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
●P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
●P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,并且作为输入。
因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
●P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如表格2-1所示:
表格2-1P3引脚的扩展功能
管脚
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
备选功能
RXD(串行输入口)
TXD(串行输出口)
/INT0(外部中断0)
/INT1(外部中断1)
T0(定时器0外部输入)
T1(定时器1外部输入)
/WR(外部数据存储器写选通)
/RD(外部数据存储器读选通)
●RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
●ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR的8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
●/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取址期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
●/EA/VPP:
当/EA保持低电平时,则在此期间使用外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此期间使用内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
●XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
●XTAL2:
来自反向振荡器的输出。
2.1.3振荡器特性、芯片擦除以及串口通讯
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
由于输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度,一般情况下AT89C51经常使用的晶振频率的大小为12MHZ和11.0592MHZ,这些都是为了特定的使用而选择的,这些特定的作用包括定时器的使用以及串口波特率的使用,使用这些特定的晶振,可以使设计的精确性和方便性得到提高,提高设计效率。
芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89c51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
串口通信:
单片机的结构和特殊寄存器,这是你编写软件的关键。
至于串口通信需要用到哪些特殊功能寄存器呢,它们是SCON,TCON,TMOD等,通过对这些寄存器的设置就可以进行串口的通信。
2.2CAN总线简介
CAN[Control(Controller)AreaNetwork]是控制(器)局域网的简称。
CAN是一种有效支持分布式控制或实时控制的串行通信网络,最初由德国Bosch公司20世纪80年代用于汽车内部测试和控制仪器之间的数据通信。
目前CAN总线规范已被国际标准化组织ISO制订为国际标准ISO11898[5],并得到了Motorola、Intel、Philips等大半导体器件生产厂家的支持,迅速推出各种集成有CAN协议的产品。
目前CAN总线主要用于汽车自动化领域,如发动机自动点火、注油、复杂的加速刹车控制(ASC)、抗锁定刹车系统(ABS)和抗滑系统等。
BENZ、BMW等著名汽车上已经采用CAN来满足上述功能。
在工业过程控制领域,CAN也得到了广泛的应用。
2.2.1CAN协议
CAN总线采用分层结构,规范规定了任意两个节点之间的兼容性。
包括电气特件数据解释协议。
CAN协议可分为:
目标层、传送层、物理层。
其中目标层和传送层包括了ISO/OSI定义的数据链路[6]的所有功能。
目标层的功能包括:
确认要发送的信息;为应用层提供接口。
传送层功能包括:
数据帧组织、总线仲裁、检错、错误报告、错误处理。
CAN总线以报文为单位进行信息交换,报文中含有标示符(ID),它既描述了数据的含义又表明了报文的优先权。
CAN总线上的各个节点都可主动发送数据。
当同时有两个或两个以上的节点发送报文时,CAN控制器采用ID进行仲裁。
ID控制节点对总线的访问。
发送具有最高优先权报文的节点获得总线的使用权,其他节点自动停止发送,总线空闲后,这些节点将自动重发报文。
2.2.1.1CAN支持四类信息帧类型
(1)数据帧CAN协议有两种数据帧类型标准2.0A和标准2.0B。
两者本质的不同在于ID[7]的长度不同。
在2.0A类型中,ID的长度为ll位;在2.0B类型中ID为29位。
一个信息帧中包括7个主要的域。
●帧起始域——标志数据帧的开始,由一个显性位组成。
●仲裁域——内容由标示符和远程传输请求位(RTR)组成,RTR用以表明此信息帧是数据帧还是不包含任何数据的远地请求帧。
当2.0A的数据帧和2.0B的数据帧必须在同一条总线上传输时,首先判断其优先权,如果ID相同,则非扩展数据帧的优先权高于扩展数据帧。
●控制域——r0、r1是保留位,作为扩展位,DLC表示一帧中数据字节的数目。
●数据域——包含0~8字节的数据。
●校验域——检验位错用的循环冗余校验域,共15位。
●应答域——包括应答位和应答分隔符。
正确接收到有效报文的接收站在应答期间将总线值为显性电平。
●帧结束——由七位隐性电平组成。
(2)远程帧接受数据的节点可通过发远程帧请求源节点发送数据。
它由6个域组成:
帧起始、仲裁域、控制域、校验域、应答域、帧结束。
(3)错误指示帧由错误标志和错误分界两个域组成。
接收节点发现总线上的报文有误时,将自动发出“活动错误标志”其他节点检测到活动错误标志后发送“错误认可标志”。
(4)超载帧由超载标志和超载分隔符组成。
超载帧只能在一个帧结束后开始。
当接收方接收下一帧之前,需要过多的时间处理当前的数据,或在帧问空隙域检测到显性电平时,则导致发送超载帧。
(5)帧间空隙位于数据帧和远地帧与前面的信息帧之间,由帧间空隙和总线空闲状态组成。
帧间空隙是必要的,在此期间,CAN不进行新的帧发送,为的是CAN控制器在下次信息传递前有时间进行内部处理操作。
当总线空闲时CAN控制器方可发送数据。
2.2.2电气参数及信号表示
总线上的数据采用不归零编码方式[8](NRZ),可具有两种互补的逻辑值之一:
显性及隐性。
CAN总线中各节点使用相同的位速率。
它的每位时间由同步段、传播段、相位缓冲段1及相位缓冲段2组成。
发送器在同步段前改变输出的位数值,接收器在两个相位缓冲段间采样输入位值,而两个相位缓冲段长度可自由调节,以保证采样的可靠性。
另外,CAN总线采用时钟同步技术来保证通讯的同步,提高通信的效率。
2.2.3CAN的主要特点
80年代末,在汽车工业中,由于众多的控制设备与测试仪器之间需要进行大量数据交换,传统的总线无法满足需求,德国BOSCH公司提出了CAN总线,这种新的串行数据通讯协议。
CAN总线即控制器局域网总线,通信接口中集成了CAN协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验[9]、优先级判别等项工作。
它具有如下特点:
1.CAN是到目前为止为数不多的有国际标准的现场总线,总线协议已被国际标准化组织认证,技术比较成熟,控制的芯片已经商品化,性价比高,特别适用于分布式测控系统之间的数据通讯。
2.CAN总线没有采取传统的站地址编码,不对节点进行地址规定,而是把通信数据块进行编码。
这种方法的优点可使网络内的节点个数在理论上不受限制,数据块的标识码可由11位或29位二进制数组成。
这种按数据块编码的方式,使用报文的标识符来指定报文的优先级以及报文的内容,高优先级的节点享有传送报文的优先权。
还可使不同的节点同时接收到相同的数据,这一点在分布式控制系统中非常有用。
采用短帧结构,每一帧的有效字节数为8个,数据传输时间短,受干扰的概率低,重新发送的时间短,从而保证了通信的实时性。
3.CAN总线采用了多主竞争式总线结构,通信介质可以是双绞线、同轴电缆或光导纤维,可以多个主站运行并且分散仲裁。
CAN总线上任意节点可以点对点,一对多及广播集中方式传送和接受数据,而且可以任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。
CAN通讯距离最大是10公里(设速率为5Kbps),最大通信速率为1Mbit/s(设通信距离为40米)。
4.CAN采用非破坏性的总线仲裁技术,即载波侦听多路访问/冲突检测(CSMA/CD)的总线仲裁方式,当多个节点同时发送数据时,优先级低的节点会主动停止发送,高优先级的节点可继续传输,节省总线仲裁时间。
避免多个节点同时开始发送消息而造成总线冲突,保证优先级高的报文能够优先发送。
5.CAN总线协议采用了完善的错误检测与错误处理机制,包括了CRC校验、错误报文自动重发、错误状态判断、临时错误自动恢复等措施,从而很好的保证了数据通信的可靠性。
节点在错误严重的情况下,具
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 论文 基于 单片机 CAN 通信 模块 设计