原创 基于ds18b20 的fpga 温度计

2011-6-5 12:12 4339 7 9 分类: FPGA/CPLD

作为恒温控制系统选择的前端温度测量模块,ds18b20的控制相对麻烦点,相关ds18b20的资料可以查看手册。

整体模块划分

  pll分频模块,25mhz晶振 倍到50 mhz在分频1mhz,1us一个周期,便于ds18b20控制时序。系统时钟选1mhz

  ds18b20模块,其中包括ds18b20控制模块,数据转换模块,数码管显示3个模块

 20110601085439897.jpg

我做的比较简单,总线上只挂了一个ds18b20,操作指令顺序

初始化-忽略rom-温度转化-初始化-忽略rom-读寄存器-读出温度-复位。

具体指令和操作步骤参照ds18b20 datasheet。

难点主要是ds18b20的读0,读1 写0,写1时序分开,要求相对比较严格。

每次读写操作都在一个60-70us 的片内。

读1操作的时候,总线先下拉大于1us的时间,释放总线,等待上拉电阻把总线电平拉高,然后控制器采样

读0操作的时候,总线先下拉大于1us时间,释放总线,ds18b20会在总线下拉后15us内给低电平。

注意在读1操作时,控制器的采样必须在总线下拉电平后15us内,具体说来,在进行读1操作时,就是采样时间

必须大于电平拉低时间+电阻把总线电平从低电平拉回高电平,小于总线电平拉低后15us。建议尽量接近15us处。

我这次的设计是读操作开始总线拉低2us后释放总线,采样时间在电平拉低后10us处。

资源消耗情况

20110601085255424.jpg

实际测量图。和水银温度记温度对于有1-2度误差。手接触ds18b20时候,温度会有明显的上升。

20110601090058555.jpg

 

补上一张图~20110605121235904.jpg

这是ds18b20控制模块内3个模块,ds_contrl是ds18b20控制模块,ds_data 数据处理模块,t_proc 12位数据时准备送到后面的pid 和模糊算法模块进行处理。

 

 

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户589096 2012-6-22 10:30

能给个程序吗,谢谢!

xucun915_925777961 2011-6-1 10:02

嗯,不错,继续加油!
相关推荐阅读
用户1631420 2011-12-06 08:42
改版了!
很久很久没上edn了~ 改版了,有点不习惯了。 很多事情冲着我来了。可能是每个这个年龄段的人都会遇到的 我不知道我处理的好不好。但我还是按照我的意志去做了。 工作上的事情 突如其来...
用户1631420 2011-07-17 14:08
基于FPGA的PID算法实现
    有段时间没来这里写东西。最近稍微有些忙,工程硕士报名了,又有一部分时间给它了。     言归正传,之前一直在学习PID算法,最近再用FPGA来实现PID控制,目前进行的2个实践一个,一个是温 ...
用户1631420 2011-06-02 17:22
随便聊聊~
       年也过完了,2010年对于我自己来说风起云涌,变化不测啊~       今年27了,一事无成。偶然之间在单位图书馆翻到一本fpga的杂志,颇有兴趣,于是找到了这里。      申请用户,...
用户1631420 2011-05-26 13:33
fpga设计流程图
...
用户1631420 2011-05-26 12:47
for循环与阻塞赋值
   阻塞赋值和非阻塞赋值是verilog里一个难点,也是重点,相关区别各大论坛博客里都有详细的讲解。       先说几个经验上的要点。       在时序逻辑里都采用非阻塞赋值,在组合逻辑里采用阻...
EE直播间
更多
我要评论
2
7
关闭 站长推荐上一条 /3 下一条