FPGA与DS18B20型温度传感器通讯的实现.docx

上传人:安*** 文档编号:17789931 上传时间:2022-05-26 格式:DOCX 页数:8 大小:18.77KB
返回 下载 相关 举报
FPGA与DS18B20型温度传感器通讯的实现.docx_第1页
第1页 / 共8页
FPGA与DS18B20型温度传感器通讯的实现.docx_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《FPGA与DS18B20型温度传感器通讯的实现.docx》由会员分享,可在线阅读,更多相关《FPGA与DS18B20型温度传感器通讯的实现.docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、FPGA与DS18B20型温度传感器通讯的实现ronggang导语:本文介绍利用ACTEL公司的ProASICplus系列FPGA实现与DS18B20的通讯功能。FPGA可以将读出DS18B20的48位ID号和12位温度测量结果保存在内部存放器中,微处理器可以随时快速地从FPGA存放器中读取这些信息1引言DS18B20是DALLAS公司消费的一线式数字温度传感器,采用3引脚TO-92型小体积封装;温度测量范围为-55+125,可编程为9位12位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出。一线式1-WIRE串行总线是利用1条信号线就可以与总线上假设干

2、器件进展通讯。详细应用中可以利用微处理器的I/O端口对DS18B20直接进展通讯,也可以通过现场可编程门阵列FPGA等可编程逻辑器件PLD实现对1-WIRE器件的通讯。本文介绍利用ACTEL公司的ProASICplus系列FPGA实现与DS18B20的通讯功能。FPGA可以将读出DS18B20的48位ID号和12位温度测量结果保存在内部存放器中,微处理器可以随时快速地从FPGA存放器中读取这些信息。一般在使用DS18B20时往往采用微处理器的I/O端口实现与该器件的通讯,这种方法固然比拟轻易和方便,但是,由于DS18B20的一线式串行总线对时序要求比拟严格,因此,为了保证与DS18B20的通讯

3、可靠性,微处理器与DS18B20通讯时需要采用关闭中断的方法,以防止操纵时序被中断效劳破坏。利用FPGA实现与DS18B20通讯不存在被迫关闭中断的情况,可以知足对实时性要求严格的应用要求。2ProASICplus系列FPGA简介ProASICplus系列FPGA是ACTEL公司推出的基于Flash开关编程技术的现场可编程门阵列,包括从7.5万门的APA075型到100万门的APAl000型,具有高密度、低功耗、非易失、含有嵌入式RAM及可重复编程等特点。由于ProASICplus系列FPGA基于Flash技术,利用Flash开关保存内部逻辑,因此不需要另外的器件。由于不需要上电配置经过,因此

4、具备上电就立即工作的特点。不用配置器件,系统的保密性进步。笔者在电力监控的产品中利用APA150型FPGA实现了逻辑控制、A/D采样控制和FIFO存储等功能,并利用剩余的资源实现了DS18B20的通讯功能。APA150在整个系统中充当协处理器,使主CPU从繁重的实时处理中解脱出来。3DS18B20简介3.1内部构造DS18B20的内部构造如图1所示,主要由以下几局部组成:64位ROM、温度传感器、非挥发的温度报警触发器TH温度高和TL温度低、配置存放器、暂存存放器SCRATCHPAD、存储器控制逻辑。DQ为数字信号输入/输出端。ROM中的648位产品家族编号、48位ID号、8位CRC位序列号是

5、出厂前刻好的,这64位序列号具有惟一性,每个DS18B20的64位序列号均不一样。8位CRC生成器可以完成通讯时的校验。暂存存放器有9个字节,包含温度测量结果、温度报警存放器、CRC校验码等内容。3.2操纵步骤对DS18B20的操纵分为3个步骤:初始化、ROM命令和DS18B20功能命令。3.2.1初始化FPGA要与DS18B20通讯,首先必须完成初始化。FPGA产生复位信号,DS18B20返回响应脉冲。3.2.2ROM命令该步骤完成FPGA与总线上的某一详细DS18B20建立联络。ROM命令有搜寻ROMSEARCHROM、读ROMREADROM、匹配ROMMATCHROM、忽略ROMSKIP

6、ROM、报警查找等命令ALARMSEARCH。这里,FPGA只连接1个DS18B20,因此只使用读ROM命令,来读取DS18B20的48位ID号。3.2.3DS18B20功能命令FPGA在该步骤中完成温度转换CONVERTT、写暂存存放器WRITESCRATCHPAD、读暂存存放器READSCRATCHPAD、拷贝暂存存放器COPYSCRATCHPAD、装载暂存器存放器RECALLE2、读供电形式命令READPOWERSUPPLY。文中不用温度报警功能,因此在本步骤中只需完成温度转换,然后通过读暂存存放器命令完成温度转化的结果。3.3操纵时序2所示。从时序图中可以看出,对DS18B20的操纵时

7、序要求比拟严格。利用FPGA可以实现这些操纵时序。4FPGA与DS18B20的通讯4.1DS18B20的操纵模块FPGA需要完成DS18B20的初始化、读取DS18B20的48位ID号、启动DS18B20温度转换、读取温度转化结果。读取48位ID号和读取温度转换结果经过中,FPGA还要实现CRC校验码的计算,保证通讯数据的可靠性。以上操纵反复进展,可以用状态机来实现。状态机的各种状态如下:RESET1:对DS18B20进展第一次复位,然后进入DELAY状态,等待800s后,进入CMD33状态。CMD33:对DS18B20发出033命令,读取48位ID值。GET_ID:从DS18B20中读取48

8、位ID值。RESET2:对DS18B20进展第二次复位,然后进入DELAY状态等待800s后,进入CMDCC状态。CMDCC:向DS18B20发出忽略ROM命令,为进入下一状态作预备。CMD44:向DS18B20发出启动温度转换命令,然后进入DELAY状态等待900ms后进入下一状态。RESET3:对DS18B20进展第三次复位。CMDCC2:向DS18B20发出忽略ROM命令,为了进入下一状态作预备。GET_TEMP:从DS18B20中读取温度测量数值。DELAY:等待状态。WRITE_BIT:向DS18B20中写入数据位状态。READ_BIT:从DS18B20中读取数据位状态。在该状态中每

9、读取1位数据,同时完成该数据位的CRC校验计算。所有数据都读取后,还要读取8位CRC校验位。这8位校验位也经过CRC校验计算,假如通讯没有错误,总的CRC校验结果应该是0。这时可将通讯正确的数据保存到id和temp_data存放器中。设计中采用Verilog语言建立DS18B20操纵模块DS18B20_PROC。在该模块中实现以上的状态机功能。该模块的定义为moduleDS18B20PROCsysclk,reset,dq_pim,id,temp_data,dq_ctl。从仿真波形可以看出,系统上电后的10ms左右,FPGA可以读出DS18B20的48位ID值,这样,主CPU在系统复位后很短的时

10、间内就可以读取ID值,进展相应的处理。4.2FPGA与CPU的接口在FPGA中,要实现对DS18B20的通讯处理,主模块要实现对DS18B20_PROC模块的调用及建立与CPU之间的接口。与CPU之间的接口通过建立假设干存放器实现。温度测量值和48位ID可以用4个16位存放器保存。CPU通过读取这些存放器可以获得温度测量数值和48位ID值。CPU、FPGA及DS18B20的连接原理如图4所示。5完毕语在系统中,FPGA可以分担很多主处理器的工作,进步整体实时性,降低CPU处理的严格实时约束,进而降低CPU软件处理的难度。同时,由于ACTEL公司的ProASICplus系列FPGA的保密特性,可以增强产品知识产权的保护。本设计应用在电力监控产品中。测量出的装置内部温度用于电量测量精度补偿和报警,对保证产品测量精度和可靠运行具有重要意义。48位ID值用于产品的惟一编码标识和以太网MAC地址,便于产品消费、维护和治理。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁