色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

USBXpress開發包簡化USB通信的應用開發及注意事項

牽手一起夢 ? 來源:網絡整理 ? 作者:佚名 ? 2020-01-21 17:14 ? 次閱讀

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

1、 USBXpress簡介

由SILICON Laboratories公司推出的USBXpress開發包涵蓋了主機端和設備端的所有函數功能,支持C8051F32X、C8051F34X和CP210X設備的USB通信。USBXpress開發包中包含主機端的設備驅動、主機端設備驅動安裝程序、主機端的動態鏈接庫(DLL)和設備端的函數庫文件。

設備端的函數庫文件提供了支持C805IF32X和C8051F34X設備USB通信的API函數,這些函數可以在Keil uVision3編譯環境下被編譯通過。編譯前需要在工程中添加相關的文件,詳見下文。

設備端函數庫中主要的API函數如下:

USB Clock Start() -初始化USB時鐘

USB Init()-USB接口初始化

Block Write() -向Buffer中寫數據

Block Read() -從Buffer中讀數據

Get Interrupt Source()-獲取API函數的中斷標志值

USB Int Enable() -允許API函數中斷

USB Int Disable() -不允許API函數中斷

USB Disable() -不允許USB接口通信

USB Suspend() -延緩USB中斷

2 、設備端的電路設計

(1)USB插座引腳識別

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

USBXpress開發包簡化USB通信的應用開發及注意事項

USBXpress開發包簡化USB通信的應用開發及注意事項

(2)基于C8051F340的USB通信電路

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

USBXpress開發包簡化USB通信的應用開發及注意事項

(3)USB通信電路說明

①電路中的D-和D+不應連接其他負載電路,因為任何負載將影響數據線路上的電流,從而影響數據傳輸,直接后果將導致主機端無法識別設備。

②JTAG口線中的VDD引腳為+3 V輸入,輸入電壓過大將損壞器件。USB插口引腳與C8051F340引腳應對應連接,不要有誤。

③C8051F340的VBUS、REGIN和VDD引腳的連接有多種方式(穩壓器配置),詳見表2。

USBXpress開發包簡化USB通信的應用開發及注意事項

3 、設備端的驅動程序設計

在Keil uVision3編譯環境下,用USBXpress 工具包中的API函數設計設備端的USB通信,前提是在工程中添加C8051F340.h、USB_API.h和USBX_F34X.LIB文件(USBXpress工具包提供相關文件)。

下面介紹設備端USB的數據傳輸。在進行數據傳輸之前,必須對USB時鐘和USB接口初始化:

USBXpress開發包簡化USB通信的應用開發及注意事項

(1)USB接口初始化參數定義

①USB_VID,16位二進制賣主ID號,一般用SILICONLab的ID號(OXl0C4)。

②USB_PID,16位二進制產品ID號,一般USBXpress規定為OXEA61。

USBXpress開發包簡化USB通信的應用開發及注意事項

④USB_ProductStr,BYTE型指針,指向描述產品的字符串,不能為空。

⑤USB_SerialStr,BYTE型指針,指向描述序列號的字符串,不能為空。

⑥USB_MaxPower,BYTE型,說明總線最大電流,極限為500 mA。若取值0x32,則表示最大電流為100 mA。

⑦USB_PwAttributes,BYTE型,用于供電配置。如果設備自己供電第6位置“1”,若為總線供電則為“O”。如果設備提供弱上拉作用,第5位置“l”,位0~4必須為“O”,位7必須為“1”。

⑧USB_bcdDevice,無符號int型,用BCD碼表示設備的版本號,如2.13版為Ox0213。

(2)USB中斷函數

設備端USB通信中API函數的功能,都在一個中斷模塊里面實現,為此必須提供一個中斷向量。其中,0x008B(Interrupt 17)是F34X設備的中斷向量。在main函數中,只有允許了USB中斷(調用USB Int Enable函數),才能進入中斷。一旦進入中斷服務程序,必須先獲得中斷標志(調用Get_Interrupt_Source函數,返回BYTE型中斷標志),后續操作根據獲得的中斷標志值與工具包自定義的中斷標志值判斷執行。自定義的中斷標志值主要有:USB_RESET(復位中斷)、TX_COMPLETE(發送完成中斷)、RX_COMPLETE(允許接收中斷)、DEVICEOPEN(設備實例在主機端打開)、DEVICE SUSPEND(延緩信號)等。

中斷函數如下:

USBXpress開發包簡化USB通信的應用開發及注意事項

在main函數中進行初始化之后,若中斷允許,通過函數Block_write來發送數據,發送數據的字節數不能超過4096。發送結束后將觸發中斷,從而進入中斷服務程序進行判斷操作。如果主機端向設備端的Buffer寫入數據完成,也將觸發中斷,判斷執行Block_Read操作將Buffer中的數據存入指定的存儲單元。

發送數據的函數原型為:Block_write(數據存儲單元首地址,發送的字節數)。

(3)主機端USB應用程序設計

在VC++6.O編譯環境下開發主機端的USB通信應用程序,需要注意在編譯之前向工程中添加開發包提供的SiUSBXp.dll、SiUSBXp.h和SiUSBXp.lib文件。

為了能讓主機端識別USB設備并與之通信,在運行應用程序之前,要安裝主機端的驅動程序(開發包已提供)。安裝了驅動程序,主機端才能識別USB設備,在設備管理器中可以找到USB設備的相關描述信息。

對USB設備的描述信息,除了可以修改設備端發送過來的描述符之外,還可以修改在主機端驅動安裝目錄下*.inf文件中的信息。

4、結語

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

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • usb
    usb
    +關注

    關注

    60

    文章

    8037

    瀏覽量

    267556
  • 主機
    +關注

    關注

    0

    文章

    1023

    瀏覽量

    35492
  • 驅動程序
    +關注

    關注

    19

    文章

    851

    瀏覽量

    48382
收藏 人收藏

    評論

    相關推薦

    ucosii開發注意事項

    ucosii開發注意事項。
    發表于 08-15 22:37

    硬件開發流程及注意事項是什么

    硬件開發流程及注意事項是什么
    發表于 04-27 06:15

    Simulink開發STM32環境配置注意事項

    Simulink開發STM32環境配置注意事項,自動生成代碼無法正常實現功能分析最近做PIL,記錄一些過程,備忘1.環境配置的注意事項需要的軟件包括MATLAB ,我
    發表于 08-17 06:07

    使用.Net Micro Framework開發板有哪些注意事項

    怎樣去安裝.Net Micro Framework開發板?使用.Net Micro Framework開發板有哪些注意事項?
    發表于 10-11 06:38

    USB設計的注意事項

    USB設計的注意事項  通用串行總線(USB)就像在過去20年里無所不在的RS-232串行端口一樣正在逐步普及。實際上,現今發售
    發表于 04-22 18:45 ?1577次閱讀

    利用USBXpress開發包簡化應用程序實現USB通信設計

    的準備工作,USBXpress開發包完全可以實現USB通信的所有功能。本文介紹USB通信
    的頭像 發表于 01-14 08:02 ?2740次閱讀
    利用<b class='flag-5'>USBXpress</b><b class='flag-5'>開發包</b><b class='flag-5'>簡化</b>應用程序實現<b class='flag-5'>USB</b><b class='flag-5'>通信</b>設計

    USB Type-C 設計注意事項

    USB Type-C 設計注意事項
    發表于 11-14 21:08 ?23次下載
    <b class='flag-5'>USB</b> Type-C 設計<b class='flag-5'>注意事項</b>

    USB接口EMC注意事項及電路設計

    PCB Layout、USB問題問答(設備插入與識別)、USB接口EMC注意事項(接地設計、連接器設計、線纜設計、電纜設計、走線設計、USB OTG)。
    發表于 05-08 09:51 ?3148次閱讀
    <b class='flag-5'>USB</b>接口EMC<b class='flag-5'>注意事項</b>及電路設計

    FM33LC0XX開發注意事項

    電子發燒友網站提供《FM33LC0XX開發注意事項.pdf》資料免費下載
    發表于 09-20 09:59 ?3次下載
    FM33LC0XX<b class='flag-5'>開發</b><b class='flag-5'>注意事項</b>

    復旦微FM33A0XXEV開發注意事項_V1.1

    復旦微FM33A0XXEV開發注意事項_V1.1
    發表于 10-18 15:33 ?1次下載

    復旦微FM33FR0XX開發注意事項V0.1

    復旦微FM33FR0XX開發注意事項V0.1
    發表于 10-18 15:33 ?0次下載

    復旦微FM33LC0XX開發注意事項V0.7

    復旦微FM33LC0XX開發注意事項V0.7
    發表于 10-18 15:33 ?1次下載

    復旦微FM33LE0XX開發注意事項V0.1

    復旦微FM33LE0XX開發注意事項V0.1
    發表于 10-18 15:33 ?0次下載

    復旦微FM33LG0XX開發注意事項V0.7

    復旦微FM33LG0XX開發注意事項V0.7
    發表于 10-18 15:33 ?1次下載

    新版Hi3559AV100開發注意事項

    新版Hi3559AV100開發注意事項
    的頭像 發表于 11-13 09:17 ?971次閱讀
    新版Hi3559AV100<b class='flag-5'>開發</b><b class='flag-5'>注意事項</b>
    主站蜘蛛池模板: 毛片999 | 午夜熟女插插XX免费视频 | 日日噜噜噜夜夜爽爽狠狠图片 | 秋霞午夜理论理论福利无码 | 无码骚夜夜精品 | 热re99久久精品国99热 | 24小时日本高清免费看 | 高清国产mv视频在线观看 | 国产精品免费视频能看 | 久久精品久久久 | 色哟哟网站入口在线观看视频 | 草699一码二码三码四码 | 久久精品电影院 | 日本精品卡一卡2卡3卡四卡三卡 | 日本大尺码喷液过程视频 | 国内九一激情白浆发布 | 麻豆国产人妻精品无码AV | 中文字幕网站在线观看 | 国产乱国产乱老熟300部视频 | 亚洲色t图 | 网红主播 国产精品 开放90后 | 精品国产精品人妻久久无码五月天 | 忘忧草在线社区WWW日本直播 | 亚洲AV久久久噜噜噜久久 | 嗯啊哈啊好棒用力插啊 | 麻豆国产原创中文AV网站 | yellow日本高清在线 | 91avcom | 国产AV午夜精品一区二区入口 | 国产成人亚洲精品无广告 | 一级毛片美国 | 芭乐草莓樱桃丝瓜18岁大全 | 九九热精品视频在线观看 | 国产一级毛片在线 | 超碰视频在线 | 99视频在线免费 | 老熟风间由美AV在线一区二区 | 人妻无码AV中文系统久久免费 | 日日夜夜噜噜 | 国产在线精品亚洲另类 | 天天狠狠弄夜夜狠狠躁·太爽了 |