mydatai的个人空间 https://www.eechina.com/space-uid-4863.html [收藏] [复制] [RSS]

博客

单片机高速读写U盘模块

热度 2已有 1627 次阅读2013-10-10 11:41

单片机高速读写U盘模块

目前,基于USB2.0接口的移动存储设备已经被广泛的使用,USB移动存储设备比较常见的如:U盘,移动硬盘等等一些大容量移动存储设备。我们的USB存储设备,往往作为slave设备与host设备配合使用。也许我们接触最多的就是用PC进行U盘的读写功能,如果我们做石油、水文、交通、工业现场等场合的数据采集存储,脱离电脑,我们能否使用USB移动存储设备来存储海量的信息?答案是毋庸置疑的。

嵌入式电子产品的功能和应用是产品能否争夺市场的决定性因素,在性能稳定可靠的同时,开发周期更是市场拓展的先机。单片机高速读写U盘模USB118AD是一款可嵌入系统的小型USB读写模块,通过单片机高速读写U盘模块USB118AD的十四条精简命令,不用了解USB通信协议,便可以方便的为嵌入式系统开发U盘存储的扩展。

USB118AD

尺寸:51.6*43*12mm

单片机高速读写U盘模块USB118AD是集成了ARM7数据处理器,只需嵌入式系统通过自身的串口(USATR)简单的发送十四条简短指令,便可以对USB移动设备进行读取存储功能。其中串口包括异步串行接口(UATR)和同步串行接口(SPI)。存储速率满足不同需求,RS232串口波特率:9600\57600\115200。SPI接口150k byte\sec。支持文件系统FAT16\FAT32,可以创建word\excel\bin等各种类型文件。

下面以51单片机AT89C51举个例子,进行对U盘的进行进行简单的检测操作

 

单片机高速读写U盘模块USB118AD通过TTL串口接口的硬件接线图

undefined

MCS-51单片机C语言示例程序 :

#include <REG51.h>

#include <stdio.h>

#define uchar unsigned char

#define uint unsigned int

 

//命令(预设命令)

uchar code Detect[66]={0xaa,0xbb,              0x01,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};

//可以添加其他需要增添的命令(预设命令)

/*******************************************************************

主函数入口

功  能:使发光二极管闪烁

入口参数:无

出口参数: 无

********************************************************************/

void main()

{

 

  SP = 0x60;                        //堆栈指针

  Init_com();                  //初始化串口

   LED_blinking();                //测试用

while(1)

  {

      Send_Data(Detect);            //发送检测U盘指令

 

    if(Receive_Data(0x04,0) == 1)  //04检测U盘命令代码,命令是否成功执行,是则继续执行

     {

      delay_xms(200);

       break;

            }

   }

}

/*******************************************************************

LED闪烁灯

功  能:使发光二极管闪烁

入口参数:无

出口参数: 无

********************************************************************/

void LED_blinking(void)

{

   int a=0;

 

   while(a<4)

   {  

      P3_5 = ~P3_5;              //调试指示灯

      delay_xms(50);                 //延时0.2秒

      a++;

   }

}

 


路过

鸡蛋

鲜花
1

握手

雷人

刚表态过的朋友 (1 人)

发表评论 评论 (2 个评论)

回复 glyhw 2013-10-15 08:45
这个程序很实用
回复 mydatai 2013-10-17 15:26
glyhw: 这个程序很实用
您好,方便留下您的联系方式吗。或者您可以拨打联系方式:029-85272421.029-88354536网址:http://www.dataie.com

facelist

您需要登录后才可以评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
返回顶部