基于SOPC技術的多通道實時溫度采集系統
2.4 FPGA邏輯控制模塊
本文引用地址:http://www.104case.com/article/271262.htm基于FPGA的采集控制單元,采用自頂而下的模塊化設計方法,使用Verilog HDL語言完成各控制模塊的設計。FPGA邏輯控制模塊包括A/D采樣控制模塊、FIFO讀寫控制模塊和SPC3控制模塊。
2.4.1 A/D采樣控制模塊
A/D采樣控制模塊負責控制外部ADS8402芯片多路模擬輸入量的選通,并實現對A/D采樣過程的合理控制。
由于ADS8402對16通道的模擬量采取分時轉換的方式,因此在啟動轉換的同時還要進行通道選擇。ADS8402設置了4根通道地址線A0、A1、A2、A3,以及地址鎖存允許信號ALE.當ALE變高時,鎖存由A0、A1、A2、A3編碼所確定的通道號,將該通道的模擬量接入A/D轉換器進行轉換。依據這樣的特性,設計一個帶復位端的十六進制計數器,其計數輸出端Q3、Q2、Q1、Q0分別與ADS8402的4根地址線相連。計數器上電復位以確保系統從0號通道開始采樣。將ADS8402的轉換結束信號EOC作為計數器的時鐘信號,實現一路轉換結束后自動啟動對下一路模擬輸入的采樣控制。

圖2 ADS8402采樣控制狀態轉換圖
A/D采樣過程的控制采用有限狀態機來實現,把某一通道的采樣過程劃分為7個狀態,如圖2所示。首先S0狀態對各個控制信號進行初始化。在S1狀態產生ALE信號的上升沿,鎖存通道地址。啟動信號START應在產生ALE信號的同一時鐘下降沿產生,由于VHDL語言在同一進程內不允許時鐘的兩個沿作為敏感變量,所以將產生START信號單列為一個狀態S2,啟動轉換。在啟動轉換后,ADS8402使EOC置為低電平,設置S3狀態等待A/D轉換結束。轉換結束后,EOC信號由低電平轉換為高電平,狀態機進入S4狀態,開啟輸出允許OE.狀態機進入S5狀態,開啟數據鎖存信號LOCK鎖存數據。為產生與其他進程通信的信號,狀態機設置S6作為最后一個狀態,然后跳轉回SO初始狀態。
2.4.2 FIFO讀寫控制模塊
采用2片FIFO輪流讀寫操作,實現FPGA與PC機之間的數據緩存。乒乓傳輸控制原理示意圖如圖3所示,圖中的實線箭頭與虛線箭頭分別代表不同的讀寫數據周期。輸入數據流通過輸入數據流選擇單元,等時地將數據流分配到FIFO1、FIFO2中。在第1個緩沖周期,將輸入的數據流緩存到FIFO1.在第2個緩沖周期,通過輸入數據流選擇單元的切換,將輸入的數據流緩存到FIFO2,與此同時,將FIFO1緩存的第1個周期的數據通過輸出數據流選擇單元的選擇,送到數據流運算處理模塊被運算處理。在第3個緩沖周期,通過輸入數據流選擇單元的再次切換,將輸入的數據流緩存到FIFO1,與此同時,將FIFO2緩存的第2個周期的數據通過輸出數據流選擇單元的切換,送到數據流運算處理模塊被運算處理。如此循環,周而復始。

圖3 FIFO乒乓傳輸控制原理
2.4.3 SPC3控制模塊
由于SPC3集成了完整的DP協議,因此在進行通信時,FPGA不用參與處理DP狀態機。主要任務是根據SPC3產生的中斷,將SPC3接收到的數據轉存,組織要通過SPC3發給的數據,并根據要求組織外部診斷。在SPC3正常工作之前,需要進行初始化,以配置需要的寄存器,包括設置協議芯片的中斷允許,寫入從站識別號和地址,設置SPC3方式寄存器,設置診斷緩沖區,配置緩沖區、地址緩沖區、初始化長度,并根據以上初始值得出各個緩沖區的指針和輔助緩沖區的指針。通信模塊的控制流程如圖4所示。

圖4 通信模塊控制流程
3系統的FPGA實現
3.1 Nios II系統架構設計
Nios II系統模塊包含:Nios II處理器、Avalon總線、并行輸入/輸出口PIO、串行外圍設備接口SPI、定時器Timer、片內存儲器EPCS、片外存儲器SDRAM、PROFIBUS-DP的客戶定制邏輯。由Nios II處理器完成程序控制,主要負責對溫度的采集與數據存儲操作,并控制PROFIBUS -DP的通信過程。其架構如圖5所示。

圖5 Nios II系統架構
模數轉換器相關文章:模數轉換器工作原理
溫濕度控制器相關文章:溫濕度控制器原理 熱電偶相關文章:熱電偶原理
評論