带你走进飞思卡尔Kinetis Flashloader(5)

0?wx_fmt=gif

上节我们了解了Kinetis Flashloader支持的外设SPI和I2C,今天我们来看支持的外设UART和CAN

UART外设

飞思卡尔Kinetis Flashloader对UART外设集成了一个自动波特率检测算法,从而提供灵活的波特率选择。

自动波特率特性:如果UARTn被用作连接于Flashloader,为了遵守自动波特率检测算法,那么在检测期间,UARTn_RX 引脚必须保持在高电平,且不能悬空,在Flashloader在UARTn_RX引脚检测到Ping包(0x5A,0XA6)后,Flashloader 固件顺序执行自动波特率程序,如果波特率被成功检测到,那么flashloader将会 以检测到的波特率发送Ping包响应[(0x5A,0Xa7,4字节协议版本,2字节可选协议版本和两字节的CRC16校验)]。Flashloader然后会进入一个循环,等待经由UART外设的命令。Ping包的数据字节必须持续发送,字节之间间隔不能超过80ms,且以固定的UART配置模式(8位数据位,无校验位,1位停止位)传输。如果字节之间发送延迟超过80ms则自动波特率算法将会计算出错误的波特率,在这种情况下,自动波特率检测状态机应该复位。

支持的波特率:波特率与MCU核和系统时钟频率有密切关系,支持的典型波特率有:9600bps,19200bps,38400bps,57600bps,115200bps。自动波特率检测成功后,通信即可建立。

主机通过目标机检测ACK流程图如下:

0?wx_fmt=jpeg主机通过UART从目标机检测Ping 响应流程图如下:

0?wx_fmt=jpeg主机检测目标机命令响应流程图如下:

0?wx_fmt=jpeg

CAN外设

飞思卡尔Kinetis Flashloader 支持通过CAN外设装载数据到flash,支持五种预定义的速率

125kHz

250kHz

500kHz

750kHz

1MHz(默认传输速率)

必须使用以上五种中的一种进行通信,支持以上五种速率的自动检测,开始的时候,Flashloader 会以初始化速率也就是默认速率1M进入只听模式,一旦主机发送一个Ping包到一个指定节点,CAN总线上就会有数据,因为Flashloader在只听模式下,所以它会通过错误检测逻辑检测是否本节点速率是正确的。

如果有一个错误,那么一些传输将不会按正确速率传输。

Flashloader将会改变速率设定,并且再次检测

如果没有错误,那么意味着传输速率是正确的,则Flashloader将会改只听模式为正常接收模式,看是否有通信报发往本节点。

在自动速率检测周期内,主机侧必须有合理的时间容差,超时退出。

主机通过CAN接口从目标机检测ACK流程图如下:

0?wx_fmt=jpeg

主机通过CAN接口检测Ping响应包流程图如下:

0?wx_fmt=jpeg主机通过CAN接口从目标机检测命令响应流程图如下:

0?wx_fmt=jpeg

0

未完待续,持续更新中,敬请期待。

0

嵌入式

程序猿

微信号:InterruptISR

嵌入式程序猿致力于打造程序猿工程师交流分享的精品移动平台,欢迎各位猿友加入和分享。微信搜索嵌入式程序猿添加关注,或者长按下方二维码,选择识别图中二维码添加关注。

0?wx_fmt=jpeg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值