当前位置:首页 > 通信技术 > 通信技术
[导读]本文介绍利用ACTEL公司的ProASICplus系列FPGA实现与DS18B20的通信功能。FPGA可以将读出DS18B20的48位ID号和12位温度测量结果保存在内部寄存器中,微处理器可以随时快速地从FPGA寄存器中读取这些信息。

    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通信不存在被迫关闭中断的情况,可以满足对实时性要求严格的应用要求。 

2 ProASICplus系列FPGA简介 

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

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

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

3 DS18B20简介 

3.1内部结构
 

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


   
    ROM中的64(8位产品家族编号、48位ID号、8位CRC)位序列号是出厂前刻好的,这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命令有搜寻ROM(SEARCH ROM)、读ROM(READ ROM)、匹配ROM(MATCH ROM)、忽略ROM(SKIP ROM)、报警查找等命令(ALARM SEARCH)。 

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

3.2.3 DS18B20功能命令 

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

    文中不用温度报警功能,因此在本步骤中只需完成温度转换,然后通过读暂存寄存器命令完成温度转化的结果。 

3.3操作时序 

    2所示。从时序图中可以看出,对DS18B20的操作时序要求比较严格。利用FPGA可以实现这些操作时序。



4 FPGA与DS18B20的通信

4.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 DS18B20 PROC(sysclk,reset,dq_pim,id,temp_data,dq_ctl)。

 
 
    从仿真波形可以看出,系统上电后的10ms左右,FPGA可以读出DS18B20的48位ID值,这样,主CPU在系统复位后很短的时间内就可以读取ID值,进行相应的处理。

4.2 FPGA与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地址,便于产品生产、维护和管理。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

互联网内容的主要介质在过去的几十年中完成了从文字到图片再到视频的转变。在不断变化中,一以贯之的是人们对体验更好,更真实、更丰富网络生活的追求。如今,视频和游戏内容都在向着更高刷新率与分辨率的方向发展,终端设备也在积极普及...

关键字: 元宇宙 Wi-Fi 7 通信

此前,印度政府曾在推特上公布“国家宽带使命”计划,并表示将于今年10月1日在印度正式推出5G服务,引发了不少网友的关注。然而,近日CNMO了解到,此条推文现已被删除。业内人士表示,印度可能尚未准备好从10月1日开始推出5...

关键字: 印度 5G 通信

最近为什么越来越多的研究开始利用FPGA作为CNN加速器?FPGA与CNN的相遇究竟能带来什么神奇效果呢?原来,FPGA拥有大量的可编程逻辑资源,相对于GPU,它的可重构性以及高功耗能效比的优点,是GPU无法比拟的;同时...

关键字: FPGA 可编程逻辑资源 GPU

FPGA的应用领域包罗万象,我们今天来看看在音乐科技领域及医疗照护的智能巧思。

关键字: FPGA 科技领域 智能

强大的产品可降低信号噪音并提高分辨率与动态

关键字: Spectrum仪器 数字化仪 FPGA

最近某项目采用以太网通信,实践起来有些奇怪,好像设计成只能应答某类计算机的ICMP(ping)命令, 某类计算机指的是Windows特定系统,其他系统发送ping都不能正确识别。

关键字: 嵌入式Linux FPGA 协议

近两年,国外厂商的FPGA芯片价格飙升,由于价格,货期,出口管制等多方面因素的影响,很多公司都在寻找FPGA国产化替代方案。我工作中正在使用的几款芯片也面临停产的风险,用一片少一片,了解到国产FPGA发展的也不错,完全自...

关键字: FPGA 芯片 EDA

北京2022年10月8日 /美通社/ -- 日前,全球领先的IT基础设施提供商浪潮信息加入龙蜥社区并成为理事单位,致力于携手社区生态伙伴,共同推动开源操作系统的全产业链协同创新和产业化应用。 龙蜥社区成立于2020...

关键字: 开源 操作系统 通信 大数据

(全球TMT2022年10月8日讯)IT基础设施提供商浪潮信息加入龙蜥社区并成为理事单位,致力于携手社区生态伙伴,共同推动开源操作系统的全产业链协同创新和产业化应用。 龙蜥社区成立于2020年9月,是国内...

关键字: 操作系统 开源 通信 装机量

(全球TMT2022年9月30日讯)Tata Communications在印度浦那推出了专用私有5G"全球卓越中心"(CoE),为企业加速"工业4.0"应用和能力。这家新的CoE是一个敏捷、安全的室内设施,用来测试和...

关键字: 通信 5G COMMUNICATIONS 图像分析

通信技术

120685 篇文章

关注

发布文章

编辑精选

技术子站

关闭