0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CAN总线适配卡的功能特点及如何实现软硬件设计

电子设计 来源:计算机与数字工程 作者:汪建平;陶春;周伟 2021-05-20 10:37 次阅读

作者:汪建平;陶春;周伟

1 CAN总线简介

CAN(Controller Area Network)总线属于现场总线的范畴,是一种有效支持分布式控制或实时控制的串行通信网络。CAN协议目前已纳入ISO国际标准(ISO11898),它分为物理层、数据链路层和应用层,其中物理层和数据链路层协议已经集成在芯片中,可通过硬件自动完成数据的成帧与发送和接收,从而大大减少软件的工作量,因此,特别适用于工业自动化领域,尤其是那些强调低层监测与控制且要求可靠性高、实时性好的恶劣条件下的工业现场使用。

CAN总线具有以下突出特点:

● 能够以多主节点方式工作,网络上任一节点均可设成主节点以其它节点主动发送信息

●报文传输不含目标地址,它以全网广播为基础,各个接收站可根据报文中反映的数据性质标识符来过滤报文以决定是否接收。同时可通过报文标识符将报文设定为不同的发送优先级,以满足不同的实时要求。

●非破坏性总线仲裁和错误界定,利用现有的产品,可由控制器自动解决总线冲突和出错界定,并对用户完全透明,同时还能区分暂时和永久故障,并可自动关闭故障节点。

通信距离可达10km(速率5kb/s),速度可达1MB/s(距离40m以内)。

●理论上,CAN总线的网上节点数不受限制,它有2032种不同的报文标识符,但具体数量取决于物理层的承受能力,通常CAN总线上的节点数可达110个。CAN总线系统一般采用总线式网络拓扑结构,其优点是结构简单,成本低,系统可靠性高。其总体模式如图1所示。

o4YBAGCly9SABS3rAAA_zIm5Z_Q353.png

2 CAN总线适配卡的功能特点

CAN总线通信适配卡是插在PC机ISA插槽内的智能通讯卡,它可使PC机方便地连接到CAN总线上,其特点如下:

(1)采用高性能的8位微处理器89C52(12MHz),可减轻PC主机的通信负担,而且可以运行复杂的用户通信任务。 (2)卡上带有lkB的高速双口RAM存储器,可直接映射到主机内存空间以实现CAN总线与主机PC的高速数据交换,并可设置双口RAM在ISA总线中的基地址。

(3)采用16MHz CAN控制器SJAl000时,其通讯速率可高达1Mbps。

(4)中断申请电路能够保证PC机和适配卡上的微处理器实时处理对方的处理要求。

(5)适配卡上带有光电隔离,可保护PC机避免由于地环流而造成的损坏,并可增强系统在恶劣环境中使用的可靠性。

(6)为方便系统调试,可用LED指示系统状态和CAN的接收和发送状态。

3 CAN总线适配卡的硬件设计

CAN通信适配卡由双口RAM电路、微控制器电路、CAN通信控制电路三部分组成,其结构框图如图2所示。

pIYBAGCly82AEUKrAABt7fukG-8263.png

3.1 双口RAM及其控制电路

双口RAM是一种性能优越的快速通信器件,它能提供两种完全独立的端口,每个端口都有完整的地址、数据和控制线。对于器件两边的使用者CPU而言,它与一般的RAM无多大区别,只有在两边同时读写同一地址单元时,才会出现竞争现象。在CAN通信适配卡中,通常利用双口RAM IDT7130来建立双向数据交换通道,以实现PC机和CAN控制器之间的数据传送。

PC机与扩展存储器的接口有两种方法:一种是把双口RAM当成外部设备,使用端口I/O指令进行访问,这种方法一次只能传送一个字节(或字),因而传送速度较慢;另一种是内存映像法,即把双口RAM地址配置于PC机主存储器的高端(一般为C0000H-DFFFFH),以使PC机像访问主存储器一样访问双口RAM,同时使所有能够访问主存储器的指令也可以以同样的方式访问双口RAM。内存映像法可以以字符块为单位进行传送,因而可实现快速访问双口RAM。正是基于这些优点,在本适配卡设计中采用了内存映射的存储器寻址方式。

图3为双口RAM的控制电路,其访问原理为:ISA总线共有24条地址线,可寻址16MB存储空间。地址线A12-A19接到比较器74LS688的P0-P7,比较器的Q0-Q5接一个六位的拨码开关,Q6、Q7接高电平。74LS688的输出接可编程逻辑器件GALl6V8。这样,当P0-7=Q0-7时,74LS688的输出为低电平,地址选择有效。另外,通过设置拨码开关,用户可以选择双口RAM在PC机存储器中的初始地址。如置拨码开关为Q0-5=001011,则双口RAM在ISA总线的初始地址为D0000H。这样,通过可编程逻辑器件GALl6V8便可将1SA总线的各种信号进行逻辑组合,以形成三个控制信号,从而实现PC机对双口RAM的访问。这三个信号为:

o4YBAGCly8eARnIMAACfQ9nO8p8149.png

P19=P1*P2*P3*P6*P7 RAM片选信号

P18=P1*P2*P3*P6*P7*P5 RAM读信号

P17=P1*P2*P3*P6*P7*P4 RAM写信号

3.2微控制器电路

微控制器89C52是ATMEL公司的产品,它与MCS51系列CPU完全兼容,并带有8k字节的在系统可编程FLASH MEMORY(最多可以擦写100次),同时带有256B的片内RAM,因此一般不需要扩展片外ROM

当89C52与CAN总线通信时,通常需要较大的数据缓冲区,因此该系统中扩展了8kB的片外RAM来满足通信的需要。

在该适配卡中,有一些数据(如下层CAN节点的数目、CAN通信的初始化参数等)在适配卡断电以后仍需要保存,因此应扩展一片EEPROM。本卡采用的是一个8k X 8位的非易失性存储器2864,它的快速读时间最大为250ns,存储的数据可以保存10年。如果程序在运行过程中需要对适配卡的通信参数进行重新配置,可通过调用PC机对CAN适配卡参数配置子程序来完成,并可在设置成功的同时将相应的参数存入2864,以备下次适配卡启动时调用。

考虑到电路调试和系统故障的处理,本卡设计了三种复位方式。其中上电复位方式为在PC机通电时,使CAN适配器也同时复位;在调试出现问题时可通过手动复位键复位,以便解决调试中出现的问题;第三种是软件复位,该方式可通过调用PC机管理程序中的初始化模块并通过软件指令对CAN适配卡进行复位。

3.3 CAN通信控制电路

CAN通信控制器选用PHILIPS公司的sJAl000,它具有完成高性能通信协议所要求的全部必要特征,支持CAN协议约定的4种不同帧格式(即数据帧、远程帧、错误帧和超载帧),具有简单总线连接的SJAl000可完成物理层和数据链路层的所有功能,并在与CPU连接时可确保SJAl000以存储器映像的外围设备出现。为加强CAN总线的差动发送和接收能力,该电路采用了CAN总线收发接口电路82C250。82C250的引脚8允许选择高速、斜率控制和待机三种不同的工作方式,并可通过设置拨码开关切换不同的工作方式。在SJAl000与82C250之间接入光电耦合器可增强系统的抗干扰能力,光耦可采用高速光耦6N137,光耦两侧应采用5V的DC-DC隔离电源。图4所示是一种CAN通信接口电路。

o4YBAGCly8CAchAIAABhaC0Zjng024.png

4 适配卡的软件设计

适配卡主要承担的是计算机和CAN节点之间的数据转发任务,因而其软件设计也包括两部分:其一是PC机端的应用程序,用于负责完成PC机和双口RAM的通信。实际上,运行时需要开发虚拟设备驱动程序(VxD)来完成对双口RAM的读写、对双口RAM中断的处理以及和应用程序的通信。其二是卡上单片机端的程序设计,该程序采用FranklinC51编写,可完成单片机与双口RAM以及与CAN控制器之间的通信。图5为该适配卡的简化程序流程图。

o4YBAGCly7qAXWV2AACzzcLhTBw162.png

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    16177

    浏览量

    177310
  • CAN总线
    +关注

    关注

    145

    文章

    1928

    浏览量

    130617
  • 通信网络
    +关注

    关注

    21

    文章

    2026

    浏览量

    51943
收藏 人收藏

    评论

    相关推荐

    基于VxWorks操作系统实现PC/104-CAN适配卡的驱动系统设计

    PC/104-CAN适配卡主要由CAN控制器(SJA1000)、光电隔离(6N137),收发驱动器(82C250)及译码电路组成。编程主要了解的是控制器SJA1000。CAN
    的头像 发表于 09-08 17:51 3648次阅读
    基于VxWorks操作系统<b class='flag-5'>实现</b>PC/104-<b class='flag-5'>CAN</b><b class='flag-5'>适配卡</b>的驱动系统设计

    求一种CAN适配卡驱动程序的设计方案

    CAN总线技术CAN适配卡驱动程序的设计与实现基于WinCE环境的CAN
    发表于 04-23 06:43

    如何利用VxWorks操作系统实现PC/104-CAN适配卡的驱动系统设计

    求一种基于VxWorks操作系统实现PC/104-CAN适配卡的驱动系统设计
    发表于 04-28 06:17

    CAN总线分布式系统适配卡和控制单元设计

    介绍CAN总线分布式系统中适配卡和控制单元的硬件组成及软件的设计方法, 给出硬件原理图;详细分析SJA1000的初始化方法、验收滤波器的原理
    发表于 04-08 09:51 27次下载

    基于USB的CAN适配卡的设计与实现

    本文论述了CAN 总线系统中CAN 适配卡的重要作用,在分析其他CAN 适配卡
    发表于 08-05 09:16 16次下载

    基于CP2102高速USB2.0-CAN适配卡的设计

    基于CP2102高速USB2.0-CAN适配卡的设计 基于桥接芯片CP2102,设计了USB2.0-CAN适配卡。系统采用USB和CAN
    发表于 04-22 18:34 3367次阅读
    基于CP2102高速USB2.0-<b class='flag-5'>CAN</b><b class='flag-5'>适配卡</b>的设计

    基于WinCE环境的CAN适配卡驱动程序的设计与实现

    基于WinCE环境的CAN适配卡驱动程序的设计与实现 WinCE是一种为多种嵌入式系统和产品设计的紧凑、高效、可升级的操作系统,WinCE 采用标准模式,其最主要的特征:为有
    发表于 10-26 09:04 1028次阅读

    LSI推出6Gb/s SAS主机总线适配卡

    LSI推出6Gb/s SAS主机总线适配卡 LSI公司推出采用6Gb/s SAS技术的SATA+SAS主机总线适配卡(HBA)──LSI SAS 9200系列产品。LSI SAS 9
    发表于 11-04 15:33 772次阅读

    基于PIC单片机的RS-232转CAN通信适配卡设计

    基于PIC单片机的RS-232转CAN通信适配卡设计 CAN总线-控制器局部网(CAN)国际标准(ISO11898)。
    发表于 01-27 16:24 1458次阅读
    基于PIC单片机的RS-232转<b class='flag-5'>CAN</b>通信<b class='flag-5'>适配卡</b>设计

    发电机状态监测仪中CAN适配卡的设计方案

    发电机状态监测仪中CAN适配卡的设计方案 摘要:文中介绍了发电机状态监测仪中CAN智能适配卡功能
    发表于 03-03 19:37 753次阅读
    发电机状态监测仪中<b class='flag-5'>CAN</b><b class='flag-5'>适配卡</b>的设计方案

    关于PCI9052在多功能CAN适配卡中的应用研究

    关于PCI9052在多功能CAN适配卡中的应用研究 0 概述PCI总线是一种独立于CPU的局部总线
    发表于 04-08 15:02 1115次阅读
    关于PCI9052在多<b class='flag-5'>功能</b><b class='flag-5'>CAN</b><b class='flag-5'>适配卡</b>中的应用研究

    CAN总线PC适配卡设计

    本文首先介绍PCI总线控制器PCI9052与CAN总线通信控制器SJA1000的工作原理,并且介绍了PCI总线CAN
    发表于 09-23 17:34 2071次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>PC<b class='flag-5'>适配卡</b>设计

    基于WinCE环境的CAN适配卡驱动程序的设计与实现

    本文简要介绍了嵌入式实时操作系统WinCE环境下驱动程序的设计原理和CAN总线技术并详细分析了依托PC/104总线CAN适配卡底层驱动程序
    发表于 03-29 14:25 3次下载

    基于单片机实现总线控制智能数据采集模块的软硬件设计

    软硬件设计,该模块可以实现控制现场的数字、模拟信号采集,现场数据预处理,数据传送以及与监控计算机通讯等功能
    的头像 发表于 10-31 07:51 3188次阅读
    基于单片机<b class='flag-5'>实现</b><b class='flag-5'>总线</b>控制智能数据采集模块的<b class='flag-5'>软硬件</b>设计

    基于软件模拟的SPI端口CAN控制软硬件设计

    电子发烧友网站提供《基于软件模拟的SPI端口CAN控制软硬件设计.pdf》资料免费下载
    发表于 10-13 11:38 0次下载
    基于软件模拟的SPI端口<b class='flag-5'>CAN</b>控制<b class='flag-5'>卡</b>的<b class='flag-5'>软硬件</b>设计