当前位置:首页 > 程监测
  • NI Measurement Studio 8.5加速提升远程监测与控制功能

    集成的测量与自动化软件利用对ASP.NET AJAX和Visual Studio 2008的支持缩短了应用程序的开发时间 新闻发布——2008年6月——美国国家仪器有限公司(National Instruments, 简称NI)推出Measurement Studio 8.5软件,通过一组完整的.NET资源库、工具和支持微软公司Visual Studio 2008的NI数据采集驱动程序,在最新的微软公司开发环境中增加了测试与测量功能特性。Measurement Studio 8.5软件包含了与ASP.NET AJAX兼容的用户界面控件,以及用于创建快速响应远程监测网络应用程序的高级网络变量通信函数。由于开发环境不再局限于与一个特定版本的.NET框架绑定,工程师们现在可以通过在现有项目中添加功能来降低应用成本,而不必将已有程序升级至一个新的.NET框架。同时,还可以利用最新推出的支持Visual Studio 2008的NI-DAQmx驱动程序,将数据采集功能特性添加到其网络与Windows项目。 利用Measurement Studio ASP.NET网页窗体控件中提供的与ASP.NET AJAX的兼容性和改进的网络变量功能特性,工程师们可以创建应答式的网页,并可通过支持网页浏览的设备(如PDA、智能移动电话和运行Linux®、Mac OS或Windows等操作系统的机器)浏览这些网页信息。利用Measurement Studio ASP.NET科学计算控件以及微软公司ASP.NET AJAX服务器控件,工程师们可以减少客户端与服务器间传递的数据量,并提升用于展示来自动态信号源数据的网页性能,这些动态信号源包括数据采集设备、实验台仪器和分布式I/O系统或数据库等。通过这些动态信号源的测量数据,可以发布或预订采集这些网络变量。现在,工程师们可以通过编程的方式创建、寻找和浏览网络变量,检测连接故障,并激活网络变量缓存以优化性能。 新版本的Measurement Studio支持最新的NI-DAQmx和NI-SCOPE .NET驱动程序,这些驱动程序包含了优化存储的模拟波形读操作,该操作复用了先前模拟波形函数中分配的存储区并改善了那些大数据采集量的应用的性能。通过从www.ni.com下载100多个现成的、基于文本的数据采集范例,减少应用开发时间。此外,Measurement Studio 8.5版软件的特性还在于更丰富的分析方法,其中包括脉冲与跳变测量和其它分析范例代码。工程师们可以通过在其应用程序中直接调用120多个高级分析函数从而进一步缩短开发时间。 Measurement Studio继续为微软公司的Visual Studio软件添加测试与测量功能特性。通过与Visual Studio 2008的集成,以及继续保持对Visual Studio 6.0的既有支持,工程师们现在可以创建利用了最新的.NET框架的Windows和网页窗体应用程序。 了解更多信息,请访问 ni.com/mstudio/zhs 关于NI 美国国家仪器有限公司(National Instruments,简称NI)致力于为测试测量、自动化和嵌入式应用领域的工程师和科学家们带来革命性的理念,从“虚拟仪器技术”提升到“图形化系统设计”,帮助他们实现更高效和优化的设计、原型到发布。NI为遍布全球各地的25000家不同的客户提供现成即用的软件(如NI LabVIEW图形化开发平台),和高性价比的模块化硬件。NI总部设在美国德克萨斯州的奥斯汀,在近40个国家和地区设有分支机构,共拥有4500多名员工。在过去连续9年里,NI被《财富》杂志评选为“全美最适合工作的100家公司之一”。想了解更多关于NI的信息,请访问ni.com/china,或致电800-820-3622。

    时间:2008-06-14 关键词: Linux studio ni measurement 8.5 程监测

  • 基于嵌入式Internet技术构建的电网远程监测系统的实现方案

    配置完成后,重新编译内核。把编译好的内核下载到ARM硬件平台,启动μClinux操作系统,完成IP配置,运行Boa Web Server,然后就可以通过浏览器访问网页了。 3.3 用户与主机间安全交互的实现 为了在μCLinux系统中实现网页的实时刷新,得到实时电网参数,实现客户端与电网监测系统之间的交互,本系统采用了CGI的方法。当客户端采用FORM POST形式向Boa服务器发出CGI请求时,服务器守护进程启动相应的CGI程序,CGI程序通过CONTENT—LENGTH获取客户端传输数据的字节数,通过STDIN读取客户端传输数据,这些数据一般是客户端在表单中输入的简单的监控信息。CGI获取这些信息后通过串行通信将这些信息发送到电网监测系统中,等待监测系统模块的应答消息,最后生成网页文件,并且将返回结果嵌入到网页文件中,通过cgi—send—string函数将此网页发送给客户端浏览器。一段时间后客户端浏览器会再次向服务器发送一个CGI请求,相应的CGI函数会查询最新的数据,刷新后将新数据发送给客户端浏览器。这样周而复始,实现了网页的刷新功能,从而保证了远程监测数据的实时性,实现客户端与电网监测系统之间的交互。 Fig.3 Client Connects with Target Board through CGI 同时为了保证远程监测的安全性不被非法侵入,通常嵌入式Internet可以采用:加密和解密(Encryption andde—eryption)、数字签名(Digitalsignatures)、信息摘要(Message digests)、公共密钥基本架构(Public—keyinfiastrueture)、证书(Certifieates)等方法确保网络通讯的安全。本系统采用了用命令识别的方法来保证系统数据传输的安全性,即客户端计算机首先向监测系统发送命令代码,由监测系统分析,确定为请求数据发送命令码再向客户端计算机端发送数据,发送命令代码即相当于发送了身份验证码,从而保证电网数据传输的安全性。 4.系统的应用 本系统在成都某电厂的局域网(以太网)的环境里做调试,通过IE浏览器完全实现了电网参数的监测功能:在客户端IE浏览器中输入主网页的地址,进入电网监测系统的主网页,如图4;输入正确的用户名和密码后登陆电网远程监测系统的参数监测网页。在参数监测网页可以监测到电网运行的实时参数。整个系统具有良好的人机界面,操作简单,有效的保证了电网运行安全,大幅提高了电网监测的实时性和有效性。 5.结束语 本文提出了将嵌入式Internet技术应用于电网远程监测系统的开发与实现,研究了基于嵌入式实时操作系统μCLinux下嵌入式Internet的接入方案以及Boa Web服务器的参数配置,并提出了利用CGI技术实现网页的实时刷新以及客户端与主机间交互的方法 ,开发实现了电网远程监测系统并将该系统应用于成都某电厂。实践表明,该系统可以实时监测电网参数,保证了电网的安全运行。本系统的构建代表了新一代监测网络发展的必然趋势,在不久的未来必将具有十分广阔的应用前景。  

    时间:2010-11-06 关键词: 方案 internet Linux 于嵌入 程监测

  • 大规模网络终端远程监测系统

    0 引言     随着网络和计算机技术的发展,在计算机网络日益扩展和普及的今天,业务网络包含的节点数目越来越多,网络正常运行对网络计算机安全的要求也越来越高,涉及面也越来越广。网络计算机所面临的危险已经渗透于社会的多个领域,使得一些机构和部门在得益于网络提 高业务效率的同时,其网络的脆弱性也在增加,关键网络设备的安全会直接影响到业务的正常运行。网络规模随着不同的使用者的需求,发生着千变万化。大型计算机网络所拥有的计算机数目也迅速增长,每一个局域网络内部所包含的计算机终端也越来越多。相继出现了数百台甚至上千台计算机的大型局域网络,例如大型图书馆的电子阅览室,高校计算机教学机房等,在这样的计算机网络中,包含的计算机设备动辄上百台乃至上千台;同时也会出现一个系统所拥有的计算机设备分布在数十公里或上百公里的范围内,如银行的自动柜员机,公共场所的信息查询的设备等,一个网络包含的计算机设备则可能遍布整个城市的范围内。随着网络规模的扩大,每一个网络内设备数目的增多,对网络的安全和设备的维护工作带来了巨大的挑战。网络设备检测作为一个独特的领域越来越受人们的关注,如何高效地维持网络及设备的正常运营就成为当务之急。本文介绍了一种远程检测网络计算机运行安全的软件系统。该系统通过采集网络中计算机的运行状态信息,检测计算机的运行情况,并通过对采集数据的挖掘,为网络管理维护提供依据;为业务服务提供决策支持。 1 远程监控系统的体系结构     目前还没有成熟的网络计算机终端设备的安全检测体系结构,但是,经过多年的网络管理技术的发展,国际上已经形成了成熟的网络设备的管理体系结构,可以借鉴成熟网络设备的管理体系结构,来实现软件模式设计。软件系统采用三重体系结构即监控代理、监控服务器、数据存储和系统管理终端。为提高系统管理的灵活性,管理系统采用Web方式编程,可以实现通过网络远程管理和发布控制命令。这样的结构可以使保护系统具有灵活的可扩展性,通过扩展接口可以方便地实现紧急状况短信通知等主动监控功能。信息采集和系统管理可选用Windows下的SERV-U或者Linux平台下的VSFTP来加强安全性。对远程用户来说,只需要知道帐号和口令即可实现远程登录管理系统。体系机构如图1所示。     监控系统体系结构的功能模块的具体功能如下:     (1)监控代理。监控代理模块主要完成对监控的目标计算机状态信息的监控。包括采集计算机运行过程中的参数,主要包括系统运行的时间、系统运行时CPU的使用率、内存的占用情况、系统运行时启动的进程名称等信息。监控代理是用C语言编写的服务进程程序,系统启动时,以服务进程的形式运行在被监控的计算机中,通过TCP/IP协议将采集的参数传递到监控服务器。信息采集的频率可以通过参数设定,以达到对于不同监控目标的要求。     (2)监控服务器。监控服务器主要完成监控信息的收集,并将监控信息存入信息数据库,为管理终端提供管理接口,并通过对收集的信息的比较、分析、判断形成监控报告,并对异常的监控对象通过信息显示、短信等方式通知用户。由于采用了TCP/IP协议进行通信,监控服务器可以放置于被监控设备的网段内,也可放置于被监控设备的网段之外,同时对多个网段的被监控设备进行监控。     (3)信息数据库服务器。信息数据库服务器主要完成对监控信息的存储功能,并通过数据库系统的OLAP扩展实现简单的信息统计,通过对存储的历史数据的统计,可以实现监控设备的使用率、监控设备的运行情况、设备完成的主要工作等管理报告,为用户的决策支持提高服务。     (4)管理终端。管理终端主要完成系统的管理功能,如访问用户的管理,系统参数设置,系统任务的启动停止操作,数据挖掘条件设置,监控系统的运行等。[!--empirenews.page--] 2 系统软件的设计     系统的软件模型借鉴了ISO的层次结构思想及TMN在对象管理方面的方法,补充了当前各类体系结构方案所不具备的关于数据分析和数据表示功能的定义。软件模型分为4层:数据采集层、数据管理层、数据分析层和数据表示层。各个层次核心线索是数据。     其功能定义如下各节所述:数据采集层包括监控系统常规数据的采集和命令执行软件模块。常规信息采集完成被监控计算机终端的运行数据的采集,命令执行模块完成由任务生成模块发送的远程控制命令,执行诸如启动、关闭等任务。数据管理层包括数据管理模块和任务生成模块。数据管理模块主要实现的功能包括基本数据管理和事件管理。基本数据管理功能包括数据的存储管理和数据的格式化。性能监控信息的数据量非常之大,因此对数据存储管理提出较高的要求。数据格式化的主要目的是便手数据分析,同时对数据进行一定程度的压缩。任务生成模块主要实现的功能是根据预先的定义和当前采集到的数据,形成事件服务模块需要完成的相应任务。数据分析层包括数据挖掘模块和事件服务模块。数据挖掘主要完成的功能包括对基础数据的分析、对事件的分析。通过对基础信息的挖掘结果可作为终端数量分布,终端功能分布等宏观系统管理的依据。事件服务模块根据数据挖掘和事件过滤产生系统异常报告,报告可根据不同的级别形成报警、日志记录、邮件逋知等事件。并可通联动机制形成一定的处理任务,实现系统的及时相应。数据表示层的功能是提交数据挖掘的结果,包括数据分析结果和事件处理结果。数据分析结果有2种提交形式:统计报表和可视化。其中可视化的结果相对而言是一种更加直观的形式,它将符号转换成几何,使管理者可直观观察统计结果。事件处理结果视具体情况可以有3种方式:报警、邮件通知和日志记录。报警方式主要适用于特别紧急,需要马上处理的事件。告警手段可以是在值班人员的终端上弹出告警窗口、发出警铃声、自动寻呼等。分发方式针对于一些与其他管理域相关的事件。如与失效管理或配置管理相关的事件。日志方式适合于优先级较低的事件,对这些事件可以不必立即处理,而是以故障卡片的形式保存起来,网络管理人员任何时刻都可以通过查询故障卡片来了解有哪些事件尚未处理。系统软件模型如图2所示。 3 发展趋势     随着互联网的迅速发展,病毒、黑客对网络系统攻击手段千变万化,对网络监控系统的稳定正常运行提出了更高的要求。以分层方式实现软件的模型设计可以使各层功能相对独立,结构上易于分割,有利于简化软件模块功能设计,对不同模块特点采用相应的先进编程技术,防止部分功能失效产生的系统整个崩溃,系统的坚固性得到提高。模式识别方法,统计分析技术,专家系统技术和神经网络技术等新技术的采用,使数据挖掘和事件过滤更加智能化,管理更加准确、快捷和方便是系统未来的发展方向。 4 结语     网络监控系统是对大型网络中终端管理的整体解决方案,涉及多个任务需要协调工作,才能发挥整体的高效性。本文对监控系统的体系结构和软件模型做了进一步研究。随着网络系统的规模越来越大,管理越来越复杂,对网终端性能监控的要求也越来越高,如何应用新技术将网络监控系统做的更加完善和超前,是今后思考、研究、解决的课题和未来发展的方向。

    时间:2011-04-10 关键词: Linux 程监测 端远

  • 基于ARM和GPRS的远程监测终端设计

    摘要:针对分布比较分散,场所不固定,或是环境比较恶劣的监测现场,提出了一种通用的远程监测终端的设计方法。终端具有模块化的数据采集功能,并采用ARM9处理器和Linux操作系统,用Qt/Embedded编写终端应用程序,使其具有良好的人机交互界面,并对数据进行分析处理,采用GPRS(通用无线分组业务)无线通信技术将处理过的数据发往监测中心,存入数据库。实际实验证明,该终端数据处理速度快,精度高,实时性好,可以满足一般监测现场的要求。 关键词:远程监测;ARM9;GPRS;嵌入式Linux;Qt/Embedded     随着现代生产科技水平的发展,对监测技术的要求越来越高,形式趋于多样化。在无人值守的变电站、水文站、气象站等野外监测或是在交通运输等行业中,因分布比较分散、环境恶劣,地点不固定,不便于用传统方法实现集中控制和实时监测并且有线网络的架设受到种种限制。在这些场合采用基于GPRS的无线网络通信技术,具有无可比拟的优势。将嵌入式应用系统与无线通信技术结合在一起是未来嵌入式应用的必然趋势。GPRS(General Packet Radio Service),即通用无线分组业务。     GPRS技术应用于远程数据传输系统,具有以下几个特点:1)永远在线,接入速度快。分组交换接入时间少于1秒,可使远程数据传输的效率大大提高:2)采用数据流量的计费方式,大大降低了用户的使用费用;3)GPRS网络覆盖范围广,且支持TCP/IP协议,从而可实现与Intern et的无缝连接。 1 终端的整体结构设计     终端要完成3个任务,数据采集、数据处理和数据的无线传输。数据采集部分采用模块化设计思想将采集模块分为模拟量采集模块,数字量采集模块,开关量采集模块等,每个模块独立的实现对特定采集信号的整流、调理、隔离等处理再转换为数字量,各模块采用统一的结构,选用相同的单片机处理器。各模块采集的数据通过统一的SPI(serialperipleral interface)总线传输给ARM处理器。这样的结构使终端使用更灵活,应用范围更广泛。数据处理部分采用ARM处理器对所采集的数据的类型、长度、有效范围等进行处理,并通过液晶屏加触摸屏完成人机交互功能。然后将处理好的数据通过GPRS无线网络传输给上位机。终端的整体结构图如图1所示。 2 终端硬件设计     终端硬件主要由3部分组成。一是作为主处理器的ARM9处理器及其外围电路包括电源电路、复位电路、外扩存储器电路及用于人机互动的液晶屏、触摸屏连接电路等。二是各个模块的数据采集电路的设计,这里主要设计的是模拟量采集模块,以及各个数据采集模块与主处理器之间SPI连接方式。三是GPRS模块外围电路以及与主处理器的连接。端硬件设计示意图如图2所示。 2.1 终端主处理器     主处理器是系统的核心,要完成数据处理,存储,传输,人机界面显示等功能。结合工业现场的需求终端处理器采用以ARM9为内核的三星S3C2440处理器,它是一款基于ARM920T内核的16/32位RSIC结构的嵌入式微处理器,主频400 MHz,最高可达533 MHz,具有2片外接32 M的板载SDRAM,片内外资源丰富,扩展性强。系统存储扩展了2 MB的NorFlash用于存放bootloader系统引导程序,和64 MB的NandFlash。系统的人机交互平台采用一个7寸液晶显示频和一个触摸屏来完成。 2.2 数据采集部分硬件设计     数据采集模块可分为模拟量采集模块,数字量采集模块,开关量采集模块等,主要完成对底层数据的采集,这些模块的单片机处理器统一采用Cygnal公司的C8051F021单片机,它的MCU是高度集成的片上系统。在一个芯片内集成了两个多通道ADC子系统、电压基准、SPI总线接口、8个8位的通用数字I/O端口和64 kBFLASH程序存储器及与8051兼容的高速微控制器内核等,这些很好的满足了模块的设计要求。由于模块设计结构上的相似性,这里主要介绍模拟量采集模块部分。     工业现场采集的信号大部分是模拟量,如压力、温度、液位、流量等信号。这些信号经过现场仪表测量后一般统一输出为4~20 mA,0~5 V,0~10 V范围的电流电压信号。通过模拟量采集模块将这些模拟量转换为数字量。单片机的A/D准换的电压基准定为2.5 V,要将4~20 mA,0~5 V,0~10 V范围的电流电压信号统一为0~2.5 V以内的电压信号,才能进入单片机完成模拟量到数字量的转换。对于电流信号,在输入端接一个250 Ω的精密便转换为1~5 V的电压信号了,对于电压信号通过运算放大器按比例缩放到0~2.5 V范围内即可。转换电路如图3所示。 [!--empirenews.page--]     各个数据采集模块与主处理器通过SPI总线进行通信。SPI总线是Motorola公司提出的一种高速全双工串行通信总线,它容许CPU与各种外围接口器件以串行方式进行通信。SPI接口只有MISO(主入从出)、MOSI(主出从人)、SCLK(时钟)和CS(片选)4个信号组成,在芯片上只占用4条线,大大节省了芯片资源。主处理器与各采集模块的SPI通信方式为一主多从的方式,即ARM主处理器的作为主设备,各数据采集模块作为从设备,主设备驱动串行时钟发起通信。主设备使用片选信号CS指明与哪个模块采集模块传送数据。通信时,主设备的MISO为输入,MOSI为输出,从设备的MISO为输出,MOSI为输入,在主设备时钟的控制下,主设备与从设备的双向移位寄存器同时进行数据交换,完成一次数据的传输。主处理器与各模块的通信结构图如图4所示。 2.3 GPRS模块     GPRS模块选用华为GTM900C模块,它是一款三频段GSM/GPRS无线模块。模块接口简单、使用方便且功能强大。它支持标准的AT命令及增强AT命令。GTM900C的GPRS数据业务的最高速率可达85.6 kbit/GTM900C提供40脚的ZIF接口,主要有电源接口、UART接口(最大串口速率可达115200bit/s)、标准SIM卡接口和模拟语音接口。     本系统中,GTM900C主要是实现GPRS上网功能。该模块的主要特点如下:     1)单电源供电,供电范围为3.3~4.8 V.典型供电电压为4.2 V;     2)可工作于三频EGSM900和/GSM1800/GT800单频;最大发射功率EGSM900/GT800 Class(2W)和GSM1800 Classl(1W);     3)支持GSM标准AT命令、V.25 AT命令和华为扩展AT命令;     4)GPRS传输速率最高可达85.6 kbps,支持CS-1,CS-2,CS-3,CS-4 4种编码方式。内嵌了TCP/IP协议;支持多连接,提供ACK应答,提供大容量缓存。     GPRS模块与主处理器的连接很简单,由于两者是通过串口接口进行通信的,所以将两者用串口线连接即可。GPRS的网络功能都已集成在模块中,只需要在主处理器这一端将串口参数设置好,然后发送相应的AT指令对模块进行操作即可。 3 终端软件设计     终端软件设计包括两个任务,一是搭建开发环境,如Linux操作系统内核移植,编写设备驱动等,二是在开发环境准备好的基础上进行应用程序的编写,包括完成SPI总线数据输入输出功能,GPRS无线数据传输功能,和界面显示功能。 3.1 软件开发平台搭建     软件平台采用嵌入式Linux操作系统,嵌入式Linux操作系统是一个源代码公开的实时多任务操作系统,可应用于多种硬件平台,可根据需要定制内核,有良好的网络支持,Linux系统内核精简、高效并且稳定,能够充分发挥硬件的功能,它非常适合在嵌入式领域中应用。嵌入式Linux操作系统搭建的步骤为:在宿主机上建立交叉编译的环境;编译生成Linux的内核,用的内核是Linux-2.6.29;编译生成根文件 系统,用的根文件系统为yaffs;向目标机下载Bootloader的映像,用的Bootloader为Supervivi;烧写Linux内核和文件系统的映像;复位启动。为了使终端可以使用触摸屏,液晶屏和SPI总线,将编写的对应的驱动编译、添加到Linux内核中。系统使用的宿主机系统为在虚拟机下运行的RedHat9.0。     终端应用程序用Qt来编写,Qt是一个跨平台的C++图形用户界面应用程序框架。它具有优良的跨平台特性、面向对象、丰富的API支持等优点。Qt-Embedded是Qt的嵌入式版本,因此终端应用程序的开发使用Qt/E作为开发工具。Qt运行环境的搭建步骤为:首先在宿主机上分别建立Ot-x86编译环境和Qt-ARM编译调试环境,采用Qt4.5.0版本;其次,将宿主机生成的Lib下的库文件下载到目标板的某个目录下,并在目标板上设置好环境变量,这样在目标机上的Qt程序运行环境就建好了。在宿主机上交叉编译好的Ot/E程序就可以下载到目标机上运行了。 3.2 终端应用程序设计     监测终端需要采集监测仪表的现场测量数据,终端设计的数据采集模块分别对不同的现场数据进行采集并做相应的处理,数据采集模块与CPU之间通过SPI总线进行数据传输,对与采集数据需按上端通信协议、PPP、TCP/IP协议进行二次成帧;利用GPRS网络接入Internet网络,将处理后的数据信息通过GPRS无线网络上传至监控中心。     GPRS模块附着GPRS网络并与上位机建立TCP数传链路是通过向模块发送一串AT指令实现。拨号动作完成,并成功建立数传链路以后,GPRS模块在终端串行口和上位机之间变得透明。另外,终端的重要状态要能即时显示在LCD上。     综上分析,监控终端应用程序要完成的任务有:串口参数设置,GPRS网络连接,读取串口返回信息,SPI数据传输,GPRS数据传输,界面显示。由于任务不止一个,而且有的任务需要同时运行,所以采用多线程编程。     在Qt编程中主界面UI一般为主线程,子线程通过继承Qt中的QThread线程类来完成。这些任务和功能可以通过3个线程来实现。3个线程的作用分别为:1)主线程:负责界面显示,串口参数设置,GPRS网络连接,GPRS数据传输;2)SPI数据传输子线程:负责与数据采集模块通信,将采集数据存入缓冲区;3)串口数据读取子线程:CPU通过串口操作GPRS模块,GPRS模块的返回信息可以通过串口数据读取子线程随时读取。程序模块图如图5所示。 [!--empirenews.page--] 3.2.1 显示界面模块     界面显示模块:界面显示由两部分组成。一是实时显示各模块的采集数据及一定时间以内的历史数据数据;二是显示GPRS模块设置界面,通过这个界面设置串口参数、设置数据采集时间间隔、设置主机IP地址及端口号、发送AT指令、回显模块返回信息等。编写界面设计文件mainwindow.h和mainwindow.cpp,其中串口参数设置、网络连接和GPRS数据传输封装成相应的子函数,利用Qt的信号槽机制,当捕捉到 相应的信号便执行对应的函数。通过继承Qt中的QThread线程类来完成GPRS数据读取模块和SPI模块的功能。SPI模块接收底层数据采集模块的各种数据,显示到界面并编码通过GPRS通道传输到上位机,GPRS返回的一些重要信息业需显示到LCD界面上。 3.2.2 GPRS网络连接任务     GPRS网络连接任务主要完成通过GPRS网络建立与上位机的数据传输链路的过程。启动GTM900C后,首先,需对PPP连接所使用的物理串口进行初始化,包括确定用于PPP连接的串行端口号以及通信波特率。然后,直接使用AT指令,拨号到中国移动的GPRS节点服务器(GGSN)。使用以下几条灯指令使GTM900C进入数据通讯状态:     “AT+CGATY?”用于查询GTM900C是否已附着在中国移动的GPRS网络,GTM900C将返回当前状态;     “AT+CGATT=1”用于设置GTM900C附着于中国移动的GPRS网络,操作成功GTM900C将返回OK;     “A1,+CGDCONT=1,“IP”“CMNET””用于设置中国移动的GPRS节点服务器的名称和属性,操作成功则返回OK;     “AT%ETCPIP”用于实现PDP激活和TCP/IP的初始化,使模块进入TCP/IP功能,操作成功返回OK;     “AT%IOMODE=0.2,0”设置数据传输模式,操作成功返回OK;     “AT%IPOPEN=1,“TCP”,“115.24.116.19”,5000..1026”打开一条TCP/IP链接,选择TCP传输,115.24.116.19为上位机IP地址,5000为上位机接受程序端口号,成功与上位机连接返回CONNECT。另外模块还具有数据透传功能,数据透明传输功能将实现TCP/IP上直接数据传输,进入透传模式的AT指令是:“AT%TPS=1,1,3000,1024”,进入透传模式后模块将不会相应其它AT指令,直接通过串口写入数据便可实现与上位机之间的数据传输。以上使模块附着在GPRS网络的过程封装在gprsConnect()函数中。     PPP配置、认证通过以后,即应用程序就已经通过GTM900C成功进入了Internet网络。最后,通过变量GPRSOK=1指示GPRS拨号成功并建立数传状态。在run()程序中隔一段时间判断当前网络连接状态,若网络断开则变量GPRSOK=0,并调用gprsConnect()函数开始拨号任务重新建立数传链路。 3.2.3 SPI数据通信模块     SPI通信程序包括两部分,一是用于数据采集的单片机这边需要通过SPI发送现场数据,接收控制指令,二是ARM主控制器需要读取数据,发送控制指令。数据采集模块使用是带有SPI接口的C8051f020单片机,SPI的数据寄存器是SHODAT。单片机和主控制器的SPI通信参数设置要一致。     在主设备ARM这边,SPI驱动已经配置好,直接使用read(),write()等函数便可进行数据的读取与接收。在单片机这边采用中断的方式进行SPI数据的发送与接收。对于从设备C8051f021单片机来说,只有将片选线线接低电平才会启动数据传输,可利用这一点进行多字节数据传输,拉低一次便传输一个字节,这可用作与主设备之间的同步信号。主设备选一根I/O口线作为片选线,将其拉低,执行一次SPI读操作,再拉高,延时一定时间,这时从设备退出从模式,重新往SPIODAT里写新数据及其他一些处理,主设备再将片选线拉低,执行一次SPI读操作。这样便可进行多字节传输了。SPI主从设备通信流程图如图6所示。 3.3 终端性能测试     将编译好的界面应用程序下载到终端处理器中并运行,主线程为显示界面,随时可与用户进行信息,两个子线程为读SPI总线线程和串口读写线程,这3个线程同时并行运行。其中GPRS传输部分的界面如图7所示,通过这个显示界面设置串口、上位机IP地址、TCP端口和数据定时发送的时间间隔,发送文本框会显示SPI总线读取的数据值,接收文本框回显GPRS模块返回的信息。上位机用自己的PC机,通过软件soeket tool监听终端发送给上位机数据,实验证明终端界面应用程序工作良好,数据传输也很准确。 4 结论     系统的上位机接受界面可用VB编写,并建立数据库,方便分析、处理监测现场数据,这部分程序正在完善中。监测终端的数据采集部分采用模块化设计,可以灵活增减,终端软件可以根据不同现场用户自行设计计算公式处理数据,把终端设置好,在上位机通过GPRS网络便可实时监测现场。该检测终端结构灵活,实时性好,适用范围广,具有广泛的应用前景。

    时间:2012-02-21 关键词: GPRS ARM Linux 端设计 程监测

  • 基于嵌入式Linux的机房远程监测系统研究

    摘要:为满足机房实时监测环境参数和视频信息的需要,本文综合运用嵌入式技术、WEB 技术和信息检测技术,研究并设计一种基于B/S 架构的嵌入式机房远程监测系统。通过传感器采集并远程传输机房温度和图像数据,在远程浏览器端动态实时显示,为及时掌握机房环境数据,实现机房科学管理提供良好的平台。 1 引言 信息化高度发展的今天,机房作为数据传输中心、处理中心和数据交换中心,在整个信息网络工程中占据着重要的位置,对机房环境以及视频信息的监测具有重要意义。 经过调查分析,机房环境远程监测系统的主要应用需求包括: ①温度是机房环境中最重要的参数,合理的温度保证了机房设备的正常运行; ②数据传输质量高、实时性好,以保证对机房环境的实时和有效监测;③支持远程访问,便于对多个机房环境的集中监测。针对上述需求,设计了一种基于B /S 架构的远程监测系统,以满足远程访问、低成本、实时性好的机房环境远程监测需求。 2 总体方案设计 2. 1 系统方案及总体结构 根据系统应用需求,设计的机房远程监测系统总体结构如图1 所示。系统由温度和图像传感器、嵌入式服务器和远程计算机构成。其中,温度和图像传感器负责采集现场的温度和图像数据,基于ARM 处理器的嵌入式服务器是整个系统的控制中心,它控制、调度各系统资源,通过有线网络将所获取数据传输至远程监控端浏览器动态显示。远程监控在实现方式上采用“B /S”模式,在客户端的浏览器上输入存储嵌入式服务器的网页地址即可对机房环境状况进行监控。 图1 远程监测系统总体结构图 2. 2 系统硬件平台 系统的硬件平台选择主要考虑低功耗、处理能力强、扩展性好、稳定性高和兼容性好等因素。嵌入式硬件平台的配置从根本上决定了整个系统运行性能的好坏。整个机房远程监测系统由下位机嵌入式服务器和上位机远程浏览器组成。其中下位机嵌入式服务器平台包括众多硬件模块: 嵌入式微处理器S3C2440、存储器、电源和时钟模块、外围电路及接口、3. 5 寸液晶显示屏、ZC0301 摄像头和DS18B20 温度传感器等。下面将对各个硬件设备和模块做具体阐述。 2. 2. 1 中心处理器 S3C2440 处理器是韩国电子公司三星推出的一款基于ARM920T 内核的16 / 32 位RISC 嵌入式处理器,ARM920T 核由ARM9TDM1、存储管理单元( MMU) 和高速缓存三部分组成,主频可达533MHz。本系统采用S3C2440 为核心,外围硬件资源包括64M SDRAM, 256M NAND FLASH,2 M NOR FLASH。 2. 2. 2 摄像头 摄像头采用基于301PLUS 快速高性能图像压缩主控芯片的中芯微ZC0301 摄像头。其能够输出高清晰MJPEG 视频流数据,具有图像信号处理( ISP) 、图像数据压缩及数据传输等功能,可达到6: 1 的压缩率,同时支持同步和异步数据传输,兼容性好。其工作电压为3. 3V,工作电流仅为200mA,耗电量小。 2. 2. 3 温度传感器 温度传感器采用美国Dallas 公司生产的单总线数字式温度传感器- DS18B20,它结构简单,不需要外接电路,可用一根I /O 数据线既供电又传输数数据,将温度信号直接转换为数字信号送给微处理器,电路简单,成本低,操作方便。DS18B20 与ARM 处理器接口电路如图2 所示。 图2 DS18B20 与ARM 处理器接口电路 [!--empirenews.page--] 2. 2. 4 远程监控端系统配置 远程网络上的监控端为通用的PC 机和IE 浏览器,B /S 模式架构为人机交互提供了友好的交互平台,用户通过Internet 进行远程监控。 2. 3 系统软件平台 系统采用源码开放、安全性及可靠性好、具有广泛硬件和网络支持及完整开发工具的Linux 系统作为嵌入式系统平台。 嵌入式系统的开发通常采用宿主机- 目标机的交叉编译调试方式。系统构建主要包括: 交叉编译器的选择和安装; NFS 网络文件系统的配置; 内核、Bootloader 和文件系统的编译和移植等。内核采用Linux -2. 6. 30. 4 版本; 系统引导加载程序采用U - boot - 1. 1. 6; 文件系统采用可靠性和可移植性好的YAFFS 文件系统。 3 驱动程序设计开发 在搭建好嵌入式Linux 系统平台基础上,进行机房远程监测系统数据采集相关开工作。主要包括温度数据采集和图像采集驱动程序的设计和采集程序的设计与实现。设备驱动程序是操作系统内核与机器硬件之间的接口,它为应用程序屏蔽了硬件的细节。 3. 1 DS18B20 驱动程序设计 DS18B20 通过温度对振荡器的频率影响来测量温度,而传感器对温度的采集则由ARM 控制DS18B20完成。由于DS18B20 采用单总线数据传输方式,所以ARM 芯片对DS18B20 的每步操作都要保证特定的读写时序,按照单总线的操作协议来进行。 首先初始化总线,跳过Rom( 总线上只有一个DS18B20) ,启动DS18B20 进行温度转换,复位,继续跳过Rom,发读温度指令,读取温度数据,最后进行温度的进一步处理及转换。温度采集驱动中用到的主要函数: ( 1) 初始化函数unsigned char DS18B20 Init ( void) ,此函数复位DS18B20 数据线,检测温度传感器DS18B20 的存在,主CPU 发送500 微秒的低电平信号后释放,检测到总线上脉冲的上升沿后,DS18B20 等待50 微秒,发出200 微秒低脉冲,CPU 收到此信号表示复位成功。 ( 2) void DS18B20 WriteOneByte( unsigned char data) 或数据到温度芯片DS18B20,即发送一个字节。 ( 3) unsigned char DS18B20 ReadOneByte( void) ,从温度芯片DS18B20 读配置或数据,即读一个字节。 ( 4) unsigned int DS18B20 ReadTemperature( void) 读温度函数。如果电路中只有一个DS18B20,则不需要多个器件的ID 识别,直接进行温度转换,DS18B20 温度转换需要时问,所以此处需要延时一定时间。 其基本处理流程如图2 所示。 驱动程序与硬件设备的接口由file_operation 结构定义,其结构如下: static struct file_operations s3c2440_18b20_fops = { . owner = THIS_MODULE, . open = s3c2440_18b20_open, . read = s3c2440_18b20_read, . write = s3c2440_18b20_write, . release = s3c2440_18b20_release, } ; struct file_operations 这个结构的每一个成员都对应一个_系统调用,用户进程利用系统调用对设备文件进行操作,系统调用通过设备文件的主设备号找到相应的设备驱动程序,读取这个数据结构里面相应的函数指针,把控制权交给该函数。 [!--empirenews.page--] 3. 2 ZC0301 摄像头视频采集程序设计 Video4linux 是Linux 内核里支持影像设备的一组API,配合适当的采集卡与相关驱动程序,可以实现视频采集。驱动视频采集设备完成视频采集和处理,需要相应的驱动程序和视频流采集程序。视频采集程序的内容主要包括摄像头的初始化、打开、关闭、参数设置以及数据读取等。 Video4linux 视频采集的实现过程如下: ( 1) 初始化程序,包括打开视频设备文件,读取视频采集设备信息以及设备缓冲区信息等; 初始化摄像头参数主要通过init_videoIn 函数来完成。 ( 2) 打开视频采集设备。初始化工作完成后,通过V4L_open 函数检查摄像头设备是否加载,如能够检测到摄像头设备,使用open 系统调用以只读的方式打开视频设备。 ( 3) 获取视频设备信息和图像信息。通过调用设备I /O 通道管理函数ioctl 中的VIDIOCGCAP 参数获取视频采集设备的名称、类型、通道数、图像宽度和高度等信息参数,调用ioctl 函数中的VIDIOCGPICT 参数读取视频采集设备缓冲video_picture 信息。 ( 4) 视频采集。在V4L 体系下,采用内存映射方式采集视频。内存映射方式视频读取的具体操作如下: ①首先使用ioctl 系统调用VIDOOCGMBUF 命令获取摄像头存储缓冲区的帧信息,之后初始化video_mbuf,修改video_mmbuf 设置。 ②映射设备文件到内存。 ③截取图像,有单帧截取和连续帧截取两种方式。进行单帧截取需先准备内存空间; 然后调用ioctl 函数的VIDIOCMCAPTURE 命令,以非阻塞形式开始一帧图像截取; 接着调用ioctl( fd,VIDIOCSYNC,&frame)函数判断该帧是否截取完毕; 最后就可将图像数据写入到Frame Buffer 中。若进行连续帧截取,则需通过循环语句中,使用VIDIOCMCAPTURE 和VIDIOCSYNC 函数判断是否完成截取,并给采集到的每帧图像赋地址。 ( 5) 关闭摄像头。视频采集完成以后,最后的工作是关闭视频采集设备。以内存映射的方法获取视频数据,需要在视频采集任务完成之后关闭内存映射,然后调用close_v4l 函数关闭视频设备。关闭视频设备需要判断视频获取方式: 如是内存映射方式,则通过munmap 函数。 4 嵌入式Web 监控的实现 嵌入式Web 监控的实现包括了Boa 服务器移植、CGI 网页交互程序设计两个部分。 4. 1 Boa 服务器移植 在嵌入式远程监控系统中,Web 服务器的性能对系统的整体性能具有直接影响,因此Web 服务器的选择和设计尤为重要。高效率的Web 服务器,才能使监控系统的能得到充分的发挥。 Boa 是一款单任务的HTTP 服务器,它支持CGI 技术,且具有自动生成目录和解压文件等功能。在运行效率方面,由于其只为CGI 程序创建新的进程,因此具有很高的HTTP 请求处理速度。故选用Boa 来构建嵌入式服务器。 服务器主要作用是为整个系统提供了一种网络接入和信息服务方式。系统通过应用HTTP 协议联网,调用具有数据请求和控制功能的CGI 程序,实现服务器对客户端浏览器请求的处理,最终实现信息在浏览器的动态显示,达到远程监控的目的。 4. 2 CGI 网页交互程序设计 CGI 技术即通用网关接口( Common Network Interface) 技术,它支持WEB 数据动态刷新、转换和显示。 基于CGI 接口设计的程序运行在WEB 服务器端,像其他类型程序设计一样,其必须通过CGI 标准格式进行编写。CGI 程序的运行由浏览器端的输入触发,它的任务就是执行指令,将所需数据转换为环境变量进行处理,并回传处理结果。WEB 服务器与CGI 程序之间通过四种途径进行通信: 环境变量、命令行、标准输入和标准输出。 CGI 的基本工作过程为: 根据浏览器的请求,CGI 程序通过执行Boa 服务器指令,调用其它应用程序进行处理,最后将处理结果以HTML 形式反馈给浏览器显示。CGI 工作流程示意图如图3 所示。 图3 CGI 工作流程示意图 4. 3 系统测试 本系统的测试工作主要是在实验室的局域网环境下进行的。 其中下位机为以S3C2440 处理器为核心的嵌入式目标板,配合ZC0301 摄像头和数字温度传感器DS18B20,通过构建Linux 操作系统并移植Boa,将其配置成为嵌入式服务器; 下位机采用通用的PC 机,通过浏览器与服务器进行交互。上位机监控端和下位机嵌入式服务器通过网线和上位机相连接,构建成为局域网开发环境。 [!--empirenews.page--] 通过终端中运行Boa 服务器和数据采集程序,在监控端浏览器内输入网页: http: / /192. 168. 0. 6,即进入登陆界面,如图4 所示。 图4 系统登陆主界面 实时温度采集界面如图5 所示。 图5 实时温度监测界面 5 结束语 本文设计了一种了基于WEB 的嵌入式机房远程监测系统,在实验室条件下进行测试、调试和完善。测试结果表明,监测系统能够实时准确的采集机房视频和温度数据,并在远程浏览器动态流畅显示,实现了信息实时监测,满足了应用的需求。本文的后续工作是在现有的系统基础上增加摄像头的云台控制功能以及嵌入式数据库管理功能,提高系统的整体使用价值。

    时间:2012-08-04 关键词: Linux 于嵌入 程监测 房远

  • 基于IEEE1451智能传感器的远程监测系统设计

     为了给传感器配备一个通用的软硬件接口,使其方便地接入各种现场总线以及Internet和Intranet,从1993年开始,美国国家标准技术研究所和IEEE仪器与测量协会的传感技术委员会联合制定了智能传感器通用通信接口标准,即IEEE1451的智能变送器标准接口。针对变送器工业各个领域的要求,多个工作组先后建立并开发了接口标准的不同部分。 1 IEEE1451标准族介绍 IEEE1451是一个智能传感器接口的标准族,它定义了一系列为使智能传感器连接到微处理器、仪表系统和现场控制网络的开放、通用、独立于网络的标准[1],提供了一系列基于监测和控制应用的有线或无线的协议。IEEE1451接口标准结构如图1所示[2]。 在IEEE1451标准族中,IEEE1451.0标准定义了传感器和执行器多种通用配置命令集,如点对点、分布多点和无线的配置,以适应各种应用的需要。而且还规定了通用变送器电子表(TEDS)的格式,目的在于提高IEEE1451系列标准之间的互操作性,简化针对网络适配器(NCAP)和智能变送器接口模块(STIM)使用不同物理层传输介质连接相关标准制定的工作难度和工作量。 IEEE1451.1:主要定义了NCAP的信息模型,这一标准为NCAP规定了一个公共的上层对象模型,网络结构和变送器模块类型不同,其对象模型就有不同的版本。一个简单的编程模型封装了传感器硬件实现的细节,规定了不同NCAP与STIM物理层版本在具体实现时的软件接口规范。 IEEE1451.4:主要针对于传感器和变送器的混合模式通信协议及传感器电子数据表格式。混合模式接口的智能型传感器定义了一种为传统模拟模式的传感器和变送器增加自我识别技术的机制。 IEEE1451.5:定义了无线传感器通信以及TEDS格式,定义了无线变送器模块WTIM(Wireless Transducer Interface Module)与NCAP之间通过无线方法建立连接的有关事项。 2 系统概述 本系统的设计背景为远程环境检测。考虑到设备主要应用在野外,地形比较复杂, IEEE1451.2-4标准都是基于有线连接的,连线困难。而IEEE1451.5标准是基于无线传输技术的,也就是NCAP和WTIM之间的通信是基于无线传输技术,可以节省成本,而且还方便今后对系统的升级改造。但本系统的TIM部分和WTIM部分采用的是IEEE1451.4标准的MMI接口。因为MMI允许TEDS的数字信号和传感器的模拟信号隔离传输,可以很方便地将传统传感器改造为符合标准的智能传感器。系统框图如图2所示。 本系统包括三个部分:(1)变送器接口模块(TIM)。该部分的主要功能是采集传感器的模拟信号,并与TEDS的数字信号通过IEEE1451.4的标准MMI接口传送到控制器;(2)无线变送器接口模块(WTIM)。该部分包含一个控制器、一个无线收发器和MMI(Mixed-Mode Interface)接口。MMI接口接收TIM传来的信息并对其进行处理,将处理完的信息传给无线发送设备,由后者发送出去;(3)网络适配器NCAP。该部分主要由无线收发设备、控制器和DTU设备组成。无线收发设备收到WTIM发送的信息后传送给处理器,处理器做相应处理后通过相应的网络协议将数据发送到远程终端。 2.1 硬件设计 本设计选用STM32系列单片机作为各部分的主控制器。STM32 是意法半导体基于ARM CortexTM-M3 的32 bit嵌入式处理器,具有运算速度快、外设资源丰富等特点,而且其价格仅与8 bit单片机相当,性价比极高。因此本设计选用该芯片。 IEEE1451.5标准的目标是为使用不同通信技术的无线传感器提供一个统一的接口,采用已经成熟的无线通信技术作为接口标准,并不是开发一种新的无线通信技术,而是基于该标准的无线传感网络接口在WTIM和 NCAP之间定义了多种无线通信方式。目前,其主要的通信协议有三种:IEEE 802.11协议、Bluetooth协议和ZigBee协议。从三者的开发成本、传输距离、速度等各个方面比较,本系统选用了由ZigBee技术来构建无线传感器网络[3-4]。 本设计选用TI公司生产的符合ZigBee技术的CC2530射频模块。该芯片是一款真正的系统芯片(SoC)CMOS 解决方案,这种解决方案能够提高性能并满足以ZigBee为基础的2.4 GHz IAM波段应用对低成本、低功耗的要求。 2.2 操作系统 由于本系统的各部分任务比较多,所以软件需要使用嵌入式操作系统。应用比较广泛的有以VxWorks、?滋C/OS等为代表的国外开发的操作系统,也有以RT-Thread为代表的国内开发的操作系统。国外的操作系统虽然应用比较广泛,但费用也比较高,使成本加大。 而国内开发的RT-Thread是一个开放源代码的实时操作系统,并且商业许可证是非常宽松的实时操作系统。采用面向对象风格的设计是RT-Thread一个很大的特点,但它又不像eCOS操作系统那样纯粹使用C++来实现,而是采用了一种C编码的面向对象编程。面向对象设计更适合于人类思考问题的特点(例如继承),可以让具备相同父类的子类共享使用父类的方法,这样可以很方便地创造更多的函数。对象的好处在于封装,因为当一个对象封装好了并测试完成后,基本上就代表这个类是健全的,从这个类派生的子类不需要过多考虑父类的不稳定性[5]。 3 TIM设计 IEEE1451.4标准的核心是TEDS,TEDS包含了传感器的相关信息,其信息有:厂商信息、模块编号、版本信息、产品序列号、灵敏度、测量范围、物理单位、传输功能、输出范围、校准信息以及用户数据等[6-7]。TEDS被存储在EEPROM中,系统一旦上电或接受了请求,TEDS 就上载到系统。TEDS简化了传感器的安装,一个被损坏的传感器可以直接被替换而不需要更改任何设置。 TEDS包含一个64 bit的信息,称为“Basic TEDS”,每一个传感器必须包含一个Basic TEDS。表1为Basic TEDS包含的内容。 由于TEDS存储器大小的限制,Basic TEDS的信息应该被压缩到符合存储器的要求。典型的系统存储器存储信息的单位为8 bit或者16 bit。但是TEDS可以做到按1 bit来存储有效信息。这就要求谨慎小心地解析数据来获得所需要的信息,给编程提出了更高的要求。此外,还可以根据不同的传感器类型,选择不同的模板来设计标准模板TEDS。最后可以根据用户需要添加一些用户自定义信息。本系统所使用的温度传感器的TEDS如表2所示。 [!--empirenews.page--] 4 WTIM 设计 WTIM 部分可以通过MMI 接口将传感器的TEDS 读出, 并将其通过无线设备发送给NCAP, 并且通过IEEE1451.0 标准定义的通用API 函数来控制可读取传感器和执行器的运行状态。WTIM 状态图如图3 所示。 在WTIM一上电时即进入初始化状态,随后马上进入PREREG状态。在PREREG状态中TIM要通过完成向NCAPREG的任务,之后进入NCAPREG状态。进入NCAPREG状态意味着WTIM已经与一个NCAP进行了连接,但是并没有被设置与TIM完成数据交互。当NCAP设置WTIM与TIM进行数据交互时,它就会发送一个开放命令和一个或多个写命令,然后WTIM进入OPEN状态。在OPEN状态中,WTIM就可以和NCAP、TIM进行数据交互了。OPEN状态可以被关闭命令终止。如果多次通信失败,则表明TIM当前没有通道可用,WTIM将由OPEN状态转为NCAPREG状态。如果TIM没有被注册,则WTIM状态由NCAPREG状态转为PREREG状态,进行TIM注册。 5 NCAP设计 符合IEEE1451.5标准的NCAP支持接入多个同一技术标准的WTIM。当首次上电NCAP进入初始化状态时,马上进入UNREGDOT5状态。根据设计要求,NCAP应该包含一个符合ZigBee技术标准的协调器,在UNREGDOT5状态意味着协调器并没有建立一个有效的ZigBee网络。之后NCAP将进行网络的注册和建立,这时NCAP就会进入DOT5REG状态。DOT5REG状态说明NCAP已经建立了一个网络,但是并没有和WTIM建立连接,因此也就不存在与TIM进行数据交互。NCAP网络注册状态图如图4所示。 当一个NCAP 建立的网络有一个或多个WTIM 注册时, 它就会进入TIMREG 状态。在这一状态NCAP 会完成对所有TIM 的注册。为了完成与TIM 的数据交互,NCAP 会发送一条开放命令和一条或多条写命令, 随后NCAP 进入OPEN 状态。在OPEN 状态, 即可以和WTIM进行数据交互。OPEN 状态可以被关闭命令结束。因为NCAP 维持各个WTIM 相互独立, 所以NCAP 可以在任 何时刻发现和连接节点。NCAP 运行状态图和顺序图分别如图5、图6 所示。 在国外对于智能传感器的研究起步比较早,到目前为止已有相当一部分投入到应用中,如在远程监控和控制、分布测量和控制系统中的应用和在协作式测量和控制中的应用。而国内对于IEEE1451标准族的研究还处于起步状态,一些高等院校也在进行针对IEEE1451标准族的研究,但是目前绝大部分的研究工作还是停留在对标准本身的解释和阐述,并没有将其应用在实际的工程中。而且主要集中于对IEEE1451协议中较早版本的研究,明显落后于国外的研究现状。 本文将IEEE145标准族中的四种标准通过组合使用,设计完成了一套完整的环境监测系统,这对于IEEE1451标准的推广有一定的现实意义。

    时间:2012-11-06 关键词: VxWorks 程监测 ieee1451

  • 基于ARM和GPRS的远程监测终端设计

    摘要:针对分布比较分散,场所不固定,或是环境比较恶劣的监测现场,提出了一种通用的远程监测终端的设计方法。终端具有模块化的数据采集功能,并采用ARM9处理器和Linux操作系统,用Qt/Embedded编写终端应用程序,使其具有良好的人机交互界面,并对数据进行分析处理,采用GPRS(通用无线分组业务)无线通信技术将处理过的数据发往监测中心,存入数据库。实际实验证明,该终端数据处理速度快,精度高,实时性好,可以满足一般监测现场的要求。 关键词:远程监测;ARM9;GPRS;嵌入式Linux;Qt/Embedded     随着现代生产科技水平的发展,对监测技术的要求越来越高,形式趋于多样化。在无人值守的变电站、水文站、气象站等野外监测或是在交通运输等行业中,因分布比较分散、环境恶劣,地点不固定,不便于用传统方法实现集中控制和实时监测并且有线网络的架设受到种种限制。在这些场合采用基于GPRS的无线网络通信技术,具有无可比拟的优势。将嵌入式应用系统与无线通信技术结合在一起是未来嵌入式应用的必然趋势。GPRS(General Packet Radio Service),即通用无线分组业务。     GPRS技术应用于远程数据传输系统,具有以下几个特点:1)永远在线,接入速度快。分组交换接入时间少于1秒,可使远程数据传输的效率大大提高:2)采用数据流量的计费方式,大大降低了用户的使用费用;3)GPRS网络覆盖范围广,且支持TCP/IP协议,从而可实现与Intern et的无缝连接。 1 终端的整体结构设计     终端要完成3个任务,数据采集、数据处理和数据的无线传输。数据采集部分采用模块化设计思想将采集模块分为模拟量采集模块,数字量采集模块,开关量采集模块等,每个模块独立的实现对特定采集信号的整流、调理、隔离等处理再转换为数字量,各模块采用统一的结构,选用相同的单片机处理器。各模块采集的数据通过统一的SPI(serialperipleral interface)总线传输给ARM处理器。这样的结构使终端使用更灵活,应用范围更广泛。数据处理部分采用ARM处理器对所采集的数据的类型、长度、有效范围等进行处理,并通过液晶屏加触摸屏完成人机交互功能。然后将处理好的数据通过GPRS无线网络传输给上位机。终端的整体结构图如图1所示。 2 终端硬件设计     终端硬件主要由3部分组成。一是作为主处理器的ARM9处理器及其外围电路包括电源电路、复位电路、外扩存储器电路及用于人机互动的液晶屏、触摸屏连接电路等。二是各个模块的数据采集电路的设计,这里主要设计的是模拟量采集模块,以及各个数据采集模块与主处理器之间SPI连接方式。三是GPRS模块外围电路以及与主处理器的连接。端硬件设计示意图如图2所示。 2.1 终端主处理器     主处理器是系统的核心,要完成数据处理,存储,传输,人机界面显示等功能。结合工业现场的需求终端处理器采用以ARM9为内核的三星S3C2440处理器,它是一款基于ARM920T内核的16/32位RSIC结构的嵌入式微处理器,主频400 MHz,最高可达533 MHz,具有2片外接32 M的板载SDRAM,片内外资源丰富,扩展性强。系统存储扩展了2 MB的NorFlash用于存放bootloader系统引导程序,和64 MB的NandFlash。系统的人机交互平台采用一个7寸液晶显示频和一个触摸屏来完成。 2.2 数据采集部分硬件设计     数据采集模块可分为模拟量采集模块,数字量采集模块,开关量采集模块等,主要完成对底层数据的采集,这些模块的单片机处理器统一采用Cygnal公司的C8051F021单片机,它的MCU是高度集成的片上系统。在一个芯片内集成了两个多通道ADC子系统、电压基准、SPI总线接口、8个8位的通用数字I/O端口和64 kBFLASH程序存储器及与8051兼容的高速微控制器内核等,这些很好的满足了模块的设计要求。由于模块设计结构上的相似性,这里主要介绍模拟量采集模块部分。     工业现场采集的信号大部分是模拟量,如压力、温度、液位、流量等信号。这些信号经过现场仪表测量后一般统一输出为4~20 mA,0~5 V,0~10 V范围的电流电压信号。通过模拟量采集模块将这些模拟量转换为数字量。单片机的A/D准换的电压基准定为2.5 V,要将4~20 mA,0~5 V,0~10 V范围的电流电压信号统一为0~2.5 V以内的电压信号,才能进入单片机完成模拟量到数字量的转换。对于电流信号,在输入端接一个250 Ω的精密便转换为1~5 V的电压信号了,对于电压信号通过运算放大器按比例缩放到0~2.5 V范围内即可。转换电路如图3所示。 [!--empirenews.page--]     各个数据采集模块与主处理器通过SPI总线进行通信。SPI总线是Motorola公司提出的一种高速全双工串行通信总线,它容许CPU与各种外围接口器件以串行方式进行通信。SPI接口只有MISO(主入从出)、MOSI(主出从人)、SCLK(时钟)和CS(片选)4个信号组成,在芯片上只占用4条线,大大节省了芯片资源。主处理器与各采集模块的SPI通信方式为一主多从的方式,即ARM主处理器的作为主设备,各数据采集模块作为从设备,主设备驱动串行时钟发起通信。主设备使用片选信号CS指明与哪个模块采集模块传送数据。通信时,主设备的MISO为输入,MOSI为输出,从设备的MISO为输出,MOSI为输入,在主设备时钟的控制下,主设备与从设备的双向移位寄存器同时进行数据交换,完成一次数据的传输。主处理器与各模块的通信结构图如图4所示。 2.3 GPRS模块     GPRS模块选用华为GTM900C模块,它是一款三频段GSM/GPRS无线模块。模块接口简单、使用方便且功能强大。它支持标准的AT命令及增强AT命令。GTM900C的GPRS数据业务的最高速率可达85.6 kbit/GTM900C提供40脚的ZIF接口,主要有电源接口、UART接口(最大串口速率可达115200bit/s)、标准SIM卡接口和模拟语音接口。     本系统中,GTM900C主要是实现GPRS上网功能。该模块的主要特点如下:     1)单电源供电,供电范围为3.3~4.8 V.典型供电电压为4.2 V;     2)可工作于三频EGSM900和/GSM1800/GT800单频;最大发射功率EGSM900/GT800 Class(2W)和GSM1800 Classl(1W);     3)支持GSM标准AT命令、V.25 AT命令和华为扩展AT命令;     4)GPRS传输速率最高可达85.6 kbps,支持CS-1,CS-2,CS-3,CS-4 4种编码方式。内嵌了TCP/IP协议;支持多连接,提供ACK应答,提供大容量缓存。     GPRS模块与主处理器的连接很简单,由于两者是通过串口接口进行通信的,所以将两者用串口线连接即可。GPRS的网络功能都已集成在模块中,只需要在主处理器这一端将串口参数设置好,然后发送相应的AT指令对模块进行操作即可。 3 终端软件设计     终端软件设计包括两个任务,一是搭建开发环境,如Linux操作系统内核移植,编写设备驱动等,二是在开发环境准备好的基础上进行应用程序的编写,包括完成SPI总线数据输入输出功能,GPRS无线数据传输功能,和界面显示功能。 3.1 软件开发平台搭建     软件平台采用嵌入式Linux操作系统,嵌入式Linux操作系统是一个源代码公开的实时多任务操作系统,可应用于多种硬件平台,可根据需要定制内核,有良好的网络支持,Linux系统内核精简、高效并且稳定,能够充分发挥硬件的功能,它非常适合在嵌入式领域中应用。嵌入式Linux操作系统搭建的步骤为:在宿主机上建立交叉编译的环境;编译生成Linux的内核,用的内核是Linux-2.6.29;编译生成根文件 系统,用的根文件系统为yaffs;向目标机下载Bootloader的映像,用的Bootloader为Supervivi;烧写Linux内核和文件系统的映像;复位启动。为了使终端可以使用触摸屏,液晶屏和SPI总线,将编写的对应的驱动编译、添加到Linux内核中。系统使用的宿主机系统为在虚拟机下运行的RedHat9.0。     终端应用程序用Qt来编写,Qt是一个跨平台的C++图形用户界面应用程序框架。它具有优良的跨平台特性、面向对象、丰富的API支持等优点。Qt-Embedded是Qt的嵌入式版本,因此终端应用程序的开发使用Qt/E作为开发工具。Qt运行环境的搭建步骤为:首先在宿主机上分别建立Ot-x86编译环境和Qt-ARM编译调试环境,采用Qt4.5.0版本;其次,将宿主机生成的Lib下的库文件下载到目标板的某个目录下,并在目标板上设置好环境变量,这样在目标机上的Qt程序运行环境就建好了。在宿主机上交叉编译好的Ot/E程序就可以下载到目标机上运行了。 3.2 终端应用程序设计     监测终端需要采集监测仪表的现场测量数据,终端设计的数据采集模块分别对不同的现场数据进行采集并做相应的处理,数据采集模块与CPU之间通过SPI总线进行数据传输,对与采集数据需按上端通信协议、PPP、TCP/IP协议进行二次成帧;利用GPRS网络接入Internet网络,将处理后的数据信息通过GPRS无线网络上传至监控中心。     GPRS模块附着GPRS网络并与上位机建立TCP数传链路是通过向模块发送一串AT指令实现。拨号动作完成,并成功建立数传链路以后,GPRS模块在终端串行口和上位机之间变得透明。另外,终端的重要状态要能即时显示在LCD上。     综上分析,监控终端应用程序要完成的任务有:串口参数设置,GPRS网络连接,读取串口返回信息,SPI数据传输,GPRS数据传输,界面显示。由于任务不止一个,而且有的任务需要同时运行,所以采用多线程编程。     在Qt编程中主界面UI一般为主线程,子线程通过继承Qt中的QThread线程类来完成。这些任务和功能可以通过3个线程来实现。3个线程的作用分别为:1)主线程:负责界面显示,串口参数设置,GPRS网络连接,GPRS数据传输;2)SPI数据传输子线程:负责与数据采集模块通信,将采集数据存入缓冲区;3)串口数据读取子线程:CPU通过串口操作GPRS模块,GPRS模块的返回信息可以通过串口数据读取子线程随时读取。程序模块图如图5所示。 [!--empirenews.page--] 3.2.1 显示界面模块     界面显示模块:界面显示由两部分组成。一是实时显示各模块的采集数据及一定时间以内的历史数据数据;二是显示GPRS模块设置界面,通过这个界面设置串口参数、设置数据采集时间间隔、设置主机IP地址及端口号、发送AT指令、回显模块返回信息等。编写界面设计文件mainwindow.h和mainwindow.cpp,其中串口参数设置、网络连接和GPRS数据传输封装成相应的子函数,利用Qt的信号槽机制,当捕捉到 相应的信号便执行对应的函数。通过继承Qt中的QThread线程类来完成GPRS数据读取模块和SPI模块的功能。SPI模块接收底层数据采集模块的各种数据,显示到界面并编码通过GPRS通道传输到上位机,GPRS返回的一些重要信息业需显示到LCD界面上。 3.2.2 GPRS网络连接任务     GPRS网络连接任务主要完成通过GPRS网络建立与上位机的数据传输链路的过程。启动GTM900C后,首先,需对PPP连接所使用的物理串口进行初始化,包括确定用于PPP连接的串行端口号以及通信波特率。然后,直接使用AT指令,拨号到中国移动的GPRS节点服务器(GGSN)。使用以下几条灯指令使GTM900C进入数据通讯状态:     “AT+CGATY?”用于查询GTM900C是否已附着在中国移动的GPRS网络,GTM900C将返回当前状态;     “AT+CGATT=1”用于设置GTM900C附着于中国移动的GPRS网络,操作成功GTM900C将返回OK;     “A1,+CGDCONT=1,“IP”“CMNET””用于设置中国移动的GPRS节点服务器的名称和属性,操作成功则返回OK;     “AT%ETCPIP”用于实现PDP激活和TCP/IP的初始化,使模块进入TCP/IP功能,操作成功返回OK;     “AT%IOMODE=0.2,0”设置数据传输模式,操作成功返回OK;     “AT%IPOPEN=1,“TCP”,“115.24.116.19”,5000..1026”打开一条TCP/IP链接,选择TCP传输,115.24.116.19为上位机IP地址,5000为上位机接受程序端口号,成功与上位机连接返回CONNECT。另外模块还具有数据透传功能,数据透明传输功能将实现TCP/IP上直接数据传输,进入透传模式的AT指令是:“AT%TPS=1,1,3000,1024”,进入透传模式后模块将不会相应其它AT指令,直接通过串口写入数据便可实现与上位机之间的数据传输。以上使模块附着在GPRS网络的过程封装在gprsConnect()函数中。     PPP配置、认证通过以后,即应用程序就已经通过GTM900C成功进入了Internet网络。最后,通过变量GPRSOK=1指示GPRS拨号成功并建立数传状态。在run()程序中隔一段时间判断当前网络连接状态,若网络断开则变量GPRSOK=0,并调用gprsConnect()函数开始拨号任务重新建立数传链路。 3.2.3 SPI数据通信模块     SPI通信程序包括两部分,一是用于数据采集的单片机这边需要通过SPI发送现场数据,接收控制指令,二是ARM主控制器需要读取数据,发送控制指令。数据采集模块使用是带有SPI接口的C8051f020单片机,SPI的数据寄存器是SHODAT。单片机和主控制器的SPI通信参数设置要一致。     在主设备ARM这边,SPI驱动已经配置好,直接使用read(),write()等函数便可进行数据的读取与接收。在单片机这边采用中断的方式进行SPI数据的发送与接收。对于从设备C8051f021单片机来说,只有将片选线线接低电平才会启动数据传输,可利用这一点进行多字节数据传输,拉低一次便传输一个字节,这可用作与主设备之间的同步信号。主设备选一根I/O口线作为片选线,将其拉低,执行一次SPI读操作,再拉高,延时一定时间,这时从设备退出从模式,重新往SPIODAT里写新数据及其他一些处理,主设备再将片选线拉低,执行一次SPI读操作。这样便可进行多字节传输了。SPI主从设备通信流程图如图6所示。 3.3 终端性能测试     将编译好的界面应用程序下载到终端处理器中并运行,主线程为显示界面,随时可与用户进行信息,两个子线程为读SPI总线线程和串口读写线程,这3个线程同时并行运行。其中GPRS传输部分的界面如图7所示,通过这个显示界面设置串口、上位机IP地址、TCP端口和数据定时发送的时间间隔,发送文本框会显示SPI总线读取的数据值,接收文本框回显GPRS模块返回的信息。上位机用自己的PC机,通过软件soeket tool监听终端发送给上位机数据,实验证明终端界面应用程序工作良好,数据传输也很准确。 4 结论     系统的上位机接受界面可用VB编写,并建立数据库,方便分析、处理监测现场数据,这部分程序正在完善中。监测终端的数据采集部分采用模块化设计,可以灵活增减,终端软件可以根据不同现场用户自行设计计算公式处理数据,把终端设置好,在上位机通过GPRS网络便可实时监测现场。该检测终端结构灵活,实时性好,适用范围广,具有广泛的应用前景。

    时间:2012-02-21 关键词: GPRS ARM QT 端设计 程监测

  • 基于嵌入式Internet技术构建的电网远程监测系统的实现方案

    配置完成后,重新编译内核。把编译好的内核下载到ARM硬件平台,启动μClinux操作系统,完成IP配置,运行Boa Web Server,然后就可以通过浏览器访问网页了。 3.3 用户与主机间安全交互的实现 为了在μCLinux系统中实现网页的实时刷新,得到实时电网参数,实现客户端与电网监测系统之间的交互,本系统采用了CGI的方法。当客户端采用FORM POST形式向Boa服务器发出CGI请求时,服务器守护进程启动相应的CGI程序,CGI程序通过CONTENT—LENGTH获取客户端传输数据的字节数,通过STDIN读取客户端传输数据,这些数据一般是客户端在表单中输入的简单的监控信息。CGI获取这些信息后通过串行通信将这些信息发送到电网监测系统中,等待监测系统模块的应答消息,最后生成网页文件,并且将返回结果嵌入到网页文件中,通过cgi—send—string函数将此网页发送给客户端浏览器。一段时间后客户端浏览器会再次向服务器发送一个CGI请求,相应的CGI函数会查询最新的数据,刷新后将新数据发送给客户端浏览器。这样周而复始,实现了网页的刷新功能,从而保证了远程监测数据的实时性,实现客户端与电网监测系统之间的交互。 Fig.3 Client Connects with Target Board through CGI 同时为了保证远程监测的安全性不被非法侵入,通常嵌入式Internet可以采用:加密和解密(Encryption andde—eryption)、数字签名(Digitalsignatures)、信息摘要(Message digests)、公共密钥基本架构(Public—keyinfiastrueture)、证书(Certifieates)等方法确保网络通讯的安全。本系统采用了用命令识别的方法来保证系统数据传输的安全性,即客户端计算机首先向监测系统发送命令代码,由监测系统分析,确定为请求数据发送命令码再向客户端计算机端发送数据,发送命令代码即相当于发送了身份验证码,从而保证电网数据传输的安全性。 4.系统的应用 本系统在成都某电厂的局域网(以太网)的环境里做调试,通过IE浏览器完全实现了电网参数的监测功能:在客户端IE浏览器中输入主网页的地址,进入电网监测系统的主网页,如图4;输入正确的用户名和密码后登陆电网远程监测系统的参数监测网页。在参数监测网页可以监测到电网运行的实时参数。整个系统具有良好的人机界面,操作简单,有效的保证了电网运行安全,大幅提高了电网监测的实时性和有效性。 5.结束语 本文提出了将嵌入式Internet技术应用于电网远程监测系统的开发与实现,研究了基于嵌入式实时操作系统μCLinux下嵌入式Internet的接入方案以及Boa Web服务器的参数配置,并提出了利用CGI技术实现网页的实时刷新以及客户端与主机间交互的方法 ,开发实现了电网远程监测系统并将该系统应用于成都某电厂。实践表明,该系统可以实时监测电网参数,保证了电网的安全运行。本系统的构建代表了新一代监测网络发展的必然趋势,在不久的未来必将具有十分广阔的应用前景。  

    时间:2010-11-06 关键词: 方案 internet 于嵌入 程监测 设计教程

  • 基于电力线载波技术的输液远程监测系统

     电力网是用户普及的物理网络,其用户使用群是任何网络都无法比拟的,而电力网的现有的主要用途是传输电能。如何利用电力网络资源潜力,在不影响传输电能的基础上,实现窄带或宽带通信,使之成为继电信、电话、无线通信、卫星通信之后的又一通信网,是多年来国内外科技人员技术攻关的又一目标。电力线载波通信是利用电力线路作为传输通道的载波通信,是电力系统特有的一种通信方式。电力线载波通信和其他通信方式相比,具有自己独特的优势,不需要进行布线施工,网络延伸广泛,且现有的网络具有稳定可靠的保障,因而在医疗设备中利用电力线通信实现通信与监控是非常实际而有前景的。   1.输液远程监测系统总体设计方案   输液远程监测系统的功能主要有两个方面:一方面在病房要采集病人点滴瓶的液位信息,输液结束时进行本地报警,引起病人及病人家属的注意;另一方面护士在工作站实时观察病人输液状态,得到报警信号后做到及时处理,实现输液远程监测。   本设计将输液远程监测系统按功能划分为两部分,一部分安设在病房中,称之为病房输液信息采集器(下位机),采集病人的液位信息。另一部分放置在护士站,由值班护士进行监控,接受采集器上传的数据和输液结束报警,这部分称为输液监测控制中心。具体的结构如图1。      图1输液远程监测系统结构图   2. 载波通信控制器部分硬件设计   无论是输液采集器还是输液监测控制中心都需要载波通信系统,只不过是输液信息采集器增加了输液信息采集与控制功能。   2.1 通信系统结构   本系统中采用具有扩频通信功能的SC1128作电力线载波芯片,用AT89C51作通信控制和输液信息采集(在下位机中)芯片,利用RS232口先进行点对点通信。图2为通信系统的硬件框图。      图2 通信系统的硬件框图   如图2所示,信号由电力线经耦合器、带通滤波器和前级放大器进入SC1128芯片。经微处理器处理后数据送至上位机完成接收。信号经SC1128通过功率放大器和耦合器发送至电力线上完成发送。   2.2 SC1128外围硬件的设计   SC1128外围电路由电源电路、耦合电路、滤波器、自动增益前级放大器和功率放大器组成。   电源电路由工频变压器、滤波二极管电桥、滤波电容、三端稳压器等组成,主要为系统提供+12V与+5V电源。耦合电路由中频变压器、浪涌保护二极管和起限幅作用的二极管等组成,是信号传输的通道,载波信号经它耦合到220V交流电路上。带通滤波器由电容与电感组成,信号由耦合电路输入,滤掉杂波,再把信号输入到自动增益前级放大器电路。自动增益前级放大器是将接收的信号进行不失真放大,再输入SC1128的片内放大电路。功率放大器电路是将经过SC1128芯片处理后的脉冲放大,(此输出为OC门输出,在使用过程是应接上拉电阻,本电路上拉电阻值为2k。功率放大器由12V直流供电)。具体电路图略。   2.3 SC1128与单片机的接口   图3是SC1128与AT89C51的接口图。SC1128第28脚为电路工作主时钟的二分之一的晶振输出。32脚电压监测端。33脚看门狗输入端,正常工作时应该在768ms内产生一次高低电位变化。34脚看门狗输出端,与33脚配合,正常时输出低电平,否则输出三分之一占空比的复位脉冲。35脚与32脚配合,当电源信号低于监测值时,输出低电平,当高于监测值,则输出高电平。36脚收发控制端,0为接收,1为发射。37脚在发射和接受同步后产生同步脉冲信号,频率随工作主时钟和周波的变化而变化。38脚为输出发送和接收的数据。39脚为设置数据及状态的输入输出端。40脚为同步设置时钟输入端。41脚为片选输入端。当发射状态时,单片机将SR端(36脚)置高,SC1128芯片发出同步脉冲(37脚),单片机通过TX端(38脚)同步发送数据。当接收状态时,单片机将SR端(36脚)置低,SC1128芯片若接收到数据,则产生同步脉冲,通过TX端(38脚)将数据同步发送到单片机。      图3 SC1128与AT89C51的接口图  3. 载波通信系统的软件部分设计   通信模块的程序主要包括发送测试程序、发送中断服务程序、接受中断服务程序,主要完成数据的接收和发送过程,程序清单略。   在进行通信时还要注意中断和通信的配合问题,要先设置通信状态,再开放相应的中断。另外要注意先要让接收一方工作之后再让发送一方发送数据,这可以保证不丢失数据。   在编写通信程序时要注意,收、发双方的通信速率要一致。门限值只对接收一方有意义,门限值的高低将影响到通信的误码率,但并非是门限值越高就一定越好,要根据各自的通信情况和相应的速率适当选择。SC1128在通信时收、发要注意时序的配合。   4. 输液信息采集器的设计   输液信息采集器是在载波通信控制器的基础上增加了输液信息采集与控制功能。由图3可以看出,通信控制器中只用了AT89C51的P1口和串行通信引脚,所以输液信息采集器的设计巧妙地避开了AT89C51的P1口和串行通信引脚,充分利用了AT89C51的P2和P3口实现了检测与控制功能。具体电路如图4。        图4 滴速控制与液位检测报警电路图     如图4所示,由单片机编程,将滴速检测信号送到单片机与设置在单片机的滴速比较,再由单片机发出控制信号给驱动芯片SAA1027对电动机的正反转进行控制以实现对储液瓶的高度控制。这样就可以对滴速进行控制了。   将光电传感器安装到输液瓶上,当输液瓶的液位到达警戒液位时由于介质的变化使传感器的输出电压发生变化。从而实现液位警戒值检测和极限值检测,声光报警就是利用单片机AT89C51的I/O口控制并驱动发光管和蜂鸣器工作,实现声光报警。   5. 系统调试   对电力载波终端的测试是在同一台变压器范围内的某一单相上进行的。一台电力载波终端配一台接收机进行电力载波通信测试。分别在不同时间段和不同通信距离进行了测试,具体的测试结果如表1所示。     表1 电力载波终端的测试数据     测试结果表明,近距离测试时,在有负载和较强干扰如电力载波终端和接收机间有十几台正在运行的电脑和几个充电设备的情况下,电力载波终端仍能可靠的通信,完全满足通信与测控的要求。   本文作者创新点:利用扩频通信电力线载波芯片SC1128和AT89C51单片机设计了输液远程监测系统。该系统通过电力线载波,利用低压电力线作为通信媒介,不需要进行重新布线施工实现了通信网络化,做到了病房输液系统的远程监控。同时也证明了扩频调制技术具有更好适应性和先进性,进一步展示了低压电力载波通信的美好发展前景。     参考文献   [1] 刘建伟,余永权,边增远。基于电力线扩频通信的智能家居网络。微计算机信息(测控自动化).2005, 12-1:160-162   [2] 陈静,张建平,刘玉梅。自动输液监控系统的设计与实现.Control Engineering China.2006,(6)   [3] 陈炎桂,陈志伟,关德新。基于SC128的无线扩频通信系统。电子技术应用.2005,(12)   [4] 周文光。一种简易医用输注器械液面检测报警装置的研制。医疗装备.2004,(6)   [5] 李和太,赵新,李新,夏加宽。智能输液监控系统的研制。沈阳工业大学学报.2006,28(3)

    时间:2011-10-04 关键词: 程监测 于电力 设计教程

  • 现场总线在电力远程监测管理系统中的应用

    利用极为普遍的公用电话网实现MODEM远程抄表是目前电力远程监测管理的主要方式之一。常见的MODEM抄表系统是管理中心通过电话网以发散的形式与分散于各台变区域的集中器连接,形成1对N的星型通信网络。由于利用电话线进行通信通常需要较长时间进行握手应答和线路续接,数据点较多时通信效率很低;另外,当集中器数目较多时,租用的电话线也较多,尤其在居民密集的城区,集中器的密度很大,管理中心的电话租借费用将相当高。因此,上述缺点限制了传统的基于电话网的电力远程监测管理系统的推广使用。 为此,笔者开发了一种基于CAN总线的电力远程监测管理系统。该系统打破了传统的一个集中器一部电话的组建模式,而将位置相对集中的多个集中器用CAN总线组成局域网,一个局域网只需一部电话与管理中心通信。这种组建方式一方面大大减少了集中器电话租借数目,大大降低了通信成本;另一方面,利用CAN总线特有的广播通信方式,可有效提高系统的实时通信能力。 1 电力远程监测管理系统构成 基于CAN总线的电力远程监测管理系统是一个三级分布式检测系统,主要由管理中心、集中器、采集单元、通信信道、采集终端等5部分组成,系统结构如图1所示。 图1中,系统信道包括电话线、CAN总线和RS-485总线。采用电话线拨号方式,三级通信包括管理中心与主集中器之间的MODEM通信、主集中器与从集中器之间的CAN总线通信、集中器与采集单元(或采集模块、采集终端)之间的RS-485总线通信,通过MODEM的调制和解调功能,能够及时、方便地进行系统的远程信息传输,与主集中器实现信息交换:每台主集中器通过CAN总线,可以管理10 km内安放在各配电变压器附近的从集中器(CAN节点),从集中器为1~110个;从集中器通过RS-485总线,采用的SN65LBC184芯片规定的从机个数为1~64个,因此系统采集终端的个数也为1~64个,(即1~1024户居民用户电表),管理变压器采集单元和低压居民用户采集终端;每个采集终端可以实现1~16户居民用户的电量采集与采集信息传输。 图1 基于CAN总线的电力远程监测管理系统 2 CAN总线通信系统设计 CAN总线是电力远程监测管理系统主、从集中器之间的通信链路,CAN总线通信的稳定可靠是电力远程监测管理系统运行成败的关键。 2.1 CAN总线简介 CAN(Controller Area Network,控制器局域网)是一种先进的串行通信协议,属于现场总线范围。CAN总线具有较强的纠错能力,支持差分收发,因而适合高噪声环境,并具有较远的传输距离,特别适合中小型分布式测控系统。由于CAN具有实时性好、可靠性高、抗干扰能力强、传输距离远、通信速度快、采用短信息帧结构和多主通信方式以及可使用多种通信介质等许多优点,在航空、航海、汽车、建筑物环境控制、机床、医疗设备等领域以及各种工业自动化控制系统中得到了广泛的应用。 2.2 CAN总线分布式测控网络的组建方法 多个CAN节点通过传输介质按一定的形式互连,就可以组成CAN通信网络。与RS-485总线类似,CAN总线只支持总线型网络拓扑结构,不支持环形或星型网络。CAN总线通信只用到两根导线CAN_H、CAN_L,对通信介质的要求较低,双绞线、同轴电缆或光纤均可,通常采用廉价的双绞线即可。由集中器节点组成的CAN总线分布式测控网络结构如图2所示。 图2 CAN总线分布式测控网络结构图 图2中,总线的两个末端均接有抑制信号反射的终端电阻RT,一般取RT=100~120Ω。在实际组网时,应根据现场情况决定图中的3个参数:节点分支长度D应小于0.3米;相邻节点的距离S和不加中继的可靠通信距离L取决于总线的通信速率,速率越高,其允许值越小。按照CAN国际标准ISO11898的建议,在总线位速率为1Mbps时,S和L的值应小于40m,但当总线位速率小于5Kbps时,L的允许值可达10Km。 3 主、从集中器之间的通信方式 在本电力远程监测管理系统中,主、从集中器之间是一种典型的分布式通信系统,以主从方式进行通信,即系统中必须且仅需一个主集中器,其余均为从集中器。所有通信皆由主集中器发起,从集中器之间不能、也无必要通信。 3.1 主、从集中器地址分配 CAN协议的报文标识符可以使不同的数据发往不同的节点,也可以使不同的节点同时收到相同的数据。若定义某CAN节点只接收以某个特定的标识符开始的数据,则可以近似地把该标识符作为此节点的“地址”。 电力远程监测管理系统中,主、从集中器作为CAN总线的节点都工作于增强模式(PeliCAN mode),以扩展帧双滤波方式传递报文。对于扩展帧而言,滤波器1由ACR0、ACR1、AMR0和AMR1构成,滤波器2由ACR2、ACR3、AMR2和AMR3组成,扩展帧格式的CAN信息帧的29位标识符中也只有高16位(ID28~ID13)参与了滤波。两个滤波器在过滤数据时是“或”的关系,即只要CAN信息帧通过其中任意一个滤波器的验收,就可以被接收。如图3所示即为扩展帧格式的双滤波器验收滤波流程图。 图3 扩展帧格式的双滤波器验收滤波流程 系统为每个CAN节点的滤波器1的验收码寄存器ACR定义了不同的数值,用以区分不同的集中器,即为集中器分配了地址,其中主集中器的地址为0001,这是区分主、从集中器的标志。有了这个CAN节点地址,分布式系统中的主集中器就可以和系统中任意一个从集中器交换数据,即进行点对点双向通信。所有从集中器的滤波器2的ACR值均为FFFFH,作为接收主集中器广播数据的地址。主、从集中器的地址分配如表1所示。 表1 主、从集中器的地址分配   由上可见,基于CAN总线的分布式通信系统中,主、从集中器之间实质上存在着两条信息通道,即所有CAN节点的滤波器1构成了点对点信息交换通道(点名通道),所有CAN节点的滤波器2构成了一点对多点的信息交换通道(广播通道)。其中点名通道是双向的,广播通道是单向的,即CAN信息帧由主集中器发出,所有从集中器进行接收。CAN总线分布式测控网络信息通道抽象示意图如图4所示。 图4 CAN总线信息通道抽象示意图 3.2 点名通信 进行点对点双向通信(点名)时,主集中器发送的信息帧高16位标识符即为从集中器的地址(点名地址)。系统所有从集中器的验收屏蔽码AMR全为0,即要求滤波器1和滤波器2进行全值滤波,只有当从集中器的滤波器1验收码ACR设定值与主集中器发送的点名地址完全相符时,该从集中器才可以接收数据。主集中器的验收屏蔽码AMR全为1,实现无条件滤波,可以接收所有从集中器的数据,这个特点是主从式通信系统中主机所应具备的特点。 点名通信由主集中器发起,通过总线送出信息帧后,所有从集中器均进行滤波,但只有符合点名地址的那个从集中器才能接收到命令和数据,由其CAN控制器SJA1000向CPU发出中断请求。从集中器的中断服务程序根据接收的命令或数据执行相应的操作,然后向主集中器发送返回信息。 3.3 广播通信 进行广播通信时(如整点对时、发布统一费率等),主集中器发送的信息帧高16位标识符是FFFFH,所有从集中器均可通过各自的滤波器2接收数据,从而实现全局广播通信。广播通信可以使同一CAN局域网内的所有从集中器同时接收主集中器的命令或数据,体现了通信的实时性和同步性。 4 结束语 基于CAN总线的电力远程监测管理系统利用CAN总线实现了位置相对集中的变压器台区的组网通信,大大减少了MODEM抄表所需的电话租借数目,大幅降低电话租借费用,取得了良好的经济效益。实际运行表明:CAN总线可以实现主、从集中器之间的可靠通信。因此,本系统所采用的CAN总线通信方式可推广到其它类似的分布式测控系统。

    时间:2012-02-15 关键词: 理系统 程监测 设计教程

  • 基于ARM和GPRS的远程监测终端设计

    摘要:针对分布比较分散,场所不固定,或是环境比较恶劣的监测现场,提出了一种通用的远程监测终端的设计方法。终端具有模块化的数据采集功能,并采用ARM9处理器和Linux操作系统,用Qt/Embedded编写终端应用程序,使其具有良好的人机交互界面,并对数据进行分析处理,采用GPRS(通用无线分组业务)无线通信技术将处理过的数据发往监测中心,存入数据库。实际实验证明,该终端数据处理速度快,精度高,实时性好,可以满足一般监测现场的要求。 关键词:远程监测;ARM9;GPRS;嵌入式Linux;Qt/Embedded     随着现代生产科技水平的发展,对监测技术的要求越来越高,形式趋于多样化。在无人值守的变电站、水文站、气象站等野外监测或是在交通运输等行业中,因分布比较分散、环境恶劣,地点不固定,不便于用传统方法实现集中控制和实时监测并且有线网络的架设受到种种限制。在这些场合采用基于GPRS的无线网络通信技术,具有无可比拟的优势。将嵌入式应用系统与无线通信技术结合在一起是未来嵌入式应用的必然趋势。GPRS(General Packet Radio Service),即通用无线分组业务。     GPRS技术应用于远程数据传输系统,具有以下几个特点:1)永远在线,接入速度快。分组交换接入时间少于1秒,可使远程数据传输的效率大大提高:2)采用数据流量的计费方式,大大降低了用户的使用费用;3)GPRS网络覆盖范围广,且支持TCP/IP协议,从而可实现与Intern et的无缝连接。 1 终端的整体结构设计     终端要完成3个任务,数据采集、数据处理和数据的无线传输。数据采集部分采用模块化设计思想将采集模块分为模拟量采集模块,数字量采集模块,开关量采集模块等,每个模块独立的实现对特定采集信号的整流、调理、隔离等处理再转换为数字量,各模块采用统一的结构,选用相同的单片机处理器。各模块采集的数据通过统一的SPI(serialperipleral interface)总线传输给ARM处理器。这样的结构使终端使用更灵活,应用范围更广泛。数据处理部分采用ARM处理器对所采集的数据的类型、长度、有效范围等进行处理,并通过液晶屏加触摸屏完成人机交互功能。然后将处理好的数据通过GPRS无线网络传输给上位机。终端的整体结构图如图1所示。 2 终端硬件设计     终端硬件主要由3部分组成。一是作为主处理器的ARM9处理器及其外围电路包括电源电路、复位电路、外扩存储器电路及用于人机互动的液晶屏、触摸屏连接电路等。二是各个模块的数据采集电路的设计,这里主要设计的是模拟量采集模块,以及各个数据采集模块与主处理器之间SPI连接方式。三是GPRS模块外围电路以及与主处理器的连接。端硬件设计示意图如图2所示。 2.1 终端主处理器     主处理器是系统的核心,要完成数据处理,存储,传输,人机界面显示等功能。结合工业现场的需求终端处理器采用以ARM9为内核的三星S3C2440处理器,它是一款基于ARM920T内核的16/32位RSIC结构的嵌入式微处理器,主频400 MHz,最高可达533 MHz,具有2片外接32 M的板载SDRAM,片内外资源丰富,扩展性强。系统存储扩展了2 MB的NorFlash用于存放bootloader系统引导程序,和64 MB的NandFlash。系统的人机交互平台采用一个7寸液晶显示频和一个触摸屏来完成。 2.2 数据采集部分硬件设计     数据采集模块可分为模拟量采集模块,数字量采集模块,开关量采集模块等,主要完成对底层数据的采集,这些模块的单片机处理器统一采用Cygnal公司的C8051F021单片机,它的MCU是高度集成的片上系统。在一个芯片内集成了两个多通道ADC子系统、电压基准、SPI总线接口、8个8位的通用数字I/O端口和64 kBFLASH程序存储器及与8051兼容的高速微控制器内核等,这些很好的满足了模块的设计要求。由于模块设计结构上的相似性,这里主要介绍模拟量采集模块部分。     工业现场采集的信号大部分是模拟量,如压力、温度、液位、流量等信号。这些信号经过现场仪表测量后一般统一输出为4~20 mA,0~5 V,0~10 V范围的电流电压信号。通过模拟量采集模块将这些模拟量转换为数字量。单片机的A/D准换的电压基准定为2.5 V,要将4~20 mA,0~5 V,0~10 V范围的电流电压信号统一为0~2.5 V以内的电压信号,才能进入单片机完成模拟量到数字量的转换。对于电流信号,在输入端接一个250 Ω的精密便转换为1~5 V的电压信号了,对于电压信号通过运算放大器按比例缩放到0~2.5 V范围内即可。转换电路如图3所示。 [!--empirenews.page--]     各个数据采集模块与主处理器通过SPI总线进行通信。SPI总线是Motorola公司提出的一种高速全双工串行通信总线,它容许CPU与各种外围接口器件以串行方式进行通信。SPI接口只有MISO(主入从出)、MOSI(主出从人)、SCLK(时钟)和CS(片选)4个信号组成,在芯片上只占用4条线,大大节省了芯片资源。主处理器与各采集模块的SPI通信方式为一主多从的方式,即ARM主处理器的作为主设备,各数据采集模块作为从设备,主设备驱动串行时钟发起通信。主设备使用片选信号CS指明与哪个模块采集模块传送数据。通信时,主设备的MISO为输入,MOSI为输出,从设备的MISO为输出,MOSI为输入,在主设备时钟的控制下,主设备与从设备的双向移位寄存器同时进行数据交换,完成一次数据的传输。主处理器与各模块的通信结构图如图4所示。 2.3 GPRS模块     GPRS模块选用华为GTM900C模块,它是一款三频段GSM/GPRS无线模块。模块接口简单、使用方便且功能强大。它支持标准的AT命令及增强AT命令。GTM900C的GPRS数据业务的最高速率可达85.6 kbit/GTM900C提供40脚的ZIF接口,主要有电源接口、UART接口(最大串口速率可达115200bit/s)、标准SIM卡接口和模拟语音接口。     本系统中,GTM900C主要是实现GPRS上网功能。该模块的主要特点如下:     1)单电源供电,供电范围为3.3~4.8 V.典型供电电压为4.2 V;     2)可工作于三频EGSM900和/GSM1800/GT800单频;最大发射功率EGSM900/GT800 Class(2W)和GSM1800 Classl(1W);     3)支持GSM标准AT命令、V.25 AT命令和华为扩展AT命令;     4)GPRS传输速率最高可达85.6 kbps,支持CS-1,CS-2,CS-3,CS-4 4种编码方式。内嵌了TCP/IP协议;支持多连接,提供ACK应答,提供大容量缓存。     GPRS模块与主处理器的连接很简单,由于两者是通过串口接口进行通信的,所以将两者用串口线连接即可。GPRS的网络功能都已集成在模块中,只需要在主处理器这一端将串口参数设置好,然后发送相应的AT指令对模块进行操作即可。 3 终端软件设计     终端软件设计包括两个任务,一是搭建开发环境,如Linux操作系统内核移植,编写设备驱动等,二是在开发环境准备好的基础上进行应用程序的编写,包括完成SPI总线数据输入输出功能,GPRS无线数据传输功能,和界面显示功能。 3.1 软件开发平台搭建     软件平台采用嵌入式Linux操作系统,嵌入式Linux操作系统是一个源代码公开的实时多任务操作系统,可应用于多种硬件平台,可根据需要定制内核,有良好的网络支持,Linux系统内核精简、高效并且稳定,能够充分发挥硬件的功能,它非常适合在嵌入式领域中应用。嵌入式Linux操作系统搭建的步骤为:在宿主机上建立交叉编译的环境;编译生成Linux的内核,用的内核是Linux-2.6.29;编译生成根文件 系统,用的根文件系统为yaffs;向目标机下载Bootloader的映像,用的Bootloader为Supervivi;烧写Linux内核和文件系统的映像;复位启动。为了使终端可以使用触摸屏,液晶屏和SPI总线,将编写的对应的驱动编译、添加到Linux内核中。系统使用的宿主机系统为在虚拟机下运行的RedHat9.0。     终端应用程序用Qt来编写,Qt是一个跨平台的C++图形用户界面应用程序框架。它具有优良的跨平台特性、面向对象、丰富的API支持等优点。Qt-Embedded是Qt的嵌入式版本,因此终端应用程序的开发使用Qt/E作为开发工具。Qt运行环境的搭建步骤为:首先在宿主机上分别建立Ot-x86编译环境和Qt-ARM编译调试环境,采用Qt4.5.0版本;其次,将宿主机生成的Lib下的库文件下载到目标板的某个目录下,并在目标板上设置好环境变量,这样在目标机上的Qt程序运行环境就建好了。在宿主机上交叉编译好的Ot/E程序就可以下载到目标机上运行了。 3.2 终端应用程序设计     监测终端需要采集监测仪表的现场测量数据,终端设计的数据采集模块分别对不同的现场数据进行采集并做相应的处理,数据采集模块与CPU之间通过SPI总线进行数据传输,对与采集数据需按上端通信协议、PPP、TCP/IP协议进行二次成帧;利用GPRS网络接入Internet网络,将处理后的数据信息通过GPRS无线网络上传至监控中心。     GPRS模块附着GPRS网络并与上位机建立TCP数传链路是通过向模块发送一串AT指令实现。拨号动作完成,并成功建立数传链路以后,GPRS模块在终端串行口和上位机之间变得透明。另外,终端的重要状态要能即时显示在LCD上。     综上分析,监控终端应用程序要完成的任务有:串口参数设置,GPRS网络连接,读取串口返回信息,SPI数据传输,GPRS数据传输,界面显示。由于任务不止一个,而且有的任务需要同时运行,所以采用多线程编程。     在Qt编程中主界面UI一般为主线程,子线程通过继承Qt中的QThread线程类来完成。这些任务和功能可以通过3个线程来实现。3个线程的作用分别为:1)主线程:负责界面显示,串口参数设置,GPRS网络连接,GPRS数据传输;2)SPI数据传输子线程:负责与数据采集模块通信,将采集数据存入缓冲区;3)串口数据读取子线程:CPU通过串口操作GPRS模块,GPRS模块的返回信息可以通过串口数据读取子线程随时读取。程序模块图如图5所示。 [!--empirenews.page--] 3.2.1 显示界面模块     界面显示模块:界面显示由两部分组成。一是实时显示各模块的采集数据及一定时间以内的历史数据数据;二是显示GPRS模块设置界面,通过这个界面设置串口参数、设置数据采集时间间隔、设置主机IP地址及端口号、发送AT指令、回显模块返回信息等。编写界面设计文件mainwindow.h和mainwindow.cpp,其中串口参数设置、网络连接和GPRS数据传输封装成相应的子函数,利用Qt的信号槽机制,当捕捉到 相应的信号便执行对应的函数。通过继承Qt中的QThread线程类来完成GPRS数据读取模块和SPI模块的功能。SPI模块接收底层数据采集模块的各种数据,显示到界面并编码通过GPRS通道传输到上位机,GPRS返回的一些重要信息业需显示到LCD界面上。 3.2.2 GPRS网络连接任务     GPRS网络连接任务主要完成通过GPRS网络建立与上位机的数据传输链路的过程。启动GTM900C后,首先,需对PPP连接所使用的物理串口进行初始化,包括确定用于PPP连接的串行端口号以及通信波特率。然后,直接使用AT指令,拨号到中国移动的GPRS节点服务器(GGSN)。使用以下几条灯指令使GTM900C进入数据通讯状态:     “AT+CGATY?”用于查询GTM900C是否已附着在中国移动的GPRS网络,GTM900C将返回当前状态;     “AT+CGATT=1”用于设置GTM900C附着于中国移动的GPRS网络,操作成功GTM900C将返回OK;     “A1,+CGDCONT=1,“IP”“CMNET””用于设置中国移动的GPRS节点服务器的名称和属性,操作成功则返回OK;     “AT%ETCPIP”用于实现PDP激活和TCP/IP的初始化,使模块进入TCP/IP功能,操作成功返回OK;     “AT%IOMODE=0.2,0”设置数据传输模式,操作成功返回OK;     “AT%IPOPEN=1,“TCP”,“115.24.116.19”,5000..1026”打开一条TCP/IP链接,选择TCP传输,115.24.116.19为上位机IP地址,5000为上位机接受程序端口号,成功与上位机连接返回CONNECT。另外模块还具有数据透传功能,数据透明传输功能将实现TCP/IP上直接数据传输,进入透传模式的AT指令是:“AT%TPS=1,1,3000,1024”,进入透传模式后模块将不会相应其它AT指令,直接通过串口写入数据便可实现与上位机之间的数据传输。以上使模块附着在GPRS网络的过程封装在gprsConnect()函数中。     PPP配置、认证通过以后,即应用程序就已经通过GTM900C成功进入了Internet网络。最后,通过变量GPRSOK=1指示GPRS拨号成功并建立数传状态。在run()程序中隔一段时间判断当前网络连接状态,若网络断开则变量GPRSOK=0,并调用gprsConnect()函数开始拨号任务重新建立数传链路。 3.2.3 SPI数据通信模块     SPI通信程序包括两部分,一是用于数据采集的单片机这边需要通过SPI发送现场数据,接收控制指令,二是ARM主控制器需要读取数据,发送控制指令。数据采集模块使用是带有SPI接口的C8051f020单片机,SPI的数据寄存器是SHODAT。单片机和主控制器的SPI通信参数设置要一致。     在主设备ARM这边,SPI驱动已经配置好,直接使用read(),write()等函数便可进行数据的读取与接收。在单片机这边采用中断的方式进行SPI数据的发送与接收。对于从设备C8051f021单片机来说,只有将片选线线接低电平才会启动数据传输,可利用这一点进行多字节数据传输,拉低一次便传输一个字节,这可用作与主设备之间的同步信号。主设备选一根I/O口线作为片选线,将其拉低,执行一次SPI读操作,再拉高,延时一定时间,这时从设备退出从模式,重新往SPIODAT里写新数据及其他一些处理,主设备再将片选线拉低,执行一次SPI读操作。这样便可进行多字节传输了。SPI主从设备通信流程图如图6所示。 3.3 终端性能测试     将编译好的界面应用程序下载到终端处理器中并运行,主线程为显示界面,随时可与用户进行信息,两个子线程为读SPI总线线程和串口读写线程,这3个线程同时并行运行。其中GPRS传输部分的界面如图7所示,通过这个显示界面设置串口、上位机IP地址、TCP端口和数据定时发送的时间间隔,发送文本框会显示SPI总线读取的数据值,接收文本框回显GPRS模块返回的信息。上位机用自己的PC机,通过软件soeket tool监听终端发送给上位机数据,实验证明终端界面应用程序工作良好,数据传输也很准确。 4 结论     系统的上位机接受界面可用VB编写,并建立数据库,方便分析、处理监测现场数据,这部分程序正在完善中。监测终端的数据采集部分采用模块化设计,可以灵活增减,终端软件可以根据不同现场用户自行设计计算公式处理数据,把终端设置好,在上位机通过GPRS网络便可实时监测现场。该检测终端结构灵活,实时性好,适用范围广,具有广泛的应用前景。

    时间:2012-02-21 关键词: GPRS ARM 端设计 程监测 设计教程

发布文章

技术子站

更多

项目外包

更多

推荐博客