资料介绍
DS18B20是DALLAS公司生产的一线式数字温度传感器,采用3引脚TO-92型小体积封装;温度测量范围为-55℃~ 125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出。一线式(1-WIRE)串行总线是利用1条信号线就可以与总线上若干器件进行通信。具体应用中可以利用微处理器的I/O端口对DS18B20直接进行通信,也可以通过现场可编程门阵列(FPGA)等可编程逻辑器件(PLD)实现对1-WIRE器件的通信。
本文介绍利用ACTEL公司的ProASICplus系列FPGA实现与DS18B20的通信功能。FPGA可以将读出DS18B20的48位ID号和12位温度测量结果保存在内部寄存器中,微处理器可以随时快速地从FPGA寄存器中读取这些信息。一般在使用DS18B20时往往采用微处理器的I/O端口实现与该器件的通信,这种方法虽然比较容易和方便,但是,因为DS18B20的一线式串行总线对时序要求比较严格,因此,为了保证与DS18B20的通信可靠性,微处理器与DS18B20通信时需要采用关闭中断的办法,以防止操作时序被中断服务破坏。利用FPGA实现与DS18B20通信不存在被迫关闭中断的情况,可以满足对实时性要求严格的应用要求。
1.ProASICplus系列FPGA简介
ProASICplus系列FPGA是ACTEL公司推出的基于Flash开关编程技术的现场可编程门阵列,包括从7.5万门的APA075型到100万门的APAl000型,具有高密度、低功耗、非易失、含有嵌入式RAM及可重复编程等特点。由于ProASICplus系列FPGA基于Flash技术,利用Flash开关保存内部逻辑,因此不需要另外的器件;也不需要上电配置过程,所以具备上电就立即工作的特点。不用配置器件,系统的保密性提高。
本文在电力监控的产品中利用APA150型FPGA实现了逻辑控制、A/D采样控制和FIFO存储等功能,并利用剩余的资源实现了DS18B20的通信功能。APA150在整个系统中充当协处理器,使主CPU从繁重的实时处理中解脱出来。
2.DS18B20简介
2.1 内部结构
DS18B20的内部结构如图1所示,主要由以下几部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH(温度高)和TL(温度低)、配置寄存器、暂存寄存器(SCRATCHPAD)、存储器控制逻辑。DQ为数字信号输入/输出端。
图1 DS18B20的内部结构框图
ROM中的64(8位产品家族编号、48位ID号、8位CRC)位序列号是出厂前刻好的,这64位序列号具有惟一性,每个DS18B20的64位序列号均不相同。
8位CRC生成器可以完成通信时的校验。
暂存寄存器有9个字节,包含温度测量结果、温度报警寄存器、CRC校验码等内容。
2.2 操作步骤
对DS18B20的操作分为3个步骤:初始化、ROM命令和DS18B20功能命令。
(1)初始化
FPGA要与DS18B20通信,首先必须完成初始化。FPGA产生复位信号,DS18B20返回响应脉冲。
(2)ROM命令
该步骤完成FPGA与总线上的某一具体DS18B20建立联系。ROM命令有搜寻ROM(SEARCH ROM)、读ROM(READ
ROM)、匹配ROM(MATCH ROM)、忽略ROM(SKIP ROM)、报警查找等命令(ALARM SEARCH)。
这里,FPGA只连接1个DS18B20,因此只使用读ROM命令,来读取DS18B20的48位ID号。
(3)DS18B20功能命令
FPGA在该步骤中完成温度转换(CONVERTT)、写暂存寄存器(WRITE SCRATCHPAD)、读暂存寄存器(READ
SCRATCHPAD)、拷贝暂存寄存器(COPYSCRATCHPAD)、装载暂存器寄存器(RECALL E2)、读供电模式命令(READ POWER
SUPPLY)。
文中不用温度报警功能,因此在本步骤中只需完成温度转换,然后通过读暂存寄存器命令完成温度转化的结果。
2.3 操作时序
DS18B20的一线式操作时序如图2所示。从时序图中可以看出,对DS18B20的操作时序要求比较严格。利用FPGA可以实现这些操作时序。
图2 DS18B20的1-Wire操作时序
3.FPGA与DS18B20的通信
3.1 DS18B20的操作模块
FPGA需要完成DS18B20的初始化、读取DS18B20的48位ID号、启动DS18B20温度转换、读取温度转化结果。读取48位ID号和读取温度转换结果过程中,FPGA还要实现CRC校验码的计算,保证通信数据的可靠性。
以上操作反复进行,可以用状态机来实现。状态机的各种状态如下:
RESET1:对DS18B20进行第一次复位,然后进入DELAY状态,等待800μs后,进入CMD33状态。
CMD33:对DS18B20发出0×33命令,读取48位ID值。
GET_ID:从DS18B20中读取48位ID值。
RESET2:对DS18B20进行第二次复位,然后进入DELAY状态等待800μs后,进入CMDCC状态。
CMDCC:向DS18B20发出忽略ROM命令,为进入下一状态作准备。
CMD44:向DS18B20发出启动温度转换命令,然后进入DELAY状态等待900ms后进入下一状态。
RESET3:对DS18B20进行第三次复位。
CMDCC2:向DS18B20发出忽略ROM命令,为了进入下一状态作准备。
GET_TEMP:从DS18B20中读取温度测量数值。
DELAY:等待状态。
WRITE_BIT:向DS18B20中写入数据位状态。
READ_BIT:从DS18B20中读取数据位状态。在该状态中每读取1位数据,同时完成该数据位的CRC校验计算。所有数据都读取后,还要读取8位CRC校验位。这8位校验位也经过CRC校验计算,如果通信没有错误,总的CRC校验结果应该是0.这时可将通信正确的数据保存到id和temp_data寄存器中。
设计中采用Verilog语言建立DS18B20操作模块“DS18B20_PROC”。在该模块中实现以上的状态机功能。该模块的定义为module DS18B20PROC(sysclk,reset,dq_pim,id,temp_data,dq_ctl)。
图3 DS18B20_PROC模块的仿真波形
从仿真波形可以看出,系统上电后的10ms左右,FPGA可以读出DS18B20的48位ID值,这样,主CPU在系统复位后很短的时间内就可以读取ID值,进行相应的处理。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- DS18B20的结构与工作原理资料下载
- DS18B20实现温度采集的PCB原理图免费下载 79次下载
- 温度传感器DS18B20的使用C语言程序和资料免费下载 40次下载
- 使用DS18B20实现温度检测计的详细程序和仿真资料合集免费下载 10次下载
- 使用proteus实现温度传感器DS18B20的仿真资料免费下载 75次下载
- Verilog实现DS18B20测量温度以及LCD屏幕的显示程序和工程文件 14次下载
- 使用DS18B20进行温度转换与显示的资料和程序免费下载
- 多点温度采集模块的DS18B20驱动函数模块的设计资料免费下载
- DS18B20温度传感器的温度程序和驱动以及案例实现资料说明 1次下载
- DS18B20温度传感器测试的程序和资料合集免费下载 21次下载
- DS18B20芯片的中文资料 36次下载
- ds18b20 15次下载
- DS18B20 0次下载
- ds18b20电路图
- ds18b20 datasheet下载
- 树莓派Pico上使用DS18B20温度传感器 1069次阅读
- DS18B20 数字温度计特点 2322次阅读
- DS18B20和DS18S20的比较1-Wire数字温度计 2973次阅读
- 利用DS18B20和LED数码管实现单总线温度测量系统 3715次阅读
- STM32F407入门开发: DS18B20温度传感器应用 5853次阅读
- DS18B20温度传感器的测温实验详细说明 1.1w次阅读
- DS18B20的C语言驱动程序 5346次阅读
- DS18B20和51单片机连接的汇编程序免费下载 4464次阅读
- ds18b20中文资料汇总(ds18b20引脚图及功能_工作时序及应用电路) 8.1w次阅读
- dht11和ds18b20区别_dht11与ds18b20哪个测温度更精确 8.6w次阅读
- 基于STM32自码DS18B20驱动程序 1.7w次阅读
- ds18b20封装图_ds18b20主要参数 4.1w次阅读
- ds18b20时序图_ds18b20操作流程 2.6w次阅读
- 求助:关于DS18B20温度采集系统的设计的程序 6112次阅读
- 基于DS18B20和89C2051组成的温度显示电路 9672次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1491次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 95次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 11次下载 | 免费
- 6100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 7基于单片机和 SG3525的程控开关电源设计
- 0.23 MB | 4次下载 | 免费
- 8基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537793次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多