上报文怎么写( 二 )


CAN数据帧的组成
远程帧 远程帧由6个场组成:帧起始、仲裁场、控制场、CRC场、应答场和帧结束 。远程帧不存在数据场 。远程帧的RTR位必须是隐位 。DLC的数据值是独立的,它可以是0~8中的任何数值,为对应数据帧的数据长度 。出错帧 出错帧由两个不同场组成,第一个场由来自各站的错误标志叠加得到,第二个场是出错界定符 错误标志具有两种形式: 活动错误标志(Active error flag),由6个连续的显位组成 认可错误标志(Passive error flag),由6个连续的隐位组成 出错界定符包括8个隐位 超载帧 超载帧包括两个位场:超载标志和超载界定符 发送超载帧的超载条件: 要求延迟下一个数据帧或远程帧 在间歇场检测到显位 超载标志由6个显位组成 超载界定符由8个隐位组成
数据错误检测
不同于其它总线,CAN协议不能使用应答信息 。事实上,它可以将发生的任何错误用信号发出 。CAN协议可使用五种检查错误的方法,其中前三种为基于报文内容检查 。3.4.1 循环冗余检查(CRC) 在一帧报文中加入冗余检查位可保证报文正确 。接收站通过CRC可判断报文是否有错 。3.4.2 帧检查 这种方法通过位场检查帧的格式和大小来确定报文的正确性,用于检查格式上的错误 。3.4.3.应答错误 如前所述,被接收到的帧由接收站通过明确的应答来确认 。如果发送站未收到应答,那么表明接收站发现帧中有错误,也就是说,ACK场已损坏或网络中的报文无站接收 。CAN协议也可通过位检查的方法探测错误 。3.4.4 总线检测 有时,CAN中的一个节点可监测自己发出的信号 。因此,发送报文的站可以观测总线电平并探测发送位和接收位的差异 。3.4.5 位填充 一帧报文中的每一位都由不归零码表示,可保证位编码的最大效率 。然而,如果在一帧报文中有太多相同电平的位,就有可能失去同步 。为保证同步,同步沿用位填充产生 。在五个生 。在五个连续相等位后,发送站自动插入一个与之互补的补码位;接收时,这个填充位被自动丢掉 。例如,五个连续的低电平位后,CAN自动插入一个高电平位 。CAN通过这种编码规则检查错误,如果在一帧报文中有6个相同位,CAN就知道发生了错误 。如果至少有一个站通过以上方法探测到 一个或多个错误,它将发送出错标志终止当前的发送 。这可以阻止其它站接收错误的报文,并保证网络上报文的一致性 。当大量发送数据被终止后,发送站会自动地重新发送数据 。作为规则,在探测到错误后23个位周期内重新开始发送 。在特殊场合,系统的恢复时间为31个位周期 。但这种方法存在一个问题,即一个发生错误的站将导致所有数据被终止,其中也包括正确的数据 。因此,如果不采取自监测措施,总线系统应采用模块化设计 。为此,CAN协议提供一种将偶然错误从永久错误和局部站失败中区别出来的办法 。这种方法可以通过对出错站统计评估来确定一个站本身的错误并进入一种不会对其它站产生不良影响的运行方法来实现,即站可以通过关闭自己来阻止正常数据因被错误地当成不正确的数据而被终止 。
【上报文怎么写】

上报文怎么写

文章插图