CAN总线分布式系统适配卡和控制单元设计

时间:2012-02-29来源:网络
3 控制单元设计
控制单元的任务就是对现场环境参数进行采集并从CAN总线上接收上位机的命令。根据上位机的要求,对设备进行控制或将采集的数据通过CAN总线传给上位机。现以温室控制单元为例说明控制单元设计方法。温室控制单元的结构原理如图8所示。以AT89C52为核心,采用2片8255扩展I/O端口,其中2个PA口和1个PB口用来检测天窗、遮阳伞、补光灯、通风机等21路开关量的状态。由于8255的PC口的各位通过置复位控制字可以单独置位或复位,AT89C52的P1口可以按位寻址,所以用8255的2个PC口和AP89C52的P1口来控制继电器的吸合。3片8位A/D转换器ADC0809实现对温度、湿度、pH值、CO2浓度、光照强度、液位等20路模拟量的数据采集。

控制单元的控制软件采用汇编语言编程,主要包括初始化、数据采集、数据通信、I/O接口控制等功能。初始化包括对8255和SJA1000的初始化,使8255的PA、PB口作为输入口,PC口各位通过置复位控制字可以单独置位或复位,从而开启或停止一个继电器的动作。数据采集采用查询方式工作,每一路模拟量连续采集3次,中值滤波后作为该传感器的数据存入相应的内部RAM中,全部数据采集完后再检测开关状态并存入相应RAM中。随后开CPU中断,进入数据循环采集状态,等待CAN通信中断的产生。本系统采用中断方式实现AT89C52与SJA1000之间的通信。

需要说明的是,CAN2.0A或CAN 2.0B协议只是一个低层的规范,用户还需要定制简单的应用层协议。应用层协议的任务一方面是将要发送的数据分类、拆卸、合并,确定发送对象,再根据CAN的数据链路层协议规范填写CAN的各个信息帧;另一方面是根据应用层协议解释接收数据的具体含义,并进行相应的处理。
1 2 3

关键词: CAN总线 适配卡 控制单元 SJA1000 双口RAM

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版