吳正洋,馬游春*,王悅凱,姜 德,王曉娟
(1.中北大學(xué)電子測(cè)試技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,太原 030051;2.儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,太原 030051)
一種可任意擴(kuò)展的多路級(jí)聯(lián)采集電路設(shè)計(jì)*
吳正洋1,2,馬游春1,2*,王悅凱1,2,姜 德1,2,王曉娟1,2
(1.中北大學(xué)電子測(cè)試技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,太原 030051;2.儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,太原 030051)
在長(zhǎng)距離需要對(duì)多路數(shù)據(jù)進(jìn)行采集的情況下,提出了一種基于FPGA的多路級(jí)聯(lián)式采集系統(tǒng)。本系統(tǒng)以FPGA為核心,實(shí)現(xiàn)對(duì)各路采集單元的命令控制和數(shù)據(jù)傳輸控制,并且各采集單元相互獨(dú)立、所采集的數(shù)據(jù)單獨(dú)存儲(chǔ)。實(shí)驗(yàn)測(cè)試結(jié)果表明,各路采集數(shù)據(jù)能夠可靠傳輸?shù)阶x數(shù)單元。各采集單元以級(jí)聯(lián)方式連接,可在采集點(diǎn)自由增減采集單元,實(shí)現(xiàn)任意路數(shù)據(jù)的采集與存儲(chǔ)。
數(shù)據(jù)采集;任意擴(kuò)展;級(jí)聯(lián);FPGA
在數(shù)據(jù)時(shí)代,數(shù)據(jù)采集已經(jīng)遍及了各個(gè)領(lǐng)域,尤其是多路采集在工程上應(yīng)用極為廣泛。在許多測(cè)控系統(tǒng)中,經(jīng)常會(huì)需要對(duì)多路信號(hào)進(jìn)行采集、傳輸、存儲(chǔ)與處理[1]。目前常用的多路采集系統(tǒng)主要是由讀數(shù)單元與多個(gè)采集單元直接連接,由讀數(shù)單元同時(shí)接受多路數(shù)據(jù),并且通常需要對(duì)多個(gè)信號(hào)進(jìn)行實(shí)時(shí)采集,同時(shí)為了保證數(shù)據(jù)的一致性,必須同時(shí)對(duì)數(shù)據(jù)進(jìn)行采樣[2]。這樣不僅對(duì)讀數(shù)單元要求較高,而且線(xiàn)路復(fù)雜,當(dāng)各采集點(diǎn)之間的距離較遠(yuǎn)時(shí),長(zhǎng)線(xiàn)連接也降低了傳輸?shù)目煽啃訹3]。
級(jí)聯(lián)連接是一種在網(wǎng)絡(luò)上常用的連接方式,將兩臺(tái)或兩臺(tái)以上的交換機(jī)通過(guò)一定的方式相互連接,根據(jù)需要,多臺(tái)交換機(jī)可以以多種方式進(jìn)行級(jí)聯(lián)。多臺(tái)設(shè)備的級(jí)聯(lián)一般形成總線(xiàn)型、樹(shù)型和星型的級(jí)聯(lián)結(jié)構(gòu)。在實(shí)際應(yīng)用中,這種連接方式的優(yōu)點(diǎn)在于:當(dāng)終端機(jī)的數(shù)量發(fā)生變化時(shí),可任意的調(diào)配終端,而無(wú)需對(duì)主機(jī)進(jìn)行調(diào)整。
本文提出的多路采集方案就是利用了這一連接方式,將每個(gè)采集單元一對(duì)一的連接起來(lái),在傳輸數(shù)據(jù)時(shí),并不是每個(gè)采集單元直接向讀數(shù)單元發(fā)送數(shù)據(jù),而是通過(guò)層級(jí)傳輸?shù)姆绞?最終傳輸?shù)阶x數(shù)單元。并且每個(gè)采集單元相互獨(dú)立,均配備有獨(dú)立的FLASH芯片,不依賴(lài)讀數(shù)單元即可獨(dú)立完成高速數(shù)據(jù)的采集,同一時(shí)間只能有一個(gè)采集單元可以向讀數(shù)單元發(fā)送數(shù)據(jù),讀數(shù)單元輪流接收各個(gè)采集單元的數(shù)據(jù),然后將數(shù)據(jù)存儲(chǔ)到U盤(pán)中。
根據(jù)設(shè)備的功能實(shí)現(xiàn)和各部分的技術(shù)要求,再結(jié)合通信協(xié)議和設(shè)備的后續(xù)功能擴(kuò)展需求,對(duì)系統(tǒng)關(guān)鍵電路進(jìn)行了總體設(shè)計(jì)。級(jí)聯(lián)式多路采集系統(tǒng)結(jié)構(gòu)圖如圖1所示。該系統(tǒng)總體上由讀數(shù)單元、若干個(gè)采集單元、信號(hào)源和U盤(pán)存儲(chǔ)器組成,以FPGA為核心的采集單元完成對(duì)模擬信號(hào)的采集、處理、緩存與發(fā)送,每個(gè)采集單元在硬件上結(jié)構(gòu)相同,讀數(shù)單元同樣以FPGA為核心,完成對(duì)信號(hào)的接收與存儲(chǔ),各單元之間以串行的方式傳輸數(shù)據(jù)。為提高系統(tǒng)的可擴(kuò)展性,還設(shè)計(jì)了備用LVDS接口,在需要更高的傳輸速度時(shí)使用[4]。

圖1 級(jí)聯(lián)式多路采集系統(tǒng)結(jié)構(gòu)圖
系統(tǒng)硬件電路使用Altium Designer09軟件進(jìn)行設(shè)計(jì),讀數(shù)單元板與采集單元板都采用4層印制電路板。讀數(shù)單元板主要核心電路是FPGA和CH378L外圍架構(gòu)電路和電源模塊電路,采集單元的主要核心電路是FPGA模塊、AD采集模塊、FLASH模塊和電源模塊。
2.1 讀數(shù)單元硬件設(shè)計(jì)
為了實(shí)現(xiàn)系統(tǒng)的功能,讀數(shù)單元結(jié)構(gòu)主要包含F(xiàn)PGA模塊、CH378L模塊、USB接口以及信號(hào)輸入輸出接口。讀數(shù)單元結(jié)構(gòu)圖如圖2所示。

圖2 讀數(shù)單元硬件結(jié)構(gòu)圖
讀數(shù)單元采用Altera公司Cyclone Ⅳ系列的EP4CE15F17C8作為FPGA控制芯片。采用南京沁恒電子有限公司的CH378L芯片作為U盤(pán)控制芯片,該芯片內(nèi)置USB固件與海量存儲(chǔ)協(xié)議,能直接將采集的數(shù)據(jù)存儲(chǔ)于大容量U盤(pán)中[5],利用CH378L設(shè)計(jì)U盤(pán)存儲(chǔ)器外圍電路簡(jiǎn)單,且成本較低。將U盤(pán)作為存儲(chǔ)介質(zhì),以較低的成本實(shí)現(xiàn)了海量存儲(chǔ),同時(shí)U盤(pán)可方便地拆卸與更換,數(shù)據(jù)交換方便,適用于各種現(xiàn)場(chǎng)應(yīng)用環(huán)境[6]。FPGA與CH378L的電路原理圖如圖3所示。

圖3 FPGA與CH378L連接原理圖
2.2 采集單元硬件設(shè)計(jì)
為了后期可任意增減采集單元數(shù)量,每個(gè)采集單元采用相同的硬件設(shè)計(jì)。采集單元的結(jié)構(gòu)如圖4所示。采集單元電路主要由FPGA模塊、AD芯片、FLASH芯片以及輸入輸出接口組成。設(shè)計(jì)時(shí)將數(shù)字電源與模擬電源采用分區(qū)覆銅,并用一點(diǎn)接地的布線(xiàn)方式,將數(shù)字地與模擬地有效的隔離開(kāi),避免電源和數(shù)字部分對(duì)模擬地電位產(chǎn)生浮動(dòng)和干擾[7]。

圖4 采集單元硬件結(jié)構(gòu)圖
采集單元也采用相同的FPGA芯片;FLASH采用三星公司的K9WAG08U1M,空間大小為1 G×8 bit;AD轉(zhuǎn)換芯片采用ANALOG DEVICES公司的AD7983芯片,該芯片是一個(gè)16 bit的模數(shù)轉(zhuǎn)換器,數(shù)字信號(hào)以串行的方式輸出到FPGA端口,并以ADR444作為電壓參考芯片,實(shí)現(xiàn)AD轉(zhuǎn)換功能,在16 bit的采樣位寬下,可實(shí)現(xiàn)2 Mbyte/s的采集速率。AD模塊的電路原理圖如圖5所示。

圖5 AD模塊電路連接

圖6 讀數(shù)單元工作流程圖
系統(tǒng)軟件由讀數(shù)單元控制程序和采集單元控制程序組成,采用VHDL硬件描述語(yǔ)言進(jìn)行編程。
3.1 讀數(shù)單元軟件設(shè)計(jì)
讀數(shù)單元的工作流程圖如圖6所示。初始化完成通訊端口的設(shè)置后,讀數(shù)單元輪流接收各個(gè)采集單元的數(shù)據(jù)。讀數(shù)單元發(fā)送對(duì)第N個(gè)單元進(jìn)行采集數(shù)據(jù)的命令后,使使能端EN有效,然后開(kāi)始接收第N個(gè)單元的數(shù)據(jù),若數(shù)據(jù)未通過(guò)校驗(yàn)則發(fā)送重新讀取數(shù)據(jù)的命令,完成接收經(jīng)校驗(yàn)確認(rèn)數(shù)據(jù)有效后通過(guò)USB接口將數(shù)據(jù)存入U(xiǎn)盤(pán)中,然后開(kāi)始讀取下一個(gè)采集單元的數(shù)據(jù)。
讀數(shù)單元在接收不同采集單元的數(shù)據(jù)時(shí),會(huì)在U盤(pán)中為每個(gè)采集單元建立對(duì)應(yīng)名稱(chēng)的文件,同一個(gè)采集單元的數(shù)據(jù)會(huì)在該文件中連續(xù)存儲(chǔ)。
3.2 采集單元軟件設(shè)計(jì)
采集單元工作流程圖如圖7所示。采集單元初始化后開(kāi)始采集數(shù)據(jù)并存儲(chǔ)到發(fā)送緩沖區(qū),待接收到讀數(shù)單元發(fā)出的命令,若確認(rèn)為讀數(shù)命令,則判斷地址,若N等于本機(jī)號(hào),并且使能端口EN有效,則采集單元進(jìn)入發(fā)送數(shù)據(jù)狀態(tài),發(fā)送緩沖區(qū)的數(shù)據(jù)到第N-1號(hào)單元;若N小于本機(jī)號(hào),則采集單元進(jìn)入傳輸數(shù)據(jù)狀態(tài),接收第N+1號(hào)單元發(fā)送來(lái)的數(shù)據(jù)并發(fā)送給第N-1號(hào)單元,最后傳輸?shù)阶x數(shù)單元;若N大于本機(jī)號(hào),則忽略命令,等待下一條命令到達(dá)。

圖7 采集單元工作流程圖
3.3 通信協(xié)議
根據(jù)系統(tǒng)設(shè)計(jì),讀數(shù)單元與采集單元之間的通信協(xié)議自行設(shè)定,命令只由讀數(shù)單元向采集單元發(fā)送,數(shù)據(jù)只由采集單元向讀數(shù)單元發(fā)送,命令幀有請(qǐng)求發(fā)送數(shù)據(jù)、確認(rèn)發(fā)送成功、請(qǐng)求重發(fā)數(shù)據(jù)這3種形式[8]。命令幀的定義如下:

幀頭命令類(lèi)型目的地址校驗(yàn)幀尾1byte1byte1byte1byte1byte
幀頭和幀尾可自行定義,本系統(tǒng)將幀頭設(shè)定為0XF0,將幀尾設(shè)定為0XF8。
命令類(lèi)型用0X00、0X01、0X02分別表示請(qǐng)求發(fā)送數(shù)據(jù)、確認(rèn)發(fā)送成功、請(qǐng)求重發(fā)數(shù)據(jù)命令,采集單元中FPGA判斷命令類(lèi)型的代碼如下:
process(command)
case command is
when“00000000”=>
send_data<=‘1’; --發(fā)送數(shù)據(jù)
when“00000001”=>
datadone<=‘1’; --數(shù)據(jù)已接收并有效
when“00000010”=>
resend_data<=‘1’; --重新發(fā)送上一幀數(shù)據(jù)
when others=>
null;
end case;
end process;
目的地址根據(jù)采集單元的序號(hào)進(jìn)行設(shè)置,如需讓第9個(gè)采集單元發(fā)送數(shù)據(jù),則目的地址為0X09,第9號(hào)采集單元將進(jìn)入發(fā)送數(shù)據(jù)狀態(tài),將本機(jī)的緩存數(shù)據(jù)發(fā)送到第8號(hào)采集單元,第1號(hào)到第8號(hào)采集單元將進(jìn)入傳輸數(shù)據(jù)狀態(tài),將TxI端接收的數(shù)據(jù)從TxO端發(fā)出,最后由1號(hào)采集單元發(fā)送給讀數(shù)單元。采集單元中FPGA判斷地址的代碼如下:
process(address)
if address=“00001001”then
state<=state1; --進(jìn)入發(fā)送數(shù)據(jù)狀態(tài)
elsif address<“00001001”then
state<=state2; --進(jìn)入傳輸數(shù)據(jù)狀態(tài)
else null;
end if;
end process;
最后采用和校驗(yàn)的方式進(jìn)行校驗(yàn)。
根據(jù)上述的系統(tǒng)設(shè)計(jì),采用VHDL語(yǔ)言在QuartusⅡ 12.0開(kāi)發(fā)平臺(tái)下進(jìn)行仿真驗(yàn)證。利用QuartusⅡ12.0自帶的SignalTapⅡ邏輯分析儀在Altera 的Cyclone Ⅳ器件上進(jìn)行在線(xiàn)仿真。使采集單元發(fā)送遞增的模擬信號(hào),將讀數(shù)單元的FPGA進(jìn)行在線(xiàn)仿真得到如圖8的波形圖。

圖8 SignalTapⅡ在線(xiàn)仿真圖
如圖8所示FPGA向CH378L發(fā)送請(qǐng)求,再聲明數(shù)據(jù)長(zhǎng)度后開(kāi)始發(fā)送遞增的模擬信號(hào)。
根據(jù)實(shí)際驗(yàn)證,可以看出FPGA向VH378L發(fā)送的數(shù)據(jù)完整有效,實(shí)現(xiàn)了采集單元到讀數(shù)單元的可靠傳輸,符合設(shè)計(jì)要求。
本設(shè)計(jì)以FPGA為核心,在不需要將每個(gè)采集單元都與讀數(shù)單元連接的情況下,使用級(jí)聯(lián)的連接方式,將各個(gè)采集單元一一串聯(lián)起來(lái),減少了讀數(shù)單元的連接節(jié)點(diǎn)數(shù),并且所有采集單元的結(jié)構(gòu)與電氣連接均相同,在后期遇到需要增減采集點(diǎn),或者某一采集點(diǎn)需增減采集路數(shù),使用本設(shè)計(jì)方案,可以快捷的解決以上問(wèn)題,在實(shí)際工程應(yīng)用中具有一定的實(shí)用性。
[1] 岳孝忠,裴東興,王健. 基于USB3.0接口高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J]. 電子器件,2015,38(1):140-143.
[2] 侯朝勇,胡學(xué)浩,莊童. 基于FPGA的多路同步實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)[J]. 電子技術(shù)應(yīng)用,2009(10):103-105,108.
[3] 王立恒,任永峰,李圣昆,等. 基于FPGA的多路采集測(cè)試系統(tǒng)設(shè)計(jì)[J]. 電測(cè)與儀表,2009(2):20-24.
[4] 常高嘉,馮全源. 基于FPGA的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子器件,2012,35:615-618.
[5] 南京沁恒電子有限公司. CH378技術(shù)手冊(cè)[S]. 2013(5):1-2.
[6] 向陽(yáng),熊瑛,全臘珍. 基于U盤(pán)存儲(chǔ)的多通道溫度記錄儀[J]. 機(jī)電產(chǎn)品開(kāi)發(fā)與創(chuàng)新,2009,22(2):51-52,42.
[7] 侯進(jìn)振,占濤,毛樂(lè)山. 基于CH375的智能數(shù)據(jù)采集卡[J]. 現(xiàn)代電子技術(shù),2010(10):143-145.
[8] 劉鵬. 基于51單片機(jī)串口通訊的多路采集系統(tǒng)[J]. 計(jì)算機(jī)光盤(pán)軟件與應(yīng)用,2012(1):57-58.
Design of Multiple Cascaded Acquisition Circuit Extended Arbitrarily*
WUZhengyang1,2,MAYouchun1,2*,WANGYuekai1,2,JIANGDe1,2,WANGXiaojuan1,2
(1.National Key Laboratory for Electronic Measurement Technology,North University of China,Taiyuan 030051,China; 2.Key Laboratory of Instrument Science and Dynamic Measurement of Ministry of Education,North University of China,Taiyuan 030051,China)
In the case of long-range multi-channel data acquisition,a FPGA-based multi-channel cascaded acquisition system was presented. This system used FPGA as the core to control the command and data transmission of every acquisition unit,the collected data were stored separately. Experimental results showed that,all the collected data could be reliably transmitted to the reading unit. The acquisition unit was connected in cascade mode,it could increase or decrease acquisition unit arbitrarily in the patch,and realize arbitrary ways of data collection and storage.
data acquisition;arbitrary extension;cascade;FPGA

項(xiàng)目來(lái)源:國(guó)家自然科學(xué)基金項(xiàng)目(61275166);山西省自然科學(xué)基金項(xiàng)目(2014011021-3)
2016-02-25 修改日期:2016-03-12
C:7210
10.3969/j.issn.1005-9490.2017.02.016
TP274.2
A
1005-9490(2017)02-0342-04