基于现场总线的货场散货处理系统设计(编辑修改稿)内容摘要:

播通信的特点。 CAN总线上任意节点可在任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。 CAN总线协议 已被国际标准化组织认证,技术比较成熟,控制的芯片已经商品化,性价比高,特别适用于分布式测控系统之间的数通讯。 CAN 总线插卡可以任意插在 PC AT XT兼容机上,方便地构成分布式监控系统。 结构简单 只有 2 根线与外部相连,并且内部集成了错误探测和管理模块。 CAN总线技术介绍 要对数据进行实时处理 ,就必须将数据快速传送 ,这就要求数据的物理传输通路有较高的速度。 在几个站同时需要发送数据时 ,要求快速地进行总线分配。 实时处理通过 网络交换 的紧急数据有较大的不同。 一个快速变化的物理量 ,如汽车引擎负载 ,将比类似汽车引擎温度这样 相对变化较慢的物理量更频繁地传送数据并要求更短的延时。 CAN 总线以报文为单位进行数据传送 ,报文的优先级结合在 11 位标识符中 ,具有最低二进制数的标识符有最高的优先级。 这种优先级一旦在系统设计时被确立后就不能再被更改。 总线读取中的冲突可通过位仲裁解决。 如图 2所示 ,当几个站同时发送报文时 ,站 1 的报文标识符为 011111。 站 2 的报文标识符为 0100110。 站 3的报文标识符为 0100111。 所有标识符都有相同的两位 01,直到第 3位进行比较时 ,站 1 的报文被丢掉 ,因为它的第 3 位为高 ,而其它两个站的报文第 3 位为低。 站 2和站 3报文的 6 位相同 ,直到第 7 位时 ,站 3 的报文才被丢失。 注意 ,总线中的信号持续跟踪最后获得总线读取权的站的报文。 在此例中 ,站 2的报文被跟踪。 这种非破坏性位仲裁方法的优点在于 ,在网络最终确定哪一个站的报文被传送以前 ,报文的起始部分已经在网络上传送了。 所有未获得总线读取权的站都成为具有最高优先权报文的接收站 ,并且不会在总线再次空闲前发送报文。 CAN 具有较高的效率是因为总线仅仅被那些请求总线悬而未决的站利用 ,这些请求是根据报文在整个系统中的重要性按顺序处理的。 这种方法在网络负载较重时有很多优点 ,因为总 线读取的优先级已被按顺序放在每个报文中了 ,这可以保证在 实时系统 中较低的个体隐伏时间。 对于主站的可靠性 ,由于 CAN 协议执行非集中化总线控制 ,所有主要通信 ,包括总线读取 (许可 )控制 ,在系统中分几次完成。 这是实现有较高可靠性的通信系统的唯一方法。 CAN与其它通信方案的比较 在实践中 ,有两种重要的总线分配方法 :按时间表分配和按需要分配。 在第一种方法中 ,不管每个节点是否申请 总线 ,都对每个节点按最大期间分配。 由此 ,总线可被分配给每个站并且是唯一的站 ,而不论其是立即进行总线存取或在一特定时间进行总线存取。 这将保证在总线存取时有明确的总线分配。 在第二种方法中 ,总线按传送数据的基本要求分配给一个站 ,总线系统按站希望的传送分配(如 :Ether CSMA/CD)。 因此 ,当多个站同时请求总线存取时 ,总线将终止所有站的请求 ,这时将不会有任何一个站获得总线 分配。 为了分配总线 ,多于一个总线存取是必要的。 CAN 实现总线分配的方法 ,可保证当不同的站申请总线存取时 ,明确地进行总线分配。 这种位仲裁的方法可以解决当两个站同时发送数据时产生的碰撞问题。 不同于 Ether 网络的消息仲裁 ,CAN 的非破坏性解决总线存取冲突的方法 ,确保在不传送有用消息时总线不被占用。 甚至当总线在重负载情况下 ,以消息内容为优先的总线存取也被证明是一种有效的系统。 虽然总线的传输能力不足 ,所有未解决的传输请求都按重要性顺序来处理。 在 CSMA/CD 这样的网络中 ,如 Ether,系统往往由于过 载而崩溃 ,而这种情况在 CAN 中不会发生。 CAN的报文格式 在总线中传送的报文 ,每帧由 7部分组成。 CAN协议支持两种报文格式 ,其唯一的不同是标识符 (ID)长度不同 ,标准格式为 11 位 ,扩展格式为 29 位。 在标准格式中 ,报文的起始位称为帧起始 (SOF),然后是由 11 位标识符和远程发送请求位 (RTR)组成的仲裁场。 RTR 位标明是数据帧还是请求帧 ,在请求帧中没有数据字节。 控制场包括标识符扩展位 (IDE),指出是标准格式还是扩展格式。 它还包括一个保留位 (ro),为将来扩展使用。 它的最后四个字节用来指明数据 场中数据的长度 (DLC)。 数据场范围为 0~ 8 个字节 ,其后有一个检测数据错误的 循环冗余检查(CRC)。 应答场 (ACK)包括应答位和应答分隔符。 发送站发送的这两位均为隐性电平(逻辑 1),这时正确接收报文的接收站发送主控电平 (逻辑 0)覆盖它。 用这种方法 ,发送站可以保证网络中至少有一个站能正确接收到报文。 报文的尾部由帧结束标出。 在相邻的两条报文间有一很短的间隔位 ,如果这时没有 站进行总线存取 ,总线将处于空闲状态。 CAN总线可靠性 为防止汽车在使用寿命期内由于数据交换错误而对司机造成危险 ,汽车的安全系统要求数据传输具有较高的安全性。 如果数据传输的可靠性足够高 ,或者残留下来的数据错误足够低的话 ,这一目标不难实现。 从总线系统数据的角度看 ,可靠性可以理解为 ,对传输过程产生的数据错误的识别能力。 残余数据错误的概率可以通过对数据传输可靠性的统计测量获得。 它描述了传送数据被破坏和这种破坏不能被探测出来的概率。 残余数据错误概率必须非常小 ,使其在系统整个寿命周期内 ,按平均统计时几乎检测不到。 计算残余错误概率要求能够对数据错误进行分类 ,并且数据传输路径可由一模型描述。 如果要确定CAN的残余错误概率 ,我们可将残留错误的概率作为具有 80~ 90位的报文传送时位错误概率的函数 ,并假定这个系统中有 5~ 10个站 ,并且错误率为 1/1000,那么最大位错误概率为 10— 13数量级。 例如 ,CAN 网络的数据传输率最大为 1Mbps,如果数据传输能力仅使用 50%,那么对于一个工作寿命 4000 小时、平均报文长度为 80 位的系统 ,所传送的数据总量为 91010。 在系统运行寿命期内 ,不可检测的传输错误的统计平均小于 10— 2 量 级。 换句话说 ,一个系统按每年 365天 ,每天工作 8 小时 ,每秒错误率为 0. 7 计算 ,那么按统计平均 ,每 1000 年才会发生一个不可检测的错误。 CAN总线的优点 具有实时性强、传输距离较远、抗电磁干扰能力强、成本低等优点; 采用双线串行通信方式,检错能力强,可在高噪声干扰环境中工作; 具有优先权和仲裁功能,多个控制模块通过 CAN 控制器挂到 CANbus ,形成多主机局部网络; 可根据报文的 ID 决定接收或屏蔽该报文; 可靠的错误处理和检错机制; 发送的信息遭到破坏后,可自动重发; 节 点在错误严重的情况下具有自动退出总线的功能; 报文不包含源地址或目标地址,仅用标志符来指示功能信息、优先级信息。 CAN总线开发测试工具 CAN 总线多用于工控和汽车领域,在 CAN总线的开发测试阶段,需要对其拓扑结构,节点功能,网路整合等进行开发测试,需要虚拟、半虚拟、全实物仿真测试平台,并且必须测试各节点是否符合 ISO11898 中规定的错误响应机制等,所以CAN 总线的开发需要专业的开发测试工具,并且在生产阶段也需要一批简单易用的生产线测试工具。 CAN 总线开发测试工具的主要供应商有 IHR、 Vector、 Intrepidcs等。 常用的开发测试工具如 AutoCAN、 CANspider 等。 LonWorks总线 LonWorks:一种全新的现场总线 LonWorks是美国 Echelon公司 1992年推出的局部操作网络 ,最初主要用于楼宇自动化 ,但很快发展到工业现场网。 LonWorks 技术为设计和实现可互操作的控制网络提供了一套完整、开放、成品化的解决途径。 LonWorks 的神经元芯片 LonWorks 技术的核心是神经元芯片 (Neuron Chip)。 该芯片内部装有 3 个微处理器 :MAC 处理器完成介质访问控 制。 网络处理器完成 OSI 的 3~ 6层网络协议。 应用处理器完成用户现场控制应用。 它们之间通过公用存储器传递数据。 下图为 3个处理器和存储器结构的框图。 图 神经元芯片处理器和存储器 在控制单元中需要采集和控制功能 ,为此 ,神经元芯片特设置 11个 I/O 口。 这些 I/O口可根据需求不同来灵活配置与外围设备的接口 ,如 RS23并口、定时 /计数、间隔处理、位 I / O 等。 神经元芯片还有一个时间计数器 ,从而能完成 Watchdog、多任务调度和定时功能。 神经元芯片支持节电方式 ,在节电方式下系统时钟和计数器关闭 ,但状态信 息 (包括 RAM中的信息 ) 不会改变。 一旦 I/O 状态变化或网线上信息有变 ,系统便会激活。 其内部还有一个最高 M bps、独立于介质的收发器。 由此可见 ,一个小小的神经元芯片不仅具有强大的通信功能 , 更集采集、控制于一体。 在理想情况下 ,一个神经元芯片加上几个分离元件便可成为 DCS 系统中一个独立的控制单元。 完善的开发平台 LonWorks 提供的不仅仅是一套高性能的神经元芯片 ,更重要的是 ,它提供了一套完整的开发平台。 工业现场中的通信不仅要将数据实时发送、接收 ,更多的是数据的打包、拆包、流量处理、出错处理。 这使控制工程师不得不在数据通信上投入大量精力。 LonWorks 在这方面提供了非常友好的服务 ,提供了一套完整的建网工具 —— LonBuild。 首先 ,它提供了一套 C 语言的编译器 ,从而大大减少了开发时间。 在这个编译器中 ,提供了对 11 个 I/O非常详尽的库函数。 在通信方面 ,它也提出了一个全新的概念 —— 网络变量。 通过网络变量 ,网络上的通信只需将相关节点上的网络变量连接一下即可。 网络变量是应用程序定义的一个特殊静态变量 ,可以是 ANSI C 所定义的各种类型 ,也可以是自定义类型 ,还可以规定优先级、响应方式等。 网络变量被定 义为输入或输出 ,当定义为输出的网络变量被赋予新值时 ,与该输出变量相连的输入网络变量就会被立刻赋予同样的新值。 另外 ,LonBuild 还集成开发环境和编译于一体 ,具备 C调试器 ,可在多个仿真器上调试应用程序 ,并具备网络协议分析和通信分析的功能。 LonTalk:面向对象的网络通信协议 LonTalk 是 LonWorks 的通信协议 ,固化在神经元芯片内。 LonTalk 局部操作网协议是为 LonWo r ks 中通信所设的框架 ,支持 ISO 组织制定的 OSI 参考模型的 7 层协议 ,并可使简短的控制信息在各种介质中非常可靠地传 输。 表 1概括了 LonTalk 在 OSI 参考模型中每层所提供的服务。 LonTalk 协议是直接面向对象的网络协议 ,具体实现即采用网络变量的形式。 又由于硬件芯片的支持 ,使它实现了实时性和接口的直观、简洁等现场总线的应用要求。 MAC 的特点 介质访问控制 (MAC)子层是 OSI 参考模型的数据链路层的一部分。 目前在不同的网络中存在多种介质访问控制协议 ,其中之一就是大家熟悉的 CSMA(载波信号多路侦听 )。 LonTalk 正是使用该协议 ,但具有自己的特色。 CSMA 协议要求一个节点在发送数据前侦听 网络是否空闲。 一旦监测到线路空闲后 ,不同的协议动作不同。 这样在重负载的情况下 ,不同协议的执行结果不同。 例如 ,Ether 采用 CSM A /CD 协议 ,一旦检测到碰撞 ,采用避让算法 ,这种方法在重负载时导致网络介质传输率变得极低。 另一些 CSMA 协议使用时间片规则去访问介质 ,使节点在限制的时间片访问介质 ,这样可以大大减少两个数据报发生碰撞的可能性。 P坚持 CSMA和 LonTalk 的 CSMA 就是使用时间片去访问介质。 LonTalk 协议使用一个改进的 CSMA 介质访问控制协议 ,称为预测的 P坚持 CSMA。 LonTa lk 协议在保留 CSMA 协议优点的同时 ,注意克服它在控制中的不足。 目前存在的MAC 协议 (如 IEEE 、 、 、 )都不能在重负载下很好地保持网络高效率、支持大网络系统和多通信介质。 如果有很多网络节点等待网络空闲 ,一旦网络空闲 ,这些节点都会马上发送报文而产生碰撞。 它们产生碰撞后会后退一段时间 ,假如这段时间相同 ,就会发生重复碰撞 ,这将使网络效率大大降低。 在预测的 P坚持 CSMA 中 ,所有 LonWorks 节点等待随机时间片间隔访问介质 , 这就避免了以上情况的发生。 在 LonWorks中 ,每个节点发送前随机插入1~ 16 个很小的随机时间片。 在空闲网络中 ,每个节点发送前平均插入 8个随机时间片。 在 P坚持 CSMA 中 ,当一个节点有信息需要发送时并不立即发送 ,而是等待一个概率为 P的随机时间片。 而 LonTalk 协议可根据网络负载动态调整 P 值。 时间片的增加通过一个 N 值 ,插入的随机时间片为 N 16,这个 N 值的取值范围是 1~ 63。 LonTalk 称 N为网络积压的估计值 ,是对当前发送周期有多少个节点有报文需要发送的估计。 LonTalk 协议根据网络积压动态地调整介质访问 ,允许网络在轻负载情况下用较短 的时间片 ,在重负载情况下用较长的。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。