前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >带你走进飞思卡尔Kinetis Flashloader(5)

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

作者头像
用户1605515
发布2018-04-10 11:24:44
6410
发布2018-04-10 11:24:44
举报
文章被收录于专栏:嵌入式程序猿
上节我们了解了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流程图如下:

主机通过UART从目标机检测Ping 响应流程图如下:

主机检测目标机命令响应流程图如下:

CAN外设

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

125kHz

250kHz

500kHz

750kHz

1MHz(默认传输速率)

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

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

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

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

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

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档