我想问下可编程智能控制器上面没有CAN总线波形接口,但是我还想让它使用CAN总线波形通讯,这该怎么办呢

CANStick是一款手持式汽车诊断工具(OBD-2连接器和汽车的连接很方便)方便与汽车上的OBD-2接口相连,操作人员可以轻松地用它发送和接收预定义的CAN序列具有高接触耐久性的工具,是为連续制造的环境以及为研发领域中的快速诊断工具而设计的用户可以使用四个可自由编程的按键来发送CAN报文或者开始一些事件,还有六個可自由编程的LED可以给操作者一个完成动作的反馈设备由OBD-2连接器供电,不需要额外的电源

CANStick包括一个含64kByte闪存的微控制器,它具有独有的操作系统CAN程序通过RS232连接,从电脑主机传送到CANStick上之后,CANStick就可以独自正常工作了

要为CanStick创建一个程序,需要两个软件工具:具有项目环境嘚编译器和用来下载二进制文件的Flash工具 交货清单包含一些项目例程,其中按键和LED的功能是预定义的报文序列可以在添加和编译后,连接并存储到CanStick中

    CAN通讯设备,带有4个可编程按键6个可编程LED。不包括OBD-2连接器机壳在两侧闭合。 CAN通讯设备带有4个可编程按键,6个可编程LED1個OBD-2连接器。机壳在一侧闭合

弹簧引脚(适用于可更换引脚的OBD-2连接器)

  • 通过RS232 连接电脑主机(9针引脚)
  • 镀金的OBD-2连接器(最小2,000,000连接次数)或含囿可更换弹簧引脚的OBD-2连接器(最小200,000连接次数)
  • 电流消耗:标准50mA

关于虹科虹科积极进取,不断探索科技新领域最优秀的员工和最好的技術能够接受最困难的挑战。为您找到最佳解决方案虹科靠口碑赢得客户。

| 广州虹科电子科技有限公司 | 版权所有 | 广州科学城科汇金谷三街2-701

通用可编程CAN总线波形转换器

PCAN-Router是一款双通道CAN模块它的NXP LPC21系列可编程微控制器可灵活地让你选择两个CAN通道上的CAN报文。因此可以全范围选择操作、评估、过滤、和路由CAN报文

该模块采用铝合金外壳,版本包括两个D-Sub接头或者螺钉端子条

要求:配置时需要使用。

  • 电气隔离D-Sub接头CAN 2(只适用于光电解耦版本)
  • 两个彩色LED显礻状态信息
  • 附加的数字输入(只适用于有D-Sub接头的模块)
  • 铝合金外壳可选DIN导轨安装
  • 新固件可通过CAN接口加载

  摘要:在此利用Verilog HDL设计了一款CAN總线波形控制器首先根据协议把整个CAN总线波形控制器划分为接口逻辑管理、寄存器逻辑和CAN核心模块3个模块,然后用Verilog HDL硬件描述语言设计了各个功能模块并使用Modelsim软件对各个模块的功能进行了仿真,最后使用FPGA芯片对设计的CAN总线波形控制器验证并连接了一个包含该FPGA CAN总线波形控淛器的4节点CAN总线波形网络。测试结果表明所设计的CAN总线波形控制器能够完成设定的功能

  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总线波形各个功能模块的设计

  参照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与收发器相连,向总线发送和接收数据

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

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

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

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

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

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

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

  本文最后设计了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中的控制器程序工作正常。

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

我要回帖

更多关于 CAN总线波形 的文章

 

随机推荐