當(dāng)前位置:首頁(yè) > 測(cè)試測(cè)量 > 測(cè)試測(cè)量
[導(dǎo)讀] 隨著嵌入式技術(shù)的飛速發(fā)展,對(duì)嵌入式系統(tǒng)的應(yīng)用需求也呈現(xiàn)出不斷增長(zhǎng)的態(tài)勢(shì),因此,嵌入式技術(shù)也相應(yīng)地取得了重要的進(jìn)展,系統(tǒng)設(shè)備不斷向高速化、集成化、低功耗的方向發(fā)展?,F(xiàn)場(chǎng)可編程門陣列FPGA經(jīng)過(guò)近20年的發(fā)展,

 隨著嵌入式技術(shù)的飛速發(fā)展,對(duì)嵌入式系統(tǒng)的應(yīng)用需求也呈現(xiàn)出不斷增長(zhǎng)的態(tài)勢(shì),因此,嵌入式技術(shù)也相應(yīng)地取得了重要的進(jìn)展,系統(tǒng)設(shè)備不斷向高速化、集成化、低功耗的方向發(fā)展?,F(xiàn)場(chǎng)可編程門陣列FPGA經(jīng)過(guò)近20年的發(fā)展,到目前已成為實(shí)現(xiàn)數(shù)字系統(tǒng)的主流平臺(tái)之一。  FPGA具有單片機(jī)和DSP無(wú)法比擬的優(yōu)勢(shì),相對(duì)于單片機(jī)和DSP工作需要依靠其上運(yùn)行的軟件進(jìn)行,F(xiàn)PGA全部的控制邏輯是由延時(shí)更小的硬件來(lái)完成的。

  通用串行總線(USB)是現(xiàn)代數(shù)據(jù)傳輸?shù)陌l(fā)展趨勢(shì),是解決計(jì)算機(jī)與外設(shè)連接瓶頸的有效手段,USB2.O版本在原先的版本基礎(chǔ)上實(shí)現(xiàn)許多技術(shù)上的飛躍與進(jìn)步。USB2.0協(xié)議規(guī)范有以下主要優(yōu)點(diǎn):1)速度快,接口的傳輸速度高達(dá)480Mh/s,遠(yuǎn)大于PCI接口的132 Mb/s的傳輸速度;2)連接簡(jiǎn)單,所有的USB外設(shè)利用通用的電纜可簡(jiǎn)單方便地連入PC機(jī)中,安裝過(guò)程高度自動(dòng)化;3)支持多設(shè)備連接,USB接口支持多個(gè)不同設(shè)備采用“級(jí)聯(lián)”方式來(lái)連接外設(shè)。

  故為了將數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)更加符合高速化和集成化的趨勢(shì),采用了FPGA和USB2.0組合的方案來(lái)進(jìn)行。

  1 數(shù)據(jù)采集系統(tǒng)的框架與硬件設(shè)計(jì)方案

  系統(tǒng)硬件設(shè)計(jì)部分中,在完成系統(tǒng)時(shí)鐘源、電源等必要電路的設(shè)計(jì)基礎(chǔ)上,重點(diǎn)就是完成系統(tǒng)內(nèi)各個(gè)部件的接口電路的設(shè)計(jì),通過(guò)這部分的設(shè)計(jì),基本的硬件平臺(tái)就建立起來(lái)了。系統(tǒng)部件間的硬件電路接口設(shè)計(jì)如圖1所示。



圖1 系統(tǒng)部件間的硬件電路接口設(shè)計(jì)

  A/D芯片在此選用了德州儀器公司的10位串行接口芯片TLV1572,8管腳的SOIC封裝,它外部較少的管腳不僅能夠很方便地實(shí)現(xiàn)與其他器件連接,而且它體積小,可以節(jié)省很多布線資源,如圖2所示。TLV1572的最高采樣速率為1.25 MS/s,其積分非線性誤差I(lǐng)NL<±1LSB,可以采用3 V或5 V的供電方式。



圖2 A/D芯片及周邊電路

  由于大部分USB1.1的芯片都需要微控制器參與數(shù)據(jù)從端點(diǎn)FIFO到應(yīng)用環(huán)境的轉(zhuǎn)移,微控制器在里面扮演了搬運(yùn)者的角色,那么顯然微控制器本身的工作頻率就極大地限制了數(shù)據(jù)傳輸帶寬的進(jìn)一步提高,微控制器將成為制約整個(gè)系統(tǒng)速度提高的瓶頸。

  故在此選用的是Cypress Semiconductor公司的EZ-USBFX2(CY7C68013A)USB2.0芯片,它集成了USB2.0收發(fā)器,串行接口引擎SIE和可編程的外圍接口。該芯片的另一大優(yōu)點(diǎn)就是提供了一種獨(dú)特架構(gòu),使USB接口和應(yīng)用環(huán)境直接共享Slave FIFOs,微控制器無(wú)需參與數(shù)據(jù)傳輸,這樣就極大地提高了系統(tǒng)數(shù)據(jù)傳輸速率,如圖3所示。



圖3 EZ-USB FX2芯片的內(nèi)部結(jié)構(gòu)

  由于FPGA的I/O管腳數(shù)目眾多,它在和A/D芯片及USB2.0芯片相連時(shí),能夠按照優(yōu)化布線資源的方式進(jìn)行PCB布局設(shè)計(jì),具體的連接方法在圖1中已經(jīng)給出。

  2 數(shù)據(jù)采集系統(tǒng)軟件設(shè)計(jì)方案

  FPGA軟件設(shè)計(jì)方案中采用了自頂向下的設(shè)計(jì)方法,運(yùn)用Verilog HDL語(yǔ)言來(lái)設(shè)計(jì)數(shù)字系統(tǒng),分別完成數(shù)字系統(tǒng)內(nèi)部各個(gè)子模塊的設(shè)計(jì)。數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)及模塊間的連接示意圖如圖4所示。



圖4 數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)及模塊間的連接示意圖

  由圖4可見(jiàn),系統(tǒng)主要由3個(gè)模塊組成。它們分別是A/D接口adc.v模塊、USB接口usb.v模塊以及頂層top.v模塊,其中在頂層top.v模塊中,完成了對(duì)其他兩個(gè)模塊的調(diào)用,使它們拼接成為一個(gè)完整的系統(tǒng)。其中鎖相環(huán)PLL_1和PLL_2分別給ade.v模塊和usb.v模塊提供時(shí)鐘源。

  2.1 FPGA控制A/D芯片接口的軟件設(shè)計(jì)

  在adc.v模塊中,需要完成FPGA對(duì)TLV1572的接口邏輯代碼的設(shè)計(jì),其實(shí)質(zhì)就是在TLV1572的時(shí)序分析的基礎(chǔ)上來(lái)設(shè)計(jì)邏輯代碼,使得FPGA能夠按照其時(shí)序要求完成對(duì)A/D芯片的各種控制,包括提供給TLV1572的串行時(shí)鐘信號(hào)信號(hào)ADC_CLK、CS片選信號(hào)ADC_CSn以及從TLV1572中讀取出轉(zhuǎn)換完成的串行數(shù)據(jù)S_DATA。

  TLV1572的時(shí)序圖如圖5所示。



圖5 TLV1572的時(shí)序圖

  從時(shí)序圖可見(jiàn),A/D芯片的轉(zhuǎn)化過(guò)程是在當(dāng)CS為低電平后,由SCLK的上升沿發(fā)起的,輸出的頭六位二進(jìn)制數(shù)字均為“0”,此時(shí)A/D芯片正處于采樣階段,數(shù)字無(wú)效,這六位無(wú)效的二進(jìn)制數(shù)之后,A/D轉(zhuǎn)換完成后的二進(jìn)制數(shù)據(jù)在SCLK的上升沿被送到總線上,這時(shí),作為系統(tǒng)主控制芯片的FPGA應(yīng)當(dāng)去采樣總線上的數(shù)據(jù),得到轉(zhuǎn)換后的結(jié)果。

  2.2 FPGA控制USB2.0芯片的軟件設(shè)計(jì)

  在usb.v模塊中,需要完成FPGA對(duì)CY7C68013A的接口邏輯代碼的設(shè)計(jì)和異步FIFO模塊的設(shè)計(jì)。其中,對(duì)CY7C68013A的接口邏輯代碼主要是完成對(duì)CY7C68013A芯片的端點(diǎn)FIFO的各種控制,包括16位的數(shù)據(jù)信號(hào)FIFO_DATA[15:0]、2位端點(diǎn)FIFO選擇信號(hào)FIFO_ADDR[1:0]、端點(diǎn)FI-FO滿標(biāo)志位信號(hào)FIFO_Full、端點(diǎn)FIFO寫使能信號(hào)FIFO_WR_en。因?yàn)閍dc.v模塊和芯片外部的CY7C68013A工作在不同的時(shí)鐘域內(nèi),故異步FIFO模塊設(shè)計(jì)部分設(shè)計(jì)的目的除了是要完成從ade.v模塊讀取過(guò)來(lái)數(shù)據(jù)的緩沖,另外就是需要解決異步時(shí)鐘域數(shù)據(jù)傳輸可能出現(xiàn)的亞穩(wěn)態(tài)問(wèn)題。

  具體來(lái)說(shuō),F(xiàn)PGA在工作時(shí)需要不斷向CY7C68013A的端點(diǎn)FIFO寫入數(shù)據(jù),而FPGA與CY7C68013A之間的工作模式屬于同步方式,兩者都由PLL _2模塊提供40 MHz的時(shí)鐘信號(hào)進(jìn)行工作,那么它們之間的關(guān)系就是同步Slave FIFO的寫操作,由FPGA向CYTC68013A中寫入數(shù)據(jù)。

  在Verilog HDL程序設(shè)計(jì)中,需要設(shè)計(jì)一個(gè)狀態(tài)機(jī)來(lái)完成同步Slave FIFO寫的時(shí)序,寫時(shí)序如下;1)IDLE:當(dāng)寫事件發(fā)生時(shí),進(jìn)狀態(tài)1;2)狀態(tài)1:使FIFOADR[1:0]指向IN FIFO,進(jìn)狀態(tài)2;3)狀態(tài)2:如果端點(diǎn)FIFO滿,在當(dāng)前狀態(tài)等待,否則進(jìn)狀態(tài)3;4)狀態(tài)3:驅(qū)動(dòng)數(shù)據(jù)到數(shù)據(jù)線上,使SLWR有效,持續(xù)一個(gè)IFCLK周期,進(jìn)狀態(tài)4;5)狀態(tài)4:如需傳輸更多的數(shù),進(jìn)狀態(tài)2,否則進(jìn)入IDLE狀態(tài)。

  該狀態(tài)轉(zhuǎn)換的狀態(tài)圖如圖6所示。



圖6 狀態(tài)轉(zhuǎn)換的狀態(tài)圖

  2.3 FPGA的頂層模塊的設(shè)計(jì)

  由圖4可知,top.v模塊是FPGA整個(gè)系統(tǒng)的頂層模塊,它通過(guò)頂層調(diào)用的方式把a(bǔ)dc.v和usb.v兩個(gè)模塊組合成一個(gè)完整的系統(tǒng),系統(tǒng)與外界進(jìn)行通信是通過(guò)top.v這個(gè)模塊對(duì)外的各個(gè)接口來(lái)實(shí)現(xiàn)的,具體到器件層面,就表現(xiàn)為由top.v文件定義的FPGA的相關(guān)的管腳來(lái)和A/D與USB2.0芯片進(jìn)行數(shù)據(jù)的交換、控制信息以及時(shí)鐘信號(hào)的傳遞。這種自頂向下的設(shè)計(jì)方法,不僅符合人的思維邏輯,也大大地簡(jiǎn)化了大規(guī)模邏輯電路的設(shè)計(jì)工作,使人們從繁瑣的自底向上的底層設(shè)計(jì)中解放出來(lái),以一種系統(tǒng)級(jí)的思維模式設(shè)計(jì)電路。這是自頂向下設(shè)計(jì)方法的巨大優(yōu)勢(shì)之一。頂層top.v模塊是通過(guò)例化的方式來(lái)調(diào)用adc.v模塊和usb.v模塊的以及PLL模塊。

  2.4 USB2.0芯片的固件程序設(shè)計(jì)

  在USB的體系中,無(wú)論是其本身的規(guī)范還是各種廠家所提供的芯片資料,關(guān)于主機(jī)對(duì)USB的檢測(cè)都稱之為枚舉Enumeration(and ReNumer-ation),即枚舉(與重新枚舉)。固件在這發(fā)揮了無(wú)法替代的作用。應(yīng)該說(shuō)所有基于微控制器及其外圍電路的功能設(shè)備的正常工作都離不開(kāi)固件的參與,固件的作用就是輔助硬件,或者說(shuō)是控制硬件來(lái)完成預(yù)期的設(shè)備功能。沒(méi)有固件的參與和控制,硬件設(shè)備只是芯片的簡(jiǎn)單堆砌,無(wú)法實(shí)現(xiàn)預(yù)期的功能。

  CY7C68013A內(nèi)部集成了增強(qiáng)型的8051內(nèi)核,它與8051指令集二進(jìn)制是兼容的,那么就可以選擇匯編或者高級(jí)語(yǔ)言C51來(lái)編寫固件代碼,兩者各有優(yōu)缺點(diǎn),適用的環(huán)境也不同。本設(shè)計(jì)中采用C51來(lái)編寫固件程序,關(guān)于開(kāi)發(fā)C51語(yǔ)言的Keil μVision 2開(kāi)發(fā)編譯環(huán)境在此不再贅述。

  Cypress公司為了簡(jiǎn)化和加速用戶使用CY7C68013A芯片進(jìn)行USB外設(shè)的開(kāi)發(fā)過(guò)程,特別設(shè)計(jì)了一個(gè)完整的固件程序的框架。這個(gè)框架可以執(zhí)行CY7C68013A芯片的初始化、USB標(biāo)準(zhǔn)設(shè)備請(qǐng)求的處理和USB掛起電源管理服務(wù)。用戶只需要提供一個(gè)USB描述符表,添加其他端點(diǎn)接收和發(fā)送數(shù)據(jù)的通信代碼,以及控制外圍電路的程序代碼。

  在Keil μVision 2集成開(kāi)發(fā)環(huán)境下,新建工程后,需要將工程代碼復(fù)制到工程目錄中并添加至工程列表中,開(kāi)發(fā)固件程序需要幾個(gè)重要的文件依次為:1)fw.c,框架程序的代碼。2)periph.c,用戶函數(shù)掛鉤的相關(guān)定義,外圍設(shè)備的控制文件。在上節(jié)中,主程序fw.c調(diào)用的TD_lnit()函數(shù)即在此定義出來(lái)。3)dscr.a51,USB描述符表,上節(jié)中關(guān)于描述符的定義在這個(gè)文件中給出。4)EZUSB.lib,EZ-USB函數(shù)庫(kù)目標(biāo)代碼。5)USBJmpTb.OBJ,EZ-USB中斷向量和跳轉(zhuǎn)表。6)FX2.h,程序運(yùn)行所需要的一些宏定義。7)fx2regs.h,CY7C68013A相關(guān)的寄存器定義及位屏蔽的宏定義。8)syncdly.h,定義了若干延時(shí)函數(shù)供程序調(diào)用。

  3 Modelsim環(huán)境下仿真與結(jié)果

  ModelSim是Model Technology(Mentor Graphics的子公司)的HDL硬件描述語(yǔ)言的仿真軟件,該軟件可以用來(lái)實(shí)現(xiàn)對(duì)設(shè)計(jì)的VBDL、Verilog HDL或是兩種語(yǔ)言混合的程序進(jìn)行仿真,同時(shí)也支持IEEE常見(jiàn)的各種硬件描述語(yǔ)言標(biāo)準(zhǔn)。

  目前需要對(duì)adc.v模塊進(jìn)行功能仿真,以此驗(yàn)證該模塊的功能的正確性。仿真測(cè)試的方法就是給adc.v這個(gè)模塊的s_data數(shù)據(jù)輸入端,即A/D芯片的串行數(shù)據(jù)的輸出端,加載一組測(cè)試數(shù)據(jù),每16個(gè)為一組測(cè)試數(shù)據(jù),模擬在真實(shí)環(huán)境下從A/D芯片讀取出來(lái)的二進(jìn)制數(shù)據(jù),然后在adc.v模塊的輸出端,即并行的16位寬的data_out端口觀察是否與給定的測(cè)試數(shù)據(jù)相一致。假如一致,則模塊的功能是正確的。假如有個(gè)別位的數(shù)據(jù)不一致,則需要檢查模塊的代碼是否存在問(wèn)題。在編輯器中編寫Testbench程序如下(非關(guān)鍵的程序限于篇幅,就省略了):



  由上面的程序可以看見(jiàn),給s_data端加載的一組16位二進(jìn)制數(shù)據(jù)為“0000-0011_0110_1011”。在ModelSim環(huán)境下,將待測(cè)試的文件與該測(cè)試文件放在同一個(gè)工程下,設(shè)置好相關(guān)參數(shù)后運(yùn)行仿真可以得到如下仿真波形,如圖7所示。



圖7 仿真波形

  由圖7可見(jiàn),從data_out這個(gè)并行的數(shù)據(jù)端口讀出的數(shù)據(jù)正是在Testbench仿真測(cè)試文件中給定的那一組測(cè)試數(shù)據(jù),仿真得到的結(jié)果是正確的。

  4 數(shù)據(jù)采集系統(tǒng)的實(shí)驗(yàn)

  在FPGA控制A/D芯片接口的軟件設(shè)計(jì)中,是通過(guò)FPGA內(nèi)部的邏輯電路實(shí)現(xiàn)了分頻,并將分頻后的信號(hào)作為A/D芯片工作的采樣時(shí)鐘,經(jīng)過(guò)測(cè)試,得知A/D芯片的采樣頻率為1.08 MHz,通過(guò)信號(hào)發(fā)生器,將輸入的模擬信號(hào)設(shè)為10 kHz、幅度為3 V的正弦波,采樣轉(zhuǎn)換后的數(shù)據(jù)上傳到上位機(jī)中,顯示的波形如圖8所示。



圖8 10KHZ信號(hào)輸入時(shí)得到的波形

  在同等條件下,把輸入的模擬信號(hào)的頻率調(diào)整為5 kHz。A/D芯片的采樣頻率仍然為1.08 MHz。得到的顯示波形如圖9所示。



圖9 5 kHz信號(hào)輸入時(shí)得到的波形

  由圖8和圖9可知,在對(duì)模擬信號(hào)采樣時(shí),當(dāng)采樣率不變時(shí),輸入模擬信號(hào)的頻率越低,相對(duì)地就提高了采樣點(diǎn)、減小了采樣間隔,在圖形中就越能體現(xiàn)出原始模擬信號(hào)的信息,得到的波形就更加的理想。

  5 結(jié)束語(yǔ)

  本文在研究了FPGA和USB2.0技術(shù)的基礎(chǔ)上,提出了數(shù)據(jù)采集系統(tǒng)的總體設(shè)計(jì)方案,以FPGA和USB2.0為技術(shù)核心,設(shè)計(jì)了硬件電路和軟件代碼并在ModelSim環(huán)境下通過(guò)了仿真測(cè)試。該系統(tǒng)不僅能夠?qū)崿F(xiàn)一般用途的數(shù)據(jù)采集,還實(shí)現(xiàn)了系統(tǒng)的高速化、集成化和低功耗工作,為便攜化數(shù)據(jù)采集系統(tǒng)提供了一種設(shè)計(jì)思路。
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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