第7章现场总线智能节点的开发

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第七章现场总线智能节点的开发7.1节点类型节点是网络上信息的接收和发送站。在CAN总线系统中,共有两种类型的节点:1.不带微处理器的非智能节点;2.带微处理器的智能节点。非智能节点:由一片多功能CAN控制器(如P82C150)构成,并能够完成一定功能(如数据采集)。智能节点:由微处理器和CAN控制器组成。有两者合二为一的,如单片机芯片P8xC591和DSP2407A等,可靠性高;也有两者是独立的,在设计和使用时的灵活性强,使用较广泛。根据所处位置,可分为现场节点和和相关的通信卡现场节点:传感器、变送器、执行器等通信卡:PC机上的通信节点,如PC104CAN卡、ISACAN卡、PCICAN卡等7.2一个实际节点的开发下面以一个A/D智能变送器为例,来讨论现场总线智能节点的开发。(1)通用智能变送器CANAD1208概述如图是节点CANAD1208的工作原理框图输入信号调理电路串行A/D单片机小系统CAN总线接口CAN总线8路模拟信号图8:智能变送器CANAD1208的工作原理图图中8路模拟量信号可以是0-10v电压、热电偶信号、热电阻,模拟量信号经过输入信号调理电路(信号转换、放大、滤波等)转换为0-5v电压信号送至串行A/D输入端,单片机根据串行A/D控制字按照一定的时序获取各路模拟量的转换量—对应的数字量,系统根据各个信号的特点,将数字量转换为对应的实际的参量(如热电偶、热电阻转换为温度,电压信号转化为0—10v电压),一般来说,节点与其他节点通信时传输的是这个用数字量表示的实际参量值.由于节点本身具有微处理器,所以可以进行故障自诊断和对系统进行初步的诊断结果,系统通信数据可以包括这些诊断信息。(2)CAN协议现场总线接口电路设计为了满足实时控制和降低成本,CAN协议的现场总线采用了符合OSI七层基准参考模型的物理层、数据链路层和应用层三层网络结构,网络的物理层和数据链路层的功能是有CAN接口器件完成的,而应用层的功能则由微处理器来完成的。物理层和数据链路层的设计包括硬件电路和通信协议两部分。如图是CANAD1208的现场总线的接口电路。图9:CANAD1208现场总线接口电路图中89C52是网络节点的微处理器,SJA1000是由PHILIPS公司提供的CAN控制器,可完成CAN总线的物理层和数据链路层的所有功能。包括为实现高性能串行网络通信所必须的所有硬件。P82C250是CAN控制器和物理总线间的接口,它可以提供对总线的差动发送能力和对CAN控制器的差动接收能力,与ISO11898标准完全兼容。图中SJA1000与P82C250采用光电耦合器件连接,具有电流隔离的作用。DIP8拨码开关用来设置网络节点的节点地址和通信速率,其中低5位是节点地址(0-31);高3位是通信速率,数值0-7可设置20k—1MHz的通信速率。为了实现对网络节点及总线的完善管理,保证系统的可靠性和健壮性,CAN通信协议规定了4种不同用途的网络通信帧,即数据帧、远程帧、错误指示帧和超载帧。CAN通信协议的实现,包括各种通信帧的组织和发送,均是由集成在CAN通信控制器SJA1000中的电路实现的,因此系统的软件开发主要集中在应用层协议及软件的设计上。(3)应用层协议CAN协议现场总线遵循OSI模型,按照OSI基准模型,CAN总线网络结构分为3层:物理层,数据链路层和应用层。其中物理层,数据链路层由CAN接口器件完成,应用层由微处理器完成。CAN技术规范2.0A和2.0B以及国际标准ISO11898是设计CAN现场总线产品的基依据。国内北京三兴达公司公布了HilionA,HilionB基于主从式结构的数据链路层以上的协议。采用主从式通信控制方式,即命令应答式,由主节点向现场节点发命令,现场节点收到命令后返回应答数据。为了保证通信的实时性,发送命令或数据和接收现场节点返回数据均在中断服务程序中完成的,并且是在不同的中断服务程序中完成的,发送命令或数据是在定时中断服务程序中完成的,而接收现场节点返回数据是在通信接收中断中完成的。由于发送和接收是分开的,所以在返回的数据中,应包括源数据的节点地址。发送报文和回收报文格式见见图示报文中,标识符为目的节点地址,数据长度是数据帧中数据的字节长度,数据帧中的节点地址是数据源的节点地址,当主节点点向从节点发送命令时,数据帧中的节点地址应是源节点即主机地址。如果是发送命令取数据,则数据帧第3个至8个字节无数据;若是主机向节点发送数据,则数据帧第3个至8个字节为发送数据。在回收报文中,标识符为目的节点地址与0x80相或的结果值;如果是主机向节点发送数据,则回收报文中数据帧第3个至8个字节无数据,若是主机向节点发命令取数据,则数据帧第3个至8个字节为返回数据。回收报文其它与发送报文相同。图7:主从系统中CAN协议发送和回收报文格式(支持多主方式)(4)应用层软件的设计应用层软件的核心部分是CPU和CAN通信控制器SJA1000之间的数据接收和发送程序,即CPU要把待发数据发送给CAN通信控制器,而后由通信控制器发到总线上;而当CAN控制器从总线上接收到数据后,需要CPU把数据从那里取走。CPU可以通过外设访问指令对它们进行读写操作。在系统上电之时,CPU需要对有关控制寄存器写入相应的控制字,以完成对CAN控制器的初始化,之后CPU即可通过CAN控制器向物理总线发送和接收数据。CANAD1208节点有两种工作方式:多主工作方式和主从工作方式。在多主工作方式时,发送数据是在节点的定时中断完成的,每隔一定时间(可由节点设置,时间是定时中断周期的整数倍)向其它节点发送从现场检测的经过校验的测试数据。而接收数据则是由中断1(参见图九)的中断服务程序完成的,在CAN控制器的接收数据缓存器满时,CAN控制器会向CPU发出中断请求,在中断打开的情况下,自动执行相应的中断服务程序。由图七可知,CAN协议现场总线的数据包是8个字节,这8个字节的数据场的组织按源节点地址(一标识符数据长度节点地址0至6个字节数据数据帧命令值标识符数据长度节点地址0至6个字节数据数据帧命令值发送报文格式回收报文格式个字节)+命令字(一个字节)+数据(0—6个字节)。在接收中断服务程序中,根据接收到的命令给出相应的响应。响应的数据发送在中断服务程序中完成的。在主从式现场总线控制系统中,定时中断中不进行发送数据的任务,数据的接收和发送均由接收中断完成的,根据接收到的主机命令发送相应的数据。节点如有报警信息,随时由主程序向其它节点发送故障信息。图八是节点CAN控制器的初始化程序框图,图九是主从方式下的接收中断服务程序框图。以下是一个初始化程序的实例(用C51编写).其中SJA1000CTRL是SJA1000控制器的控制段寄存器的首地址。voidInit_sja1000(charlBaud0,charlBaud1,charnode_addr)reentrant{IE=0;//关中断SJA1000CS=0;//片选PBYTE[SJA1000CTRL]=0x41;//向控制寄存器写控制字PBYTE[SJA1000CTRL+4]=node_addr;//向验收寄存器写接收码PBYTE[SJA1000CTRL+5]=0x00;//向接收屏蔽寄存器写接收屏蔽码PBYTE[SJA1000CTRL+6]=lBaud0;//向总线定时寄存器写数据PBYTE[SJA1000CTRL+7]=lBaud1;PBYTE[SJA1000CTRL+8]=0x1a;//向输出控制寄存器写控制字PBYTE[SJA1000CTRL]=0x1a;//开放相应的中断SJA1000CS=1;//片选禁止IE=0x86;//开中断}关中断向控制寄存器写控制字验收码寄存器中写接收码接收屏蔽寄存器中接收屏蔽根据通讯速率向总线定时寄存器写数据输出控制寄存器控制寄存器相应中断位关中断接收中断关中断取中断寄存器数值出错中断接收中断N取数据包中命令和数值Y根据数据包中命令和数值向发送缓冲区写数据Y发送命令释放接收缓冲区和清除超载状态关中断重新初始化SJ1000N图10是节点CAN控制器的初始化程序框图图11是主从方式下的接收中断服务程序框图。

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功