當(dāng)前位置:首頁 > 模擬 > 模擬
[導(dǎo)讀]基于Blackfin532和Netchip2272的USB接口電路設(shè)計方案。該方案具有硬件接口電路簡單、固件程序可移植性強(qiáng)等優(yōu)點。文中對USB接口電路的原理進(jìn)行了說明,并給出了硬件連接的原理圖,同時還對固件程序的開發(fā)進(jìn)行了介紹,對實驗結(jié)果進(jìn)行分析,驗證了方案的可行性。

USB(Universial Serial Bus)是一種通用總線系統(tǒng),由于它具有支持熱插拔、數(shù)據(jù)傳輸快速、性能可靠、價格較低等優(yōu)點,已成為應(yīng)用最廣泛的PC機(jī)外設(shè)擴(kuò)展接口之一,它是實現(xiàn)電子系統(tǒng)和PC機(jī)之間進(jìn)行數(shù)據(jù)傳輸?shù)睦硐虢涌??;谏鲜龇治觯岢隽嘶贐lackfin532和Netc-hip2272的USB接口電路設(shè)計方案。

1 USB接口電路的硬件設(shè)計
1.1 Blackfin532DSP處理器簡介

    文中DSP處理器選用Blaclkfin532,它是ADI(Analog Device Instruments)公司推出的一款高性能、低功耗定點處理器,內(nèi)核時鐘頻率最高可達(dá)400 MHz,具有兩個40位的算術(shù)邏輯單元(ALU),及4個8位視頻ALU,兩個16位硬件乘法器,兩個40位累加器,是具有較高性價比的DSP處理器。Blackfin532片上集成了84 kB的RAM,可尋址空間為4 GB,可與多種存儲器實現(xiàn)無縫連接。此外,片上集成了多個外設(shè)接口,具體包括1個UART口,1個SPI口,2個串行口(Sports),4個通用定時器,1個實時時鐘,1個看門狗定時器,1個并行外設(shè)接口等。
1.2 Netchip2272簡介
    文中USB接口芯片選用了Netchip2272。它在片上集成了USB收發(fā)模塊,串行接口引擎(SIE),USB協(xié)議控制器,端點數(shù)據(jù)緩沖區(qū),本地總線接口模塊等。同時還集成了大量的寄存器,使得對它的操作變得簡單。Netchip2272具有如下特點
    (1)支持全速/高速數(shù)據(jù)傳輸模式。
    (2)具有3個可配置的物理端點,及30個邏輯端點。
    (3)片上集成了3 kB的數(shù)據(jù)緩沖區(qū),支持雙緩沖模式。
    (4)可方便地與通用微處理器進(jìn)行連接。


    在Blackfin533的EZ-KIT開發(fā)板中也采用了Blackfin533和Netchip2272實現(xiàn)USB接口電路,但EZ-KIT開發(fā)板中使用了設(shè)備管理器等,使得程序變得較大,在Blackfin533和Netchip2272之外,需要大約8 MB的存儲空間來存放部分程序和支持程序運行時對存儲空間的要求,這就需要在外部添加一塊SDRAM。同時,在EZ-KIT開發(fā)板的例程中只提供了USB接口電路的基于設(shè)備管理器的頂層源代碼,對于Blackfin533如何控制Netehip2272實現(xiàn)設(shè)備的枚舉和數(shù)據(jù)傳輸則沒有提供底層的源代碼,這些都使得開發(fā)板中提供的USB接口電路方案,在實際應(yīng)用中不方便。文中所提出的USB接口電路方案中則沒有使用設(shè)備管理器,這使得程序比例程中的程序要小得多,且不需要使用SDRAM,從而使得硬件電路變得
更加簡單。由于沒有使用設(shè)備管理器且在程序編寫過程中采用了模塊化的設(shè)計方法,固件程序的可移植性增強(qiá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的異步存儲塊1的片選信號用作Netehip2272的片選信號,IOW,IOR是Blackfin532的寫、讀選通輸出信號用作Netchip2272的寫選通和讀選通信號。IRQ是Netehip2272的中斷輸出信號,RESET是它的復(fù)位輸入信號,CS是它的片選信號,D+,D-是USB總線的差分?jǐn)?shù)據(jù)線,VCC和GND分別是它的電源線和地線。


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

2 USB接口電路的軟件設(shè)計
   
接口電路的軟件設(shè)計包括固件程序和PC端的驅(qū)動程序。固件程序的設(shè)計需要對硬件電路和USB的通信協(xié)議比較熟悉,因而開發(fā)起來難度比較大,這里對固件程序的開發(fā)作以介紹。
2.1 固件程序
    設(shè)備的固件程序是指運行在設(shè)備端CPU中的程序,它主要用來完成對接收到的數(shù)據(jù)包的類型,內(nèi)容進(jìn)行識別和分析,并在分析的基礎(chǔ)上對主機(jī)的請求做出相應(yīng)的處理,完成設(shè)備的枚舉,讀取主機(jī)發(fā)送的數(shù)據(jù)和向主機(jī)發(fā)送數(shù)據(jù),從而實現(xiàn)和主機(jī)之間的數(shù)據(jù)交換。固件程序的流程圖如圖3所示。


    固件程序主要包括初始化和中斷服務(wù)程序兩部分;
2.1.1 初始化
    初始化程序用以對Blackfin532和Netchip2272進(jìn)行初始化設(shè)置。
    (1)對Blaekfin532進(jìn)行軟復(fù)位,對PLL(Phase Locked Loop),EBIU(External Bus Interface Unit),PF口進(jìn)行設(shè)置,以及使能PF10引起的中斷。
    (2)對Netchip2272進(jìn)行軟復(fù)位,對本地總線控制寄存器(LOCCTL,LOCCTL1),USB控制寄存器(USB_CTL0,USBCTL1),端點0的寄存器進(jìn)行設(shè)置,在中斷使能寄存器(IRQENDO,IRQENBl)中使能相應(yīng)的中斷。
2.1.2 中斷服務(wù)程序
    中斷服務(wù)程序主要是用來處理主機(jī)的Setup標(biāo)準(zhǔn)請求,將主機(jī)發(fā)送過來的數(shù)據(jù)讀到Blacldin532中和將Blackfin532中的數(shù)據(jù)發(fā)送給主機(jī)。
主機(jī)要和USB設(shè)備進(jìn)行數(shù)據(jù)交換首先要正確的識別USB設(shè)備,這需要經(jīng)過一個枚舉過程,這個過程主要通過主機(jī)向設(shè)備發(fā)送Setup請求,設(shè)備對該請求進(jìn)行響應(yīng)來完成。
    (1)USB設(shè)備加電,連接到主機(jī)的—個集線器端口。
    (2)主機(jī)檢測到新設(shè)備連接后,總線復(fù)位。
    (3)主機(jī)使用默認(rèn)地址(地址O)讀取設(shè)備描述符。
    (4)主機(jī)給設(shè)備分配一個地址,在以后的通信里設(shè)備就只對這個地址的信息作出應(yīng)答。
    (5)主機(jī)從新的地址獲取設(shè)備描述符。
    (6)主機(jī)讀取配置描述符。
    (7)主機(jī)讀取配置描述符集合,主機(jī)除了讀取配置描述符之外,還要讀取接口描述符及端點描述符。
    (8)主機(jī)設(shè)置設(shè)備的配置。
    在中斷服務(wù)程序中首先判斷是何種類型的中斷,如果是Setup請求中斷,則調(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)的分支,對Setup請求進(jìn)行響應(yīng)。使用軟件Bushound5.0對設(shè)備的枚舉過程進(jìn)行觀察,捕獲的部分?jǐn)?shù)據(jù)如圖4所示。


    Bushound5.0只捕獲到了設(shè)備枚舉過程中主機(jī)發(fā)出獲取配置描述符請求及之后的數(shù)據(jù),圖中的數(shù)據(jù)是主機(jī)發(fā)出獲取配置描述符請求到主機(jī)發(fā)出設(shè)置配置請求之間的數(shù)據(jù)。
    USB設(shè)備和主機(jī)之間的數(shù)據(jù)交換。當(dāng)Netchip2272接收到主機(jī)發(fā)送的數(shù)據(jù)包之后,就會產(chǎn)生一個中斷信號給Blackfin532,Blackfin532在中斷服務(wù)程序中查詢相應(yīng)的寄存器得知接收到數(shù)據(jù)包之后,直接將接收到的數(shù)據(jù)包讀到Blackfin532中。USB設(shè)備需要向主機(jī)發(fā)送數(shù)據(jù)時,先將需要發(fā)送的數(shù)據(jù)放到輸入端點的Buffer中,當(dāng)主機(jī)向相應(yīng)的輸入端點發(fā)送In Token時,Buffe中的數(shù)據(jù)包就返回給了主機(jī),數(shù)據(jù)包發(fā)送成功后Netehip2272會產(chǎn)生一個中斷信號給Blackfin532,在中斷處理函數(shù)中將全局變量Tx_data_flag的相應(yīng)位置1,數(shù)據(jù)包發(fā)送成功。
2.2 驅(qū)動程序
    驅(qū)動程序編寫是復(fù)雜的,選用Jungo的WindowsDriver,在Windows Driver檢測到枚舉成功的設(shè)備之后,輸入設(shè)備的廠商ID(VID)和產(chǎn)品ID(PID),即可生成一個inf文件,將設(shè)備的PID和VID與設(shè)備的驅(qū)動程序綁定在一起,當(dāng)設(shè)備通過設(shè)備描述符將VID,PID傳送給主機(jī)之后,主機(jī)就可以據(jù)此找到設(shè)備的驅(qū)動程序了。

3 實驗結(jié)果及分析
    設(shè)備枚舉成功之后,利用BusView觀察到的設(shè)備的配置情況如圖5所示。


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


    通過使USB設(shè)備循環(huán)的向主機(jī)發(fā)送數(shù)據(jù)來檢驗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中對相應(yīng)的管道進(jìn)行監(jiān)聽,收到的數(shù)據(jù)如圖7所示。實驗結(jié)果顯示數(shù)據(jù)傳輸完全正確。對于主機(jī)輸出到USB設(shè)備方向的數(shù)據(jù)傳輸,進(jìn)行了檢驗,數(shù)據(jù)傳輸也完全正確。這表明基于Blackfin532和Netc-hip2272的USB接口電路的方案是可行的。

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

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

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

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

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

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

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

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

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

關(guān)鍵字: 騰訊 編碼器 CPU

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

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

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

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

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

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

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

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

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

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉