你现在位置:首页>技术论文>电气常识>嵌入式系统>正文
FPGA与DSl8820型温度传感器通信的实现
日期:2008-5-26 0:21:55 来源:本站整理  
点击: 作者:
点击【】放大字体.
WWW_PLCJS_COM-PLC-技.术_网

摘要:介绍利用ACTEL公司的APA150型现场可编程门阵列(FPGA)实现对DS18B20型温度传感器的通信控制,使CPU可以方便地从FPGA中读取温度测量结果和DS18B20的48位ID值。
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

关键词:现场可编程门阵列(FPGA);温度传感器(DS18B20);1-WIRE;Verilog;通信
WWcW_PLCJS_COM-PLC-技.术_网

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

l 引言
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

    DS18B20是DALLAS公司生产的一线式数字温度传感器,采用3引脚T0-92型小体积封装;温度测量范围为-55℃~+125~C,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出。
W1WW_P4LCJS_COM-PLC-技.术_网

    一线式(1-WIRE)串行总线是利用1条信号线就可以与总线上若干器件进行通信。具体应用中可以利用微处理器的I/O端口对DS18B20直接进行通信,也可以通过现场可编程门阵列(FPGA)等可编程逻辑器件(PLD)实现对1-WIRE器件的通信。
WWW_PLCJS_COM-PLC-技.术_网

    本文介绍利用ACTEL公司的ProASICplus系列FPGA实现与DS18B20的通信功能。FPGA可以将读出DS18B20的48位ID号和12位温度测量结果保存在内部寄存器中,微处理器可以随时快速地从FPGA寄存器中读取这些信息。
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

    一般在使用DS18B20时往往采用微处理器的I/O端口实现与该器件的通信,这种方法虽然比较容易和方便,但是,因为DS18B20的一线式串行总线对时序要求比较严格,因此,为了保证与DS18B20的通信可靠性,微处理器与DS18B20通信时需要采用关闭中断的办法,以防止操作时序被中断服务破坏。
WWW_P※LCJS_COM-PLC-)技.术_网

    利用FPGA实现与。DS18B20通信不存在被迫关闭中断的情况,可以满足对实时性要求严格的应用要求。
WWW_P※LCJS_COM-PLC-)技.术_网

WWW_PLC※JS_COM-PmLC-技.术_网

2 ProASICplus系列FPGA简介
plcjs.技.术_网

    ProASICplus系列FPGA是ACTEL公司推出的基于Flash开关编程技术的现场可编程门阵列,包括从7.5万门的APA075型到100万门的APAl000型,具有高密度、低功耗、非易失、含有嵌入式RAM及可重复编程等特点。
WWW_P※LCJS_COM-PLC-)技.术_网

    因为ProASICplus系列FPGA基于Flash技术,利用Flash开关保存内部逻辑,因此不需要另外的器件。由于不需要上电配置过程,因此具备上电就立即工作的特点。不用配置器件,系统的保密性提高。
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

    笔者在电力监控的产品中利用APA150型FPGA实现了逻辑控制、A/D采样控制和FIFO存储等功能,并利用剩余的资源实现了DS18B20的通信功能。APA150在整个系统中充当协处理器,使主CPU从繁重的实时处理中解脱出来。
WW.W_PLC※JS_C,OM-PL,C-技.术_网

WWW_PLCJS@_COM%-PLC-技.术_网

3 DS18B20简介
WWW.PLCJS.COM——可编程控制器技术门户

3.1内部结构
WWW_PLCJS@_COM%-PLC-技.术_网

    DS18B20的内部结构如图1所示,主要由以下几部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH(温度高)和TL(温度低)、配置寄存器、暂存寄存器(SCRATCHPAD)、存储器控制逻辑。DQ为数字信号输入/输出端。
WW.W_PLC※JS_C,OM-PL,C-技.术_网

WWW_PLC※JS_COM-PmLC-技.术_网

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

WWW_P※LCJS_COM-PLC-)技.术_网

    ROM中的64(8位产品家族编号、48位ID号、8位CRC)位序列号是出厂前刻好的,这64位序列号具有惟一性,每个DS18B20的64位序列号均不相同。
WWW_PLCJS@_COM%-PLC-技.术_网

    8位CRC生成器可以完成通信时的校验。
WWcW_PLCJS_COM-PLC-技.术_网

    暂存寄存器有9个字节,包含温度测量结果、温度报警寄存器、CRC校验码等内容。
WWW_P※LCJS_CO※M-PLC-技-.术_网

WWW_PLCJS_COM-PLC-技.术_网

3.2操作步骤
WWW.PLCJS.COM——可编程控制器技术门户

   
对DS18B20的操作分为3个步骤:初始化、ROM命令和DS18B20功能命令。
WWW_P※LCJS_COM-PLC-)技.术_网

plcjs.技.术_网

3.2.1初始化
WWW.PLCJS.COM——可编程控制器技术门户

    FPGA要与DS18B20通信,首先必须完成初始化。FPGA产生复位信号,DS18B20返回响应脉冲。
plcjs.技.术_网

WWW_PLC※JS_COM-PmLC-技.术_网

3.2.2ROM命令
WWW_PL※CJS_COM-PLC-技.术_网

   
该步骤完成FPGA与总线上的某一具体DS18B20建立联系。ROM命令有搜寻ROM(SEARCH ROM)、读ROM(READ ROM)、匹配ROM(MATCH ROM)、忽略ROM(SKIP ROM)、报警查找等命令(ALARM SEARCH)。
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

    这里,FPGA只连接1个DS18B20,因此只使用读ROM命令,来读取DS18B20的48位ID号。
plcjs.技.术_网

——可——编——程——控-制-器-技——术——门——户

3.2.3 DS18B20功能命令
WW.W_PLC※JS_C,OM-PL,C-技.术_网

    FPGA在该步骤中完成温度转换(CONVERTT)、写暂存寄存器(WRITE SCRATCHPAD)、读暂存寄存器(READ SCRATCHPAD)、拷贝暂存寄存器(COPYSCRATCHPAD)、装载暂存器寄存器(RECALL E2)、读供电模式命令(READ POWER SUPPLY)。
W1WW_P4LCJS_COM-PLC-技.术_网

    文中不用温度报警功能,因此在本步骤中只需完成温度转换,然后通过读暂存寄存器命令完成温度转化的结果。
WWW_PL※CJS_COM-PLC-技.术_网

WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

3.3操作时序
WW.W_PLCJS_COM-PLC-技.术_网

    DS18B20的一线式操作时序如图2所示。从时序图中可以看出,对DS18B20的操作时序要求比较严格。利用FPGA可以实现这些操作时序。
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

P.L.C.技.术.网——可编程控制器技术门户

WWW_PL※CJS_COM-PLC-技.术_网

WW.W_PLC※JS_C,OM-PL,C-技.术_网

4 FPGA与DS18B20的通信
plcjs.技.术_网

4.1 DS18B20的操作模块
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

    FPGA需要完成DS18B20的初始化、读取DS18B20的48位ID号、启动DS18B20温度转换、读取温度转化结果。读取48位ID号和读取温度转换结果过程中,FPGA还要实现CRC校验码的计算,保证通信数据的可靠性。
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

    以上操作反复进行,可以用状态机来实现。状态机的各种状态如下:
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

    RESET1:对DS18B20进行第一次复位,然后进入DELAY状态,等待800μs后,进入CMD33状态。
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

    CMD33:对DS18B20发出0×33命令,读取48位ID值。
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

    GET_ID:从DS18B20中读取48位ID值。
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

    RESET2:对DS18B20进行第二次复位,然后进入DELAY状态等待800μs后,进入CMDCC状态。
W1WW_P4LCJS_COM-PLC-技.术_网

    CMDCC:向DS18B20发出忽略ROM命令,为进入下一状态作准备。
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

    CMD44:向DS18B20发出启动温度转换命令,然后进入DELAY状态等待900ms后进入下一状态。
WW.W_PLCJS_COM-PLC-技.术_网

    RESET3:对DS18B20进行第三次复位。
W1WW_P4LCJS_COM-PLC-技.术_网

    CMDCC2:向DS18B20发出忽略ROM命令,为了进入下一状态作准备。

本新闻共2页,当前在第11 2  
WWcW_PLCJS_COM-PLC-技.术_网

评论内容
载入中...
载入中...
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
·栏目热门排行
·站内热门排行