|
本帖最后由 REALIOT 于 2023-1-16 15:12 编辑
项目需求: 构建一个TCP客户端收发数据并存储,使用存储介质存储数据,并支持通过以太网读出已存储的数据。
原有技术方案:STM32F407+LWIP1.4+FATFS+EMMC
但是在实现以太网读出已存储数据的功能时,为了实现已存储数据的读取功能,我构建了一个TCP Server,使用PC端的TCP 客户端连接STM32接收已存储的数据,但读取速度和数据可靠性无法满足要求。
一方面,读取速度约30K/s,实在很慢;另一方面,读出的数据也有一定的概率出错。所以笔者这边尝试构建一个FTP Server,借助FTP的框架来提升数据传输速度和可靠性、稳定性。
而LWIP1.4版本是不支持FTP的相关服务的,如果想要实现FTP,就面临两个选择:1、将LWIP更换为2.1x版本,2、使用RL全家桶中的RL-TCPnet实现TCP Client、FTP Server和RL_FlashFS运行文件系统实现文件读写。
改进的技术方案1:STM32F407+LWIP2.1+FATFS+EMMC
优点:可以沿用原有技术路线
缺点:FATFS不支持擦写均衡
改进的技术方案2:STM32F407+RL-TCPnet+RL-FlashFS+EMMC
优点:RL全家桶系列移植简便,稳定性好,可靠性高
缺点:RL-FlashFS常用例程都是针对NandFlash和SD卡的,没有针对EMMC进行操作的相关参考。同时,RL-FlashFS都是官方写好的库,无法知道其实现逻辑,虽然二者的驱动引脚十分接近,但难以将SD的驱动迁移到EMMC存储上。
求助问题:
1、RL-FlashFS是否确实无法支持EMMC的驱动?
我现在的参考的程序是:V5-1015_RL-TCPnet实验_TCP客户端(FreeRTOS),标准库,Keil版本是5.36,已经将PHY芯片成功更换为DP83848
Keil界面中关于软件包版本如下图所示
现有的电路板已经生产出来,采用的是EMMC存储,使用文件系统读写也是测试通过的,如果RL TCPnet确实无法支持EMMC,我计划将EMMC存储修改为SD卡。
2、FATFS不支持擦写均衡是否属实,使用FATFS存储文件,是否需要考虑擦写均衡方面的问题?
笔者希望采用RL-FlashFS的原因,是根据掌握到的资料,FATFS无法支持擦写均衡。而RL-FlashFS驱动SD卡的话,SD卡本身就自带均衡算法。
而且基于LWIP+FATFS实现的FTP,其传输速率具体可以达到多少,仍是个未知数,而基于RL-FLASHFS操作SD卡的FTP Server,我已经在开发板实测过速度平均达到2M/s,是可以满足项目需求的。
|
|