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