关 闭

新闻中心

EEPW首页>工控自动化>设计应用> 基于CAN总线模块的网络测控系统的实现

基于CAN总线模块的网络测控系统的实现

作者: 时间:2009-10-13 来源:网络 收藏

本文引用地址://m.amcfsurvey.com/article/163528.htm

C8051F060器件具有控制局域网()控制器,用协议进行串行通信。Silicon Labs控制器符合 Bosch规范 2.0A(基本 CAN)和 2.0B(全功能 CAN)。CAN控制器包含一个 CAN核、消息 RAM、消息处理状态机和控制寄存器。C8051F060内部的 CAN只是一个协议控制器,不提供物理层驱动器。它的工作位速率可以达 1M位/秒,实际速率可能受 CAN上所选择传输数据的物理层的限制。CAN处理器有 32个消息对象,可以被配置为发送或接受数据。输入数据、消息对象及其标识掩码存储器在 CAN消息 RAM中。所有数据发送和接收过滤的协议处理全部由 CAN控制器配置 CAN控制器,读取接收到的数据和写入待发送的数据。CAN控制器的时钟等于 CIP-51 MCU的时钟(SYSCLK)。由于考虑到在不同场合的适用性,采用了两路 CAN驱动器。一路采用 TI公司生产的 SN65HVD230,工作电压 3.3V,适应恶劣工作环境的 CAN收发器,其最大传输能力可达 1Mbps。具有失地保护、过压保护、过热保护等功能。第 8脚的不同设置可以使芯片工作于高速、斜坡控制和低功耗 3种工作模式。本测控卡中,第 8脚接地使芯片工作于高速模式。并联在上的 30pF的电容 C24, C25可以起到滤除总线上的高频干扰和一定的防电磁辐射的能力。
另一路采用的是 82C250CAN收发器,芯片 82C250是 CAN控制器与物理总线之间的接口,它最初是为汽车中的高速应用(达 1 Mbps)而设计的。器件可以提供对总线的差动发送和接收功能。
82C250采用双向差分驱动,有助于抑制汽车等恶劣电气环境下的瞬变干扰。利用 82C250还可方便地在 CAN控制器与驱动器之间建立电气隔离,以总线上各节点间的电气隔离。本中 82C250的通信电路如图 4。

3 软件
本节中将对软件进行详细阐述。由于被测控的几个量都是缓慢变化的,对测控系统的实时性要求不高。单片机大部分时间在进行参数测量,每次测量结束后使用查询方式将测量结果保存到数据缓冲池中。由于单片机的 RAM容量有限(C8051F060具有 4K的 RAM ),笔者使用了数据缓冲池,以保存一定数量的测量结果。缓冲池使用先进先出策略,在保存时先判断缓冲池是否填满,没满时缓冲指针加 1,数据保存进下一个单元,填满时使指针指向缓冲池的顶部,数据保存进缓冲池,以前的数据丢掉。本系统的设计重点是 CAN通信,因此,在 CAN通信时采用了中断方式。整个测控系统部分的软件流程图如图 5。

本文作者创新点:本文详细介绍了CAN总线测控系统的方法。该测控系统是采用 C8051F060作为微控制器,充分利用了该单片机丰富的片上资源,如 CAN控制器、AD转换器、DA转换器等,最后介绍了软件的编程思想。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭