當前位置:首頁 > 通信技術 > 通信技術
[導讀] 傳統(tǒng)的USB設備驅動程序編寫異常復雜,程序員往往很難入手。Silicon Laboratories公司提供的USBXpress開發(fā)包大大簡化了USB通信的應用和相關驅動程序的開發(fā),只要做好開發(fā)前的準備工作,USBXpress開發(fā)包完全可以實

    傳統(tǒng)的USB設備驅動程序編寫異常復雜,程序員往往很難入手。Silicon Laboratories公司提供的USBXpress開發(fā)包大大簡化了USB通信的應用和相關驅動程序的開發(fā),只要做好開發(fā)前的準備工作,USBXpress開發(fā)包完全可以實現(xiàn)USB通信的所有功能。本文介紹USB通信開發(fā)的全過程,以及在開發(fā)過程中需要注意的事項。(主要針對設備端USB通信進行講解)

1 USBXpress簡介
    由Silicon Laboratories公司推出的USBXpress開發(fā)包涵蓋了主機端和設備端的所有函數(shù)功能,支持C8051F32X、C8051F34X和CP210X設備的USB通信。USBXpress開發(fā)包中包含主機端的設備驅動、主機端設備驅動安裝程序、主機端的動態(tài)鏈接庫(DLL)和設備端的函數(shù)庫文件。
    設備端的函數(shù)庫文件提供了支持C805IF32X和C8051F34X設備USB通信的API函數(shù),這些函數(shù)可以在Keil uVision3編譯環(huán)境下被編譯通過。編譯前需要在工程中添加相關的文件,詳見下文。
    設備端函數(shù)庫中主要的API函數(shù)如下:
    USB Clock Start()         -初始化USB時鐘
    USB Init()                -USB接口初始化
    Block Write()             -向Buffer中寫數(shù)據(jù)
    Block Read()              -從Buffer中讀數(shù)據(jù)
    Get Interrupt Source()    -獲取API函數(shù)的中斷標志值
    USB Int Enable()          -允許API函數(shù)中斷
    USB Int Disable()         -不允許API函數(shù)中斷
    USB Disable()             -不允許USB接口通信
    USB Suspend()             -延緩USB中斷

2 設備端的電路設計
    (1)USB插座引腳識別
    在沒備端電路設計的過程中,對USB插座引腳必須對應連接,否則將直接影響到與主機端的通信。USB插座一般分為A型插座和B型插座,如圖1所示,其引腳說明如表1所列。

             

        (2)基于C8051F340的USB通信電路
    基于C8051F340的USB通信電路如圖2所示。

    (3)USB通信電路說明
    ①電路中的D-和D+不應連接其他負載電路,因為任何負載將影響數(shù)據(jù)線路上的電流,從而影響數(shù)據(jù)傳輸,直接后果將導致主機端無法識別設備。
    ②JTAG口線中的VDD引腳為+3 V輸入,輸入電壓過大將損壞器件。USB插口引腳與C8051F340引腳應對應連接,不要有誤。
    ③C8051F340的VBUS、REGIN和VDD引腳的連接有多種方式(穩(wěn)壓器配置),詳見表2。

3 設備端的驅動程序設計
    在Keil uVision3編譯環(huán)境下,用USBXpress 工具包中的API函數(shù)設計設備端的USB通信,前提是在工程中添加C8051F340.h、USB_API.h和USBX_F34X.LIB文件(USBXpress工具包提供相關文件)。
    下面介紹設備端USB的數(shù)據(jù)傳輸。在進行數(shù)據(jù)傳輸之前,必須對USB時鐘和USB接口初始化:

    (1)USB接口初始化參數(shù)定義
    ①USB_VID,16位二進制賣主ID號,一般用SiliconLab的ID號(OXl0C4)。
    ②USB_PID,16位二進制產品ID號,一般USBXpress規(guī)定為OXEA61。
    ③USB_MfrStr,BYTE型指針,指向描述廠商的字符串,不能為空。
若定義BYTE USB MfrStr[]={},數(shù)組中第1個數(shù)說明數(shù)組中元素的個數(shù)(元素個數(shù)=字符串元素個數(shù)*2+2),第2個數(shù)說明字符串描述符的類型,0起間隔作用。以下的字符串定義同上。
    ④USB_ProductStr,BYTE型指針,指向描述產品的字符串,不能為空。
    ⑤USB_SerialStr,BYTE型指針,指向描述序列號的字符串,不能為空。
    ⑥USB_MaxPower,BYTE型,說明總線最大電流,極限為500 mA。若取值0x32,則表示最大電流為100 mA。
    ⑦USB_PwAttributes,BYTE型,用于供電配置。如果設備自己供電第6位置“1”,若為總線供電則為“O”。如果設備提供弱上拉作用,第5位置“l(fā)”,位0~4必須為“O”,位7必須為“1”。
    ⑧USB_bcdDevice,無符號int型,用BCD碼表示設備的版本號,如2.13版為Ox0213。
    (2)USB中斷函數(shù)
    設備端USB通信中API函數(shù)的功能,都在一個中斷模塊里面實現(xiàn),為此必須提供一個中斷向量。其中,0x008B(Interrupt 17)是F34X設備的中斷向量。在main函數(shù)中,只有允許了USB中斷(調用USB Int Enable函數(shù)),才能進入中斷。一旦進入中斷服務程序,必須先獲得中斷標志(調用Get_Interrupt_Source函數(shù),返回BYTE型中斷標志),后續(xù)操作根據(jù)獲得的中斷標志值與工具包自定義的中斷標志值判斷執(zhí)行。自定義的中斷標志值主要有:USB_RESET(復位中斷)、TX_COMPLETE(發(fā)送完成中斷)、RX_COMPLETE(允許接收中斷)、DEVICEOPEN(設備實例在主機端打開)、DEVICE SUSPEND(延緩信號)等。
    中斷函數(shù)如下:

    在main函數(shù)中進行初始化之后,若中斷允許,通過函數(shù)Block_write來發(fā)送數(shù)據(jù),發(fā)送數(shù)據(jù)的字節(jié)數(shù)不能超過4096。發(fā)送結束后將觸發(fā)中斷,從而進入中斷服務程序進行判斷操作。如果主機端向設備端的Buffer寫入數(shù)據(jù)完成,也將觸發(fā)中斷,判斷執(zhí)行Block_Read操作將Buffer中的數(shù)據(jù)存入指定的存儲單元。
    發(fā)送數(shù)據(jù)的函數(shù)原型為:Block_write(數(shù)據(jù)存儲單元首地址,發(fā)送的字節(jié)數(shù))。
    (3)主機端USB應用程序設計
    在VC++6.O編譯環(huán)境下開發(fā)主機端的USB通信應用程序,需要注意在編譯之前向工程中添加開發(fā)包提供的SiUSBXp.dll、SiUSBXp.h和SiUSBXp.lib文件。
    為了能讓主機端識別USB設備并與之通信,在運行應用程序之前,要安裝主機端的驅動程序(開發(fā)包已提供)。安裝了驅動程序,主機端才能識別USB設備,在設備管理器中可以找到USB設備的相關描述信息。
    對USB設備的描述信息,除了可以修改設備端發(fā)送過來的描述符之外,還可以修改在主機端驅動安裝目錄下*.inf文件中的信息。

結語
    本文詳細介紹了USB通信的開發(fā)過程、電路設計和設備端的驅動設計,簡單說明了USBXpress開發(fā)包在主機端應用的條件設置。所有設計思路和方法都通過了實驗驗證,可以直接用于工程項目開發(fā)。通過此方法,程序員可以很容易地進行一系列USB通信應用的設計和編程。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉