MSCBSC 移动通信论坛
搜索
登录注册
网络优化工程师招聘专栏 4G/LTE通信工程师最新职位列表 通信实习生/应届生招聘职位

  • 阅读:1141
  • 回复:0
转帖 【LSM6DSOX有限状态机例程学习 一】
微信Czh6402
中级会员
鎵嬫満鍙风爜宸查獙璇


 发短消息    关注Ta 

积分 530
帖子 106
威望 20482 个
礼品券 0 个
专家指数 0
注册 2020-9-23
专业方向 
回答问题数 0
回答被采纳数 0
回答采纳率 0%
 
发表于 2020-10-22 10:36:59  只看楼主 

【LSM6DSOX有限状态机例程学习 一】--有限状态机及例程简介

本帖最后由 justd0 于 2020-8-15 20:10 编辑

大家好,我是Justd0,很荣幸受到@nmg管理员大大的邀请,和大家分享ST最新的LSM6DSOX六轴传感器。这款传感器不仅具有16g的三轴加速度计和2000dps的三轴角速度计,还内置了有限状态机(FSM)和机器学习处理模块(MLC),只需要进行相应的配置,就可以直接输出特定动作的识别结果,想必这个传感器会给大家带来不一样的体验。

 

从本帖开始,我将会用9个帖子来分享下,我在比赛过程中对LSM6DSOX有限状态机的理解和官方相关例程的学习使用,希望可以帮助还不是很了解这些的童鞋很能够更好的使用ST这款六轴传感器~ST官网上其实已经提供了很详细LSM6DSOX说明文档,大家可以阅读参考,官方的文档是最为权威的哦。所以,我分享的内容上如有纰漏,也希望各位指正哈。

 

好了,进入正题~~~


 

啥是有限状态机(FSM)

维基百科给出的解释:有限个状态以及在这些状态之间的转移和动作等行为的数学模型。

LSM6DSOX的示例状态机图解释,如下图,每一个蓝色方块为一个状态程序会逐行运行,当满足某些条件的时候,就会触发相应的状态转移


按照上面的规则推到一下可知,FSM会先判断状态1中的“返回1”的条件是否满足,如果满足,就会回到默认复位点,   如果不满足,则继续判断“前进1”的条件是否满足,如果仍不满足,则返回复位点,   如果满足了,那么将会进入状态2执行“命令处理”,当处理完成后,则进入状态3,判断方法跟状态1一样。(细心的伙伴可以看到这里的复位点不再是默认的了,是的,因为有个命令可以更改重复位的位置,这个之后讲命令的时候会提到)

FSM的有哪些特点?

LSM6DSOX的官方文档上列写了如下特点:

  • 输入量可以是加速度、角速度、磁力计(需要扩展)MLC机器学习模块的输出量

  • 最多有16个状态机程序同时运行

  • 每个状态机程序都可以输出多个状态

  • 有一套完整的命令和条件指令集

 

我们逐条来看  单位办理工程资质需要多本通信相关工程师职称证书挂资质,欢迎有闲置证书的朋友联系  陈工 150-0759-9549-微同

 

第一点,输入量可以是加速度、角速度、磁力计(需要扩展),MLC机器学习模块的输出量,那么如下图所示。加速度、角速度、磁力计的原始数据通过信号调节模块处理成适当灵敏度(对应量程)的半精度浮点值HFP(float为32位,HFP为16位),然后直接输入到FSM中或者经过机器学习MLC模块处理后将其输出传入FSM模块,FSM处理后输出结果。

可以看到FSM的输入源是很丰富的,具体选择哪个参数作为输入源是可以通过CMD指令更改的,具体的后面再说。


 

第二点,最多有16个状态机程序同时运行,我们把FSM展开来看,如下图所示。在LSM6DSOXFSM中共有16个状态机模块,所有状态机间是相互独立的。每个状态机拥有自己的专用内存区,每个程序最大的空间为256字节,而且每个状态机独立运行,所以每个程序都可以独立输出结果

LSM6DSOX的状态机程序不具备掉电保存特性,每次重新上电的时候都需要重新配置


 

 

第三点,每个状态机程序都可以输出多个状态。状态机程序的输出可以通过特定命令触发内部中断,从而将输出值传送到对应的FSM_OUTS寄存器中。当外部INT1/INT2中断被使能后,内部中断也可以路由到外部中断,以此来提示外部处理器读取FSM_OUTS寄存器状态变化。输出掩码Mask的配置参数格式如下图所示,通过掩码可以设置不同组合的输出状态,详细的在后面讲。

 

第四点,有一套完整的命令和条件指令集。这个命令指令集在ST可编程传感器.pdf中的13-14页中有提到,我在官方的AN5273文档中找到了更为详细的介绍,FSM一共有16个条件指令和35个命令指令,但是由于篇幅有限,我将会在一个帖子里专门分享我对每个命令和条件指令功能的理解和使用示例。

 

了解了FSM是啥,都有什么特点,小伙伴应该就对它有了宏观全面的认识了。但同时也会有“这些输入怎么选择?输出Mask怎么设置?中断怎么配置?指令都有啥?等等”很多新的疑问吧,我该怎么写有限状态机程序呢?

 

这里其实ST官方已经给我们提供了很多的应用例程,官方例程库可以点击GitHub找到,其中针对LSM6DSOX的示例有如下7个:


这些例程都使用FSM实现了运动/动作识别的功能,相信小伙伴通过对这些例程的学习和复现便可以对LSM6DSOX的FSM有着更深的理解,对于以后的应用也能轻车熟路~

 

我将在下一篇中 详细的讲解下FSM编程模块的使用方法和编程指令的详细含义,为例程学习打个小基础。


扫码关注5G通信官方公众号,免费领取以下5G精品资料
  • 1、回复“LTBPS”免费领取《《中国联通5G终端白皮书》
  • 2、回复“ZGDX”免费领取《中国电信5G NTN技术白皮书
  • 3、回复“TXSB”免费领取《通信设备安装工程施工工艺图解
  • 4、回复“YDSL”免费领取《中国移动算力并网白皮书
  • 5、回复“5GX3”免费领取《 R16 23501-g60 5G的系统架构1
  • 6、回复“iot6”免费领取《【8月30号登载】物联网创新技术与产业应用蓝皮书——物联网感知技术及系统应用
  • 7、回复“6G31”免费领取《基于云网融合的6G关键技术白皮书
  • 8、回复“IM6G”免费领取《6G典型场景和关键能力白皮书
  • 对本帖内容的看法? 我要点评

     
    [充值威望,立即自动到帐] [VIP贵宾权限+威望套餐] 另有大量优惠赠送活动,请光临充值中心
    充值拥有大量的威望和最高的下载权限,下载站内资料无忧

    快速回复主题    
    标题
    内容
     上传资料请点左侧【添加附件】

    当前时区 GMT+8, 现在时间是 2024-04-29 07:33:25
    渝ICP备11001752号  Copyright @ 2006-2016 mscbsc.com  本站统一服务邮箱:mscbsc@163.com

    Processed in 0.257339 second(s), 13 queries , Gzip enabled
    TOP
    清除 Cookies - 联系我们 - 移动通信网 - 移动通信论坛 - 通信招聘网 - Archiver