基于TMS320C6713控制的USB數據存儲系統設計
圖4給出TMS320C6713存儲空間分配表。由圖4可知,存儲空間CEl的地址范圍是0x90000000~0xA0000000,因此可設定TMS320C6713地址總線(xiàn)經(jīng)CPLD相關(guān)編碼后SL811HS的片選地址是0x90080006,HOST USB數據寄存器的存儲空間為0x90080006。地址寄存器為0x90080007。
3 軟件設計
軟件設計含有初始化和驅動(dòng)兩部分程序。前者用于完成芯片支持庫(Chip Support Library,簡(jiǎn)稱(chēng)CSL)提供的標準方法.以訪(fǎng)問(wèn)和控制片上外設設備的初始化、軟件變量的初始化及使能中斷(總中斷、NMI中斷)等。TMS320C6713控制SL811HS對U盤(pán)操作的軟件設計分為:①針對SL811HS編寫(xiě)USB主機控制器驅動(dòng)程序;②系統調用驅動(dòng)程序,以完成U盤(pán)數據讀寫(xiě)的應用程序。
3.1 USB設備的配置
在設備檢測階段,SL8llHS通過(guò)讀取中斷狀態(tài)寄存器判斷中斷類(lèi)型。當中斷類(lèi)型為檢測到設備插入時(shí)(U盤(pán)插入USB插座會(huì )產(chǎn)生中斷),配置USB設備即U盤(pán)。同時(shí)還需使能SL811HS的1 ms SOF,以便進(jìn)行數據幀的同步。此時(shí),可通過(guò)setup結構的數據包(8字節)向USB設備的控制端點(diǎn)O(默認控制端點(diǎn)和默認地址)發(fā)送命令。
當采用setup數據包配置U盤(pán)時(shí),需將U盤(pán)的地址寫(xiě)入SL811HS的寄存器4;將數據包的類(lèi)型和U盤(pán)的控制端點(diǎn)寫(xiě)入SL811HS的寄存器3。U盤(pán)配置過(guò)程的主要流程如圖5所示。在U盤(pán)的配置過(guò)程完成后,主機與USB設備之間的通信必須使用設置的地址。默認地址0不再有效,傳輸端點(diǎn)則為讀取配置描述符中所定義的端點(diǎn)號。
3.2 傳輸流程設計
在與U盤(pán)之間傳輸大量數據時(shí),需要利用描述符提供的In,OUt端點(diǎn)傳送數據,并遵循Bulk―Only傳輸協(xié)議.其傳輸過(guò)程一般分為3個(gè)階段。
根據USB的協(xié)議規范,所有的傳輸都需由DSP啟動(dòng).即TMS320C6713首先向設備的OUT端點(diǎn)發(fā)送一命令(CBW數據包),請求傳輸,在數據包中設定下一步的數據傳輸方向。若為設備到TMS320C6713,則當CBW發(fā)送成功后,從設備的IN端點(diǎn)讀取CBW中規定長(cháng)度的數據;若為T(mén)MS320C6713到設備,則當CBW發(fā)送成功后,向設備的0UT端點(diǎn)發(fā)送CBW中規定長(cháng)度的數據。
當TMS320C6713與設備之間的數據傳輸完畢后,TMS320C6713還需從設備的IN端點(diǎn)讀取傳送狀態(tài),然后TMS320C6713根據接收的握手包(ACK,NAK,STALL等)即可判斷通信是否正常。若返回的結果有錯誤,還需進(jìn)行相應的出錯處理。
U盤(pán)數據結構包括DBR(系統引導記錄)、FAT表、文件目錄表(FDT)。當寫(xiě)一新文件時(shí),需在FAT表中查找未使用的簇,并將該簇號寫(xiě)入文件所對應目錄數據結構中的起始簇號位置。當該文件長(cháng)度大于一簇時(shí),還需在FAT表中對應的起始簇號位置填入下一可用簇的簇號,直到文件的最后一簇(FAT表中的相應位置填FFFF)為止。若磁盤(pán)有備份FAT,還需在備份FAT表的相應位置填入正確的內容。
使用U盤(pán)的Bulk端點(diǎn)進(jìn)行數據傳輸,Bulk傳輸分為Bulk-In(TMS320C6713向外圍設備請求數據)和Bulk-Out(TMS320C6713向外圍設備發(fā)送數據)。先發(fā)送令牌包(CBW包),再發(fā)送數據包,若發(fā)送或接收正確,則返回握手包.一次事務(wù)傳送成功。在事務(wù)傳送過(guò)程中,DATAO和DATAl是交替使用的。圖6給出一般傳輸流程。
3.3 系統速度分析
塊傳輸適合傳輸大量且對傳輸時(shí)間和傳輸速率均無(wú)要求的數據。當USB總線(xiàn)帶寬緊張時(shí),它會(huì )為其他傳輸類(lèi)型讓出所占用的幀/小幀時(shí)間,而其本身將被延遲,這時(shí)傳輸速率很低,占用的傳輸時(shí)間也很長(cháng);當USB總線(xiàn)空閑時(shí),它能以很快的速度傳輸,其傳輸時(shí)間也很短。所以塊傳輸可發(fā)送大量的數據而不會(huì )堵塞USB總線(xiàn),但其傳輸時(shí)間和傳輸速率卻得不到保證。另外,影響傳輸速度的因素很多,如指令讀取時(shí)間、執行時(shí)間,主機響應時(shí)間及數據傳輸時(shí)間等,但因采用了功能強大的DSP,其頻率配置為200 MHz。因此,能大大提高指令讀取執行和主機的相應時(shí)間。對存儲速度進(jìn)行了仿真測試,其結果表明基本達到了設計要求。
4 結語(yǔ)
使用USB主機接口控制器SL811HS實(shí)現了對U盤(pán)的讀寫(xiě),大大降低了系統硬件設計的復雜度和系統調試的難度。同時(shí)提高了系統的集成度和穩定性,減小了系統的體積和功耗。若采用諸如FIFO類(lèi)提高傳輸速度的措施.可為數據采集系統存儲大容量數據提供一種通用、方便和可靠的解決方案。若采用支持USB2.0協(xié)議的器件,可大大提高傳輸速度.為數據分析提供有利手段。在野外采集數據時(shí)。該技術(shù)能盡量存儲所需的信息,因此它的應用前景十分看好。
評論