您的位置 首页 国产IC

CAN总线各个功能模块的规划

引言CAN(ControllerAreaNetwork)是由ISO定义的一种串行通信总线,它是一种能有效地支持高安全等级的分布实时控制的新一代网…

  导言

  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总线杰出的作业,验证了规划的正确性。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/ic/236711.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部