劉雪飛,馬鐵華,劉廷輝,尤文斌,崔 敏
(1.中北大學(xué)電子測試技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,山西太原 030051;2.中北大學(xué)儀器科學(xué)與動(dòng)態(tài)測試教育部實(shí)重點(diǎn)實(shí)驗(yàn)室,山西太原 030051;3.中北大學(xué)飛行器制造工程,山西太原 030051)
基于Nios II的新型彈載雙備份數(shù)據(jù)記錄儀
劉雪飛1,2,馬鐵華1,2,劉廷輝3,尤文斌1,2,崔 敏1
(1.中北大學(xué)電子測試技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,山西太原 030051;2.中北大學(xué)儀器科學(xué)與動(dòng)態(tài)測試教育部實(shí)重點(diǎn)實(shí)驗(yàn)室,山西太原 030051;3.中北大學(xué)飛行器制造工程,山西太原 030051)
針對傳統(tǒng)飛行器遙測存儲設(shè)備記錄儀電路體積龐大、功能擴(kuò)展性低以及記錄數(shù)據(jù)的可靠性低等問題,提出了一種基于Nios II的新型雙備份記錄儀設(shè)計(jì)方案。該方案以SOPC技術(shù)為基礎(chǔ),將整個(gè)控制系統(tǒng)構(gòu)建在單片F(xiàn)PGA上,通過雙備份存儲提高存儲數(shù)據(jù)的準(zhǔn)確性和可靠性。該設(shè)計(jì)方案具有可擴(kuò)展和微體積等優(yōu)點(diǎn),試驗(yàn)結(jié)果證明系統(tǒng)性能穩(wěn)定,能實(shí)現(xiàn)單路模擬信號的采集、雙備份存儲功能。
記錄儀;FPGA;Nios II;雙備份;SOPC
在遙測、通信等領(lǐng)域,記錄儀存儲的完整、實(shí)時(shí)的試驗(yàn)數(shù)據(jù)可為故障分析和試驗(yàn)評估提供可靠的依據(jù)[1-2],這樣就要求記錄數(shù)據(jù)具有很高的準(zhǔn)確性及可靠性。彈體有限的空間、極其惡劣的工作環(huán)境,對彈載記錄儀有高可靠性和小型化的要求。傳統(tǒng)遙測數(shù)據(jù)采集方法是單片機(jī)和CPLD(Complex Programmable Logic Device)共同作為控制核心[3],且無冗余備份功能。采用單片機(jī)、CPLD或 ARM等主芯片來設(shè)計(jì),記錄儀的功能可擴(kuò)展性降低。需要較多專用芯片完成硬件電路設(shè)計(jì),勢必使記錄系統(tǒng)功耗、占用體積、電路的失效率都有所提高。
針對上述問題,筆者提出一種基于Nios II的新型雙備份記錄儀。該技術(shù)的核心是在現(xiàn)場可編程邏輯陣列FPGA芯片內(nèi)構(gòu)建軟核處理器,結(jié)合可編程邏輯器件和通用可編程處理器的優(yōu)點(diǎn),構(gòu)成一個(gè)可編程的片上系統(tǒng),具備軟硬件在系統(tǒng)可編程功能,具有可裁剪、可擴(kuò)充、可升級等靈活的設(shè)計(jì)方式。采用一塊FPGA提高了系統(tǒng)的穩(wěn)定性,在實(shí)現(xiàn)中同時(shí)可以擴(kuò)展多個(gè)模塊。
針對某測量系統(tǒng)要求設(shè)計(jì)的新型雙備份記錄儀主要性能及技術(shù)指標(biāo)如下:
1)能夠完成對單路速變參數(shù)的采編和雙備份存儲功能,被采信號固有頻率為100 Hz,系統(tǒng)采樣頻率為320 k Hz,存儲容量為2×2 GB。
2)模擬信號采集接口:輸入信號在-1~+7V之內(nèi)時(shí),采集位數(shù)在12位以上。
3)記錄時(shí)長不小于1 000 s。
1.1 Nios II嵌入式軟核
目前的嵌入式處理器種類繁多,Altera公司的Nios II處理器是用于可編程邏輯器件的可配置的軟核處理器[4]。采用Nios II處理器,可以根據(jù)設(shè)計(jì)要求,在Altera的低成本的Cyclone FPGA中實(shí)現(xiàn)處理器設(shè)計(jì),具有很高的設(shè)計(jì)靈活性、開發(fā)周期短。
應(yīng)用Nios II處理器,可通過Avalon交換架構(gòu)來調(diào)整系統(tǒng)性能。Nios II處理器定制指令擴(kuò)展了CPU指令集,可以提高對時(shí)間要求嚴(yán)格的軟件運(yùn)行速度,從而提高系統(tǒng)性能[56]。
數(shù)據(jù)記錄儀系統(tǒng)設(shè)計(jì)選擇具有快速型內(nèi)核的Nios II軟核處理器,其擁有最高的程序執(zhí)行速度,能提高記錄儀數(shù)據(jù)采集實(shí)時(shí)性。
1.2 系統(tǒng)存儲介質(zhì)
存儲介質(zhì)選用三星公司的K9WAG08 U1 A存儲芯片。每片閃存有16 384塊,每塊有64頁,每頁有2 048 B寫入?yún)^(qū)和64 B備用區(qū),有效期內(nèi)無效塊不大于320個(gè)[7]。頁是存儲芯片讀寫操作的最小單位,典型參數(shù)如表1所示。
表1 K9WAG08U1A存儲芯片的典型參數(shù)
1.3 系統(tǒng)的結(jié)構(gòu)框圖
FPGA選用Altera公司Cyclone IV系列的EP4CE10型器件。
在FPGA內(nèi)用硬件描述語言VHDL設(shè)計(jì)多次觸發(fā)、A/D邏輯控制、數(shù)據(jù)編碼等功能。使用QuartusII工具的Mega Wizard Plug_in Manager設(shè)置相應(yīng)的參數(shù),構(gòu)建兩個(gè)4 k B的內(nèi)部FIFO來緩存模擬量,并采取半滿即讀的方式,即FIFO中存儲2 k B數(shù)據(jù)時(shí),給出半滿標(biāo)志HF。
記錄儀結(jié)構(gòu)組成如圖1所示,包括中心邏輯控制電路、數(shù)據(jù)采集接口電路、FLASH存儲模塊A和FLASH存儲模塊B。Nios II軟核處理器是記錄儀核心控制器,控制與協(xié)調(diào)整個(gè)測試系統(tǒng)中各部分的協(xié)作與運(yùn)行[8]。
系統(tǒng)的具體工作流程是:傳感器采集的模擬信號經(jīng)過信號調(diào)理電路之后送入A/D轉(zhuǎn)換器轉(zhuǎn)化為數(shù)字信號。FLASH存儲器和USB讀數(shù)的數(shù)據(jù)口都是8位,將A/D轉(zhuǎn)換后的12位的數(shù)字信號在FPGA內(nèi)部按預(yù)設(shè)的幀格式進(jìn)行混合編幀。1次A/D轉(zhuǎn)換的數(shù)據(jù)分2次寫入FLASH存儲器。
1.4 數(shù)據(jù)備份原理
為提高記錄儀存儲數(shù)據(jù)的準(zhǔn)確性和可靠性,在采集的過程中,采集數(shù)據(jù)同時(shí)寫入相互獨(dú)立的內(nèi)部FIFO1和FIFO2,核心控制單元Nios II軟核處理器通過檢測內(nèi)部FIFO的半滿標(biāo)志位對雙FLASH存儲器進(jìn)行單獨(dú)讀寫操作,即2個(gè)內(nèi)部FIFO中一個(gè)用于緩沖采樣數(shù)據(jù)的同時(shí)另一個(gè)用于向FLASH寫數(shù),然后互為交替。2個(gè)FLASH雖相互獨(dú)立,但存儲數(shù)據(jù)完全相同,即起到雙備份的效果。FIFO1、FIFO2、核心控制單元Nios II軟核處理器、存儲模塊、USB讀數(shù)之間的數(shù)據(jù)和控制通路如圖2所示。
當(dāng)FLASH存儲器中寫入數(shù)據(jù)的時(shí)候,2個(gè)FLASH存儲器存儲相同的數(shù)據(jù),這樣即使其中一個(gè)FLASH存儲器出現(xiàn)了故障,系統(tǒng)利用另外一個(gè)FLASH存儲器一樣可以正常運(yùn)行,降低電路的失效率,提高其可靠性。
1.5 數(shù)據(jù)存儲結(jié)構(gòu)
根據(jù)該測量系統(tǒng)數(shù)據(jù)幀格式要求,測試數(shù)據(jù)按DATA、幀計(jì)數(shù)、幀尾的結(jié)構(gòu)存儲在Flash中。其中,DATA為26個(gè)字節(jié)的數(shù)據(jù)字節(jié),幀計(jì)數(shù)為4個(gè)字節(jié),幀尾為2個(gè)字節(jié)0x90、0x EB。
2.1 硬件平臺設(shè)計(jì)
SOPC是一種靈活、高效的嵌入式系統(tǒng)硬件解決方案,是以Nios II軟核處理器為核心[9]。將Nios II軟核處理器和功能模塊集成到同一個(gè)現(xiàn)場可編程邏輯陣列FPGA上,構(gòu)成一個(gè)可編程的片上系統(tǒng),減少芯片使用數(shù)量,減小了電路板尺寸,提高了系統(tǒng)穩(wěn)定性。
加入Nios II處理器時(shí),設(shè)置進(jìn)入Nios系統(tǒng)模塊的時(shí)鐘頻率為50 M Hz,Nios II處理器核的設(shè)置頁面如圖3所示。
Nios II嵌入式系統(tǒng)包含Nios II微處理器內(nèi)核、JTAG調(diào)試模塊jtag-uart、RAM IP核、EPCS控制器epcs_flash_controller、存儲FLASH接口、串行通信接口組件UART、并行輸入/輸出口(PIO)等。各組件的地址分配與中斷安排如圖4所示。
2.2 系統(tǒng)SOPC軟件設(shè)計(jì)
軟件系統(tǒng)主要完成數(shù)據(jù)采集和數(shù)據(jù)存儲命令的發(fā)送和控制。
Nios II嵌入式系統(tǒng)的所有軟件開發(fā)任務(wù)都是在Nios II集成開發(fā)環(huán)境(IDE)下完成的,并通過JTAG下載線下載到FPGA中運(yùn)行的。
系統(tǒng)的流程圖如圖5所示。
當(dāng)系統(tǒng)上電或復(fù)位時(shí),系統(tǒng)從串行配置器件EPCS16中讀出用戶數(shù)據(jù),快速配置FPGA,將應(yīng)用軟件調(diào)到Nios II處理器上運(yùn)行。Nios II軟核處理器開始檢測觸發(fā)信號QD并判斷,判斷無誤后對FLASH進(jìn)行擦除操作,擦除結(jié)束后FPGA內(nèi)部A/D控制模塊提供A/D工作的時(shí)鐘,同時(shí)Nios II軟核處理器配置FLASH寫數(shù)據(jù)的地址。配置完地址后發(fā)送寫命令給FLASH芯片,向存儲器FLASH寫入數(shù)據(jù)。當(dāng)數(shù)據(jù)記錄完畢或閃存存滿后,整個(gè)記錄系統(tǒng)就退出數(shù)據(jù)采集,進(jìn)入休眠狀態(tài)。
采用C語言在Nios II IDE開發(fā)工具中實(shí)現(xiàn)控制數(shù)據(jù)讀寫和發(fā)送控制指令功能。
2.3 讀數(shù)接口
通過在Nios II系統(tǒng)中集成通用的UART內(nèi)核,以RS- 232協(xié)議的形式與外界進(jìn)行命令傳輸。通過USB讀取FLASH存儲器中的數(shù)據(jù)上傳到上位機(jī),并通過VB編寫的上位機(jī)軟件顯示給用戶。
3.1 記錄儀擴(kuò)展性
Nios II處理器基于RISC技術(shù),具有16位指令集、5級流水線,在一個(gè)時(shí)鐘周期內(nèi)完成一條指令的處理。設(shè)計(jì)者能夠在Nios指令系統(tǒng)中增加自定義指令。
采用Nios II處理器,不會局限于預(yù)先制造的處理器技術(shù),可以根據(jù)設(shè)計(jì)要求,在FPGA中實(shí)現(xiàn)處理器設(shè)計(jì)。
采用這種設(shè)計(jì)方式,在不改變硬件結(jié)構(gòu)的基礎(chǔ)上,只需對Nios II主程序及上位機(jī)作適當(dāng)修改,便可使該系統(tǒng)具有一定存儲功能或作為不同應(yīng)用系統(tǒng)的前端信號采集子系統(tǒng)。例如可以通過修改Nios II處理器主程序?qū)⒃撚涗泝x改為高速采集系統(tǒng)。
本文的系統(tǒng)采用1塊FPGA實(shí)現(xiàn)整個(gè)系統(tǒng)的設(shè)計(jì),F(xiàn)PGA的資源使用情況如圖6所示。
由圖6可見,在系統(tǒng)的擴(kuò)展性方面,整個(gè)系統(tǒng)占用資源較少,易與其他模塊相連實(shí)現(xiàn)測試數(shù)據(jù)的發(fā)送與接收。本文只是與串口模塊相連完成數(shù)據(jù)讀取,在此基礎(chǔ)上可以與常見的總線接口相連增加新的功能,快速配置FPGA構(gòu)成多標(biāo)準(zhǔn)的數(shù)據(jù)采集傳輸、轉(zhuǎn)發(fā)單元。
3.2 雙備份可行性分析
內(nèi)部FIFO1寫滿N(N=2 k B)字節(jié),給出半滿標(biāo)志HF1。Nios II軟核檢測到半滿標(biāo)志后,以v1(v1=16 MB/s)傳輸速率開始讀內(nèi)部FIFO1存儲的數(shù)據(jù)。讀完數(shù)據(jù)后,改變FLASH A存儲芯片的存儲地址。改變地址的同時(shí)需要進(jìn)行壞塊檢測,遇到壞塊時(shí),跳過壞塊,直至將地址指針指向有效塊地址,然后去檢測FIFO2的半滿標(biāo)志HF2。
1)讀取FIFO1內(nèi)2 k B字節(jié)數(shù)據(jù)時(shí)間t1。
2)檢測壞塊的時(shí)間t2。
通過建立屏蔽壞塊函數(shù)的方法屏蔽壞塊。壞塊識別為檢測當(dāng)前塊前2頁第2 048個(gè)字節(jié)的標(biāo)志FF。
由圖3可知,Nios II處理器指令執(zhí)行速度可達(dá)32 DMIPS。檢測壞塊的時(shí)間主要為讀取當(dāng)前塊前2頁第2 048個(gè)字節(jié)的標(biāo)志所需時(shí)間。
從FIFO1給出半滿標(biāo)志到檢測FIFO2的半滿標(biāo)志需要時(shí)間大約為t。
將表1中tR代入式(3)得t=178μs,即從FIFO1給出半滿標(biāo)志到檢測FIFO2的半滿標(biāo)志需要時(shí)間大約為178μs。
3)系統(tǒng)采樣頻率為f1(f1=320 k Hz),寫2 k B字節(jié)的時(shí)間為t3。
設(shè)計(jì)流程中t3>tPROG+t,則判斷完半滿標(biāo)志位HF1后,讀取內(nèi)部FIFO1數(shù)據(jù)結(jié)束,然后改變FLASH存儲地址,在此期間FIFO2是不會出現(xiàn)溢出現(xiàn)象。
同理在執(zhí)行內(nèi)部FIFO2操作時(shí)FIFO1也不會溢出情況。這說明雙備份記錄儀設(shè)計(jì)中2個(gè)獨(dú)立FLASH可以單獨(dú)交替正常進(jìn)行讀寫操作。
3.3 試驗(yàn)結(jié)果
記錄系統(tǒng)設(shè)計(jì)完成后,在實(shí)驗(yàn)室通過輸入不同幅值和頻率的模擬信號,完成系統(tǒng)調(diào)試。某一模擬信號峰值為5 V,最小值為0 V,基線為2.5V,頻率為100 Hz的正弦信號,圖7為輸入信號的示波器圖。
當(dāng)2個(gè)FLASH中的數(shù)據(jù)都回讀完畢后,通過上位機(jī)軟件對回讀的數(shù)據(jù)按混合編幀模塊設(shè)定的幀標(biāo)志進(jìn)行解包分析,圖8所示為上位機(jī)軟件解包出來的數(shù)據(jù)片段,數(shù)據(jù)中標(biāo)識部分為幀尾及幀計(jì)數(shù)。
從圖8數(shù)據(jù)可知,F(xiàn)LASH A存儲數(shù)據(jù)和FLASH B存儲數(shù)據(jù)完全相同,且存儲數(shù)據(jù)與設(shè)計(jì)數(shù)據(jù)格式完全相同,實(shí)現(xiàn)了記錄儀的雙備份功能。
將FLASH存儲A片通過USB讀數(shù)讀取到上位機(jī)的單通道結(jié)果顯示如圖9所示。
從上位機(jī)顯示結(jié)果可以讀出,正弦信號在一個(gè)周期內(nèi)橫坐標(biāo)Δx內(nèi)包含了3 200個(gè)點(diǎn),縱坐標(biāo)Δy=4 001 bit。其中,Δx表示系統(tǒng)采樣頻率與被采信號頻率的比值,縱坐標(biāo)中1 bit表示被采集信號的峰峰值為1.25 m V,可計(jì)算得到FLASH存儲A片存儲信號的頻率f,峰峰值Vp-p:
由式(5)和(6)可知存儲的信號數(shù)據(jù)與信號源數(shù)據(jù)的峰峰值和頻率一致。
記錄儀電路板實(shí)物尺寸如圖10所示。
通過試驗(yàn)結(jié)果分析,記錄儀能實(shí)現(xiàn)單路模擬信號的采集、雙備份存儲功能,且解決記錄儀小型化的問題。
筆者提出了基于Nios II的新型雙備份記錄儀,實(shí)現(xiàn)了單通道的數(shù)據(jù)采集并實(shí)時(shí)存儲,為相關(guān)器件工作狀態(tài)的特性測試與理論校驗(yàn)提供了詳細(xì)、精確、高可靠性的原始數(shù)據(jù)。比較于傳統(tǒng)記錄儀設(shè)計(jì)的方案,基于Nios II的設(shè)計(jì)更加適合,不僅能解決記錄儀小型化的問題,大大降低了設(shè)計(jì)復(fù)雜度,減少了開發(fā)周期,而且系統(tǒng)的升級十分方便。采用雙備份存儲提高了存儲數(shù)據(jù)的準(zhǔn)確性和可靠性。該設(shè)計(jì)為遙測數(shù)據(jù)的采集存儲提供了一種全新的實(shí)現(xiàn)手段,且具有一定的實(shí)用價(jià)值。
(Referenees)
[1]甄國涌,單彥虎.彈載固態(tài)記錄器高速存儲體系結(jié)構(gòu)設(shè)計(jì)[J].計(jì)算機(jī)工程,2013,39(3):275- 278.ZHEN Guoyong,SHAN Yanhu.Design of high-speed storage architecture of missile-borne solid state recorder[J].Computer Engineering,2013,39(3):275- 278.(in Chinese)
[2]劉光輝,周軍,于曉洲.低成本無人飛行器機(jī)載數(shù)據(jù)記錄儀的設(shè)計(jì)與實(shí)現(xiàn)[J].測控技術(shù),2011,30(1):10- 12.LIU Guanghui,ZHOU Jun,YU Xiaozhou.Design and realization of low-cost UAV airborne data recorder[J].Measurement&Control Technology,2011,30(1):10-12.(in Chinese)
[3]董剛剛,王文廉,張志杰.NAND型FLASH在高速多通道采集存儲系統(tǒng)中的應(yīng)用[J].核電子學(xué)與探測技術(shù),2011,31(2):228- 231.DONG Ganggang,WANG Wenlian,ZHANG Zhijie.The application of NAND flash memory in high-speed multi-channel acquisition storage system[J].Nuclear Electronics&Detection Technology,2011,31(2):228-231.(in Chinese)
[4]張玲,董磊,何偉.基于Nios II的煤礦安全通信系統(tǒng)設(shè)計(jì)[J].重慶大學(xué)學(xué)報(bào):自然科學(xué)版,2006,29(11):89- 91.ZHANG Ling,DONG Lei,HE Wei.Communication system design for coal mine security based on Nios II[J].Journal of Chongqing University:Natural Science Edition,2006,29(11):89- 91.(in Chinese)
[5]江一帆,江飚.基于Nios II的音頻錄播系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2014,34(增刊1):262- 264.JIANG Yifan,JIANG Biao.Design of audio signal recording and playback system based on Nios II[J].Journal of Computer Applications,2014,34(Sup1):262-264.(in Chinese)
[6]LIU Hejin,LI Kejun,LEE Weijen,et al.Development of frequency variable inverter based on SOPC and NIOS II[J].IEEE Transactions on Industry Applications,2013,49(5):2237- 2243.
[7]余輝龍,何昕,魏仲慧,等.應(yīng)用NAND型閃存的高速大容量圖像存儲器[J].光學(xué)精密工程,2009,17(10):2548- 2554.YU Huilong,HE Xin,WEI Zhonghui,et al.High speed and high capacity image recorder based on NAND flash[J].Optics and Precision Engineering,2009,17(10):2548- 2554.(in Chinese)
[8]王華喬,陳銀剛,蔣雪雷,等.基于閃存介質(zhì)記錄儀的設(shè)計(jì)[J].數(shù)字技術(shù)與應(yīng)用,2013(11):16,163.WANG Huaqiao,CEHN Yingang,JIANG Xuelei,et al.Design of recorder based on flash memory medium[J].Digital Technology and Application,2013(11):16,163.(in Chinese)
[9]LING Chaodong,HONG Huafeng,LIU Rong,et al.Design of a new portable telemedicine monitoring equipment based on NIOS II[C]∥Intelligent Signal Processing and Communication Systems,2007.Xiamen:IEEE,2007:64- 67.
New Double Baekup Missile-borne Data Reeorder Based on Nios II
LIU Xuefei1,2,MA Tiehua1,2,LIU Tinghui3,YOU Wenbin1,2,CUI Min1
(1.National Key Laboratory for Electronic Measurement Technology,NUC,Taiyuan 030051,Shanxi,China;2.Key Laboratory for Instrumentation Science&Dynamic Measurement,Ministry of Education,NUC,Taiyuan 030051,Shanxi,China;3.The Aircraft Manufacturing Engineering,NUC,Taiyuan 030051,Shanxi,China)
recorder;FPGA;Nios II;double backup;SOPC
TP73
A
1673-6524(2015)04-0059-05
2015- 03- 16;
2015- 06- 23
山西省青年科技研究基金(No.2013021015- 1)
劉雪飛(1989-),男,碩士研究生,主要從事動(dòng)態(tài)測試與智能儀器技術(shù)研究。E-mail:15135165175@126.com
Abstraet:In response to the problems of excessively large volume of circuit,low functional expansion quality,low security quality of data storage in traditional vehicle telemetry equipment storage recorder,a new double backup recorder based on Nios II is presented.With the program based on SOPC(system on programmable chip)technology,the whole control system is constructed in a single FPGA.Accuracy and reliability of data storage are improved through the double backup storage.The design plan has such advantages as expansion-orientedness and micro volume.The experimental results show that the system performance is stable enough for the realization of the collection and double backup storage of a single analog signal.