音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

基于Blackfin532和Netchip2272的USB接口設(shè)計(jì)與實(shí)現(xiàn)

出處:電子科技 發(fā)布于:2011-08-26 19:45:56

  USB ,是英文Universal Serial BUS(通用串行總線)的縮寫(xiě),而其中文簡(jiǎn)稱為“通串線,是一個(gè)外部總線標(biāo)準(zhǔn),用于規(guī)范電腦與外部設(shè)備的連接和通訊。是應(yīng)用在PC領(lǐng)域的接口技術(shù)。USB接口支持設(shè)備的即插即用和熱插拔功能。USB是在1994年底由英特爾、康柏、IBM、Microsoft等多家公司聯(lián)合提出的。

  隨著計(jì)算機(jī)硬件飛速發(fā)展,外圍設(shè)備日益增多,鍵盤(pán)、鼠標(biāo)、調(diào)制解調(diào)器、打印機(jī)、掃描儀早已為人所共知,數(shù)碼相機(jī)、MP3隨身聽(tīng)接踵而至,這么多的設(shè)備,如何接入個(gè)人計(jì)算機(jī)?USB就是基于這個(gè)目的產(chǎn)生的。USB是一個(gè)使計(jì)算機(jī)周邊設(shè)備連接標(biāo)準(zhǔn)化、單一化的接口,其規(guī)格是由Intel(英特爾)、NEC、Compaq、DEC、IBM(商業(yè)機(jī)器公司)、Microsoft(微軟)、Northern Telecom聯(lián)系制定的。 目前USB設(shè)備雖已被廣泛應(yīng)用,比較普遍的是USB2.0接口,它的傳輸速度為480Mbps每秒。用戶的需求,是促進(jìn)科技發(fā)展的動(dòng)力,廠商也同樣認(rèn)識(shí)到了這個(gè)瓶頸。這時(shí), COMPAQ、Hewlett Packard、Intel、Lucent、Microsoft、NEC和PHILIPS這7家廠商聯(lián)合制定了USB 2.0接口標(biāo)準(zhǔn)。USB 2.0將設(shè)備之間的數(shù)據(jù)傳輸速度增加到了480Mbps,比USB 1.1標(biāo)準(zhǔn)快40倍左右,速度的提高對(duì)于用戶的好處就是意味著用戶可以使用到更高效的外部設(shè)備,而且具有多種速度的周邊設(shè)備都可以被連接到USB 2.0的線路上,而且無(wú)需擔(dān)心數(shù)據(jù)傳輸時(shí)發(fā)生瓶頸效應(yīng)。

  1 USB接口電路的硬件設(shè)計(jì)

  1.1 Blackfin532DSP處理器簡(jiǎn)介

  文中DSP處理器選用Blaclkfin532,它是ADI(Analog Device Instruments)公司推出的一款高性能、低功耗定點(diǎn)處理器,內(nèi)核時(shí)鐘頻率可達(dá)400 MHz,具有兩個(gè)40位的算術(shù)邏輯單元(ALU),及4個(gè)8位視頻ALU,兩個(gè)16位硬件乘法器,兩個(gè)40位累加器,是具有較高性價(jià)比的DSP處理器。Blackfin532片上集成了84 kB的RAM,可尋址空間為4 GB,可與多種存儲(chǔ)器實(shí)現(xiàn)無(wú)縫連接。此外,片上集成了多個(gè)外設(shè)接口,具體包括1個(gè)UART口,1個(gè)SPI口,2個(gè)串行口(Sports),4個(gè)通用定時(shí)器,1個(gè)實(shí)時(shí)時(shí)鐘,1個(gè)看門(mén)狗定時(shí)器,1個(gè)并行外設(shè)接口等。

  1.2 Netchip2272簡(jiǎn)介

  文中USB接口芯片選用了Netchip2272。它在片上集成了USB收發(fā)模塊,串行接口引擎(SIE),USB協(xié)議控制器,端點(diǎn)數(shù)據(jù)緩沖區(qū),本地總線接口模塊等。Netchip2272具有如下特點(diǎn)

 ?。?)支持全速/高速數(shù)據(jù)傳輸模式。

 ?。?)具有3個(gè)可配置的物理端點(diǎn),及30個(gè)邏輯端點(diǎn)。

 ?。?)片上集成了3 kB的數(shù)據(jù)緩沖區(qū),支持雙緩沖模式。

 ?。?)可方便地與通用微處理器進(jìn)行連接。

Netchip2272內(nèi)部結(jié)構(gòu)方框圖

  點(diǎn)擊看原圖

  在Blackfin533的EZ-KIT開(kāi)發(fā)板中也采用了Blackfin533和Netchip2272實(shí)現(xiàn)USB接口電路,但EZ-KIT開(kāi)發(fā)板中使用了設(shè)備管理器等,使得程序變得較大,在Blackfin533和Netchip2272之外,需要大約8 MB的存儲(chǔ)空間來(lái)存放部分程序和支持程序運(yùn)行時(shí)對(duì)存儲(chǔ)空間的要求,這就需要在外部添加一塊SDRAM。同時(shí),在EZ-KIT開(kāi)發(fā)板的例程中只提供了USB接口電路的基于設(shè)備管理器的頂層源代碼,對(duì)于Blackfin533如何控制Netehip2272實(shí)現(xiàn)設(shè)備的枚舉和數(shù)據(jù)傳輸則沒(méi)有提供底層的源代碼,這些都使得開(kāi)發(fā)板中提供的USB接口電路方案,在實(shí)際應(yīng)用中不方便。

  1.3 USB接口電路的原理

  USB接口電路的硬件連接原理圖如圖2所示,其中D0~D15是Blackfin532和Netchip2272的數(shù)據(jù)線,A1~A5是地址線,PF10和PF11是Black-tln532的PF(Programmable Flags)口的第10、ll管腳,分別用作Netehip2272的中斷輸入管腳和復(fù)位控制管腳,ASMl是Blacktin532的異步存儲(chǔ)塊1的片選信號(hào)用作Netehip2272的片選信號(hào),IOW,IOR是Blackfin532的寫(xiě)、讀選通輸出信號(hào)用作Netchip2272的寫(xiě)選通和讀選通信號(hào)。IRQ全稱為Interrupt Request,即是“中斷請(qǐng)求”的意思(以下使用IRQ稱呼)。IRQ的作用就是在我們所用的電腦中,執(zhí)行硬件中斷請(qǐng)求的動(dòng)作,用來(lái)停止其相關(guān)硬件的工作狀態(tài),比如我們?cè)诖蛴∫环輬D片,在打印結(jié)束時(shí)就需要由系統(tǒng)對(duì)打印機(jī)提出相應(yīng)的中斷請(qǐng)求,來(lái)以此結(jié)束這個(gè)打印的操作。在每臺(tái)電腦的系統(tǒng)中,是由一個(gè)中斷控制器8259或是8259A的芯片(現(xiàn)在此芯片大都集成到其它的芯片內(nèi))來(lái)控制系統(tǒng)中每個(gè)硬件的中斷控制。目前共有16組IRQ,去掉其中用來(lái)作橋接的一組IRQ,實(shí)際上只有15組IRQ可供硬件調(diào)用。

USB接口電路的硬件連接原理圖

  Blackfin532和Netchip2272的數(shù)據(jù)交換采用中斷驅(qū)動(dòng)方式,當(dāng)2272發(fā)生了特定的某些事件如收到主機(jī)發(fā)送的Setup包,收到主機(jī)發(fā)送的數(shù)據(jù)包等,需要Blackfin 532對(duì)事件進(jìn)行處理時(shí),2272在其IRQ管腳產(chǎn)生1個(gè)低電平,與它相連接的PF10管腳在檢測(cè)到此低電平之后。在DSP內(nèi)部產(chǎn)生中斷,DSP在中斷處理函數(shù)內(nèi)部讀取2272相關(guān)寄存器的值,并根據(jù)這些寄存器的值對(duì)發(fā)生的事件作出相應(yīng)的處理。

  2 USB接口電路的軟件設(shè)計(jì)

  接口電路的軟件設(shè)計(jì)包括固件程序和PC端的驅(qū)動(dòng)程序。固件程序的設(shè)計(jì)需要對(duì)硬件電路和USB的通信協(xié)議比較熟悉,因而開(kāi)發(fā)起來(lái)難度比較大,這里對(duì)固件程序的開(kāi)發(fā)作以介紹。

  2.1 固件程序

  設(shè)備的固件程序是指運(yùn)行在設(shè)備端CPU中的程序,它主要用來(lái)完成對(duì)接收到的數(shù)據(jù)包的類型,內(nèi)容進(jìn)行識(shí)別和分析,并在分析的基礎(chǔ)上對(duì)主機(jī)的請(qǐng)求做出相應(yīng)的處理,完成設(shè)備的枚舉,讀取主機(jī)發(fā)送的數(shù)據(jù)和向主機(jī)發(fā)送數(shù)據(jù),從而實(shí)現(xiàn)和主機(jī)之間的數(shù)據(jù)交換。固件程序的流程圖如圖3所示。

固件程序的流程圖

  固件程序主要包括初始化和中斷服務(wù)程序兩部分;

  2.1.1 初始化

  初始化程序用以對(duì)Blackfin532和Netchip2272進(jìn)行初始化設(shè)置。

  (1)對(duì)Blaekfin532進(jìn)行軟復(fù)位,對(duì)PLL(Phase Locked Loop),EBIU(External Bus InteRFace Unit),PF口進(jìn)行設(shè)置,以及使能PF10引起的中斷。

 ?。?)對(duì)Netchip2272進(jìn)行軟復(fù)位,對(duì)本地總線控制寄存器(LOCCTL,LOCCTL1),USB控制寄存器(USB_CTL0,USBCTL1),端點(diǎn)0的寄存器進(jìn)行設(shè)置,在中斷使能寄存器(IRQENDO,IRQENBl)中使能相應(yīng)的中斷。

  2.1.2 中斷服務(wù)程序

  中斷服務(wù)程序主要是用來(lái)處理主機(jī)的Setup標(biāo)準(zhǔn)請(qǐng)求,將主機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù)讀到Blacldin532中和將Blackfin532中的數(shù)據(jù)發(fā)送給主機(jī)。

  主機(jī)要和USB設(shè)備進(jìn)行數(shù)據(jù)交換首先要正確的識(shí)別USB設(shè)備,這需要經(jīng)過(guò)一個(gè)枚舉過(guò)程,這個(gè)過(guò)程主要通過(guò)主機(jī)向設(shè)備發(fā)送Setup請(qǐng)求,設(shè)備對(duì)該請(qǐng)求進(jìn)行響應(yīng)來(lái)完成。

 ?。?)USB設(shè)備加電,連接到主機(jī)的—個(gè)集線器端口。

  (2)主機(jī)檢測(cè)到新設(shè)備連接后,總線復(fù)位。

 ?。?)主機(jī)使用默認(rèn)地址(地址O)讀取設(shè)備描述符。

 ?。?)主機(jī)給設(shè)備分配一個(gè)地址,在以后的通信里設(shè)備就只對(duì)這個(gè)地址的信息作出應(yīng)答。

  (5)主機(jī)從新的地址獲取設(shè)備描述符。

  (6)主機(jī)讀取配置描述符。

  (7)主機(jī)讀取配置描述符集合,主機(jī)除了讀取配置描述符之外,還要讀取接口描述符及端點(diǎn)描述符。

 ?。?)主機(jī)設(shè)置設(shè)備的配置。

  在中斷服務(wù)程序中首先判斷是何種類型的中斷,如果是Setup請(qǐng)求中斷,則調(diào)用函數(shù)setup_handler()進(jìn)行處理,函數(shù)的參數(shù)為設(shè)備接收到的Setup數(shù)據(jù)包的第3~第8 bit(Setup~Setup)。在setup_handler()函數(shù)中根據(jù)Setup數(shù)據(jù)包的內(nèi)容跳轉(zhuǎn)至相應(yīng)的分支,對(duì)Setup請(qǐng)求進(jìn)行響應(yīng)。捕獲的部分?jǐn)?shù)據(jù)如圖4所示。

捕獲的部分?jǐn)?shù)據(jù)

  Bushound5.0只捕獲到了設(shè)備枚舉過(guò)程中主機(jī)發(fā)出獲取配置描述符請(qǐng)求及之后的數(shù)據(jù),圖中的數(shù)據(jù)是主機(jī)發(fā)出獲取配置描述符請(qǐng)求到主機(jī)發(fā)出設(shè)置配置請(qǐng)求之間的數(shù)據(jù)。

  USB設(shè)備和主機(jī)之間的數(shù)據(jù)交換。當(dāng)Netchip2272接收到主機(jī)發(fā)送的數(shù)據(jù)包之后,就會(huì)產(chǎn)生一個(gè)中斷信號(hào)給Blackfin532,Blackfin532在中斷服務(wù)程序中查詢相應(yīng)的寄存器得知接收到數(shù)據(jù)包之后,直接將接收到的數(shù)據(jù)包讀到Blackfin532中。USB設(shè)備需要向主機(jī)發(fā)送數(shù)據(jù)時(shí),先將需要發(fā)送的數(shù)據(jù)放到輸入端點(diǎn)的Buffer中,當(dāng)主機(jī)向相應(yīng)的輸入端點(diǎn)發(fā)送In Token時(shí),Buffe中的數(shù)據(jù)包就返回給了主機(jī),數(shù)據(jù)包發(fā)送成功后Netehip2272會(huì)產(chǎn)生一個(gè)中斷信號(hào)給Blackfin532,在中斷處理函數(shù)中將全局變量Tx_data_flag的相應(yīng)位置1,數(shù)據(jù)包發(fā)送成功。

  2.2 驅(qū)動(dòng)程序

  驅(qū)動(dòng)程序編寫(xiě)是復(fù)雜的,選用Jungo的WindowsDriver,在Windows Driver檢測(cè)到枚舉成功的設(shè)備之后,輸入設(shè)備的廠商ID(VID)和產(chǎn)品ID(PID),即可生成一個(gè)inf文件,將設(shè)備的PID和VID與設(shè)備的驅(qū)動(dòng)程序綁定在一起,當(dāng)設(shè)備通過(guò)設(shè)備描述符將VID,PID傳送給主機(jī)之后,主機(jī)就可以據(jù)此找到設(shè)備的驅(qū)動(dòng)程序了。

  3 實(shí)驗(yàn)結(jié)果及分析

  設(shè)備枚舉成功之后,利用BusView觀察到的設(shè)備的配置情況如圖5所示。

利用BusView觀察到的設(shè)備的配置情況

  USB設(shè)備一共有6個(gè)端點(diǎn),這里僅列出其中兩個(gè)端點(diǎn)的描述符,其他的和這兩個(gè)類似。BusView顯示的設(shè)備配置情況和固件程序中對(duì)設(shè)備的配置情況完全一致,這表明設(shè)備的枚舉過(guò)程是正確的。

  通過(guò)使USB設(shè)備循環(huán)的向主機(jī)發(fā)送數(shù)據(jù)來(lái)檢驗(yàn)USB輸入到主機(jī)方向的數(shù)據(jù)傳輸,利用Bushound5.0捕獲的部分?jǐn)?shù)據(jù)如圖6所示。圖中的數(shù)據(jù)顯示USB設(shè)備循環(huán)發(fā)送的數(shù)據(jù)是00 01 02 03 04 05 06 07 08 09,在Windows Driver中對(duì)相應(yīng)的管道進(jìn)行監(jiān)聽(tīng),收到的數(shù)據(jù)如圖7所示。實(shí)驗(yàn)結(jié)果顯示數(shù)據(jù)傳輸完全正確。對(duì)于主機(jī)輸出到USB設(shè)備方向的數(shù)據(jù)傳輸,進(jìn)行了檢驗(yàn),數(shù)據(jù)傳輸也完全正確。

利用Bushound5

在Windows Driver中對(duì)相應(yīng)的管道進(jìn)行監(jiān)聽(tīng),收到的數(shù)據(jù)

 

  4 結(jié)束語(yǔ)

  基于Blackfin532和Netchip2272的USB接口電路具有數(shù)據(jù)傳輸快速、可靠、接口電路簡(jiǎn)單、固件程序的可移植性強(qiáng)等優(yōu)點(diǎn),具有良好的實(shí)用價(jià)值和應(yīng)用前景。


  

參考文獻(xiàn):

[1]. ALU datasheet http://m.58mhw.cn/datasheet/ALU_2089372.html.
[2]. D15 datasheet http://m.58mhw.cn/datasheet/D15_1092218.html.
[3]. ASMl datasheet http://m.58mhw.cn/datasheet/ASMl_2308261.html.
[4]. 8259A datasheet http://m.58mhw.cn/datasheet/8259A_961608.html.


關(guān)鍵詞:USBUSB接口接口

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買(mǎi)家服務(wù):
賣(mài)家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫(kù)提出的寶貴意見(jiàn),您的參與是維庫(kù)提升服務(wù)的動(dòng)力!意見(jiàn)一經(jīng)采納,將有感恩紅包奉上哦!