can(controller area network)控制局域网络是一种串行通信网络。它采用了许多新技术和独特的设计,因而使其在可靠性、实时性和灵活性方面具有突出的优点。这些卓越的性能使can总线得以在全球范围内一直保持高速发展。考虑到can总线的成长性及许多单片机中集成有can总线控制器,且can总线专用控制器ic术易从市场上得到,因此,在笔者设计的发电机状态监测仪中采用can总线技术。
1 can总线系统的组成模式
基于现场总线的发电机状态监测仪由智能数据采集模块、工控机(ipc)、can总线三部分组成。其系统结构如图1所示。每个模块通过can总线与一台工控机系统。工控机的主要功能是对智能数据采集模块的参数进行设置,并通过现场总线网络实时获取智能数据采集模块的数据,如发电机事件记录、故障录波;监测数据的实时显示、趋势分析、异常报警和完成报表输出等功能。can总线部分主要是由can总线适配卡、通讯介质以及相应的通讯软件构成
。
2 can智能适配卡的硬件结构
can总线的卓越性能为发电机状态监测系统的高速数据通讯提供了保障,但很多工业pc机并不带有can总线接口,为了在ipc上扩展can总线的监控和管理功能,笔者设计了一块适配卡插队ipc的扩展插槽内,以完成can接口与ipc的扩展功能。
can总线pc适配卡的硬件电路如图2所示,它主要包括89c52单片机(内含8k e2prom、256字节ram)、地址译码与中断信号控制逻辑电路epm7128s、共享存储器双口ram(idt7132)、can控制器sja1000芯片和光电隔离电路(6n137)以及can驱动器82c520等部分组成。
要实现pc机和can控制器之间的数据传送,必须在pc机和适与卡上的mpc之间建立起双向的数据交换通道。通过isa总线实现单片机系统与主机之间交换数据有以下两种实现方法:一是静态数据传送,这种方法采用并行接口器件(如8255)或锁存器(如74ls373)等构成一字节深度的fifo。该方法较为简单,但一次传输的数据量小,因而只适应数据量小、速度要求不高的场合;二是共用单片机系统外部数据存储器。此时可直接采用集成双端口ram或在通用ram加上一些控制逻辑组成双口ram电路。集成双口ram是一种性能优良的快速快通器件,适用于多cpu分布式系统及高速数字系统中。它提供了两路完全独立的端口,每个端口都有完整的地址、数据和控制线。对器件的使用者而言,它与一般ram并无大的区别,只有在两边同时读写同一地址单元时,才发生争用现象。利用双口ram提供指示信号,采用适当的通信规则就可避免争用,以实现快速数据的交换。集成双口ram不仅易于实现,而且价格也不高。can信号传输采用短帧结构(8个字节),适配卡对双口ram的容量要求并不大,故可选用idt7130、idt7132、idt71231等。本文选用2k×8位的带忙信号busy的idt7132。can通信控制器选用philips公司生产的能支持can2.0b协议并与82c200完全兼容的sja1000,如把它视为存储器映射的寄存器,则易于与89c52接口。为增强can总线的差动发送和接收能力,本设计采用了can总线收发接口电路82c250。在sja1000与从机的82c250之间接入光电耦合器可增强系统的抗干扰能力。光耦可采用高速光耦6n137。光耦两侧应用采用dc-dc隔离电源,可选用力源公司生产的ps250dc5d5s。
3 伸裁方式
双口ram通信方式的关键是处理好争用现象,避免因此而产生的读写错误。idt7132能够提供硬件判优方式,并可利用busy引脚的信号来提高系统的灵活性。在图2的硬件电路中,由于idt7132内含硬件判优电路且两边端口都有busy引脚。因此为两端口争用同一地址单元时,其片内硬件电路可根据两边的地址、片选以及读写信号到达选后顺序来裁决哪个端口有使用权。
由此可知,busy信号可直接至支持插入等待时序的cpu如80c196的ready引脚,而无需软件支持。在本卡中,由于89c52没有ready信号,因而在89c52发出读写idt7132命令时将锁存busyr信号,而只需读p1.6口的值就可判断刚才对idt7132读写时是否存在冲突。当p1.6的值为1时,刚才询门不存在冲突;当1.6的值为0时,刚才询问存在冲公安厅。此时要重发读写idt7132的命令。由于isa总线没有ready信号,也没有通用的i/o引脚,因而可将来自idt7132的busyl信号接至数据线的最低位d0。但因为除了查询busyl引脚电平时外,busyl不应接到d0,因而应采用三态门74l125。busyl接三态门的输入端,三态门输出端接isa总线数据线d0位,其门控信号由a9~a5产生,故将占用isa总线一个i/o端口。设计时应该选用一个空闲的端口号,这里选用330h(双口ram侧,pc机则需换码),即将a9~a5译码为11001.具体电路如图3所示。
4 适配卡的软件设计
适配卡主要用来承担上位计算机和can节点之间的数据转发任务,
其软件设计也包括两部分:第一部分是pc机端的应用程序接口(api)函数,负责完成pc机端与双口ram之间的通信,该部分可以采用可视化的编程工具如c++builder编写。pc机端软件功能主要包括向适配卡上的双口ram发送控制命令、数据命令和请求数据命令,还将接收到的数据进行后处理(如,显示、报表等);第二部分是卡上单片机端的程序设计,负责单片机与双口ram以主导can控制器之间的通信,该部分可以采用汇编语言asm51或franklin c51编写。软件设计的主要任务是向can控制器转发来自pc机的命令,并由can控制器进一步转发至can节点;同时,将can控制器接收的来自can节点的数据、状态信息送到双口ram。
5 需要说明的问题
can的协议规范(can specification 2.0a/b)只是一个低层的规范。因而还需要一个高层/应用层的协议,can的能力是由高层协议来选定和限制的。目前国际上can的应用层协议很多,如devicenet、canopen、cankingdom等,但用户可以定制更简单的应用层协议。应用层协议的任务一方面是对将要发送的数据进行分类、拆卸、合并,并确定发送对象,然后根据can的数据链路层协议规范填写can的各个信息帧。另一方面是解释接收到的数据的具体含义并对其进行相应的处理。
神经计算机芯片Truenorth详细资料
【江苏润石】可独立配置方向的四通道电平转换器RS4T774
存储器集成电路测试,记忆体积体电路测试,Memory IC Test
基于stm32的牙医综合治疗椅控制系统设计方案
AMD全新架构的RX 6000系列显卡引发关注
CAN适配卡发电机状态监测仪中的设计方案
动力电池的热管理说明
一次消谐装置的选型原则及使用注意事项
智慧城市龙头股有哪些_智慧城市龙头股一览
特斯拉Q3盈利超预期 考验仍继续
柔性电路板的原材料分析
[图文]四编码遥控调光开关电路剖析
三星手机在华市场低至“冰点”,旗舰手机降价促销,欲将再次重组自我挽救!
2016旗舰手机的“芯事”详解
为什么会有物联网从C端向B端的转变?
AP5165B 36V 1A LED降压恒流驱动器 车灯 替代PT4115 支持PWM调光 线性调光
德国弗劳恩霍夫研究所的三个部门,正尝试将一种新的雷达解决方案带到道路上
坚果Pro 3正式亮相该机搭载SmartisanOS 7.0系统最高拥有256GB内存
未来两年内气滑环领域的发展市场前景分析
区块链将如何改变未来游戏的设计方式