色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于FPGA的溫度傳感器(ds18b20)驅(qū)動設(shè)計

FPGA技術(shù)江湖 ? 來源:FPGA技術(shù)江湖 ? 2025-01-16 14:08 ? 次閱讀

本篇主要討論基于FPGA溫度傳感器(ds18b20)驅(qū)動設(shè)計---第一版

b1a3256c-d39f-11ef-9310-92fbcf53809c.jpg

設(shè)計實現(xiàn):利用FPGA驅(qū)動DS18b20,讀取到溫度數(shù)值顯示到數(shù)碼管上。

首先介紹DS18b20。

DS18B20是常用的數(shù)字溫度傳感器,其輸出的是數(shù)字信號,具有體積小,硬件開銷低,抗干擾能力強,精度高的特點。

DS18B20 數(shù)字溫度計提供 9-12位攝氏溫度測量(9-12位是測量精度),它的測溫范圍為-55~+125℃。

編程的分辨率為9-12位,對應(yīng)的分辨率溫度分別為0.5度、0.25度、0.125度、0.0625度。 測量溫度是需要轉(zhuǎn)換時間的(將外界的問題轉(zhuǎn)換為數(shù)字量),9bit的精度需要最大93.75ms;10bit的精度需要最大187.5ms;11bit的精度需要最大375ms;12bit的精度需要最大750ms。 上電后,默認的精度為12位,我們一般也采用這個精度。如果覺得這個轉(zhuǎn)換時間較長,可以考慮配置為其他的精度。

每個DS18B20都有一個獨特的64位序列號,從而允許多只 DS18B20同時連在一根單線總線上;因此很簡單就可以用一個微控制器去控制很多覆蓋在一大片區(qū)域的DS18B20。這一特性在HVAC環(huán)境控制、探測建筑物、儀器或機器的溫度以及過程監(jiān)測和控制等方面非常有用。

b1bdac3e-d39f-11ef-9310-92fbcf53809c.png

通過上述實物圖可以看到,DS18B20有三個管腳,VDD(電源管腳),DQ(數(shù)據(jù)線),GND(地線)。 在使用時,也可以不通過VDD供電,而采用DQ供電(此種模式在此不再介紹)。 在平常使用時,VDD接電源3V~5V,GND接地,DQ上面需要接一個上拉電阻(阻值通常為4.7K,或者10K),DQ就是進行通信的數(shù)據(jù)線(單數(shù)據(jù)總線)。 了解了使用的電路特性后,就得琢磨一下,如何利用一個數(shù)據(jù)線DQ來進行控制這個溫度傳感器。 下圖是DS18B20的框圖:

b1ccd218-d39f-11ef-9310-92fbcf53809c.png

64bit的rom中的數(shù)值時固定的。高八位為:28h(表示為DS18b20);后續(xù)的48位為:芯片的序列號(每一個DS18B20都不相同);最后八位:前面56位的CRC校驗序列。 DS18B20支持在一個總線上面加載多個DS18B20,那么此時就需要獲取每一個DS18B20的ROM,這樣就可以精準(zhǔn)的控制每一個器件了。 在此我們不對在一個總線上加載多個DS18B20的情況,只討論加載一個DS18B20的情況。 讀取ROM的64bit的命令為33H,后面跟著讀取64bit,就是器件的ROM值(只能用在總線上只有一個器件的情況)。 匹配ROM的命令為55H,后面跟著寫入64bit數(shù)據(jù),只有和這64bit的數(shù)據(jù)相同的器件才會開始工作。 跳過ROM的命令為CCH,接收到這個命令的器件,不需要匹配就可以直接工作(只能用在總線上只有一個器件的情況)。 在此我們不做多器件的情況,所以可以直接發(fā)送跳過ROM的命令。 DS18B20的測溫是需要被通知的,也就說我們需要給器件發(fā)送一個開始測溫的命令,他才會開始測量溫度,并且轉(zhuǎn)換稱為數(shù)字信號(16bit的有符號數(shù))。 分頻率為12位,使用16bit后面的12位(11:0)。 分頻率為11位,則16bit的最后一個bit不使用(11:1)。 ······

b1e344c6-d39f-11ef-9310-92fbcf53809c.png

b1f3d6c4-d39f-11ef-9310-92fbcf53809c.png

上圖為默認精度(12bit、0.0625度),如果第12位為0,表示為正溫度,測量出來的數(shù)據(jù)乘以0.0625就可以了。如果第12為1,表示為負溫度,則需要將測量出來的數(shù)據(jù)減去1,然后所有位取反,得到的結(jié)果再乘以0.0625度。上述的表示方式就是有符號數(shù)在數(shù)字電路中的表示形式。 16bit的數(shù)字信息存儲在內(nèi)部暫存器中,占用兩個字節(jié)(在0、1字節(jié))。

b2105a56-d39f-11ef-9310-92fbcf53809c.png

測溫的命令為44H。 暫存器的第四個4字節(jié)就是配置分辨率的寄存器

b225bc16-d39f-11ef-9310-92fbcf53809c.png

TM設(shè)置為0即可;

b2417c12-d39f-11ef-9310-92fbcf53809c.png

可以通過配置這個寄存器的值,來配置我們想要的分辨率。在此,我將不配置此寄存器,使用默認分辨率12bit。 寫入暫存器的命令為4EH,后面跟著寫入3個字節(jié)的數(shù)據(jù),這三個字節(jié)寫入到暫存器的2、3、4的位置。 讀出暫存器的命令為BEH,后面跟著讀出N個字節(jié)的數(shù)據(jù),如果只是想讀取溫度,那么只需要讀出兩個字節(jié)的數(shù)據(jù)就可以了。 基本的命令差不多都介紹完事了,那么下面開始介紹時序。 首先:在發(fā)送命令之前,器件要求必須要被初始化。時序如下:

b24fcc2c-d39f-11ef-9310-92fbcf53809c.png

控制器需要拉低DQ,至少保持480us(最大不超過960us,建議:600us),然后釋放總線控制(由于DQ被上拉,所以會被拉成高電平)。如果器件存在并且可以正常工作,器件會拉低DQ一段時間60-240us。 所以建議:控制器拉低DQ960us,釋放總線控制,檢測DQ是否還會拉低。主機從釋放總線控制開始,要等待600us的時間去檢測DQ是否拉低,如果有拉低則證明器件存在并且可以工作,如果沒有拉低,則證明器件不存在或者不可以工作。 證明器件存在并且可以工作后,我們就可以向器件發(fā)送命令了。 發(fā)送命令和和數(shù)據(jù)以低位優(yōu)先。 發(fā)送1bit的時序為:

b26a38e6-d39f-11ef-9310-92fbcf53809c.png

如果控制器想要發(fā)送1bit0,那么直接拉低DQ100us即可,然后釋放總線;如果控制器想要發(fā)送1bit1,那么拉低DQ5us,然后釋放總線即可。無論是寫0,還是寫1,建議每一bit的時長110us。 讀取命令和數(shù)據(jù)以低位優(yōu)先。 讀取1bit的時序為:

b282a07a-d39f-11ef-9310-92fbcf53809c.png

如果控制器想要讀取的話,那么拉低DQ5us的時間,釋放總線,在10us時,讀取總線的電平值即可獲得讀取值。建議每一bit的時長110us。 實現(xiàn)DS18B20的驅(qū)動主要有三步: 第一步:初始化DS18B20; 第二步:ROM命令(緊跟任何數(shù)據(jù)交換請求); 第三步:DS18B20功能命令(緊跟任何數(shù)據(jù)交換請求); 所以我們上電后,工作的過程如下: 初始化、發(fā)送跳過ROM命令 、發(fā)送轉(zhuǎn)換溫度命令;等待750ms;初始化、發(fā)送跳過ROM命令、發(fā)送讀取暫存器的命令、讀取兩個字節(jié)的數(shù)據(jù)。不斷重復(fù)以上的過程即可。 上面的工作方式模式為:總線上是一個器件、分辨率為默認的12bit、沒有匹配ROM。 DS18B20一般會制作到一個板卡上面,下面是筆者自制的板卡;

b2988f84-d39f-11ef-9310-92fbcf53809c.png

如果有需要的小伙伴,可以點擊下面的鏈接:

https://item.taobao.com/item.htm?ft=t&id=862024382902
設(shè)計實現(xiàn):利用FPGA驅(qū)動DS18b20,讀取到溫度數(shù)值顯示到數(shù)碼管上。

1. 溫度傳感器為DS18B20。

2. 總線上只有一個器件、溫度分辨率為12bit(默認)、跳過ROM指令。

3. 將溫度顯示到數(shù)碼管上。

4. 溫度精確到小數(shù)點后2位。

5. 數(shù)碼管共計6個,最前面顯示是否為負溫度(不顯示為正溫度,顯示一橫杠為負溫度)。

6. 數(shù)碼管共計6個,后面五個顯示溫度,前面三個顯示整數(shù)、后面兩個顯示小數(shù)。

7. 數(shù)碼管共計6個,整數(shù)與小數(shù)中間點亮小數(shù)點。

8. 利用LED顯示是否初始化成功,LED點亮表示初始化成功,LED熄滅表示初始化失敗。

使用平臺:本次設(shè)計應(yīng)用Altera的平臺設(shè)計(芯片:EP4CE10F17C8)、使用的DS18B20板卡為市面上常見的,如果沒有的同學(xué),可以聯(lián)系筆者購買。

開發(fā)軟件:quartus 18.0

開發(fā)語言:Verilog HDL

作者QQ:746833924

說明:本篇設(shè)計中不涉及到ip電路,如果在其他平臺,rtl代碼依然可以適用,當(dāng)其他板卡電路不同時,會導(dǎo)致不同的現(xiàn)象出現(xiàn),如有需要修改代碼請聯(lián)系作者;如需作者使用的板卡,請聯(lián)系作者;

設(shè)計思想如下:

b2b3d802-d39f-11ef-9310-92fbcf53809c.png

ds18b20_drive模塊的功能為驅(qū)動ds18b20,獲取溫度,并且輸出符號和溫度的BCD碼;seven_tube_drive模塊的功能將符號和溫度的BCD碼輸出,并且在右側(cè)第三個數(shù)碼管點亮小數(shù)點用以區(qū)分整數(shù)和小數(shù)。 ds18b20_drive模塊采用狀態(tài)機的方式實現(xiàn)。 讀取到溫度信息后,轉(zhuǎn)換為BCD碼輸出; 首先判斷溫度的正負性,然后計算它的絕對值。 絕對值要乘以0.0625,此時乘以625,相當(dāng)于擴大了10000倍,然后除以100,則表示擴大了100倍(因為我們需要保留兩位小數(shù) ,正好擴大100倍使小數(shù)都變成了整數(shù))。

  if(data_r[12] ==1'b1) begin
     temp_sign <= 4'he;
? ? ? ? ? data_1 = (~(data_r -?1'b1)) * 16'd625 /7'd100;
? ? ? ? end
? ? ? else begin
? ? ? ? ? temp_sign <= 4'hf;
? ? ? ? ? data_1 <= (data_r *?16'd625) /7'd100;
? ? ??end

數(shù)碼管驅(qū)動采用最基本動態(tài)驅(qū)動即可,在此不做介紹;

相關(guān)參考代碼為:

通過網(wǎng)盤分享的文件:溫度傳感器DS18b20驅(qū)動--第一版
鏈接: https://pan.baidu.com/s/1es-KpmP4PqZbaR76kTDlYA?pwd=vins
提取碼: vins

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1630

    文章

    21786

    瀏覽量

    605053
  • 溫度傳感器
    +關(guān)注

    關(guān)注

    48

    文章

    2969

    瀏覽量

    156273
  • DS18B20
    +關(guān)注

    關(guān)注

    10

    文章

    780

    瀏覽量

    81012

原文標(biāo)題:基于FPGA的溫度傳感器(ds18b20)驅(qū)動設(shè)計

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于STM32的DS18B20溫度傳感器設(shè)計

    DS18B20內(nèi)置了64位產(chǎn)品序列號,方便識別身份,在一根線上可以掛接多個DS18B20傳感器,通過64位身份驗證,可以分別讀取來至不同傳感器采集的
    的頭像 發(fā)表于 03-07 11:44 ?1.3w次閱讀
    基于STM32的<b class='flag-5'>DS18B20</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>設(shè)計

    DS18B20數(shù)字溫度傳感器驅(qū)動設(shè)計與實現(xiàn)

    在一時候我們需要相對簡單的檢測溫度信號,而DS18B20就是一款功能和應(yīng)用都相對簡單的溫度傳感器,通過單線就可以實現(xiàn)檢測溫度信號的需求。這一
    發(fā)表于 12-12 14:47 ?4430次閱讀
    <b class='flag-5'>DS18B20</b>數(shù)字<b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>的<b class='flag-5'>驅(qū)動</b>設(shè)計與實現(xiàn)

    DS18B20溫度傳感器是什么

    DALLAS最新單線數(shù)字溫度傳感器DS18B20簡介新的“一線器件”體積更小、適用電壓更寬、更經(jīng)濟 Dallas 半導(dǎo)體公司的數(shù)字化溫度傳感器
    發(fā)表于 04-27 08:14

    DS18B20溫度傳感器實驗

    STM32學(xué)習(xí)記錄:DS18B20溫度傳感器實驗(HAL庫)實驗摘要DS18B20簡述STMCubeMX引腳配置芯片選型引腳和時鐘配置生成ARM-MDK工程編寫
    發(fā)表于 08-18 07:44

    數(shù)字溫度傳感器DS18B20的設(shè)計及應(yīng)用

    數(shù)字溫度傳感器DS18B20的設(shè)計及應(yīng)用 1引言 DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度
    發(fā)表于 04-02 18:00 ?2846次閱讀
    數(shù)字<b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b><b class='flag-5'>DS18B20</b>的設(shè)計及應(yīng)用

    溫度傳感器DS18B20驅(qū)動方法

    在這一小節(jié)中將對DS18B20 溫度傳感器進行介紹,包括其功能、結(jié)構(gòu)、驅(qū)動方法等內(nèi) 容。 (1)DS18B20
    發(fā)表于 02-26 17:17 ?578次下載
    <b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b><b class='flag-5'>DS18B20</b>的<b class='flag-5'>驅(qū)動</b>方法

    DS18B20完成溫度檢測的技巧

    介紹了DS18B20 溫度傳感器 的結(jié)構(gòu)和特點以及用DS18B20溫度傳感器進行
    發(fā)表于 08-23 10:44 ?190次下載
    <b class='flag-5'>DS18B20</b>完成<b class='flag-5'>溫度</b>檢測的技巧

    溫度傳感器DS18B20

    溫度傳感器DS18B20 51例程,親測可用
    發(fā)表于 06-14 15:36 ?20次下載

    智能溫度傳感器DS18B20的原理與應(yīng)用

    DS18B20是DALLAS公司生產(chǎn)的單線數(shù)字溫度傳感器,他具有獨特的單線總線接口方式。文章詳細的介紹了單線數(shù)字溫度傳感器
    發(fā)表于 10-11 18:19 ?49次下載

    關(guān)于DS18B20溫度傳感器的原理及使用介紹說明(1)

    DS18B20溫度傳感器的原理和使用
    的頭像 發(fā)表于 07-10 03:00 ?2.1w次閱讀

    DS18B20溫度傳感器溫度程序和驅(qū)動以及案例實現(xiàn)資料說明

    本文檔的的主要內(nèi)容詳細介紹的是DS18B20溫度傳感器溫度程序和驅(qū)動以及案例實現(xiàn)資料說明,本文件包含整個
    發(fā)表于 04-09 08:00 ?1次下載
    <b class='flag-5'>DS18B20</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>的<b class='flag-5'>溫度</b>程序和<b class='flag-5'>驅(qū)動</b>以及案例實現(xiàn)資料說明

    ds18b20的特性_ds18b20溫度傳感器應(yīng)用

    本文首先介紹了ds18b20的特性,其次介紹了DS18B20工作原理,最后介紹了ds18b20溫度傳感器應(yīng)用。
    發(fā)表于 04-24 09:10 ?1.1w次閱讀
    <b class='flag-5'>ds18b20</b>的特性_<b class='flag-5'>ds18b20</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>應(yīng)用

    ds18b20溫度傳感器如何使用

    DS18B20是一款廣泛使用的數(shù)字溫度傳感器,它具有高精度、低功耗和易于使用的特點。 DS18B20溫度
    的頭像 發(fā)表于 09-03 16:51 ?782次閱讀

    ds18b20溫度傳感器怎么接線

    DS18B20是一種廣泛使用的數(shù)字溫度傳感器,它基于1-Wire(一線)通信協(xié)議工作。這種傳感器因其高精度、易用性和低成本而受到歡迎。 DS18B2
    的頭像 發(fā)表于 10-18 14:50 ?1771次閱讀

    DS18B20溫度傳感器的工作原理和硬件設(shè)計

    通過本文可以了解DS18B20溫度傳感器工作原理、硬件設(shè)計、DS18B20單總線接口驅(qū)動編寫。
    的頭像 發(fā)表于 10-24 14:38 ?3205次閱讀
    <b class='flag-5'>DS18B20</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>的工作原理和硬件設(shè)計
    主站蜘蛛池模板: 在教室轮流被澡高H林萌 | 黄色亚洲片| 亚洲视频精品| 女人高潮了拔出来了她什么感觉| 果冻传媒在线观看网站| 日本三级床震| 总裁呻吟双腿大开男男H| 免费麻豆国产黄网站在线观看| a一级毛片视频免费看| 无套内射在线观看THEPORN| 中文字幕精品在线观看| 在线播放免费人成视频| 99热这里只有精品9| 床上色APP下载免费版| 国产成人午夜精品免费视频| 日日摸夜添夜夜夜添高潮| 久久毛片视频| 精品性影院一区二区三区内射 | 国产人妻麻豆蜜桃色在线| 大陆老太交xxxxxhd在线| 99久久久无码国产AAA精品| 中文字幕不卡在线高清| 亚洲午夜精品A片久久WWW解说| 午夜性爽视频男人的天堂在线 | 十八禁肉动漫无修在线播放| 欧美又粗又长又大AAAA片| 免费的黄直播| 久久毛片基地| 娇小老少配xxxxx| 国产亚洲美女精品久久久2020| 国产99久9在线| 大香伊蕉在人线国产97| qvod 艺术片| ae58老司机福利| 99精品视频免费观看| 99re10久久热| 99在线在线视频观看| 99欧美精品| 啊灬啊灬啊灬快灬深高潮啦| asmr淫语| xxx免费观看|