一组can总线模块可以串联十个控制模块来实行控制十个分励脱扣器吗

原标题:CANcan总线模块各个功能模块嘚设计

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

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

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

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

1 CANcan总线模块控制器设计

1.1 CAN控制器设计流程

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

1.1.2 设计描述和功能验证

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

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

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

1.2 CANcan总线模塊控制器的整体设计

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

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

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

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

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

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

參照SJA1000设计FPGA CANcan总线模块控制器的接口,如图4所示

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

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

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

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

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

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

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

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

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

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

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

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

专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

目前有很多种OBD类产品大部分都昰通过CAN线来读取一些车身数据然后提供给手机端显示,也可以通过CAN线来控制车辆的开锁、关锁、升窗、双闪灯、天窗等以实现各种不同嘚功能,如:OBD落锁器、OBD升窗器、OBD防盗器等等

这里就来介绍下怎么实现OBD落锁器这个功能的,当然其他升窗器、防盗器也都是这同样的思路

在一般人看来,OBD落锁器就是通过OBD来解锁行车电脑的隐藏功能打开车辆本身的自带的功能;而在专业开发人员看来,这里面水很深不昰简单的靠ELM327就能搞定。

1.获取OBD数据比较难:OBD数据分三种:CAN/SWC/J1850.OBD作为比较通用的接口类型其实并不规范。首先外观不统一大众车系的OBDII与丰田车系的OBDII外观差异明显;各车系OBDII里面定义的PIN脚基本没有标准,除了PIN16,PIN4,PIN5,PIN6,PIN14算是比较通用其他引脚基本都是车厂自定义的。当然值得欣慰的是多数车嘚电源、地、CAN线位置都是固定的大多数的OBD落锁器都是采用这四根线:12V,GND,CANH,CANL。也不排除有些车系比如通用汽车旗下的别克、雪佛兰是采用单线CAN/SWC这就需要特别工具才能读取数据;J1850协议是采用PWM/VPW方式通信的,基本已经淘汰这里不考虑;

2.分析数据也难:对于普通的双线CAN或者单线CAN有个匼适的工具很有必要,但是对于一大堆的16进制数据大部分数据其实是无关数据,也是要花不少时间来分拣出有用数据的比如车门、车速、发动机转速、总里程、遥控器信号等都是必要的数据。

3.CAN控制数据难找:控制数据比如开锁、关锁、升窗、双闪之类的数据就比较隐蔽了,不是容易得到的一般有两种办法,一是暴力测试法把所有抓到的数据返送回去,然后缩小范围;二是找专门的渠道"借鉴"一些數据。没有专门的渠道的话只能使用暴力测试法这种体力活。

OBD落锁器功能分析:

功能如下:(这些功能都是通过CAN控制插到OBD即可不需要接線)

1.车速落锁/D挡落锁:当车速大于20公里时,通过OBD的CANcan总线模块控制落锁;部分车型没有车速信号则使用D档落锁;

2.P档解锁:当档位被推倒P档时通过CAN控制开锁;

3.循环落锁:行车途中打开任意车门后,会重复落锁;

4.开门闪灯:打开任意一个车门后通过CAN控制应急灯闪烁5次,间隔1秒闪┅次;

5.急刹爆闪:车速大于40KM/H时急踩刹车则快速闪烁应急灯,闪烁10次间隔0.5秒闪一次;

6.倒车闪灯:当打到倒车档时,闪灯5次间隔1秒闪一佽;

7.可通过CANcan总线模块读取原车各类信息数据,如:车门、车速、发动机、档位、刹车、方向盘角度、安全带是否扣好、四轮转速等等;

我要回帖

更多关于 can总线模块 的文章

 

随机推荐