• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于FPGA和NIOS的慣導(dǎo)組件測試系統(tǒng)研究

      2014-07-01 23:45:10張志文
      微處理機 2014年1期
      關(guān)鍵詞:慣導(dǎo)字節(jié)串口

      張志文,彭 彥

      (西安工業(yè)大學電子信息工程學院,西安710032)

      基于FPGA和NIOS的慣導(dǎo)組件測試系統(tǒng)研究

      張志文,彭 彥

      (西安工業(yè)大學電子信息工程學院,西安710032)

      針對慣導(dǎo)組件產(chǎn)品測試中多種信號輸出的測量需求,設(shè)計了一種基于FPGA和NIOS II軟核的雙模式慣導(dǎo)組件數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)以FPGA和USB CY7C68013芯片為核心,實現(xiàn)對4個慣導(dǎo)組件輸出的48路脈沖進行頻率計數(shù)和對8個慣導(dǎo)組件輸出8路串口數(shù)據(jù)的接收,最后通過USB芯片將采集得到的數(shù)據(jù)上傳至測控計算機,并由計算機進行保存、處理和顯示。該設(shè)計降低了采集電路復(fù)雜度,提高了產(chǎn)品測試效率和采集系統(tǒng)的可靠性、穩(wěn)定性。

      慣導(dǎo)組件;現(xiàn)場可編程門陣列;NIOS II軟核;USB芯片;數(shù)據(jù)采集

      1 引 言

      慣性導(dǎo)航系統(tǒng)的核心是慣導(dǎo)組件,通常由陀螺儀和加速度計組成。慣導(dǎo)組件在投入使用前要經(jīng)過嚴格測試,測試平臺一般為一個帶溫箱的三軸轉(zhuǎn)臺,將慣導(dǎo)組件固定在轉(zhuǎn)臺上,通過改變轉(zhuǎn)臺的位置和速率,并在不同溫度下進行測試,從而得到慣導(dǎo)組件的各種狀態(tài)信息。這些信息以脈沖或串口數(shù)據(jù)的形式輸出,由采集系統(tǒng)進行測量或接收,然后由計算機進行處理得到慣導(dǎo)組件的特性參數(shù)。慣導(dǎo)組件的測試需在不同溫度下進行多次測試,不同溫度點還需要保溫和冷卻,通常需要數(shù)天時間,因此需要一個可靠、穩(wěn)定的慣導(dǎo)組件數(shù)據(jù)采集系統(tǒng)。通常國內(nèi)慣導(dǎo)組件測試系統(tǒng)都是使用PCI卡來采集數(shù)據(jù),并需要脈沖和串口兩種采集卡,這種采集卡通常價格較貴,采集路數(shù)有限,還需計算機支持相應(yīng)的PCI插槽[1],采集電路也較復(fù)雜,數(shù)據(jù)傳輸出錯時也不易排查原因。

      針對這種情況,提出了一種基于FPGA和NIOS軟核的設(shè)計方案,集成脈沖測量和串口數(shù)據(jù)接收于同一系統(tǒng)?;贔PGA設(shè)計了脈沖計數(shù)采集電路,并在FPGA中建立一個帶有多個串口模塊的NIOS II軟核處理器,控制脈沖和串口數(shù)據(jù)的采集,最后利用USB芯片將數(shù)據(jù)上傳到計算機中處理。

      2 系統(tǒng)方案設(shè)計

      根據(jù)慣導(dǎo)組件數(shù)據(jù)采集系統(tǒng)的要求,既能對4個慣導(dǎo)組件輸出的48路脈沖信號(每個慣導(dǎo)組件輸出6路陀螺儀信號和6路加速度計信號)進行頻率計數(shù),又能接收經(jīng)過導(dǎo)航計算機板處理過的8個慣導(dǎo)組件輸出的串口數(shù)據(jù)。因此是一個多模式的數(shù)據(jù)采集系統(tǒng),采集系統(tǒng)結(jié)構(gòu)框圖如圖1所示。

      圖1 采集系統(tǒng)結(jié)構(gòu)框圖

      在上圖中,F(xiàn)PGA芯片采用了ALTERA公司的CycloneⅢEP3C16Q240C8型號芯片。該芯片內(nèi)部擁有15408個邏輯單元、支持20個全局時鐘網(wǎng)絡(luò)和4個鎖相環(huán),并支持多種外設(shè)接口[2],完全滿足系統(tǒng)邏輯設(shè)計需求。48路脈沖計數(shù)模塊通過Verilog語言編寫完成,8路串口數(shù)據(jù)接收模塊通過在NIOS II軟核處理器中構(gòu)建8個UART外設(shè)核來實現(xiàn)。NIOS II軟核通過定時器每5ms讀取一次脈沖計數(shù)器的計數(shù)值,然后通過CY7C68013 USB芯片發(fā)送到上位機。串口數(shù)據(jù)通過設(shè)定好波特率的UART核來接收,NIOS II軟核通過中斷方式接收串口數(shù)據(jù)并存儲,同樣通過USB芯片發(fā)送到上位機。上位機用VC++6.0設(shè)計MFC應(yīng)用程序,接收USB芯片發(fā)送上來的數(shù)據(jù),然后對其進行保存、處理和顯示。

      3 FPGA內(nèi)部邏輯設(shè)計

      3.1 48路脈沖計數(shù)器設(shè)計

      設(shè)計使用Quartus II 9.0開發(fā)軟件完成,通過Verilog語言編寫48路帶有鎖存器的16位計數(shù)器,對脈沖上升沿進行計數(shù),NIOS II軟核處理器每5ms提供一個鎖存信號鎖存48路計數(shù)器的計數(shù)結(jié)果,并依次選通48路地址讀取計數(shù)值保存,然后發(fā)送到USB芯片的FIFO再上傳給上位機。48路計數(shù)器模塊如圖2所示,data_in為48路脈沖信號輸入,add為選通地址,en為鎖存信號。data_maichong為上傳的脈沖計數(shù)值。

      圖2 48路脈沖計數(shù)器模塊圖

      3.2 NIOS II軟核及8路串口模塊設(shè)計

      使用集成于Quartus II軟件中SOPC Builder工具可以很方便構(gòu)建Nios II軟核。本系統(tǒng)中FPGA外設(shè)使用了HY57V641620FTP-6的SDRAM芯片作為數(shù)據(jù)存儲器和EPCS4芯片作為程序存儲器,由此軟核需要構(gòu)建的模塊有:CPU處理器、EPCS控制器、SDRAM控制器、定時器控制器,8個UART控制器以及其他各種IO接口[3]。

      系統(tǒng)中要求同時接收8個慣導(dǎo)組件輸出的8路串口數(shù)據(jù),所以要在軟核中構(gòu)建8個UART模塊,設(shè)置好串口波特率和中斷優(yōu)先級。外部電平轉(zhuǎn)換電路采用MAX488串口芯片,將422電平轉(zhuǎn)化成UART接口的TTL電平,這樣串口模塊就能完成數(shù)據(jù)的收發(fā)。通常MCU很少帶有4個以上的串口,涉及多串口通訊時不可避免要進行串口擴展,而在Nios II軟核系統(tǒng)中,串口數(shù)量和波特率都可以自由調(diào)整,同時串口模塊集成于FPGA內(nèi)部,免去了使用多串口卡或串口擴展芯片帶來的復(fù)雜電路,使整個系統(tǒng)的可靠性和穩(wěn)定性得到了保證。

      4 USB傳輸模塊設(shè)計

      USB模塊采用Cypress公司的CY7C68013A-128AXC型號的USB芯片作為該模塊的核心。該芯片集成USB2.0收發(fā)器,串行接口引擎(SIE)和增強型8051內(nèi)核,并具有4KB FIFO存儲器,支持8位或16位數(shù)據(jù)接口,內(nèi)部SIE可以工作在全速(12Mb/s)和高速(480Mb/s)傳輸速率下[4]。

      CY7C68013與外部的接口主要有三種方式:端口模式、GPIF控制器模式和SLAVE FIFO模式。其中SLAVE FIFO模式是一種從屬模式,外部邏輯或外部處理器可以直接連接并控制FIFO端點,不需要內(nèi)部8051的參與就能完成數(shù)據(jù)的高速傳輸[5]。系統(tǒng)選用了SLAVE FIFO接口模式與FPGA連接。由于FPGA中已經(jīng)建立了NIOS軟核處理器,其工作頻率可達200MHz以上,遠超過8051內(nèi)核的最高工作頻率48MHz,數(shù)據(jù)處理和傳輸完全由NIOS軟核處理器控制完成,避免了在串口波特率較高時,8051工作頻率有限情況下可能導(dǎo)致的數(shù)據(jù)出錯和丟失情況。

      CY7C68013中包含了3個64字節(jié)的端點緩沖區(qū)(EP0、EP1IN和EP1OUT)和4KB FIFO緩沖區(qū)。FIFO中的EP2、4、6、8用于高帶寬數(shù)據(jù)傳輸,端點最大緩沖1024字節(jié)。由此采用了EP2、6兩個端點用來分別傳輸脈沖和串口數(shù)據(jù),使用EP0端點用于上位機和FPGA之間控制命令的發(fā)送。

      SLAVE FIFO模式下FPGA與USB的接口如圖3所示。

      圖3 FPGA與USB接口連接圖

      其中PA3用于提供中斷信號進入模式選擇,F(xiàn)IFO0和FIFO1用于選通FIFO端點,PKEND、FLAGD、FLAGB用于設(shè)定引腳的工作方式,PC[7:0](ADR[7:0])用于向FPGA發(fā)送模式選擇命令,DATA[15:0]用于發(fā)送數(shù)據(jù)。

      5 系統(tǒng)軟件設(shè)計

      系統(tǒng)軟件設(shè)計主要包括三部分:NIOS中下位機程序、USB固件程序和上位機應(yīng)用程序。

      5.1 NIOS下位機程序設(shè)計

      NIOS II軟核中的下位機程序是整個系統(tǒng)運行的核心,使用NIOS II IDE集成開發(fā)環(huán)境進行開發(fā),主要包括三部分:模式選擇程序,脈沖數(shù)據(jù)接收程序和串口數(shù)據(jù)接收程序。

      (1)模式選擇程序

      選擇脈沖和串口兩種模式,另外還有采集脈沖周期和串口波特率的選擇。通過設(shè)定USB PA3腳引入一個外部PIO中斷(最高優(yōu)先級)進入到中斷程序中,然后讀取PC[7:0]上的8位二進制數(shù)值,使用該值的最高位作為模式選擇判斷位(1為串口,0為脈沖),低4位代表波特率選擇,中間3位代表采集周期選擇。

      (2)脈沖接收程序

      依靠在軟核中建立的定時器控制器設(shè)定定時器每5ms中斷一次,進入定時器中斷服務(wù)程序后,首先用API函數(shù)向計數(shù)器寫入鎖存信號en,然后依次向計數(shù)器的選通地址端寫入48路脈沖的地址,根據(jù)該地址讀取48路脈沖計數(shù)值并分別存儲起來,最后主程序?qū)⒂嫈?shù)值發(fā)送到USB FIFO中。

      (3)串口接收程序

      串口模塊要求接收8路RS-422數(shù)據(jù),每路數(shù)據(jù)是一個49字節(jié)的數(shù)據(jù)幀,實驗中使用單片機數(shù)據(jù)源每5ms發(fā)送一次。設(shè)定頭兩個字節(jié)為幀頭,中間46個字節(jié)為慣導(dǎo)組件的狀態(tài)信息數(shù)據(jù),最后一個字節(jié)為中間46字節(jié)的校驗和。8路串口數(shù)據(jù)通過中斷方式按字節(jié)進行接收,按中斷優(yōu)先級的高低分別響應(yīng)。接收數(shù)據(jù)時首先判斷幀頭,然后接收數(shù)據(jù)存放在緩沖區(qū)并與校驗和對比,確認無誤后主程序?qū)?shù)據(jù)發(fā)送到USB的FIFO中。

      下位機程序流程圖如圖4所示。

      5.2 USB固件程序設(shè)計

      USB固件程序是用來控制芯片完成所設(shè)定的功能,系統(tǒng)中使用了CY7C68013的SLAVE FIFO接口模式。首先CY7C68013上電之后會調(diào)用TD_Init()函數(shù)來完成初始化狀態(tài)寄存器的配置[5],包括選擇接口模式、外部主控制器使能、以及端點的方向、緩沖倍數(shù)、發(fā)送方式的配置等。

      下一步對各端點的FIFO進行設(shè)置,啟用EP2端點接收脈沖的數(shù)據(jù),16位計數(shù)器48路脈沖5ms的數(shù)據(jù)量為48個字節(jié),所以設(shè)定包的大小為960字節(jié)(最大1024字節(jié))。啟用EP6端點接收串口的數(shù)據(jù),下位機處理過程中對每路串口的每幀數(shù)據(jù)作了1個字節(jié)的標記,每一路變成50個字節(jié),8路串口每5ms數(shù)據(jù)量為400字節(jié),設(shè)定包的大小為800字節(jié)(最大1024字節(jié))。設(shè)定程序如下所示:

      EP2AUTOINLENH=0x03;

      SYNCDELAY;

      EP2AUTOINLENL=0xC0;//設(shè)置包大小為960字節(jié),接收脈沖數(shù)據(jù)

      SYNCDELAY;

      EP6AUTOINLENH=0x03;

      SYNCDELAY;

      EP6AUTOINLENL=0x20;//設(shè)置包大小為800字節(jié),接收串口數(shù)據(jù)

      SYNCDELAY;

      圖4 下位機程序流程圖

      上位機對下位機發(fā)送命令(模式選擇等)通過Cypress標準固件框架使用控制傳輸來實現(xiàn),只需在DR_VendorCmnd函數(shù)中加入處理過程即可。這部分程序可以利用自定義上位機發(fā)送的SETUPDAT令牌包來傳送8位二進制數(shù)值命令。

      CY7C68013屬于EZ-USB FX2芯片系列,其配套的設(shè)備驅(qū)動程序EzUsb.inf為EZ-USB通用驅(qū)動程序(GPD),該文件包含了硬件設(shè)備驅(qū)動程序的安裝信息[6],安裝完成后計算機將獲取的USB外設(shè)信息與EzUsb.inf文件中信息進行匹配,找到相應(yīng)的USB設(shè)備驅(qū)動程序。

      5.3 上位機應(yīng)用程序設(shè)計

      上位機程序開發(fā)采用VC++6.0中的MFC進行編程開發(fā),VC編程的應(yīng)用程序利用USB總線接收數(shù)據(jù),再由MFC實現(xiàn)對數(shù)據(jù)的接收、解算處理、顯示和保存。

      上位機程序訪問USB設(shè)備時,首先調(diào)用Win 32函數(shù)CreateFile()來得到USB設(shè)備句柄,通過DeviceIoControl()函數(shù)訪問設(shè)備驅(qū)動程序[7],該函數(shù)發(fā)送命令到設(shè)備驅(qū)動程序,連接USB設(shè)備,然后通過USB總線接收上傳的數(shù)據(jù)。

      上位機程序的流程圖如圖5所示。

      圖5 上位機程序流程圖

      6 實驗結(jié)果

      采集系統(tǒng)的測試在實驗室中進行,使用SP1641D信號發(fā)生器作為脈沖信號源,用多路開關(guān)板擴展為48路同源信號。信號源輸出信號為575Hz時,測量結(jié)果如圖6所示。在實驗室多次測量后發(fā)現(xiàn),在低頻時脈沖計數(shù)值準確,高頻時脈沖計數(shù)值有1-2個誤差,總體誤差率在允許范圍內(nèi),符合慣導(dǎo)組件的測試要求。

      串口測試使用了ST89C52單片機構(gòu)成的多串口信號發(fā)生器,可以輸出RS-422和RS-232串口信號,測試結(jié)果如圖7所示,接收的數(shù)據(jù)準確無誤,8路串口同步率良好。

      7 結(jié)束語

      這種針對慣導(dǎo)組件測試所采用的設(shè)計,集成脈沖測量和串口數(shù)據(jù)接收于同一系統(tǒng),可對多個產(chǎn)品的不同信號輸出同時測試,節(jié)約了資源,降低了成本。與傳統(tǒng)的測試系統(tǒng)相比,SOPC設(shè)計高度集成,降低了電路復(fù)雜度,提高了測試效率和系統(tǒng)的可靠性、穩(wěn)定性。同時本系統(tǒng)安裝簡便,操作界面人性化,后期便于維護升級,可以作為慣導(dǎo)組件測試的新設(shè)備。

      圖6 48路脈沖測量結(jié)果

      圖7 8路串口數(shù)據(jù)接收結(jié)果

      [1]張志文,趙浩.慣導(dǎo)組件的脈沖輸出測控系統(tǒng)[J].西安:西安工業(yè)大學學報,2009,29(5):461.

      [2]Altera Corporation.CycloneⅢDevice Handbook[DB/OL].2007.07.http://www.altera.com.

      [3]李蘭英.Nios II嵌入式軟核SOPC設(shè)計原理及應(yīng)用[M].北京:北京航空航天大學出版社,2006:26-184.

      [4]錢峰.EZ-USB FX2單片機原理、編程及應(yīng)用[M].北京:北京航空航天大學出版社,2006.

      [5]CypessSemiconductor Corporation.Impementing an 8-bit Asynchronous Peripheral Interface Utilizing the EZ-USB FX GPIF/Slave FIFOs[M/OL].2002.

      [6]駱毅.撓性陀螺組合脈沖測試及系統(tǒng)標定[D].西安:西安工業(yè)大學,2012:32-43.

      [7]孫鑫,余安平.VC++深入詳解[M].北京:電子工業(yè)出版社,2007:453-568.

      [8]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程(第2版)[M].北京:北京航空航天大學出版社,2008.

      [9]袁志軍.基于FPGA的高速率多串口擴展的設(shè)計與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學,2008.

      Research on Testing System for Inertial Navigation Com ponents Based on FPGA and NIOS

      ZHANG Zhi-wen,PENG Yan
      (School of Electronics Information Engineering,Xi’an Technological University,Xi’an 710032,China)

      For the requirement of measuring the output of multiple signals in the test of inertial navigation components,a dual-mode data acquisition system of inertial component is designed on the basis of FPGA and NIOS IIsoft-core.The system takes FPGA and USB CY7C68013 as its core to count the 48 ports pluses outputted by 4 inertial navigation components and receive serial port data of 8 ports outputted by 8 inertial navigation components.In the end,the collected data will be uploaded to a controlling computer through a USB chip,and saved,processed,displayed by the computer.This design reduces complexity of the acquisition circuit,raisesmeasurement efficiency and promotes the reliability and stability of the acquisition system.

      Inertial navigation component;FPGA;NIOS IIsoft-core;USB chip;Data collection

      10.3969/j.issn.1002-2279.2014.01.023

      TP274

      :A

      :1002-2279(2014)01-0085-05

      張志文(1957-),男,陜西西安市人,教授,碩士生導(dǎo)師,主研方向:計算機測控技術(shù)、智能化儀表。

      2013-09-18

      猜你喜歡
      慣導(dǎo)字節(jié)串口
      No.8 字節(jié)跳動將推出獨立出口電商APP
      淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
      No.10 “字節(jié)跳動手機”要來了?
      自適應(yīng)模糊多環(huán)控制在慣導(dǎo)平臺穩(wěn)定回路中的應(yīng)用
      無人機室內(nèi)視覺/慣導(dǎo)組合導(dǎo)航方法
      簡談MC7字節(jié)碼
      基于Bagging模型的慣導(dǎo)系統(tǒng)誤差抑制方法
      USB接口的多串口數(shù)據(jù)并行接收方法探索
      基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
      地礦測繪(2015年3期)2015-12-22 06:27:26
      基于多線程的慣導(dǎo)邏輯仿真器設(shè)計
      計算機工程(2015年4期)2015-07-05 08:28:57
      中宁县| 陕西省| 嘉定区| 二手房| 肇东市| 三明市| 务川| 汝南县| 兴城市| 介休市| 昌邑市| 宁晋县| 邵东县| 清水河县| 阳东县| 专栏| 华蓥市| 静海县| 赤壁市| 东乡族自治县| 屯昌县| 榆林市| 额尔古纳市| 万盛区| 岚皋县| 竹北市| 牙克石市| 建宁县| 苏尼特右旗| 安阳市| 衡东县| 巍山| 金秀| 车致| 沙田区| 隆子县| 柯坪县| 基隆市| 独山县| 祁连县| 永清县|