400-810-1218加入收藏夹|设为主页|广告服务|网币|登录|注册
当前位置:首页 >> 技术频道 >> 电路设计

嵌入式单总线控制器设计

来源: 作者:张武 发布时间:2009-07-28 09:45:30 发表评论

摘要:以数字式温度传感器DS1820为例,介绍了单总线器件的工作原理,详细分析了单总线器件的通信时序。

关键词:单总线DS1820VHDL控制器

  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] 王成江,王安敏,张玉华.单总线数字温度传感器原理及应用[J].半导体技术,2003,28(2): 68-70.

  [2] 薛智宏,赵金,解丽红.DS1820的测量原理及提高分辨率的方法[J].河北工业科技,2002,19(6): 4-7.

  [3] 许勇.DS1820在网络中心机房温控中的应用[J].电脑开发与应用,2001,14(9): 424-425.

  [4] 陈善富,王荣亮.DS1820与PIC12C5XX系列微控制器应用于火灾感温测控器[J].计算机与现代化,2000,70(6): 111-114.

  [5] 张令.温室群的温度自动测试系统[J].邯郸职业技术学院学报,2003,16(4): 65-68.

  [6] 李农.FPGA与DS18B20型温度传感器通信的实现[J].国外电子元器件.2006,2(2): 48-51.

  [7] 袁伟亭,周润景.FPGA与DS18B20组成的测温系统设计[J].内蒙古大学学报(自然科学版),2006,37(4): 459-463.

0
顶一下
0
踩一下

相关文章

发表评论

请自觉遵守互联网相关政策法规,作者管理后台可以删除恶意评论、广告和违禁词语。