0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于CY7C68013和MAX115芯片實(shí)現(xiàn)高速同步數(shù)據(jù)采集系統(tǒng)的應(yīng)用方案

電子設(shè)計(jì) ? 來源:電子技術(shù)應(yīng)用 ? 作者:周云鋒,孫書鷹, ? 2021-06-29 17:30 ? 次閱讀

作者:周云鋒,孫書鷹,王宏

USB(Universal Serial Bus)總線是INTEL、NEC、MICROSOFT、IBM等公司聯(lián)合提出的一種新的串行總線接口規(guī)范。為了適應(yīng)高速傳輸?shù)男枰?000年4月,這些公司在原1.1協(xié)議的基礎(chǔ)上制訂了USB2.0傳輸協(xié)議,已超過了目前IEEE1394接口400Mbps的傳輸速度,達(dá)到了480Mbps。USB總線使用簡單,支持即插即用PnP(Plug And Play),一臺(tái)主機(jī)可串連127個(gè)USB設(shè)備。設(shè)備與主機(jī)之間通過輕便、柔性好的USB線纜連接,最長可達(dá)5m,使設(shè)備具有移動(dòng)性,可自由掛接在具有USB接口的運(yùn)行在Windows98/NT平臺(tái)的PC機(jī)上。USB總線已被越來越多的標(biāo)準(zhǔn)外設(shè)和用戶自定義外設(shè)所使用,如鼠標(biāo)、鍵盤、掃描儀、音箱等。

結(jié)合設(shè)備檢測中數(shù)據(jù)采集的實(shí)際需要,設(shè)計(jì)了該高速同步數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)最多可四路同步采樣,單通道采樣速度可達(dá)620ksps,四通道同時(shí)采樣速度可達(dá)180ksps。USB接口控制芯片采用Cypress公司FX2系列中的CY7C68013,通過對(duì)其可編程接口控制邏輯的合理設(shè)計(jì)和芯片內(nèi)部FIFO的有效運(yùn)用,實(shí)現(xiàn)了數(shù)據(jù)的高速連續(xù)采樣和傳輸。

1 基本原理

該采集系統(tǒng)總體框架分三部分:主機(jī)(能支持USB2.0協(xié)議的PC機(jī))、內(nèi)部包含CPU及高速緩存的USB接口控制芯片(CY7C68013)和高速同步采樣芯片(MAX115),如圖1所示。其數(shù)據(jù)傳輸分兩部分:控制信號(hào)傳輸和采集數(shù)據(jù)傳輸??刂菩盘?hào)方向?yàn)橛芍鳈C(jī)到外設(shè),由外設(shè)CPU控制,數(shù)據(jù)量較小;采集到的數(shù)據(jù)由外設(shè)到主機(jī),數(shù)據(jù)量較大。為了保證較高的傳輸速度,不經(jīng)過CPU。系統(tǒng)基本操作過程為:主機(jī)給外設(shè)一個(gè)采樣控制信號(hào),F(xiàn)X2根據(jù)該信號(hào)向A/D轉(zhuǎn)換器送出相應(yīng)控制信號(hào),即采樣模式控制字;之后由A/D轉(zhuǎn)換器自主控制轉(zhuǎn)換,并將各通道采樣數(shù)據(jù)存入其片內(nèi)緩存。一旦轉(zhuǎn)換完成,由A/D的完成位向FX2的可編程控制接口發(fā)讀采樣結(jié)果信號(hào);然后由可編程接口的控制邏輯依次將各通道采樣結(jié)果從A/D的緩存讀入FX2的內(nèi)部FIFO。當(dāng)FIFO容量達(dá)到指定程度后,自動(dòng)將數(shù)據(jù)打包傳送給USB總線。期間所有操作不需要CPU的干預(yù)。采樣過程中接口控制邏輯依次取走批量數(shù)據(jù),在打包傳送時(shí)A/D仍持續(xù)轉(zhuǎn)換,內(nèi)部FIFO也持續(xù)寫入轉(zhuǎn)換結(jié)果。只要內(nèi)部FIFO寫指針和讀指針位置相差達(dá)到指定的值就立即取走數(shù)據(jù)。從而保證了同步連續(xù)高速采集的可靠性。

2 硬件部分

2.1 芯片介紹

CY7C68013屬于Cypress公司的FX2系列產(chǎn)品,它提供了對(duì)USB2.0的完整解決方案。該芯片包括帶8KB片內(nèi)RAM的高速CPU、16位并行地址總線+8位數(shù)據(jù)總線、I2C總線、4KB FIFO存儲(chǔ)器以及通用可編程接口(GPIF)、串行接口引擎(SIE)和USB2.0收發(fā)器。在代碼的編寫上,與8051系列單片機(jī)兼容,且速度是標(biāo)準(zhǔn)8051的3~5倍。

CY7C68013與外設(shè)有兩種接口方式:可編程接口GPIF和Slave FIFOs。

可編程接口GPIF是主機(jī)方式,可以由軟件設(shè)置讀寫控制波形,靈活性很大,幾乎可以對(duì)任何8/16 bit接口的控制器、存儲(chǔ)器和總線進(jìn)行數(shù)據(jù)的主動(dòng)讀寫,使用非常靈活。Slave FIFOs方式是從機(jī)方式,外部控制器可象對(duì)普通FIFO一樣對(duì)FX2的多層緩沖FIFO進(jìn)行讀寫。FX2的Slave FIFOs工作方式可設(shè)為同步或異步;工作時(shí)鐘為內(nèi)部產(chǎn)生或外部輸入可選;其它控制信號(hào)也可靈活地設(shè)置為高有效或低有效。筆者在設(shè)計(jì)中采用主機(jī)方式。

MAX115是美信公司的高速多通道同步采樣芯片。含有兩組4路同步通道,共8個(gè)輸入端。采樣精度為12位,采樣模式由采樣控制字決定,可靈活地在兩組中的1~4個(gè)通道間選擇。采樣時(shí),各通道轉(zhuǎn)換結(jié)果先存入其內(nèi)部相對(duì)應(yīng)的4個(gè)12bit存儲(chǔ)單元,各通道都轉(zhuǎn)換完后再一起取走。

2.2 電路原理及設(shè)計(jì)

考慮CY7C68013與MAX115接口時(shí),采樣模式不同,控制波形有所差別,筆者選擇主機(jī)方式即可編程控制接口(GPIF)。

GPIF是FX2端點(diǎn)FIFO的內(nèi)部控制器。在這種方式下,接口內(nèi)核可產(chǎn)生6個(gè)控制輸出端(CTL0~CTL5)和9根線的地址(GADR[8:0])輸出,同時(shí)可以接收6個(gè)外部輸入(RDY0~RDY5)和2個(gè)內(nèi)部輸入。FX2有4個(gè)波形描述符控制各個(gè)狀態(tài)。這些波形描述符可以動(dòng)態(tài)地配置給任何一個(gè)端點(diǎn)FIFO。例如,一個(gè)波形描述符可以配置為寫FIFO,而另一個(gè)配置為讀FIFO。FX2的固件程序可以把這些描述符配置給四個(gè)FIFO中的任意一個(gè),配置后,GPIF將依據(jù)波形描述符產(chǎn)生相應(yīng)的控制邏輯和握手信號(hào)給外界接口,滿足向FIFO讀寫數(shù)據(jù)的需要。GPIF的數(shù)據(jù)總線既可以是單字節(jié)寬(8位FD[7:0])也可以是雙字節(jié)寬(16位FD[15:0])。每個(gè)波形描述符包含了S0~S6 七個(gè)有效狀態(tài)和一個(gè)空閑狀態(tài)。在每個(gè)有效狀態(tài)對(duì)應(yīng)的時(shí)間段里,經(jīng)過預(yù)先設(shè)置,GPIF可以做以下幾件事情:(1)驅(qū)動(dòng)(使為高或低)或懸浮6個(gè)輸出控制端;(2)采樣或驅(qū)動(dòng)FIFO的數(shù)據(jù)總線;(3)增加GPIF地址總線的值;(4)增加指向當(dāng)前FIFO指針的值;(5)啟動(dòng)GPFIWF(波形描述符)中斷。除此之外,在每個(gè)狀態(tài),GPIF可以對(duì)以下幾個(gè)信號(hào)中任意兩個(gè)進(jìn)行采樣,它們是:(1)RDYX輸入端;(2)FIFO狀態(tài)標(biāo)志位;(3)內(nèi)部RDY標(biāo)志位;(4)傳輸計(jì)數(shù)中止標(biāo)志位。把其中兩個(gè)信號(hào)相與、相或或者相異或,根據(jù)結(jié)果跳轉(zhuǎn)到其它任意一個(gè)狀態(tài)或延遲1~256個(gè)IFCLK時(shí)鐘周期。當(dāng)然也可以根據(jù)輸入端的信號(hào)進(jìn)行跳轉(zhuǎn)或延遲。GPIF波形描述符通常用Cepress公司的GPIF工具(GPIFTOOL)進(jìn)行配置。它是一個(gè)可運(yùn)行于Windows平臺(tái)的應(yīng)用程序,與FX2的開發(fā)包一起發(fā)布。

在這種方式下,所有的讀寫及控制邏輯通過CY7C68013 的GPIF以軟件編程的方式實(shí)現(xiàn),且控制邏輯的變換方便靈活(只需要改變接口的一個(gè)配置寄存器的值)。電路連接如圖2所示。

本數(shù)據(jù)采集系統(tǒng)只用到了兩個(gè)輸出控制CTL0、CTL1和一個(gè)外部輸入RDY0,它們分別接MAX115的CONVST#、WR#和INT#。數(shù)據(jù)總線用雙字節(jié),其中FD0~FD11接MAX115的數(shù)據(jù)輸入端D0~D11,F(xiàn)D12和FD13接控制字輸入端的A2和A3,F(xiàn)D0和FD1復(fù)用做控制字輸入端的A0和A1。MAX115的采樣基準(zhǔn)時(shí)鐘由FX2的輸出時(shí)鐘經(jīng)三分頻得到,為16MHz。對(duì)應(yīng)四種數(shù)據(jù)傳輸方式(八種不同的采樣模式),GPIF的控制及握手信號(hào)波形有所不同。四通道同步采樣的時(shí)序圖如圖3所示。

在第一個(gè)判決點(diǎn),若采樣數(shù)據(jù)已準(zhǔn)備就緒,MAX115傳給GPIF一個(gè)負(fù)脈沖信號(hào)RDY0;根據(jù)此信號(hào),波形按順序轉(zhuǎn)入2、3、4、5狀態(tài),使指向內(nèi)部FIFO的指針在每個(gè)時(shí)鐘上升沿加1,依次讀取四個(gè)數(shù)據(jù),取完數(shù)據(jù)后利用CTL0的上升沿啟動(dòng)下一次采樣。若在狀態(tài)1時(shí)沒有出現(xiàn)負(fù)脈沖,則直接跳轉(zhuǎn)到狀態(tài)6,之后重復(fù)執(zhí)行此波形描述符。

三通道同步采樣時(shí),讀取數(shù)據(jù)的狀態(tài)只需要持續(xù)三次。其它采樣模式控制波形的設(shè)計(jì)依此類推。

2.3 固件程序設(shè)計(jì)

固件程序是指運(yùn)行在設(shè)備CPU中的程序。只有在該程序運(yùn)行時(shí),外設(shè)才能稱之為具有給定功能的外部設(shè)備。固件程序負(fù)責(zé)初始化各硬件單元,重新配置設(shè)備及A/D采樣控制。固件代碼的存儲(chǔ)位置有三種:第一種是存在主機(jī)中,設(shè)備加電后由驅(qū)動(dòng)程序把固件下載到片內(nèi)RAM后執(zhí)行,即“重新枚舉”;第二種方法是把固件代碼固化到一片EEPROM中,外設(shè)加電后由FX2通過I2C總線下載到片內(nèi)RAM后自動(dòng)執(zhí)行;最后一種方法是把程序固化到一片ROM中,使之充當(dāng)外部程序存儲(chǔ)器,連在FX2三總線上。筆者選用第一種方式,這種方式便于系統(tǒng)的調(diào)試和升級(jí)。固件程序框圖如圖4所示。

3 用戶程序和驅(qū)動(dòng)程序

3.1 驅(qū)動(dòng)程序的編寫

該系統(tǒng)需要兩個(gè)驅(qū)動(dòng)程序,即通用驅(qū)動(dòng)和下載固件的驅(qū)動(dòng)。通用驅(qū)動(dòng)完成與外設(shè)和用戶程序的通信及控制;而下載固件的驅(qū)動(dòng)則只負(fù)責(zé)在外設(shè)連接USB總線后把特定的固件程序下載到FX2的RAM中,使FX2的CPU重啟,模擬斷開與USB總線的連接,完成對(duì)外設(shè)的重新設(shè)置。主機(jī)根據(jù)新的設(shè)置安裝通用驅(qū)動(dòng)程序,重新枚舉外設(shè)為一個(gè)新的USB設(shè)備。

通用驅(qū)動(dòng)程序一般不需要重新編寫,用Cypress公司已經(jīng)編好的驅(qū)動(dòng)ezusb.sys;而下載固件的驅(qū)動(dòng)則必須定做,其詳細(xì)操作過程見參考文獻(xiàn)[2]。

3.2 用戶程序的編寫

用戶程序是系統(tǒng)與用戶的接口,它通過通用驅(qū)動(dòng)程序完成對(duì)外設(shè)的控制和通信。在編寫用戶程序時(shí),首先要建立與外設(shè)的連接,然后才能實(shí)施數(shù)據(jù)的傳輸。啟動(dòng)采樣后,為了保證不丟失數(shù)據(jù),用戶程序應(yīng)該建立一個(gè)新的工作線程專門獲取外設(shè)傳來的數(shù)據(jù)。程序中主要用到兩個(gè)API函數(shù):CreateFile()和DeviceIoControl ()。CreateFile()取得設(shè)備句柄后,DeviceIoControl ()根據(jù)該句柄完成數(shù)據(jù)傳輸。程序代碼簡要如下:

hDevice = CreateFile(″\\\\。\\EZUSB-0″)

GENERIC_READ | GENERIC_WRITE

FILE_SHARE_WRITE,

NULL,

OPEN_EXISTING,

FILE_ATTRIBUTE_NORMAL,

NULL);

If (hDevice == INVALID_HANDLE_VALUE)

{

Application-》MessageBoxA(“無法創(chuàng)建設(shè)備,請(qǐng)確認(rèn)設(shè)備是否連上!”,NULL,IDOK);

}

else

{

DeviceIoControl (

hDevice,

IOCTL_EZUSB_BULK_WRITE,

&blkctl,

sizeof(BULK_TRANSFER_CONTROL),

&inBuffer, //定義的數(shù)據(jù)緩沖區(qū)

sizeof(inBuffer),

&nBytes,

NULL);

……

}

程序框圖如圖5所示。

在該高速同步數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)中,CY7C68013芯片靈活的接口和可編程特性簡化了外部硬件的設(shè)計(jì),提高了系統(tǒng)的可靠性,也利于PCB板的制作與調(diào)試。另外,USB設(shè)備的可熱插拔特性使得該系統(tǒng)具有便攜式的特點(diǎn),使用方便,無需關(guān)機(jī)重啟或打開機(jī)箱進(jìn)行安裝。該數(shù)據(jù)采集系統(tǒng)已成功地應(yīng)用于某型。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    452

    文章

    49938

    瀏覽量

    419602
  • 數(shù)據(jù)采集
    +關(guān)注

    關(guān)注

    38

    文章

    5697

    瀏覽量

    113317
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2848

    瀏覽量

    87839
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    求大俠幫忙 CY7C68013 與CPLD通信問題

    現(xiàn)在要用 CY7C68013 USB芯片 和 CPLD 做一個(gè)數(shù)據(jù)采集模塊,68013怎么和CPLD通信呢? CPLD接收AD采集過來的
    發(fā)表于 03-05 09:32

    如何利用MAX115的電網(wǎng)數(shù)據(jù)采集和模/數(shù)轉(zhuǎn)換對(duì)已使用多年的系統(tǒng)進(jìn)行改進(jìn)?

    MAX115的工作原理MAX115的基本操作如何利用MAX115的電網(wǎng)數(shù)據(jù)采集和模/數(shù)轉(zhuǎn)換對(duì)已使用多年的系統(tǒng)進(jìn)行改進(jìn)?
    發(fā)表于 04-08 06:35

    基于CY7C68013高速數(shù)據(jù)傳輸系統(tǒng)該如何去設(shè)計(jì)?

    本文介紹一種基于CY7C68013高速數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)方案。
    發(fā)表于 06-02 06:08

    cy7c68013開發(fā)包及驅(qū)動(dòng)

    本開發(fā)包及數(shù)據(jù)包提供用cy7c68013開發(fā)usb的完整C語言源代碼,可實(shí)現(xiàn)主機(jī)和借口MASTER的控制命令和數(shù)據(jù)的傳輸-the data
    發(fā)表于 04-11 16:54 ?674次下載
    <b class='flag-5'>cy7c68013</b>開發(fā)包及驅(qū)動(dòng)

    基于CY7C68013的USB數(shù)據(jù)采集系統(tǒng)

    本文介紹了高速USB2.0芯片CY7C68013的特點(diǎn)。設(shè)計(jì)出一種主要由CY7C68013與Altera公司EP1C6
    發(fā)表于 09-14 14:33 ?133次下載

    基于USB2.0的同步高速數(shù)據(jù)采集器的設(shè)計(jì)

    摘要:介紹了一種基于USB2.0接口的同步高速數(shù)據(jù)采集的設(shè)計(jì)方案及其軟硬件的設(shè)計(jì)方法,對(duì)Cypress的USB2.0控制芯片
    發(fā)表于 03-24 12:58 ?666次閱讀
    基于USB2.0的<b class='flag-5'>同步</b><b class='flag-5'>高速</b><b class='flag-5'>數(shù)據(jù)采集</b>器的設(shè)計(jì)

    CY7C68013器件中文手冊

    CY7C68013器件中文手冊
    發(fā)表于 01-21 18:30 ?164次下載
    <b class='flag-5'>CY7C68013</b>器件中文手冊

    基于CY7C68013的CCD圖像傳輸系統(tǒng)

    針對(duì)面陣CCD 圖像的特點(diǎn),提出了一種基于CY7C68013 的圖像實(shí)時(shí)傳輸系統(tǒng)。系統(tǒng)從面陣CCD 模塊中直接獲取數(shù)字圖像信號(hào),利用CPLD 控制圖像數(shù)據(jù)的時(shí)序,以
    發(fā)表于 05-17 17:36 ?100次下載
    基于<b class='flag-5'>CY7C68013</b>的CCD圖像傳輸<b class='flag-5'>系統(tǒng)</b>

    基于CY7C68013A的并口轉(zhuǎn)USB口數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

    設(shè)計(jì)了一個(gè)以 CY7C68013A 為接口芯片的并口轉(zhuǎn)USB口的數(shù)據(jù)采集系統(tǒng),討論了CY7C68013A的性能及傳輸方式,給出了該
    發(fā)表于 08-29 14:26 ?0次下載
    基于<b class='flag-5'>CY7C68013</b>A的并口轉(zhuǎn)USB口<b class='flag-5'>數(shù)據(jù)采集</b><b class='flag-5'>系統(tǒng)</b>設(shè)計(jì)

    基于CY7C68013高速數(shù)據(jù)通信接口設(shè)計(jì)

    利用USB2.0接口芯片CY7C68013實(shí)現(xiàn)了語音信號(hào)處理系統(tǒng)中DSP與PC機(jī)的高速通信,簡要介紹了C
    發(fā)表于 09-08 17:59 ?69次下載

    基于USB2.0芯片CY7C68013高速數(shù)據(jù)通信接口設(shè)計(jì)

    利用USB2.0接口芯片CY7C68013實(shí)現(xiàn)了語音信號(hào)處理系統(tǒng)中DSP與PC機(jī)的高速通信,簡要介紹了C
    發(fā)表于 09-21 11:41 ?177次下載

    cy7c68013數(shù)據(jù)手冊

    cy7c68013,有需要的朋友下來看看。
    發(fā)表于 01-22 14:14 ?31次下載

    USB2.0微控制器CY7C68013數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

    USB2.0微控制器CY7C68013數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)
    發(fā)表于 01-22 14:10 ?30次下載

    采用CY7C68013芯片系統(tǒng)固件程序設(shè)計(jì)

    采用CY7C68013芯片系統(tǒng)固件程序設(shè)計(jì)。
    發(fā)表于 01-22 14:10 ?31次下載

    基于CY7C68013A和FPGA的4路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_智丹

    基于CY7C68013A和FPGA的4路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_智丹
    發(fā)表于 01-13 21:40 ?26次下載