你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何使用STM32存储激光雷达串口每秒钟发送上来的4000个数

[复制链接]
大连海港 提问时间:2017-5-2 10:25 /
1、问题描述
  现在实验室正在做使用激光雷达避障,希望大神多指点。激光雷达通过串口和STM32通信,每秒钟传送4000次数据(相当于雷达的工作频率为4000HZ),每次数据包含距离和角度数值,我怎么将这4000个数据进行存储,并且实时更新,可以覆盖上一个4000,一个周期存储完成后还能够实时读取,以此获取障碍物2D尺寸轮廓,用EEPROMEEPROM的内存只有2kb,是不是不够用啊?用FLASH?SD卡吗?求大神指点
2、试解决方法(自己想的,不知道对错,希望得到指点)
  选用STM32F429RAM256K,我定义两个全局变量float  distance4000】;float angle4000】,这样数据的大小为:4个字节*2*4000=32K;串口波特率设置成115200,用DMA发送 、保存;如果我想使用这些数据,设置一个定时中断,随时对这4000个角度和距离进行判断,决定小车如何转向,如何避障

收藏 1 评论23 发布时间:2017-5-2 10:25

举报

23个回答
watershade 回答时间:2017-5-3 17:13:50
你这个情况,很具有挑战性,但是希望和你讨论一下。下面按照我的理解说。(如果有错,大家指正)
1、我们假定用串口那你一次的数据假定不包含包头包尾,也不包含校验码和帧ID。这种情况下每秒的数据量有多大呐?float是四个字节,每个字节8位。所以是4000*8*(4+4)=256000。而你说的115200,不好意思,干不了。但是既然你的激光雷达敢给这么高的输出速率,我们也只好迎难而上。按照你的情况,为了保证数据的准确度和有效性,以上几种(包头,包尾,校验码,帧ID)都需要包含。我们还是尽量短一些吧,但是帧ID这里用两个字节,其余各一个。(或者两个包头,不要包尾)。我们每组数据是4+4+5=13.为了稳定性,我们假定有50%的负载率。这时你的波特率是:4000*8*13 = 416000.那就选择460800(115200的四倍)吧。
2、再说数据存储,楼上有位兄弟推荐用SDRAM。这是一个方法。但是你只需要32K,而且按照我对机器人导航的理解,这个数据根本不需要存储.这个数据量F429可以搞定,因为429的RAM是256K。正常情况下,应该可以在RAM中保存你这32K的数据。而且这也是最快的方案。
3、我们在从方案上说一下。你给我们花了一个道。说1秒钟寸4000个,算一个周期。每个周期数据可以更新一次。但是呐,我对你这条道路有点疑问。Why we should do like this?
正常情况下,激光导航的确需要大量数据。但是数据是被吃进去直接消化掉的。就是说你每次的数据去feed我的算法,我迭代这去处理。根本没必要大量存储。销量存储倒是有可能。比如我每40个数做个处理。但是1S种存储的所有数去处理然后一股脑feed给算法。这似乎不正确。也许你们有其它用途。

以上是我的拙见。请赐教
Dandjinh 回答时间:2017-5-2 16:22:12
这种速率的串口不可靠,用SPI吧,有SPI转USB的芯片的
zhao.zhao 回答时间:2017-5-3 10:20:22
串口够呛,数据量太大了,楼上的朋友是正解
大连海港 回答时间:2017-5-3 13:50:16
Dandjinh 发表于 2017-5-2 16:22
这种速率的串口不可靠,用SPI吧,有SPI转USB的芯片的

管脚 功能 颜色 说明
1 +12V±20% 红色 直流电源正极
2 GND 白色 电源地
3 TTL GND 黑色 和电源地机内连通
4 TTL Tx 绿色 TTL Tx
5 TTL Rx 黄色 TTL Rx

雷达引脚是这样的,应该只能用串口吧?
大连海港 回答时间:2017-5-3 13:50:51
zhao.zhao 发表于 2017-5-3 10:20
串口够呛,数据量太大了,楼上的朋友是正解

管脚 功能 颜色 说明
1 +12V±20% 红色 直流电源正极
2 GND 白色 电源地
3 TTL GND 黑色 和电源地机内连通
4 TTL Tx 绿色 TTL Tx
5 TTL Rx 黄色 TTL Rx

雷达接口是这样的,应该只能用串口吧?
whtt 回答时间:2017-5-3 14:53:49
用429就加个256Mbit的SDRAM
大连海港 回答时间:2017-5-3 15:23:11
whtt 发表于 2017-5-3 14:53
用429就加个256Mbit的SDRAM

需要加这么大的内存吗?如果按照我的计算,32K就够用了吧,您能解释一下加256Mbit的SDRAM的原因吗?谢谢
wofei1314 回答时间:2017-5-3 15:43:20
这个一般还用不上429,一秒4000字节数据量也不算非常大,115200的波特率每秒约传11520字节,如果距离够短,还可以提升波特率,这样传输的时间短,使用DMA接收;可以扩展一个SRAM临时存储数据;掉电保存的话还是用Flash吧,经济
jcx0324 回答时间:2017-5-3 15:46:14
芯片自身带的RAM都够了,根本没必要那么复杂,串口可以最高跑到好几M呢,主要看你的线路
123下一页
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版