plc接收CAN总线上的信息,可以配置成CANopen基本协议进行9针口程序编写。
CAN协议用于汽车中各种不同元件之间的通信,以喊模则此取代昂贵而笨重的配电线束。该协议的健壮性使其用途延伸到其他自动化码档和工业应用。
CAN协议的特性包括完整性的串行数据通讯、提供实时支持、传输速率高达1Mb/s、同时具有11位的寻址以及检错能力。
CAN总线使用串行数据传输方式,可以1Mb/s的速率在40m的双绞线上运行,也可以使用光缆连接,而且在这种总线上总线协议支持多主控制器。
扩展资料:
CAN协议总线的工作原理:
CAN与I2C总线的许多细节很类似,但也有一些明显的区别。当CAN总线上的一个节点(站)发送数据时,它以报文形式广播给网络中所有节点。对每个节点来说,无论数据是否是发给自己的,都对其进行接收。
每组报文开头的11位字符为标识符,定义了报文的优先级,这种报文格式称为面向内容的编址方案。
在同一系统中标识符是唯一的,不可能有两个站发送具有相同标识符的报文。当几个站同时竞争总线读取时,这种配置十分重要。
参考资料来源:百度百科—可编程逻辑控制器 (可编程控制器件)
参考郑棚资料来源:百度百科—CAN总线协议
1.正确的初始化,比如时间特性,波特率,工作模式等。2.过滤器设置,高小器的编号,过滤器宽度以及过滤器的过滤模式还有过滤器标准值设置等。
3.发送/接收数据的方式有查询方做纤式和中断方式,个人建议发纯氏仿送使核颤用查询方式,接收使用中断方式。
首先,请看这份恒润工程师写的论文《CAN总线系统测试技术》。里面基本描述了CAN总线开发的流程,但主要侧重于CAN总线的测试,不过也能让你有所了解。
根据你的描述,假设你的要求是:能够基于某嵌入式平台(最好该平台在汽车ECU开发中被广泛使用),根据给定的通信协议(一般由通信矩阵描述),编写CAN接口代码,并能通过相关设备进行简单测试。
推荐的学习步骤为:
1. 了解CAN基本知识
可以通过这个ppt,恒润的东西还是不错的。
CAN基础_百度文库
2. 直观的了解CAN
这需要你购买或借用CAN总线检测设备,档次差很多。如果是你自己想玩,可以买个周立功的USB转CAN,淘宝也就几百块钱。如果是课题组采购,可以买个Kvaser的USBCAN,几千块吧。大致这个样子。乎皮
要是土豪的话,可以买Vector的VN1600,这个就好几万了。以上三种我都用过。一定要买双通道,然后一个口发,一个口接,可以自己接延长线通过示波器看信号了。尝试修改报文ID,数据,波特率等等,看示波器的变化,对理解第一部分的内容很有帮助
3. 选择嵌入式平台,学习CAN接口的编程
飞思卡尔MC9S08DZ60MLH 8位汽车级CAN总线 开发板 学习板超
可以选择这个小板子练习一下,程序的写法都是差不多的。然后和第二部分的总线检知瞎测岁猛差设备连在一起进行测试。
这一步需要详细了解信号转换的知识,特别是Big Endian和Little Endian的区别,factor和offset的作用,如何置1或置0,可以参考DBC_File_Format_DocumentaTIon_百度文库,很详细,看完就懂了。
4. 如果有兴趣,可以看看J1939协议(用于商用车)或者CANOpen协议(用于现场控制,很多电机控制器使用)或者ISO 15031-5(用于OBD诊断)。
最后,希望你在了解CAN以后,不要花过多的精力在底层上,基本都是体力劳动。体现价值的还得是上层。请看看一汽技术中心的相关招聘要求:
工作职责
1.设计新能源汽车网络拓扑和制定网络技术需求;
2.制定新能源汽车网络通信需求、网络通信矩阵和网络数据库;
3.设计和开发新能源汽车网络通信协议仿真试验、网络通信规范、网络线束规范;
4.设计新能源汽车网关控制器及具有相同网络通信功能的接口控制器产品定义与技术规范;
5.负责新能源汽车电子电气开发过程中的问题解决,配合生产和售后服务。来源:知乎 作者:Wang Yu
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)