房产频道

当前位置:房产 > 本地新闻 > >正文

Can总线如何检测BUS-OFF

2022-02-07 14:19:07 来源:网络 编辑:
1.什么是BUS-OFF

当CAN控制器发生错误的次数超过255次,就会触发BUS-OFF错误。一般发生BUS-OFF的条件是CAN总线受周围环境干扰,导致CAN发送端发送到总线的数据被BUS总线判断为异常,但异常的次数超过255次,BUS总线自动设置为BUS-OFF状态,此时总线处于忙的状态,数据无法发送,也无法接收。

2.如何检测BUS-OFF?

下面以CAN发送数据为例,介绍如何检测BUS-OFF错误状态。

structcan_frameframesend={.can_id=0xaa,.can_dlc=1,.data[0]=0x66,};err=write(s_can0,&framesend,sizeof(framesend));if(err<=0)perror(“senddataerror”);else{if(framesend.can_id&CAN_ERR_BUSOFF){perror(“bus-off”);}}通过检测framesend .can_id是否被BUS-OFF置位。

3.BUS-OFF错误后如何处理?

最好的处理方法是:restart。can0出错了,restart can0。

4.代码实现

检测CAN BUS-OFF错误并进行处理,网上已经有开源代码,大家可以参考这个网址:http://www.pengutronix.de/software/libsocketcan/download/代码里有个can_get_state函数,也可以检测CAN BUS当前的状态。

intstate;if((can_get_state(if_name_can0,&state))<0){fprintf(stderr,"cannotgetbustate,""somethingisseriouslywrong");}elseif(state==CAN_STATE_BUS_OFF){fprintf(stderr,"DeviceisinBUS_OFF");do_restart("can0");}

do_restart("can0")的作用是restart can0。

标签: Can总线BUS-OF

新闻排行

推荐新闻

最便宜5万多就能买一套 乳山白菜价海景小区入住不超10户

跌成白菜价,最便宜5万多就能买一套。近日,山东威海乳山的海景房冷上...

北京商品房销售措施再优化!开发商可为预售证申请延期

时隔两年,北京再度对商品房销售措施进行优化。8月19日,市住建委发布...

各地救市奇招纷纷上演甚至买房“送工作” 下半年家电行业或迎来小阳春?

普通的刺激手段已经不能满足现在的楼市了。各种各样的奇招,开始纷纷...

图说湖湘

前三季度国内生产总值870269亿元 同比增长3.0%比上半年加快0.5个百分点
10家鞋企中有2家企业今年上半年净利润处于增长状态 鞋企表现有喜有忧
291家科创板公司实现营业总收入合计同比增长28.93% 科创板中报业绩有望继续领跑
沪深A股震荡走低 保险、农业板块逆市走强