嵌入式单总线控制器设计

出处:wangzz_624 发布于:2009-07-29 09:42:33

  摘 要:以数字式温度传感器DS1820为例,介绍了单总线器件的工作原理,详细分析了单总线器件的通信时序。微处理器与单总线器件通信时必须关闭中断,造成系统实时性差。对此提出了采用VHDL语言设计嵌入式单总线控制器的方法。给出了基于VHDL的嵌入式单总线控制器的软硬件设计及仿真波形。该控制器的功能已在MAX+plusII平台上仿真实现,能够产生DS1820的通信时序。

  DS1820是美国DALLAS公司生产的一种单总线(1-wire)数字温度传感器,采用1-wire总线通信协议。具有独特的单总线通信方式以及较高的测量,从而获得了广泛应用。参考文献[1]详细介绍了DS1820的基本原理和通信时序,提出由单片机的I/O端口模拟单总线时序来控制 DS1820的方法[1]。参考文献[2]更进一步地将DS1820测量温度的分辨率由0.5 ℃提高到了0.1 ℃。将DS1820应用于不同领域,同样取得了较好的效果[3-5]。上述文献在使用DS1820时均采用微处理器作为总线主机,利用微处理器的I/O端口,用软件模拟单总线时序,实现与DS1820的通信。因为1- wire器件对总线时序要求严格,因此,为了保证与DS1820的可靠通信,微处理器需要采用关闭中断的办法,以防止操作时序被中断服务所破坏。这种方法增加了软件的设计难度,影响了系统的实时性[6]。

  VHDL作为电子设计主流硬件描述语言,采用了层次化设计方式,具有电路行为描述能力强、灵活、通用、运算速度快的特点,能够较容易地实现时序逻辑控制 [7]。以数字温度传感器DS1820为例,设计一个基于VHDL的单总线控制器,实现与DS1820的通信。本文介绍的单总线控制器,有较强的可扩展性,可以连接多种单总线器件,且微处理器可以不用被迫关闭中断,满足实时性严格要求的应用。

  1 DS1820简介

  1.1 DS1820内部结构

  DS1820主要由4部分组成:64 bit光刻ROM、温度敏感器件、高速暂存存储器和温度报警触发器TH、TL。64 bit光刻ROM保存DS1820的64 bit的ROM编码。高速暂存存储器包含9个连续的字节,存放测得的温度(补码)、TH和TL的拷贝、计数器余值和CRC校验等数据,其结构如图1所示。所有数据均以有效位在前的方式读写。

  DS1820可以采用寄生电源的方式供电,在信号线为高电平的时间周期内,把能量储存在内部电容器中,在信号线为低电平期间,由存储在电容器内的电荷供电。DS1820工作时信号线须接4.7 kΩ的上拉电阻,以保证信号线有足够的驱动能力。

  1.2 DS1820时序及工作方式

  DS1820时序如图2所示,时序波形的电平分为3种类型:主机作用的高低电平、DS1820输出的高低电平和由上拉电阻拉起的高电平(后2种情况主机释放信号线)。DS1820闲置时信号线应保持高电平。对DS1820的任何操作(读、写、复位等)都是由主机对信号线由逻辑高电平拉至低电平开始。

  由时序图可知,单总线的通信协议由6种信号类别组成:复位脉冲、存在脉冲、写0、写1、读0、读1。所有这些信号除了存在脉冲之外,均由总线主机产生。

  主机通过单总线对DS1820的操作必须首先由ROM操作命令之一开始。现以单总线只挂接一个DS1820,读取温度数据为例,其工作过程如下:

  (1)主机产生复位脉冲,DS1820返回响应脉冲;

  (2)主机写入Skip ROM(CCH,跳过ROM)命令,该命令为5种ROM操作命令之一;

  (3)主机写入温度转换(44H)命令;

  (4)主机再次产生复位脉冲,DS1820返回响应脉冲;

  (5)主机写入Skip ROM(CCH,跳过ROM)命令;

  (6)主机写入读暂存存储器命令(BEH);

  (7)读暂存存储器的温度数据。

  2 控制器设计

  2.1 控制器结构

  控制器结构如图3所示,控制器由4部分组成,即逻辑控制、单总线时序控制、数据缓存和计数器。逻辑控制部分用于实现与CPU的通信,D0~D7为8位双向数据线,EN为启动信号,下降沿有效。A1、A0为地址信号,其组合决定控制器的工作状态。A1A0=00,控制器对DS1820执行复位操作;A1A0=01,控制器执行写入操作;A1A0=10,控制器执行读出操作。控制器由外部提供200 kHz的时钟信号CLK,产生5 μs的计数周期,控制器以5 μs为一个时间片形成DS1820的读写时序。计数器的计数输出值控制读写周期。单总线时序控制部分的主要功能是产生单总线的读写时序,并向DS1820 输出控制命令,读出DS1820测得的数字温度值及其他输出信息。

  2.2 读写时序的实现

  DS1820要求引脚驱动必须是漏极开路引脚,控制器用三态门与DS1820连接,如图4所示。其中ctrl为三态门控制信号,当ctrl=0时输出信号,ctrl=1时输入信号。控制器采用5 μs作为基本计时单位,可以保证DS1820时序关系有一定的余地。

  写字节部分VHDL代码:

  PROCESS(cq)—输出1 bit

  SIGNAL cout:STD_LOGIC_VECTOR(2 DOWNTO 0);

  VARIABLE di:STD_LOGIC;

  BEGIN

  ctrl<=‘0’;

  IF(cq>=“0000” AND cq<=“0010”)THEN

  di:=‘0’;——拉低输出电位10 ms

  ELSIF(cq>“0010”AND cq<“1110”)THEN

  di:=rq; ——取发送移位寄存器的输出位

  ELSIF(cq>=“1110”)THEN

  di:=‘1’;cout<=cout + 1;

  END IF;

  dqo<=di;

  END PROCESS;

  PROCESS(cout) —计数

  SIGNAL f:STD_LOGIC;

  IF cout=“111” THEN

  f<=‘0’;—8位输出结束,停止计时

  ELSE f<=‘1’;

  END IF;

  END PROCESS;

  3 仿真波形

  控制器的VHDL程序在MAX+plusII平台编译通过,并获得了正确的复位、读、写时序。图5为写时序波形,写入77H字节。每次写入新的bit前,控制器将总线电平拉底10 μs。

  基于VHDL的嵌入式DS1820控制器,具有转换速度快、高、通用性好等优点。同时,嵌入软核的FPGA可以分担许多微处理器的工作,降低系统对 CPU实时性的要求,也降低了软件开发的难度。本文虽然是针对DS1820设计的控制器,但由于单总线通信协议的通用性,也可以用于其他单总线器件。


  

参考文献:

[1]. DS1820 datasheet https://www.dzsc.com/datasheet/DS1820_1056054.html.
[2]. ROM datasheet https://www.dzsc.com/datasheet/ROM_1188413.html.


版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!