基于SOPC的扭振信號測量系統(tǒng)實現(xiàn)研究
系統(tǒng)設(shè)計采用Altera公司的新一代低成本FP―GA―CycloneⅡ系列的EP2C35實現(xiàn)SOPC系統(tǒng)設(shè)計。系統(tǒng)硬件主要包括FPGA上的NiosⅡ處理器系統(tǒng)、FPGA外的接口和外設(shè)兩部分。NiosⅡ處理器系統(tǒng)由基于Avalon Bus的NiosⅡCPU、串行接口、PIO、PIO控制器、存儲器控制器、定時器以及片上RAM等IP組成。
外設(shè)包括:信號拾取整形模塊、USB―Blaster-模塊、Flash、SDRAM、LCD模塊、電源模塊、鍵盤等。信號由光電編碼器拾取后經(jīng)整形模塊進入NiosⅡ處理器,Clock(系統(tǒng)時鐘)模塊提供50 MHz有源時鐘和用戶自定義的外部時鐘。上位PC用軟件接收RS232發(fā)送的連續(xù)采樣數(shù)據(jù),根據(jù)規(guī)定好的協(xié)議,解碼出需求的數(shù)據(jù)進行分析。4個按鍵開關(guān)和PS/2,用于控制信號采樣和數(shù)據(jù)發(fā)送,滿足用戶多種控制要求。系統(tǒng)通過PIO可實現(xiàn)對整形模塊、鍵盤、LCD等外設(shè)的控制。存儲器控制器分別與片外Flash和SDRAM連接,實現(xiàn)對存儲器的訪問。
2.2 系統(tǒng)硬件定制
2.2.1 FPGA硬件模塊設(shè)計
硬件電路板測試完成后,需要設(shè)計FPGA硬件模塊實現(xiàn)數(shù)據(jù)采集。模塊各端口列表,如表1所示,信號采集仿真波形,如圖2所示。輸出信號中所有光電編碼器時間是系統(tǒng)時鐘個數(shù)的計數(shù)值。最后通過軟件模塊計算得到平均扭角、瞬時扭角以及誤差。
如圖2所示,當in_en高有效時,在WrestFlap_one上升沿,寄存器gride_cnt加l,同時gride_time,circl_time開始計算。當下一個WrestFlap_one上升沿時,寄存器gride_cnt加1,直加到一圈格數(shù),然后又重新開始重復的計算。同時當下一個WrestFlap_one上升沿時gride_time輸出計算了上一圈的光電編碼器一格時間。當gride_cnt一圈數(shù)完時,circl_time輸出上一圈的總時間。在WrestFlap_one下降沿,gride_en輸出使能采樣信號,高有效,此信號做為后端fifo寫使能信號。(圖中橢圓區(qū)域為一圈光電編碼信號的輸出,仿真中規(guī)定一圈有10格,第1格對應的gride_time是207,第2格對應的gride_time是219…。)
2.2.2 SOPC硬件模塊加載及系統(tǒng)構(gòu)成
在SOPC Builder中進行扭振測量系統(tǒng)配制。添加Ahera自有的豐富IP核,選擇SOPC Builder生成HDL代碼的類型為Verilog,選擇芯片EP2C35,確定系統(tǒng)工作頻率,配制處理器選項,定義處理器地址,配制外圍設(shè)備,安排存儲器地址和范圍,為外圍設(shè)備和接口設(shè)置所需的中斷優(yōu)先級。同時為優(yōu)化硬件設(shè)計,系統(tǒng)設(shè)計了用戶自定義外設(shè)模塊。SOPC Build所用模塊如下:
(1)NIOS II Processor CPU;
(2)tri_state_bridge(Avalon連接總線);
(3)lcd_16207_0(LCD顯示);
(4)sdram,cfi_flash(存儲器);
(5)button_pio,switch_pio(輸入控制端口);
(6)Dma(傳輸控制)。
2.2.3 用戶自定義外設(shè)設(shè)計
系統(tǒng)設(shè)計自定義模塊是Avalon流模式采集輸入控制器。該控制器設(shè)計符合Avalon總線規(guī)范,功能是將采集的數(shù)據(jù)完整送入SDRAM以便存儲以及方便數(shù)據(jù)處理。系統(tǒng)CPU速率為50 MHz,而采樣速率不定,因此需要FIFO實現(xiàn)前后傳輸?shù)倪B貫性。然后經(jīng)過DMA傳輸通道將數(shù)據(jù)存入SDRAM。Avalon流模式采集輸入控制器硬件結(jié)構(gòu),控制器模塊分為采集模塊和HFO傳輸模塊兩部分。采集模塊實現(xiàn)數(shù)據(jù)的采集,其輸入接口有:write_clk(寫時鐘)、write_en(寫使能)與sample_data(16位數(shù)據(jù)總線)。掛在Avalon總線上的接口有FIFO Q[15:0](數(shù)據(jù)輸出總線)、chipselect(片選信號)、read_req(讀請求信號)、address(Avalon總線地址)read_empty(讀空信號)、read_clk(讀時鐘)。
評論