如何单片机读写U盘模块的选型
价格:电议
地区:
电 话:86 029 88354536
传 真:86 029 85277568

如何轻松解决单片机读写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(个数据无效)

指令长度

定长

变长

 

从外观上看:

USB118ADPCB板制作比较精良,采用的是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口进行比较(此结果为笔者实测):

USB118ADSPI口可以做到150kB/sSPI时钟可达2MHz,不同指令间延时不超过1ms;指令数据间不需延时。单次读写数据量可达4kB

另一款产品的SPI速度可以做到10kB/sSPI时钟可达100kHz,但指令数据间需要延时,否则会出现数据错误。时钟80kHz时不需延时;不同指令间会产生几十ms的延时。单次读写数据量可达254B

后从功能上进行分析:

USB118AD可创建各种文件和文件夹,文件名格式符合DOS规范(8位文件名和3位扩展名)。命令为66字节,应答码为64字节(readlist指令除外)。虽然USB118AD指令和应答码比较长,但指令格式比较统一,方便编程。因读写数据经常会以中断形式出现,较长的指令周期可使系统可靠性增强。同时为产品升级留下空间,能更好的向下兼容。

    另一款产品可创建各种文件,但不能创建文件夹,文件名格式符合DOS规范。命令长度可变,应答码为2字节(readlist指令除外),比较简单。但写数据时,个数据无效。

表2 SPI读写速度对照表

对比项目

USB118AD耗时

另一款产品耗时

存储64kB的文件

7.7S(80kbps)

10.2S(80kbps)

存储64kB的文件(速度)

840mS(2Mbps)

10S(100kbps,需加延时)