首页 | 供应信息 | 求购信息  | 下载系统 | 新闻系统 | 企业信息 | 产品信息 | 论文信息 | 展会信息论坛
作者: 发布时间:2012-04-19 来源: 繁体版
摘要:以FPGA代替传统的单片机和外围扩展芯片,给出了CAN总线通信节点的详细设计方案。其中以SJA1000为CAN总线控制器、FPGA为主控制器,设计实现通信节点的硬件接口电路。基于对CAN总线控制器的功能分析,并应用Verilog语言

摘要:以FPGA代替传统的单片机和外围扩展芯片,给出了CAN总线通信节点的详细设计方案。其中以SJA1000为CAN总线控制器、FPGA为主控制器,设计实现通信节点的硬件接口电路。基于对CAN总线控制器的功能分析,并应用Verilog语言进行软件设计,从而实现CAN节点之间的通信功能。SfF自动化在线网

0引言SfF自动化在线网

CAN总线允许高达1Mbit/s通讯速率,支持多主通讯模式,有高抗电磁干扰性而且能够检测出通信过程中产生的任何错误,已被广泛应用到各自动化控制系统中。在项目的特殊环境要求下,CAN总线通信要求使用FPGA作为系统中的主控制器,较之传统设计使用的单片机,FPGA能够在速度和体积上有更好的适应性。FPGA一方面减少了电路板的复杂程度,缩短了实现周期;另一方面,其丰富的资源、超高的性能和灵活的可编程性,提高了整个设备的可靠性,大大增强了电路板设计的灵活性和可扩展性。文中通过设计FPGA的接口电路,并利用Verilog语言来编程实现CAN节点之间的通信功能。SfF自动化在线网

1CAN接口硬件设计SfF自动化在线网

1。1CAN节点的系统构成SfF自动化在线网

一般来说,每个CAN模块能够被分成3个不同的功能块,其结构如图1所示。CAN总线收发器提供CAN协议控制器与物理总线之间的接口,控制从CAN控制器到总线物理层或相反的逻辑电平信号。它的性能决定了总线接口、总线终端、总线长度和节点数,是影响整个总线网络通信性能的关键因素之一。CAN控制器执行在CAN规范里规定的完整的CAN协议,它通常用于报文缓冲和验收滤波,对外具有与主控制器和总线收发器的接口。主控制器负责执行应用的功能,例如控制命令的发送、读传感器和处理人机接口等。它通过对CAN控制器进行编程,来控制CAN总线的工作方式和工作状态,以及进行数据的发送和接收。SfF自动化在线网

图1 CAN 模块系统构成

图1CAN模块系统构成SfF自动化在线网

1。2接口电路设计SfF自动化在线网

接口电路如图2所示。SJA1000的AD0~AD7地址数据复用端口、ALE地址锁存端口、RD、WR、片选CS端口均通过转换芯片与FPGA的I/O口相连。SJA1000的中断输出信号INT连入FPGA,使CAN通信可以采用中断或查询方式。RST端口的电路实现SJA1000的上电自动复位功能。MODE模式选择端接+5V,设置SJA1000控制器为Intel模式。SJA1000的时钟晶振采用16MHz,频率调整电容取15pF。R16为终端电阻,设计中取120Ω。CAN驱动器PCA82C250的RS脚为工作模式选择位,接地工作于高速模式,接高工作于待机模式。系统通过电阻R14将芯片设定于斜率控制模式,电阻值为47kΩ,这时CAN总线应工作于低速模式,可提高CAN总线抵抗射频干扰的能力。在这种情况下,可直接使用非屏蔽双绞线作为总线。SfF自动化在线网

设计中有2点需要特别注意:第一点是FPGA并没有与SJA1000直接相连。这是因为对于设计选取的FPGAXCV600,其接口电平不支持5VTTL的I/O标准,如果与5VI/O标准的SJA1000直接相连,将可能导致FPGA管脚电流过大,造成器件锁死或者烧毁。为此采用双向总线收发器74ALVC164245,把SJA1000的5VTTL电平信号AD0~AD7、SfF自动化在线网

、ALE转换成3。3VI/O标准信号,连接到FPGA的引脚上。74ALVC164245有2个8位电平转换端口,可独立操作。其中电平信号AD0~AD7必须按顺序连接在总线收发器的一个8位端口上,不可以分开。第二点是:在CAN控制器与收发器之间不采用光电隔离。这是因为增加光电隔离虽然能增强系统的抗干扰能力,但也会增加CAN总线有效回路信号的传输延迟时间,导致通信速率或距离减少。82C250等型号的CAN收发器本身具备瞬间抗干扰、降低射频干扰(RFI)以及实现热防护的能力,它具有的电流限制电路还提供了对总线的进一步保护功能。如果现场传输距离近、电磁干扰小,可以不采用光电隔离,以使系统达到最大的通信速率或距离。SfF自动化在线网

图2 接口电路

图2接口电路SfF自动化在线网

2系统软件设计SfF自动化在线网

2。1设计流程SfF自动化在线网

FPGA对CAN总线通讯模块的控制主要包括3部分:CAN总线节点初始化、报文发送和报文接收。由于通讯模块对接收数据的实时性要求并不是很高,因此CAN总线的数据接收和发送采用查询方式。SfF自动化在线网

2。1。1初始化过程SfF自动化在线网

系统上电后首先对82C250和SJA1000进行初始化,以确定工作主频、波特率、输出特性等。SJA1000的初始化只有在复位模式下才可以进行,初始化主要包括工作方式的设置、验收滤波方式的设置、验收屏蔽寄存器(AMR)和验收代码寄存器(ACR)的设置、波特率参数设置和中断允许寄存器(IER)的设置等。在完成SJA1000的初始化设置以后,SJA1000就可以回到工作状态,进行正常的通信任务。设计中使SJA1000工作在PeliCan的方式下。SfF自动化在线网

2。1。2发送过程SfF自动化在线网

发送时,用户只需将待发送的数据按特定的格式组合成一帧报文,送入SJA1000发送缓冲区中,然后启动SJA1000发送即可。当然,在往SJA1000发送缓存区送报文之前,必须先判断发送缓冲区是否锁定,如果锁定则等待;判断上次发送是否完成,未完成则等待发送完成。FPGA通过SJA1000向CAN总线进行数据发送的流程图如图3所示。SfF自动化在线网

图3 发送数据流程图
基于FPGA的CAN总线通信节点设计
评论】【加入收藏夹】【 】【关闭
※ 相关信息
无相关信息
※ 其他信息
访问数: | 共有条评论
发表评论
用户名:
密码:
验证码: 看不清楚,点击刷新
匿名发表

 搜索新闻
[提交投稿]  [管理投稿]
 最新新闻
 热点新闻
数据加载中..

网站地图
Autooo.Net 版权所有
Copyright © 2007--2013 All rights reserved