欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于单片机的CAN总线通讯实现.docx

    • 资源ID:3400650       资源大小:1.09MB        全文页数:30页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机的CAN总线通讯实现.docx

    1、基于单片机的CAN总线通讯实现基于单片机的CAN总线通讯实现:班级:指导教师:摘要CAN总线是控制器局域网总线(ControllerArea Network)的简称。属于现场总线的畴,是一种有效支持分布式控制或实时控制的串行通信网络。CAN总线是一种多主方式的串行通讯总线,是国际上应用最广泛的现场总线之一,现已被应用到各个自动化控制系统中,从高速的网络到低价位的多路接线都可以使用CAN总线。本文重点就基于单片机的CAN总线通信设计的实现进行介绍,通过CAN控制器以与CAN收发器把串口发送来的数据转换成CAN通信的数据,然后又把数据转换成串口通信数据回发给计算机,实现数据的自发自收。关键词:CA

    2、N总线;AT89S52;SJA1000;PCA82C250Communication of MCU based on CAN-busAbstract:CAN-bus,which is controller LAN-bus (contro1ler AreaNetwork) for short.,belongs to the category of field bus, which is a kind of effective support distributed control or real-time control of serial communication network.CAN-b

    3、us is a main way more than the serial communication bus, which is one of the most widely used international field bus. It has been used in various automatic control system, from the network to the low price of multi-channel wiring CAN. This paper,which focuses on the CAN bus communication design, is

    4、 based on the MCU to achieve . Through the CAN controller and CAN transceiver, the data is converted to the serial port to send the CAN communication data, and then put the data into the serial communications data back to the computer of spontaneous self-received.Key words:CAN- bus; AT89S52 devices;

    5、 SJA1000; PCA82C250第一章 前言1.1概述控制器局域网(CANController Area Network)属于现场总线(Fieldbus)的畴,是众多的属于现场总线标准之一,它适用于工业控制系统,具有通信速率高、可靠性强、连接方便、性能价格比高等诸多特点。它是一种有效支持分布式控制或实时控制的串行通信网络,以其短报文帧与CSMA/CD-AMP(带有信息优先权与冲突检测的载波监听多路访问)的MAC(媒介访问控制)方式而倍受工业自动化领域中设备互连的厚爱。CAN的应用围遍与从高速网络到低成本的多线路网络,它可以应用于汽车系统、机械、技术设备和工业自动化里几乎任何类型的数据通信

    6、。随着计算机硬件、软件与集成电路技术的迅速发展,同时消费类电子产品、计算机外设、汽车和工业应用等的需求不断增加。高速、高可靠和低成本的通信介质的要求也随之提高。现场总线是当今自动化领域技术发展的热点之一,它为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。微处理器中常用的串行总线是通用异步接收器传输总线(UART)、串行通信接口(SCI)、同步外设接口(SPI)、部集成电路(I2C)和通用串行总线(USB),以与车用串行总线,包括控制器区域网(CAN)和本地互连网(LIN)等。这些总线在速度、物理接口要求和通信方法学上都有所不同。在计算机数据传输领域,长期以来使用的通信

    7、标准,尽管被广泛使用,但是无法在需要使用大量的传感器和控制器的复杂或大规模的环境中使用。控制器局部网CAN(CONTROLLER AERANETW0RK)就是为适应这种需要而发展起来的。随着汽车电子技术的发展,消费者对于汽车功能的要求越来越多,汽车上所用的电控单元不断增多,电控单元之间信息交换的需求,使得电子装置之间的通讯越来越复杂,同时意味着需要更多的连接信号线,这就促进了车用总线技术的发展。CAN 总线的出现,就是为了减少不断增加的信号线,所有的外围器件都可以被连接到总线上 由于CAN总线具有可靠性高、实时性好、成本合理等优点,逐渐被应用于如船舶、航天、工业测控、自动化、电力系统、楼宇监控

    8、等其他领域中。1.2 CAN总线的特点80年代末,在汽车工业中,由于众多的控制设备与测试仪器之间需要进行大量数据交换,传统的总线无法满足需求,德国BOSCH公司提出了CAN 总线,这种新的串行数据通讯协议。CAN总线即控制器局域网总线,通信接口中集成了CAN 协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,包括位填充、数据块编码、循环冗余检验、优先级判别等项工作。CAN (Controller Area Network)属于现场总线的一种,在传统的工业控制领域中,大部分的通信采用RS232、RS485或RS422总线。相比之下,RS232、RS485或RS422总线有着通信距离近,通

    9、讯速度慢,抗干扰性能差等缺点。通讯一般采用主从方式,通过主站查询方式进行通讯,实时性、可靠性较差。当系统有错误,多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点。基于CAN 总线的分布式控制系统在很多方面具有明显的优越性。L而CAN 的电路结构简单,要求的线数较少,只需要两根线与外部器件互联,使得各控制单元能够通过CAN总线共享所有的信息和资源。达到简化布线、减少传感器数量、避免控制功能重复的效果。CAN 具有的完善的通信协议,并且可以通过CAN 控制器芯片与其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期。CAN支持分布式控制或实时控制,工作于多主方式,网络上各个节点

    10、均可以在任一时刻主动发送信息,可以点对点,点对多点以与全局广播方式收发数据。网络中的各节点都可根据总线访问优先权,采用非破坏性总线总裁技术,通信速度快,可靠性高,可大大节省了总线仲裁冲突时间,在网络负载很重的情况下 也不会出现网络瘫痪。CAN没有采用站地址编码,而是对通信数据进行编码,这可使不同的节点同时接收到数据,这使得CAN 总线的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。它具有如下特点:1)CAN 是到目前为止为数不多的有国际标准的现场总线,总线协议已被国际标准化组织认证,技术比较成熟,控制的芯片已经商品化,性价比高,特别适用于分布式测控系统之间的数通讯。

    11、2)CAN总线没有采取传统的站地址编码,不对节点进行地址规定,而是把通信数据块进行编码。这种方法的优点可使网络的节点个数在理论上不受限制,数据块的标识码可由1l位或29位二进制数组成。这种按数据块编码的方式,使用报文的标识符来指定报文的优先级以与报文的容,高优先级的节点享有传送报文的优先权。还可使不同的节点同时接收到一样的数据,这一点在分布式控制系统中非常有用。采用短帧结构,每一帧的有效字节数为8个,数据传输时间短,受干扰的概率低,重新发送的时间短,从而保证了通信的实时性。3)CAN 总线采用了多主竞争式总线结构,通信介质可以是双绞线、同轴电缆或光导纤维,可以多个主站运行并且分散仲裁。CAN总

    12、线上任意节点可以点对点,一对多与广播集中方式传送和接受数据,而且可以任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。CAN 通讯距离最大是1O公里(设速率为5Kbps),最大通信速率为1Mbits(设通信距离为4O米)。4)CAN 采用非破坏性的总线仲裁技术,即载波侦听多路访问冲突检测(CSMACD)的总线仲裁方式,当多个节点同时发送数据时,优先级低的节点会主动停止发送,高优先级的节点可继续传输,节省总线仲裁时间。避免多个节点同时开始发送消息而造成总线冲突,保证优先级高的报文能够优先发送。5)CAN总线协议采用了完善的错误检测与错误处理机制,包括了CRC校验、

    13、错误报文自动重发、错误状态判断、临时错误自动恢复等措施,从而很好的保证了数据通信的可靠性。节点在错误严重的情况下,具有自动关黔6)闭总线的功能,切断它与总线的联系,以使总线上其他操作不受影响。CAN 总线采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作。具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点。可根据报文的ID决定接收或屏蔽该报文。可靠的错误处理和检错机制,发送的信息遭到破坏后,可自动重发,报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。CAN卓越的特性、极高的可靠性和独特的设计,特别适合工业过程监控设备的通信,因此,越来越受到工业界的重视,并已公

    14、认为最有前途的现场总线之一。CAN总线通过CAN 控制器接口芯片的输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。CAN 总线的信号状态为2种,隐位与显位。当隐位与显位发送出现竞争时,最终结果是显位。在处理冲突时,由于该信号的二值且“单稳态”的特性变得简单,报错帧可以使所有节点很容易地取得一致性的数据,并且保证了节点状态的同步,这种二值特性对CAN 总线的可靠性有很大保障。而且CAN 节点在出现严重错误的情况下,可以自动关闭输出,避免总线上其他节点的操作受影响,从而保证不会因个别节点出现问题,而使得总线处于”死锁”状态。CAN

    15、 总线具有位填充、回读、错误约束、出错自动重发等优点,同时通信速率高、通信距离远、容易实现、且性价比高。1.3 CAN总线的发展前景CAN 最初是用于汽车行业的监测、控制,用来解决汽车部的复杂硬件信号接线的低成本通信总线,现今CAN总线已经被公认为一种可靠的网络总线在汽车上得以应用。CAN总线共享信息和资源,总线的数据通信提高了系统可靠性、实时性、灵活性、可维护性,更好地匹配和协调各个控制系统。随着汽车电子技术的发展具有高度灵活性、简单的扩展性、优良的抗干扰性和处理错误能力的CAN 总线,越来越受到人们的重视,它在汽车领域上得到了广泛的应用。世界上一些著名的汽车制造厂商,都采用了CAN总线来实

    16、现汽车部控制系统与各检测和执行机构间的数据通信。近年来CAN 总线已发展成为汽车电子系统的主流总线,已形成国际标准的现场总线,并由ISO正式颁布了IS011898CAN 高速应用标准和ISO11519CAN 低速应用标准,这为CAN 总线的标准化、规化铺平了道路。CAN 总线以其高性能,高可靠性与独特的设计,在现代分布式测量与控制技术领域中的应用已愈来愈广泛。同时由于CAN 总线自身的特点,其应用围目前已不再局限于汽车行业,而是转向铁路、交通、自动控制、航空航天、航海、机械工业、机器人、医疗器械与安防等领域发展。CAN总线的发展已经颇具规模,它不仅在汽车领域的应用占据一定优势,在其他工业领域也

    17、占有一席之地。这要归根于通信技术的不断进步,对通讯本身的要求不断提高,这种形势下CAN 总线的优势在于其优越的抗干扰能力和性价比。尽管CAN总线有一定局限,甚至还有漏洞,但对CAN 总线的改进还在继续,相信在未来的发展中,CAN 总线通过不断的更新和改进,能够取得更大的进步。第2章 系统方案总体设计2.1 系统原理当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向容的编址方案。在同一系统中标识符是唯一的,不可能有两个站发送具有一样标识符的

    18、报文。当几个站同时竞争总线读取时,这种配置十分重要CAN总线的报文发送和接收。当一个站要向其它站发送数据时,该站的CPU将要发送的数据和自己的标识符传送给本站的CAN芯片,并处于准备状态;当它收到总线分配时, 转为发送报文状态。CAN芯片将数据根据协议组织成一定的报文格式发出,这时网上的其它站处于接收状态。每个处于接收状态的站对接收到的报文进行检测,判断这些报文是否是发给自己的,以确定是否接收它。由于CAN总线是一种面向容的编址方案,因此很容易建立高水准的控制系统并灵活地进行配置。我们可以很容易地在CAN总线中加进一些新站而无需在硬件或软件上进行修改。当所提供的新站是纯数据接收设备时,数据传输

    19、协议不要求独立的部分有物理目的地址。它允许分布过程同步化,即总线上控制器需要测量数据时,可由网上获得,而无须每个控制器都有自己独立的传感器。2.2 系统总体设计方框图图2-1 系统总体设计方框图2.2.1 51单片机系统的控制芯片采用AT89S52单片机来控制,因为AT89S52应用比较广泛,并且成本低,操作控制简单,功耗较低,运行可靠性强。系统本身对处理器处理速度的要求不是很高,所以选择该款单片机。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上F

    20、lash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片晶振与时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM容被保存,振荡器被冻结,单片

    21、机一切工作停止,直到下一个中断或硬件复位为止。图2-2 AT89S52引脚结构图2-3 AT89S52部结构图VCC : 电源GND: 地P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口:P1 口是一个具有部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“

    22、1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。表2-1 P1口引脚功能引脚号第二功能P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5 MOSI(在系统编程用)P1.6 MISO(在系统编程用)P1.7 SCK(在系统编程用)P2 口:

    23、P2 口是一个具有部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有部上拉电阻的8 位双向I/

    24、O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。表2-2 P3口引脚功能引脚号第二功能P3.0 RXD(串行输入)P3.1 TXD(串行输出)P3.2 INT0(外部中断0)P3.3 INT0(外部中断0)P3.4 T0(定时器0外部输入)P3.5 T1(定时器1外部输入)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据

    25、存储器写选通)RS: 复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR

    26、的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行部程序指令,EA应该接VCC。在flash编程期间

    27、,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出2.2.2 CAN总线收发器PCA82C250 是CAN 协议控制器和物理总线的接口这个器件对总线提供不同的发送能力和对CAN控制器提供不同的接收能力。图2-4 82C250引脚结构表2-3 82C250引脚管脚功能描述标记管脚功能描述TXD 11发送数据输入GND 22接地VCC 33提供电压RXD 44接收数据输出Vref 55参考电压输出CANL 66低电平CAN电压输入/输出CANH 77高电平CAN电压输入输出RS88 Slope 电阻输入图2-5 82C250方框图

    28、功能描述:PCA82C50 是CAN 协议控制器和物理总线的接口,它主要用于汽车里的高速应用(高达1Mbaud)。这个器件对总线提供不同的发送能力和对CAN控制器提供不同的接收能力完全和ISO11898标准兼容。限定的电流值保护接收器输出级,避免阳极和阴极的短路,尽管在默认的条件下功率消耗是增加的这个特征值将防止发送器输出级的毁坏。如果节点温度超过大约160摄氏度,发送器限定的电流值输出被降低因为发送器占去大部分的功率消耗,这将导致降额功耗和较低的片温度,IC中的其它部分在使用中将保持不变,当总线短路的时候热保护非常需要。这个CANH CANL线也被保护防止自动运作过程中电流的瞬变。表2-4

    29、CAN收发器真值表提供TXD(发送)CANHCANL总线状况RXD 接收4.5to5.5V0高低控制04.5to5.5V1(或悬空)悬空悬空接收12V(未上电)X悬空悬空接收X2VVCC0.75 VCC悬空悬空接收X2VVCC0.75VCC悬空若VRS0.75VCC悬空接收X注意:X=随意值表2-5 管脚 RS真值表在RS管脚上强制条件模式在RS管脚上电压和电流VRS0.75VCC备用IRS| 10 A|10 A IRS 200 A斜率控制0.3VCC VRS0.6VCCVRS0.3VCC高速IRS 500 A管脚8 RS 有三种不同的工作模式可被选择: 高速,备用,斜率控制。对于高速工作模式

    30、,发送器输出级晶体管被尽可能地快启动和关闭,在这种模式下,没有措施用于限制上升和下降的斜度。建议使用屏蔽电缆可避免RFI 这种问题。通过把管脚8接地选择这个模式。对于低速或较短的总线长度,可使用一种没有屏蔽的双绞线或平行线。对于降低 RFI,上升和下降的斜率是个限定值,上升和下降的斜率能够被编程,通过从管脚8 接一个电阻至地,这个斜率和管脚8 的电流输出成比例。如果高电平被接至管脚8 ,电路进入低电流保护模式。在这种模式下,发送器被关闭,接收器开至低电流。如果控制位被检测(不同的总线电压0.9V), RXD 将被开至低电平。这个微型控制器应对这个条件有所反应,通过转换收发器至正常工作状态。(经

    31、过管脚8)因为这个接收器在备用模式下比较慢,第一条信息会丢失掉。2.2.3 CAN总线控制器CAN总线控制器选用SJA1000,SJAl000是一个独立的控制器,有两种不同的模式。(1)BasicCAN模式:系统上电后默认的模式,与PCA82C200兼容。(2)PeliCAN模式:支持CAN2.0B协议规定的所有功能。图2-6 SJA1000引脚结构SJAl000功能模块主要有:接口管理逻辑、接收FIFO队列、接收滤波器、发送缓冲器和CAN核心模块。CAN核心模块基于CAN2.0B的协议执行对CAN帧的发送和接收。逻辑管理接口实现与外部单片机的连接。SJAlO00的发送缓冲器可以存储一个完整的报文,当单片机开始一个传送时,逻辑管理接口会使CAN核心模块读发送缓冲器的数据,依照CAN2.OB协议发送数据。当收到一个报文时,cAN核心控制模块将连续的位转换为标准的数据存放于接收过滤器中,通过验收码寄存器、验收屏蔽寄存器进行过滤处理,将符合标志位要求的数据放人接收FIF0队列中以下为SJA1000芯片的特点:管脚与电气特性与独立CAN总线控制器PCA82C200兼容;软件与PCA82C200兼容(缺省为基本CAN模式);扩展接收缓冲器(64字


    注意事项

    本文(基于单片机的CAN总线通讯实现.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开