<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > DSP應用設計關(guān)鍵之接口設計(一)

DSP應用設計關(guān)鍵之接口設計(一)

作者: 時(shí)間:2012-04-03 來(lái)源:網(wǎng)絡(luò ) 收藏

一、基于的USB

本文引用地址:http://dyxdggzs.com/article/149299.htm

  1 引言

  通過(guò) 處理的數據往往要傳輸給PC 機進(jìn)行存儲和再處理,那么就必須解決 與 PC 機之間的高速通信問(wèn)題。本方案以德州儀器(TI)的C5000 系列DSP 芯片TMS320VC5416為微處理器,利用Cypress公司提供的USB2.0芯片CY7C68001 實(shí)現了USB2.0 從機,從而使PC機與DSP 通過(guò)USB2.0 接口實(shí)現高速雙向地傳輸數據。

  2 TMS320VC5416 與CY7C68001 EZUSBSX2硬件接口設計

  系統方案采用PC機作為上位機,負責USB總線(xiàn)上檢測到設備接入并進(jìn)行枚舉、識別的過(guò)程,并且可以通過(guò)在PC機上運行程序來(lái)控制數據的傳輸。USB芯片作為USB設備端,連接DSP與上位機的數據交換。DSP用于實(shí)現USB協(xié)議,通過(guò)DSP編程實(shí)現DSP數據通過(guò)USB接口與PC機通信,且USB芯片的描述符寫(xiě)入及各種命令狀態(tài)的處理均通過(guò)DSP編程實(shí)現。

  TMS320VC5416 是TI 的一款16bit 定點(diǎn)高性能DSP,由于VC5416的功耗低、性能高,其分開(kāi)的指令和數據空間使該芯片具有高度的并行操作能力,在單周期內允許指令和數據同時(shí)存取,再加上高度優(yōu)化的指令集,使得該芯片具有很高的運算速度,同時(shí)該芯片本身具有豐富的片內存儲器資源以及多種片上外設,因此在工程界得到了廣泛的。

  Cypress 公司的CY7C68001 EZ-USB SX2 是一款高性能、使用方便的USB2.0 接口芯片,滿(mǎn)足USB2.0 協(xié)議,可工作在高速(480Mbps)或全速(12Mbps)模式下,提供一個(gè)控制端點(diǎn)用于處理USB設備的請求以及四個(gè)可配置端點(diǎn)用于傳輸控制和數據信號,這四個(gè)端點(diǎn)共享一個(gè)4KB的FIFO空間,具備標準的8位或16位外部主機接口,可無(wú)縫連接多種標準微處理器,比方說(shuō)DSP、ASIC和FPGA等,并可根據需求設置為同步或異步接口,片內集成鎖相環(huán)(PLL),該芯片廣泛于DSL調制解調器、MP3、讀卡器、數碼照機、掃描儀、打印機等設備。

  系統的硬件接口設計如圖1、圖2所示,兩者通過(guò)數據、地址總線(xiàn)以及讀、寫(xiě)信號線(xiàn)等進(jìn)行通信,CY7C68001的片選信號連接至TMS320VC5416 的I/O空間片選信號上,CY7C68001 的FIFO擴展在VC5416 的I/O 空間上。

  

TMS320VC5416 與CY7C68001接口

  

TMS320VC5416 與CY7C68001 EZ-USB SX2硬件接口設計原理圖

  電源部分采用一片1117 將5V 轉為3.3V供給CY7C68001EZ-USB SX2,模擬地與數字地之間采用磁珠連接,復位部分采用RC電路設計,且芯片資料上介紹有典型值100KΩ和0.1μF。

  3 接口操作原理

  CY7C68001 有兩個(gè)外部接口:

  (1) 命令接口:用來(lái)訪(fǎng)問(wèn)CY7C68001 寄存器、Endpoint 0緩沖器,以及描述表。

  (2) FIFO數據接口:用來(lái)訪(fǎng)問(wèn)4個(gè)1K字節的FIFO中的數據。

  這兩個(gè)外部接口均可以通過(guò)同步或異步的方式進(jìn)行訪(fǎng)問(wèn)。

  本設計采用異步的方式進(jìn)行訪(fǎng)問(wèn)。根據圖3 的地址分配,利用TMS320VC5416 的三根高位地址線(xiàn)(A11、A12、A13)連接CY7C68001 的FIFOAD0/1/2,用以選擇FIFO2、FIFO4、FIFO6、FIFO8以及命令接口,其地址表如圖3所示。CY7C68001的地址線(xiàn)FIFOADR[2:0]為100B 時(shí),選中CY7C68001 的命令口(Command)。通過(guò)CY7C68001的命令口,可以訪(fǎng)問(wèn)37個(gè)寄存器、Endpoint 0緩沖器(64個(gè)字節FIFO)和描述表(500個(gè)字節FIFO)等,對這些寄存器進(jìn)行讀寫(xiě)方式采用二次尋址方式,即首先通過(guò)命令口將要尋址的寄存器的子地址和操作類(lèi)型(讀或寫(xiě))寫(xiě)入,然后再通過(guò)命令口將數據讀出或寫(xiě)入相應的寄存器。

  

FIFO 地址表

  寫(xiě)入命令口的內容稱(chēng)為命令字,命令字包含要尋址的寄存器的子地址,或要寫(xiě)入寄存器的數據的高4位或低4位。讀命令口必須要跟在給命令口寫(xiě)讀命令字之后,讀出的為相應寄存器的8位數據。所以,寄存器的寫(xiě)操作由3 個(gè)步驟組成:

  

  4 USB 接口的軟件設計

  USB接口的軟件設計由兩部分組成:一是在PC機Windows中運行USB 2.0 Utility 工具,是一個(gè)Windows 圖形用戶(hù)界面軟件,提供CY7C68001 與Windows 操作系統的接口程序,使得CY7C68001的開(kāi)發(fā)變得簡(jiǎn)單。二是在在DSP中運行嵌入式應用程序代碼,提供硬件的驅動(dòng),用來(lái)管理CY7C68001進(jìn)行不同方式的數據處理,從而實(shí)現USB2.0 傳輸協(xié)議。

  4.1 USB 接口的軟件設計流程

  USB接口的軟件設計,DSP端代碼大致包括DSP芯片初始化(vc5416_init 函數)、USB芯片初始化(sx2_init 函數)、USB芯片配置程序( s x 2 _ s e t u p 函數) 以及USB 芯片數據讀寫(xiě)程序(sx2_processdata 函數),程序流程如圖4 所示。

  DSP芯片初始化(vc5416_init函數)主要負責設置VC5416的工作頻率,配置SWCR以及SWWSR寄存器,另外本應用系統采用一個(gè)GPIO引腳作為68001的復位信號,所以還需要對其進(jìn)行相關(guān)設置。

  

程序流程圖

  USB芯片初始化(sx2_init函數)主要負責清除Buffer緩沖區以及使能VC5416 的外部中斷INT1,待初始化結束后發(fā)出READY中斷,此時(shí)DSP將描述符寫(xiě)入68001,進(jìn)行枚舉過(guò)程,待枚舉通過(guò)后發(fā)出ENUMOK中斷,枚舉方式可以采用外部EEPROM通過(guò)I2C總線(xiàn)上電后從外部導入描述符,也可采用通過(guò)運行DSP程序從DSP導入到68001,本應用系統采用第二種枚舉方式。

  USB芯片配置程序(sx2_setup函數)是在命令通道(0節點(diǎn))收到無(wú)法自動(dòng)處理的上位機請求,68001向VC5416發(fā)出SETUP中斷后執行的程序,此時(shí)VC5416 通過(guò)對SETUP寄存器連續執行八次讀操作流程即可得到8字節請求,系統可以響應該請求或STALL該請求。

  USB 芯片數據讀寫(xiě)程序(sx2_processdata 函數)即PC 機與USB從設備端遵照USB傳輸協(xié)議進(jìn)行數據通信。

  CY7C68001的地址FIFOAD[2:0]為100時(shí),選中CY7C68001的命令接口。對于命令接口的讀寫(xiě)要分兩步進(jìn)行,即在READY有效時(shí),先通過(guò)命令接口寫(xiě)入要尋址寄存器的子地址和操作類(lèi)型(讀或寫(xiě)),之后,在READY再次有效時(shí)分兩次讀寫(xiě)命令接口,即可讀寫(xiě)一個(gè)字節的數據。

  4.2 中斷服務(wù)程序設計要點(diǎn)

  DSP使用一個(gè)外部中斷引腳(INT1)與CY7C68001的INT腳相連,USB總線(xiàn)上產(chǎn)生一系列的活動(dòng),均會(huì )觸發(fā)相應的中斷,一旦中斷產(chǎn)生,DSP 會(huì )從CY7C68001 的Command 口中讀取相應的值,來(lái)判斷產(chǎn)生的是何種中斷。

  CY7C68001 EZ-USB SX2 包括六個(gè)中斷源:SETUP(收到來(lái)自于USB 上位機(PC)發(fā)送過(guò)來(lái)的Set-up 包時(shí)產(chǎn)生的中斷)、EP0BUF(端點(diǎn)0 緩存可用時(shí)產(chǎn)生的中斷)、FLAGS(OUT 端點(diǎn)FIFO的狀態(tài)從空變?yōu)榉强諘r(shí)產(chǎn)生的中斷)、ENUMOK(SX2枚舉完成后產(chǎn)生的中斷)、BUSACTIVITY(SX2檢測到總線(xiàn)活動(dòng)時(shí)產(chǎn)生的中斷)以及READY(SX2上電并且復位完畢后產(chǎn)生的中斷),每一個(gè)中斷源都可以通過(guò)置位或清除INTENABLE寄存器中相應位來(lái)使能或禁止。

  CY7C68001芯片采用中斷緩沖機制,每次只會(huì )有一個(gè)中斷源,其他中斷源只有在上一個(gè)中斷被讀走后才會(huì )發(fā)出新的中斷請求。

  因此,當一個(gè)中斷產(chǎn)生時(shí),INT引腳為低電平狀態(tài),同時(shí)中斷狀態(tài)位會(huì )置入命令接口,在進(jìn)入中斷程序后應先對中斷源進(jìn)行判斷,首先判斷是否是讀寄存器所產(chǎn)生的中斷,如果是則將數據準備好標志位置1然后返回,否則外部PC通過(guò)選通SLRD/SLOE信號從命令接口中讀取中斷狀態(tài)位來(lái)判斷產(chǎn)生的是何種中斷,然后根據中斷源進(jìn)行相應操作,DSP讀取中斷狀態(tài)位后自動(dòng)清除中斷標志位。

  5 結束語(yǔ)

  通過(guò)硬件平臺的搭建和軟件程序的實(shí)現,驗證了該接口電路可以滿(mǎn)足高速信號處理的數據傳輸要求,并具有速度快和可靠性高等優(yōu)點(diǎn)。



關(guān)鍵詞: 設計 接口 關(guān)鍵 DSP 應用

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>