-
图文详情
-
产品属性
-
相关推荐
如何轻松解决单片机读写U盘模块的选型
关键词:USB读写模块 U盘 SPI UART
近项目中,使用的数据存储设备:USB118AD模块。主要功能是将数据通过单片机直接存储于U盘上,使数据随身携带。
看到有网友关于此款模块的讨论,我也想就我的经历说点什么。
在网上查找搜索此方面的模块,发现西安达泰电子的U盘读写模块USB118AD颇受青睐;同时也有别的厂家的模块价格相对较低。基于成本和性能的考虑,同时购买两公司产品进行比较。下列出笔者的测试结果供大家参考。
表1 USB118AD与另一款产品性能比较
比较项目 | USB118AD | 另一款 |
使用单片机 | ARM7系列的LPC2468 | 自产芯片 |
PCB板厚 | 1.2mm | 1.0mm |
尺寸 | 51.6mm*43mm | 31mm*36mm |
等级 | 工业 | 民用 |
元器件 | 双面布件 | 单面布件 |
技术资料 | 提供完整的测试例程 (ASM和C) | 单功能测试程序 (C) |
UART波特率 | 9600/57600/115200bps | 2400/4800/9600 |
SPI速度 | 150kB/s(2Mbps) | 10KB/s |
单次读写数据长度 | 4KB | 254B(个数据无效) |
指令长度 | 定长 | 变长 |
从外观上看:
USB118AD的PCB板制作比较精良,采用的是1.2mm的镀锡PCB板;板子尺寸51.6mm*43mm;单片机采用的是NXP公司生产的LPC2468;同时有4个状态指示灯;提供UART、SPI口及5V供电接口。
另一款产品则采用的是1.0的裸铜PCB板。板子尺寸31mm*36mm;采用资产的芯片,提供UART、SPI口及5V供电接口。虽说PCB板质量稍显差点,但应该也是基于成本考虑,况此公司主要以出售芯片为主,不能算其不足。
其次从串口(UART)进行比较:
USB118AD的串行端口通过跳线选择波特率以及通信模式(UART/SPI):9600/57600/115200/SPI。
另一款产品的串行端口通过外接管脚选择波特率:2400/4800/9600;同时通过另一管脚选择通信模式(UART/SPI)。
USB118AD的串行速度比另一款产品高出许多,同时数据读写几乎不需要延时;而另一款产品每个指令都需要较长的延时,这使笔者程序的时序控制很被动。由于笔者需要的是较快速度的数据读写,故转向SPI的使用,对此也未再做过多的测试,观点如有不足,请指正。
从SPI口进行比较(此结果为笔者实测):
USB118AD的SPI口可以做到150kB/s,SPI时钟可达2MHz,不同指令间延时不超过1ms;指令数据间不需延时。单次读写数据量可达4kB,
另一款产品的SPI速度可以做到10kB/s,SPI时钟可达100kHz,但指令数据间需要延时,否则会出现数据错误。时钟80kHz时不需延时;不同指令间会产生几十ms的延时。单次读写数据量可达254B。
后从功能上进行分析:
USB118AD可创建各种文件和文件夹,文件名格式符合DOS规范(8位文件名和3位扩展名)。命令为66字节,应答码为64字节(read和list指令除外)。虽然USB118AD指令和应答码比较长,但指令格式比较统一,方便编程。因读写数据经常会以中断形式出现,较长的指令周期可使系统可靠性增强。同时为产品升级留下空间,能更好的向下兼容。
另一款产品可创建各种文件,但不能创建文件夹,文件名格式符合DOS规范。命令长度可变,应答码为2字节(read和list指令除外),比较简单。但写数据时,个数据无效。
表2 SPI读写速度对照表
对比项目 | USB118AD耗时 | 另一款产品耗时 |
存储64kB的文件 | 7.7S(80kbps) | 10.2S(80kbps) |
存储64kB的文件(速度) | 840mS(2Mbps) | 10S(100kbps,需加延时) |