基于LPC2132的U盤軟硬件系統(tǒng)設(shè)計
USB移動存儲技術(shù)(U盤)把USB接口技術(shù)與Flash存儲器技術(shù)結(jié)合在一起,構(gòu)成了一種快速、大容量、方便的新型數(shù)據(jù)交換系統(tǒng),主要構(gòu)成有主控制器(MCU)、USB接口芯片和F1ash存儲器。主控制器(MCU)是系統(tǒng)的核心,負(fù)責(zé)控制各種外圍設(shè)備、實現(xiàn)各種算法、協(xié)調(diào)與主機(jī)通信;USB接口芯片負(fù)責(zé)USB通信;Flash(閃爍存儲器)用來存儲數(shù)據(jù),它決定了U盤的容量。
1 硬件系統(tǒng)設(shè)計
U盤設(shè)計結(jié)構(gòu)框圖如圖1所示。使用Philips公司的ARM7芯片LPC2132,控制Philips的USBl.1接口芯片PDI-USBDl2,處理PMC公司的128 KB串行F1ash存儲器作為數(shù)據(jù)存儲設(shè)備實現(xiàn)U盤。
(1)ARM處理器
LPC2132是基于一個支持實時仿真和跟蹤的16/32位ARM7TDMI-S CPU,并帶有64 KB嵌入的高速Flash存儲器。LPC2132的實時仿真和跟蹤功能方便了代碼的調(diào)試,降低了開發(fā)成本。
(2) PDIUSB012
PDIUSBDl2(簡稱為“D12”)是一款性價比很高的USB器件;通常用于微控制器系統(tǒng)中實現(xiàn)與微控制器進(jìn)行通信的高速通用并行接口;支持本地的DMA傳輸。PDIUSBDl2所具有的低掛起功耗連同LazyClock輸出可以滿足使用ACPI、OnNOW和USB電源管理的要求。低功耗可以應(yīng)用于使用USB總線供電的外設(shè)。
(3)Flash存儲器
存儲器選用PMC公司的Pm25LV010。適合低功耗和低電壓下工作的應(yīng)用場合;具有完備的數(shù)據(jù)保護(hù)功能。通過設(shè)置芯片的狀態(tài)寄存器,可以將存儲空間的高1/4、高1/2或整片寫保護(hù)。寫使能和寫禁止指令進(jìn)一步保護(hù)數(shù)據(jù)。另外還提供WP引腳用于硬件數(shù)據(jù)保護(hù),以防止對狀態(tài)寄存器的意外修改。
U盤電路原理如圖2所示。
2 軟件設(shè)計
軟件設(shè)計主要包括D12驅(qū)動、Mass Storage類協(xié)議和Flash存儲器的讀/寫控制。
2.1 D12驅(qū)動的實現(xiàn)
在USB設(shè)備插入主機(jī)之前,主機(jī)對這個USB設(shè)備的情況一無所知,無法建立起通信;但USB協(xié)議規(guī)定了一些最基本的準(zhǔn)則,如每個設(shè)備的端點0都是可用的,屬于控制端點。有了這個基本的溝通途徑,主機(jī)就開始通過端點0向設(shè)備提出一些問題,這些問題是有關(guān)設(shè)備基本情況的。這些基本情況可以反映usB設(shè)備所屬的類別及子類,反映配置情況、接口情況和端點情況;一旦得知了這些信息,主機(jī)就大體了解了這個設(shè)備是個什么樣的設(shè)備,按照USB協(xié)議中的相應(yīng)規(guī)定,就逐步建立起了一條介于設(shè)備之間的高速數(shù)據(jù)通道,用于數(shù)據(jù)的傳輸。主機(jī)向設(shè)備提出的這些問題實際上就是USB協(xié)議中規(guī)定的各種標(biāo)準(zhǔn)請求,設(shè)備必須對這些問題進(jìn)行回答;而回答的方式就是向主機(jī)傳送相應(yīng)的描述符,即設(shè)備描述符、配置描述符、接口描述符、端點描述符。
評論