由汽车工程师协会制定的J1850协议是一个标准的为汽车制定的协议。其主要优点是经济性好以及结构开放。这保证了它能够广泛地应用于各种汽车的制造过程。
SAE将用于汽车的网络协议分了三类,A类、B类和C类。A类网络数据传输速度最大不超过10kbit/s,它基本上用于执行器和传感器。根据SAE,B类定义为,在这种系统中,数据在节点之间传输,来减少多余的传感器和其他系统单元。这种复用系统节点在传统布线的汽车中已经作为独立单元存在了。B类网络可以完成A类网络的功能。B类网络的数据传输速率大约为100kbit/s。它主要用于不需要实时控制的场合。J1850协议就属此类。C类数据传输速率大约为1Mbit/s。由于数据传输速率高,因此一般用于实时控制系统,CAN就属于这一类。
另一个J1850协议的明显的优势是它没有“主从”结构,完全没有“主”的概念。总线接入方案事实上是一个载波监听多路访问/冲突检测方法(CSMA/CR)[56]。这意味着任何节点可以在它检测到总线上是空闲的时候传输。如果有冲突,仲裁机制将会决定哪个节点可以传输。这和用于CAN的标示符机制基本相同。竞争算法根据标示符的优先级分配总线的控制权给各个节点。如果同一时间有多个消息要被传播,算法将从所有的标示符中筛选出优先级最高的一个传输者,其他低优先级的就被制止传输。这个选出的传输者继续传输。传输者会收到它传输的消息,这么做是为了检查总线上的消息是否就是其传输的消息。一旦完成传输,它就交出总线控制权,然后别的传输者重新竞争总线控制权。采用这种开放架构,能使新增节点或移除节点时不需对网络进行大规模改造。由于CSMA/CR方案,总线接入、消息传输不会因为冲突而丢失。这样可以节省消息重传消耗的时间,所以具有更高的带宽利用率。
SAEJ1850协议在汽车上有两种使用方式:一个高速,41.6kbit/s,双线PWM方式;二是,10.4kbit/s,单线变脉宽调制(VPW)方式。
这两种方法有很多区别,简单来说,其本质区别在于两种方式下,每一位对应的电压变化数量不同。PWM方法使用两个电压转变表示一位,而VPW使用单个电压转变表示一位。顺便提一句,通用汽车开发了VPW方法。它根据四个特征来描述一个转变。这四个特征是:有效状态或无效状态以及长或短脉冲。VPW调制采用一种独特的方法来表示位。在这个方法中,“1”并不是表示从低到高的转变,而是用总线保持某一特定电压持续的时间长短表示“1”或“0”。更具VPWJ1850协议的定义,“1”表示总线保持高64μs或者低128μs,“0”表示总线保持高128μs或者低64μs。高状态指4.25~20V电压,低指0~3.5V电压。
当一个节点要传输数据时,它首先检测总线。如果总线空闲,一般为低。要传输的节点既可以保持总线的低状态,也可以通过上拉晶体管将总线状态推高至高电压。如果有两个节点同时准备传输,其中一个节点保持总线为低状态,而另一个节点将要推高总线电压,则后者将获得总线控制权,其他节点需要延迟传输。
信号可通过复用技术传输。复用有两种,频分复用(FDM)和时分复用(TDM)。在FDM中,每一个传输者被分配一个特定频带,在TDM中,每一个传输者则需要在不同的时间段里传输。10.4kbit/s模式用的就是可变时间TDM。
由于SAEJ1850协议中,总线访问采用CSMA/CR,所以没有定义哪个节点在哪个固定时刻可以开始传输,总线只要空闲就能传输,因此,SAE J1850里的数据传输是异步的。之前提到过,这个协议没有采用大多数协议使用的主从结构,而且,此协议中消息是广播的。这就意味着被传输的消息不仅会被网络中所有其他节点接收到,还会被传输者自己接收到,就像回音。这么做可以确认总线上当前的消息是否和传输者传输的消息一致。
想要传输的节点首先持续检测总线状态一段时间。如果总线显示空闲,就开始传输。如果总线忙,就等一段时间然后再次尝试传输。假设一个节点要以无效方式传输消息。如果没有竞争,则该节点可以继续传输消息。传输过程中,每一位都要被检测,来确保没有别的优先级更高的节点在传输,这种方式称为逐位仲裁,这一过程直到剩下一位时结束。在传输之前,如果另一个节点传输了一个有效符号,则原本传输无效信号的节点将失去总线控制权,并开始扮演接收者角色,这被称作仲裁失败。这正是这种仲裁方案被称作载波监听多路访问/冲突检测方法(Carrier Sense Multiple Access/Collision Detection,CSMA/CR)的原因。所以被称作多路访问,是因为允许多个节点得到平等的访问总线的资格。
一旦节点传输结束,刚才失去控制权的节点再次尝试访问总线,所有的仲裁过程又重新开始。比别的节点在消息开头有更多有效信号的节点会更早得到总线控制权。然而,必须强调的是,由于总线访问的特性,不可能专门划出一段时间用来使某个节点传输或者接收,这一点和TTCAN不同。
图4-58给出了SAE J1850协议中的消息帧的格式。SOF表示帧开始域,它出现在每一帧的开始。SOF常常在总线中是一个持续200μs的高状态。随后是一个头部域,头部域包含了紧跟这消息后的消息的一些信息。例如,下一个消息的头包含了多少字节或者整个消息帧包含了多少字节。一般头部域从一字节到三字节不等。
(www.xing528.com)
图4-58 SAEJ1850消息格式
数据区域包含一系列的0和1,这是存放待传输数据的地方。其长度在一个字节到十一个字节之间。然而,必须记住数据域和头部域都加在一起必需符合J1850协议对消息帧的格式要求。
在CAN和TTCAN中提到,CRC表示循环冗余校验。这里整个消息被一个事先定好的多项式除,运算结果以补码形式附加到消息里一起传输。接收方做相同运算,如果没有错误,结果常常是一个定值(十六进制数C4)[57]。
EOF是文件结尾,用来告知接收者消息结束。接收者随后可以开始传输自己的消息,或者发送帧内响应信息IFR。IFR是接收者用于告知传输者消息已被正确接收的方法。EOF在J1850协议中是持续200μs的低状态。图4-59给出了一个带有IFR的SAEJ1850消息。
图4-59 带IFR的SAE J1850消息
SAE J1850参数
网络配线总长度限制在40m,包括了35m的车上网络和5m的车外网络。配线在10.4kbit/s时是单股线,41.6kbit/s时是双股线。单元或节点的最大数量,包括车外设备,是32个。这是在把节点看作具有10.6kΩ电阻和470pF电容的负载的假设下得到的。车外节点负载的最小电阻应该为10.6kΩ,最大电容不应超过500pF。另外,0是显性信号,而1是隐性信号。在10.4kbit/s模式下,传输的脉冲是波浪形的,这种形状的好处是总线状态转换的边沿被圆化,消除了大量高频分量。表4-3给出了VPW DC参数。
表4-3 VPW直流参数
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。