最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

LabVIEW My FPGA重量級成員:18位8通道1MS/s同步高精度信號采集:AD7606C-18

2021-07-26 23:47 作者:神電測控  | 我要投稿

????????LabVIEW My FPGA家族又添重量級新成員啦!??!

????????1、神電官宣:LabVIEW My FPGA工具包里面誕生了18位8通道同步最高1MS/s采樣率的高精度多通道并行ADC FPGA驅動VI和例程:AD7606C-18

?????? ?2、重量級:AD7606C-18采樣率和帶寬等性能指標,遠遠超出普通AD7606芯片好幾倍;帶C和不帶C有著天壤之別,AD7606C系列屬于ADI公司。

?????? ?3、同步并行:支持8通道同步,所有通道都是真正意義上的并行同步采集,每個通道都能同時達到1MS/s采樣速率。

?????? ?4、應用范圍廣:相較于普通AD7606芯片,AD7606C-18更適合中等級別且需要同步的動態(tài)信號采集,非常適合常規(guī)電壓信號、聲音、振動、加速度等IEPE傳感器采集,220KHz模擬帶寬足以滿足絕大多數(shù)的項目應用。

?????? ?5、更加智能:用戶還可以直接在FPGA芯片里面加入LabVIEW各種濾波、FFT頻譜變換等VI算法,讓我們的FPGA DAQ信號采集卡變得更加智能化、人性化,只要會一點LabVIEW,就能搞定測試測量、聲音與振動、機器健康狀態(tài)監(jiān)測等應用開發(fā)。

?????? ?6、原位替代:ADI公司的設計理念非常好,為了減少客戶PCB制版的工作量,他們竟然巧妙的將18位AD7606C跟16位AD7606芯片做成了完全引腳兼容的封裝,如圖1所示。這樣用戶就不需要做板子或者改板子了,直接從網(wǎng)上買一個18位的AD7606C-18芯片回來(立創(chuàng)商城上有賣的),然后直接焊接到原先的AD7606板子上面,即可實現(xiàn)原位替代。


圖1:AD7606C跟AD7606芯片所有引腳完全兼容(原位替代,左邊是AD7606C,右邊AD7606)

????????提醒:ADI設計的思路很巧妙,16位的AD7606并行模式下每次讀取1個通道數(shù)據(jù),18位的AD7606C則分成兩次,第一次讀取高16位,第二次讀取低2位,然后左移拼接一下即可,如圖2所示。所以硬件不需要改動,只要把底層讀取時序改一下即可,這個在我們后續(xù)給出來的LabVIEW FPGA程序框圖里面可以看到!

圖2:18位的AD7606C-18芯片讀取時序(每個通道分兩次讀取后進行拼接)


????????7、芯片實物對比

????????比如我們把黑金的AD7606模塊上的芯片吹下來,換上網(wǎng)上買的AD7606C-18芯片,如圖3所示,這就變成了一個18位8通道同步1MS/s采樣率的模塊了,價值瞬間翻幾倍(@黑金,建議把AD7606C-18模塊也做好放在網(wǎng)上賣?。。。?,如圖4所示。

圖3:將網(wǎng)上買的AD7606C-18芯片跟AD7606芯片互換(右邊是AD7606C-18芯片)
圖4:將網(wǎng)上買的AD7606C-18芯片焊接到黑金的AD7606模塊上(完美升級)

????????提醒:上面的這種芯片原位替換方式是不是要比去ADI公司買AD7606C-18 EVM評估版要劃算很多,也快很多,點贊!

????????8、測試環(huán)境搭建

????????由于黑金的所有模塊跟黑金的FPGA開發(fā)板擴展槽都是標準的40pin,所以不需要杜邦線,直接插到黑金的FPGA開發(fā)板里面即可;同時也能減少杜邦線帶來的不穩(wěn)定性,特別是高頻時鐘信號的完整性和抖動性。圖5顯示的是我們替換后的AD7606C-18模塊跟黑金Spartan6 FPGA開發(fā)板之間硬件接線實物圖;圖6是AD7606C-18跟黑金ARTIX7開發(fā)板之間的接線實物圖。

圖5:AD7606C-18模塊跟黑金Spartan6開發(fā)板接線實物圖
圖6:AD7606C-18模塊跟黑金ARTIX7開發(fā)板接線實物圖


????????9、LabVIEW AD7606C-18 FPGA項目瀏覽器

????????下面我們給用戶針對Xilinx 6系列FPGA和7系列FPGA開發(fā)了AD7606C-18的LabVIEW項目工程和FPGA驅動VI。其中,圖7顯示的是黑金Spartan6開發(fā)板對應的AD7606C-18和AD7606C-16的FPGA項目截圖;圖8顯示的是黑金ARTIX7開發(fā)板對應的AD7606C-18項目截圖。

圖7:Spartan6 FPGA終端項目瀏覽器(AD7606C-18和AD7606C-16)
圖8:ARTIX7 FPGA終端項目瀏覽器(AD7606C-18)


????????10、細節(jié)決定成敗

????????在開始編寫下位機FPGA程序之前,我們還需要對AD7606C-18跟FPGA之間的引腳對應到LabVIEW FPGA項目里面的EIO節(jié)點進行參數(shù)設置。

????????很多客戶發(fā)現(xiàn)自己寫的LabVIEWFPGA程序讀取回來的AD通道數(shù)據(jù),存在通道錯位;還有就是明明時序仿真都是OK的,但是為什么嵌到LabVIEW FPGA里面出來的結果就不對了呢?這是什么原因造成的呢?

????????其實,細心的用戶會發(fā)現(xiàn),封裝到FPGA里面的EIO節(jié)點,有個屬性參數(shù)配置頁面。右擊項目瀏覽器里面的EIO節(jié)點,選擇屬性,在彈出來的對話框里面,默認的參數(shù)是這樣,如圖9所示。

圖9:LabVIEW FPGA里面封裝的EIO節(jié)點默認讀寫存在同步寄存器導致延遲節(jié)拍

????????通過查看LabVIEW幫助文檔可以看到,實際上就是LabVIEW FPGA里面的EIO節(jié)點數(shù)據(jù)真正到達FPGA程序框圖里面,需要經(jīng)過2個同步寄存器,相當于延時了兩拍(自動,就是2),而EIO節(jié)點輸出作為到真正的FPGA引腳,中間需要經(jīng)過1個同步寄存器,相當于延遲兩拍。而我們通常在使用VHDL或者Verilog編寫程序時,默認是沒有同步寄存器一說的,因此寫出來的時序必須要求FPGA引腳讀寫在一個CLK內到達的,不能存在節(jié)拍延遲的,故我們需要將AD7606C-18相關的FPGA EIO節(jié)點里面的讀寫同步寄存器全部改成0,如圖10所示。這樣就不存在延遲了,對應的時序就能很好的滿足,讀出來的數(shù)據(jù)也就是正確了。

圖10:將EIO節(jié)點屬性里面的讀寫同步寄存器數(shù)量全部改成0(這樣就不存在延遲了)


????????11、AD7606C-18 FPGA讀取時序

????????我們使用LabVIEW編寫的AD7606C下位機FPGA程序,主要分為兩類:一是使用50MHz時鐘來驅動AD7606C-18時序進行8通道讀取,程序框圖11所示;二是使用100MHz時鐘來驅動AD7606C-18讀取,F(xiàn)PGA程序如圖12所示。

圖11:使用50MHz時鐘來驅動AD7606C-18時序讀取通道數(shù)據(jù)
圖12:使用100MHz時鐘來驅動AD7606C-18時序讀取通道數(shù)據(jù)

????????需要注意的是:如果用戶選擇的是45nm的Spartan6 FPGA芯片來操作AD7606C-18讀取的話,由于45nm的6系列FPGA引腳時鐘穩(wěn)定性方面要比28nm的7系列FPGA差一些,而AD7606C-18芯片手冊上的ADC內部轉換一次需要0.5us~0.65us,如果要實現(xiàn)1MS/s采樣率,那么留給讀取的時間最多只有350ns,對于18位的AD7606C芯片完成8個通道掃描讀取的話,需要讀取16次(高16和低2位),每次讀取的高電平和低電平持續(xù)時間最小不能低于10ns(芯片手冊可以查詢到),所以按照極限參數(shù)來計算的話,掃描讀取8通道需要耗時16×2×10ns=320ns,剛好滿足350ns。但是現(xiàn)實是殘酷的,如果FPGA產(chǎn)生的10ns延時存在抖動和不穩(wěn)定,那么就會導致FPGA從AD7606C-18讀取出來的數(shù)據(jù)也會存在問題;但是AD7606C-16不會存在這個極限問題,因為16位的AD7606C芯片8個通道一共只需要讀取8次就可以了。

?????? ?重要結論:如果客戶打算使用45nm的Xilinx 6系列FPGA來讀取AD7606C-18芯片,建議使用50MHz時鐘驅動,會比較穩(wěn)定,但是等效的8通道實際采樣率是740KS/s左右,如果只讀取AD7606C-18其中4個通道的話,可以每個通道都能達到1MS/s。當然,如果客戶想要讓18位的AD7606C芯片8個通道都能以1MS/s采樣率工作的話,可以選擇Xilinx 28nm的7系列FPGA芯片,比如ARTIX7或者Kintex7或者Virtex7.關于測試結果后續(xù)我們會展示給大家。

????????12、靈活的LabVIEW FPGA編程

?????????需要提醒用戶的是:實際上我們根據(jù)AD7606C-18芯片的時序,利用Verilog編寫了驅動IP,生成網(wǎng)表再利用LabVIEW FPGA的IP Block節(jié)點進行調用,如圖13所示,這種方式不直觀;應廣大企業(yè)客戶需求,我們直接在LabVIEW FPGA框圖里面利用狀態(tài)機編程,直接將AD7606C芯片的整個操作和讀取用LabVIEW FPGA編寫出來了,每一步都能看到,如圖14所示,這種方式具有借鑒和參考價值,今后大家都可以利用LabVIEW標準狀態(tài)機來編寫FPGA時序,不用怕,其實很簡單,并且測試發(fā)現(xiàn),利用LabVIEW標準狀態(tài)機編寫出來的FPGA代碼要比ngc網(wǎng)表的還有小一些,所以不用擔心FPGA資源浪費和不夠用的問題。

圖13:利用LabVIEW FPGA IP Block節(jié)點直接調用Verilog生成的AD7606C-18網(wǎng)表文件
圖14:利用LabVIEW FPGA標準狀態(tài)機編寫AD7606C-18通道數(shù)據(jù)讀取程序


????????13、AD7606C-18下位機FPGA測試程序(精髓)

????????雖然我們的Spartan6 FPGA具備LabVIEW FPGA下位機在線前面板調試功能,但是為了給用戶全方位的展示出來LabVIEW FPGA的強大,除了下位機FPGA程序可以使用LabVIEW編寫外,我們還給大家編寫了一個上位機LabVIEW程序,用于接收下位機FPGA將采集到的AD7606C-18的所有原始數(shù)據(jù)放在波形圖里面顯示出來,當然還可以流盤或者進一步處理。

????????因為在真實的應用中,不可能永遠掛著下載器,必須要上位機和下位機分離,然后二者之間通過串口、USB、千兆以太網(wǎng)或者PCIe/PXIe進行通信。這樣才是一個完整的項目和產(chǎn)品開發(fā)思路。

????????因為我們手頭的Spartan6和ARTIX7 FPGA開發(fā)板沒有PCIe接口,因此,我們選擇最快的千兆以太網(wǎng)作為上下位機之間的通信接口,當然有條件的用戶還可以參考我們編寫的《LabVIEW FPGA Pro5開發(fā)寶典》,使用黑金帶PCIe的AX7103 FPGA開發(fā)板來進行傳輸。既然我們的下位機FPGA已經(jīng)采集到了AD7606C-18的所有通道數(shù)據(jù)了,那么是否可以直接將其連到千兆以太網(wǎng)發(fā)送端的FIFO里面呢?答案是不行的!因為在本書《LabVIEW FPGA開發(fā)寶典》之前的實驗16里面,給用戶提供過普通AD7606芯片采集+千兆以太網(wǎng)通信傳輸?shù)陌咐?,但是本?jié)實驗的AD7606C-18是18位的,并非16位,如果我們想直接在前面實驗16的基礎上小改的話,是有一個技巧的。

????????AD7606C-18芯片共有8個18bit(FXP<±18>)的通道數(shù)據(jù),換算成bit就是8×18=144,正好是9個I16,可以想象成一個16位的AD7606但是有9個通道同時讀取。因此,我們需要在FPGA里面編寫一個定時循環(huán),將AD7606C-18的8個有符號數(shù)I18轉換成9個有符號數(shù)I16,如圖15所示。這樣后續(xù)的并轉串和千兆以太網(wǎng)發(fā)送框架就可以保持不變了。

圖15:將AD7606C-18的8個通道I18轉換成9個I16(精髓)

????????上圖程序的精髓就在于,首先將8個通道的I18變成一維布爾數(shù)組,再首尾相連起來,然后利用數(shù)組選板里面的“一維抽取”均勻的分成9個布爾數(shù)組,這樣每個數(shù)組就是16bit了,最后再把這些16bit轉成I16放到之前創(chuàng)建好的普通AD7606 FIFO里面去,當然了,我們還專門創(chuàng)建了一個虛擬不存在的第9個AD7606 FIFO作為抽取出來的第9個I16。

?????? ?接下來,我們在之前實驗16的“并轉串線程:AD7606C-18-->U8H和U8L”里面將第9個虛擬FIFO加進去,如圖16所示。

圖16:將抽取出來的第9個I16 FIFO加到并轉串線程里面

? ? ? ? 最后將千兆以太網(wǎng)發(fā)送線程里面的UDP數(shù)據(jù)包長度改一下,這是因為必須要滿足9×2=18個字節(jié)的整數(shù)倍,這樣,上位機接收到UDP數(shù)據(jù)包才能正確解析出來。比如,這里面我們將UDP一幀數(shù)據(jù)包長度改成900個字節(jié),那么實際上位機接收并解析出來的AD7606C-18芯片的每個通道數(shù)據(jù)點數(shù)就是900/2/9=50個,如圖17所示。

圖17:將千兆以太網(wǎng)UDP發(fā)送包長度改成18的整數(shù)倍(這樣上位機就不會錯亂)

????????最后,我們給出完整的下位機FPGA芯片里面的AD7606C-18讀取+千兆以太網(wǎng)發(fā)送的LabVIEW FPGA程序框圖,如圖18所示。

圖18:完整的下位機FPGA芯片里面的AD7606C-18+千兆以太網(wǎng)發(fā)送程序框圖(FPGA)

????????當下位機FPGA程序寫完之后,直接點擊運行,即可將LabVIEW FPGA程序框圖編譯生成原始的FPGA可執(zhí)行文件,也就是bit文件,然后下載或者固化到FPGA芯片里面運行。對這個過程不熟悉的用戶可以參考本開發(fā)寶典前面第五章,這里不再贅述!

????????14、AD7606C-18千兆以太網(wǎng)上位機通信交互程序

????????最后我們給用戶編寫了一個上位機LabVIEW千兆以太網(wǎng)接收和波形顯示程序,其實也可以直接參考前面實驗16里面的上位機代碼,上位機程序前面板,如圖19所示。

圖19:上位機千兆以太網(wǎng)接收和波形顯示程序前面板(AD7606C-18)

????????這個上位機程序的精髓就是,我們需要想辦法將下位機FPGA發(fā)送上來的每一包900個字節(jié)里面的原始bit數(shù)據(jù)提取解析出來,還原成AD7606C-18每個通道真實的數(shù)據(jù),然后顯示在前面板的波形圖控件去。

????????主要的轉換思想跟下位機FPGA是反過來的,首先利用數(shù)組函數(shù)選板里面的“一維數(shù)組抽取”函數(shù)將900個字節(jié)抽取成9個I16通道數(shù)據(jù),然后再把I16變成16bit的布爾數(shù)組,再利用“一維數(shù)組交織”函數(shù)合成144bit,再利用“數(shù)組子集”拆成8個I18(有符號18位定點數(shù),也可以表示成FXP<±18,18>),最后將所有的8個通道數(shù)據(jù)索引出來放到前面板對應的波形圖控件里面顯示出來。整個過程如圖20所示。

圖20:完整的上位機AD7606C-18千兆以太網(wǎng)接收顯示程序(PC)


????????15、測量結果

圖21:信號發(fā)生器產(chǎn)生的10KHz、±2.5V正弦信號給到AD7606C-18采集模塊

????????先直接運行Spartan6 FPGA開發(fā)板上的50MHz時鐘驅動的AD7606C-18程序,前面分析過,實際8個通道全部同步采集的話,最大是740KS/s(50M/67),實測結果,如圖22所示。

圖22:下位機LabVIEW FPGA程序前面板上的讀取結果(在線前面板調試運行)

????????然后打開AD7606C-18千兆以太網(wǎng)上位機測試程序,可以看到通道1對應的波形圖控件里面出現(xiàn)了正弦波,如圖23所示;將這個波形圖單獨放大之后可以看到,一個正弦周期的量化點數(shù)是74個,說明我們的AD7606C-18掛在Spartan6 FPGA下面最大同步采樣率是740KS/s,如圖24所示。幅度計算公式是65534/2^18×10V=2.5V(18位分辨率,AD7606輸入量程±5V)。

圖23:上位機前面板采集到的波形顯示效果(740KS/s,8通道,±65535對應±2.5V)
圖24:將通道1波形圖放大之后,可以看到正好1個周期74個點,說明采樣率是740KS/s

????????最后我們測試一下AD7606C-18掛在28nm的ARTIX7 FPGA開發(fā)板上的實測效果。先下載A7 100M時鐘驅動的AD7606C-18芯片bit文件到黑金AX7035開發(fā)板里面,經(jīng)過10s之后可以看到上位機前面板上的波形圖里面出現(xiàn)了正弦信號,如圖25所示;將這個波形圖放大之后可以看到一個正弦周期實際的量化點數(shù)是100個,如圖26所示。說明我們的AD7606C-18在A7 FPGA下面可以達到理論的最大同步采樣率1MS/s,完美!??!

圖25:掛在ARTIX7 FPGA開發(fā)板下的AD7606C-18測試結果
圖26:28nm的7系列FPGA芯片下AD7606C-18每個通道都能達到1MS/s



LabVIEW My FPGA重量級成員:18位8通道1MS/s同步高精度信號采集:AD7606C-18的評論 (共 條)

分享到微博請遵守國家法律
邯郸县| 宜川县| 平安县| 贵德县| 渝北区| 陇川县| 阳城县| 岱山县| 石阡县| 建水县| 汉阴县| 高邑县| 牡丹江市| 千阳县| SHOW| 乳源| 蒲城县| 靖边县| 叙永县| 孝昌县| 云阳县| 钟祥市| 乳山市| 瑞安市| 兰西县| 望都县| 天门市| 尤溪县| 稷山县| 榆中县| 武穴市| 西宁市| 万安县| 三门县| 峨边| 华蓥市| 黄山市| 繁峙县| 饶河县| 清涧县| 霍城县|