版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
RS-485通信应用开发1.总线概述总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线。(公路)当总线被引入嵌入式系统领域后,它主要用于嵌入式系统的芯片级、板级和设备级的互连。山东师范大学信息科学与工程学院在总线的发展过程中,有多种分类方式。一是按照传输速率分类:可分为低速总线和高速总线。二是按照连接类型分类:可分为系统总线、外设总线和扩展总线。三是按照传输方式分类:可分为并行总线和串行总线。2.1串行通信方式山东师范大学信息科学与工程学院单工方式半双工方式全双工方式2.1串行通信方式通讯速率指的就是1S内通讯端口发送0/1代码(或者说是高低电平)的数量。打个比方如果我们说通讯速率是9.6kbps那就表示通讯端口每秒发送9600个bit的数据也就是每秒可以产生9600个高低电平(注意这里是高低电平总共加起来9600个)。
主从通讯,指的是在一个通讯网络中一个站点是主站,其他站点作为从站,主站和从站之间可以直接进行数据的传递,但是从站与从站之间不能直接进行数据的传递,如果从站之间想要交换数据也必须要通过主站如图所示。山东师范大学信息科学与工程学院2.2通信协议山东师范大学信息科学与工程学院通信协议硬件层协议软件层协议解决发声器官的构造(是猫叫还是狗叫)解决内容含义(汪汪汪和汪汪,汪汪汪的含义)001010112.3硬件层协议山东师范大学信息科学与工程学院解决数据怎么传,例如:RS-232RS-485,CAN,IIC,SPI等都是约定怎么传数据,如何把1发给给对方,这条线的电压应该是多少伏等,即都是解决0和1怎么传送的问题。2.4485收发器山东师范大学信息科学与工程学院TTL—485需要发送器485—TTL接要接收器通常发送器和接收器做在同一个芯片中,但是发送器和接收器不能同时工作,通过硬件上的连线,单片机来操作控制引脚让它某一时刻是工作在接收状态还是发送状态。485发送器和接收器合在一起,称为485收发器
485发送器规定在发送时,对方不可以发送,只能传一个方向(单工)便是就是同样的一根线,又想发数据给对方,又想收到对方返回来的数据,即想实现半双工,需要软件层的协议做保障。485要想实现半双工式通信,要进行约定,其中主从模式就是一种约定。2.4485收发器山东师范大学信息科学与工程学院管脚编号名称功能描述1RO接收器输出(至MCU)2接收允许(低电平有效)3DE发送允许(高电平有效)4DI发送器输入(来自MCU)5GND接地6A发送器同相输出/接收器同相输入7B发送器反相输出/接收器反相输入8VCC电源电压2.5总线与主从模式山东师范大学信息科学与工程学院2.6RS485原理与驱动程序山东师范大学信息科学与工程学院1)RS-485网络的拓扑结构一般采用:带有终端匹配的总线型结构(也称“手拉手”方式),不支持环形或星形网络。A、B、C为错误连接方式D、E、F为正确连接方式2.6RS-485连接方式山东师范大学信息科学与工程学院RS485工业总线标准要求各设备之间采用链条式连接方式,两头必须接有120Ω终端电阻。2.6RS485连接方式山东师范大学信息科学与工程学院RS-485网络施工中的注意事项:★485+和485-数据线一定要互为双绞,即使用双绞线。★条件允许的话,RS-485网络可采用“多股屏蔽双绞线”。(多股是为了备用,屏蔽是为了便于出现特殊情况时调试。)
★485总线一定要用手牵手式的总线结构,坚决避免星型连接和分叉连接。★设备供电的交流电及机箱一定要真实接地,而且接地良好,以防止雷击、浪涌冲击等意外情况损坏485设备。★为避免强电对其干扰,485总线应避免和强电走在一起。3Modbus协议山东师范大学信息科学与工程学院Modbus通信协议是全球第一个(1979年)真正用于工业现场的总线协议,完全免费。Modbus通信协议是应用于电子控制器上的一种通用协议,目前已成为通用工业标准。多种工业设备包括PCL\DCS\变频器\智能仪表等都在使用。Modbus使不同厂商生产的控制设备可以连成工业网络,进行集中监控。Modbus支持多种电气接口,如RS-232、RS-485,还可以在各种介质上传输,如双绞线、光纤、无线等。Modbus协议是典型的主从型协议。3Modbus协议山东师范大学信息科学与工程学院Modbus是一种单主/多从的通信协议,即:在同一时间里,总线上只能有一个主设备,但可以有一个或多个(最多247个)从设备。主设备是指发起通信的设备,而从设备是接收请求并做出响应的设备。在Modbus网络中,通信总是由主设备发起,而从设备没有收到来自主设备的请求时,不会主动发送数据。MODBUS协议的某些特性是固定的,如信息帧结构,帧顺序,通讯错误和异常情况的处理,以及所执行的功能码等,都不能随便改动。其他特性是属于用户可选的,如传输介质,波特率,字符奇偶校验,停止位个数,参数字址定义等。Modbus请求报文的模式山东师范大学信息科学与工程学院在Modbus网络中,主设备向从设备发送Modbus请求报文的模式有两种:单播模式与广播模式:单播模式:主设备寻址单个从设备。广播模式:主设备向Modbus网络中的所有从设备发送请求报文,从设备接收并处理完毕后不要求返回响应报文。在Modbus网络中,主设备没有地址,每个从设备都具有唯一的地址。从设备的地址范围是0—247.其中地址0作为广播地址,因此从设备实际的地址范围是1至247。Modbus协议帧构成山东师范大学信息科学与工程学院设备地址:被选中的从设备地址。功能码:告知被选中的从设备要执行何种功能。数据段:包含从设备要执行功能的附加信息。
如:功能码“03”要求从设备读保持寄存器并响应寄存器的内容,
则数据段必须包含要求从设备读取寄存器的起始地址及数量。差错检测区:为从机提供一种数据校验方法,以保证信息内容的完整性。Modbus寄存器山东师范大学信息科学与工程学院寄存器是Modbus通信协议的一个重要组成部分,它用于存放数据。寄存器种类特性说明实际应用线圈状态(Coil)输出端口(可读可写),相当于PLC的DO(数字量输出)LED显示,电磁阀输出等离散输入状态(DiscreteInput)输入端口(只读),相当于PLC的DI(数字量输入)接近开关,拨码开关等保持寄存器(HoldingRegister)输出参数或保持参数(可读可写),相当于PLC的AO(模拟量输出)模拟量输出设定值、PID运行参数、传感器报警阈值等输入寄存器(InputRegister)输入参数(只读),相当于PLC的AI(模拟量输入)模拟量输入值Modbus请求报文的格式山东师范大学信息科学与工程学院MODBUS通信协议提供了ASCIl和RTU(远程终端单元)两种通信模式。ASCll模式的主要优点是允许字符之间的时间间隔长达1S,也不会出现错误。RTU模式的优点是在相同波特率下其传输的字符的密度高于ASCIl模式,每个信息必须连续传输。ASCII消息帧格式山东师范大学信息科学与工程学院ASCIl模式数据传送约定在数据格式中每个16进制字符(0~9)、(A~F)都转换成ASCll码发送。这种方式的主要优点是字符发送的时间间隔可达1秒,而不产生错误。起始位:1位数据长度:7位,低位先送校验位:1位(有校验),0位(无校验)停止位:1位(有校验),2位(无校验)波特率:可选RTU消息帧格式山东师范大学信息科学与工程学院起始位:1位数据长度:8位,低位先送校验位:1位(有校验),0位(无校验)停止位:1位(有校验),2位(无校验)波特率:可选应答与错误监测山东师范大学信息科学与工程学院当主站向从站发送信息时,整个通信过程由二部份组成:一是主站向从站的发送,我们叫查询,又叫请求。二是从站对主站的应答,也叫回传,响应。应答的目的是告诉主站是否有错和回答主站的相关通信请求。通信协议对查询和应答的时间,数据格式,验错方法都会给出相应的规定。从设备的响应信息也包含设备地址、功能码、数据段和差错检测区。其中从设备地址为本机地址,数据段包含了从设备采集的数据。MODBUS规定:用主站查询的功能码变化来指示是否有错误发生。无错误正常应答,从站仅回应相同的功能码。对有错或异常的应答,从站应答时,将其功能码最高位b7置1。同时,从站还应将错误代码放入数据区告诉主站发生了什么错误。Modbus功能码山东师范大学信息科学与工程学院用户自定义的功能码由用户自己定义,无法确保其唯一性,代码范围为:65~72和100~110。本节主要讨论RTU模式的公共功能码。代码功能码名称位/字操作操作数量01读线圈状态位操作单个或多个02读离散输入状态位操作单个或多个03读保持寄存器字操作单个或多个04读输入寄存器字操作单个或多个05写单个线圈位操作单个06写单个保持寄存器字操作单个15写多个线圈位操作多个16(0x10)写多个保持寄存器字操作多个读线圈/离散量输出状态功能码01山东师范大学信息科学与工程学院请求报文:线圈寄存器的值:
响应报文:从设备地址功能码起始地址寄存器个数CRC校验0601001600211C
61地址范围取值字节值22~29ON-ON-OFF-OFF-OFF-ON-OFF-OFF0x23(0b00100011)30~37ON-ON-OFF-ON-OFF-OFF-OFF-ON0x8B(0b10001011)38~45OFF-OFF-ON-OFF-OFF-ON-OFF-OFF0x24(0b00100100)46~53OFF-OFF-ON-OFF-OFF-OFF-ON-ON0xC4(0b11000100)54ON0x01(0b00000001)从设备地址功能码数据域字节数5个数据CRC校验060105238B24C401ED9C读离散量输入值功能码02山东师范大学信息科学与工程学院请求报文:线圈寄存器的值:
响应报文:从设备地址功能码起始地址寄存器个数CRC校验04020077001E484D地址范围取值字节值119~126ON-OFF-ON-ON-OFF-ON-OFF-ON0xAD127~134ON-ON-ON-OFF-ON-ON-OFF-ON0xB7135~142ON-OFF-ON-OFF-OFF-OFF-OFF-OFF0x05143~148OFF-OFF-OFF-ON-ON-ON0x38从设备地址功能码数据域字节数5个数据CRC校验040204ADB705383CEA读保持寄存器值功能码03山东师范大学信息科学与工程学院请求报文:
响应报文:从设备地址功能码起始地址寄存器个数CRC校验060300D20004E587从设备地址功能码数据域字节数8个数据CRC校验060308026E01F3010659AB1E6A
注意:Modbus的保持寄存器和输入寄存器是以字为基本单位,即:每个寄存器分别对应2个字节。请求报文连续读取4个寄存器的内容,将返回8个字节。读输入寄存器值功能码04山东师范大学信息科学与工程学院请求报文:
响应报文:从设备地址功能码起始地址寄存器个数CRC校验060401900005306F从设备地址功能码数据域字节数10个数据CRC校验06040A1CE2135A35DB233F56E3513A写单个线圈或单个离散输出功能码05山东师范大学信息科学与工程学院
请求报文:
响应报文:从设备地址功能码起始地址变更数据CRC校验04050098FF000D80从设备地址功能码起始地址变更数据CRC校验04050098FF000D80写单个保持寄存器功能码06山东师范大学信息科学与工程学院请求报文:
响应报文:从设备地址功能码起始地址变更数据CRC校验0306008202AB68DF从设备地址功能码起始地址寄存器数CRC校验0306008202AB68DF写多个线圈功能码15(0x0F)山东师范大学信息科学与工程学院
请求报文:
响应报文:从设备地址功能码起始地址寄存器数字节数变更数据CRC校验030F0014000F02C203EEE1地址范围取值字节值20~27OFF-ON-OFF-OFF-OFF-OFF-ON-ON0xC228~34ON-ON-OFF-OFF-OFF-OFF-OFF0x03从设备地址功能码起始地址寄存器数CRC校验030F0014000F5429写多个保持寄存器功能码16(0x10)山东师范大学信息科学与工程学院
请求报文:
响应报文:从设备地址功能码起始地址寄存器数字节数变更数据CRC校验05100015000306536B05F32A083E72从设备地址功能码起始地址寄存器数CRC校验05100015000390484智能安防系统的构成山东师范大学信息科学与工程学院本案例要求搭建一个基于RS-485总线的智能安防系统,系统构成如下:PC机一台(作为上位机);RS-485通信节点三个(一个作为主机、两个作为从机);火焰传感器一个(安装在从机1上);可燃气体传感器一个(安装在从机2上);USB转485调试器一个。整个系统由两个RS-485网络构成,RS-485网络1含一个主机节点,两个从机节点,使用Modbus通信协议作为应用层协议。主机节点与PC机(上位机)的连接基于RS-485网络2,通过上位机查看主机上报的数据。5硬件连接山东师范大学信息科学与工程学院各类传感器山东师范大学信息科学与工程学院
同学们在使用各类传感器时,请保存好其带有标签的包装,实验完毕后,将传感器装回原包装中,并将传感器(带包装,封好口)放回对应桌子的抽屉里。RS-485网络1的数据帧山东师范大学信息科学与工程学院在RS-485网络1中,从机节点可连接三种类型的传感器:开关量、模拟量和数字量。另外,我们需要对从机节点的地址与传感器类型编号进行配置,它们的数据类型为数字量。根据Modbus功能码的相关基础知识,我们可规划本系统的功能码、寄存器地址与传感器的对应关系。RS-485网络1的数据帧山东师范大学信息科学与工程学院功能码寄存器地址传感器(数据)类型传感器(数据)名称0x02读离散输入状态0x0000开关量人体红外传感器0x0001声音传感器0x0002红外传感器0x03读保持寄存器0x0000数字量温湿度传感器0x0001本节点地址0x0002节点连接的传感器类型0x04读输入寄存器0x0000模拟量光敏传感器0x0001空气质量传感器0x0002火焰传感器0x0003可燃气体传感器0x06写单个保持寄存器0x0001数字量配置(写)节点地址0x0002配置(写)传感器类型RS-485网络1的数据帧山东师范大学信息科学与工程学院本案例的RS-485通信采用ModbusRTU模式,接下来对几种常用的主机请求与从机响应的通信帧进行介绍。①可燃气体传感器数据采集(模拟量,功能码0x04)如果主机需要读取从机2的可燃气体传感器数据,主机发送请求帧从机2收到Modbus通信帧后,响应帧中返回ADC值300(0x012C)。地址1个字节功能码1个字节寄存器地址2个字节寄存器数量2个字节CRC校验2个字节0x020x040x00030x00010xC1CA地址1个字节功能码1个字节返回字节数1个字节寄存器值2个字节CRC校验2个字节0x020x040x020x012C0xB97DRS-485网络1的数据帧山东师范大学信息科学与工程学院②火焰传感器数据采集(模拟量,功能码0x04)如果主机需要读取从机1的火焰传感器数据,主机发送请求帧从机1收到Modbus通信帧后,响应帧中返回ADC值200(0x00C8)。地址1个字节功能码1个字节寄存器地址2个字节寄存器数量2个字节CRC校验2个字节0x010x040x00020x00010x900A地址1个字节功能码1个字节返回字节数1个字节寄存器值2个字节CRC校验2个字节0x010x040x020x00C80xB8A6通过RS-485网络上传到PC端的数据帧山东师范大学信息科学与工程学院RS-485网络2的主机需要将采集到的传感器数据通过上报到PC端。组成部分(缩写)帧起始符(START)地址域(ADDR)命令码域(CMD)数据长度域(LEN)传感器类型(TYPE)数据域(DATA)校验码域(CS)长度1Byte2Byte1Byte1Byte1Byte2Bytes1Byte内容固定为0xDDDstAddr见本表格说明Length见本表格说明DataCheckSum举例0xDD0x00020x020x090x010x180x400x51帧起始符:固定为0xDD;地址域:为发送节点的地址;命令码域:0x01代表上报CAN网络的数据,0x02代表上报RS-485网络的数据;数据长度域:固定为0x09,即:9个字节;传感器类型:1温湿度传感器、2人体检测传感器、3火焰传感器、4可燃气体、5空气质量传感器、6光敏二极管、
7声音传感模块、8红外传感模块、9心率传感器、10其他;数据域:占2个字节,高8位和低8位。如:对应温湿度传感器,高8位为温度值,低8位为湿度值。则温度24℃对应0x18,湿度64%对应0x40;校验码域:采用和校验方式,计算从“帧起始符”到“数据域”之间所有数据的累加和,并将该累加和与0xFF按位与而保留低8位,将此值作为CS的值。工作流程山东师范大学信息科学与工程学院RS-485网络1的主机每隔0.5s发送一次查询从机传感器数据的Modbus通信帧RS-485网络1中的从机收到通信帧后,解析其内容,判断是否是发给自己的,然后根据功能码要求采集相应的传感器数据,发送至主机主机收到从机的传感器数据后,通过RS-485网络2上报至PC端在PC端查看上报的数据。程序框架结构(从机)山东师范大学信息科学与工程学院程序框架结构(从机)山东师范大学信息科学与工程学院
山东师范大学信息科学与工程学院
山东师范大学信息科学与工程学院
程序框架结构(主机)山东师范大学信息科学与工程学院modbus_master_rec();该函数的源码在app_master.c中,主机解析从机发送来信息的函数。在mb_unpack_frame(&m_send_frame,&m_rev_frame)函数中,会先判断帧格式、校验码等是否正确,如果正确,会根据功能码来解析从机发送来的信息。本例中,火焰传感器和可燃气体传感器都是模拟量,功能码是04,所以在该函数中,会根据功能码04,调用unpack_readinput_reg(tx,rx);在此函数中,如果一切正常,则会根据返回的传感器类型,将火焰传感器的数据或可燃气体传感器的数据存放在class_sen[x].value变量中。程序框架结构(主机)山东师范大学信息科学与工程学院master_task();该函数的源码在app_master.c中,主机发送查询命令,主机上报数据。其中主机向从机发送查询数据帧的函数是master_poll();主机向PC端上报数据的函数为master_push();上电后所有设备处于接收状态(监听)山东师范大学信息科学与工程学院Modbus请求报文的格式山东师范大学信息科学与工程学院主机要发送数据,先把自己设置为发送状态(通过改指定IO口的电平为1),发送结束设置为接收状态从机接收到数据后,改为发送状态,因为要回应数据给主机。回应结束要改为接收状态。重点难点protocol.h中modbus帧与modbus协议管理器的结构体“m_frame_typedef”和“m_protocol_dev_typedef”protocol.c中的mb_unpack_frame函数,尤其注意该函数内部,最后部分,根据功能码读取寄存器的函数,如本例中,功能码04,读取输入寄存器函数ReadInputRegister();010203inputregister_m.c中的masterInputRegister函数,这是读取输入寄存器的通信请求帧04app_master.c中的master_push函数,这个函数里组建上传给PC端的通信帧,并发送出去程序下载(1)主机打开路径为“…/RS485-model/Newlab_HAL_mater/MDK-ARM”目录,双击Newlab_HAL_master图标,打开工程。生成hex文件。然后使用串口下载的方式,将程序下载到一块开发板,作为主机。(2)从机打开路径为“…/RS485-model/Newlab_HAL_salve/MDK-ARM”目录,双击Newlab_HAL_slave图标,打开工程。找到另外两块开发板,下载代码,作为从机。将火焰传感器与一个从机模块连接,并作为从机1。将可燃气体传感器与另一个从机模块连接,并作为从机2。从机节点配置使用“M3主控模块配置工具(SerialPortCommunicationV2.0)”(进行RS-485节点的配置。需要配置的内容有两个,一是节点地址,二是传感器类型。
从机节点1的地址配置为“0x01”,
连接传感器类型配置为“火焰传感器”。
从机节点2的地址配置为“0x02”,
连接传感器类型配置为“可燃气体传感器”。在配置时,实验平台底座只放需要配置的模块,其他模块不要放。如遇问题,请检查软件右上角的485协议前面的框是否勾选。并检查底座上的USB转串口线是否一端与底座,另一端与电脑相连。(设置完毕后可断开连接)还要注意串口选择是否正确。参数设置完毕后,点击设置,之后可以点击读取查看。图示主机从机1从机2硬件连接实拍图硬件连接实拍图硬件连接实拍图主机USB-485调试器通过PC端查看上报的数据CAN总线通信应用总览山东师范大学信息科学与工程学院CAN总线基础CAN电平分析CAN总线协议生产线环境监测系统CAN总线基础山东师范大学信息科学与工程学院CAN是ControllerAreaNetwork(控制器域网)的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。由德国电气商博世公司在1986年率先提出。现在在欧洲已是汽车网络的标准协议,因其高可靠性,可靠性,广泛应用于:汽车电子、工业自动化、船舶、医疗设备、工业设备等方面。CAN总线优点多主控制。数据传输距离远(最远10Km);数据传输速率高(最高数据传输速率1Mbps);具备优秀的仲裁机制(ID识别);使用过滤器实现多地址的数据帧传递;借助遥控帧实现远程数据请求;具备错误检测与处理功能;具备数据自动重发功能;故障节点可自动脱离总线且不影响总线上其他节点的正常工作。山东师范大学信息科学与工程学院CAN总线标准山东师范大学信息科学与工程学院CAN有两个标准:1.遵循ISO11898标准的高速CAN总线网络。应用在汽车动力与传动系统,它是闭环网络,总线最大长度为40米,要求两端各有一个120Ω的电阻。2.遵循ISO11519标准的低速CAN总线网络。低速CAN总线网络被应用在汽车车身系统,它的两根总线是独立的,不形成闭环,要求每根总线上各串联一个2.2KΩ的电阻。终端电阻用来做阻抗匹配,以减少回波反射。CAN总线的网络拓扑结构山东师范大学信息科学与工程学院两种速率的电平山东师范大学信息科学与工程学院CAN总线报文电平山东师范大学信息科学与工程学院总线电平=CAN_H的电压—CAN_L的电压显性电平对应逻辑0=总线电平为2V左右隐性电平对应逻辑1=总线电平为0V显性电平具有优先权,只要有一个单元输出显性电平,总线上即为显性电平。隐形电平则具有包容的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平(显性电平比隐性电平更强)。CAN控制器与收发器山东师范大学信息科学与工程学院CAN控制器与收发器山东师范大学信息科学与工程学院CAN控制器结构示意图山东师范大学信息科学与工程学院STM32F1系列MCU的CAN控制器介绍山东师范大学信息科学与工程学院STM32自带了基本扩展CAN外设,又称BxCAN,BxCAN的特点如下
支持CAN协议2.0A和2.0B主动模式
波特率最高达1Mbps
支持时间触发通信
具有3个发送邮箱
具有3级深度的2个接收FIFO
工作模式
①初始化模式(INRQ=1,SLEEP=0)
②正常模式(INRQ=0,SLEEP=0)
③睡眠模式(SLEEP=1)测试模式(方便用户调试)
①静默模式(LBKM=0,SILM=1)
②回环模式(LBKM=1,SILM=0)
③静默回环模式(LBKM=1,SILM=1)BxCAN的正常模式与测试模式山东师范大学信息科学与工程学院CAN收发器山东师范大学信息科学与工程学院定义:CAN收发器是CAN控制器和物理总线之间的接口,将CAN控制器的逻辑电平转换为CAN总线的差分电平,在两条有差分电压的总线电缆上传输数据。CAN收发器分类及相应产品CAN收发器分类过压述相应产品隔离CAN收发器将CAN控制器的逻辑电平转换为CAN总线的差分电平,并且具隔离功能、ESD保护功能及TVS官防总线过压CTM1050系列、CTM8250系列、CTM8251系列通用CAN收发器NXP半导体PCA82C250、PCA82C251高速CAN收发器支持较高的CAN通信速率NXP半导体的TJA1050、TJA1040、TJA1041/1041A容错CAN收发器在总线出现破损或短路情况下依然可以维持运行NXP半导体的TJA1054、TJA1054A、TJA1055、TJA1055/3CAN总线遵循的协议山东师范大学信息科学与工程学院CAN总线有多个设备时,要遵循CAN总线通信协议,会使用到邮箱、识别符、过滤器功能CAN总线-发送部分山东师范大学信息科学与工程学院报文:CAN设备一次发送出去的完整数据信息。邮箱:用于发送报文的发送调度器。帧种类:不同用途的报文种类。有数据帧、遥控帧、错误帧、过载帧、帧间隔。帧格式:一个报文里包含的内容。标识符:CAN总线上的设备可以用此判断数据
是不是发给自己的。发送邮箱山东师范大学信息科学与工程学院1.当程序向CAN控制器发数据时,CAN会选择优级最高的空邮箱放入数据2.如果所有邮箱都满了,会使溢出标志位置1,需要等待有空邮箱3.满邮箱按先后顺序排队发送数据,发送完成后会变成空邮箱报文过滤山东师范大学信息科学与工程学院所有设备都会接收报文,但标识符不符的报文会被过滤器删除标识符是报文中的一部分内容通信帧类型山东师范大学信息科学与工程学院序号帧类型帧用途1数据帧用于发送单元向接收单元传送数据。2远程帧用于接收单元向具有相同ID的发送单元请求数据。3错误帧用于当检测出错误时向其他单元通知错误。4过载帧用于接收单元通知发送单元其尚未做好接收准备。5帧间隔用于将数据帧及遥控帧与前面的帧分离开。帧格式山东师范大学信息科学与工程学院数据帧和远程帧(遥控帧)有标准格式和扩展格式两种格式CAN标准帧和扩展帧只是在ID的长度上不一样,类似IPv4与IPv6的区别。数据帧山东师范大学信息科学与工程学院数据帧山东师范大学信息科学与工程学院数据帧山东师范大学信息科学与工程学院数据帧山东师范大学信息科学与工程学院数据帧山东师范大学信息科学与工程学院数据帧山东师范大学信息科学与工程学院数据帧山东师范大学信息科学与工程学院数据帧山东师范大学信息科学与工程学院遥控帧/远程帧山东师范大学信息科学与工程学院代码部分山东师范大学信息科学与工程学院接收邮箱山东师范大学信息科学与工程学院FIFO:表面的意思是“先入先出”,是指有层级深度的接收邮箱。STM32F103系列单片机上有2个FIFO邮箱(FIFO0和FIFO1),每个FIFO有3层深度。与过滤器匹配的报文会被放入FIFO邮箱。过滤器山东师范大学信息科学与工程学院过滤器:可由硬件判断报文中的标识符,过滤掉标识符不匹配的报文。STM32F103系列单片机中的CAN总线控制器提供了14个过滤器组。过滤器是由硬件实现的,只有与过滤器匹配的报文才需要软件处理。过滤器山东师范大学信息科学与工程学院标识符列表模式(ID模式)屏蔽模式过滤器山东师范大学信息科学与工程学院不同的筛选器模式与尺度的组合构成了4种筛选器工作状态序号工作状态模式尺度说明1一个32位筛选器标识符掩码32位CAN_FxR1存储ID,CAN_FxR2存储掩码,2个寄存器表示1组待筛选的ID与掩码。可适用于标准ID和扩展ID。2两个32位筛选器标识符列表32位CAN_FxR1和CAN_FxR2各存储1个ID,2个寄存器表示2个待筛选的位ID。可适用于标准ID和扩展ID。3两个16位筛选器标识符掩码16位CAN_FxR1高16位存储ID,低16位存储相应的掩码,CAN_FxR2高16位存储ID,低16位存储相应掩码,2个寄存器表示2组待筛选的16位ID与掩码。只适用于标准ID。4四个16位筛选器标识符列表16位CAN_FxR1存储2个ID,CAN_FxR2存储2个ID,2个寄存器表示4个待筛选的16位ID。只适用于标准ID。过滤器优先级山东师范大学信息科学与工程学院过滤器根据下列优先级规则来确定(详看数据手册22.7.4):位宽为32位的过滤器,优先级高于位宽为16位的过滤器对于位宽相同的过滤器,标识符列表模式的优先级高于屏蔽位模式位宽和模式都相同的过滤器,优先级由过滤器号决定,过滤器号小的优先级高过滤器初始化配置山东师范大学信息科学与工程学院BxCAN位时序山东师范大学信息科学与工程学院SS(同步段)PTS(传播时间段)PBS1(相位缓冲段1)PBS2(相位缓冲段2)1tq1——8tq1——8tq2——8tqSYNC_SEG(同步段)BS1(位段1)BS2(位段2)1tq1——16tq1——8tq采样点tq(timequantum):最小时间片(构成上面所示各个段的最小时间单元)生产线环境监测系统的搭建山东师范大学信息科学与工程学院本案例要求搭建一个基于CAN总线的生产线环境监测系统,采集温度和火焰传感器数据,系统构成如下:PC机一台(作为上位机);CAN节点三个(一个CAN网关节点、
两个CAN终端节点);温湿度传感器两个;火焰传感器一个;USBCAN调试器一个。生产线环境监测系统的拓扑图如图所示。系统数据通信协议分析山东师范大学信息科学与工程学院本案例的CAN通信采用标准格式的数据帧段类型帧ID帧类型RTR标识符ID类型IDE保留位数据长度DLC数据段Data[8]长度11bit(标准帧)1bit1bit1bit4bit8Byte内容标准帧ID0:数据帧1:远程帧0:标准帧1:扩展帧r0DLCData举例0x120000x08Data[0]~Data[7]系统数据通信协议分析山东师范大学信息科学与工程学院帧起始符:固定为0xDD;地址域:为发送节点的地址;命令码域:0x01代表上报CAN总线网络的数据,0x02代表上报RS-485总线网络的数据;数据长度域:固定为0x09;传感器类型:1温湿度传感器,2人体红外传感器,3火焰传感器,4可燃气体,5空气质量传感器,6光敏二极管,7声音传感模块,8红外传感模块,9心率传感器,10其他;数据域:占2个字节,高8位和低8位。如:对应温湿度传感器,高8位为温度值,低8位为湿度值。则温度24℃对应0x18,湿度64%对应0x40;校验码域:采用和校验方式,计算从“帧起始符”到“数据域”之间所有数据的累加和,并将该累加和与0xFF按位与而保留低8位,将此值作为CS的值。组成部分帧起始符(START)地址域(ADDR)命令码域(CMD)数据长度域(LEN)传感器类型(TYPE)数据域(DATA)校验码域(CS)长度1Byte2Byte1Byte1Byte1Byte2Bytes1Byte内容固定为0xDDDstAddr见本表格说明Length见本表格说明DataCheckSum举例0xDD0x12340x010x090x010x18、0x400x51系统数据通信协议分析山东师范大学信息科学与工程学院网络中的CAN节点每隔1.5秒钟上传一次数据至CAN网关节点。
CAN网关节点收到传感器数据后,CAN网关节点每隔1.5秒钟也将自身采集的温湿度数据上报给上位机。配置M3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建省2024年高考历史压轴卷含解析
- 诚信考试与假期安全教育
- 2024茶叶加盟合同范本
- 金融风险管理培训课程
- 深圳大学《药物分析》2023-2024学年第一学期期末试卷
- 边沟劳务施工合同(2篇)
- 石方爆破开挖施工合同协议书
- 回风斜井巷修工程协议书(2篇)
- 军训总教官讲话稿范文(8篇)
- 仓储项目招投标关键点解析
- 红色古色绿色文化教育活动策划方案
- 《Monsters 怪兽》中英对照歌词
- 《正交分解法》导学案
- 建筑材料知识点汇总
- 平面构成作品欣赏
- 英语管道专业术语
- 浅谈语文课程内容的横向联系
- 社会工作毕业论文(优秀范文8篇)
- 五篇500字左右的短剧剧本
- 新形势下如何加强医院新闻宣传工作
- 第十一章总集与别集(杜泽逊版)
评论
0/150
提交评论