日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
基于Nios平臺的光信號采集片上系統設計
基于Nios平臺的光信號采集片上系統設計
 更新時間:2008-8-4 5:19:11  點擊數:9
【字體: 字體顏色
Excalibur開發(fā)套件。開發(fā)套件包括以下部分:

*Nios處理器以及外圍接口;

*Quartus II開發(fā)軟件;

*GNDUro編譯器;

*基于APEX EP20K200E FPGA的開發(fā)板;

*相關的開發(fā)例程。

我們使用集成在QuartusII中的SOPC Builder工具來配置生成片上系統。SOPC Builder是一個功能強大的基于圖形界面的片上系統的定義和定制工具,可以在短時間內完成用戶定制的SOPC設計。根據應用的需要,從SOPC Builder庫中選擇IP模塊、存儲器、外圍接口和處理器,并且配置生成一個高集成度的SOPC系統,因而選取以下一些模塊組成片上系統:Nios 32bit CPU、Boot Monitor ROM、Communication UART、debugging UART、Timer、Button PIO、User PIO、LCD PIO、LED PIO、DMA、SPI、Seven Segment PIO、External RAM Bus(Avalon TriState Bridge)、External RAM Interface、External Flash Interface。

同時,SOPC Builder自動產生一些必需的仲裁邏輯來協調系統中以上各個部件的工作,我們將系統的工作頻率設為33MHz。定制完片上系統的硬件后,SOPC Builder還為編寫操作這些片上硬件的軟件代碼提供了一個軟件開發(fā)環(huán)境,這個軟件環(huán)境包括語言頭文件、外圍接口的驅動以及實時操作系統的內核,極大地方便了軟件的開發(fā)。

5 系統實現

以下分兩部分來分析和介紹:①在ApexEP20K FPGA中,使用Verilog編寫時鐘和控制信號發(fā)生器用于驅動CCD和ADC,并且協調兩者的工作;②使用C語言編寫程序,通過SOPC Builder配置的SPI接口讀取ADC輸出的數據。

5.1 時鐘和控制信號發(fā)生器

使用Verilog編寫時鐘和控制信號發(fā)生器,用于產生驅動CCD和ADC的時鐘和控制信號。時鐘發(fā)生器的工作原理是:使用頻率為33MHz的系統時鐘,作為時鐘發(fā)生器的輸入和同步售,用于產生所需的CCD和ADC驅動的時鐘和控制信號。根據系統的要求和CCD以及ADC芯片特性,將產生的CCD時鐘頻率設為1MHz;同時把ADC的時鐘頻率設為33MHz。在時鐘發(fā)生器中,還需對產生CCD和ADC兩個高速設備的時鐘和控制信號進行匹配,使得兩者能夠正常地工作。

現在詳細地分析這兩個高速設備如何完成時序的匹配。由于系統中的CCD和ADC都是依靠外加時鐘同步的高速設備,因此,這兩個設備之間的時序的匹配對于能否獲取正確有效的數據來說至關重要。為了使兩個設備協同工作,首先要分析每個設備所需的外加時鐘和控制兩個外加信號,分別是CCD_ROG和CCD_CLK。CCD_ROG信號使得CCD的輸出數據有效,也就是每次從CCD讀取數據時,都要先給CCD_ROG一個低電平,將CCD置光電轉換后的數據一位位地輸出。ADC進行模數轉換也需要兩個外加信號,分別是ADC_CONV和ADC_CLK。ADC_CONV信號使ADC芯片開始進行模數轉換,每次進行轉換前都要給ADC_CONV一個高電平;同時,轉換過程和轉換后的結果輸出在ADC_CLK信號的同步完成。

由于需要先從CCD光電轉換器讀出模擬數據,所以,要通過CCD_ROG給CCD一個長度為t1(t1=4000ns)的低電平。在CCD_ROG重新變?yōu)楦唠娖胶螅珻CD就在CCD_CLK信號的同步下輸出數據了,在每個CCD_CLK作用下輸出一個模擬量數據。CCD每次輸出的2087個模擬量分別由33個首部偽數據字段、2048個有效數據和6個尾部偽數據字段組成。其中的2048個有效數據和首部偽數據字段的后20個數據就是我們希望得到的,所以從第14個數據到第2081個數據中的每個模擬量,都通過ADC_CONV(ADC_CONV的高電平寬度為4ns),給出一個高電平啟動ADC;同時,在ADC_CLK的作用下,完成模數轉換過程和數字量輸出。圖4、圖5是時鐘和控制信號發(fā)生器的程序流程和仿真時序圖。

    5.2 SPI接口的編程

ADC將模擬信號轉換成數字信號后,Nios通過SPI接口讀入這些信號并進行相應的處理。我們通過Quartus II中的SOPC Builder為Nios核配置SPI接口。在我們的系統中,將SPI配置為從設備。軟件通過訪問存儲器中映射的5個16位的寄存器來控制和讀寫SPI接口。讀入的數據通過MOSI引腳逐位進入移位寄存器。通過移位寄存器的移位和緩沖后,一幀數據進入寄存器rxdata,同時將狀態(tài)寄存器的rrdy位置1,通過訪問rxdata就得到一幀數據。數據被讀取后,rrdy位自動置回0。如果前一幀數據還未從rxdata讀取,后一幀數據就會將原數據覆蓋,造成錯誤,同時將狀態(tài)寄存器的ROE(Read Overwrite Error)位置成1。SPI接口共有4個引腳,分別是MISO(Master Input Slave Output)、MOSI(Master Output Slave Input)、SCLK(同步時鐘)和SS_n。當SS_n為低電平時,從設備可以在SCLK同步作用下讀入數據。系統中的SPI接口是從設備,所以只使用MOSI、SCLK和SS_n三根引腳。圖6是Nios中SPI與ADC的接口示意圖。

從ADS的芯片特性可知,當ADC_CONV在一個高電平的作用下,ADC開始進行模數轉換。ADC_CONV回復到電平后,因為SS_n和ADC_CONV連在一起,所以Nios中的SPI就處于可以讀入數據的狀態(tài)了;同時,在ADC_SCK的作用下ADC輸出數據,而SPI也在相同的時鐘SCLK的作用下,通過MOSI讀入數據。為了能夠準確得到數據,還要將SPI寄存器rxdata的位數設為13位。軟件中,我們將通過等待SPI寄存器的rrdy位的置位,來讀取rxdata中的數據,與此同時寄存器中roe的狀態(tài)決定此幀數據的讀取過程中是否存在數據溢出現象。以下是相關的讀取數據的軟件代碼。

do{

file://讀一行CCD數據

for(i=0;i<2069;i++){

file://等待,直到準備好

while(spi->np_spistatus&np_spistatus_rrdy_mask)==0)

;

file://從SPI數據寄存器讀數據

c[i]=spi->np_spirxdata;

}

file://讀覆蓋狀態(tài)

b=spi->np_spistatus&np_spistatus_roe_mask;

}while(b==8);

結論

本系統經過仿真測試,其功能達到了設計要求,并用HP邏輯分析儀驗證了系統功能。



  • 上一篇: 單片機控制板的設計原則
  • 下一篇: 基于SoC的數字攝像系統
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網站

    網站經營許可證:浙B2-20080178-1