新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于FPGA的SoC和嵌入式系統的遠程監控系統

        基于FPGA的SoC和嵌入式系統的遠程監控系統

        作者: 時間:2010-09-27 來源:網絡 收藏

          1.1 Niosii軟核CPU

          NiosII軟核CPU是A137ERA公司推出的一種通用32位RISC處理器,它特別為可編程邏輯進行了優化設計,并配備有功能完善的開發套件,包括C/C++編譯器、集成開發環境(IDE)、JTAG調試器等,是ALTERA公司可編程單芯片系統解決方案的核心。

          作為一個軟核處理器,NiosII提供了可配置的硬件及軟件調試特性,包括基本的JTAG的運行控制(運行、停止、單步、存儲器等)、硬件斷點、數據觸發、片內和片外跟蹤、邏輯分析儀。這些強大的工具可以在開發階段使用,調試通過后便可以去掉,節省資源。NiosII處理器還提供了高、中、低三種不同性能的內核,通過與ALTERA提供的超過60種IP核(UART、時鐘、DMA、SDRAM、并行I/0等)結合使用,設計師可以方便地針對特定的應用創建一個在處理器、外設、存儲器和I/O接口方面都完美的方案。除此以外,NiosII還有很多其他優秀的特性,如指令定制、硬件加速器等。

          1.2 網絡接口單元

          以太網接口芯片采用了SMSC公司專門用于產品的LAN91C111快速以太網控制器。該芯片內部同時集成了以太網介質訪問控制器(MAC)及物理層收發器(PHY),支持10/100M全雙工傳輸模式、自動協商及流控等功能。其主機接口具有同步總線、異步總線等多種工作模式,可以方便地與各種體系的CPU連接。本設計中使用了異步總線接口模式,并與FLASH共用地址線和數據線,通過上的適配模塊連接到Avalon片內總線。

          1.3 存儲器單元

          由于存儲操作系統內核、應用程序代碼、程序數據等的需要,本系統使用了一片型號為AM29LV320D的FLASH芯片。該芯片由AMD公司推出,容量為4MB,支持CFI接口,其與AvMon總線的連接需要內部的總線適配模塊進行時序匹配。SDRAM用于存儲運行期的程序代碼和數據,HY57V563220B(L)T為現代公司推出的容量達16MB的SDRAM,由于該芯片端口寬度可達32位,因此系統中使用單芯片即可。SDRAM讀寫時序比較復雜,需要在中集成專用的SDRAM控制器IP核與其對接。

          2 總量計數IP核

          如圖2所示,α或γ探測器獲得的信號經由兩級放大器串接組成的線性脈沖放大器放大后送至以LM393為核心的甄別電路進行比較,濾掉噪聲,輸出矩形的脈沖信號。對于這個信號的處理,以MCU(微控制器)為核心的傳統核探測儀只能通過MCU上已有的硬件資源(如定時器)結合軟件來實現。

          這種方法受制于硬件資源和MCU的速度,難以對多通道信號源進行并行處理。本系統中,總量計數IP核即是針對此問題而專門設計的硬件,使用VHDL語言設計實現,其內部接口符合Avalon片內總線從設備接口規范,可以方便地掛接在Avalon總線上,作為NiosII軟核cPu的一個專用外設。

          總量計數IP核是網絡平臺FPGA中子板接口的一部分,其結構如圖3所示。α輻射總量測量與γ輻射總量測量原理類似,下面以α測量為例介紹其工作原理。時鐘源模塊通過對主時鐘分頻產生一個O.1秒的脈沖信號,作為定時器計時的基準源。定時器則按照命令寄存器傳過來的采集時間產生所需的定時信息。

          根據定時器的定時信息和命令寄存器的命令,控制計數器對α測量模塊傳過來的脈沖信號進行計數,從而獲得輻射總量的計數值,該計數值被存進FIFO中;而在另一側,NiosIICPU通過Avalon總線向IP核的命令寄存器寫入相應的命令字實現對各通道的控制,例如啟動總量計數、關閉總量計數、設置采集時間及清空FIFO等。

          值得注意的是,來自甄別電路的α或γ計數脈沖是與本IP核工作時鐘異步的信號,而計數器的值最終是需要存人。FIF0的,因此對α或γ計數脈沖都以主時鐘進行二次鎖存并整形,使每個異步計數脈沖產生一個只持續一個主時鐘周期的同步脈沖。以該脈沖進行計數,不僅解決了異步信號同步的問題,而且有效地濾除了干擾脈沖,使計敦值準確。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        超級電容器相關文章:超級電容器原理




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 上犹县| 资兴市| 鄢陵县| 定安县| 闻喜县| 柳州市| 会泽县| 芮城县| 平山县| 临泉县| 马龙县| 宾阳县| 商水县| 太谷县| 石家庄市| 洛宁县| 仙游县| 巴马| 凤庆县| 南康市| 鹿泉市| 阳谷县| 安宁市| 吴江市| 万山特区| 天长市| 平江县| 顺平县| 呼伦贝尔市| 蒲城县| 南皮县| 遂昌县| 罗山县| 中江县| 宜州市| 偃师市| 桦川县| 凉山| 吴旗县| 岑溪市| 瑞昌市|