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

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

3天内不再提示

如何采用DSP与PCI接口实现CAN总线适配器的设计

电子设计 来源:郭婷 作者:电子设计 2019-02-06 08:52 次阅读

1 引 言

CAN总线是一种开放式、数字化、多点通信的串行总线,是一种具有较高性价比、能满足分布式控制要求的现场总线,在控制领域得到广泛采用。CAN的速率可达到1 Mb/s/40 M,最大传输距离可达10 km/5 kb/s。为了扩展CAN总线的监控、管理功能,需要一种实时、可靠的CAN总线PC适配器,实现对CAN总线监视、控制和操作。本文利用TMS320LF2407芯片自带CAN模块,设计成CAN的一个特殊节点。使其即能通过PCI接口同PC机进行数据交换,又能独立与PC机自主运行。

2 适配器的硬件设计

2.1 CAN接口实现

以往CAN总线适配器多数采用Intel82527、Philips公司的SJA100等芯片来完成CAN通信控制。本文利用TMS320LF2407内嵌的CAN模块作为CAN通讯控制器,该模块是一个16位的外设模块。他完全支持CAN 2.0B协议,可工作在标准模式和扩展模式,支持数据帧和远程帧,数据收发采用邮箱方式;有可编程定时器,可对中断配置编程,可编程实现总线唤醒功能;能自动回复远程请求,有完备的错误诊断功能;可进行自测试,有自动收发功能。PCA82C250是驱动CAN控制器和物理总线间的接口芯片,与DSP2407的CAN模块相连,完成DSP对CAN总线的差动发送和接收功能。

2.2 PCI接口实现

采用H.X公司的PCI9052实现PCI总线接口功能,PCI9052可与多种局部总线相连接,并且可支持相对慢的局部总线,在PCI总线上达到突发传输速率132 m/s。PCI9052拥有读写FIFO,32位的字宽,33 M的PCI总线时钟频率。主要功能与特性如下:

(1)符合PCI2.1规范的目标,接口芯片支持低成本从属适配器;

(2)支持非复用或多路复用8位、16位、32位局部总线;

(3)串行E2PROM用于装载配置信息

(4)具有5个局部地址空间和4个局部地址空间的片选信号

(5)支持局域总线与PCI时钟的异步运行。

2.3 总体设计思想

适配器采用存储器共享的方式实现DSP与PC的数据交换。其*享存储器选用集成双口RAM IDT7130。IDT7130容量为1 kb,其左口连接DSP2407,右口连接PCI9052,使用存储器寻址方式。同时,对IDT7130 2个端口的仲裁采用的是中断线的方式。片上的DSP和PC机通过互发中断来读取IDT7130的数据。这样使IDT7130成为上位机和DSP的数据交换中介,DSP能够实时处理从上位机传来的命令和数据,同时把各个CAN节点的信息传给上位机。利用一块串行E2PROM(93CA6B)存放适配器的PCI配置信息。上电后访问93C46B,实现本适配器的自动配置。Altera公司的EPM7064S完成地址译码和逻辑控制。适配器原理图如图1所示:

如何采用DSP与PCI接口实现CAN总线适配器的设计

2.4 电源、地及噪声的处理

在本设计中对电源的处理首先将模拟部分的电源和数字电路部分的电源进行隔离,即分别供电。模拟电路部分的5 V电源分别取自PCI总线上的12 V电源,经线性稳压后,再经去耦、滤波后引至专门设计的模拟电源平面。数字部分的5 V电源直接取自PCI总线上的5 V电源。数字部分的3.3 V电源亦取自PCI总线上的5 V电源,经稳压后得到。在PCB的层结构设计中也充分考虑到尽可能地保留完整、大而积的电源平面层。适配器的“地”事实上分为模拟地和数字地2部分。这2部分最终在电源平面入口处相连。使得模拟地相对干净。从而减少叠加到信号上的噪声,有利于提高信噪比。

3 适配器的硬件设计

适配器的硬件设计主要包括2部分:PCI适配器驱动软件部分和DSP数据采集处理软件部分。

3.1 PCI适配器驱动程序设计

由于PCI设备的中断,1/0端口、映射内存等资源都是动态分配的,必须编写驱动程序管理硬件,才能供用户编程使用。考虑到适配器的通用性和兼容性,驱动程序的开发采用支持Windows XP,Windows 2000,Windows 98的WDM驱动程序。开发工具采用Visual C++6.0。WDM(WindowsDriver Model)是NT4.0内核模式设备驱动程序模型的扩展形式,是为基于Windows 2000的设备驱动程序提供的一种新的开发模型。本设计使用开发工具WINDRIVER大大简化驱动程序的开发。通过DiverWizard开发者很容易生成驱动程序框架,同时,WINDRIVER和VC有很好的接口。生成驱动框架后在VC中就可以通过在工程项目中加入9052_lib.c,在应用程序开头直接引用#include"9052lib.h",并0添加特定的驱动代码完成驱动程序的编写。下面是驱动程序主函数的部分代码:

如何采用DSP与PCI接口实现CAN总线适配器的设计

3.2 PCI适配器驱动程序设计

固化在DSP中的应用软件是整个系统实时运行的支撑软件。主体程序采用ASIC C语言编写。他主要完成以下功能:

(1)环境初始化;

(2)从CAN总线接受数据;

(3)从RAM中读数;

(4)系统的控制程序;

(5)向CAN总线发送任务包;

(6)向PC上传数据。

系统的控制程序根据用户系统的需求自主来开发。由于DSP20417是16位单片机有较强的运算能力和实时控制功能。他要处理所有的CAN数据包的解释,而且能够满足分布实时控制的现场总线要求。在实际调试中发现下层的控制器向PC机的传递数据量远大于PC机下传的数据量,因此在数据编码时将控制信息、采样数据编号信息和控制量、采集量均加载在数据字节里。由此CAN总线通讯协议的形式为:“ID号+数据+校验”,其中ID号为各DSP采集器编号采用11位标识符的前4位。为了保证通讯的可靠性,在数据接受后,都由一个返回帧,以表示确认,其校验位为发送端的固定代码。DSP上传实时采集数据的发送采用定时查询的方式,查询采样是否结束并且进行了相应的数据处理后,立即将数据通过CAN控制装载并发送到CAN总线上。基本流程如图2所示。

如何采用DSP与PCI接口实现CAN总线适配器的设计

4 应用实例

应用该CAN通讯适配器对实验室3台交流异步电机进行监控。系统构成原理如图3所示。在通信时,CAN总线设为多主结构。PCICAN转换卡地址是1,电机A、电机B、电机C的地址分别为2,3,4。变频器控制电机A以v0速度左右10%的额定转速范围内线性变化,同时CAN收发器1发送电机A转速的数字量至CAN卡。CAN卡同步实时发送信号至CAN收发器2,3,调节电机B,C使其分别以速度1.1v0,1.2V0工作。CAN卡同时分别采集每个电机速度发送至PC机,以便人机监控调整。系统的人机界而是基于Windows平台用VC”6.0语言开发,DSP内部程序用ASIC C语言编写,实际运行控制结果表明该系统工作可靠、电机调节响应速度快。

如何采用DSP与PCI接口实现CAN总线适配器的设计

5 结语

本文设计的CAN总线适配器实用性强,并具有良好的可扩展性。在WIN2000系统下经过长时间的运行测试,运行稳定可靠。他可以适应不同的传输速率和距离,有效保证工业控制系统的实时性。DSP芯片一方面对CAN总线各控制节点的参数进行高速运算处理,另一方面通过PCI总线进行人机数据交互,起封一种CAN总线中主控节点的作用。

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

    关注

    544

    文章

    7681

    浏览量

    344331
  • CAN总线
    +关注

    关注

    145

    文章

    1812

    浏览量

    129587
  • 适配器
    +关注

    关注

    8

    文章

    1820

    浏览量

    66931
  • PCI
    PCI
    +关注

    关注

    4

    文章

    608

    浏览量

    129584
收藏 人收藏

    评论

    相关推荐

    USB转串口驱动器CAN接口适配器

    CAN总线设备测试、数据分析的强大工具。采用接口适配器,PC可以通过USB接口连接一个标准
    发表于 04-21 14:25

    USB转CAN适配器、转换器

    工具。采用接口适配器,PC可以通过USB接口连接一个标准CAN网络,应用于构建现场总线测试实验
    发表于 05-11 09:26

    Ginkgo USB-CAN接口适配器

    :基于Ginkgo USB-CAN接口适配器实现CAN总线bootloader上位机软件,利用
    发表于 10-09 15:09

    Ginkgo USB-CAN总线适配器

    上的波特率大小;STM32 CAN波特率计算器:计算STM32单片机的CAN总线波特率参数的小软件;应用实例简介:基于Ginkgo USB-CAN
    发表于 10-09 15:17

    快速使用Ginkgo CAN适配器教程

    ,是CAN总线产品开发、CAN总线设备测试、数据分析的强大工具,采用接口
    发表于 10-11 15:21

    纬图Ginkgo USB-CAN接口适配器

    。 ZLG_CANtest:CAN数据的发送接收显示软件。源码完全公开的应用实例基于Ginkgo USB-CAN接口适配器实现
    发表于 11-03 09:49

    快速使用Ginkgo CAN适配器教程

    ,是CAN总线产品开发、CAN总线设备测试、数据分析的强大工具,采用接口
    发表于 12-17 09:30

    Ginkgo USB-CAN总线适配器的使用

    ,是CAN总线产品开发、CAN总线设备测试、数据分析的强大工具,采用接口
    发表于 02-21 11:37

    适配器模式实现

    适配器模式实现(对象适配器)3.1、关系依赖图3.2、创建交流电3.3、定义直流电3.4、创建充电器3.5、创建手机类3.6、测试充电器3.7、点评该模式第四章 适配器模式
    发表于 09-15 07:11

    基于USB的CAN总线适配器的设计

    采用内嵌CAN控制器的Motorola MC68HC908AZ60A作为微控制器,以PDIUSBD12作为USB的接口芯片,设计了基于USB接口C
    发表于 07-07 15:01 31次下载

    基于USB技术的CAN总线适配器的设计

    基于USB技术的CAN总线适配器的设计 CAN总线是德国BOSCH公司在20世纪80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交
    发表于 04-12 12:40 582次阅读

    基于DSPPCI总线CAN适配器设计

    基于DSPPCI总线CAN适配器设计  1 引 言   CAN
    发表于 03-05 11:21 1579次阅读
    基于<b class='flag-5'>DSP</b>的<b class='flag-5'>PCI</b><b class='flag-5'>总线</b><b class='flag-5'>CAN</b><b class='flag-5'>适配器</b>设计

    一种高速CAN—LonWork总线互联适配器的设计与实现

    摘要:针对目前国内测控领域流行的CAN总线与LonWorks总线通信标准互不兼容的问题,提出了一种高速CANLonWorks总线互联适配器
    发表于 02-27 15:14 27次下载

    CAN总线无线电适配器

    电子发烧友网站提供《CAN总线无线电适配器板.zip》资料免费下载
    发表于 07-29 09:23 3次下载
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>无线电<b class='flag-5'>适配器</b>板

    基于LPC2292的CAN总线USB接口适配器的设计

    电子发烧友网站提供《基于LPC2292的CAN总线USB接口适配器的设计.pdf》资料免费下载
    发表于 10-09 16:53 1次下载
    基于LPC2292的<b class='flag-5'>CAN</b><b class='flag-5'>总线</b>USB<b class='flag-5'>接口</b><b class='flag-5'>适配器</b>的设计