基于FPGA的數字溫度測量儀設計與實現
摘要:溫度測量儀是一種常用的檢測儀器,文章中利用FPGA器件和DS18B20傳感器設計實現了一種數字溫度測量儀,用于室溫的檢測。該測量儀具有結構簡單、抗干擾能力強、精確性高、轉換速度快、擴展性好等優(yōu)點。
關鍵詞:溫度測量;現場可編程邏輯門陣列;DS18B20;VHDL語言
0 引言
溫度作為一種最基本的環(huán)境參數,與人民的生活有著密切關系。溫度的測量和控制在工業(yè)、農業(yè)、國防、醫(yī)療等各個領域中應用普遍。溫度測量儀是利用物質各種物理性質隨溫度變化的規(guī)律,把溫度轉換為電量并顯示的一種儀器,有著廣泛的適用范圍。
本文利用FPGA器件與DS18B20溫度傳感器設計實現了一種數字溫度測量儀,用于檢測室溫。與其它系統(tǒng)相比較,此測量儀具有結構簡單、抗干擾能力強、精確性高、轉換速度快、擴展性好等優(yōu)點。
1 軟件程序設計
根據系統(tǒng)的設計要求,將程序部分設計分為5個模塊,包括分頻模塊、DS18B20通信模塊、控制模塊、數制轉換模塊、顯示模塊,如圖1所示。利用VHDL語言在QuartusII開發(fā)平臺上完成程序設計。
1.1 分頻模塊
分頻模塊是FPGA設計項目中的基本模塊之一。針對50MHz的時鐘頻率進行分頻產生1MHz頻率信號,分頻模塊如圖2所示。
系統(tǒng)提時鐘信號進入分頻模塊clock引腳,經過分頻后得到信號從clk 1m輸出。分頻模塊仿真結果如圖3所示。
由圖3可知,輸入端的50MHz時鐘信號被50分頻后得到輸出端的1MHz信號。
1.2 DS18B20通信模塊
圖4中時鐘clock為輸入端口,DS18820數據總線口dq[0..0]為雙向端口,使能端enable為輸出端口,led[11..1]為測試時的指示端口,在實際操作中無需接出。
DS18B20采用一根I/O總線讀寫數據,因此它對讀寫數據位有嚴格的時序要求,如圖5所示。
從分頻模塊的clk_1m輸出1MHz到通信模塊的clock作為時鐘信號;根據DS18B20所遵循的初始化時序、讀時序、寫時序等通信協(xié)議將程序完成;將獲取的12位的溫度信號傳送給下一個模塊。
評論