<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > DSP核信號(hào)采集系統(tǒng)通訊接口設(shè)計(jì)

          DSP核信號(hào)采集系統(tǒng)通訊接口設(shè)計(jì)

          作者: 時(shí)間:2010-03-18 來源:網(wǎng)絡(luò) 收藏
          0.引言

            隨著數(shù)字處理技術(shù)理論的不斷發(fā)展,數(shù)字處理器的發(fā)展也是日新月異。不僅執(zhí) 行指令速度越來越快,而且其功耗也越來越低。許多儀器或檢測設(shè)備都不約而同地將 應(yīng)用到那些數(shù)據(jù)量龐大而且需實(shí)時(shí)傳送數(shù)據(jù)的中。核數(shù)據(jù)也不例外,利用 可以實(shí)時(shí)有效地處理的信號(hào),并將處理數(shù)據(jù)發(fā)送至上位機(jī)進(jìn)行進(jìn)一步處理。通常 數(shù)據(jù)下位機(jī)與上位機(jī)的采用串口方式,這種方式不僅協(xié)議簡單,而且連接方便。 但是這種方式的數(shù)據(jù)傳送速率不高,而USB 總線具有方便快捷、支持即插即用、可實(shí) 現(xiàn)高速數(shù)據(jù)等優(yōu)點(diǎn),在很多領(lǐng)域得到廣泛應(yīng)用。USB 總線在USB1.1 協(xié)議下傳輸速 率可達(dá)12Mbps ,USB2.0 協(xié)議下可達(dá)480Mbps ,完全可以滿足目前的數(shù)據(jù)采集控制系統(tǒng)對于 數(shù)據(jù)實(shí)時(shí)傳輸速率越來越高的要求。

          本文引用地址:http://www.ex-cimer.com/article/163204.htm

            因此在本系統(tǒng)中其方式采用USB(Universal Serial Bus)總線方式。 USB 控制芯片采用Cypress 公司EZ-USB SX2 系列的CY7C68001 控制芯片, 選用TI 公司的定點(diǎn)DSP 芯片TMS320VC5502。

            1.CY7C68001USB 控制芯片介紹

            CY7C68001 是由美國Cypress 公司開發(fā)的高速USB 芯片,支持USB2.0 協(xié)議。其內(nèi)部 集成有USB 收發(fā)器(物理層)、USB 串行接口引擎SIE(鏈路層,實(shí)現(xiàn)底層通信協(xié)議)、4KB的FIFO 以及電壓調(diào)節(jié)器、鎖相環(huán);可工作于全速(12Mb/s)和高速(480Mb/s)兩種傳輸模式, 支持8 位和16 位數(shù)據(jù)總線方式,具有同步和異步的FIFO 接口。CY7C68001 被用來與DSP、 ASIC、FPGA 等控制器連接實(shí)現(xiàn)USB 的功能,其內(nèi)部不含微控制器。同時(shí)CY7C68001 提 供4 種傳輸方式(控制傳輸、中斷傳輸、批量傳輸和同步傳輸),可滿足用戶對各種傳輸方 式的要求。由于該控制芯片內(nèi)不含微控制器,USB 的應(yīng)用層協(xié)議應(yīng)該由DSP 編程實(shí)現(xiàn),USB 固件的加載必須靠DSP 控制CY7C68001 完成。

            2.通訊接口系統(tǒng)硬件

            整個(gè)采集系統(tǒng)包括的部分有傳感器信號(hào)調(diào)理電路、A/D 轉(zhuǎn)換電路、FIFO 數(shù)據(jù)緩沖單元、 DSP 控制器、FLASH 程序存儲(chǔ)單元、CPLD 邏輯控制單元、與上位機(jī)連接的USB 通訊單元。 其中與PC 機(jī)通訊的USB 單元硬件接口框圖如下圖所示。




            圖 1 數(shù)據(jù)采集系統(tǒng)與PC 機(jī)通訊的硬件接口框圖

            由圖 1 可以看出,通訊部分主要由CY7C68001 USB 控制器、CPLD 邏輯單元、E2PROM、 TMS320VC5502 組成。由于整個(gè)系統(tǒng)所需的器件數(shù)目較多,由此帶來的邏輯控制較為復(fù)雜, 而DSP 的I/O 接口有限,故在系統(tǒng)中加入了CPLD 邏輯控制單元,用于產(chǎn)生電路中需要的 邏輯狀態(tài)。同時(shí)用CPLD 中還實(shí)現(xiàn)了寄存器功能,這部分寄存器用于表征USB 通訊時(shí)各種 狀態(tài)信息,便于DSP 查詢。

            CY7C68001 USB 控制器與TMS320VC5502 采用EMIF 連接方式,并將USB 控制器中 的存儲(chǔ)器配置到CE1 空間。同時(shí)采用異步讀寫方式完成TMS320VC5502 與CY7C68001之 間的數(shù)據(jù)和命令交換。系統(tǒng)中E2PROM 的作用是完成USB 控制器的描述表自舉。CY7C68001 控制器的自舉方式有兩種:EEPROM 和微控制器,本系統(tǒng)采用EEPROM 方式。

            3.通訊接口系統(tǒng)軟件

            3.1 主機(jī)端軟件設(shè)計(jì)

            主機(jī)端軟件的功能主要是完成下位機(jī)上傳數(shù)據(jù)的接收、顯示、分析等。由于信號(hào)采集的數(shù)據(jù)量較大,所以在USB 傳輸方式上采用批量傳輸方式。

            主機(jī)端軟件的設(shè)計(jì)包含3 個(gè)方面:

            (1)USB 驅(qū)動(dòng)程序設(shè)計(jì)

            USB 驅(qū)動(dòng)程序的功能主要是實(shí)現(xiàn)USB 發(fā)現(xiàn)、配置、關(guān)閉以及數(shù)據(jù)的傳送接口控制。 USB 設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)是基于WDM (Windows driver model ,驅(qū)動(dòng)程序模型)的。WDM 采用分層驅(qū)動(dòng)程序模型,分為較高級的USB 設(shè)備驅(qū)動(dòng)程序和較低級的USB 函數(shù)層。其中 USB 函數(shù)層由兩部分組成:較高級的通用串行總線模塊(US-BD)和較低級的主控制器驅(qū)動(dòng)程 序模塊(HCD)。在上述USB 分層模塊中,USB 函數(shù)層由操作系統(tǒng)提供,負(fù)責(zé)管理USB 設(shè) 備驅(qū)動(dòng)程序和USB 控制器之間的通信、加載及卸載USB 驅(qū)動(dòng)程序,與USB 設(shè)備通用端點(diǎn) 建立通信來執(zhí)行設(shè)備配置、數(shù)據(jù)與USB 協(xié)議框架和打包格式的雙向轉(zhuǎn)換任務(wù)。

            (2)安裝USB 的信息文件(.inf)

            這一步用于將驅(qū)動(dòng)程序綁定到特定設(shè)備的Verdor ID (VID) 和Product ID( PID)。當(dāng)USB 設(shè)備插入計(jì)算機(jī)時(shí),計(jì)算機(jī)檢測到設(shè)備插入后自動(dòng)發(fā)出查詢請求;USB 設(shè)備回應(yīng)該請求, 并送出設(shè)備的VID /PID。計(jì)算機(jī)根據(jù)這兩個(gè)ID 裝載相應(yīng)設(shè)備驅(qū)動(dòng)程序,完成枚舉。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();