精品国产成人一区二区三区-女子十八毛片-欧洲性猛交-无码不卡一区二区三区在线观看-www.四虎在线-伊人网国产-国精产品自偷自偷综合下载-不卡av网站-俄罗斯黄色大片-一本久久知道综合久久-国产精品日韩一区二区-日韩精品色-免费人成网ww555kkk在线-黄色在线观看免费-日韩在线免费-久久久久99人妻一区二区三区-十八禁真人啪啪免费网站

機電之家資源網(wǎng)
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
基于MSP430的大容量數(shù)據(jù)存儲技術的應用研究
基于MSP430的大容量數(shù)據(jù)存儲技術的應用研究
 更新時間:2009-11-30 16:42:09  點擊數(shù):0
【字體: 字體顏色

摘要:
本文結合采用現(xiàn)在計算機業(yè)界標準的USB總線技術和大容量存儲應用技術,提出了一種基于在單片機系統(tǒng)的平臺上開展對大容量數(shù)據(jù)固態(tài)存儲技術的研究,在MSP430單片機系統(tǒng)中集成了對USB Mass Storage Class設備的驅動支持,使得現(xiàn)場數(shù)據(jù)的存儲相對數(shù)據(jù)采集來講其物理空間上的限制得以大幅度的緩解。

0 引言
在現(xiàn)場測控系統(tǒng)中,RTU(遠程測控終端)存儲容量、存儲數(shù)據(jù)的轉移問題始終是RTU的重要環(huán)節(jié)。RTU的存儲容量一般為幾十K~幾百K字節(jié),數(shù)據(jù)轉移通常采用不掉電靜態(tài)RAM、EEPROM存儲模塊,或采用便攜式計算機通過串行口讀取RTU數(shù)據(jù)。無論采用哪種方法都存在一定的局限性。首先存儲容量小,對于大量的數(shù)據(jù)存儲顯得比較緊張。對于數(shù)據(jù)轉移,如果采用存儲模塊,雖然攜帶方便但不是通用設備,其成本較高,同時不能與計算機兼容,要將存儲模塊的數(shù)據(jù)錄入計算機還需要專用的讀取設備;如果采用便攜式計算機讀取RTU數(shù)據(jù),雖然讀取方便,但在野外便攜式計算機也是一個不小的包袱。

隨著USB(Universal Serial Bus)技術的發(fā)展,計算機的移動存儲介質普遍采用U盤或移動硬盤。U盤的存儲容量以MB為單位,移動硬盤的存儲容量以GB為單位,它們相對于RTU原先的存儲模塊來說都是海量存儲,所有數(shù)據(jù)存也無需進行壓縮處理,可以在文件級與計算機兼容。即便是對于那些小數(shù)據(jù)量存儲的RTU,雖然只依靠單片機內(nèi)部的FLASH就能滿足存儲要求,然而采用USB接口就能方便地用一個U盤分別讀出多個RTU的數(shù)據(jù)。

如今,USB技術已經(jīng)越來越普及和成熟,低成本、高穩(wěn)定性、較高的數(shù)據(jù)傳輸速率和即插即用的方便性,使其備受硬件廠商的青睞。隨著數(shù)據(jù)采集和嵌入式用戶對移動存儲的需求越來越大,具有USB接口的存儲設備以其優(yōu)異的性價比和靈活性常用來進行數(shù)據(jù)的存儲和交換,所以在嵌入式系統(tǒng)中實現(xiàn)對優(yōu)盤或移動硬盤的直接讀寫是非常有價值的。

1  USB設備開發(fā)的一般過程

1.1 USB接口芯片的選擇

在進行一個USB設備開發(fā)之前,首先要根據(jù)具體使用要求選擇合適的USB接口芯片,它是總線在主機方面的接口,用于支持USB設備通過USB連到主機上。

目前,市場上供應的USB控制器主要有兩種:帶USB接口的單片機和純粹的USB接口芯片。前者的好處在于開發(fā)者對系統(tǒng)結構和指令集很熟悉,開發(fā)工具簡單,但對于簡單或低成本系統(tǒng),價格高將會是最大的障礙。而純粹的USB接口芯片僅處理USB通信,必須有一個外部微處理器進行協(xié)議處理和數(shù)據(jù)交換。這類芯片的特點是價格便宜、接口方便、可靠性高,尤其適合于產(chǎn)品的改型設計(硬件上僅需對并行總線和中斷進行改動,軟件則需增加微處理器的USB中斷處理和數(shù)據(jù)交換程序、PC機的USB接口通信程序,無需對原有產(chǎn)品系統(tǒng)結構作很大的改動)41]。

1.2 硬件電路設計

在選定USB控制芯片后,如果是帶USB接口的單片機,那就是一般單片機應用系統(tǒng)的開發(fā);反之,就是如何把USB接口芯片與單片機應用系統(tǒng)融合的問題,一般的USB接口芯片都支持多種并行總線結構,可以方便地與多種單片機接口。

1.3 軟件設計

設計完USB主控器與系統(tǒng)中CPU和存儲器的接口電路后,就要開發(fā)主機系統(tǒng)上的主要外設驅動程序,USB的核心驅動以及USB主控制器驅動程序了,由主機系統(tǒng)控制USB數(shù)據(jù)的傳送動作,響應來自外設的USB標準請求,完成各種數(shù)據(jù)的交換工作和事件處理。

軟件設計中要注意的是先要考慮USB總線延時問題。理論上USB總線工作在全速時的最小響應周期為1毫秒,但是實際上的響應周期可能會到幾十毫秒。其原因是多方面的,比如驅動程序、多重緩沖區(qū)等。這是在實時控制項目設計時首先要考慮的因素之一。

1.4 調試

因為每一次USB的傳輸過程,都有時效要求,等待時間過長,通信過程也就中止了,因此不適合用硬件仿真器來設斷點調試?刹捎么谳o助調試過程, 即在固件代碼中加入類似于Printf的語句,向串口輸出一些信息。借此,可以知道程序運行到哪,以及運行到某處時相應的變量或寄存器值。

調試工作基本分三步進行:首先對單片機部分借助PC調試軟件(芯片生產(chǎn)商提供或從網(wǎng)上下載Bus Hound,WINRT-USB 等調試軟件)將設備端的USB協(xié)議(主要有描述符請求、端口配置、地址設置以及基本數(shù)據(jù)交換)調通。然后,用調試好的USB設備接口來開發(fā)、調試PC 軟件。最后,加上USB設備端的其它用戶程序,對整個完整的系統(tǒng)進行調試。

2  應用實例
下面從硬軟件兩方面具體介紹本案例,重點分析了初始化問題。本例研究開發(fā)了一種基于單片機的USB總線的HOST接口,使得可以接入標準的USB DEVICE,針對大容量數(shù)據(jù)固態(tài)存儲的技術需要,在單片機上研究實現(xiàn)FAT32(兼容FAT16)的文件系統(tǒng),從而使得USB的Mass Storage類設備可以自由接入,現(xiàn)場采集的數(shù)據(jù)可以以文件的形式存儲記錄。這樣,就大大拓寬了傳統(tǒng)的數(shù)據(jù)測控終端在長時間大容量的數(shù)據(jù)存儲技術上的限制。

本例采用MSP430F149單片機作為核心處理部件,Philps公司的ISP1161A1為USB主控芯片,由MSP430F149控制ISP1161A1,將CPU發(fā)來的指令變?yōu)橄鄳腢SB數(shù)據(jù)流,傳送給指定的USB設備進行相應的操作。圖1為具有USB主機功能的數(shù)據(jù)采集系統(tǒng)原理框圖。數(shù)據(jù)采集的固態(tài)存儲設備采用現(xiàn)在應用非常普遍的U盤或移動硬盤,這些設備可移動性強,均采用標準的USB總線接口,通用性非常好。                                        

圖1具有USB主機功能的數(shù)據(jù)采集系統(tǒng)原理框圖

在本例中,軟件系統(tǒng)的設計主要涉及五個部分,分別為軟件主程序、數(shù)據(jù)采集部分、數(shù)據(jù)處理部分、數(shù)據(jù)的現(xiàn)場大容量存儲部分、數(shù)據(jù)的GSM通信部分。整個系統(tǒng)是在IAR Embedded Workbench的軟件環(huán)境以及ScomAssistant調試助手下實現(xiàn)的,程序的實現(xiàn)采用C語言。主程序的代碼為:

void main(void)

{

    SYSInit();

    TimeTaskInit();

    USBInit();

    while(1){

        TimerTaskManage();

        USBTaskManage();

    }

}

SYSInit()實現(xiàn)系統(tǒng)初始化工作,主要對單片機基礎參數(shù)的設置和定義各個I/O口的工作方式;TimeTaskInit()中先進行單片機定時中斷的配置,再將定時任務的所有標志清零初始化,為定時中斷處理做準備。USBInit()是對USB事務進行硬軟件初始化,先檢測和配置USB主控芯片ISP1161A1,再初始化USB軟件環(huán)境。

早期的U盤對初始化要求不高,有的甚至不需要驅動就可直接對扇區(qū)進行讀寫,所以現(xiàn)有大部分USB主機系統(tǒng)一般都能實現(xiàn)對這些U盤的讀寫。但隨著產(chǎn)品不斷更新,初始化信息不能完全獲取使得一些不同的USB裝置只能針對不同U盤。本實驗證明,初始化過程完成后再解決了時序問題,就可以解決大部分U盤的讀寫。

3.初始化分析

正如前面所述,目前社會上很多人只能完成針對某些特定U盤的讀寫,本實驗中的重點就是先完成U盤的初始化,讓單片機先能認識大多數(shù)U盤,然后對它們進行批處理方式的讀寫,再從U盤或移動硬盤加載文件系統(tǒng),最后完成對U盤或移動硬盤在文件級別上的讀寫。

當主機檢測到一個設備已經(jīng)連接時,就會自動識別所連接的設備,這個過程稱為設備枚舉(Device Enumeration).設備枚舉使得主機的設備驅動程序能夠與USB設備之間進行數(shù)據(jù)交換.在這個過程中,USB設備需要響應主機的標準設備請求并把描述符傳送給主機,這些描述符包括設備描述符,配置描述符,接口描述符和端點描述符等42]。在沒有對U盤完成初始化之前,單片機只能看到U盤的端點0,其他端點對于單片機來說是透明的。因此,我們只能從端點0即控制通道中對U盤進行配置,讀進U盤的必要的配置信息后再對U盤的各端點進行配置。一般的傳輸數(shù)據(jù)大小不為0的控制傳輸?shù)倪^程可分為3個階段[3]。

第一階段,是控制傳輸?shù)慕㈦A段。

在這階段里,我們首先要建一個用于建立控制傳輸事務的PTD數(shù)據(jù),然后往U盤發(fā)送。

這里有一個需要注意的地方,在每次用于發(fā)送的函數(shù)執(zhí)行以后,要加上一定的延時,等待U盤對發(fā)過來的指令進行處理。我們要讀取描述表,就要向U盤發(fā)送USB設備的標準設備請求命令。比如獲取U盤描述表的USB標準設備請求命令為“0680 0100 0000 0012”。把上述命令寫入PTD數(shù)據(jù)的負載區(qū),然后發(fā)送,延時等待。

第二階段,是數(shù)據(jù)階段。

標準設備請求命令發(fā)送后,U盤就會把設備描述表發(fā)過來,這時我們就準備接收了。

在這里有一個問題要解決,就是最大包長度的問題。每個U盤在0通道里都規(guī)定了一個最大包的長度,可以是8,16,32或64字節(jié)。舉個例子:這次要傳輸?shù)拿枋霰淼拈L度為18字節(jié)。假設U盤的最大包長度為8字節(jié),那就分三次接收,8+8+2字節(jié)。若最大包長度為16字節(jié),就分兩次接收,16+2字節(jié)。如果最大包長度為32字節(jié)或者64字節(jié),就可以一次完成。為了得到這個U盤的最大包長度,可以進行試探,然后用一個公共變量把最大包長度記錄下來。判斷原理如下:先建立一個大小為8字節(jié)的接收區(qū)進行接收,然后監(jiān)視PTD頭的COMPLETE CODE字段(參考1161芯片中PTD數(shù)據(jù)的建立過程),如果該字段出現(xiàn)1000(二進制)的錯誤,就證明最大包長比8大,然后再建立16字節(jié)的接收區(qū)接收,如果還出現(xiàn)1000的錯誤的話,就再用稍大的包進行嘗試,直到COMPLETE CODE字段出現(xiàn)0000為止。這樣,就得出了該U盤0通道的最大包長度。下圖2總結了讀入描述表的過程。

第三階段,是狀態(tài)階段。
在狀態(tài)階段里,單片機要向U盤發(fā)送一個空數(shù)據(jù)負載的PTD數(shù)據(jù),以向U盤匯報此次控制傳輸已經(jīng)完成。

配置表的讀取過程和描述表過程差不多,這里就不再加以敘述了。在完成描述表和配置表的讀取以后,就可以往U盤發(fā)送標準設備請求命令SET CONFIG對U盤進行配置了,至此,枚舉過程結束。到此為止,本例單片機對U盤的初始化過程也已基本完成。

實驗證明,此方案確實解決了大部分U盤的讀寫,但由于USB單片機系統(tǒng)對時序要求很嚴,測試過程也有一定困難,目前還不能解決所有U盤及移動硬盤的讀寫,為解決這一問題,我們又采用了南京恒沁電子公司的CH375芯片作為USB主控芯片,該芯片集成了處理Mass Storage存儲的專用通信協(xié)議的固件,單片機可以直接以扇區(qū)為基本單位讀寫存儲設備。初步實驗證明,它能解決目前市場上幾乎所有的U盤及移動硬盤的讀寫。

CH375的優(yōu)點是處理Mass Storage存儲設備比較方便,缺點是只有一個USB接口,如果視頻采集和數(shù)據(jù)存儲同時處理就需要2個CH375芯片;只支持USB1.1協(xié)議,內(nèi)部緩沖區(qū)只有64字節(jié),數(shù)據(jù)吞吐量比較小,對于高速的視頻采集難以滿足要求。ISP1161A1的優(yōu)點是有2個USB HOST接口和1個USB DEVICE接口,支持USB2.0協(xié)議,內(nèi)部緩沖區(qū)為4K字節(jié),數(shù)據(jù)吞吐量大;缺點是沒有Mass Storage的專用通信協(xié)議的固件,應用開發(fā)比較費事。

3.結束語
文中論述的基于單片機的大容量數(shù)據(jù)存儲方案現(xiàn)已完成了模塊調試。實際測試中,將終端的模擬采集數(shù)據(jù)送入U盤,以ASCII文件方式存儲,成功存入自定的文件中,可在PC 機中打開, 也可以直接用上層測控軟件進行進一步的處理。

本文的研究是在水利自動化的背景下進行的,但在結構上這種終端明顯具有廣泛的適應性。除了應用于水利自動化信息測報外,還可以用于電力系統(tǒng)的現(xiàn)場測報和數(shù)據(jù)記錄、交通智能化管理以及環(huán)保、氣象、地質、民用領域如數(shù)碼相機等。因此,文中研究的設計模式和實現(xiàn)技術的應用前景將是非常廣闊的。

參考文獻:
[1] Don Anderson. Universal Serial Bus System Architecture [M].Addison Wesley Longman, Inc,2000
[2] Don Anderson. USB系統(tǒng)體系[M].北京:中國電力出版社,2001
[3] Philips Semiconductors:《ISP1161A1 USB single-chip host and device controller, Programming Guide》,2004

  • 上一篇: 基于MSP430的軌道電路在線測試儀設計與實現(xiàn)
  • 下一篇: 沒有了
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網(wǎng)友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1
    从江县| 潮州市| 自贡市| 乃东县| 大埔县| 肥城市| 湘乡市| 宁海县| 阿坝县| 涿州市| 湖北省| 洛南县| 临泽县| 仙居县| 区。| 南乐县| 慈溪市| 通河县| 东源县| 威宁| 福鼎市| 武定县| 武汉市| 高唐县| 新龙县| 莫力| 灵丘县| 平和县| 建宁县| 兰州市| 霍林郭勒市| 天水市| 伊金霍洛旗| 龙山县| 喀什市| 乾安县| 长治市| 基隆市| 柏乡县| 九江市| 黑河市|