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

2019-08-30 15:47

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

Date pathByte bit移位寄存器为读写模块DS18B20DS18B20DS18B20…… 图3-6 DATA PATH系统框图

3.8界面的功能介绍

DS18B20控制终端需要配合由 Xilinx Spartan Ⅲ FPGA实现的控制器和外接于FPGA开发板的DS18B20扩展接口板共同使用,扩展板上的插座用于连接传感器。

DS18B20控制终端的基本使用方法是: 首先将所有待测的传感器插在扩展板的插座上;

然后,在 DS18B20控制终端上点击“OpenCom”按钮打开PC机上的串口; 紧接着,点击“Search”按钮,正常情况下FPGA控制器会返回给上位机有连接在扩展板上的 DS1SB20的64bit的ROMID号,显示在程序界面左上方的 “DS18B20 ROM ID Searching”列表框中。

最后,在 DS18B20控制终端的ID列表框中选取代表某一个传感器的ID号,这个ID号也会被自动添加到程序界面左侧的“Current ID”文本框中;点击“Read Temperature”按钮,正常情况下FPGA就会向传感器发出转换温度命

令,并将温度信息传回上位机。DS18BZO控制终端会将接收到的温度信息解码, 并显示在“Temperature”文本框中。

在“ Current State”文本框中的信息是整个DS18BZO控制终端运行过程中的状态转换,以供用户做查看。

21

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

4 系统的软件设计

程序最主要的功能有两个:搜索传感器ROM ID和指定某个传感器转换温度然后读取温度值。FPGA与上位机的通讯在利用了串口的基础上使用了一套自定义的命令协议。协议规定,上位机每发出一字节命令,FPGA都返回一个响应代码。通常响应代码表示命令动作是否成功完成,READ命令的响应代码是FPGA返回的读取数据的内容。

自定义接口协议的内容在头文件Command.h中定义,内容如表3-1所示。在这个头文件中,使用#define预编译命令将接口协议的定义都列入其中。这样做可以使编写事件处理状态机时直接引用接口命令名,而不是类似0×CC,0×BE之类的代码,使程序思路更清晰。

表3-1自定义接口命令表

命令名称 INIT READ READBIT READPAD CONVERT SEARCHROM MATCHROM INITFIN SEARCHROMIDFIN READPADFIN CONVERTFIN SEARCHROMFIN MATCHROMFIN 代码 0×01 0×02 0×03 0×be 0×44 0×F0 0×55 0×10 0×55 0×12 0×13 0×60 0×20

意义 初始化 读取温度数据 读取ROM ID 读取暂存器 转换温度 搜索ROM 匹配ROM 初始化完成 搜索所有DS18B20完成 读取暂存器指令完成 转换温度完成 搜索ROM指令完成 匹配ROM指令完成 l)搜索传感器ROM ID流程

上位机通过FPGA控制器搜索传感器ROM ID的流程见图4-1。

在搜索传感器ROM ID前,将所有待搜索的DS18B20传感器挂接在总线上。

22

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

当用户按下“Search”按钮,上位机向FPGA发出初始化命令,FPGA按照一线总线初始化时序将总线拉低480微秒后释放,并等待传感器再次将总线拉低,以确认初始化成功,然后向上位机返回初始化成功指令INITFIN。

初始化完成之后,上位机继续向FPGA发送搜索ROM工D的命令SEARCHROM。当FPGA将SEARCHROM命令转化为一线总线命令发送给DS18B20之后,向上位机返回发送成功命令SEARCHROMFIN,意味着可以开始读取第一个ROM工D。主机发送READ命令,FPGA按照一线总线时序,将总线拉低一微秒,并且在第巧微妙处对总线采样。每次READ命令读取8bit。FPGA将读取到的数据作为返回值发送给上位机。进行八次READ过程之后,上位机就得到了第一个 DS18B20的ROM ID了。上位机会将这64bit的ROM印以十六进制的方式显示在程序界面左上角的“DS18B20 ROM ID Searching”列表框中。同11寸判断是否接收到结束标志符“0x55”,如果没有则继续下一次的ROM ID搜索,否则搜索结束。

开始发送INIT(0×01)成功则收到INITFIN(0×10)发送SEARCHROM(0×f0)成功则收到SEARCHROMFIN(0×60)发送READBIT命令到(0×33)初始化搜索ROM读取ROM将ROM值显示到列表框收到64bit ROM IDNO所有DS18B20 收到0×55代表结ROM束搜索完毕YES结束

图4-1 搜索传感器ROM ID流程图

2)读取温度流程

23

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

上位机通过FPGA控制器读取传感器温度数据的流程见图4-2。当查询到传感器ROM ID后就能命令传感器转换温度并读取温度值了。

首先,命令 DS1SB20 进行温度转换。这个过程遵循2.2介绍的典型的一线总线命令步骤:初始化命令,ROM命令,功能命令。首先以与上一节读取ROM ID一样的初始化方法发送初始化命令,待收到工N工TFIN初始化成功后发送匹配ROM命令MATCHROM,告诉总线上所有的传感器都要进行下面功能命令所指示的动作。当MATCHROM命令发送成功,上位机收到MATCHROMF工N命令后,上位机以每次8 bit分八次发送完64bit的ROMID以选中总线上的特定传感器。随后上位机发送温度转换命令CONVERT。温度转换需要大约750毫秒的时间。FPGA会在发送温度转换命令后启动一个计时器,在计时到750微秒时通知上位机温度转换己经完成,发出CONVERTFIN命令。接着,就可以读取温度值了。 读取温度数据也是按照命令步骤先执行初始化,待初始化成功后发送匹配ROM命令MATCHROM。FPGA成功发送匹配ROM命令后会返回上位机MATCHROMFIN。随后,上位机以每次8 bit分八次发送完64bit的ROM ID以选中总线上的特定传感器。最后,上位机就可以发送读取命令READ以取回SeratchPad暂存器中的温度数据了。

24

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

开始发送INIT(0×01)成功则收到INITFIN(0×10)发送MATCHROM(0×55)成功则收到MATCHFIN(0×20)初始化匹配ROM发送ROM ID发送64bit ROM转换温度发送CONVERT(0×44)延时等待初始化发送INIT(0×01)成功则收到INITFIN(0×10)发送MATCHROM(0×55)成功则收到MATCHFIN(0×20)匹配ROM发送ROM ID发送64bit ROM读取暂存器发送READ(0×22)读取返回值并解码结束

图4-2 读取温度流程图

4.1 MSCOMM串口通信控件

l)MSComm控件概述

MSComm 空间通过串行端口传输和接收数据,为应用程序提供串行通信功能。MSCoom控件在串口编程时十分方便,程序员不必去花时间了解较为复杂Windows API函数,只需要简单了解MSComm使用方法即可控制串口。 Microsoft Communications Control(以下简称MSComm)不是工具箱控件,在VC中要使用MSComm控件,首先应该将这个控件插入到工程中,然后才能在这个工程中使用它。向一个工程添加MSColnm控件很简单,选择“Project→Add

25


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

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

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

马上注册会员

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