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

圖1 級聯式多路采集系統結構圖
系統硬件電路使用Altium Designer09軟件進行設計,讀數單元板與采集單元板都采用4層印制電路板。讀數單元板主要核心電路是FPGA和CH378L外圍架構電路和電源模塊電路,采集單元的主要核心電路是FPGA模塊、AD采集模塊、FLASH模塊和電源模塊。
2.1 讀數單元硬件設計
為了實現系統的功能,讀數單元結構主要包含FPGA模塊、CH378L模塊、USB接口以及信號輸入輸出接口。讀數單元結構圖如圖2所示。

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

圖3 FPGA與CH378L連接原理圖
2.2 采集單元硬件設計
為了后期可任意增減采集單元數量,每個采集單元采用相同的硬件設計。采集單元的結構如圖4所示。采集單元電路主要由FPGA模塊、AD芯片、FLASH芯片以及輸入輸出接口組成。設計時將數字電源與模擬電源采用分區覆銅,并用一點接地的布線方式,將數字地與模擬地有效的隔離開,避免電源和數字部分對模擬地電位產生浮動和干擾[7]。

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

圖5 AD模塊電路連接

圖6 讀數單元工作流程圖
系統軟件由讀數單元控制程序和采集單元控制程序組成,采用VHDL硬件描述語言進行編程。
3.1 讀數單元軟件設計
讀數單元的工作流程圖如圖6所示。初始化完成通訊端口的設置后,讀數單元輪流接收各個采集單元的數據。讀數單元發送對第N個單元進行采集數據的命令后,使使能端EN有效,然后開始接收第N個單元的數據,若數據未通過校驗則發送重新讀取數據的命令,完成接收經校驗確認數據有效后通過USB接口將數據存入U盤中,然后開始讀取下一個采集單元的數據。
讀數單元在接收不同采集單元的數據時,會在U盤中為每個采集單元建立對應名稱的文件,同一個采集單元的數據會在該文件中連續存儲。
3.2 采集單元軟件設計
采集單元工作流程圖如圖7所示。采集單元初始化后開始采集數據并存儲到發送緩沖區,待接收到讀數單元發出的命令,若確認為讀數命令,則判斷地址,若N等于本機號,并且使能端口EN有效,則采集單元進入發送數據狀態,發送緩沖區的數據到第N-1號單元;若N小于本機號,則采集單元進入傳輸數據狀態,接收第N+1號單元發送來的數據并發送給第N-1號單元,最后傳輸到讀數單元;若N大于本機號,則忽略命令,等待下一條命令到達。

圖7 采集單元工作流程圖
3.3 通信協議
根據系統設計,讀數單元與采集單元之間的通信協議自行設定,命令只由讀數單元向采集單元發送,數據只由采集單元向讀數單元發送,命令幀有請求發送數據、確認發送成功、請求重發數據這3種形式[8]。命令幀的定義如下:

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

圖8 SignalTapⅡ在線仿真圖
如圖8所示FPGA向CH378L發送請求,再聲明數據長度后開始發送遞增的模擬信號。
根據實際驗證,可以看出FPGA向VH378L發送的數據完整有效,實現了采集單元到讀數單元的可靠傳輸,符合設計要求。
本設計以FPGA為核心,在不需要將每個采集單元都與讀數單元連接的情況下,使用級聯的連接方式,將各個采集單元一一串聯起來,減少了讀數單元的連接節點數,并且所有采集單元的結構與電氣連接均相同,在后期遇到需要增減采集點,或者某一采集點需增減采集路數,使用本設計方案,可以快捷的解決以上問題,在實際工程應用中具有一定的實用性。
[1] 岳孝忠,裴東興,王健. 基于USB3.0接口高速數據采集系統的設計[J]. 電子器件,2015,38(1):140-143.
[2] 侯朝勇,胡學浩,莊童. 基于FPGA的多路同步實時數據采集系統[J]. 電子技術應用,2009(10):103-105,108.
[3] 王立恒,任永峰,李圣昆,等. 基于FPGA的多路采集測試系統設計[J]. 電測與儀表,2009(2):20-24.
[4] 常高嘉,馮全源. 基于FPGA的高速數據采集系統的設計與實現[J]. 電子器件,2012,35:615-618.
[5] 南京沁恒電子有限公司. CH378技術手冊[S]. 2013(5):1-2.
[6] 向陽,熊瑛,全臘珍. 基于U盤存儲的多通道溫度記錄儀[J]. 機電產品開發與創新,2009,22(2):51-52,42.
[7] 侯進振,占濤,毛樂山. 基于CH375的智能數據采集卡[J]. 現代電子技術,2010(10):143-145.
[8] 劉鵬. 基于51單片機串口通訊的多路采集系統[J]. 計算機光盤軟件與應用,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

項目來源:國家自然科學基金項目(61275166);山西省自然科學基金項目(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