DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 754|回复: 0
打印 上一主题 下一主题

[安防] 基于CAN总线智能建筑监控系统的通信协议设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 16:49:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                    ???? 摘要:从研究CAN2.OB总线规范入手,介绍了CAN总线规范的硬件基础,分析了CAN总线报文格式,通过对报文标识符的分配,设计了应用于该系统的通信协议,并给出了软件设计流程,较好地解决了智能建筑监控系统通信过程中的仲裁问题。
  现代智能建筑监控系统广泛采用了现场总线技术。现场总线的种类目前有40多种,但适合智能建筑且在我国推广的主要有两种:CAN(Control Area Network)总线和LONworks总线。CAN总线技术以其可靠性高,结构简单,传输距离长和成本低而具有巨大的应用潜力。
  控制局域网CAN是现场总线技术中最成熟、最有发展前途的微处理器局域网络。协议采用总线型拓扑结构,通过研究CAN2.0B协议规范,制定了符合智能建筑监控系统的通信协议,并进行了通信节点软件的设计。
  1 基于CAN总线的智能建筑网络拓扑结构
  CAN总线的智能建筑监控系统拓扑结构,如图1所示。该系统由3部分组成:上位机、CAN通信节点和各个现场智能设备组成。通信节点的数量可根据建筑物的规模增减,CAN总线作为通信网络将各个节点连接成一个分布式智能监控系统。




  2.2 基于线与功能多节点仲裁过程
  通信节点访问总线,对总线上信号进行检测,只有当总线处于空闲状态时,才允许发送。当总线上有多个节点同时进行发送时,必须通过“无损的逐位仲裁”方法来使有最高优先权的报文优先发送。在CAN总线上发送的每一条报文都具有惟一的11位或29位ID。CAN总线的状态取决于二进制数‘O’而不是‘1’,所以ID号越小,该报文拥有越高的优先权。因此一个为全‘0’标志符的报文具有总线上的最高级优先权。多节点仲裁过程如图3所示。




  扩展帧的数据帧的主要结构有:
  (1)帧起始,标志帧的开始,它由单个“显性”位构成,在总线空闲时发送,在总线上产生同步作用。
  (2)仲裁域,仲裁域包括29位标识符、SRR位、IDE位、RTR位。29位标识符包括11位基本ID、18位扩展ID。基本ID按ID-28到ID-18的顺序发送,扩展ID按ID-17到ID-0的顺序发送。基本ID首先发送,其次是SRR位和IDE位。扩展ID的发送位于IDE位之后。SRR是“隐性”位。IDE位在标准格式里为“显性”,在扩展格式里为“隐性”。RTR位在数据帧里必为“显性”,而在远程帧里必为“隐性”。标识符用于提供关于传送报文和总线访问的优先权信息,其数值越小,表示优先权越高,发生冲突时优先发送。
  (3)控制域,由6位构成,前2位为保留位,为“显性”。后4位为数据长度码(DLC),表示数据域中数据的字节数,必须在0~8范围内变化。
  (4)数据域,由被发送的数据组成,字节数为控制域中决定的0~8 bit,第一个字节的最高位首先被发送。
  (5)CRC域,包括CRC(循环冗余码校验)序列(15位)和CRC界定符(1个“隐性”位),用于帧校验。
  (6)应答域,由应答间隙和应答界定符组成,共2位。
  (7)帧结束,由7位隐性位组成,此期间无位填充。
  4 通讯协议的制定
  在CAN的协议规范,规定了数据链路层和物理层,没有规定应用层。所以用户在设计通讯软件时,必须首先设计合适的CAN总线通讯协议,才能完成数据准确可靠的传输。基于研究CAN2.OB规范的基础上,采用自定义协议的方法,制定了智能建筑监控系统的通信协议。通讯协议的制定主要包括以下3个步骤。
  4.1 CAN总线网络中信息传输类型
  智能建筑中信息传输类型主要有以下几种:
  (1)紧急信息,用以传输重要信息,优先级最高,如报警信息。
  (2)广播信息,向总线上挂接的所有节点发送的信息。
  (3)命令信息,控制节点向执行节点发送的信息。
  (4)状态信息,执行节点接收到命令执行后,向控制节点反馈的信息。
  (5)数据信息,负责采集数据的节点发送的信息,如传感器采集到的信息。
  4.2 根据标识符的分配方案确定各节点优先级
  标识符的分配方案首先满足节点以及报文信息对优先级的要求,同时利用标识符空问加载有关信息,减少在数据域内占用的空间。本系统采用有29位标识符的扩展帧格式,具体分配如下:
  (1)信息类型标识符(ID.28~ID.23),000001—紧急信息,000010—广播信息,000011—命令信息,000100—状态信息,000101—数据信息。
  (2)节点地址标识符(ID.22~ID.15),0000000l—上位机节点,00000010—安全监控节点,00000100—消防监控节点,0000010l—配电节点,00000111—给排水节点,00001000—电梯节点,00001001—照明节点,00001010—空调节点。
  (3)报文功能标识符(ID.14~ID.08),如果一个节点发送多帧报文,在报文信息类型相同的情况下,可以用报文功能标识符来区分报文的优先级。
  (4)现场装置地址标识符(ID.07~ID.00)。
  4.3 组织各帧报文
  明确各节点发送的报文,对系统中各类控制信号和数据进行分类,填充各报文的数据域。
  5 通信协议的软件实现
  通信协议的软件设计由3部分组成:CAN控制器的初始化、数据的发送和接收程序,其流程图如图5,图6和图7所示。







  5.1 通信节点的初始化
  初始化程序通过对CAN控制器SJAl000中的寄存器写入控制字,确定CAN控制器的工作方式,包括模式寄存器的设置、接收滤波方式设置、接收屏蔽寄存器和接收代码寄存器的设置、波特率参数和中断允许寄存器的设置等,完成初始化设置后,SJAl000进行正常的通信。
  5.2 数据发送程序
  发送数据前,采用查询方式先查看发送缓冲器状态,满足要求再把要发送的数据按照特定格式组合成一帧报文,送入SJAl000发送缓冲区,然后启动SJAl000发送命令。
  5.3 数据接收程序
  接收数据采用中断方式,主程序中应开放接受中断,单片机响应接收中断后读出CAN控制器中SJAl000的接收缓冲区数据并保存,再清SJAl000的接收缓存器。
  6 结束语
  通过研究CAN2.0B协议规范,对报文格式的分析和标识符的分配,设计出了基于CAN总线的智能建筑监控系统的通信协议。协议具有实现简单、通用性强、可靠性高,便于扩展等优点,通过验证,该协议有效地解决了智能建筑监控系统多节点通信过程中的仲裁问题。
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-6-2 21:26 , 耗时 0.096475 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表