基于FPGA的多通道數據采集系統設計
這一控制過程通過狀態機實現。圖4給出了該A/D轉換控制模塊的狀態轉換圖。當數據采集啟動信號START為高電平時,狀態機啟動。本文引用地址:http://www.104case.com/article/188551.htm
狀態機的各個狀態描述如下:
(1)conv_init:狀態機的初始狀態。
(2)mode_set:設置ADS1255內部的控制寄存器。
(3)conv_start:啟動A/D轉換。
(4)conv_wait:等待A/D轉換結束。如果轉換結束則進入下一狀態,否則將繼續保持在該狀態。
(5)conv_read:A/D轉換結束后讀出每個bit信息,同時使能移位寄存器進行串并轉換。
(6)read_next:判斷數據是否讀完。如果沒有返回conv_read狀態,否則進入下一狀態。
(7)conv_next:判斷是否需要繼續轉換數據。如果沒有就進入下一狀態,否則返回conv_start狀態。
(8)cony_end:表示本次采樣任務結束。狀態機保持在該狀態,直到采樣啟動脈沖觸發重新開始新的一次采樣任務,狀態機復位到conv_init狀態。
2.5 串并轉換模塊
由于ADS1255是以串行輸出轉換結果的,故需要該模塊將串行輸出的數據轉換為井行輸出。該模塊主要采用移位寄存器來實現,其移位控制信號由AD采樣控制模塊提供。
2.6 數據存儲控制模塊
該模塊的作用是將5通道24 bit經過串并轉換的采樣數據按通道順序,以從低字節到高字節的次序,一個一個字節將其寫入雙口RAM中,實際上相當于一個字節意義上的并串轉換。該模塊輸入為5路采樣數據reg24Data_0~4,dataF為輸出的字節數據,wrenF為雙口RAM的寫控制信號。圖5是一個五通道數據存儲的仿真示意圖。輸入數據值分別為0x030201、0x060504、0x090807、0x121110、0x151413,輸出字節數據為01~15,同時使能寫RAM,滿足設計要求。
2.7 ARM接口控制模塊
該模塊為ARM與FPGA及其雙口RAM交互提供橋梁。當ARM向控制寄存器寫入采集參數信息時,接口模塊要將該信息通知通道和采樣率選擇模塊;當ARM讀取雙口RAM中的數據時,接口模塊對ARM的訪問地址進行譯碼,選中對應的存儲空間取出數據。
本文采用FPGA和ARM結合設計,很好地完成了多通道高精度的數據采集與處理,并且還詳細介紹了FPGA邏輯的設計方法。FPGA邏輯通過硬件描述語言Verilog實現,已應用到磁數據采集系統中。本方案設計靈活,能很容易地擴展為更多路的數據采集,也能很容易地修改為與其他的A/D轉換芯片接口。所以該方案可根據不同的應用進行擴展,進一步增強了系統應用的靈活性。
評論