单片机和FPGA的远程温度监控系统
扫描二维码
随时随地手机看文章
温度对工农业生产和国防事业均有不同程度的影响。电力设备的故障有多种多样,但大多数都伴有发热的现象,一次事故损失巨大;纺织、食品、烟草等工业中,温度过高容易使产品变质,电子仪器也容易出故障;温室栽培和工业生产中,若不控制温度,将严重影响产量和质量。还有很多领域的温度可能较高或较低,人无法靠近或现场无需人力来监控。传统的温度测量方式周期长,不能实时监测,而且测量员必须到现场进行测量和启动功率设备来调整温度,工作效率非常低,且不便于管理。为此设计了这套远程测控系统,坐在办公室里就可以对现场进行监控,又方便又节省人力。
1 系统的总体设计 本设计是基于单片机和NiosⅡ软核的温度监控系统,其系统框图如图1所示。本系统采用Dallas单线数字温度传感器DS18B20采集温度数据,打破了传统的热电阻、热电偶再通过A/D转换采集温度的思路。用Atmel公司的FLASH单片机AT89S51对数字信号进行处理和控制,通过RS 232串口传到以NiosⅡ构成的嵌入式处理机中对温度进行监视与报警。Nios II的嵌入式Web服务器使用户可以通过IE浏览器浏览存储在FLASH芯片中的网页,由于CPU本身是以软核的方式实现,其功能可根据需要进行定制,非常灵活。2 监控系统的硬件系统设计2.1 对DS18B20的简单介绍和使用说明 DS18B20是美国DALLAS公司生产的单线数字温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,特别适合于构成多点温度测控系统,可直接将温度转化成串行数字信号供微机处理,而且每片DS18B20都有惟一的产品号并可存入其ROM中,在构成大型温度测控系统时单线上可挂多个DS18B20芯片。从DS18B20读出或写入DS18B20信息仅需要一根口线,共读写及温度变换的功率来源于数据总线,该总线本身也可以向所挂接的DS18B20供电,而无需额外电源。DS18B20能提供9位温度读数,它无需任何外围硬件即可方便地构成温度检测系统。DS18B20体积更小、适用电压更宽、更经济。测量温度范围为-55~+125℃,在-10~+85℃范围内,精度为±0.5℃。单片机控制DS18B20完成温度的采集过程必须经过初始化、写操作、读操作3个步骤,而且必须有严格的时间间隙。2.2 NiosⅡ处理器的说明 Altera公司的NiosⅡ处理器是一种用户可随时配置和构建的32位指令集和数据通道的嵌入式系统微处理器IP核,采用Avalon总线结构通信接口,带有增强的内存调试和软件功能。LWIP是一种专门针对嵌入式系统应用而设计的网络通信协议,支持因特网信息控制协议(ICMP),用户数据报协议(UDP),动态主机分配协议(DHCP),地址解析协议(ARP)以及对应用程序提供的标准Socket接口,因而可以完成传统的TCP/IP协议的大部分功能,资源占用却比TCP/IP协议小,所以非常适合以NiosⅡ处理器为核心的系统。基于以上考虑,嵌入式Web服务器以NiosⅡ处理器为核心,LWIP为网络通信协议,实现简单的网页浏览功能。用户可以通过网络浏览存储在FLASH中的网页。2.3 硬件电路设计说明 本系统硬件电路包括单片机温度采集电路、电平转换电路及基于NiosⅡ嵌入式上位机系统。2.3.1 温度采集电路温度采集电路主要由DS18B20和单片机构成,如图2所示。系统以8051单片机(U1)作为核心;C1,C2和Y1组成时钟电路,晶振为12 MHz;S1,C12和R3组成复位电路;U1的P1.0接一个发光二极管,用于程序执行指示灯;R5为限流电阻;DQ接到8051的P2.1端;R1为信号和5 V电源之间的上拉电阻。2.3.2 电平转换电路单片机与上位机的通信电路如图3所示。8051单片机本身提供了一组全双工串行传输接口,由TXD引脚来传送串行数据而由RXD引脚来接收数据,可是其工作逻辑电平皆为TTL电平(0 V,5 V)。所以单片机与PC之间的数据通信必须经过RS 232信号(+12 V,-12 V)电平的转换。本系统使用MAX232电平转换芯片,只要加4只电容就能完成接口电平的转换。单片机的11脚(TXD)接232的10脚,单片机的10脚(RXD)接232的9脚。与上位机连接的RS 232-C接口采用DB-9的9芯插头座,传输线采用屏蔽双绞线。电源部分采用市售的9 V直流稳压电源,经7805后滤波稳压得到稳定的5 V电源。2.3.3 基于NiosⅡ嵌入式上位机 系统主要包括以下几个部分:包括NiosⅡ软核CPU、操作系统使用的定时器、网络协议栈使用的定时器、CPU同外围设备的接口(Avlaon总线);EPCS4用来在上电时对FPGA进行配置;FLASH主要用来存放软件代码以及一些需要保存的参数;SRAM用来在系统运行时的代码和数据存储;网络接口芯片采用Smsc公司的LAN91C111芯片作为网络接口。该器件是一个以太网控制器,实现了网络7层协议栈中的传输层和MAC层的功能。另外,它具有10/100 Mb/s自适应、双工/半工自适应等功能,有很好的网络兼容性。采用串口UART和单片机通信。利用QuartusⅡ中的SOPC Builde构建的CPU如图4所示。3 监控系统的软件系统设计 单片机控制程序设计框图如图5和图6所示。 串口中断程序功能为接收由上位机发送的数据采集周期以及开始、停止指令。温度信号滤波通过软件实现。滤波算法采用加权平均值法,即对最新检测到的N个温度信号序列去除最大值和最小值,并取加权平均运算。4 基于NiosⅡ的Web服务器的实现 把构建好的CPU及相应的模块进行分析引脚分配、综合后再进行编译,用NiosⅡIDE(集成开发环境)通过移植实时操作系统μCLinux来实现嵌入式实时多任务控制系统,开发相应的网页并进行服务器移植和配置。本系统采用μCLinux下的Boa。Boa是一个单线程的HTTP服务器,它不同于其它传统的Web服务器,不为每个连接创建一个进程,只有当CGI程序运行时才创建一个新的进程。通过移植Boa来实现智能监控系统的Web服务器功能,最后通过编写CGI程序并结合Flash动画实现了动态Web交互功能。5 结语 采用AT89S51系列单片机、传感器DS18B20和NiosⅡ设计的远程温度控制系统具有结构新颖、电路简单、体积小和控制方便等优点。可以广泛用于电站、学校、医院等相关重点设备的温度远程监控。也适用于人体无法接近的高温或危险场所的温度监控。如果变换传感器稍加改变也可以成为其他参数的远程监控系统,如压力、湿度或瓦斯等。