單總線溫度傳感器的EDA控制方法
1、硬件接口電路:DS18B20是單總線數(shù)字溫度傳感器,測(cè)量溫度范圍從-55℃到125℃,測(cè)量精度為±0.5℃,通過(guò)單總線可直接輸出所測(cè)溫度的二進(jìn)制數(shù)據(jù),數(shù)字量的輸出位數(shù)可通過(guò)編程控制,在9位至12位(含符號(hào)位)之間選擇。
該器件有三個(gè)端口,分別是電源端、地端、單總線數(shù)據(jù)端,在使用時(shí)將FPGA的I/O口和DS18B20的單總線連接,通過(guò)單總線實(shí)現(xiàn)FPGA與DS18B20之間的數(shù)據(jù)收發(fā)。
2、軟件控制程序:控制DS18B20進(jìn)行溫度測(cè)量和讀取主要包括三個(gè)步驟:器件初始化、發(fā)送寫寄存器命令和發(fā)送讀寄存器命令,該功能代碼寫在核心控制模塊中。
其中初始化是通過(guò)FPGA向總線發(fā)送低電平復(fù)位信號(hào),持續(xù)時(shí)間為480-600us,然后FPGA釋放總線,單總線經(jīng)過(guò)上拉電阻會(huì)被拉至高電平,當(dāng)DS18B20檢測(cè)到上升沿之后,等待15-60us后將發(fā)出60-256us的低電平存在脈沖作為響應(yīng),如果FPGA檢測(cè)到響應(yīng)脈沖則初始化成功。
初始化成功后,F(xiàn)PGA通過(guò)向總線發(fā)送命令來(lái)控制傳感器的溫度采集,程序中用到的主要命令如下:0XCC為跳過(guò)ROM檢測(cè)命令;0X44為啟動(dòng)溫度轉(zhuǎn)換令;0XBE為從DS18B20讀取溫度測(cè)量數(shù)值。
在頂層代碼中除了核心控制模塊外,還包括包括分頻模塊和顯示模塊。
其中,分頻模塊將實(shí)驗(yàn)板上50M Hz時(shí)鐘轉(zhuǎn)換為1MHz輸出到核心控制模塊,用于控制FPGA對(duì)單總線的讀、寫時(shí)序。
顯示模塊用于將讀取到的溫度數(shù)據(jù)轉(zhuǎn)換為十進(jìn)制數(shù)據(jù),并通過(guò)數(shù)碼管進(jìn)行動(dòng)態(tài)顯示。由于溫度寄存器默認(rèn)采用12位二進(jìn)制數(shù)據(jù)來(lái)存儲(chǔ),最高位為符號(hào)位,溫度分辨率為0.0625℃。
當(dāng)溫度為正數(shù)時(shí)符號(hào)位為0;當(dāng)溫度為負(fù)數(shù)時(shí)符號(hào)位為1,且數(shù)據(jù)位采用補(bǔ)碼的形式。因此,將溫度轉(zhuǎn)換成十進(jìn)制數(shù)據(jù)時(shí),首先判斷符號(hào)位,當(dāng)符號(hào)位為1時(shí),先由二進(jìn)制數(shù)據(jù)求出原碼,再轉(zhuǎn)換為十進(jìn)制,最后乘以溫度分辨率0.0625得到實(shí)測(cè)溫度;當(dāng)符號(hào)位為0時(shí),直接將二進(jìn)制轉(zhuǎn)換為十進(jìn)制,再乘以溫度分辨率。
3、系統(tǒng)頂層文件:將編譯好的sof程序下載到實(shí)驗(yàn)板中運(yùn)行,能夠?qū)崿F(xiàn)環(huán)境溫度的測(cè)量和顯示。
更多優(yōu)質(zhì)傳感器來(lái)自永陽(yáng)新能源 http://www.yfgtgs.com/
關(guān)鍵詞:熱電阻,熱電偶,熱敏電阻,鉑電阻,PT100,PT1000,壓力傳感器,數(shù)字溫度傳感器
- 上一篇:溫度傳感器輸出485通信的幾種方式 2015/3/4
- 下一篇:溫度傳感器在電動(dòng)汽車上的使用 2015/3/4