- USB應(yīng)用分析精粹:從設(shè)備硬件、固件到主機(jī)端程序設(shè)計(jì)
- 龍虎
- 1267字
- 2022-08-16 17:39:03
作者序
本書(shū)有部分內(nèi)容最初發(fā)布于個(gè)人微信公眾號(hào)“電子制作站”(dzzzzcn),并得到廣大電子技術(shù)愛(ài)好者及行業(yè)工程師的一致好評(píng),甚至在網(wǎng)絡(luò)上被大量轉(zhuǎn)載??紤]到讀者對(duì)USB應(yīng)用開(kāi)發(fā)知識(shí)的強(qiáng)烈訴求,決定將相關(guān)文章整合成圖書(shū)出版,書(shū)中每章幾乎都有一個(gè)鮮明的主題。本書(shū)在收錄已發(fā)布文章的同時(shí),也進(jìn)行了細(xì)節(jié)更正及內(nèi)容擴(kuò)充。當(dāng)然,更多的內(nèi)容是最新撰寫(xiě)的,它們對(duì)讀者全面理解USB規(guī)范及系統(tǒng)開(kāi)發(fā)有著非常實(shí)用的價(jià)值。
如今,USB接口幾乎成為大多數(shù)個(gè)人計(jì)算機(jī)與智能手機(jī)的標(biāo)配,越來(lái)越多的電子產(chǎn)品也都傾向于使用USB接口,原因自然無(wú)外乎是其易用性。然而,USB易用性的代價(jià)就是協(xié)議的復(fù)雜性,相關(guān)系統(tǒng)的開(kāi)發(fā)過(guò)程也有著更高的門(mén)檻。市面上雖然有一些USB開(kāi)發(fā)相關(guān)的圖書(shū),但大多數(shù)主要還是對(duì)USB規(guī)范的機(jī)械翻譯與源代碼復(fù)制,并沒(méi)有在“如何更形象、更系統(tǒng)地闡述USB規(guī)范”方面下功夫,很難給實(shí)際的項(xiàng)目開(kāi)發(fā)帶來(lái)較大的指導(dǎo)意義。
本書(shū)打破常規(guī)圖書(shū)“先大篇幅介紹USB規(guī)范,再討論USB設(shè)備開(kāi)發(fā)”的撰寫(xiě)思路,先通過(guò)體驗(yàn)簡(jiǎn)單游戲操縱桿實(shí)例再切入比較頂層的USB規(guī)范,避免一次性引出過(guò)多術(shù)語(yǔ)而打擊讀者的學(xué)習(xí)積極性,隨后在功能逐步完善的過(guò)程中幫助讀者快速建立起對(duì)USB設(shè)備開(kāi)發(fā)的感性認(rèn)識(shí)。當(dāng)具備了足夠的經(jīng)驗(yàn)后,再引導(dǎo)讀者重新從底層總線電平標(biāo)準(zhǔn)往上經(jīng)令牌、事務(wù)、傳輸、請(qǐng)求與頂層應(yīng)用“碰撞”,使讀者不僅能夠清晰地認(rèn)識(shí)“USB數(shù)據(jù)在傳輸過(guò)程中的每個(gè)層面都干了些什么”,而且有能力進(jìn)行USB設(shè)備固件的核心編程,真正做到“知其然更知其所以然”。在整個(gè)闡述過(guò)程中,本書(shū)將USB規(guī)范穿插在實(shí)例中進(jìn)行對(duì)照講解,使讀者能夠輕松地理解USB規(guī)范是如何反映在硬件控制器與源代碼中的,讓USB規(guī)范不再那么抽象;同時(shí),結(jié)合面試、超市運(yùn)營(yíng)、工廠制造、籃球項(xiàng)目、下棋等生活場(chǎng)景,讓USB規(guī)范的學(xué)習(xí)過(guò)程變得不再枯燥,也許還會(huì)發(fā)現(xiàn)USB規(guī)范其實(shí)并沒(méi)有想象中的那么復(fù)雜。
為了讓讀者能夠真正將USB開(kāi)發(fā)思想靈活運(yùn)用在項(xiàng)目開(kāi)發(fā)中,本書(shū)不僅結(jié)合USB規(guī)范對(duì)固件庫(kù)進(jìn)行了完整剖析,而且嘗試使用多種不同方案實(shí)現(xiàn)相同的功能,讓讀者深刻理解不同開(kāi)發(fā)方案的優(yōu)缺點(diǎn)。本書(shū)涉及的基礎(chǔ)例程雖然只有一個(gè),但是在闡述不同的開(kāi)發(fā)方案過(guò)程中引出了很多例程,讓讀者輕松開(kāi)發(fā)鼠標(biāo)、鍵盤(pán)、復(fù)合、自定義HID、非標(biāo)準(zhǔn)、大容量存儲(chǔ)、虛擬串口、聲卡等USB設(shè)備,一方面可以避免過(guò)多毫無(wú)關(guān)聯(lián)的例程堆砌而使得全書(shū)內(nèi)容過(guò)于松散;另一方面能夠從逐步完善的過(guò)程中循序漸進(jìn)地深入U(xiǎn)SB規(guī)范,對(duì)USB規(guī)范的透徹理解,以及掌握USB設(shè)備固件與應(yīng)用程序開(kāi)發(fā)有著積極的意義。
需要特別指出的是,本書(shū)雖然使用STM32單片機(jī)作為開(kāi)發(fā)平臺(tái),但是讀者無(wú)須對(duì)其有任何開(kāi)發(fā)經(jīng)驗(yàn),因?yàn)槌鼼PIO與USB控制器模塊外,其他無(wú)關(guān)的模塊均未涉及。本書(shū)主要著重于闡述USB規(guī)范及USB系統(tǒng)開(kāi)發(fā)的思想,這對(duì)于所有平臺(tái)都是通用的,也是本書(shū)撰寫(xiě)的初衷:盡最大限度削弱對(duì)平臺(tái)的依賴性。換句話說(shuō),即使讀者以前從來(lái)沒(méi)有接觸過(guò)STM32單片機(jī)開(kāi)發(fā),或者使用的開(kāi)發(fā)平臺(tái)與本書(shū)完全不一樣,也絲毫不妨礙讀者理解USB設(shè)備的開(kāi)發(fā)過(guò)程,只要讀者需要進(jìn)行USB設(shè)備及主機(jī)應(yīng)用程序的開(kāi)發(fā),本書(shū)所闡述的USB開(kāi)發(fā)思想就非常有實(shí)用價(jià)值。
由于本人水平有限,錯(cuò)漏之處在所難免,懇請(qǐng)讀者批評(píng)與指正。
- Intel FPGA/CPLD設(shè)計(jì)(基礎(chǔ)篇)
- 24小時(shí)學(xué)會(huì)電腦組裝與維護(hù)
- SDL Game Development
- 計(jì)算機(jī)應(yīng)用與維護(hù)基礎(chǔ)教程
- 單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)
- Apple Motion 5 Cookbook
- The Deep Learning with Keras Workshop
- Spring Cloud微服務(wù)架構(gòu)實(shí)戰(zhàn)
- 面向?qū)ο蠓治雠c設(shè)計(jì)(第3版)(修訂版)
- 固態(tài)存儲(chǔ):原理、架構(gòu)與數(shù)據(jù)安全
- 筆記本電腦維修實(shí)踐教程
- 超大流量分布式系統(tǒng)架構(gòu)解決方案:人人都是架構(gòu)師2.0
- Internet of Things Projects with ESP32
- 3D Printing Blueprints
- 計(jì)算機(jī)電路基礎(chǔ)(第2版)