基于CAN通讯模块的闸间隙报警系统设计

发布者:Zhenai5201314最新更新时间:2015-02-05 来源: e-works关键字:CAN  通讯模块  闸间隙报警 手机看文章 扫描二维码
随时随地手机看文章

0 引言

    在煤矿生产中,矿井提升机是矿山大型关键设备。提升机的制动系统则是保证提升机能否安全运行、实现提升机正常减速停车以及在各种故障情况下执行紧急制动安全停车的最终手段。盘形闸是绞车提升系统中非常重要的配套设备,是保证安全提升的重要部分。盘形闸工作间隙报警有利于缩短故障排除的时间,故开发闸间隙报警模块具有重要的实际意义。CAN总线是一种总线型现场设备控制网络,具有突出的实时性、可靠性和灵活性。鉴于CAN总线的优势,本文开发了一种基于AVR的闸间隙报警CAN通讯模块,其成本低廉,安装方便。

1 模块硬件设计

    该模块由处理器ATmega128、CAN总线控制器SJAl000以及CAN收发芯片CTM8251组成。其硬件结构如图1所示。

    1.1 微处理器

    ATmega128是一种高性能、低功耗的AVR8位微处理器,拥有先进的RISC结构、128kB的系统内可编程Flash、4kB的EEPROM、8路10位ADC、2路8位PWM、2个可编程串行USART/独立片内振荡器的可编程看门狗定时器、53个可编程I/O口、2个具有独立的预分频器和比较器功能的8位定时器/计数器、2个具有预分频器和捕捉功能的16位定时器/计数器;具有独立预分频器的实时时钟计数器、片内/片外中断源、全局上拉禁止功能。微处理器ATmegal28在此设计中起到了对CAN控制器控制的作用。微处理器频率是16心z,每秒钟的运算能力为16 MIPS,其丰富的片上资源使得ATmegal28非常适合于CAN通信的应用。

    1.2 CAN总线接口电路

    由于处理器ATmega128内部没有集成CAN控制器,因此系统需要通过CAN控制器SJA1000芯片扩展出一个CAN接口。实现SJAi000扩展CAN总线接口的设计,就是对SJAl000的转换逻辑结构之间的每个模块进行设计。在设计中,将来自于ATmega128的I/O的数据(CANdata0~CANdata7)写入SJAi000的内部寄存器,并通过ATmega128的I/O实现对SJAl000的控制。CAN总线接口电路如图2所示。

    1.3 CAN收发器

    在CAN通信模块设计中,为了增加CAN总线的抗干扰能力,可通过将SJAl000控制器TX0、RX0接口连接到CAN隔离收发器来实现。[page]

    CAN隔离收发器采用广州致远电子有限公司的通用CAN隔离收发器CTM8251。该芯片内部集成了所有必需的CAN隔离及CAN收发器件,其主要功能是将CAN控制器的逻辑电平转换为CAN总线的差分电平并且具有DC2500V的隔离功能,增加了CAN总线的抗干扰能力。此外,该芯片拥有速率可达1Mb/s、较高的抗干扰性、至少可连接110个节点等特性。CAN收发器连接图如图3所示。

2 模块软件设计

    该模块的功能是将处理器前端采集的闸间隙报警数据处理后,先后通过SJAi000、CTM8251送到上位机实现通信。

    CAN总线通信的实现首先要通过ATmega128的RESET使外围电路上电复位,在外部中断的情况下等待SJAl000完全上电,然后通过处理器控制线路配置进而使SJAl000初始化,最后进入CAN的数据发送和接收主程序。因此,该设计的关键是编写CAN驱动程序,主程序通过调用CAN驱动程序实现接口数据的收发。驱动程序主要包括CAN控制器的初始化、接收数据和发送数据。

    2.1 CAN控制器SJAi000的初始化

    SJAl000的初始化操作包括CAN软件复位、设置中断工作方式、设置CAN验收过滤器工作方式、设置控制器的工作模式和启动CAN等。首先,通过对CAN控制器SJAl000的读、写、片选、地址锁存端口设置来完成初始化。以下是CAN控制器SJAl000的初始化代码:

    2.2 数据的接收与发送

    ATmegal28的每个I/0端口有3个I/0寄存器即可实现对CAN总线的控制。当发送/接收时要根据实际情况,先必须保证CAN锁存、CAN读/写选通、cAN片选开启后读取对应的存储地址,最后对数据进行读取/存储。为了提高效率,接收数据采用中断的方式,当中断标志置位时,将数据存入指定的SJAl000存储地址。以下是数据发送和接收的函数:
    (1)接收/发送缓冲区数据设置:该部分主要是通过对RX/TX针信息、RX/TX标识码进行接收/发送缓冲区数据首地址(工作模式)定义。
    (2)CAN控制器SJAl000发送数据,实现函数如下:uchar Read_SJAl000(uchar addr)函数功能实现步骤为:①使能端口写数据,通过设置CAN_ALE、CN_CS、CAN_ID完成对发送数据地址的读取;②使能端口读数据且上拉,通过CN_CS、CAN_RD)完成从读取的地址读取一个8位数据;③返回数据地址。
    (3)CAN控制器SJAl000接收数据,实现函数如下:void Write_SJAl000(uchar addr,uchar DATA)函数功能实现步骤为:①使能端口写数据,通过设置CAN_ALE、CN_CS、CANJR完成对接收数据地址的读取;②通过设置CN_CS、CAN_WR完成向读取的地址写一个8位数据。

3 结束语

    本文介绍了基于AVR微处理器的闸间隙报警CAN通讯模块的硬、软件设计方法,为解决矿井提升机工作间隙报警提供了一种思路。该模块的设计使管理监控层与生产测控层之间能够进行有效的通信,缩短了故障排除的时间,且使用方便、成本低。 

关键字:CAN  通讯模块  闸间隙报警 引用地址:基于CAN通讯模块的闸间隙报警系统设计

上一篇:基于CAN总线的旋转编码器采集模块设计
下一篇:基于CAN总线的无刷直流电动机模糊自适应PID控制器设计

推荐阅读最新更新时间:2024-05-02 23:29

一种基于CAN总线的DSP程序加载技术
摘要:为灵活方便地调试磁悬浮列车上众多基于DSP芯片的控制系统,介绍了一种基于CAN总线的DSP程序加载技术。该技术使对DSP芯片程序的加载可以脱离仿真器而直接受控于列车的主控机。该技术可靠性高、使用灵活方便,具有很强的实用性。 关键词:CAN总线 单片机 DSP HPI ISA 磁悬浮列车上有很多基于DSP芯片的模块和系统。目前, DSP芯片程序的加载与运行都主要依赖于仿真器,而DSP仿真器价格高、体积大,这使得磁悬浮列车系统的调试很不灵活方便;且这些基于DSP芯片的系统一旦脱离仿真器就只能运行事前载入的单一的程序,也使系统的灵活性受到了很大的限制。 本文研究了DSP芯片程序加载的基本原理,并根据这些原理,基于CAN总线,实现了
[嵌入式]
特斯拉Model S与保时捷Taycan的攻防演练
接前日的话题,在Nurburgring的赛道上,特斯拉的Plaid动力系统Model S原型车,和保时捷Taycan开始了单圈最快纪录的攻防演练,这涉及到两家公司的颜面问题。 Tesla Sep 20 Data from our track tests indicates that Model S Plaid can achieve 7:20 at the Nürburgring. With some improvements, 7:05 may be possible when Model S returns next month. 特斯拉推特 而昨天的故事,这台车用力过猛,拖回去了。 这里实际的问题,是在两
[嵌入式]
特斯拉Model S与保时捷Tay<font color='red'>can</font>的攻防演练
如何准确测量CAN节点的电容含量
  汽车CAN总线设计规范对于CAN节点的输入电容有着严格的规定,每个节点不允许添加过多容性器件,否则节点组合到一起后,会导致总线波形畸变,通讯错误增加。具体如表 1所示。为汽车测试标准GMW3122中的输入电容标准   表 1 GMW3122输入电容标准   所以每个厂家在上车前,都要测试CAN节点DUT(被测设备)的CANH对地、CANL对地、CANH对CANL的输入电容。方法一般是使用GMW3122汽车测试标准中的CAN方法。如图所示。   而这样的测试方法,有着比较大的局限性,只能看一个波形的放电时间进行测量和计算,人工误差较大,通过多次的统计,然后进行平均,非常消耗时间。另外由于电容属于非线性器件,使用
[测试测量]
如何准确测量<font color='red'>CAN</font>节点的电容含量
总线关闭(bus off)状态下CAN节点的恢复过程分析与测试
总线关闭(bus off)是 CAN 节点比较重要的错误处理机制。那么,在总线关闭状态下,CAN节点的恢复流程是怎样的?又该如何理解节点恢复流程的“快恢复”和“慢恢复”机制?本文将为大家详细分析总线关闭及恢复的机制和原理。 一、 故障界定与总线关闭状态 为了避免X某个设备因为自身原因(例如硬件损坏)导致无法正确收发报文而不断的破坏总线的数据帧,从而影响其它正常节点通信,CAN网络具有严格的错误诊断功能,CAN通用规范中规定每个CAN控制器中有一个发送错误计数器和一个接收错误计数器。根据计数值不同,节点会处于不同的错误状态,并根据计数值的变化进行状态转换,状态转换如下图所示。 图1节点状态转换图情形1 以上三种错误状
[汽车电子]
总线关闭(bus off)状态下<font color='red'>CAN</font>节点的恢复过程分析与测试
Canalys:今年全球5G智能手机或出货近2.8亿部,中国市场占62%
市调机构Canalys的最新预测显示,今年全球智能手机出货量将比2019年下降10.7%,不过随着手机厂商持续推出新机,线下商店的逐步重新开放以及物流、生产改善下,全球手机出货量将快速增长,预计2021年将反弹9.9%,市场将超过13亿部。 图源:Canalys 5G手机方面,Canalys预计2020年全球5G智能手机出货量将达到近2.8亿部,其中62%在中国市场。Canalys认为,中国5G智能手机的快速商品化是今年5G智能手机出货量巨大的关键因素。 图源:Canalys Canalys的分析师表示:“随着realme于9月推出V3,这是中国第一款价格低于150美元(人民币999元)的5G智能手机,5G正式成为入门级智
[手机便携]
<font color='red'>Can</font>alys:今年全球5G智能手机或出货近2.8亿部,中国市场占62%
CAN特殊波特率如何计算
CAN 总线采用的是异步串行通信,也就是没有单独的时钟线来保证各个收发器之间时钟的一致,每个收发器是按事先设置的 波特率 来对总线上的电平进行分位。因此波特率设置准确对CAN总线的稳定通信来说非常重要。 CAN总线里我们可以通过对CAN 节点里的位定时寄存器的控制来实现不同波特率的通信。CAN协议里将一个位时间分为同步段、传播段、相位缓冲段1和相位缓冲段2。每个段的时间长度都可以用一个整数的基本时间单位表示,该基本时间单位由系统的时钟振荡器分频得到。 同步段位于一个位的起始位置,CAN-bus规定跳变沿为同步信号,但是发送节点发送一个位跟接收节点接收到这个位之间存在网络传播延迟,传播段则是为了补偿这段传播延迟,由于
[嵌入式]
<font color='red'>CAN</font>特殊波特率如何计算
全面了解CAN总线协议
  提及总线,总是让人联想到那些交错在一起的计算机电线。那么这些电线如何发挥功效呢?这还得配合总线协议的管理来使用。那么今天我们介绍的就是CAN总线协议。看看这个协议的含义和应用吧。   1,CAN总线协议基本概念:   (1),报文:总线上的信息以不同格式的报文发送,但长度有限。当总线开放时,任何连接的单元均可开始发送一个新报文。   (2),信息路由:在CAN系统中,一个CAN节点不使用有关系统结构的任何信息,这里包含一些重要的概念:系统灵活性——节点可以在不要求所有节点及其应用层改变任何软件或硬件的情况下,被接于CAN网络。报文通信——一个报文的内容由其标示符ID命名,ID并不指出报文的目的,但描述数据的含义,
[嵌入式]
优化CAN节点位时序以适应数字隔离器传播延迟
控制器局域网(CAN)由ISO 11898标准定义,广泛用于工业和汽车应用中。CAN协议(比如DeviceNet或CANOpen)依赖内置的错误检查和差分信号采样。电流隔离可进一步增强鲁棒性,能够抗高压瞬变,但会增加传播延迟。CAN节点经过优化配置,哪怕存在隔离时也具有最大数据速率和传送距离。 为什么传播延迟很重要 传播延迟会影响节点间的并发传输和仲裁。冲裁依赖于CAN信号发送;逻辑0表示“主动”(总线间的差分电压),逻辑1表示“被动”(全部输出为高阻抗),意味着主动位将覆盖被动位。发射时,所有节点监控总线;而发射被动位时则停止,从而允许另一个节点赢得仲裁(图1中的节点A)。 图1.两个节点间的仲裁 传播延迟不可过
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved