CAN总线各个功能模块的设计

发布者:Turquoise最新更新时间:2016-05-31 来源: elecfans关键字:CAN总线  控制器  FPGA  Verilog  HDL 手机看文章 扫描二维码
随时随地手机看文章
  引言

  CAN(Controller Area Network)是由ISO定义的一种串行通信总线,它是一种能有效地支持高安全等级的分布实时控制的新一代网络通信协议,属于现场总线范畴。CAN最早被设计作为汽车环境中微控制器的通讯,在车载各电子控制装置与ECU之间交换信息,形成汽车电子控制网络,目前应用领域已经相当广泛。

  近年来,支持CAN协议的芯片不断推出,给CAN总线用户带来了极大的方便。随着我国对现场总线技术需求的增加,CAN总线已经会成为我国最常用的现场总线之一。

  基于CAN总线的ECU电子控制单元的开发,也是现在最热门的研究。现在对CAN总线芯片的研究已经不再局限于单一芯片的研究,而是把所有的功能芯片都集中在一块芯片上实现一个完整的ECU的功能。

  本项目目的是利用FPGA实现一款支持CAN2.0协议的总线控制器,完成一个通用的能够满足CAN2.0协议的CAN总线控制器软IP核,这样可以在以后的应用中方便的集成到其他系统中去。本文使用VerilogHDL语言,设计了一款支持CAN2.0协议的CAN总线控制器,并利用FPGA芯片在CAN总线网络中对其进行了测试,实现了设计目的。创新点为CAN_Registers设计中寄存器模块、位流处理器的收发部分功能、测试程序、基于该FPGA的CAN总线控制器的节点电路等。

  1 CAN总线控制器设计

  1.1 CAN控制器设计流程

  1.1.1 功能设计

  首先对CAN2.0协议进行了深入的分析,掌握了CAN总线协议的各部分内容;而后参照和分析了几种典型的CAN总线控制器的功能;最后选择PHILPS公司生产的CAN总线控制器SJA1000进行进一步的分析,掌握了它的各部分模块的功能。在这些基础上根据需要规划了所设计的CAN总线控制器的功能。

  1.1.2 设计描述和功能验证

  功能设计完成后,依据功能并参照CAN总线2.0协议,将控制器划分为若干功能模块,明确了各个功能模块的作用。确定模块及其功能之后,用Verilog HDL语言实现了各模块的设计。接着,利用Modelsim对整个设计进行了功能验证。

  1.1.3 逻辑综合

  功能仿真通过以后,利用QuartusⅡ对所设计的CAN总线控制器进行逻辑综合,并把其配置到FPGA中。

  1.1.4 硬件验证

  配置到FPGA中以后,用所设计的基于FPGA的CAN总线控制器作为一个节点,与采用SJA1000作为控制器的节点电路进行了通信测试,验证了所设计的CAN总线控制器的功能。

  1.2 CAN总线控制器的整体设计

  1.2.1 控制器SJA1000的功能结构

  SJA1000是PHILIPS公司于1997年推出的一种独立CAN总线控制器,用于汽车和一般环境中的控制器局域网络。SJA1000主要由以下几个部分构成:接口管理逻辑、发送缓冲器、接收缓冲器、接收滤波器、位数据流处理器、位时序逻辑、错误管理逻。SJA1000是双列直插式集成电路,功能框图如图1所示。

  

  1.2.2 本文中控制器的功能结构

  本文设计的CAN控制器参照SJA1000控制器的结构,功能基本框架包含如图2所示的3个功能模块。

  

  CAN_IML是CAN总线控制器接口逻辑,主要功能是解释来自微处理器的命令,控制CAN寄存器的寻址,向微处理器提供中断信息和状态信息。

  CAN_Core为CAN协议控制器的核心部分,完成CAN协议中的数据链路层的全部功能以及物理层的部分功能,包括LLC子层的接收滤波、超载通知和恢复管理、MAC子层的数据封装/拆装、帧编码、媒体访问管理、错误检测、错误标定、应答和串行化/解串行化、以及物理层的位编码/解码、位定时和同步。CAN_Registers为一寄存器组,外部微处理器可以通过地址直接访问这些寄存器。根据功能框图,设计了CAN总线控制器的程序结构,如图3所示。

  1.3 CAN总线各个功能模块的设计

  1.3.1 CAN_IML设计

  参照SJA1000,设计FPGA CAN总线控制器的接口,如图4所示。

  

  图中Port_0_io_7到Port_0_io_0为地址/数据复合总线。Cs_can_i为片选输入信号。当Cs_can_i为0时允许访问CAN总线控制器。Ale_i为1时,允许对寄存器进行赋值。Rd_i和Wr_i为微处理器的读使能信号和写使能信号。Irq_on为中断输出信号,用于中断微处理器。Rst_i为复位输入,用于复位CAN接口。Clkout_o为FPGA CAN控制器提供给微处理器的时钟输出信号,时钟分频寄存器可禁止该引脚输出。Bus_off_on控制总线关闭和总线开放接口,Tx_o和Rx_i与收发器相连,向总线发送和接收数据。

  1.3.2 CAN_Registers设计

  设计的CAN总线控制器的寄存器模块包括以下寄存器:模式寄存器、命令寄存器、状态寄存器、中断寄存器、中断使能寄存器、总线定时寄存器0~1、仲裁丢失捕获寄存器、错误代码捕获寄存器、错误报警限制寄存器、接收错误计数器、发送错误计数器、验收代码寄存器0~3、验收屏蔽寄存器0~3、接收信息计数器和接收/发送缓冲器。

  1.3.3 CAN_Core设计

  CAN_Core为整个CAN控制器的核心,负责处理CAN的协议。核心模块由4个部分组成,结构如图5所示。

  

  下面简单介绍CAN_Core模块中的位流处理器、位时序逻辑。

  位流处理器是CAN总线控制器中控制数据流的发生器。它还执行总线上的错误检测、仲裁、填充和错误处理等功能。主要有接收模块、发送模块、错误管理模块、CRC校验、验收滤波、FIFO等6个模块组成,如图6所示。其中CRC校验、FIFO、验收滤波在所执行的项目中已经有他人设计完成。

  

  位时序逻辑的设计包括位定时设计、采样点设计、位同步设计3部分。下面以定位时为例介绍其设计。

  位定时设计 在位定时设计中采用了一个有3个状态的状态机。3个状态分别对应的是同步段和相位缓冲段1以及相位缓冲段2。传播段占用的时间短,在控制上没有特别的意义,仅作为物理层的传播延时,所以没有设计进状态机,位定时部分的状态机设计如图7所示。

  

  接着使用ModelSim软件对所设计的各个模块和整个CAN总线控制器进行了功能仿真,仿真结果表明达到了设计目标。

  2 测试验证

  本文最后设计了CAN总线控制器的测试程序,其目的是模拟一块微处理器对CAN总线控制器进行读写操作,从而实现对CAN总线控制器的寄存器访问,完成总线收发功能。在该测试程序编写中,各个功能基本上以任务的形式实现,进行不同的仿真时只需调用相关的任务模块。图8为验证程序的组成框图。

  

  仿真验证完成以后将其HDL CAN总线程序下载到FPGA中进行测试,目标芯片采用Cyclone系列的EP1C6Q240C8,为了验证所设计的FPGA CAN总线控制器,还设计了一款基于该FPGA的CAN总线控制器的节点电路,然后利用所设计的节点电路与其他3个利用SJA1000作为控制器的CAN总线节点进行了通信测试。所有的节点使用AT89S52单片机作为节点微处理器,PCA82C250作为收发器,测试结果表明下载到FPGA中的控制器程序工作正常,实现了预计的CAN总线通讯功能。测试网络示意图如图9所示。

  

  测试时,按动节点1上的开关并将该状态发送到节点2,在节点2上能显示对应的状态,反之也可。同时也可在节点2通过键盘输入某一代码,而在节点1上的数码管上显示相应的结果。该实验结果表明下载到FPGA中的控制器程序工作正常。

  3 结语

  本项目利用Verilog HDL语言设计了一款CAN总线控制器芯片,并使用ModelSire软件对所设计的CAN总线控制器进行了功能仿真;之后为了验证设计,还编制一个验证程序,并将验证之后的设计配置到了FPGA中;最后用所设计的基于FPGA的CAN总线控制器制作了CAN节点,并与其他采用SJA1000为控制器的CAN节点进行了通讯测试,实现了CAN总线良好的工作,验证了设计的正确性。

关键字:CAN总线  控制器  FPGA  Verilog  HDL 引用地址:CAN总线各个功能模块的设计

上一篇:关于PCI9052在多功能CAN适配卡中的应用研究
下一篇:3.3VCC供电下实现标准的HS-CAN通信

推荐阅读最新更新时间:2024-05-03 00:25

可编程ASIC器件主从式下载开发系统的设计
   1 引言   当前在EDA领域,只要具备台式或笔记本电脑并装有工具软件,就可以方便地对可编程ASIC(CPLD/FPGA)进行设计开发,在系统可编程(ISP)器件为我们提供了这种便利条件。ISP方式虽然可以用一根下载电缆代替了编程器,但兼有提供下载和演示环境两大功能的可编程ASIC开发系统对于用户来说仍是必须的。本文提出的主从式下载开发系统可以适配多种目标芯片,具有较宽的开发应用范围,经过几年的教学、科研实践,使用效果良好。    2 系统结构及工作原理   对ASIC器件设计开发的前期工作主要依靠对某种EDA工具软件使用。对于其工具软件和硬件编程语言,必须通过实践锻炼方能熟练使用和达到掌握技巧的程度。对应用系统和目标
[嵌入式]
可编程ASIC器件主从式下载开发系统的设计
Microchip宣布推出低成本FPGA开发套件PolarFire SoC Discovery Kit
Microchip宣布推出PolarFire SoC Discovery Kit,这是一款适用于Linux和实时应用的低成本开发板。该SoC Discovery Kit是Microchip为PolarFire系列FPGA推出的最新开发板。PolarFire系列是首款内置RISC-V CPU的SoC FPGA。它们为智能、网络系统提供低功耗、高热效率和国防级安全性,同时支持Linux和实时应用的确定性L2内存系统。 Microchip于2020年针对PolarFire SoC推出了Icicle Kit,随后又推出了适用于中带宽成像和视频应用的Video and Imaging Kit。现在,Microchip宣布推出Discov
[嵌入式]
Microchip宣布推出低成本<font color='red'>FPGA</font>开发套件PolarFire SoC Discovery Kit
恩智浦推出业界首个高电压全桥背光控制器IC系列
全新IC带来更高的效率 荷兰埃因霍芬,2007年12月4日—— 恩智浦半导体(NXP Semiconductors)(由飞利浦创建的独立半导体公司)今天发布了其高电压全桥背光控制器IC UBA2074及其低压版本UBA2072。由这两款IC共同组成崭新的全桥背光控制器IC系列,专门设计用以满足显示屏尺寸日益增大的趋势,并支持在液晶电视应用中越来越多使用的高压背光逆变器解决方案。为了满足客户的需求,公司将制造DC-AC逆变器控制IC,来推动冷阴极荧光灯(CCFL)或外部电极荧光灯(EEFL)在LCD背光应用中对所有显示屏的支持。 恩智浦UBA2074是业界首个真正的高压全桥逆变器IC,能够直接推动输入电压高达550伏的全桥,而
[新品]
富士通微电子扩充电机控制用8位微控制器阵容
富士通微电子(上海)有限公司今日宣布在其内置闪存的高性能8位微控制器(以下简称为单片机) “F2MC-8FX家族”基础上,又增加了6款内置无刷DC电机控制功能的48脚“MB95390H系列”的产品。此系列产品自2010年6月下旬开始提供样片,将于9月开始批量供货。 近年来,亚太市场上使用无刷DC电机控制的机器迅速增加,使得面向这些机器的少引脚电机控制单片机的需求也急剧上升。为应对这些需求,富士通微电子开发了“MB95390H系列”。市场上的空调、洗衣机,微波炉等家用电器、打印机以及复印机等办公设备、吹风机或电动剃须刀等个人护理产品中使用的DC电机在系统全体的成本中占较大比例,所以一直有降低价格的期待。另一方面,由于低
[单片机]
富士通微电子扩充电机控制用8位微<font color='red'>控制器</font>阵容
基于多DSP和FPGA的实时双模视频跟踪装置
   1、引言   随着现代高速处理器的迅猛发展,图像处理技术也日益成熟。其中,移动目标的视频检测与跟踪是图像处理、分析应用的一个重要领域,是当前相关领域的研究前沿。移动目标视频检测与跟踪技术,在机器人视觉、交通监测、可视预警、机器导航等民用领域有着广泛的应用,同时在火力拦截、导弹电视和红外视频制导等军用方面也发挥着重要作用。基于二维转台以DSP和FPGA为核心器件构成的视频识别和跟踪装置,可工作于电视图像或红外两个波段,实现图像跟踪各项功能。本文提出的跟踪算法与设计的跟踪装置可在一定程度上解决视频跟踪精度低、处理速度慢的问题,同时本视频跟踪装置也可作为进一步研究图像处理与跟踪控制的平台。    2、视频跟踪装置的硬件设计
[嵌入式]
基于多DSP和<font color='red'>FPGA</font>的实时双模视频跟踪装置
英飞凌为数据中心推出业界首款宽电压、可编程数字SOA控制的热插拔控制器
【2022年11月23日,德国慕尼黑讯】 高性能计算(HPC)数据中心对人工智能(AI)服务的持续需求正在推动该领域市场的增长。 专用的AI加速器有助于大幅提升这些数据中心的性能和效率。如同许多关键的基础设施系统一样,可靠性和高可用性对于这些数据中心必不可少,但却极难实现。AI超级计算平台的开发者面对这些要求,只能诉诸于可监控电源并在组件热插拔时也能保护系统的热插拔解决方案。 英飞凌科技股份公司推出XDP™ XDP710数字控制器来应对这些挑战,这是英飞凌智能热插拔控制器和保护电路(IC)系列的首款产品。 这款热插拔系统监控控制器IC的输入电压范围为5.5 V至80 V,瞬态电压最高可达100 V并可持续500 ms。它由三个
[电源管理]
英飞凌为数据中心推出业界首款宽电压、可编程数字SOA控制的热插拔<font color='red'>控制器</font>
基于FPGA的八位RISC CPU的设计
1 引 言 随着数字通信和工业控制领域的高速发展,要求专用集成电路(ASIC)的功能越来越强,功耗越来越低,生产周期越来越短,这些都对芯片设计提出了巨大的挑战,传统的芯片设计方法已经不能适应复杂的应用需求了。SoC(System on a Chip)以其高集成度,低功耗等优点越来越受欢迎。开发人员不必从单个逻辑门开始去设计ASIC,而是应用己有IC芯片的功能模块,称为核(core),或知识产权(IP)宏单元进行快速设计,效率大为提高。CPU 的IP核是SoC技术的核心,开发出具有自主知识产权的CPU IP核对我国在电子技术方面跟上世界先进的步伐,提高信息产业在世界上的核心竟争力有重大意义。 精简指令集计算机RISC(Reduc
[嵌入式]
CAN总线错误分析与解决
1、CAN总线的常见故障 CAN总线错误分析与解决 当CAN总线出现故障或数据传输异常时,往往会出现多种奇怪的故障现象,如仪表板显示异常,车辆无法启动,启动后无法熄灭,车辆动力性能下降,某些电控系统功能失等。 这是因为相关数据或信息是通过CAN总线传输的,如果传输失败,那么会产生多种连带故障,甚至造成整个网络系统瘫痪。 最为常见的故障症状是仪表板的显示异常,如下图所示。 在检修过程中,首先应查看具体的故障症状,根据故障症状和网络结构图来初步分析有可能是哪些原因造成的,然后使用相关的诊断仪器进行诊断,根据诊断结果制定相关检修方案,做到心中有数,目标明确。接着查找具体的故障部位和原因,同时结合相应的检测方法和测量结果找到故障点,从
[嵌入式]
<font color='red'>CAN总线</font>错误分析与解决
小广播
热门活动
换一批
更多
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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