• 
    

    
    

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

      基于SOPC的現(xiàn)場(chǎng)總線(xiàn)多通道實(shí)時(shí)溫度采集系統(tǒng)設(shè)計(jì)

      2014-09-25 03:06:00王延年邢雷張帥
      關(guān)鍵詞:狀態(tài)機(jī)數(shù)據(jù)流寄存器

      王延年,邢雷,張帥

      (西安工程大學(xué)電子信息學(xué)院,西安710048)

      引 言

      溫度是表征物體冷熱程度的物理量,是工業(yè)生產(chǎn)中常見(jiàn)和最基本的參數(shù)之一,在生產(chǎn)過(guò)程中常常需要對(duì)溫度進(jìn)行監(jiān)控。傳統(tǒng)的溫度采集系統(tǒng),通常采用單片機(jī)或數(shù)字信號(hào)處理器DSP作為微控制器,控制模數(shù)轉(zhuǎn)換器ADC及其他外圍設(shè)備的工作;但是,基于單片機(jī)或DSP的高速多路溫度采集系統(tǒng)都有一定的不足。由于單片機(jī)運(yùn)行的時(shí)鐘頻率較低,并且單片機(jī)是基于順序語(yǔ)言的,各種功能都要靠軟件的運(yùn)行來(lái)實(shí)現(xiàn),因此隨著程序量的增加,如果程序的健壯性不好,會(huì)出現(xiàn)“程序跑飛”和“復(fù)位”現(xiàn)象。DSP的運(yùn)算速度快,處理復(fù)雜的乘加運(yùn)算有一定的優(yōu)勢(shì),但是很難完成外圍設(shè)備的復(fù)雜硬件邏輯控制。[1]因而單片機(jī)或DSP很難滿(mǎn)足在復(fù)雜的工業(yè)現(xiàn)場(chǎng)進(jìn)行多路溫度采集時(shí)對(duì)實(shí)時(shí)性和同步性的要求。鑒于此,本文介紹一種基于SOPC技術(shù)的多通道實(shí)時(shí)溫度采集系統(tǒng)。該系統(tǒng)開(kāi)發(fā)周期短、資源配置靈活、穩(wěn)定性良好,滿(mǎn)足了對(duì)溫度采集實(shí)時(shí)性和同步性有較高要求的工業(yè)生產(chǎn)領(lǐng)域中的應(yīng)用。

      1 系統(tǒng)的總體結(jié)構(gòu)

      溫度采集系統(tǒng)的硬件主要由溫度采集模塊、數(shù)據(jù)存儲(chǔ)模塊、FPGA邏輯控制模塊以及通信模塊組成,其總體架構(gòu)如圖1所示。

      圖1 系統(tǒng)總體架構(gòu)

      系統(tǒng)上電后,先由靜態(tài)存儲(chǔ)器EPCS16自動(dòng)將配置數(shù)據(jù)載入到FPGA(CycloneII系列的EP2C8Q208C)的SDRAM(HY57V641620)之中,即將固化在其中的數(shù)字邏輯電路映射到FPGA器件中。溫度傳感器單元AD590首先采集溫度信號(hào),然后經(jīng)過(guò)信號(hào)調(diào)理電路的處理,使信號(hào)的輸出幅度滿(mǎn)足A/D采樣的量程要求。此時(shí)FPGA控制模擬選擇開(kāi)關(guān)ADG706進(jìn)行通道選擇,同時(shí)控制多片16位A/D轉(zhuǎn)換器ADS8402進(jìn)行A/D轉(zhuǎn)換,并將采集到的實(shí)時(shí)數(shù)據(jù)分時(shí)存儲(chǔ)到兩片類(lèi)型為FIFO、容量為16K×9位的存儲(chǔ)器IDT72V06中。然后,將其中處于讀狀態(tài)的IDT72V06中的數(shù)據(jù)讀取出來(lái),并經(jīng)過(guò)FPGA控制SPC3通信模塊,通過(guò)PROFIBUS總線(xiàn)傳送至上位機(jī)。

      2 溫度采集系統(tǒng)設(shè)計(jì)

      2.1 溫度采集模塊

      溫度采集模塊由多片溫度傳感器單元、多路信號(hào)調(diào)理電路、多路模擬開(kāi)關(guān)電路以及多路A/D轉(zhuǎn)換器四大部分組成。

      溫度傳感器單元采用熱電偶。它具有以下優(yōu)點(diǎn):測(cè)溫范圍寬,性能穩(wěn)定;測(cè)量精度高,熱電偶與被測(cè)對(duì)象直接接觸,不受中間介質(zhì)的影響;熱響應(yīng)時(shí)間快,熱電偶對(duì)溫度變化反應(yīng)靈活;測(cè)量范圍大,-40~+1600℃均可連續(xù)測(cè)溫;性能牢靠,機(jī)械強(qiáng)度好;壽命長(zhǎng),按裝方便,特別適合于在復(fù)雜的工業(yè)生產(chǎn)過(guò)程中對(duì)溫度的實(shí)時(shí)檢測(cè)。

      多路模擬開(kāi)關(guān)電路選用16路模擬選擇開(kāi)關(guān)ADG706。其4位地址位A0、A1、A2、A3的輸入直接由FPGA的I/O端口CH0、CH1、CH2、CH3控制,決定16路輸入信號(hào)中要輸出的通道,每條通道選擇指令將同時(shí)啟動(dòng)多片ADG706相應(yīng)的溫度采集通道。然后啟動(dòng)相應(yīng)的溫度采集通道進(jìn)行A/D轉(zhuǎn)換。本設(shè)計(jì)采用高速逐次逼近寄存器(SAR)類(lèi)比數(shù)位轉(zhuǎn)換器ADS8402,多片ADS8402A/D轉(zhuǎn)換器的啟動(dòng)轉(zhuǎn)換引腳共用FPGA的一個(gè)I/O端口A/D Start。ADS8402A/D轉(zhuǎn)換結(jié)果的高、低字節(jié)控制引腳BYTE及ADS8402的數(shù)據(jù)輸出控制,分別由FPGA單獨(dú)的I/O控制。FPGA每給A/D Start端口一個(gè)100ns的負(fù)脈沖,即可啟動(dòng)多片ADS8402進(jìn)行相應(yīng)通道上的數(shù)據(jù)采集。轉(zhuǎn)換結(jié)束后,可通過(guò)控制BYTE端口讀取A/D轉(zhuǎn)換結(jié)果,并暫存到相應(yīng)的數(shù)據(jù)單元。

      2.2 數(shù)據(jù)存儲(chǔ)模塊

      多通道采集信號(hào)的路數(shù)多、處理的數(shù)據(jù)量大,需要外擴(kuò)數(shù)據(jù)存儲(chǔ)模塊來(lái)緩存FPGA處理結(jié)果。[2]與此同時(shí),由于上位機(jī)的多任務(wù)性,它不可能專(zhuān)一對(duì)并行口讀取數(shù)據(jù),為了保證FPGA控制核心與上位機(jī)通信一次性讀取大量數(shù)據(jù),本系統(tǒng)用到了2片異步FIFO芯片IDT72V06,其存儲(chǔ)容量16K×9位,存取時(shí)間15ns,其中一片用來(lái)對(duì)采集過(guò)來(lái)的數(shù)據(jù)進(jìn)行存儲(chǔ),另一片用來(lái)讀取存儲(chǔ)在FIFO中的采集數(shù)據(jù),以便與上位機(jī)進(jìn)行并行口通信。系統(tǒng)運(yùn)行過(guò)程中,兩片F(xiàn)IFO位擴(kuò)展進(jìn)行雙緩存乒乓控制,輪流進(jìn)行讀寫(xiě)操作,可大大提高并口通信速度及數(shù)據(jù)吞吐量。

      2.3 通信模塊

      PROFIBUS-DP是一種經(jīng)過(guò)優(yōu)化的高速、廉價(jià)的通信連接方式,專(zhuān)為自動(dòng)控制系統(tǒng)和設(shè)備級(jí)的分散I/O之間的通信而設(shè)計(jì),用于分布式控制系統(tǒng)的高速數(shù)據(jù)傳輸,實(shí)現(xiàn)自控系統(tǒng)和分散外圍I/O設(shè)備及智能現(xiàn)場(chǎng)儀表之間的高速數(shù)據(jù)通信。[3]SPC3集成了全部的PROFIBUS-DP協(xié)議,SPC3在DP方式下將完成所有DP-SAP的設(shè)置。SPC3內(nèi)部集成了1.5KB的雙口RAM,包括參數(shù)寄存器、方式寄存器、狀態(tài)寄存器和中斷控制器等。SPC3內(nèi)部集成的看門(mén)狗定時(shí)器有3種工作狀態(tài):波特率檢測(cè)、波特率控制和從站控制。內(nèi)部的USART可實(shí)現(xiàn)并行數(shù)據(jù)流和串行數(shù)據(jù)流的相互轉(zhuǎn)換,微順序控制器控制整個(gè)工作過(guò)程,空閑定時(shí)器直接控制串行總線(xiàn)時(shí)序[4]。通信模塊的設(shè)計(jì)選用了PROFIBUS-DP專(zhuān)用通信協(xié)議芯片SPC3,這樣可加速通信的執(zhí)行,而且可以減輕微處理器的負(fù)擔(dān)。

      2.4 FPGA邏輯控制模塊

      基于FPGA的采集控制單元,采用自頂而下的模塊化設(shè)計(jì)方法,使用Verilog HDL語(yǔ)言完成各控制模塊的設(shè)計(jì)[5]。FPGA邏輯控制模塊包括A/D采樣控制模塊、FIFO讀寫(xiě)控制模塊和SPC3控制模塊。

      2.4.1 A/D采樣控制模塊

      A/D采樣控制模塊負(fù)責(zé)控制外部ADS8402芯片多路模擬輸入量的選通,并實(shí)現(xiàn)對(duì)A/D采樣過(guò)程的合理控制。

      由于ADS8402對(duì)16通道的模擬量采取分時(shí)轉(zhuǎn)換的方式,因此在啟動(dòng)轉(zhuǎn)換的同時(shí)還要進(jìn)行通道選擇。ADS8402設(shè)置了4根通道地址線(xiàn)A0、A1、A2、A3,以及地址鎖存允許信號(hào)ALE。當(dāng)ALE變高時(shí),鎖存由A0、A1、A2、A3編碼所確定的通道號(hào),將該通道的模擬量接入A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。依據(jù)這樣的特性,設(shè)計(jì)一個(gè)帶復(fù)位端的十六進(jìn)制計(jì)數(shù)器,其計(jì)數(shù)輸出端Q3、Q2、Q1、Q0分別與ADS8402的4根地址線(xiàn)相連。計(jì)數(shù)器上電復(fù)位以確保系統(tǒng)從0號(hào)通道開(kāi)始采樣。將ADS8402的轉(zhuǎn)換結(jié)束信號(hào)EOC作為計(jì)數(shù)器的時(shí)鐘信號(hào),實(shí)現(xiàn)一路轉(zhuǎn)換結(jié)束后自動(dòng)啟動(dòng)對(duì)下一路模擬輸入的采樣控制。

      A/D采樣過(guò)程的控制采用有限狀態(tài)機(jī)來(lái)實(shí)現(xiàn),把某一通道的采樣過(guò)程劃分為7個(gè)狀態(tài),如圖2所示。首先S0狀態(tài)對(duì)各個(gè)控制信號(hào)進(jìn)行初始化。在S1狀態(tài)產(chǎn)生ALE信號(hào)的上升沿,鎖存通道地址。啟動(dòng)信號(hào)START應(yīng)在產(chǎn)生ALE信號(hào)的同一時(shí)鐘下降沿產(chǎn)生,由于VHDL語(yǔ)言在同一進(jìn)程內(nèi)不允許時(shí)鐘的兩個(gè)沿作為敏感變量,所以將產(chǎn)生START信號(hào)單列為一個(gè)狀態(tài)S2,啟動(dòng)轉(zhuǎn)換。在啟動(dòng)轉(zhuǎn)換后,ADS8402使EOC置為低電平,設(shè)置S3狀態(tài)等待A/D轉(zhuǎn)換結(jié)束。轉(zhuǎn)換結(jié)束后,EOC信號(hào)由低電平轉(zhuǎn)換為高電平,狀態(tài)機(jī)進(jìn)入S4狀態(tài),開(kāi)啟輸出允許OE。狀態(tài)機(jī)進(jìn)入S5狀態(tài),開(kāi)啟數(shù)據(jù)鎖存信號(hào)LOCK鎖存數(shù)據(jù)。為產(chǎn)生與其他進(jìn)程通信的信號(hào),狀態(tài)機(jī)設(shè)置S6作為最后一個(gè)狀態(tài),然后跳轉(zhuǎn)回S0初始狀態(tài)。

      圖2 ADS8402采樣控制狀態(tài)轉(zhuǎn)換圖

      2.4.2 FIFO讀寫(xiě)控制模塊

      采用2片F(xiàn)IFO輪流讀寫(xiě)操作,實(shí)現(xiàn)FPGA與PC機(jī)之間的數(shù)據(jù)緩存。乒乓傳輸控制原理示意圖如圖3所示,圖中的實(shí)線(xiàn)箭頭與虛線(xiàn)箭頭分別代表不同的讀寫(xiě)數(shù)據(jù)周期。輸入數(shù)據(jù)流通過(guò)輸入數(shù)據(jù)流選擇單元,等時(shí)地將數(shù)據(jù)流分配到FIFO1、FIFO2中。在第1個(gè)緩沖周期,將輸入的數(shù)據(jù)流緩存到FIFO1。在第2個(gè)緩沖周期,通過(guò)輸入數(shù)據(jù)流選擇單元的切換,將輸入的數(shù)據(jù)流緩存到FIFO2,與此同時(shí),將FIFO1緩存的第1個(gè)周期的數(shù)據(jù)通過(guò)輸出數(shù)據(jù)流選擇單元的選擇,送到數(shù)據(jù)流運(yùn)算處理模塊被運(yùn)算處理。在第3個(gè)緩沖周期,通過(guò)輸入數(shù)據(jù)流選擇單元的再次切換,將輸入的數(shù)據(jù)流緩存到FIFO1,與此同時(shí),將FIFO2緩存的第2個(gè)周期的數(shù)據(jù)通過(guò)輸出數(shù)據(jù)流選擇單元的切換,送到數(shù)據(jù)流運(yùn)算處理模塊被運(yùn)算處理。如此循環(huán),周而復(fù)始。

      圖3 FIFO乒乓傳輸控制原理

      2.4.3 SPC3控制模塊

      由于SPC3集成了完整的DP協(xié)議,因此在進(jìn)行通信時(shí),F(xiàn)PGA不用參與處理DP狀態(tài)機(jī)。主要任務(wù)是根據(jù)SPC3產(chǎn)生的中斷,將SPC3接收到的數(shù)據(jù)轉(zhuǎn)存,組織要通過(guò)SPC3發(fā)給的數(shù)據(jù),并根據(jù)要求組織外部診斷。[6]在SPC3正常工作之前,需要進(jìn)行初始化,以配置需要的寄存器,包括設(shè)置協(xié)議芯片的中斷允許,寫(xiě)入從站識(shí)別號(hào)和地址,設(shè)置SPC3方式寄存器,設(shè)置診斷緩沖區(qū),配置緩沖區(qū)、地址緩沖區(qū)、初始化長(zhǎng)度,并根據(jù)以上初始值得出各個(gè)緩沖區(qū)的指針和輔助緩沖區(qū)的指針。通信模塊的控制流程如圖4所示。

      圖4 通信模塊控制流程

      3 系統(tǒng)的FPGA實(shí)現(xiàn)

      3.1 Nios II系統(tǒng)架構(gòu)設(shè)計(jì)

      Nios II系統(tǒng)模塊包含:Nios II處理器、Avalon總線(xiàn)、并行輸入/輸出口PIO、串行外圍設(shè)備接口SPI、定時(shí)器Timer、片內(nèi)存儲(chǔ)器EPCS、片外存儲(chǔ)器SDRAM、PROFIBUS-DP的客戶(hù)定制邏輯。[7]由Nios II處理器完成程序控制,主要負(fù)責(zé)對(duì)溫度的采集與數(shù)據(jù)存儲(chǔ)操作,并控制PROFIBUS-DP的通信過(guò)程。其架構(gòu)如圖5所示。

      圖5 Nios II系統(tǒng)架構(gòu)

      3.2 系統(tǒng)軟件設(shè)計(jì)

      Nios II處理器的軟件設(shè)計(jì)是在軟核內(nèi)存放一段編寫(xiě)的C/C++語(yǔ)言控制程序。來(lái)控制系統(tǒng)運(yùn)行,它可以讀寫(xiě)芯片的存儲(chǔ)單元,同時(shí)與外圍的設(shè)備進(jìn)行通信。[8]在本系統(tǒng)中,Nios II程序的任務(wù)是:在規(guī)定的周期內(nèi),F(xiàn)PGA通過(guò)通信模塊接收上位機(jī)發(fā)出的采樣任務(wù)及控制參數(shù),然后控制模擬選擇開(kāi)關(guān)ADG706和A/D轉(zhuǎn)換器ADS8402,使它們對(duì)選定通道的模擬信號(hào)進(jìn)行調(diào)理及A/D轉(zhuǎn)換,并讀取采樣數(shù)據(jù)以乒乓傳輸數(shù)據(jù)方式傳送至片外FIFO緩存,再通過(guò)PROFIBUS-DP通信接口將采樣數(shù)據(jù)傳輸至上位機(jī)。主程序流程如圖6所示。

      圖6 主程序流程圖

      結(jié) 語(yǔ)

      基于FPGA的多通道實(shí)時(shí)溫度采集系統(tǒng)以Nios II軟核處理器實(shí)現(xiàn)SOPC,進(jìn)一步簡(jiǎn)化了硬件設(shè)計(jì)。與傳統(tǒng)的基于MCU的多通道溫度采集系統(tǒng)相比,該系統(tǒng)具有資源配置靈活、運(yùn)行穩(wěn)定可靠、實(shí)時(shí)性強(qiáng)等優(yōu)點(diǎn)。另外,該系統(tǒng)具有標(biāo)準(zhǔn)PROFIBUS-DP接口,作為一個(gè)DP從站實(shí)現(xiàn)與多種DP主站的通信,可廣泛應(yīng)用于工業(yè)生產(chǎn)領(lǐng)域的PROFIBUS分布式控制系統(tǒng)中。

      [1] 楊林楠,李紅剛,張麗蓮,等.基于FPGA的高速多路數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J] .計(jì)算機(jī)工程,2007,33(7):246-248.

      [2] 紀(jì)大偉,徐抒巖,胡君,等.基于FPGA的多通道高速數(shù)據(jù)采集系統(tǒng)[J] .儀表技術(shù)與傳感器,2011(12):69-71.

      [3] 王斌.FPGA在現(xiàn)場(chǎng)總線(xiàn)技術(shù)的應(yīng)用[D] .無(wú)錫:江南大學(xué),2009:3-5.

      [4] Siemens.Siemens SPC3user description,2002.

      [5] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M] .3版.北京:北京航空航天大學(xué)出版社,2013.

      [6] 張婕,王征,郭天樂(lè).SPC3在現(xiàn)場(chǎng)總線(xiàn)智能從站設(shè)計(jì)中的應(yīng)用[J] .現(xiàn)代電子技術(shù),2008,31(2):10-11.

      [7] 王延年,鄧毓.基于軟核Nios II的SOPC智能溫度變送器[J] .電子測(cè)量技術(shù),2012,35(1):85-88.

      [8] 彭澄廉,周博,邱衛(wèi)東,等.挑戰(zhàn)SOP——基于Nios II的SOPC設(shè)計(jì)與實(shí)踐[M] .北京:清華大學(xué)出版社,2004.

      猜你喜歡
      狀態(tài)機(jī)數(shù)據(jù)流寄存器
      汽車(chē)維修數(shù)據(jù)流基礎(chǔ)(下)
      Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
      基于有限狀態(tài)機(jī)的交會(huì)對(duì)接飛行任務(wù)規(guī)劃方法
      一種提高TCP與UDP數(shù)據(jù)流公平性的擁塞控制機(jī)制
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      基于數(shù)據(jù)流聚類(lèi)的多目標(biāo)跟蹤算法
      北醫(yī)三院 數(shù)據(jù)流疏通就診量
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
      基于反熔絲FPGA的有限狀態(tài)機(jī)加固設(shè)計(jì)
      上虞市| 武川县| 白玉县| 北安市| 侯马市| 基隆市| 新巴尔虎右旗| 响水县| 吕梁市| 塔城市| 武定县| 山东省| 三都| 上蔡县| 泰兴市| 左贡县| 靖安县| 新河县| 洛隆县| 平远县| 德安县| 图片| 镇江市| 治多县| 阜宁县| 乌拉特前旗| 泸西县| 巨鹿县| 黄平县| 临潭县| 锡林浩特市| 达拉特旗| 平昌县| 黄陵县| 吉木萨尔县| 沁水县| 滨海县| 九龙县| 保德县| 应城市| 郎溪县|