基于CAN总线的分布式车间温湿度检测系统

发布者:tetsika最新更新时间:2013-05-15 来源: 电子设计工程 关键字:CAN总线  PIC18225K80  温湿度检测 手机看文章 扫描二维码
随时随地手机看文章
    许多行业如纺织、卷烟、化工、食品加工等对生产车间的温湿度都有一定的要求,其中有些企业往往需要一种能够独立于空调控制系统的车间温湿度检测系统。这种车间温湿度检测系统作为空调控制的一种冗余设计或者说辅助手段,成本往往相对较低。
    温湿度检测系统作为一种应用广泛的非标准化检测系统,不同的设计者、不同的应用需求,使得目前此类检测系统的设计方案呈现出种类各异、五花八门的现象。文献介绍了一种应用于蔬菜大棚的温湿度测控系统的设计,以P87LPC76x单片机作为主控器,能利用PID算法,通过控制执行器加热、加湿起到调节蔬菜大棚温湿度的目的,该系统现已广泛应用于吉林松原农村蔬菜大棚,运行良好。文献介绍了一种能应用于多种工业场合的温湿度检测系统的设计,该系统基于AT89C52单片机开发,能将传感器采集到的温湿度信号通过RS485网络传送至上位计算机,该系统简单实用,具有良好的性价比。文献介绍了一种应用于检测安装有中央空调的建筑物的内部环境温湿度的数据采集器的设计,该检澍装置独立于中央空调而工作,为评价中央空调运行质量、调试空调系统提供基础数据。该系统基于16位单片机MSP430F开发,与PC机实时通信,能通过PC机设置数据采集器参数,并控制数据采集器工作。

1 系统设计
   
系统自主设计了两种模块电路:(1)检测模块。每一块检测模块将被安装于车间不同的地点,用于检测车间内不同位置的温湿度,系统最多支持64个检测模块同时工作。(2)通信模块。监视计算机与各检测模块之间的通信“桥梁”,一个通信模块含有4路通信通道,每1路通信通道可连接至1个计算机COM口,实现监视计算机对检测模块的分组轮询。
    检测模块与通信模块之间通过CAN总线通信。CAN(Controller Area Network)总线于1986年由德国BOSCH公司提出,是一种多主方式的串行通讯总线,最早用于汽车电路中,经过数十年的发展日趋完善,目前被广泛应用于汽车、石油、化工、制造业等许多领域,被誉为“最有前途的总线技术之一”。选择CAN总线,是因为CAN总线相比传统的RS485总线优势明显,主要体现在以下3点:(1)传统的RS485总线仅有电气协议,而CAN总线则具有完善的通信协议,易于开发。(2)传统的RS485总线通信距离不超过1.5 km,而CAN总线的通信距离在5 kbit·s-1速率时最远可达10 km。(3)传统的RS485总线当系统有错误出现多节点同时向总线发送数据时,导致总线呈现短路从而损坏某些节点,而CAN节点在错误严重的情况下具有自动关闭输出的功能,不会影响到整个CAN总线。
    在本系统中,通信模块与COM口的串行通信速率成为整个系统的通信瓶颈,但仍然考虑使用计算机COM口采集数据而非专业接口卡,主要是出于对成本的考虑。为缓解系统瓶颈的考虑,计算机安装了PCI转RS-232串口扩展卡(SYBA 9865-4S),将计算机串口扩充为4个,同时通信模块设计了4个通信通道,平均每个通信通道能与最多16个检测模块进行分组通信,以加快数据更新速率。

a.JPG


    由于通信模块与计算机COM口采用RS232通信方式,理论上RS232通信距离为15 m,因此通信模块与计算机之间必须保持在15 m以下,实际安装1.5 m以内,通信速率可保证在38.4 kbit·s-1下稳定通信。

2 上位机监视计算机程序的设计
   
计算机监视程序采用C#2010开发控制台程序,Access2010开发后台数据库。程序主要具有如下功能:(1)管理员与技术员二级用户权限。(2)温湿度警报上下限设定。(3)温湿度历史数据记录。(4)温湿度报表打印。
    这里主要介绍监视程序通信部分的程序设计思路:
    (1)监视程序可打开4个计算机COM口,根据设定的每个COM口轮询的检测模块编号范匿向连接的COM口发送数据串并激活通信模块轮询各个检测模块,发送的数据串长度为5 Byte,如图2所示,格式为:第1 Byte为“读数据”命令字段,第2 Byte为与连接到COM口的通信通道所连接的第1个检测模块的站号,第3 Byte为与该通道所连接的最后1个检测模块的站号,第4个和第5 Byte为CRC校验码。

b.JPG


    (2)通信模块的每个通道主控器轮询一遍所有与之相连接的检测模块之后,便主动向计算机返回一次数据,刷新监视程序显示的温湿度数据,某通信通道返回的数据串长度由连接到该通信通道的检测模块数目而决定,当检测模块数目为n时,如图3所示,格式为:第1 Byte为“读数据”命令字段,监视计算机通过第1 Byte可辨识此数据串为下位机返回数据,第2个到第3n+1 Byte为与该通信通道连接的所有检测模块返回的温湿度数据,连续3 Byte为一组,记录了单个检测模块的返回数据,第3n+2个和第3n+3 Byte为CRC校验码。

c.JPG[page]

3 通信模块的设计
3.1 通信模块的硬件设计
   
通信模块具有4路通信通道,可分别连接4个计算机COM口,各通信通道相互独立,大体分为主控器(4个)、RS232/TTL电平转换电路(2个)、CAN驱动器(4个)3部分组成,统一供+5 V电压:
    (1)主控器选择Microchip公司生产的PIC18F25K80单片机,该单片机资源丰富,具有32 kB的程序存储器、3 648 Byte的数据存储器、1 024 Byte的数据EEPROM,并集成一个CAN控制器。将二路拨码开关连接至单片机I/O口,用于设置通信模块在CAN总线上的站号,设定站号范围为00~11。
    (2)通信模块通过电平转换电路AX232芯片与计算机COM口进行数据交换,由于1个MAX232支持两组串口数据独立收发,因此可供2路通信通道同时使用。
    (3)主控器PIC18F25K80自身集成一个CAN控制器,因此无需额外增加CAN控制器,仅需连接一个CAN驱动器PCA82C250即可与CAN总线进行通信。
    PIC18F25K80自身集成的CAN控制器广泛支持CAN1.2、CAN 2.0A、CAN 2.0B Passive和CAN 2.0B Active多个版本的协议,支持DeviceNet数据字节过滤,支持标准帧数据和扩展帧数据,通信速率最高可达1 Mbit·s-1。

d.JPG


    PCA82C250作为目前应用最广泛的CAN驱动器,其最大通信速率可达1 Mbit·s-1,最多可支持110个节点,具有多重保护功能,安全可靠。PIC18F25K80的CAN收发引脚CANRX、CANTX与PCA82C250通过2只光耦6N137连接,PCA82C250直接接入CAN总线。
3.2 通信模块的软件设计
   
通信模块在收到来自上位机的命令后,开始轮询与之相连接的检测模块。通信模块向与之相连的第一个检测模块发出读数据命令,待被询检测模块返回数据后再向下一个检测模块发出读数据命令,依此类推。如果被询检测模块在1 000ms内没有返回数据,则重新发送读数据命令,重复3次后如果被询检测模块依然没有返回数据,则检测模块便茸动将读数据缓冲数组内相应单元全部置FF,并将相应标志位置1,在下次轮询时,自动跳过此检测模块,待检修人员排除故障后,再通过监视计算机手动发出清除标志位命令或者将通信模块断电复位,即可恢复通信模块与所有检测模块的通信。最后所有检测模块读取完毕,通信模块自动将数据上传至上位监视计算机。程序流程图如图5所示。

e.JPG


    通信模块向检测模块发出的读数据命令由2 Byte组成:第1 Byte是模块通道的CAN站号,第2 Byte是被询检测模块的CAN站号。由于检测模块向被询模块发出的命令仅有读数据命令一条,因此无需添加命令代码字节。

f.JPG


    在CAN 2.0B规范中,数据帧有两种帧格式:标准帧数据格式和扩展帧数据格式,两者的区别在于前者具有11位标识符而后者具有29位标识符,如图6所示,标准帧格式仲裁段标识符仅有11位,而扩展帧格式仲裁段标识符比标准帧格式仲裁段标识符多出18个标识符,即29个标识符。CAN控箭器会根据用户对寄存器的设定值按帧格式自动生成输出脉冲序列。对于开发人员而言,前者仅需要配置2 Byte的TX识别码,而后者需要配置4 Byte的TX识别码,用于描述该帧数据在总线上的“数据身份”。鉴于通信与检测模块之间的通信关系比较简单,这里选用标准帧数据格式,2 Byte的TX识别码分别为数据源和数据目标地址,即对于通信模块而言,第1 Byte定义为通信模块某通道的站号,第2 Byte定义为某时刻该通信通道所访问的检测模块站号。

[page]

4 温湿度检测模块的设计
4.1 温湿度检测模块的硬件设计
   
检测模块大体可分为主控器、温度传感器、湿度传感器、CAN驱动器4个部分:
    (1)主控器同样采用了PIC18F25K80单片机。6路拨码开关连接至单片机的I/O口,用于设定检测模块在CAN总线上的站号,设定站号范围为1100 0000~111l 1111。
    (2)温度传感器采用Dallas公司生产的一线式数字温度传感器DS18B20,该传感器它具有微型化、低功耗、高性能、抗干扰能力强等优点,DS18B20可直接将温度转化成串行数字信号给单片机处理,温度测量的范围为-55~+125℃,测温分辨率可达0.062 5℃,测温范围与精度完全符合项目要求。
    (3)湿度传感器采用Honeywell公司生产的HIB4000相对湿度传感器,该传感器内部集成了信号处理功能电路,可将相对湿度值变换成电容值,再将电容值转换成线性电压输出。PIC18F25K80单片机片内集成一个8路输入的A/D模块,可将HIH4000输出的线性电压模拟量直接转换为一个12位的数字量并存储在PIC18F25K80单片机中。
    (4)与通信模块相同,PIC18F25K80的CAN收发引脚CANRX、CANTX通过2只光耦6N137与CAN驱动器PCA82C250相连,PCA82C250直接接入CAN总线。

g.JPG


4.2 温湿度检测模块的软件设计
   
检测模块不断读取温度传感器和湿度传感器采集的数据,每次采集完温度与湿度数据后,检测是否有来自通信模块的读数据命令,如果有则将采集的温度与湿度数据返回给通信模块,如果没有则继续读取温度传感器和湿度传感器采集的数据,程序流程如图8所示。

h.JPG


    与通信模块一致,检测模块的CAN通信数据帧格式同样采用标准帧数据格式。其中,2的TX识别码分别设定为数据源地址和数据目标地址,即第1 Byte被设定为检测模块站号,第2 Byte被设定为与之连接的通信通道的站号;数据字节仅使用3个,第1 Byte和第2 Byte高4位共计12位用于存放来自温度传感器的数据,第2 Byte的低4位和第3 Byte共计12位用于存放来自湿度传感器的数据,将温湿度传感器取得的两
个12位数字量压缩为3 Byte并写入CAN驱动器发送缓冲区可有效提高数据更新速率。

5 结束语
   
现场总线技术的发展、单片机功能的增强、传感器线性化与集成度的提高等技术,为系统的设计带来了便利,也为该检测系统的稳定性提供了保障;Dot Net技术的发展为快速开发稳定可靠的计算机应用程序提供了条件。经开发设计,系统目前尚处于小规模试运行阶段,经过一段时间的试运行证明本系统具有稳定可靠、通信距离远、抗干扰能力强等诸多优点,能满足企需求。

关键字:CAN总线  PIC18225K80  温湿度检测 引用地址:基于CAN总线的分布式车间温湿度检测系统

上一篇:PIC单片机指令周期计算
下一篇:微芯扩展通用8位PIC单片机 进一步提高智能模拟功能

推荐阅读最新更新时间:2024-03-16 13:24

ST推出全球首款符合主要接口协议的汽车用CAN总线ESD保护芯片
    汽车用电子系统的功能不断推陈出新,包括各种先进的驾驶辅助系统(ADAS),促使大量的通信接口协议陆续问世,为市场带来不同的通信速度、产品成本以及设计灵活性。意法半导体(STMicroelectronics,简称ST)推出两款整合优的异静电放电(ESD, Electrostatic Discharges)以及瞬变电压防护功能的控制器区域网络(CAN, Controller Area Network)总线,是市场上唯一符合所有主要汽车接口规范的接口保护芯片。        ESDCAN02-2BWY和ESDCAN03-2BWY是汽车级双线(dual-line)Transil保护芯片,基于意法半导体在瞬变电压防护市场的
[汽车电子]
STM32RBT6时钟问题总结
这两天碰到关于CAN总线的问题,当检查配置与CAN分析仪都没问题的时候,陷入了迷茫期,之后在程序中找到对于CAN总线时钟的理解,想到了APB1的时钟可能有问题,对于在这里就对时钟再一次的进行总结。 关于时钟的文件主要有两个:1.system_stm32f10x.c ,2.stm32f10x.h 1.首先在启动文件中我们找到SystemInit()函数 我们可以看到关于时钟的配置是在main函数之前的,接下来就看system_stm32f10x.c文件内: void SystemInit (void) { /* Reset the RCC clock configuration to the default res
[单片机]
STM32RBT6时钟问题总结
基于CAN总线汽车车身视觉检测站的研究
    摘要: 研究CAN总线和多主机控制在汽车白车身视觉监测站中的应用;提出以采用摩托罗拉MC68HC05X16和微机为主机的多主机分布式控制系统;介绍控制网络的物理层接口及有关硬件,并对通信部分进行较为详细的研究。     关键词: 视觉检测 三维测量 分布式控制 控制器局域网 数据通信 前言 汽车车身视觉检测站是用于测量车身关键点的三维空间坐标的大型的专用检测系统。它由机械及定位系统、三维视觉传感器系统、测量控制与接口系统、标定系统以及计算机软件五大部分组成。主要方法采用结构光传感器,经标定系统标定后,通过控制系统选取被测点,采集图像,结合视觉检测算法,求出被测点坐标参数。为进行测量,必须把计算机与
[测试测量]
基于CAN总线的多路电源智能智能监控系统
0 引言     邮电通信线路的供电电源的稳定性和可靠性对整个邮电通信起着关键作用。因此要求能对供电电源的运行状态进行实时监控,及时发现异常情况和事故隐患,在出现异常和故障时迅速进行诊断并予以修复。 1 CAN总线与485总线的比较     1)485总线的特点     相对于RS一232,RS一485半双工异步通信总线具有通信距离远、通信速率高、成本低等特点,是一种被广泛使用的数据通信总线。但485总线的波特率设置受到单片机的波特率设置的限制,在单片机使用24M晶振的情况下,也只可以设置到9600bps的波特率。485总线的容错和应用层的协议,可以自己通过软件来实现,比较灵活,但是编程的工作就变得复杂。因此在对速
[电源管理]
采用ADuM1201的CAN总线隔离方法
采用ADuM1201的CAN总线隔离方法 can(controller area network) 总线又称控制局域网络,最早由德国bosch公司推出,用于汽车内部测量与执行部件之间的数据通信。can已被公认为几种最有前途的现场总线之一。其总线规范已被iso国际标准组织制订为国际标准。can的主要优点:1、为多主工作方式,可以很方便地构成多机备份系统;2、可以点对点、点对多点及广播方式收发数据,通信速率最高可达1mb/s(此时通信距离最长为40m),实际节点数可达100个,直接通信距离最远可达10km(速率在5kb/s以下);3、can网络上的节点可分为不同的优先级,以满足不同的实时要求;4、采用非破坏性仲裁技术,能够有效地避免总线
[嵌入式]
两种采用CAN总线进行通信的系统比较
1 前言    CAN总线是一种有效支持分布式控制或实时控制的串行通信网络,它可实现全分布式多机系统,且无主、从之分;具有传输速度快、自动解决总线竞争、实时性好、可靠性高、纠错能力强等特点,目前已成为一种国际总线标准。由于can总线具有诸多优点,它的应用范围遍及从高速网络到低成本的多线路网络。在自动化电子领域的汽车发动机控制部件、传感器、抗滑系统、工业自动化、建筑物环境控制、机床、电梯控制、医疗设备等领域得到了较为广泛的应用。   sja1000是一种独立的can控制器,主要用于移动目标和一般工业环境中的区域网络控制。它是philips半导体公司pca82c200can控制器(basiccan)的替代产品,而且它增加了一种新的
[安防电子]
两种采用<font color='red'>CAN总线</font>进行通信的系统比较
RS232通信网络与CAN总线通信网络互联设计
    目前工业设备之间的通信很多采用RS232接口,但由于RS232通信距离短(根据EAT/TAI-232标准,仅为15 m)、接口易损,而且只能进行点到点通信,不能直接组成多点通信网络。为了延长RS232的通信距离,并将RS232节点组成通信网络,目前广泛使用RS232/RS485信号转换器。但是,由于RS485通信本身的局限性,在实际应用中存在许多不足:总线效率低、系统的实时性差、通信的可靠性低、网络工程调试复杂、传输距离不理想、单总线可挂接的节点少、应用不灵活等。     基于CAN通信的优越性,本文介绍一种可以将RS232通信网络转换成CAN通信网络的方法,以更好地解决用户建立远程通信网络的问题。 1 CAN总线简介
[嵌入式]
基于CAN-总线技术的智能汽车系统的设计
    随着汽车功能的增加与电子控制技术的普遍应用,汽车电气件越来越多,电线也会越来越多,汽车上的电路数量与用电量显著增加,线束也就变得越粗越重。     如何使大量线束在有限的汽车空间中,更有效合理地布置,使汽车线束发挥更大的功能,已成为汽车制造业面临的问题。CAN总线技术的开发。对于汽车电子控制系统的应用无疑是一个突破,并将得到更大的发展。 1 CAN总线概述     CAN(Controller Area Network的缩写),即控制器局域网络。CAN总线是由德国BOSCH公司于1986年进行开发。并随后通过国标IS011898及ISOl1519,如今已经成为国际上被最为广泛应用的工业现场总线之一。尤其在欧洲和
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved