新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 基于Blackfin532和Netchip2272的USB接口設計

        基于Blackfin532和Netchip2272的USB接口設計

        作者: 時間:2010-11-08 來源:網絡 收藏


        的數據交換采用中斷驅動方式,當發生了特定的某些事件如收到主機發送的Setup包,收到主機發送的數據包等,需要 對事件進行處理時,在其IRQ管腳產生1個低電平,與它相連接的PF10管腳在檢測到此低電平之后。在DSP內部產生中斷,DSP在中斷處理函數內部讀取2272相關寄存器的值,并根據這些寄存器的值對發生的事件作出相應的處理,完成USB設備的枚舉和數據的傳輸。

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


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



        關鍵詞: Blackfin Netchip 2272 532

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 镇康县| 政和县| 安龙县| 墨江| 普安县| 丹阳市| 阿拉尔市| 海盐县| 万宁市| 霸州市| 平潭县| 内江市| 天等县| 榆林市| 三穗县| 县级市| 台湾省| 明星| 丘北县| 华蓥市| 三明市| 凉城县| 金塔县| 民权县| 长子县| 古浪县| 当阳市| 崇礼县| 盐源县| 双辽市| 泸定县| 五大连池市| 苗栗市| 瑞昌市| 民丰县| 交口县| 蚌埠市| 江门市| 华坪县| 于田县| 宕昌县|