2110|2

439

帖子

1

TA的资源

一粒金砂(高级)

楼主
 

英飞凌电机套件 EVAL-IMOTION2GO 学习笔记四 [复制链接]

本帖最后由 我的学号 于 2023-2-12 23:31 编辑

由于本次测评会使用到 IMOTION2GO 套件的 UART 外设,这里简单做个笔记

主要参考官方文档 <How_to_Use_iMOTION_Configurable_UART-ApplicationNotes>

 

最新的 MCE 支持两种 UART 模式,一种为官方预定义的用户模式(User Mode UART),最多可支持 1 主15 从通信网络,每个节点以 1ms 的时间通信;

另一种模式允许用户通过调用 UART API 的方法定制自己的通信方式(Configurable UART function),这种模式又可分为 Buffer Mode UART 和 FIFO Mode UART,

前者只简单通过固件获取网络层数据,后者允许用户操作网络层的数据;使用到的 API 如下:

 

 

 T038 UART 模块结构如下:

由图可知 UART0 和 UART1 两个串口,使用 UART_DriverInit() 可以设置 UART 通道,波特率,位数,停止位,奇偶检验位等

 

使用 UART 的Buffer Mode 时 MCE 固件会完成物理层,数据链路层和网络层时序相关部分,用户仅只关注网络层数据即可,其限制是只能通信固定字节内容;

如下为 Buffer Mode 的内部状态机:

 

该模式有 START, RECEIVE, DELAY 和 TRANSMIT 四种模式,模式之间可通过 FRAME_FLAG 进行跳转;在定时时间内接受自足够数据后会进入数据发送状态

如下为主机发送给从机单帧数据:

一帧数据由 9 个字节组成,以 0xA5 作为帧头,这个数据可以在 UART_BufferInit() 中定义;

第二帧为处理指令,1 表示启动电机,设置速度,2 表示停止电机,3 表示获取状态信息

第三四帧以两字节小端格式定义电机的目标速度

第五~八 帧为数据0,填充作用

第九帧为数据校验和,计算方法为 -1*(Byte1+Byte2+...Byte8)

 

如下为从机反馈回主机的单帧数据:

一帧数据同样由 9 个字节组成,以 0xA5 作为帧头,这个数据可以在 UART_BufferInit() 中定义;

第二三帧以两字节小端格式定义电机的目标速度

第四帧为标识速度指令,1 表示启动电机,2 表示停止电机

第五帧标记PFC 状态,1 表示开启,0 表示停止

第六~八 帧为数据0,填充作用

第九帧为数据校验和,计算方法同样为 -1*(Byte1+Byte2+...Byte8)

 

当主节点的校验和失败,从节点 MCE 会发送如下错误帧:

 

一帧数据由 9 个字节组成,以 0xA5 作为帧头,这个数据可以在 UART_BufferInit() 中定义;

第二帧为上次接收数据的正确校验和

第三四帧为固定数值 0xEE, 表示该帧为错误帧 

第五帧为校验和,与第二帧一样,为上次接收数据的正确校验和

第六~九帧为数据0,填充作用

结合文档例程理解更佳

 

另一种通信方式,FIFO MODE 的结构如下:

由图可见发送和接受都有各自的FIFO , 该模式的优点是使用更自由,不需要固件底层的参与;允许单接受或单发送的用法

但比起 Buffer Mode 更复杂,在写脚本程序时需要用户注意网络层的时序要求

同样文档也给出了参考例程,数据帧格式和前边的介绍一致,不同之处是用了 UART_TxFifo() 替代 UART_TxBuffer()

 

如下为 Buffer Mode 和 FIFO Mode 的综合对比:

再有就是使用 FIFO Mode 会Buffer Mode 占用更多的RAM 资源,这是因为需要有顺序地放置接收FIFO 收到的数据

 

如下为 Buffer Mode 的使用限制:

 

如下为 FIFO Mode 的使用限制:

 

综合考量,需要注意如下问题:

如果接受数据超过 9 Byte,使用 FIFO Mode, 但不能超过 31 Byte

做 Class B 测试时,需要注意过高的 CPU load 会导致失败

可以用 BufferMode 完成半双工通信 

只能通过轮询的方法检查一帧数据的收发是否完成

FIFO Mode 支持变化的数据帧长度

Configurable UART 完成数据传送后没有传回 API 函数做标示

 

此帖出自电机控制论坛

最新回复

最近正好在研究三相无刷电机驱动,真事很不错的分享   详情 回复 发表于 2023-7-8 13:44
点赞 关注
个人签名君应有语,渺万里层云,千山暮雪,知向谁边?
 
 

回复
举报

1633

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 

最近正好用英飞凌的TLE9879左移个BLDC驱动板。

此帖出自电机控制论坛
 
 
 

回复

162

帖子

0

TA的资源

一粒金砂(高级)

板凳
 

最近正好在研究三相无刷电机驱动,真事很不错的分享

此帖出自电机控制论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表