Windows Phone 8.1 驅動開發——SPB 簡介

來源:互聯網
上載者:User

標籤:windows驅動開發   wdf   windows phone 8   i2c   

SPB是Simple Peripheral Bus的簡稱,直譯過來就是簡單外設匯流排,它包括I2C匯流排、SPI匯流排。SPB是在Windows 8以後才被驅動支援的,而在之前如果系統想訪問I2C外圍裝置,則只能通過BIOS程式間接的訪問,沒法直接存取外設寄存器。在系統啟動時,ACPI韌體會根據配置表掃描SPB裝置,並將它們的資源資訊傳遞給PnP(隨插即用裝置)管理器,這些資源就包括I2C從裝置地址、I2C匯流排時鐘頻率以及該裝置的中斷號。需要注意的一點,在ACPI資源配置表中,是不允許使用Memory32Fixed等這樣的儲存映射Method的,因為一個I2C裝置是不能被系統地址映射的,它們只能通過I2C匯流排進行訪問。關於I2C匯流排的協議並不是本文討論的主要內容,如果有不瞭解的還請事先上網查閱,然後再來閱讀本文。


和GPIO驅動一樣,SPB驅動也分為SPB控制器驅動SPB架構(SpbCx)SPB外設驅動

    SPB控制器驅動:直接操作SPB(I2C)控制寄存器,與控制器硬體相關,並通過事件回調的方式將資料傳送給SpbCx。

    SPB架構:負責串連SPB Controller Driver 和 Periphera Device Driver 的中介層,實現外設驅動與控制器驅動之間資料互動的細節,也為平台移植提供了極大的好處。

    SPB外設驅動:與SPB(I2C)所串連的具體外設驅動,與外設硬體相關,通過發送I/O請求給SpbCx進行外設的控制。它不關心底層SPB控制器的具體操作。

微軟採用這樣的架構極大的方便了手機驅動人員開發I2C外設驅動的工作,因為我們驅動人員只需要與SpbCx打交道,而不必關心SoC硬體平台的具體細節,就算以後換了個SoC,I2C控制器寄存器地址發生了變化,我們的外設驅動也不需要做任何改動就能正常工作,而往往與平台硬體相關的I2C控制器驅動則都是由SoC平台廠商去完成的,這樣節省了手機驅動人員的開發工作量,縮短了項目開發週期。


很清晰的表明了三者的關係(圖片來源於MSDN):


或是這幅圖:



關於SPB驅動更詳細的資訊,請查閱MSDN官方文檔:Simple Peripheral Buses

Windows Phone 8.1 驅動開發——SPB 簡介

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.