1 引言 在科學技術研究和工業生產的各行業中, 常常需要對各種數據進行采集, 如液位、溫度、 壓力、頻率等信息的采集。隨著數字技術的發展, 一些高性能的FPGA (Field Programmable Gate Array)和高速的A/D 應用于數據采集系統中, 大大提高了系統的測量精度、數據采集處 理速度、數據傳輸速度等。本文設計了一種應用EP1K10TC100 FPGA 和單片機的數據采集 系統。該系統具有數據采集速度高、功耗低、數據傳輸方便等優點。 2 設計設計 基于 FPGA 的數據采集系統的總體功能模塊如下圖1 所示。系統有由FPGA、串行被動 配置模塊、USB 通信模塊、電源模塊、顯示模塊、模數轉換模塊、數模轉換模塊等幾個模 塊組成。 主控芯片采用ACEX1K 系列的EP1K10TC100-3。ACEX 系列是當今Altera CPLD 中應 用前景最好的器件系列之一[1,2],該系列的FPGA 由邏輯陣列塊LAB(Logic array block)、 嵌入式陣列塊EAB(embedded array block)、快速互聯以及IO 單元構成,每個邏輯陣列塊 包含8 個邏輯單元LE(logic element)和一個局部互聯。每個邏輯單元則由一個4 輸入查找 表(LUT)、一個可編程觸發器、快速進位鏈、級連鏈組成,多個LAB 和多個EAB 則可通過快速通道互相連接[3]。EAB 是ACEX 系列器件在結構設計上的一個重要部件,他是輸入 端口和輸出端口都帶有觸發器的一種靈活的RAM 塊,其主要功能是實現一些規模不太大的 FIFO、ROM、RAM 和雙端口RAM 等。 3 系統硬件設計與實現 3.1 數據采集模塊 系統數據采集采用DAC0832。ADC0832 是美國國家半導體公司生產的一種8 位分辨 率、雙通道A/D 轉換芯片,最高分辨可達256 級,可以適應一般的模擬量轉換要求。其內 部電源輸入與參考電壓的復用,使得芯片的模擬電壓輸入在0"5V 之間。芯片轉換時間僅為 32μS,據有雙數據輸出可作為數據校驗,以減少數據誤差,轉換速度快且穩定性能強。獨 立的芯片使能輸入,使多器件掛接和處理器控制變的更加方便。通過控制數據輸入端,可以 輕易的實現通道功能的選擇。 FPGA 的 I/O 口直接與DAC0832 連接[4],通過VHDL 語言配置FPGA 芯片,以達到對 DAC0832 數模轉換的時序控制。ADC0809 與FPGA 的連接電路比較簡單,只要把控制引腳 和數據輸出引腳連接到 I/O 口上。 3.2 串行被動配置模塊 因為基于SRAM 工藝FPGA 存在掉電易失性特點,所以配置模塊的主要是在每次上電 后對FPGA 進行重新配置[4]。編程文件可以放在通用程序存儲器中, 在FLEX 器件上電后, 由芯片外部控制器自動地從通用存儲器中讀出編程文件并送到FLEX 器件進行配置, 數據傳 送方式可以為串行,也可以為并行。被動串行(PS)配置模式的配置接口連接到芯片的5 個 引腳,分別為:nSTATUS、nCONFIG、CONF_DONE、DCLK、DATA0。 ICR 電路原理如圖2 所示。 ICR 控制電路的工作過程為:經MAXPLUS II 編譯生產的配置文件(.sof)通過格式轉換 成為 (.rbf)。然后,通過PC 機的串行通信口,經AT89C2051 單片機控制存儲在AT24C256 中。單片機再根據系統的要求,通過P1.2、P1.3、P1.4、P3.0 和P3.1 等5 個I/O 口,將其存 儲在AT24C256 中的配置數據下載到電路中的FPGA 器件中去。 3.3 USB 通信模塊 USB 接口芯片采用ISP1581。該芯片全面符合USB2.0 規范,具有高速的并行通用接 口,可在高速模式下工作,理論最高傳輸速度達到480Mbps[5]。除了控制端點外,ISP1581 還 有7 個輸入( IN) 端點和7 個輸出( OUT)端點。每個端點可以靈活配置數據傳輸方式以及數 據緩存區( FIFO) 的大小, 端點FIFO 最大容量可以達到2KB。ISP1581 芯片在配置枚舉時 需要單片機固件的支持, 一旦正確完成了配置和驅動加載, 單片機對于ISP1581 芯片就如同 普通存儲器一樣可以進行讀寫操作, 以發送或接收數據。 3.4 顯示模塊 LED 采用四位共陽極數碼管顯示。共陽極四位一體數碼管采用動態掃描工作方式,在 數碼管中每一位的字段位a、b、c、d、e、f、g 和dp 分別連接在一起,其工作原理與共陰 極數碼管工作原理一致,只不過共陽極輸入數碼管的發光電平(有效電平)是0,和共陰極 數碼管相反。在數碼管顯示電路中運用了一個驅動芯片74LS47,運用這個驅動主要解決如 下幾個問題:(1)電平正負轉換,(2)譯碼,可以節約I/O 口的占用。74 LS47 接受四位BCD 碼輸入,并通過7 個與/或門譯碼后輸出,用于驅動數碼管,其輸出的低電平驅動共陽極數 碼管,低電平輸出電流在24mA 以上。 3.5 電源模塊 該設計中內核電壓和I/O 口電壓都采用2.5V.因為該芯片對電源要求很嚴格,所以通過 穩壓塊來實現電源轉換。在該電路中通過一片1117-2.5 穩壓塊由5V 轉化而來。電路連接便 捷簡單,輸出電流可以達到1A,基本上能滿足該系統的需求。 4 被動串行配置程序設計 PS 配置方式的時序圖如圖3 所示。 配置前必須先設置該芯片EP1K10TC100-3 上的下載模式選擇引腳MSEL1、MSEL0。 設置方式:當MSEL1=0,MSEL0=0 時系統為PS 或AS 模式當MSEL1=1, MSEL0=0 時系統為PPS 模式,當MSEL1=1,MSEL0=1 時系統為PPA 模式。在這里設置成使MSEL1 =0、MSEL0=0 在PS 配置過程中:當nCONFIG 產生下降沿脈沖時啟動配置過程,在DCLK 上升沿, 將數據移入目標芯片中。 在配置過程中,系統需要實時監測,一旦出錯,nSTATUS 將被拉 低,系統識別到這個信號后,立即重新啟動配置過程。配置數據全部正確地移入目標芯片內 部后,CONF_DONE 信號跳變為高,此后,DCLK 必須提供幾個周期的時鐘(具體周期數 與DCLK 的頻率有關),確保目標芯片被正確初始化,進入用戶工作模式。配置流程圖如圖 4 所示: 圖4 被動串行配置流程圖 5 總結: 本文創新點: 系統采用ACEX1K 系列的EP1K10TC100-3 FPGA 作為控制和處理的核心, 簡化了系統的硬件設計, 具有功耗低、速度快等優點;采用基于微控制器的FPGA 器件的 ICR 控制系統,具有線路結構簡單、開發容易、體積小、成本低的優點;采用USB 與上位 機通信,代替傳統的串口數據傳輸, 提高了數據傳輸速率和可擴展性,而且USB 可以總線 供電,在數據采集系統中耗電量小。 |