嵌入式系统数据的U盘存储
目前,基于USB2.0接口的移动存储设备已经被广泛的使用,USB移动存储设备比较常见的如:U盘,移动硬盘等等一些大容量移动存储设备。我们的USB存储设备,往往作为slave设备与host设备配合使用。也许我们接触最多的就是用PC进行U盘的读写功能,如果我们做石油、水文、交通、工业现场等场合的数据采集存储,脱离电脑,我们能否使用USB移动存储设备来存储海量的信息?答案是毋庸置疑的。
嵌入式电子产品的功能和应用是产品能否争夺市场的决定性因素,在性能稳定可靠的同时,开发周期更是市场拓展的先机。USB118AD是一款可嵌入系统的小型USB读写模块,通过USB118AD的十四条精简命令,不用了解USB通信协议,便可以方便的为嵌入式系统开发U盘存储的扩展。
尺寸:51.6*43*12mm
USB118AD是集成了ARM7数据处理器,只需嵌入式系统通过自身的串口(USATR)简单的发送十四条简短指令,便可以对USB移动设备进行读取存储功能。其中串口包括异步串行接口(UATR)和同步串行接口(SPI)。存储速率满足不同需求,RS232串口波特率:9600\57600\115200。SPI接口150k byte\sec。支持文件系统FAT16\FAT32,可以创建word\excel\bin等各种类型文件。
下面以51单片机AT89C51举个例子,进行对U盘的进行进行简单的检测操作
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++;
}
}
以上例程是对U盘的检测程序,更多技术信息请关注http://www.dataie.com