background image

图 3 交直流电源电压测控节点硬件图

 

CAN 接口适配卡的结构相对比较简单,专门负责在上位微机与 CAN 总线之间传递消息,
其结构如图 4 所示。从图中可以看出适配卡由微控制器电路、双口 RAM 电路和 CAN 通信控
制电路三部分组成。有了前面测控节点的设计经验,这里依然选择 80C196KC 作为微控制
器,比较常用的是采用功能相对简单的 89C51(ATMEL 公司的产品)[5]。选择双口 RAM 
IDT7132 作为 PC 机与 80C196KC 交换数据的通道,并采用内存映像法[6],把 IDT7132 数
据存储器地址直接映射到 PC 机内存空间的高端。CAN 通信部分与测控节点相同,这里不
再详述。设计中若采用中断接收数据方式,应注意在 SJA1000 的 INT 引脚和 VCC 引脚间接
一上拉电阻(约 5kΩ),否则会一直处于中断状态。

图 4 CAN 接口适配卡结构图

3 系统软件设计

系统软件设计包括现场测控节点的数据采集与处理软件设计、CAN 接口适配卡通信软件设
计和上位机管理软件设计。上位机管理软件采用 Visual C++编写,主要完成设备状态和工艺
参数的数据采集;向测控节点发送请求修改控制参数;显示动态实时数据和历史曲线图;
对历史数据进行保存和打印报表。现场测控节点软件采用 80C196 汇编语言编程,主要完成
三项任务:一是检测系统各项物理参数以及设备的工作状态参数并传到 CAN 总线上,以监
视系统运行状况和趋势;二是根据控制算法对相应的量进行实时控制;三是对异常状况的
报警处理。CAN 接口适配卡通信软件跟测控节点 CAN 通信软件基本相同。下面着重介绍
CAN 通信软件的设计。程序首先对 SJA1000 进行初始化,设置好工作模式、滤波功能、通信
波特率和输出特性后,就处于接收中断中。在接收完毕后,对接收的信息进行处理,或响
应远程帧,或调用发送子程序发送数据,或向上位机报警。在此期间若有错误发生,可以
利用 SJA1000 方便的错误代码捕捉功能了解详细信息并启动错误处理机制。主程序流程图
如图 5 所示。