TI 2803x DSP芯片LIN通信之波特率自适应

将SCIGCR1寄存器中的ADAPT位置1来使能波特率自适应功能,在帧头接收期间,从机节点利用同步场可以测量出波特率。SCI/BLIN同步器在帧头接收期间会确定两个计数器:BRK_count和BAUD_count。

LIN标准协议规定11个Tbit作为从机节点检测间隙场的门限值(间隙场至少为13个Tbit的显性)。在第五个连续的下降沿,BAUD_count可以被测量出,至此,从机节点可以计算出Tbit,即BAUD_count/8,或者BAUD_count>>3。检测到的波特率可以通过上述Tbit获得,用户编程的波特率可以通过波特率配置寄存器获得。

MBRS用于测量BRK_count和BAUD_count,并且自动适应任何允许的LIN总线波特率。检测间隙场时,由于该部分始终为显性电平,无电平变化,BRK_count用到的Tbit莫非就是MBRS对应的Tbit,即20kbps?

如果在给定的容差范围内,同步场未检测到,不匹配的同步场错误(ISFE)标志会被置位。如果ISFE中断使能,则会触发ISFE中断。一旦一个有效的间隙场(超过11个Tbit)被检测到,接收器的状态机会复位至接收该新帧,这种复位条件仅在响应状态有效,在帧头接收过程中,如果出现额外的间隙场,不应出现复位。

------------------------------------------------------------------------------------------------------------------

上述为理论部分,后面做了个LIN波特率自适应的测试,开启波特率自适应功能后,波特率配置寄存器BRSR中的值会根据检测结果而变化。但是发现其可靠性并不好,容易出错,测试结果如下图所示,刚开始会偶尔出错,通信一段时间后,通信甚至会断掉,不过也有可能是程序没写好的原因。

参考文献:

TMS320F2803x Piccolo Local Interconnect Network (LIN) Module User's Guide (Literature Number: SPRUGE2B)

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值