基于FPGA的环境测试仪系统的设计(4)

2019-08-30 15:47

天津科技大学2011届本科生毕业论文

搜索ROM和报警搜索这两个命令例外。这两条命令在执行后不执行功能命令,而是直接进行下一组循环,即再一次初始化。

2.3 人机交互界面环境

C++语言是一种优秀的面向对象程序设计语言,它是在C语言的基础上发展 而来的。C++语言以其独特的语言机制在计算机科学的各个领域中得到了广泛的 应用。面向对象的设计思想是在原来结构化程序设计方法基础上的一个质的飞 跃,C++完美地体现了面向对象的各种特性。

面向对象技术是以对象为基础,以事件或者消息来驱动对象执行处理的程 序设计技术。面向对象程序设计的本质是把数据和处理数据的过程当成一个整 体一对象。面向对象程序设计的实现需要封装和数据隐藏技术,以及继承和多 态性技术。面向对象程序设计方法可以利用框架产品(如MFC,Microsoft Foundation Classes)进行编程。

Visual C++ 6.0是微软 Visual Studio 6.0家族的重要成员之一。微软发 布Visual C++ 6.0是在1998年。虽然已经过去了十几年,微软的新的开发工具 也层出不穷,但不少开发人员还是在使用着Visua1 C++ 6.0。Visual C++ 6.0 是传统意义上 Visual Studio家族的最后一个成员,也可以说是最成熟的一个成员:另一方面,它也是新的Visual Studio.NET家族的基础。

11

天津科技大学2011届本科生毕业论文

3 系统的硬件设计

3.1体系架构框图

在FPGA的设计中一般有两种方法:自上而下(top-down)和自下而上(bottom-up)。任何复杂的数字系统,都可以按层次细分,一直分到对每个部 分都有比较明确而简单的设计方案为止。这就是常常说的分而治之的方法 (divide-and-conquer)。自上而下的方法之所以重要,就在于只有在上面的层 次上才能全面确定下面模块的输入输出和功能行为的规格。而自下而上有时也 行得通的原因是有些模块的规格本身是就是事先确定的(SRAM或其他引进的IP核),或者可以比较确定。

针对温度采集控制器系统的特点,决定采用自上而下的设计方法,并将整个系统分为 Control Unit和 Data Path来进行设计,可见图3-1。这样实现有以下优点: a. Control Unit在内部FSM的控制下,在每一个State会有Outputs,控制 Data

Path中数据的传输,满足DS18B20的时序要求。

b. 而 Data Path则完成了所有的数据流传输,并实时的反馈给Control Unit一些

Inputs,从而使其State转换能够正确完成。

c. 如果要有附加的控制流和数据流要添加进整个FPGA系统,则只要在 Control

Unit中更改相应的State和Data path中做相应修改就可。这样设计出来的系统稳定、扩展性好。

Control blockByte bitFenPinFSM移位寄存器RS232uartrecinituarttranPCconvover为读写模块DS18B20DS18B20DS18B20…… 图3-1 系统架构框图

12

天津科技大学2011届本科生毕业论文

3.2 Control Block的设计

在设计 Control Block的时候一般采取有限状态机(FSM)的方法。FSM分两

大类:米里型(Inputs对输出逻辑和下一状态逻辑有影响)和摩尔型(Inputs只对下一状态逻辑有影响)。

FSM核心包含以下几个部分:

? 状态寄存器

状态有存器的输出就是当前状态,而输入是下1状态。在每个有效的时t中第3章智能温度采集控制器体系架构前沿,输出更新成前沿来到前的下一状态值。综合优化软件具有简化状态的能力。但是,往往写模块时所选择的状态有明显的功能性的意义,设计者并不希望为了省一点寄存器硬件而在综合优化后失去这些有意义的变量。因此,把状态寄存器分开并固定下来是有必要的。状态寄存器的位数N取决于用到的总状态的数目M,满足2的(N-l)次

在任何一个时钟周期内靠近周期结束的时刻,由控制输入,和本周期的当前状态可以完全确定下一状态。这是个纯组合逻辑。这个部分,用前面所提到的第二种写法,利用case结构是用得很普遍的。case的主变量是当前状态,这样对每一个可能的当前状态,都可以有相应的一段描述下一状态的用if-else表示的逻辑。对于不用的状态,也应该用default来设定。 ? 控制信号输出逻辑

设计FSM的目的就是获得状态变量,有了状态变量和一些其他输入信号一起,便可以获得所需的控制信号。这部分逻辑也应该是纯组合逻辑。不言而喻,FSM设计中首要的是确定状态变量。这是以对设计问题的深入了解为基础的。每一个状态都有可以实现的进入条件,每个状态在所有输入条件下都有明确的下一状态,包括下一状态和目前状态相同的状态的情况。显然,如果下一状态只有和目前状态相同的状态才是可实现的,那么FSM一旦进入这个状态就不会再改变了,除非特别需要,这种“死机”状态当然是要避免的。

在此系统的 ControlB10ck中的FSM才用摩尔型,设计出“下一状态逻辑”从而使得“状态寄存器”能在每一个时钟沿正确的进行状态转换,并确定好“输出逻辑”,在每一个状态都能输出正确的控制流来对 Data Path中的数据流进行正确的控制,保证整个系统能够正确的工作。 3.3 Data Path的设计

13

天津科技大学2011届本科生毕业论文

数据通道实现的是数据间的运算和传输。数据可能是8/16/32/64位的,一般所有的位经过的运算并没有太大的不同。但是,它又要同时实现Control Block中的FSM的功能,其设计是要和 Control Block中的FSM的结构一起考虑的。一日FSM确定了,数据通道的计划就要着手进行。由于数据通道的性能决第3章智能温度采集控制器体系架构定了整个系统的性能的高低,所以它又非常的关键。以往通用处理器因为生产数量大,数据通道用全定制的方法设计比较多,线路和版图设计的精雕细刻,以求换得低的芯片生产成本和用其他方法难以达到的性能水平。这种情况在现代的SOC产品里有了很大的改变,因为SOC产品的产量一般都比较小,而且设计者都希望同一个处理器核设计能够用于不同的工艺生产的产品。这样,全定制的设计就不合适了。一般来说,数据通道是一定形式的流水线,因为数据的读取,运算,和结果的写入都在同一个周期内实现,时钟频率就很难提高,所以高性能处理器的数据通道现在都采用流水线设计。数据通道和数据寄存器和数据存储器的关系十分密切,这当然是由处理器的结构确定的。 在此系统中的 Data Path的数据流处理功能并不是非常的复杂,可以不用 采取流水线设计,并在FSM的控制下进行正确的数据流传输,同时会反馈给FSM 中的“下一状态逻辑”一些Inputs信号来使其能够进行正确的状态转换。

3.4 系统开发环境

本课题硬件设计采用XILINX公司SPARTAN-3器件开发板进行编程验证,其实照可见图3-2。其特性如下:

? 具有二十万门,十二个嵌入式18*l8乘法器支持高性能DSP应用,216Kbit

的块RAM,50HZ内部时钟晶振。 ? 板上2 M bit Platform Flash。

? 八个开关,四个按钮,八个LED,四个七段显示。 ? 串口,VGA口,PS/两个鼠标/一个键盘口。 ? 三组,各40个引脚的扩展连接。

? 三个强电流的电压整流器(3.3V,2.SV,1.2V)。 ? 配合JTAG3编程线和 Xilinx的P4&MultiPRO线。

14

天津科技大学2011届本科生毕业论文

图3-2 开发板实照

系统硬件设计采用Verilog HDL设计语言,设计流程在 Xilinx公司提供的

开发工具ISE中完成,配合以MODELSM SE仿真工具。

SPARTAN-3开发板上使用MAX3222电平转换器,转换RS-232C的EIA电平+12V与TTL电平+3.:3V。

在本系统中,由于串行通讯的双方都是自订制的,因此本课题中RS-232C的串行传输波特率选择使用了PC机所能达到的最快传输速度:115200bit/s。

上位机软件编程采用Visual C++6.0。

3.5 控制器设计方案

在课题的设计过程中,方案不断改进,FPGA中主要控制模块的状态机构造不断简化。最终的设计已经可以构成有效的多点温度测控系统。

3.5.1初始方案

最原始的构思是基于少量的简单控制指令实现DSI18B20的一系列时序操作,从而实现温度的采集和处理。

根据DS18B20的通讯协议,主机控制DS18B20实现任何功能必须经过如下三个步骤,才能对DS18B20进行预定的操作。

15


基于FPGA的环境测试仪系统的设计(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年江西省抚州市临川一中高考数学全真模拟试卷(理科)(6月

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: