首页 > 范文大全 > 正文

基于NiosII的SOPC嵌入式高精度温度测量仪设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于NiosII的SOPC嵌入式高精度温度测量仪设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:针对传统8位温度测试仪测量精度低的缺点,利用FPGA设计基于niosiisopc嵌入式高精度温度测量仪,采用了“NiosII+DS18B20”SOPC嵌入式设计结构。测试结果表明:本设计结构在抗干扰能力、测量精确和扩展性等方面具有较好的优势,有一定的实用价值。

关键词:高精度温度测量仪 可编程逻辑门列阵 SOPC NiosII

中图分类号:TH85 文献标识码:A 文章编号:1007-9416(2012)11-0179-02

1、引言

温度是人类生存和生产重要的环境因素,温度测量是现代控制系统的一个重要内容[1]。因此,准确地对温度进行测量,在现代生活和生产过程中,显得尤其重要。目前大多数的温度测量系统,采用8位的单片机进行设计,由于受到单片机的位数的限制,温度测量精度不高,很难满足对温度要求较高的场合。

针对以上情况,本文利用32位软核CPU和SOPC嵌入式技术在FPGA上设计一款高精度温度测量系统。测试结果表明:本测量仪在设计结构[2]、抗干扰能力[2]、测量精确[2]、测量速度[2]和扩展性方面[2]具有较好的优势。

2、本系统整体硬件设计框图

图1,为本设计的整体的硬件设计框图,本设计采用了基于NiosII的SOPC嵌入式设计方案,本设计的绝大部分电路在一片可编程逻辑门列阵(FPGA)上实现,包括NiosII处理器、Avalon数总线、JTAG控制器、EPCS控制、SDRAM控制器、LCD1602控制器、DS18B20读写接口电路。这些电路模块通过Avalon总线相连。

图1 本系统整体硬件设计框图

由于温度传感器DS18B20不能单独工作,它要与一个CPU的配合使用,在本设计中,采用了32位的软核NiosII处理器,Nios II是由Altera公司推出32位RISC软核CPU,在可编程片上系统(SOPC)中得到了广泛地应用。SDRAM控制器起到控制SDRAM芯片作用,用于存放NiosII软核CPU运行时的程序和在运行时所产生的重要的数据。JTAG UART控制器通过JTAG线与上位PC机相连,实现程序的下载和在线调试功能。EPSC控制器及其的EPSC存储芯片,构成一个串行的电可擦除的存储系统,主要用于存储FPGA配制文件与NiosII软核CPU执行程序代码。1602 LCD控制器及其1602液晶显示屏,构成字符显示设备,用于显示当前测得的温度值。在发开过程中,由于SOPC Builder开发工具包中没有现成的DS18B20读写控制IP核,因此,在设计过程中,设计者通过自定义用户逻辑单元的方法,自定义DS18B20读写接口,并把这个DS18B20读写接口添加到SOPC硬件系统,以便顺利地完成对的温度传感器BS18B20进行读写操作。

3、温度传感器DS18B20简介

DS18B20是Dallas公司生产的新一代智能化数字式温度传感器[1-4],采用了单总线通信方式,其直接与微处理器的某一个I/O口相连,并能实现双向通信。DS18B20的工作电压使用范围宽(3.0~5.5V),可以采用外部供电方式,也可以采用寄生电源方式,即当总线DQ为高电平时,窃取信号能量给DS18B20供电[5]。DS18B20的温度测量范围,为-50至125℃,分辨率为9至12位,并可编程可设,当分辨率设为12位时,DS18B20的温度分辨率能达0.0625℃,从而保证温度系统的高精度,因此,DS18B20被广泛地应用于工业、农业、航天航空等领域中的对温度要求较高的场合。

3.1 基于DS18B20的单线通信协议

DS18B20温度传感器,是采用单线通信协议与控制器进行数据交换。DS18B20时序由复位时序、写时序和读时序三个基本组成。复位时序是DS18B20温度传感器的最基本的一个时序,在DS18B20与控制器交换数据之前,必需要进行一次复位操作。这个时序的具体的实现过程为:首先由CPU向DS18B20温度传感器发出一个宽度不小于480μs低电平,然后CPU释放总线,等待15-60μs之后,CPU检测由DS18B20发回的复位操作成功信号,如果收到大约60-240μs低电平信号时,则DS18B20的复位操作成功,如果收不到这一信号,说明DS18B20复位操作不成功。DS18B20的写时序图的电气特点为,首先由CPU启动写操作,即把数据总线设为高电平“1”,然后设为低电平“0”,然后延时15μs后,根据要写的数据情况(是写“1”还是写“0”),把数据输出端置于高电平或继续保持低电平,最后等待DS18B20采集此数据线,写操作的周期大约为60-120μs。DS18B20的读时序图基本上与写时序相同:首先由CPU启动读操作,延时15μs以后,从温度传感器DS18B20中一位一位地读入温度数据,其总个读操作的周期与写操作周期相同。(如图2)

3.2 基于Nios II的DS18B20读写软件编程

以上的硬件平台是通过altera公司的QuartusII8.0软件进行开发设计。首先利用QuartusII8.0软件中的SOPC Builder开发工具来设计基于SOPC的温度测量硬件片上系统,然后用QuartusII软件来编译硬件系统,生成可编程逻辑门列阵(FPGA)的配制文件,并利用下载工具把FPGA配制文件到开发板中完成硬件平台的设计。本系统的软件采用altera公司Nios II EDS软件开发环境中进行设计,实现温度的采集、浮点运算和温度显示等功能,图3为本系统的软件流程图,首先NiosII软核CPU对温度传感器DS18B20进行复位,然后释放总线,等待15-60μs,检测由DS18B20发回的复位应答信号,如是在这段时间内,检测不到低电压,说明温度传感器DS18B20复位电路异常;如果检测为低电压,说明温度传感器DS18B20复位正常。当NiosII软核CPU收到温度传感器DS18B20的正确的应答复位信号之后,向温度传感器DS18B20发出温度转换命令,使之进行温度转换。当温度转换完毕后,温度传感器DS18B20把温度值以二进制信号形式存储在数据存储器中等待NiosII软核CPU读取。当NiosII软核CPU检测到DS18B20完成温度转换,就向温度传感器发出读取温度值命令,进行温度值的读取。当读到温度值时,CPU对读到了温度值进行浮点运算,把二进制数值转换成浮点数值,并用LCD把温度值显示出来。

4、测试结果

为了验证本系统的工作性能是否满足设计要求,对设计好的样机进行了测试。在测试过程中,把温度传感器DS18B20放入装满水的封闭容器中,测量容器水中的温度,测试结果如表1所示。

5、结语

为了解决传统8位温度测量系统测量精度低的缺点,本文提出了用32位NiosII软核CPU取代8位CPU来设计系统,并给出SOPC硬件解决方案和在Nios II EDS环境中软件编程思路。把整个系统下载到EPC16C240C8开发板中进行测试,从测试结果来看,本系统运行可靠,能准确地显示小数点后4位温度值,且数值不跳变,说明,本系统不仅测量精度高,而且工作稳定,可应用于各种对温度要求较高的场合,因此,有一定的实用价值和推广价值。

参考文献

[1]余军,王彦瑜.基于MSP430单片机和DS18B20的多分支多通道温度测量系统远程监控软件设计[J].核电子学与探测技术,2009,1(29):72-75.

[2]王阳,厉洋.基于FPGA的数字温度测量仪设计与实现[J].电子技术,2012,6:69-71.

[3]张维君,王珠忠,索世文.基于PC机串口与DS18B20的单线多点温度测量[J].仪表技术与传感器,2009,4:52-53.

[4]张明,刘岑俐.基于PIC单片机和DS18B20的温度测量系统设计[J].电子测试,2010,4:54-57.

[5]张海.基于AT89C51和DS18B20的最简温度测量系统的设计[J].现代电子技术,2007,9:85-89.