预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于CAN总线的楼宇智能环境智能监测系统设计 某楼宇有多个房间(如下图所示),其中一个房间可作为集中监 控室,每个房间都安装温度和湿度传感器,并通过CAN总线监测到的 温度、湿度信号发送到监控室中的上位机PC用于随时监控各房间的 环境状况。 1)介绍CAN总线网络层次结构。 CAN总线与简单总线逻辑不同,CAN是一种复杂逻辑的总线结构。参照 ISO/OSI标准模型,CAN分为数据链路层和物理层。而数据链路层又包括逻辑 链路子层LLC(LogicLinkControl)和媒体访问控制子层MAC(MediumAccess Control)。CAN的通信参考模型如图一所示。 1.物理层 在物理层中定义实际信号的传输方法,包括位的编码和解码、位的定时 和同步等内容,作用是定义不同节点之间根据电气属性如何进行位的实际传 输。 在物理连接上,CAN总线结构提供两个引脚--CANH和CANL,总线通过CANH 和CANL之间的差分电压完成信号的位传输。 2.逻辑链路子层LLC 逻辑链路子层LLC的主要功能是,对总线上传输的报文实行接收滤波, 判断总线上传输的报文是否与本节点有关,哪些报文应该为本节点接收;对 报文的接收予以确认;为数据传送和远程数据请求提供服务;当丢失仲裁或 被出错干扰时,逻辑链路子层具有自动重发的恢复管理功能等。 3.媒体访问控制子层MAC MAC子层是CAN协议的核心。它负责执行总线仲裁、报文成帧、出错检 测、错误标定等传输控制规则。 逻辑链路子层LLC 接收滤波 超载通州 恢复管理 媒体访问控制层MAC 数据链路层 数据封装/拆装 帧编码(填充/解除填充) 媒体访问管理 错误检测 出错标定 应答 串行化/解除串行化 位编码/解码 位定时 物理层同步 驱动器/接收器特性 连接器 图一CAN的通信参考模型 2)介绍CAN总线通讯协议的报文格式。 根据CAN报文帧的不同用途,可以把CAN报文帧划分为以下4种类型, 数据帧,远程帧,出错帧,超载帧。 1.数据帧 数据帧携带数据从发送器至接收器。总线上传输的大多是这种帧,从标 识符长度上,又可以把数据帧分为标准帧(11位标识符)和扩展帧(29位标识 符)。 数据帧由7个不同的位场组成:帧起始、仲裁场、控制场、数据场、CRC 场、应答场、帧结束。其中,数据场的长度为0~8个字节。标识符位于仲裁 场中,报文接收节点通过标识符进行报文滤波。数据帧结构如图二所示。 1 图二数据帧结构 2.远程帧 由总线上的节点发出,用于请求其他节点发送具有同一标识符的数据帧。 当某个节点需要数据时,可以发送远程帧请求另一节点发送相应数据帧。与 数据帧相比,远程帧没有数据场。远程帧结构如图三所示。 图三远程帧结构 3.出错帧 任何单元,一旦检测到总线错误就发出错误帧。错误帧由两个不同的场 组成,第一个场是由不同站提供的错误标志的叠加(错误标志),第二个场是 错误界定符。出错帧结构如图四所示。 图四出错帧结构 2 4.超载帧 超载帧用于在先行的和后续的数据帧(或远程帧)之间提供附加延时。超 载帧包括两个场:超载标志和超载界定符。超载帧结构如图五所示。 图五超载帧结构 3)在总线上传输的报文以帧结构进行传输,与CAN总线传输相 关的关键技术术是什么?实现过程是什么? 答:在CAN系统中为保证报文传输的正确性,需要对通信过程进行差错 控制。目前常用的方法是反馈重发,即一旦收到接收端发出的出错信息,发 送端便自动重发,此时的差错控制只需要检错功能。常用的检错码有两类: 奇偶校验码和循环冗余校验码。奇偶校验码是一种最常见的检错码,其实现 方法简单,但检错能力较差;循环冗余校验码的编码也很简单且误判率低, 所以在通信系统中获得了广泛的应用。下面介绍CAN网络中循环冗余校验 码(即CRC码)的原理和实现方法。 1、CRC码检错的工作原理 CRC码检错是将被处理报文的比特序列当作一个二进制多项式A(×)的 系数,该系数除以发送方和接收方预先约定好的生成多项式g(×)后,将求 得的余数p(×)作为CRC校验码附加到原始的报文上,并一起发给接收方。 接收方用同样的g(×)去除收到的报文B(×),如果余数等于p(×),则传输 无误(此时A(×)和B(×)相同);否则传输过程中出错,由发送端重发,重新 开始CRC校验,直到无误为止。 上述校验过程中有几点需注意:①在进行CRC计算时,采用二进制(模 2)运算法,即加法不进位,减法不借位,其本质就是两个操作数进行逻辑异 或运算;②在进行CRC计算前先将发送报文所表示的多项式A(×)乘以×n, 3 其中n为生成多项式g(×)的最高幂值。对二进制乘法来讲,A(×)·×n就 是将A(×)左移n位,用来存放余数