基于μC/OS-Ⅱ的嵌入式USB控制軟件的實(shí)現(xiàn)
4 Bulk-only傳輸?shù)?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/實(shí)現(xiàn)">實(shí)現(xiàn)
枚舉結(jié)束后是對(duì)塊設(shè)備的讀寫。Bulk-Only傳輸規(guī)范是USB組織針對(duì)大容量存儲(chǔ)設(shè)備制定的一種塊存儲(chǔ)類協(xié)議,它僅僅使用Bulk端點(diǎn)來傳送數(shù)據(jù)/命令/狀態(tài)。本文引用地址:http://butianyuan.cn/article/150349.htm
邏輯分析儀抓包結(jié)果如圖5所示。從抓包結(jié)果可以清晰的看出CBW包由31個(gè)字節(jié)組成。
CBW包和CSW包正確收發(fā)后,Bulk-only傳輸就能順利實(shí)現(xiàn)。完成對(duì)扇區(qū)的讀寫,文件系統(tǒng)的掛載。上層應(yīng)用程序使用文件系統(tǒng)提供的API,操作底層設(shè)備,實(shí)現(xiàn)對(duì)文件的建立、讀寫、刪除等操作。經(jīng)測(cè)試本系統(tǒng)支持長(zhǎng)文件名和超過2 GB容量的USB設(shè)備。本設(shè)計(jì)最終實(shí)現(xiàn)了在不同型號(hào)U盤上完成對(duì)長(zhǎng)文件名文件的新建、讀寫以及刪除操作。
5 結(jié)語(yǔ)
本設(shè)計(jì)在以CK510為內(nèi)核的HM1521_B芯片上,通過文件系統(tǒng)實(shí)現(xiàn)了對(duì)USB設(shè)備的讀寫操作。程序代碼放棄了USB協(xié)議中的繁文縟節(jié),抓住協(xié)議核心以達(dá)到精簡(jiǎn)高效之目的。在大容量USB存儲(chǔ)設(shè)備的兼容性方面也進(jìn)行了探討。經(jīng)測(cè)試本系統(tǒng)支持長(zhǎng)文件名和超過2 GB容量的USB設(shè)備。最終實(shí)現(xiàn)了在不同型號(hào)U盤上完成對(duì)長(zhǎng)文件名文件的新建、讀寫以及刪除操作。
本系統(tǒng)尚需改進(jìn)的地方主要是讀寫過程中的出錯(cuò)應(yīng)對(duì)能力。如何應(yīng)對(duì)USB設(shè)備在讀寫過程中的突然拔插,以及如何提高數(shù)據(jù)傳輸出錯(cuò)時(shí)的校驗(yàn)?zāi)芰Χ际潜菊n題進(jìn)一步研究的方向。
評(píng)論