目前基于智能温度传感器DS18B20的测温设计大多是单片机程序。本课题尝试使用FPGA芯片进行设计。FPGA内部有丰富的触发器和I/O引脚,同时具有静态可重复编程和动态在系统重构的特性,极大地提高了设计的灵活性和通用性,更适用于电子系统的开发。如果用户需求量非常大,采用ASIC流片能极大地节省成本,经济效益十分显著。FPGA可做其它全定制或半定制ASIC电路的中试样片。鉴于此,本课题使用硬件描述语言设计FPGA控制器来实现传感器控制,同时用VC来实现用户控制界面。
一线总线(l-wire)传感器的出现(如DS18B20),使得在仓库、工厂、楼宇等需要实时测温的网络布线得以大大改善。在大体积混凝土的建造过程中,为了防止混凝土的开裂而造成工程的失败,需要对若干点的温度进行实时监控。由于施工现场的限制,使得可利用的布线区域越简单越好。与此同时,现场温度的采集与控制也有一定的要求。这时就可以在需要的测温点横向或纵向构成多层网络,而各个一线总线传感器直接挂接在上面即可。而对于每层的温度采集和控制则可以由“FPGA控制器”去实现,使用和拆卸都很方便。并且由于FPGA移植性好、升级方便,对于各企业的成本也可以大大降低。随着FPGA的进一步发展,此温度采集控制器的应用范围将不断扩大,所体现的价值也将越来越高。
现场可编程门阵列(Field Programmable Gate Array,FPGA)是当今应用最广泛的一类可编程专用集成电路(ASIC)。FPGA作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。电子设计工程师利用它可以在办公室或实验室里设计出所需的专用集成电路,从而大大缩短了产品上市时间,降低了开发成本。此外,可编程逻辑器件还具有静态可重复编程和动态在系统重构的特性。这使得硬件的功能可以像软件一样通过编程来修改,极大地提高了电子系统设计的灵活性和通用性。
智能温度采集器的设计
在FPGA的设计中一般有两种方法:自上而下和自下而上。任何复杂的数字系统,都可以按层次细分,一直分到对每个部分都有比较明确而简单的设计方案为止。这就是常常说的分而治之的方法。自上而下的方法之所以重要,就在于只有在上面的层次上才能全面确定下面模块的输入输出和功能行为的规格。而自下而上有时也行得通的原因是有些模块的规格本身是就是事先确定的或者基本可以确定的。
针对温度采集控制器系统的特点,决定采用自上而下的设计方法,并将整个系统分为Control Unit和Data Path来进行设计(图1)。这样实现有以下优点:(1)Control Unit在内部FSM的控制下,在每一个State会有Outputs,控制Data Path中数据的传输,满足DS18B20的时序要求;(2)Data Path则完成了所有的数据流传输,并实时的反馈给Control Unit一些Inputs,从而使其State转换能够正确完成;(3)如果要有附加的控制流和数据流要添加进整个FPGA系统,则只要在Control Unit中更改相应的State和Data Path中做相应修改就可。这样设计出来的系统稳定、扩展性好。
图1 智能温度采集器的系统结构框图 在设计Control Block的时候一般采取有限状态机(FSM)的方法。FSM分两大类:米里型(Inputs对输出逻辑和下一状态逻辑有影响)和摩尔型(Inputs只对下一状态逻辑有影响)。FSM设计中首要的是确定状态变量。这是以对设计问题的深入了解为基础的。每一个状态都有可以实现的进入条件,每个状态在所有输入条件下都有明确的下一状态,包括下一状态和目前状态相同的状态的情况。显然,如果下一状态只有和目前状态相同的状态才是可实现的,那么FSM一旦进入这个状态就不会再改变了,这种“死机”状态当然是要避免的。在此系统的 Control Block中的FSM采用摩尔型,设计出“下一状态逻辑”从而使得“状态寄存器”能在每一个时钟沿正确的进行状态转换,并确定好“输出逻辑”,在每一个状态都能输出正确的控制流来对 Data Path中的数据流进行正确的控制,保证整个系统能够正确的工作。
数据通道实现的是数据间的运算和传输。数据可能是8/16/32/64位的,一般所有位的运算并没有太大的不同。但是,它又要同时实现Control Block中的FSM的功能,其设计是要和 Control Block中的FSM的结构一起考虑的。一旦FSM确定了,数据通道的计划就要着手进行。由于数据通道的性能决定了整个系统的性能的高低,所以它又非常的关键。以往通用处理器因为生产数量大,数据通道用全定制的方法设计比较多,线路和版图设计的精雕细刻,以求换得低的芯片生产成本和用其他方法难以达到的性能水平。这种情况在现代的SOC产品里有了很大的改变,因为SOC产品的产量一般都比较小,而且设计者都希望同一个处理器核的设计能够用于不同工艺生产的产品。这样,全定制的设计就不合适了。一般来说,数据通道是一定形式的流水线,因为数据的读取、运算和结果的写入都在同一个周期内实现,时钟频率就很难提高,所以高性能处理器的数据通道现在都采用流水线设计。数据通道和数据寄存器和数据存储器的关系十分密切,这当然是由处理器的结构确定的。在此系统中的 Data Path的数据流处理功能并不是非常的复杂,可以不用采取流水线设计,并在FSM的控制下进行正确的数据流传输,同时会反馈给FSM中的“下一状态逻辑”一些Inputs信号来使其能够进行正确的状态转换。
|