针对封闭式引水隧道内多点水位信息的实时、准确的采集,提出基于CAN总线" title="CAN总线">CAN总线的嵌入式" title="嵌入式">嵌入式水位监测系统" title="监测系统">监测系统设计思想,集总线技术、单片机技术于一体,实现了对多点水位信息的采集、计算、储存、发送等处理功能。使用iCAN协议,使水位监测点可以对多点水位信息进行集中控制采集,可实时准确地掌握隧道内多点水位信息。
1 系统总体方案设计
1.1 系统基本结构
嵌入式水位监测系统由数据监测终端、上位机监测服务器和CAN总线网络组成,系统总体结构框图如图l所示。
系统采用分布式集中管理的结构,分为2层:1)第1层是数据采集终端层。数据采集终端通过水位传感器对水位信息进行采样,通过CAN总线接口与第2层进行通信;2)第2层是监测管理层。第1层通过CAN总线延长通信距离,再经过CAN适配卡与第2层的监测服务器相连。一台监测服务器可以管理多个数据采集终端。
在网络中的监测终端可以独立的对传感器进行数据采集、计算、储存等,监测服务器可以通过CAN总线和各个监测点之间进行实时通信,接收监测终端的水位信息向监测终端发出查询指令。通过iCAN协议实现监测节点的分散监测和集中管理。当系统需要增加监测节点时,可以直接将其挂在CAN网络上,对系统其他节点不会有任何影响。
1.2 监测终端硬件电路设计
监测终端的硬件结构框图如图2所示,主要包括微处理器、数据存储电路、键盘和显示电路以及CAN收发等电路。微处理器采用基于ARM7 TDMI核的32位RISC芯片LPC2368,其内置2路CAN控制器,通过外接CAN收发器可方便的进行CAN数据收发。传感器输出的信号经过滤波和调理转换为所需要的电信号。采用12位低功耗、串行输出模数转换器TLC2574采集电压信号,使监测终端能准确、稳定地采集电压信号。
1.2.1 器件选型
为提高系统的实时性和可靠性,监测终端选用可移植嵌入式操作系统的ARM7 TDMI内核的32位RISC芯片LPC2368。LPC2368是一款功能强大的超低功耗ARM7TDMIS内核的32位微控制器,最高支持72MHz工作频率,片内有Flash 512KB,ROM 56KB,集成10/100全双工Ethemet MAC,2个兼容CAN2.0A/2.OB的CAN控制器,带RMII接口,其性能稳定、功能强大,广泛应用于协议转换、通信、工业控制领域。应用LPC2368开发监测终端可以有效控制成本。工业网络需要强稳定性,但实验证明超过60%的总线带宽使用率就会造成冲突。1根AHB总线是完全不够的,而LPC2368具有双总线机制和DMA协处理机制。任何一根总线都可以通过总线桥与其余总线通信,消除了通信瓶颈。
1.2.2 CAN总线接口硬件设计
通过CAN总线通信接口可使各监测终端和监控计算机通信,实现监测终端的数据共享。CAN总线接口硬件电路如图3所示。
LPC2368内部集成有2个兼容CAN2.0/2.0B的CAN控制器,只需增加一个CAN总线收发器就能满足设计要求。CTM8251T是一款带隔离的通用CAN收发器,该器件内部集成了所需的CAN隔离及CAN收、发器,它可以将CAN控制器的逻辑电平转换为CAN总线的差分电平,将CAN总线差分电平转换成逻辑电平,具有DC 2 500 V的隔离功能和CAN总线过压保护功能,而且在某一节点掉电时不会影响总线。
各个监测终端间通过带屏蔽双绞线构成CAN总线网络,总线两端连接120 Ω的匹配电阻,用于提高系统的稳定性、增强系统的抗干扰能力。
1.2.3 嵌入式终端电源电路设计
基于ARM内核的微处理器的嵌入式系统性能在很大程度上取决于电源电路的稳定性和可靠性,因此设计稳定可靠的电源非常重要。LPC23 68有数字电源输入和模拟电源输入2种,分别是+3.3 V和-3.3 V,另外CAN收发器的供电电压为+5 V。系统电源采用LM2576系列稳压器,把外部直流电源稳压成+5 V电源,为CAN收发器提供电源。采用SPXlll7把+5 V电源稳压成2路+3.3 V电源,以提供LPC2368的数字和模拟电源,数字电源和模拟电源之间通过磁珠隔离。
2 系统软件设计
系统软件设计部分包括2方面:1)监测终端软件设计,主要是对传感器的数据采集和处理,完成与上位机之间的数据通信功能;2)上位机软件设计,主要包括CAN节点初始化、报文发送和报文接收。
2.1 监测终端软件设计
监测终端软件主要由启动代码、断处理、实时操作系统、设备驱动和应用程序组成。启动代码完成启动、初始化硬件、引导系统正常运行等工作。实时操作系统μC/OS-Ⅱ是系统运行的指挥中心,完成任务调度和资源分配等工作。设备驱动是操作系统上层应用软件和下层硬件的联系,本设计主要包括CAN控制器驱动、A/D采集驱动等。上层应用程序基于以上各个模块,完成用户要实现的各种功能,通常按功能分成多个模块。本设计中主要包括传感器数据采集模块、参数设置模块、CAN通信模块。由表1所列的任务完成以上模块功能。
2.1.1 定时数据采集
定时数据采集模块负责定时采集传感器的信号。A/D转换由定时器产生周期中断标志触发,当采样完1个周期后,由中断服务程序发给Task_AD发送信号量,Task_AD收到信号量后,将数据进行相应的处理。
2.1.2 CAN收发子程序
CAN协议是建立在ISO的开放系统互联模型的基础上的,取其中的3层:物理层、数据链路层和应用层。物理层和数据链路层的功能可由CAN接口芯片实现,而应用层的功能则要靠应用程序完成。CAN总线接口通信模块是接收和发送CAN总线数据。主要操作包括CAN控制器初始化和CAN总线上接收和发送数据的操作。
CAN收发子程序主要完成CAN控制器的初始化和CAN数据的接收、发送。CAN控制器的初始化主要是给相应的寄存器写入一定的数值以完成各种参数的设置,如波特率、位周期宽度、采样点位置等。
CAN控制器有3个独立的发送缓冲寄存器,发送时要判断缓冲空闲。本设计中,先判断第一主发送缓冲区,然后进行数据格式转换,启动发送数据。接收采用中断方式。报文发送、接收数据流程如图4所示。
2.1.3 iCAN协议报文处理
iCAN协议为CAN总线的应用层协议。该协议是基于CAN的内部通信协议,小巧、通信效率高,对硬件资源要求低,适用于小型系统。系统中的设备统称为iCAN节点。iCAN协议定义的通信方式是“面向节点,基于连接”的通信方式。“面向节点”是指源节点地址及目的节点地址均已给定,即对于任何一个报文参与通信的双方是确定的。“基于连接”是指在网络中任何一个参与通信的从站设备都必须和主站设备之间建立一个独立的通信连接。这样也为对任何一个设备的通信进行监控提供可能。
iCAN协议使用了扩展帧格式CAN报文,对CAN报文的29位标识符和报文数据都做了详细规定。报文标识符制定了数据通信中的源节点MACID和目标节点MACID,并指示了报文的功能以及所要访问的资源。报文标识符被分为5个部分:SrcMACID(源节点编号)、De2stMACID(目标节点编号)、ACK位、FUNC ID(功能码)、Source ID(资源节点编号)。
监测终端要收发的数据必须符合iCAN协议报文的格式,先要把CAN的数据转换成符合iCAN协议格式的报文,再通过CAN的首发子程序接收和发送。
2.2 上位机管理软件设计
完成上述设计后,在计算机端还需要一套水位监测系统管理软件,以实现网络数据采集、与数据库的连接和数据实时查询等功能。上位机软件流程如图5所示。
监测终端采集传感器信号,实时获得水位数据并通过ZOPC_SERVER服务器传输到客户端KingVIEW,同时KingVIEW作为服务器提供数据给SQL数据库。在KingVIEW的图形化界面上既可以显示实时水位数据,又可以查看历史水位数据。
3 结束语
实验结果表明:该系统可通过1根双绞线在通信速率为9 600 b/s的情况下,可在6 km范围内实时监测63个节点的水位信息。此嵌入式水位监测系统可应用在基于ARM7核心的多点水位监测的工厂、城市供水、隧道等场合。本系统可以实现水位信息采集的现场总线通信,使各节点连接在总线网络上,实时获取水位信息,方便数据库的管理和更新,可进行数据库的定点定时水位查询。