SAE J1939是CAN的一种高层协议,像CANOpen,Devicenet都属于CAN的高层协议,因为J1939算是比较简单的一种,广泛应用于重卡,农林,船舶,以及一些非高速路面机械,像挖掘机,压路机,柴油发电机,有的军工产品也是采用基于J1939的协议做一些修改。因为SAE J1939的协议文档不是免费的,而且正版的价格不菲,一套SAE J1939最新的文档需要700多美元
网上大家能找到的都是一些很老的版本,作为学习能用,但是做新产品开发还是要注意,新版本的修改了什么地方,有没有影响。不但协议文档贵,有关J1939的软件协议栈也是价格不菲,有兴趣的可以咨询下像vector,等这些知名汽车电子企业,国内的也有,但价格也挺贵,像有关J1939的转换器,网关类产品相当贵,都要好几千块钱,像Anybus的J1939转Modbus的网关要七千多,Adweb的同类产品也要好几千,但这些都是工业级应用的产品,在实际的项目中配置就可以用,对于不熟悉又想快速做产品的可以考虑在老产品上加上转换器,嵌入式程序猿可以为您开发同类产品,并且质优价廉。
跟CAN相关的分析解析仪器和产品也很贵,对许多初学者带来了很高的门槛,尤其是初次接触这协议得下很大功夫才能熟悉,我记得小猿初次接触是几年前了,当时也是反复的看了协议很多遍,才理清了脉络,然后开始写代码,调试和集成应用到产品,以下是比较新版本的文档,这些文档的价格在官网都能查到,目前网上找不到新版本。如果英文可以的话,建议还是阅读英文原版文档。
抽空对之前做的J1939的部分代码做了些优化和修改
其实只要你对标准协议熟悉了,你自己一样可以写出J1939的协议栈,应用于你的项目和工程。网上有开源的协议栈,但具体小猿也没有验证过,有兴趣的可以自己去搜索学习,嵌入式程序猿公众号为您提供从协议到代码的全部培训和产品定制合作开发,有想法的可以私信联系。