有这样一个需求,因为刚接触STM32开发、希望能得到解决方案或思路,或有偿提供开发帮助。
手边有一块基于STM32F767芯片的一块开发板下位机。
---------------------问题场景-------------------------------
1、PC端持续运算源源不断的生成命令数据并存入数组(每个命令数据约6byte大小)
2、PC需要将生成的数组数据发送到下位机、下位随时按接收顺序根执行命令。
3、PC生产命令的速度较快、下位机消费命令的速度慢。
4、上位机代码已经实现。并且可以根据下位机情况分批发送数据。
5、下位机连续不断的处理命令(如果有),且处理过程对时序要求严格。不能过多受到命令接收过程对时序的影响(或影响范围不能超过2us).
6、下位机获取到的命令中包含Delay参数、因此每条命令之间会有5-200us不等的中断且中断时间有严格要求。
-------------------我想到的问题解决方案------------------------------
1 因为单位时间内需要处理的命令较多。1秒需处理50000+命令约300k数据,因此需选用usb通讯、485、spi等高速通讯方式。
2 因下位机内存有限、因此需要固定内存空间的数据缓冲区,这就需要告知PC端 什么时候可以接收,什么时候可以发送。
3 综上、我觉得使用DMA是个解决办法。但不清楚具体方案实施过程。
----------------------需回答或解决的问题-------------------------------
1,采用什么方案与PC稳定高速通讯。
2,下位机如何缓存和处理数据,且不影响处理数据过程中的时序要求。
如需补充其他内容,请留言。