基于CAN总线的嵌入式水位监测系统设计
2.1.2 CAN收发子程序
CAN协议是建立在ISO的开放系统互联模型的基础上的,取其中的3层:物理层、数据链路层和应用层。物理层和数据链路层的功能可由CAN接口芯片实现,而应用层的功能则要靠应用程序完成。CAN总线接口通信模块是接收和发送CAN总线数据。主要操作包括CAN控制器初始化和CAN总线上接收和发送数据的操作。
CAN收发子程序主要完成CAN控制器的初始化和CAN数据的接收、发送。CAN控制器的初始化主要是给相应的寄存器写入一定的数值以完成各种参数的设置,如波特率、位周期宽度、采样点位置等。
CAN控制器有3个独立的发送缓冲寄存器,发送时要判断缓冲空闲。本设计中,先判断第一主发送缓冲区,然后进行数据格式转换,启动发送数据。接收采用中断方式。报文发送、接收数据流程如图4所示。本文引用地址://m.amcfsurvey.com/article/151195.htm
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核心的多点水位监测的工厂、城市供水、隧道等场合。本系统可以实现水位信息采集的现场总线通信,使各节点连接在总线网络上,实时获取水位信息,方便数据库的管理和更新,可进行数据库的定点定时水位查询。
评论