嵌入式系統(tǒng)數(shù)據(jù)的U盤(pán)存儲(chǔ)
目前,基于USB2.0接口的移動(dòng)存儲(chǔ)設(shè)備已經(jīng)被廣泛的使用,USB移動(dòng)存儲(chǔ)設(shè)備比較常見(jiàn)的如:U盤(pán),移動(dòng)硬盤(pán)等等一些大容量移動(dòng)存儲(chǔ)設(shè)備。我們的USB存儲(chǔ)設(shè)備,往往作為slave設(shè)備與host設(shè)備配合使用。也許我們接觸最多的就是用PC進(jìn)行U盤(pán)的讀寫(xiě)功能,如果我們做石油、水文、交通、工業(yè)現(xiàn)場(chǎng)等場(chǎng)合的數(shù)據(jù)采集存儲(chǔ),脫離電腦,我們能否使用USB移動(dòng)存儲(chǔ)設(shè)備來(lái)存儲(chǔ)海量的信息?答案是毋庸置疑的。
嵌入式電子產(chǎn)品的功能和應(yīng)用是產(chǎn)品能否爭(zhēng)奪市場(chǎng)的決定性因素,在性能穩(wěn)定可靠的同時(shí),開(kāi)發(fā)周期更是市場(chǎng)拓展的先機(jī)。USB118AD是一款可嵌入系統(tǒng)的小型USB讀寫(xiě)模塊,通過(guò)USB118AD的十四條精簡(jiǎn)命令,不用了解USB通信協(xié)議,便可以方便的為嵌入式系統(tǒng)開(kāi)發(fā)U盤(pán)存儲(chǔ)的擴(kuò)展。
尺寸:51.6*43*12mm
USB118AD是集成了ARM7數(shù)據(jù)處理器,只需嵌入式系統(tǒng)通過(guò)自身的串口(USATR)簡(jiǎn)單的發(fā)送十四條簡(jiǎn)短指令,便可以對(duì)USB移動(dòng)設(shè)備進(jìn)行讀取存儲(chǔ)功能。其中串口包括異步串行接口(UATR)和同步串行接口(SPI)。存儲(chǔ)速率滿足不同需求,RS232串口波特率:9600\57600\115200。SPI接口150k byte\sec。支持文件系統(tǒng)FAT16\FAT32,可以創(chuàng)建word\excel\bin等各種類(lèi)型文件。
下面以51單片機(jī)AT89C51舉個(gè)例子,進(jìn)行對(duì)U盤(pán)的進(jìn)行進(jìn)行簡(jiǎn)單的檢測(cè)操作
MCS-51單片機(jī)C語(yǔ)言示例程序 :
#include <REG51.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
//命令(預(yù)設(shè)命令)
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};
//可以添加其他需要增添的命令(預(yù)設(shè)命令)
/*******************************************************************
主函數(shù)入口
功 能:使發(fā)光二極管閃爍
入口參數(shù):無(wú)
出口參數(shù): 無(wú)
********************************************************************/
void main()
{
SP = 0x60; //堆棧指針
Init_com(); //初始化串口
LED_bbing(); //測(cè)試用
while(1)
{
Send_Data(Detect); //發(fā)送檢測(cè)U盤(pán)指令
if(Receive_Data(0x04,0) == 1) //04檢測(cè)U盤(pán)命令代碼,命令是否成功執(zhí)行,是則繼續(xù)執(zhí)行
{
delay_xms(200);
break;
}
}
}
/*******************************************************************
LED閃爍燈
功 能:使發(fā)光二極管閃爍
入口參數(shù):無(wú)
出口參數(shù): 無(wú)
********************************************************************/
void LED_bbing(void)
{
int a=0;
while(a<4)
{
P3_5 = ~P3_5; //調(diào)試指示燈
delay_xms(50); //延時(shí)0.2秒
a++;
}
}
以上例程是對(duì)U盤(pán)的檢測(cè)程序,更多技術(shù)信息請(qǐng)關(guān)注http://www.dataie.com