LIN从机接收

1.硬件环境

基于芯旺KF8A100FNG

2.LIN协议

LIN报文帧如下:

3.软件设计

3.1 接收break自动唤醒

在休眠模式下,USARTx 的所有时钟都会停止,此时波特率发生器处于无效状态,无法

进行正确的字符接收。自动唤醒功能允许在 RX/DT 线上活动时唤醒控制器。只有 USART

工作在异步模式下时才可以使用该功能。

3.2 自动波特率检测

在自动波特率检测(Auto-Baud Rate Detect,ABRD)模式下,BRG 不为 RXx 输入提供

时钟信号,而是由 RXx 为 BRG 定时。波特率发生器用于为接收的 0X55(

“U”的 ASCII 码)

定时,0X55 是 LIN 总线的同步字符。此字符的特殊之处在于它具有包括停止位边沿在内的

5 个上升沿。

将 BRCTLx 寄存器的 ABRDENx 位置 1 将启动自动波特率校验序列(图 13.3)。当发生

ABRDx 序列时,USART 状态机保持在空闲状态。在接收线的第一个上升沿(起始位之后),

EUBRGLx 使用 BRG 计数器时钟递增计数,如图 13.3 所示。在第 8 位周期的末尾将在 RXx

引脚上出现第5个上升沿。此时,对正确的BRG周期的累计值被留在EUBRGHx和EUBRGLx

寄存器中,ABRDENx 位被自动清 0 而 RCIF 中断标志被置 1。要清除 RCIFx 中断,需要读

取 RXSDRx 中的值。RXSDRx 的内容应该被丢弃。校准不使用 EUBRGHx 寄存器的模式时,

用户可通过查询 EUBRGHx 寄存器中的 0X00 验证 EUBRGLx 寄存器是否未溢出。

3.3 PID校验

3.4 CHECKSUM

3.5 数据接收

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值