SAE J1939标准:参数群与地址分配详解

5星 · 超过95%的资源 需积分: 10 54 下载量 36 浏览量 更新于2024-07-29 1 收藏 550KB PDF 举报
SAE J1939是汽车行业广泛使用的通信标准,用于车辆网络通信。附录A和B是该标准的重要组成部分,主要关注参数群分配和地址与标识的管理。 附录A:参数群分配 在SAE J1939中,参数群(Parameter Group Number, PGN)是一种用于识别不同数据类型和功能的编码方式。它由三个字节组成,每个字节对应一个数字范围,如0到255。表A1展示了J1939参数群模板,其中DP(Data Page)表示数据所在的页面,GE(Group Extension)扩展了参数群的使用范围,PF(Protocol Data Unit Format)指定了数据单元的格式,DA(Destination Address)则是数据的目的地,PS(Specific Protocol Data Unit)则可能进一步细化数据的类型。PGN的编码规则在J1939-21标准的4.1.7节中有详细描述。 多重分组和地址分配 表A1中的数据表明,数据分为不同的类别,如1型和2型协议数据单元,每种类型都有其特定的地址范围和使用条件。例如,1型数据单元的地址分配是有序的,从DA=1开始,且有专用地址,而2型数据单元则有更大的地址空间。对于某些特定的参数群,如TSC10(转矩-速度控制)、TC1256(变速器控制)等,它们在J1939标准的特定章节中被定义,如5.3.10和5.3.20。 允许和未定义的地址 图例中的“X”表示允许的地址或群扩展,"NA"标记为不允许使用,"un"代表未定义的状态。在实际应用中,必须遵循这些规则以确保网络的正确性和数据的有效传递。例如,地址0-210可能是留给后续预留或未分配的,或者有特定用途。 修订 最后提到的“修订”可能指的是标准的更新和维护过程,表明随着技术的发展和需求变化,SAE J1939可能会进行相应的调整。这可能包括新的参数群分配、更精确的时间间隔限制(小于100毫秒和大于100毫秒之间的区别),以及对已有标准的补充说明。 SAE J1939附录A的参数群分配和地址管理对于理解和设计车辆网络通信系统至关重要,它规定了如何组织和传输数据,确保网络的高效运行和信息安全性。通过理解这些规则,工程师可以更好地设计和实现符合标准的车载通信系统。

优化这条sql: select distinct (select product_name from t_product from where id = #{productId} and mark = 1 and status = 1) as productName, (select count(0) from t_clue a where a.distribution_status != 4 and a.mark = 1 and a.product_id = #{productId} and a.status in(1,2,3,31,32,33)) as clueCount, (select count(0) from t_clue a left join t_clue_appendix b on a.clue_code = b.clue_code where a.distribution_status != 4 and a.mark = 1 and b.file_url is not null and a.product_id = #{productId} and a.status in (3,31,32,33)) as intentionCount, (select count(0) from t_clue a where a.status in (4,5,7,8) and a.distribution_status != 4 and a.mark = 1 and a.product_id = #{productId} and a.status = 4) as incomingCount, (select count(0) from t_clue a where a.status in (5,7,8) and a.distribution_status != 4 and a.mark = 1 and a.product_id = #{productId} and a.status in (5,7,8)) as approvedCount, (select count(0) from t_clue a where a.status = 6 and a.distribution_status != 4 and a.mark = 1 and a.product_id = #{productId} and a.status = 6) as rejectionCount, (select count(0) from t_clue a where a.status in (7,8) and a.distribution_status != 4 and a.mark = 1 and a.product_id = #{productId}) as loanCount, (select count(0) from t_clue a where a.status = 8 and a.distribution_status != 4 and a.mark = 1 and a.product_id = #{productId}) as swipeCount, (select sum(a.loan_amount) from t_clue a where a.distribution_status != 4 and a.mark = 1 and a.product_id = #{productId}) as loanMoney, (select sum(a.use_amount) from t_clue a where a.distribution_status != 4 and a.mark = 1 and a.product_id = #{productId}) as swipeMoney

2023-06-06 上传