摘要:设计一种基于GPRS的洪泽湖环境数据在线采集系统,以检测洪泽湖水质温度、pH和溶氧量为基础,使用SOPC技术在FPGA芯片上构建一个Nios II微处理器及其外围电路的接口电路,从而形成一个与系统任务需求相一致的自定义微处理器系统。由Nios II微处理器将使用Modbus协议读取的水质温度、pH和溶氧量参数经过协议转换后送GPRS移动数据传输模块进行数据远传,同时远程数据采集服务器将其以数值和波形方式进行显示。这种无线数据采集方式的建设、运营成本低,监控范围宽,实时性高,而NiosII微处理器的构建使得整个系统易于升级换代,能更好地满足水环境监测的需求。
关键词:水质监测;GPRS;Nios II系统;无纸记录仪;远程数据传输
中图分类号:TP274+.2 文献标识码:A 文章编号:0439-8114(2014)07-1663-04
GPRS Based Designs of Environment Online Data Acquisition System of Hongze Lake
WANG Li-fei,SONG Zhi-cheng,XU Bin,FU Li-hui
(Faculty of Electronic and Electrical Engineering, Huaiyin Institute of Technology, Huaian 223003, Jiangsu, China)
Abstract: The environment online data acquisition system of Hongze Lake based on GPRS was designed based on detecting the temperature, pH and dissolved oxygen of water, and using SOPC technology in a FPGA chip to construct a NiosII microprocessor and its peripheral interface circuit. A custom microprocessor system consistent with the task demand of system was formed. After the NiosII microprocessor converted temperature, pH and dissolved oxygen parameters read by the Modbus protocol, the data were sent to GPRS mobile data transmission module for data transmission, and displayed in numerical and waveform by remote data acquisition server. The wireless data acquisition mode’ construction and operation cost was low, with advantages of wide monitoring range, high real-time performance. The construction of NiosII microprocessor made the system easy to upgrade, which could better meet the requirements of water environment monitoring.
Key words: water quality monitoring; GPRS; Nios II system; the paperless recorder; remote data transmission
洪泽湖位于江苏省洪泽县西部,是当地工农业生产和人民生活的水源,其水质一旦恶化,城乡居民生活用水将受到严重影响,因此对洪泽湖水质的实时监测非常重要[1]。目前,国内传统的水质环境监测手段主要以人工现场采样、实验室仪器分析为主,这种方法工作繁琐、采样误差大、监测数据分散,且无法保证数据传输的准确性,管理人员也常常会得到已滞后的监测数据,出现这种现象的主要原因是监测过程中的数据采集方式有待提高,由于洪泽湖地区复杂的地理环境导致有线网落无法完全覆盖该区域,其监测数据也无法被实时传输,因此,提出一种利用GPRS无线远程数据传输方案实现的在线数据采集系统。该系统可以实时或定时采集远距离数据信息,相对有线传输方式,无线数据传输方法的传输速率快,建设、运营成本低,监控范围宽,实时性高[2]。
采集系统所用的GPRS模块是现场采集和监控主机信息交互的桥梁。GPRS是一种在现有GSM系统基础上发展起来的承载业务,用以为GSM用户提供分组形式的数据。GPRS网络支持TCP/IP协议,其覆盖面广,相对其他类型的无线数据传输(诸如短消息和超短波无线数据传输电台等),GPRS无论在费用、可靠性和可实施性等方面都具有很大的优势。在设计过程中,为使系统的设计与实现更加灵活,利用Nios II作为GPRS无线数据传输的控制器,开发了一种高效、易于升级换代的系统,同时,在FPGA上使用SOPC技术实现了数据的采集与处理电路。Nios II是Altera公司推出的第二代IP软核处理器,把Nios II嵌入到Altera的所有FPGA中,用户可以获得超过200 DMIPS的性能[3,4],这种通过将处理器、外设、存储器和I/O接口集成到一个单一FPGA的设计方式,可以降低系统成本、复杂性和功耗,具有设计灵活和软硬件在系统可编程的功能。
1 硬件系统总体构成
系统利用Nios II控制系统,通过GPRS将洪泽湖现场传感器检测的温度、pH和溶氧等水质参数无线传输至远程监测中心,由水质监测中心显示及存储温度、pH和溶氧3个参数,并在超出指标时报警。整个远程数据传输通信系统的设计是重点,利用FPGA作为主控芯片,并将使用SOPC技术[5]构建的Nios II微处理器作为控制器,用以完成数据传输控制。系统的总体结构框图见图1。
由图1可见,整个水质监测系统由水质传感器(pH传感器、温度传感器和溶氧传感器)、电源管理电路、GPRS模块(SIM300)、通信接口(调试端口、USB端口和以太网接口)、存储器模块(FLASH程序存储器和SDRAM数据存储器)、Nios II处理器、输入输出等部分组成。
当系统上电后,pH传感器、温度传感器和溶氧传感器即开始采集信息。其中,pH传感器采集到的电信号经pH/ORP检测仪处理后传至无纸记录仪,温度传感器和溶氧传感器采集到的温度值和溶氧量也传送至无纸记录仪,最后由无纸记录仪通过串口将数据通过Modbus协议将数据传至主控CPU,CPU再通过串口控制SIM300模块将数据通过GPRS网络发送至控制中心。系统中所采用的无纸记录仪可用于对水质的pH、温度、溶氧参数进行本地检测,并对其进行上限、上上限、下限、下下限报警设置,利用这种本地的检测数据与上位机接收数据进行比对,从而可以验证传输过程数据的有效性。无纸记录仪本身带有RS-485串口,因此,可以与其他设备进行通信,将RS-485经转换器转换成RS-232后与Nios II微处理器串口0连接,按照Modbus协议将数据传给Nios II微处理器,利用SIM300无线数据传输模块完成无线数据传输,由于模块的接口为RS232协议接口[6],所以在Nios II微处理和SIM300无线数据传输模块之间还需要利用FPGA芯片设计满足SIM300无线数据传输模块协议要求的UART接口电路,再结合RS232协议电平转换电路即可实现两者之间的电气连接。最后,Nios II微处理器通过另一个RS-232串口与GPRS模块进行通信,通过AT指令控制SIM300模块将数据发送至中国移动公网。
2 硬件设计实现
2.1 Nios II系统构建
系统IP核的构建通过SOPC Builder工具来完成,在系统构建的IP核中,添加了NiosII Processor、SDRAM模块、Avalon三态桥、Flash Memory Interface(CFI)模块、SYSTEM ID、JTAG UART、UART(RS-232),通过连接cfi_flash与三态桥,并点击SYSTEM->Auto-assign Basic Addresses和SYSTEM->Auto-assign IRQs即可以实现对地址和中断的自动分配。具体Nios II系统的构建如图2。
2.2 SIM300模块接口电路构建
系统设计中,利用软核方式在同一片FPGA中构建了SIM300模块接口电路(图3)。利用UART软核构造了一个包括RTS和CTS信号的异步串行口UART1。UART1的rxd、txd分别为与SIM300模块进行数据传输的数据接收和数据发送引脚,rts引脚用于发送对SIM300模块的数据传输请求信号,在发送数据前输出低电平有效信号,SIM300模块则需要通过cts引脚进行应答,从而允许其发送数据或命令,以此来完成数据发送的握手过程。
2.3 无纸记录仪模块接口电路的构建
无纸记录仪模块接口电路的构建如图4所示。该部分电路同样使用软核的方式在同一片FPGA中实现。实现方法与SIM300模块接口电路的构建方法类似,不再重述。
2.4 传感器的选择及电路连接
系统中溶氧传感器选择YDC-100型溶解氧传感器,其输出信号为模拟电压信号,在常温25 ℃下溶氧量为零的水溶液中输出≤0.3 mV,溶氧量为20.0 mg/L的饱和溶氧水溶液中的输出为(25±5) mV;温度传感器采用PT100热电阻;pH传感器选择GP 100-PH,传感器的输出量为模拟电流量,系统所采用的3种传感器输出均与无纸记录仪相连。记录仪具有3路万能输入通道及1个RS-232C通讯接口,V+、I+和GND为其中一组输入端子,其中,V+为电压信号输入端子,I+为电流信号输入端子,GND为接地端子。系统设计通道1作为溶氧输入通道,通道2作为温度输入通道,通道3作为pH输入通道。在工作过程中,记录仪与NiosⅡ微处理器之间通过串口0采用Modbus协议进行通信。3个传感器与记录仪的连接形式相似,以溶氧传感器为例,其与无纸记录仪连接图见图5。
3 软件设计
软件部分主要包括主程序、SIM300模块通信程序及传感器读写程序的设计。
3.1 主程序设计
主程序包括中断使能程序、CRC校验程序、定时器1中断程序和主函数。其中,作为整个程序核心的主函数流程如图6所示。首先,调用两个串口初始化程序,初始化定时器。当检测出ReceiveGprsFlag为0xff时表明数据接收完毕,再通过改变Command数组前8位来设置Modbus协议帧,从而读取溶氧、温度和pH数据。再根据读取传感器子程序返回的Command[1]的值来判断是否产生错误及错误类型。在设计中,通过中断来实现对传感器信息的读取,串行口接受中断请求标志及串行口发送中断标志具有重要的作用。当Nios II接收或发送一帧数据后,由硬件置1,向CPU请求中断,当CPU转向中断服务程序后,该位必须用软件清零。CRC校验设计中,针对基于串口的Modbus,采用附加地址域1字节的从站地址,数据校验域采用2字节的CRC校验。错误检测域的内容是通过对消息内容进行循环冗长检测方法得出的。
3.2 GPRS模块SIM300初始化程序设计
在系统上电并完成串口初始化后,即自动开始SIM300模块的初始化,其初始化流程见图7。GPRS模块SIM300通过串口1与Nios II实现通信。贯穿整个GPRS初始化过程的是CurrentFlag值,它表示当前状态信息。程序首先判断CTS是否有效,如无效则CurrentFlag等于0x00,Nios II即可以向GPRS发送初始化指令,发送指令借助strcpy函数和Command数组加上调用串口1发送子程序来完成,而判断回应是否正确则采用strcmp函数和Command数组实现。接下来,设置短消息成text发送模式;GPRS数据前加头标识;连接服务器,若首次连接成功,则CurrentFlag返回0x09,若未成功,则关闭TCP连接且CurrentFlag返回0x05。
3.3 读传感器程序设计
通过反复调用串口0接收子程序实现读传感器操作,读传感器程序曾在主函数中被调用,根据其返回cmd输出值确定相应操作过程,cmd为Modbus协议中的功能码Command[1],cmd返回0表示接收数据完成,返回1则表示接收数据错误,其具体流程如图8所示。
4 小结
环境数据在线采集系统使用SOPC技术在FPGA上建立一Nios II处理器,并根据SIM300无线数据传输应用需要设计了Nios II控制程序,针对SIM300模块特点设计相应数据收发、模块初始化程序以及数据应用层通信协议,从而实现SIM300模块的远程数据传输功能。该系统为其他远程数据传输的实现提供了一种相对通用的方法,设计中采用Nios II处理器作为系统主控芯片的方法,即简化了程序设计,提高了系统性能和开发效率,又易于升级换代。
参考文献:
[1] 刘 震.水环境自动监测与预警预报技术研究[D].南京:河海大学,2008.
[2] 张小强,杨放春.一种基于GPRS技术的无线监控系统[J].中国数据通信,2004,6(11):92-95.
[3] YIANNACOURAS P,STEFFAN J G,ROSE J. Exploration and customization of FPGA-based soft processors[J]. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2007,26(2):266-277.
[4] 周润景,图 雅,张丽敏.基于Quartus II的FPGA/CPLD数字系统设计实例[M].北京:电子工业出版社,2007.
[5] 胡继胜,李 洪.基于SoPC/NIOS II的信号发生器设计与实现[J].电子技术应用,2011,37(6):91-94.
[6] 欧阳丹娜,李颖宏.RS-232串口与PROFIBUS-DP通信实现的研究[J].仪器仪表学报,2005,26(8):82-89.
|