日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

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

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

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

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

             

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

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

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

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

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

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

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

說到通信設(shè)計(jì)院,相信很多人都聽說過。平常我們?cè)谛侣剤?bào)道中,經(jīng)常會(huì)看到各家設(shè)計(jì)院的名字出現(xiàn),例如聯(lián)通設(shè)計(jì)院、中移設(shè)計(jì)院,等等。最近各地校招啟動(dòng),有一些同學(xué)收到了設(shè)計(jì)院的offer,于是問我,設(shè)計(jì)院到底是干啥的?今天,我就給...

關(guān)鍵字: 通信設(shè)計(jì)

  當(dāng)前,軟件定義網(wǎng)絡(luò)(SDN)成為業(yè)界一個(gè)時(shí)髦的話題,SDN技術(shù)及其可能帶來的影響受到了學(xué)術(shù)界和產(chǎn)業(yè)界的高度重視,同時(shí)也存在著對(duì)SDN不同的理解和認(rèn)識(shí)。近日,從一知名的社交新聞?wù)军c(diǎn)&mdash

關(guān)鍵字: sdn 通信設(shè)計(jì)

linux下的進(jìn)程通信手段基本上是從Unix平臺(tái)上的進(jìn)程通信手段繼承而來的。而對(duì)Unix發(fā)展做出重大貢獻(xiàn)的兩大主力AT&T的貝爾實(shí)驗(yàn)室及BSD(加州大學(xué)伯克利分校的伯克利軟件發(fā)布中心

關(guān)鍵字: 進(jìn)程 通信設(shè)計(jì) LINUX操作系統(tǒng) 通信

引言 目前,由北京航空航天大學(xué)與冀東發(fā)展集團(tuán)有限責(zé)任公司合作研發(fā)的科氏粉料流量測控系統(tǒng)(以下簡稱“測控系統(tǒng)”)已經(jīng)成功應(yīng)用到工業(yè)現(xiàn)場,運(yùn)行狀況良好,測量精度優(yōu)于±0.5%。...

關(guān)鍵字: 測控系統(tǒng) 系統(tǒng)設(shè)計(jì) USB通信 BSP

以合眾達(dá)公司的SEED—DIM138開發(fā)板作為硬件開發(fā)平臺(tái),利用SYSLINK驅(qū)動(dòng)設(shè)計(jì)了一種可用于DSP和ARM之間通信的握手機(jī)制。ARM端運(yùn)行Linux操作系統(tǒng),進(jìn)行人機(jī)交互;DSP端運(yùn)行SYSBIOS操作...

關(guān)鍵字: 雙核 通信設(shè)計(jì) OMAPL138 LINK

  l 引言  隨著計(jì)算機(jī)技術(shù)和測控技術(shù)的不斷發(fā)展,在以單片機(jī)為核心的數(shù)據(jù)采集系統(tǒng)中,需要實(shí)現(xiàn)單片機(jī)和計(jì)算機(jī)之間的數(shù)據(jù)交換,并以此來發(fā)揮單片機(jī)和計(jì)算機(jī)各自的長處,

關(guān)鍵字: 串行通信 RS485 通信設(shè)計(jì) C8051F020單片機(jī)

摘要:為了實(shí)現(xiàn)對(duì)某型機(jī)栽武器測控的需求,利用C8051F340單片機(jī)和HS3282芯片設(shè)計(jì)了ARINC429總線和計(jì)算機(jī)RS-232總線的接口轉(zhuǎn)換電路,通過C語言設(shè)計(jì)了單片機(jī)固件程序,實(shí)現(xiàn)了串并數(shù)據(jù)的轉(zhuǎn)換與傳輸以及數(shù)據(jù)傳...

關(guān)鍵字: C8051F340 系統(tǒng)設(shè)計(jì) 機(jī)載 測控系統(tǒng)

摘要:為了實(shí)現(xiàn)對(duì)CAN總線和RS-232串口雙向通信需求,提出了一種基于C8051F040單片機(jī)的數(shù)據(jù)通信方案,并完成系統(tǒng)設(shè)計(jì)。分析了CAN總線和RS-232串口的通信特點(diǎn),介紹了單片機(jī)硬件,并對(duì)軟件的設(shè)計(jì)思路與流程做了...

關(guān)鍵字: CAN總線 RS-232 通信設(shè)計(jì) C8051F040

摘要:CPLD可編程技術(shù)具有功能集成度高、設(shè)計(jì)靈活、開發(fā)周期短、成本低等特點(diǎn)。介紹基于ATMEL 公司的CPLD芯片ATF1508AS設(shè)計(jì)的串并轉(zhuǎn)換和高速USB及其在高速高精度數(shù)據(jù)采集系統(tǒng)中的應(yīng)用。關(guān)鍵詞:CPLD 串并...

關(guān)鍵字: 串并轉(zhuǎn)換 CPLD 通信設(shè)計(jì) USB通信

北京航空航天大學(xué) 任雷 林巖 張沫陽引 言串行外圍設(shè)備接口(Serial Peripheral InteRFace,SPI)總線技術(shù)是Motorola公司推出的一種高速同步串行輸入/輸出接口,近年來廣泛應(yīng)用于外部移位寄...

關(guān)鍵字: 數(shù)據(jù)通信 CPLD 通信設(shè)計(jì) ADS1

通信技術(shù)

120740 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉