首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
测试测量
» CAN适配卡发电机状态监测仪中的设计方案
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
CAN适配卡发电机状态监测仪中的设计方案
发短消息
加为好友
Bazinga
当前离线
UID
1023230
帖子
5213
精华
0
积分
2607
阅读权限
70
在线时间
158 小时
注册时间
2013-12-20
最后登录
2015-10-22
金牌会员
UID
1023230
1
#
打印
字体大小:
t
T
Bazinga
发表于 2015-1-20 20:05
|
只看该作者
CAN适配卡发电机状态监测仪中的设计方案
发电机
,
监测仪
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的各个信息帧。另一方面是解释接收到的数据的具体含义并对其进行相应的处理。
收藏
分享
评分
the king of nerds
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议