《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于NiosII的自由落體分析儀的設計
基于NiosII的自由落體分析儀的設計
來源:微型機與應用2013年第7期
蘭建平,董秀娟
(湖北汽車工業學院 電氣與信息工程學院,湖北 十堰 442002)
摘要: 給出了一種研究自由落體運動的新方法,提出了一種以Altera NiosII的SoPC為核心處理單元的自由落體分析儀的設計方案,并介紹了分析儀的軟硬件設計過程。該自由落體分析儀可提高測量精度,使復雜的系統在單片FPGA上實現。實驗結果表明,該系統穩定可靠,各項指標均已經達到設計要求。
Abstract:
Key words :

摘  要: 給出了一種研究自由落體運動的新方法,提出了一種以Altera NiosIISoPC為核心處理單元的自由落體分析儀的設計方案,并介紹了分析儀的軟硬件設計過程。該自由落體分析儀可提高測量精度,使復雜的系統在單片FPGA上實現。實驗結果表明,該系統穩定可靠,各項指標均已經達到設計要求。
關鍵詞: NiosII;SoPC;自由落體分析儀;FPGA

 與通用MCU相比,FPGA采用軟件來設計硬件,所有的實現最終都將轉化為其內部的硬件邏輯,而且FPGA可以產生精準的時間基準。然而,如果對FPGA內部所有硬件邏輯都通過編程實現,則由于FPGA本身的特點難免使系統中存在競爭冒險,系統穩定性難以保證。而且編程任務量大,難以實現。軟核處理器技術是一種全新的設計理念,它將FPGA設計劃分為硬件和軟件兩個方面。硬件可以利用芯片設計商所提供的各類標準外設實現系統所需接口及控制邏輯,軟件可以專注于各種控制算法的實現。對于一些通用MCU無法滿足的應用(如高精度實時測量、豐富的片內外設、硬件可定制可擴展的系統)來說,FPGA能夠滿足實時、高精度和硬件可定制等多方面的要求。NiosII是Altera[1]的第二代FPGA嵌入式軟核處理器,其指令執行速率可達200 DMIPS。對于本文所設計的自由落體分析儀,NiosII能夠滿足系統各方面的需求。
 自由落體分析儀在測量領域應用非常廣泛,可以用來研究落體運動,準確測量地球各點的絕對重力加速度值,對國防建設、經濟建設和科學研究有著十分重要的意義。
 本文設計了一種基于Altera NiosII軟核處理器為核心單元的自由落體分析儀。該系統在FPGA芯片中實現用戶自定制的處理器,其硬件結構包括步進電機控制單元、光電編碼器信號采集單元、存儲器模塊、電源模塊、UART接口、PC顯示終端及SoPC模塊Altera CycloneII EP2C8。


 

 

2 系統的硬件設計
 硬件部分的設計可以分為兩個部分。第一部分是硬件平臺的設計,包含了主芯片EP2C8、外設芯片(SDRAM、配置芯片和Flash)以及它們之間的互聯;第二部分是定制系統需要的硬件系統,即設計處理器 軟核和相關外設的控制邏輯。這部分的工作是整個系統設計的基礎。
整個硬件系統的核心是基于Cyclone II系列FPGA(EP2C8Q208C8)的SoPC模塊。系統的結構框圖如圖2所示。Nios II軟核處理器定義主從設備之間的接口與通信時序,通過Avalon交換式總線連接各個控制模塊和多個IP核,包括SoPC Builder工具自定義生成的IP核模塊。SoPC Builder中包含3種可選的軟核處理器,分別是:Nios II/f(快速)——消耗FPGA資源最多,系統性能最高;Nios II/s(標準)——性能和FPGA使用量都是中等的;Nios II/e(經濟)——所占FPGA資源最少,性能最低[2-3]。根據系統的需求,Nios II/f(快速)型軟核處理器完全能滿足本設計的需求。FPGA中還包括鎖相環、CPU與外部設備的接口,PWM輸出模塊對電機進行調速,數據采集模塊處理光電編碼器的測量數據,EPCS4用來上電時對FPGA進行配置,調試程序的JTAG_UART通信模塊,此外,電源管理模塊為電機、光電編碼器和FPGA提供工作所需電源電壓。

 在NiosII處理器電機控制端口,當out_port_ from_the_motor=00時,電機正轉,小球下降;當out_port_ from_the_motor=01時,電機反轉,小球上升。在FPGA電路和電機驅動放大電路之間加光電耦合器(TLP521)以實現電氣隔離,可以提高系統的抗干擾性。L298片內有兩個相同的模塊,每個模塊有3個控制輸入端:一個使能端和兩個方向控制端。如圖2所示,NiosII產生的PWM信號經過光電耦合器連接到L298芯片的使能端,NiosII提供的兩路PWM信號提供步進電機調速控制,從而小球做勻速直線運動來測量位移。通過將NiosII的并行輸入輸出模塊(PIO)輸出的信號送入L298的方向控制端,來控制步進電機的轉向和制動狀態。本系統還使用了光電編碼器對電機進行速度檢測并反饋給NiosII,實現完整的閉環控制系統。
光電編碼器三相信號(A、B、Z)經整形電路后的脈沖信號送入FPGA的數據采集模塊[4],數據采集模塊主要是為時間和位移做準備,這里主要是測量相鄰的時間脈沖和位移脈沖上升沿之間的個數,方便NiosII處理器計算時間和位移以及進行時間和位移數值轉換。
 片上存儲器采用EP2C8 FPGA提供165 888 bit的RAM內存,共計36個M4K RAM blocks,8 256個LEs。
定時器Timer用來提供系統所需的時鐘節拍。
 PIO通過2 bit的二進制信號來檢測操作面板的按鍵觸發信號、判斷電機控制器的參數并進行小球位置檢測。
 通用異步收發器(UART)提供了人機交互接口,與上位進行通信以及程序調試。這里,USB接口可視作一個虛擬的通用異步收發器來訪問。系統運行中,閃存存儲配置文件,而SDRAM存儲各類數據。
設計軟硬件接口的任務是完成驅動程序的編寫工作,驅動程序是連接硬件與軟件的橋梁。此外,軟硬件接口的另一個重要工作是進行硬件初始化,處理器從復位狀態進入操作系統能夠運行的狀態,也就是把控制權交給操作系統或應用程序之前,硬件和驅動必須做的一些工作。利用Altium Designer工具完成電路板的PCB版圖設計。
3 處理器的定制與系統的工作原理
 NiosII處理器采用32 bit指令﹑32 bit數據和地址﹑32 bit通用寄存器和32個外部中斷源[5],能在高性能的Stratix或低成本的Cyclone芯片上實現,配置最合適的處理器、選擇合適的外設和接口組合。
本系統是以NiosII處理器作為實現控制的中央處理器,實驗證明,NiosII軟核處理器主頻可以平穩運行在120 MHz,速度相當快。設置總線時鐘頻率為50 MHz。
 利用SoPC Builder開發工具創建用戶定制的NiosII處理器,其地址映射和中斷優先級分配如圖3所示。圖4所示的本系統定制的NiosII處理器還加入了CPU核、EPCS、SDRAM、TIMER、PIO、數碼管和UART等外圍接口電路,以實現NiosII與外設的通信。


 SoPC Builder將定制的處理器轉化為Verilog HDL等具體的設計文件,自動生成針對硬件環境的C語言和匯編語言的頭文件以及函數庫。
 在Quartus II中實現重力加速度測量系統用戶定制的NiosII處理器模塊如圖4所示。主要端口包括時鐘信號clk、復位信號reset_n、中斷信號int_port_to_the_INT、光電編碼器采集數據in_port_to_the_data_out[31..0]、電機控制信out_port_from_the_motor[1..0]、LCD顯示coe_seg_ from_the_seg、UART發送和接收端口。由于NiosII是在FPGA片內實現的,因此它既可以通過引腳連到外部與其他設備相連接,也可以直接連到片內的其他模塊上。同樣,FPGA片內未被使用的資源仍然可以被配置到其他模塊使用,從而實現系統的集成。
 電路板上只有一個頻率為50 MHz的外部晶振,顯然無法滿足設計所需的各種頻率要求。于是采用FPGA內嵌的模擬鎖相環PLL(Phase Lock Loop)進行分頻與倍頻,以滿足系統設計中各個模塊不同頻率的要求。由鎖相環模塊提供CPU的時鐘和SDRAM的時鐘(兩個時鐘大小均為50 MHz,相位相差63°),以及光電編碼器數據采集模塊所需的高頻時鐘200 MHz。當產生測量時間按鍵中斷時,小球做自由落體運動,下落的過程中遮擋光電門對管時,產生一系列脈沖,以高頻200 MHz為基準頻率測出相鄰脈沖上升沿之間的時間就是要測量的時間。當產生測量距離按鍵中斷時,小球再次通過光電門對管,遮擋光電門時會產生一系列脈沖,通過測量模塊得到相鄰兩個脈沖上升沿之間編碼器的轉數N,要測的位移S=N×c,其中c為光電編碼器轉軸的周長。
4 系統軟件設計
 為了操作這些片上硬件,SoPC Builder提供了一個編寫軟件代碼的NiosII集成開發環境(IDE)[6],軟件編程采用C語言和VHDL語言完成,在NiosII IDE下完成所有軟件開發任務,包括編輯、編譯、調試程序和下載[7]。在進行軟件設計時,根據NiosII處理器系統的需求自動生成開發向導,避免手動設置帶來的不便,節省時間,縮短開發周期[8]。基于SoPC平臺NiosII處理器的整個軟件系統由實現不同軟件功能的模塊組成,包括:主程序模塊、串口中斷子程序、光電編碼測量子程序、電機驅動程序、數據處理子程序和上位機顯示程序。
    在本測量系統中,NiosII程序實現如下3個任務。(1)系統設置了多個按鍵,當按下按鍵時,由NiosII軟核識別鍵值完成不同的中斷操作。(2)通過UART模塊得到上位機發出的控制任務及控制參數,接收與步進電機同軸的光電編碼器的反饋信號,經CPU計算和處理后得到糾正后的PWM控制參數并傳達給自定制的PWM模塊,由PWM模塊輸出相應的PWM信號控制直流電機的正反轉狀態,從而實現小球做勻速直線運動來精確測量兩點間的位移。(3)進行數據運算和進制轉換,中間過程要進行乘法除法運算,測量的時間換算成秒為單位,位移換算成米為單位。
 圖5是測量系統的主程序流程圖。系統初始化時,使用函數IOWR(SIGNAL_CAP_0_BASE,0,1)將采集模塊全局信號復位,接著判斷串口是否有數據,處理串口數據,判斷按鍵值,使用KEY->INTERRUPT_MASK=1注冊中斷,使用alt_irq_register(KEY_IRQ,NULL,ISR_key)來建立用戶中斷程序,對各個按鍵中斷響應進入中斷服務程序sig_cap_irq_proc_tests、sig_cap_irq_proc_testt、sig_ cap_irq_proc_ up、sig_cap_irq_proc_down、sig_cap_irq_proc_ stop。當完成時間/位移測量后,產生一個硬件中斷,將標志flag_INT置1。當主循環程序判斷flag_INT為1時,就可以從外擴的SDRAM中將時間/位移數據讀入SDRAM中,其中包括用戶自定義指令和硬件模塊實現的數據運算和進制轉換部分。最后主要使用IOWR_ ALTERA_AVALON_PIO_DATA(SEG_SEL_BASE,0xff)、IOWR_ALTERA_AVALON_PIO_DATA(SEG_SEL_BASE,bittab[cnt])和IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_BASE,0)3個函數來顯示測量結果。

 本文基于NiosII設計了自由落體分析儀,提出了一種軟硬件綜合的解決方案,同時完成了底層的硬件系統和相應的軟件的實現。由于SoPC技術先天具有巨大的靈活性,因此在本文設計的基礎上可以配合NiosII軟核的強大功能進行功能擴展和系統升級,以提高系統的性能,拓展應用領域。不僅如此,采用IP核復用技術基于NiosII進行嵌入式系統設計可以大大縮短硬件開發周期。
參考文獻
[1] 方茁,彭澄廉,陳澤文.基于NIOS的SoPC的設計[J].計算機工程與設計,2004,25(4):504-507.
[2] 李羚梅,吳志勇,崔明.基于NIOSⅡ處理器的B碼解調設計[J].計算機工程,2010,36(9):263-265.
[3] 李蘭英.SoPC設計原理及應用[M].北京:北京航空航天大學出版社,2006.
[4] 馬永杰,董秀娟,王軻.基于FPGA的高精度光電編碼器接口電路的設計[J].西北師范大學學報,2011,47(4):43-47.
[5] 任愛峰,初秀琴,常存,等.基于FPGA的嵌入式系統設計[M].西安:西安電子科技大學出版社,2005.
[6] 謝東輝,齊偉民.基于NiosⅡ片上可編程系統(SOPC)實現的雷達監控系統[J].中國科學院研究生院學報,2010,27(1):63-69.
[7] 楊光輝,鄔江興.基于FPGA中IP核的IRL系統設計方法[J].計算機應用研究,2008,25(1):190-194.
[8] 劉明貴,梁昊.基于SoPC的低應變反射波檢測系統[J].電子技術應用,2010,36(7):87-89.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 亚洲a∨无码男人的天堂| 国产精品乱码一区二区三区| 亚洲日本天堂在线| 韩国免费A级作爱片无码| 工囗番漫画全彩无遮挡| 亚洲国产精品热久久| 色综合a怡红院怡红院首页| 大地资源在线资源官网| 九九久久久久午夜精选| 精品欧美一区二区三区久久久| 国产精品福利一区二区| 中文字幕校园春色| 欧美日韩免费在线视频| 国产999精品久久久久久| 91手机看片国产福利精品| 日日碰狠狠添天天爽超碰97| 亚洲激情视频网站| 草的爽免费视频| 国产高清在线看| 久久久久久久久久久久福利| 污污视频网站免费| 国产乱子伦精品无码码专区 | 国产真实伦在线观看| 东北女人下面痒大叫| 欧美免赞性视频| 午夜福利啪啪片| 日本高清xxxxx| 女人让男人免费桶爽30分钟| 久久精品桃花综合| 激情内射亚州一区二区三区爱妻| 国产午夜影视大全免费观看| 99久久亚洲综合精品网站| 浪荡女天天不停挨cao日常视频| 日韩精品无码免费一区二区三区 | 337p西西人体大胆瓣开下部| 无人高清视频免费观看在线动漫| 亚洲成人午夜电影| 精品调教CHINESEGAY| 国产无套粉嫩白浆在线观看| caoporn成人| 日本一区中文字幕日本一二三区视频|