SAE J1708
J1708是由国际汽车工程学会发布并维护的串列通讯标准,主要用于重型汽车电子系统中的电子控制器(ECU)之间的资料传输,标准采用RS485之通讯方式,但用不同的输出电路以达到全双工之目的;与开放式系统互联模型(OSI模型)相比,J1708定义了实体层,常见运行在J1708标准上的协定为SAE J1587 和 SAE J1922。
特性
J1708使用与RS-485相同的收发器,然而J1708的串列输出连接收发器之传输始能(DE),而非传输输入(DI),因此需要在使能之前加上反相器。总线支持至少20个使用这些收发器的节点。J1708不使用RS-485所使用的总线端接电阻,而是以上拉电阻将线A维持在高电位,下拉电阻将线B维持在低电位。
通信
J1708可随机存取总线,任何节点都可在需要时进行传送。总线必须至少处于空闲模式一次总线存取时间后,才可进行存取。
如果同时有两个封包传送,在总线上发生冲突,则两个节点都必须放弃此次传送,取消传送,然后等待至少一个存取时间后重新传送。等待时间由优先级决定,高优先级的等待时间较短。
组成
每笔封包最多不超过21个字节,每个字节包含一个起始位、8个资料位、一个停止位,起始位为逻辑低电位,停止位反之,资料位由最低有效位LSB开始传送。
每个封包由一个封包ID(MID)、n个数据、及一个校验合组成,数据部分由上层标准规范(ex. J1587)。
(MID + 所有数据 + 校验合) & 0xFF = 0