||
CAN2.0B规范定义了两种互补的逻辑数值:“显性”和“隐性”,同时传送“显性”和“隐性”位时,总线结果值为“显性”。“显性”(“Daminant”)数值表示逻辑“0”,而“隐性”(“Recessive”)表示逻辑“1”。 在CAN规范中并未定义代表逻辑电平的物理状态(例如电压),CAN网络使用符合ISO11898-2标准的电平信号,典型地,CAN总线为“隐性”(逻辑1)时,CAN_H和CAN_L的电平为2.5V(电位差为0V);CAN总线为“显性”(逻辑0)时,CAN_H和CAN_L的电平分别是3.5V和1.5V(电位差为2.0V),如下图1所示。
图1蓝为CAN_L,红为CAN_H,绿为差分信号
2 解析CAN_L数据
对于CAN_L高电平2.5V为信号“1”,低电平1.5V为信号“0”;对于CAN_H高电平3.5V时(CAN_L=1.5V)为“0”低电平2.5V时为1,也就是说只有电平都是2.5V,CAN总线上传输的才是信号“1”.
差分电压定义: Vdiff = CAN_H - CAN_L
那个图中黄线为CAN_H波形,绿线为CAN_L
在波形左,右两端时,CAN_H=CAN_L=2.5v,称为"隐性" (差值为"0v"为“1”)
在波形中间时,CAN_H=3.5V,CAN_L=1.5V,称为"显性" (差值为"2v"为“0”)
即CAN_H和CAN_L相差2V时,总线上传输“0”,CAN_H和CAN_L相等为2.5V时总线上传输“1”.