1、 南 京 理 工 大 学毕业设计说明书(论文)作 者:学 号:学院(系):自动化学院专 业:电气工程及其自动化题 目:基于CAN的温度检测系统设计-适配卡软件及PC监控界面设计毕业设计说明书(论文)中文摘要本论文介绍了基于CAN总线的温度监控系统,主要讲解家庭火灾监控系统的CAN适配卡设计和PC机监控软件的软件。通用PC机没有与CAN总线的接口电路,所以需要适配卡来沟通现场监控节点和PC机。PC机监控软件负责对现场数据显示、处理,是人机交互的平台。CAN适配卡软件采用语言编写,它作用是协调CAN总线和RS232的串口通信、数据缓存、控制数据发送或接收等,具有一定的健壮性和通用性。PC监控软件采
2、用Visual Basic 6.0开发,支持用户注册、火灾日志查询、主动查询现场监控节点、设置现场节点携带的传感器参数、数据异常时触发报警程序等。关键词 CAN网络通信 CAN适配卡硬件及软件 PC机监控界面 RS232通信毕业设计说明书(论文)外文摘要Title Design of Adapter Card & PC Monitoring Softwares for a Temperature Detection System Based on CAN AbstractThis article recommends a tiny temperature detection system ba
3、sed on CAN bus and RS232 serial communication. It emphasizes the design of an adapter card software for CAN bus & a PC monitoring interface. An adapter card is designed to connect the CAN bus and the computer for there are no CAN bus interface circuits built in commonly used computers. PC monitoring
4、 software provides an interface between the system and certificated users.The adapter cards software is programmed by C and aims at coordinating the communication between CAN bus and RS232.It can store data and control data transmition and have certain robustness and universal. The PC monitoring sof
5、tware is developed by Visual Basic 6.0 and support new users register, fire log checking, alarm triggered when abnormal data detected, the configuring of detectors parameters and so on.Keywords CAN Net Communication PC Monitoring InterfaceCAN Adapter Card Hardware& Softwares Design 本科毕业设计说明书(论文) 第 I
6、I 页 共页目 次1 引言111 课题背景112 研究现状113 系统设计构想22 准备知识421 现场总线422 CAN总线及其通信协议423 RS232通信524 VB软件625 现场传感器73 监控界面设计931 主要控件的属性及设置932 功能窗口设计1133 主要函数介绍174 CAN适配卡设计1941 CAN适配卡硬件1942 家庭火灾监控系统网络参数配置2143 现场节点通信流程2344 网络通信协议设定2445 CAN适配卡程序设计25结 论35致 谢37参 考 文 献38附录A CAN适配卡部分程序40附录B PC监控界面部分程序46附录C CAN适配卡程序设计中使用的寄存器
7、52附录D CAN适配卡原理图57 本科毕业设计说明书(论文) 第 1 页 共 32 页 本科毕业设计说明书(论文) 第 58 页 共 57 页1 引言11 课题背景CAN最初出现在80年代末的汽车工业中。由德国Bosch公司最先提出。提出CAN总线的最初动机就是为了解决现代汽车中庞大的电子控制装置之间的通讯,减少不断增加的信号线。1993年,CAN已成为国际标准ISO11898(高速应用)和ISOll519(低速应用) 甘永梅等.现场总线技术及其应用M,北京:机械工业出版社,2008:14-20.。选择基于CAN总线家庭火灾报警系统作为毕业设计,让我们掌握CAN总线原理与应用技术大有裨益。基
8、于CAN的温度监控是很成熟的技术,业界有公司开发出实际的系统,应用在粮仓、船舶、地铁等。火灾监控系统中,各个检测点采集数据后,通过CAN总线传输给PC机的适配卡,适配卡再通过RS232串行线传输给控制室的计算机,构成一个分布式监控系统分散完成各处监控工作,对监控结果集中管理的架构。PC机使用Visual Basic(以下简称VB)进行串口通信编程,并使用VB作监控界面的设计,CAN适配卡上的单片机使用C语言进行编程文方,刘佳,邱海燕.基于CAN总线的智能大厦火灾报警系统J,大众科技,2009,7:5758.、吴恒,夏立.基于CAN总线的船舶火灾报警系统的设计J,青岛大学学报,2004,17(1
9、):67-68.。在现代的生产和生活中对温度进行监测有十分重要的意义。这次毕业设计将CAN总线技术与常见的传感器技术结合起来,实现一个基于CAN总线的智能化温度监测系统。该系统的典型应用就是家庭火灾监控系统。本论文叙述家庭火灾监控系统中CAN适配卡软件和PC机监控界面的设计过程和方法。家庭火灾监控系统成熟后,可以应用于居民住宅小区,学校学生公寓等区域等,具有很广的应用范围。它可以将火灾控制在初期,有效预防火灾蔓延,减少火灾带来的损失,保障人们生命财产。12 研究现状这些年CAN总线在在国内得到广泛的推广。它主要被应用于对抗干扰能力和实时通信要求较高,单次通信量小,通信距离在3-5km的一些场合
10、中。在好多领域,CAN逐渐替代传统的RS-485总线。CAN总线在各个领域的广泛应用,尤其是在集散控制系统中的使用,使得开发出CAN控制器和PC机的接口卡成为必须因为现行的通用PC没有CAN控制器单元。在诸多的基于CAN总线的转接卡中,广州周立功单片机发展有限公司开发的PCI-5121智能CAN接口卡,有很高的数据吞吐量,适合用于有大量数据传输的CAN_BUS场合,可以最大限度减轻PC机负担,对PC机的硬件、软件要求并不严格饶云涛,邹继军编.现场总线CAN原理与应用技术M,北京航空航天大学出版社.2003:332.。武汉吉阳光电科技有限公司开发的GY8507 USB-CAN总线适配器,是带有U
11、SB2.0接口和1路CAN接口的CAN总线适配器,可进行双向传送。PC可以通过USB接口连接一个标准CAN网络,适配器应用于构建现场总线测试实验室、工业控制、智能楼宇、汽车电子等领域中,进行数据处理、数据采集、数据通讯赵海生,胥效文.基于CAN的多通道数据采集系统的设计J,测控技术2012(2):37-41.。在国外,CAN的研究和应用也很成熟。成熟的CANOpen协议占领了欧洲的汽车生产领域,而PeliCAN应用层协议在美国和亚太的机械控制方面独占鳌头。例如,CT断层扫描仪中有各种复杂的功能单元,如X光发生器、X光接收器、扫描控制单元、旋转控制单元等等,CAN总线技术,为断层扫描仪的数据通信
12、提供了较好的解决方案。Siemens公司的CT断层扫描仪已经采用了CAN总线技术黄欢,吴建平,李兵兵等.基于CAN总线的核医疗设备测控系统设计J.核电子学与探测技术.2009(2):47.。在界面设计领域,也有很多成熟的软件。比较常见的是VC、VB和一些组态软件。如果采用VC开发通信程序,语言简练,功能强大,易于移植。但是用VC开发出完善的界面,需要一定的专业知识。VB在界面设计中的简单直观的特点,弥补了作为非计算机专业同学的不足,可以让开发人员把主要精力集中在通信控制和数据处理上。另外,现在的组态软件比较成熟,例如Intouch、组态王、CMS组态软件等。他们在工业控制领域中,是比较流行的界
13、面开发软件。这里,笔者自学了VB,采用VB开发出一款简单、容易使用的界面监控软件。13 系统设计构想家庭火灾报警系统是CAN网络通信的一个简单应用。家庭火灾报警系统的设计,非常适合采用CAN总线。因为火灾监控系统对实时性和抗干扰能力要求较高,其次,单次通信量比较小,适合CAN总线的短帧结构 王娜,夏国荣.智能小区火灾报警系统的设计J,微计算机信息,2005,21(2):74-75.。家庭火灾监控系统主要功能有:现场节点温度烟雾采集、火灾信息记录、异常数据自动报警、现场参数设置。在现场检测的两块电路板上,一块带有烟雾传感器和温度传感器,另一块带有温度传感器。整个系统是分布式监控系统,由监控计算机
14、、CAN适配卡、智能节点(n=2)、CAN网络组成,系统结构如图1-1。图 1-1 系统结构图放在现场的智能检测节点,采集到数据后(烟雾传感器输出的电压值、温度传感器输出的电压值)将数据打包到消息对象的数据帧里,然后C8051F040的CAN控制器监测总线状态,当总线空闲时,开始发送报文。CAN适配卡从CAN总线上接收数据,通过RS232数据线传输给上位机。上位机的监控程序接收到传输来的数据,处理后显示。当现场数据异常时,监控程序报警模块激活,进行报警。此外,还可以通过PC机来设置现场节点的一些参数。2 准备知识21 现场总线现场总线较为公认的定义是“从控制室连接到现场设备的双向串行数字通信总
15、线”。现场总线的本质意义是信息技术对自动化系统底层的现场设备进行改造 斯可克,黄德敏,张云贵.现场总线应用M,中国电力出版社,2006.3-10.。常用的现场总线有:现场基金会总线、HART通信、Profibus现场总线、CAN现场总线等。其中CAN是多主对等系统,支持竞争,是计算机、网络技术在现代控制技术领域的应用和发展。22 CAN总线及其通信协议CAN(Controller Area Network)总线,又称控制器局域网,属于现场总线的范畴,是在现代汽车技术中领先的一种多主机局部网络互联方案。由于其卓越的性能、极高的可靠性、独特灵活的设计和低廉的价格,已广泛应用于工业现场控制、智能大厦
16、、小区安防、交通工具、医疗仪器、环境监控等众多领域 罗慧琼,刘滏.CAN总线综述J,福建电脑,2006,4:26-28.。与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。CAN控制器工作于多主方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符),采用无损结构的逐位仲裁的方式向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据刘太明,赵芙生.基于CAN总线的高校实验室火灾报警系统J,南京师范大学学报,2005,5(2):18-19.。这里着重介绍下CAN的位仲裁机制和CAN报文格式。CAN总线以报文为
17、单位进行数据传送。报文的优先级结合在11位标识符中。具有最低二进制数的标识符有最高的优先级。这种优先级一旦在系统设计时被确立后就不能再被更改。总线读取中的冲突可通过位仲裁解决。这种非破坏性位仲裁方法的优点在于,在网络最终确定哪一个站的报文被传送以前,报文的起始部分已经在网络上传送了。所有未获得总线读取权的站都成为具有最高优先权报文的接收站,并且不会在总线再次空闲前发送报文杜尚峰,曹晓钟,徐津.CAN总线测控技术及其应用M,北京:电子工业出版社,2007.1:11-20.。在总线中传送的报文,每帧由7部分组成。CAN协议支持两种报文格式,其唯一的不同是标识符ID的长度不同,标准格式为l1位,见图
18、2-1,扩展格式为29位。在标准格式中,报文的起始位称为帧起始(SOF)。然后是由11位标识符和远程发送请求位(RTR)组成的仲裁场。RTR位标明是数据帧还是请求帧,在请求帧中没有数据字节。控制场包括标识符扩展位(ODE),指出是标准格式还是扩展格式。它还包括一个保留位(r0),为将来扩展使用。它的最后四个字节用来指明数据场中数据的长度(DLC)。数据场范围为08个字节,其后有一个检测数据错误的循环冗余检查(CRC)。应答场(ACK)包括应答位和应答分隔符。发送站发送的这两位均为隐性电平(逻辑l)。这时正确接收报文的接收站发送主控电平(逻辑0)覆盖它。报文的尾部由帧结束标出。在相邻的两条报文间
19、有一很短的间隔位。如果这时没有站点进行总线存取,总线将处于空闲状态。12位仲裁场11位 ID6位控制场DLC0-64位数据场15位CRC场2位ACK场7位帧结束图2-1 标准格式示意图23 RS232通信串行通信是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度,只需要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。串行通信又分为同步通信和异步通信。同步通信是连续串行传送数据的通信方式,比特块以稳定的比特流传输,一次通信传送若干个数据字符。字符代码之间没有起始位或是停止位。但是同步通信容易引起时钟漂移,建立起来的同步时钟信号
20、,在长距离传输中容易受到干扰李长林.Visual Basic 串口通信技术与典型实例M,清华大学出版社.2006:1-2.。异步通信是一种很常用的通信方式。发送端发送字符时,所发送的字符之间的时隙可以是任意的,可以在任意时刻开始发送字符,异步通信在有限信道中传输效率高,缺点是设备复杂、信道利用率较低。在本毕业设计中,RS232的连接采用最简单方式,如图2-2所示,接收数据针脚与发送数据针脚相连,彼此交叉,信号地对应相接陈立元,范逸之. Visual Basic 2005与自动化系统监控M,北京:清华大学出版社2008:2-5.。图2-2 RS-232连接示意图串行通信接口标准经过使用和发展,目
21、前有RS-232、RS-422、RS-485等标准,它们只对接口的电气特性做出规定,而不涉及接插件、电缆或协议。RS-232的引脚介绍如表2-1:表 2-1 RS-232引脚方向及其意义针脚号缩写描述2RXD接收数据3TXD发送数据5GND信号地RS-232串口的电气特性如下:1. RS-232串口通信最远距离是50英尺。2. RS232可做到双向传输,全双工通讯,最高传输速率20kbps。3. RS-232C上传送的数字量采用负逻辑,且与地对称。逻辑1:-3V-15V,逻辑0:+3V+15V。所以与单片机连接时需要加入电平转换芯片,例如MAX232。RS-232串口通信参数如下:1. 数据传
22、输速度:RS-232-C标准规定的数据传输速率为每秒50、75、100、150、300、600、1200、2400、4800、9600、19200波特。2. 数据传输单位:数据位的长度标准的值是5、7和8位。3. 校验位的检查:奇偶校验位在串口通信中是一种简单的检错方式。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶数或者奇数个逻辑高位。4. 起始位和停止位:起始位是用一个逻辑高电平开始表示的。停止位是表示单个包的最后一位,典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因
23、此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。数据总是从低位向高位一位一位的传输。在设计中,本人把串口数值默认为:串口选择COM1,波特率9600,无校验、8位数据位、停止位1位。程序中,串口支持选择范围是COM1-COM2,波特率支持所有标准规定的数据传输速率,数据长度从到8位,包括1、1.5、2位停止位。24 VB软件Visual Basic是Windows环境下可视化编程语言开发系统,以其所见即所得的可视化界面设计风格等特点,已广泛地应用于各个领域。VB软件设计的中心思想就是要便于程序员使用,无论是新手或者专家。VB使用了可以简单建立应用程序的GUI系统图形用户界面,
24、它是软件直接与用户交互的接口,有良好的用户体验,简洁直观,操作简单等特点章广志.一种轻量GU系统的设计与实现J,微计算机信息,2009,17.;同时VB又可以开发相当复杂的程序。VB的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组件的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序 谭丽芳. 基于VB60的仿真测试系统设计与实现J,电脑编程技巧与维护,2012(2):10-12.。VB程序有两种工作模式主动模式及事件驱动模式,主动模式与传统的DOS程序很像,程序载入系统后就会一直执行,直到结束为止,事件驱动模式则会在程
25、序载入系统后,先暂时停止执行,直到事件发生时,才驱动对应的事件过程而执行某段程序,执行此段程序之后,又会暂停执行,等待下一次事件的发生徐斌,姚缨英,刘广.基于VB的水轮机温度场分析可视化界面设计J,机电工程,2011,28(11):1359-1360.。在这里,本人编写的界面采用VB的主动模式。程序装入系统中,就一直执行,MSComm控件,Timer1控件等一系列控件的事件,构成程序的任务。25 现场的传感器在整个系统中,使用的传感器有DS18B20实时温度传感器和MQ-2可燃气体半导体气敏元件。CAN适配卡和PC机监控软件的一些数据处理就是依据这些传感器的特性编程的。DS18B20的转换精度
26、默认为12位,分辨率是0.0625,转换时间默认为750ms。测温范围是-55+125,固有测温分辨率0.5。DS18B20的内部有64位的ROM单元和9字节的暂存器单元。9字节的暂存器中重要的几位如表2-2所示。表2-2 DS18B209字节的暂存器说明字节数说明BYTE0温度LSB(50h)BYTE1温度MSB(05h)BYTE2TH用户字节1BYTE3TL用户字节2BYTE4配置寄存器字节01是转换好的温度,字节23是用户用来设置最高报警和最低报警值,在后面的设计中,PC机监控软件向二号现场发送温度配置,就是这个设置这两字节。字节4是用来配置转换精度,912位。DS18B20是数字传感器
27、,直接将数字量给MCU,输出电压值与实际温度对应关系是:(2.1)DS18B20数字温度传感器体积小,使用方便,封装形式多样,适合于数字测温和控制领域赵海兰,赵祥伟. 智能温度传感器DS18B20的原理与应用J,现代电子技术,2003,26(14).。MQ-2气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。MQ-2气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。MQ-2是常用的家庭气体泄漏
28、报警器,它在较宽的浓度范围内对可燃气体有良好的灵敏度,对液化气、丙烷、氢气的灵敏度较高,长寿命、低成本深圳市翰群科技有限公司.MQ-2数据手册.http:/www.contintech.corn/camping.asp?id=57&offset=9.2004年.。图2-3 传感器温度、湿度特性曲线。图2-3中纵坐标是传感器的电阻比(Rs/Ro)。Rs表示在含1000ppm丙烷、不同温/湿度下传感器的电阻值。Ro表示在含1000ppm丙烷、20/65%RH环境条件下传感器的电阻值。程序中,由于烟雾传感器的温室特性曲线的非线性,需要实际测量才能编程计算,所以就暂时显示其传输来的采样电压值。3 监控
29、界面设计监控界面是人机交互的平台,它支持串口通信、对现场的数据的处理和显示、用户信息的记录、异常情况报警等。31 主要控件的属性及设置在VB界面设计中,本人用到的主要控件有MSComm控件和Timer控件,其属性简单介绍如下。3.1.1 MSComm控件的属性VB 提供了串行端口控制 Mscomm 来为应用程序提供串行通讯。该控件屏蔽了通信过程中的底层操作,程序员可以设置、监视 Mscomm 控件的属性和事件,结合 Timer 控件即可完成对串行口的初始化和数据的输入输出工作。在串口通讯过程中,当发送数据、收到数据或产生传输错误时,触发MSComm控件的OnComm事件,然后可以通过判断 Co
30、mmEvent属性值获得事件类型,再根据事件类型进行相应数据处理。 Mscomm 控件的主要属性如下李玉林编著.Visual Basic毕业设计指南与项目实践M,北京:科学出版社,2008:45-51.:1. Commport设置并返回通讯端口号。端口号可以设置为116的任何数。2. Setting设置并返回波特率、奇偶校验、数据位、停止位。格式为Mscomm.Setting=String。String是一个包含四部分的字符串:第一部分为波特率;第二部分为奇偶校验,N表示不校验,M表示符号校验,E表示偶校验,O表示奇校验,S表示空格校验;第三部分为数据位数,其可选值为4,5,6,7,8;第四部
31、分为停止位位数,其可选值为1,1.5,2。Setting属性的缺省值为“9600,N,8,1”。3. Portopen设置并返回通讯端口的状态,也可以打开和关闭端口。4. Input从接收缓冲区返回和删除字符。该属性在运行时为只读。5. InputLen设置并返回每次Input属性从接收缓冲区中读取的字符数。InputLen属性的缺省值为0。InputLen为0时,Input将读取接收缓冲区的全部字符。6. Output向传送缓冲区写数据。要传送的数据可是文本数据或二进制数据。7. CommEvent返回最近的通讯事件或错误。只要有通讯错误或事件发生错误时就会产生Oncomm事件。CommEv
32、ent属性中存有该错误或事件的数值代码。图3-1 MSComm控件程序流程图在本人的毕业设计中,MSComm的CommEvent属性编程是重点,它是串口数据接收、数据发送的函数 章立民研究室著.Visual Basic 2005文件IO与数据存取秘诀M,机械工业出版社,2007:31-35.。其程序流程图如图3-1。3.1.2 Timer控件的属性Timer控件是VB中的定时器,有enabled和interval两个重要属性。1. Timer控件的Enabled属性决定该控件是否对时间的推移响应。将Enabled设置为“False”会关闭Timer控件,设置为“True”则打开Timer控件。
33、2. Interval是Timer控件计时的初值。当Timer控件置为有效时,倒计时总是从其Interval属性设置值开始。Timer控件的Enabled属性设置为“True”时,VB将在Interval时间到后自动访问Timer1_Timer过程。图3-2 定时器1程序流程图在本人的毕业设计中,定时器的主要参数和功能为:定时器1的interval属性设定值为100,即每100毫秒定时器计时到,触发一次Private Sub Timer1_Timer()函数。Timer函数的程序流程图如图3-2。32 功能窗口设计要设计出一个优秀的用户界面,设计人员得从用户角度出发,以方便用户的使用、简化操作
34、、满足系统要求为目标设计程序。界面设计的原则是:各个窗口的调用顺序合理;窗口上的控件的布局规范,属于同一模块的控件要集中放置或放置在同一个框架控件里;同一类型的控件大小一致排列整齐;合理利用窗口空间,保持界面的简洁美观王栋.Visual Basic程序设计实用教程(第三版)M,北京:清华大学出版社,2007:45-50。3.2.1 公共模块公共模块是VB中的一个程序块,主要定义了窗口设计中使用的变量和公共函数:1. 工程中使用的变量定义定义了工程中使用的变量、标识符、用于接收和发送数据的数组、以及一些起控制作用的变量。2. 对MSComm控件设置的更新函数Public Sub COM_seti
35、ngs_update(),函数的作用是,在进行接收数据的时候,让串口参数设置控件失去效,保护通信正常进行。3. 串口状态更新函数Public Sub Status_update(),对串口信息更新。4. Frmmain窗体的加载设置Public Sub FrmMain_init(),对Frmmain窗口初始化,对相关参数初始化。5. 串口数据接收函数Public Sub Receive_deal(),接收串口的数据并处理。3.2.2 登录窗口设计登录窗口是用户使用该软件的第一个界面。登录窗口为授权用户提供信息安全保障,避免非用户人员对火灾监控系统设置的修改。窗口界面如图3-3所示。图3-3 系
36、统登录程序图登录窗口主要控件的属性和作用如表3-1所示:表 3-1 主要控件属性和作用控件类型名 称属性设置作 用FormFrmloginCaption=系统登录用户登录CommandCommandCommand1Caption=确定登录Command1Caption=取消退出登录登录窗口的后台程序设计,主要是对“确定”按钮的编程,程序流程如图3-4:图3-4 系统登录程序流程图3.2.3 用户注册窗口用户注册窗口,是在用户登录主监控窗口后,才可以调用的。它提供新用户信息的注册和保存。设计的界面如图3-5:图3-5 系统登录程序图其主要控件的属性和作用如表3-2所示:表 3-2 主要控件的属性
37、和作用控件类型名 称属性设置作 用FormFrmloginCaption=用户注册新用户注册CommandCommandCommand1Caption=确定确定注册Command2Caption=取消取消注册用户注册窗口的主要后台程序是“确定”按钮事件,其程序流程图如图3-6:图3-6 用户注册程序流程图3.2.3 现场参数设置窗口现场烟雾传感器、温度传感器的某些参数在程序下载到单片机后,如果需要在修改,就得通过PC机的现场参数窗口来设置。用户在文本框中输入想要设定的值,按“确定”按钮,PC机调用MSComm的Output函数,将设定值发送给CAN适配卡,CAN适配卡再将数据打包,调用消息对象
38、发送给现场。窗口如图3-7。图3-7 现场参数设置窗口发送的数据格式如表3-3:表 3-3 PC机向CAN适配卡发送数据格式字节数1、2字节3、4字节5、6字节7、8字节9字节一号现场烟雾报警值设定烟雾预警值设定温度报警值设定温度预警值设定0X01二号现场最高和最低报警值的设定值保留保留保留0X02程序简单,不再赘述,可参看附录B。3.2.4 火灾监控主窗口火灾监控窗口包含主窗口与若干辅助窗口,各个窗口的调用关系如图3-8:图3-8 主窗口与各个窗口的联系火灾监控主窗口是整个系统最主要的界面,主窗口视图如图3-9,它有以下功能 李江全,张丽,岑红蕾编著.Visual Basic串口通信与测控应
39、用技术实战详解M,人民邮电出版社,2007:130-145.:1. 接收CAN适配卡电路传输来的数据,处理后判断、显示。2. 如果现场数据异常,报警并使用日志记录。3. 通过主动查询,向现场检测电路发送命令,读取对应现场检测电路处的状态。4. 支持用户注册、火灾日志浏览、现场传感器资料查看等功能。5. 对现场传感器的某些参数进行设置:如一号现场的烟雾预警、报警值,温度预警、报警值;二号现场的温度最高报警和最低报警值。图3-9 主窗口视图主窗口的菜单是实现窗口之间相互调用的渠道。各个菜单及其作用如表3-4:表 3-4 菜单编辑器中的控件属性和作用控件类型名 称属性设置作 用MenuMnuRegi
40、stCaption=用户注册用户注册MnuDiaryCaption=火灾日志查看火灾日志MnuQuitCaption=退出系统退出系统MnuSensorCaption=传感器资料查看传感器资料MnuNumCaption=现场编号现场编号介绍MnuSoftCaption=关于软件软件介绍主窗口中主要包含四个框架:端口设置框架、现场循环监视框架、报警框架、现场查询框架,分别介绍如下:端口设置框架的作用是:设置端口参数,如COM口选择,波特率设置等。现场循环监视框架的作用是:现场检测电路主动传回的数据,经处理过后,显示出来。被检测点使用:“一号节点”、“二号节点”显示,在实际的应用中,可以用具体信息
41、代替。温度用摄氏温度计量。烟雾状况分为:正常、预警、报警,三个分类。现场状态用:正常、预警、报警、现场人员手动报警(火灾现场的人员发现火灾,手动触发报警按钮)四个状态简单分类。报警框架的作用是:现场传回来的数据有异常,达到报警级别,即现场有火灾发生,则报警模块使能,并标出发生火灾的时间、地点和现场的温度。与此同时,右边的圆形图形交替变成红色和黄色,另外还有报警声音发出,提醒监视人员注意。当点击确认火灾按钮后,警报解除。现场查询框架作用:用户在左侧的下拉列表框中选择要查询的现场号,点击“查询”按钮,PC机向适配卡发送一帧数据,告诉CAN适配卡PC机想要查询某号现场采集的信息。CAN适配卡收到数据
42、后,调用远程帧发送给对应的现场,让现场返回其采集信息。这个模块的设想是出于现场节点数目较多的情况下,方便系统监视人员主动查看。该模块PC机向现场发送9个字节,定义如表3-5:表 3-5 PC机发送数据格式字节数1、2字节3、4字节5、6字节7、8字节9字节意义0XF0XF0XF0XF标识设定值为0XF的字节,是没有含义的。这样规定数据格式主要是考虑到PC机与适配卡所有通信格式统一,统一采用9个字节。标识字节,指示PC机对几号现场发送数据或是PC机向CAN适配卡发送控制命令:标识字节为0XF1,PC机向一号现场发送数据。标识字节为0XF2,PC机向二号现场发送数据。标识字节为0XFF,PC机向C
43、AN适配卡发送,告诉适配卡PC机串口溢出。CAN适配卡接收到这个数据帧后,对数据分析,调用对应的消息对象发送函数发给现场节点。33 主要函数介绍Public Sub Receive_deal()函数的作用是接收和处理串口的数据的函数。CAN适配卡发送来的数据是8个字节,其分配如表3-6:表 3-6 数据块字节定义说明字节数1、2字节3、4字节5、6字节7、8字节意义现场编号温度采样电压值烟雾采样电压值现场报警状态说明:现场报警状况有:“0”表示“现场正常”,“1”表示“现场预警”“2”表示“现场报警”,“3”表示“手动触发报警”。这就涉及到对传输来的数据的分离和转换。设A 、B是一个char型
44、变量,在VB里,分配一字节、8位变量空间,C是一个整形变量,分配两个字节、16位变量空间。用A做高8位,B做低8位,组成16位的新的数据C,可用公式3.1: (3.1)程序段中的体现如下:tem2 = InBuf(2) * 2 8 + InBuf(3)传送来的温度电压采样值还需要变化成摄氏温度值显示。现场节点的单片机的采样电压值与温度传感器输出电压值有如式3.2的对应关系:(3.2)跟据第2章第5节的传感器介绍,温度传感器输出电压值与实际温度有如公式3.3对应关系:(3.3)所以实际温度和传输来的AD值:Temp = (AD* 3.3 / 4096 - 0.776) / 0.00286(3.4
45、)火灾处理函数Public Sub Fire(),是对现场异常数据的处理函数。该函数首先激活警报模块,然后在警报模块中显示火灾时间、地点、现场温度,之后再进行声音报警和日志记录。在整个上位机程序设计中, PC机向CAN适配卡发送的数据格式有几个类型,先汇总如表3-7:表 3-7 PC机向CAN适配卡发送数据格式第X字节数1、23、45、67、89注释主动查询现场0XF0XF0XF0XF0XF1查询一号现场信息主动查询现场0XF0XF0XF0XF0XF2查询二号现场信息MSComm控件comEventRxOver事件0XF0XF0XF0XF0XFFPC机串口溢出现场参数设置烟雾预警烟雾报警温度预警温度报警0X01设置一号现场参数现场参数设置温度-0X02设置二号现场参数4 CAN适配卡设计PC机在监控系统中的作用和优点不言而喻,而通用的PC机没有直接与CAN总线的接口,但是PC机与外设接口方式的灵活性和多