微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于AT90CAN128的开关量控制单元设计

基于AT90CAN128的开关量控制单元设计

时间:11-03 来源:互联网 点击:
3.3 软件设计

CAN总线节点要有效、实时地完成通信任务,软件的设计是关键。CAN总线节点的软件设计主要包括CAN控制器的初始化、数据接收和数据发送程序。主程序通过调用函数来实现数据的接收和发送。

3.3.1 CAN初始化

为了正确地实现通信,这一部分要对波特率,标识码寄存器CANIDT、标识码屏蔽寄存器CANIDM,发送与接收Mob的页号,数据长度、中断开启、Mob使能等内容作出设置。本设计采用CAN2.0A协议,即标识符为11位。将标识码寄存器CANIDT1设置为开关量控制单元的地址Addr,其余的标识码寄存器设置为0。该地址只使用一个8位寄存器,因此标识码屏蔽寄存器只需设置CANIDM1为0xFF,其余的标识码屏蔽寄存器设置为0。



由4个标识码寄存器CANIDT、标识码屏蔽寄存器CANIDM组成验收滤波器,信息只有通过它的验收滤波才能被接收。所有验收屏蔽寄存器为0的位,验收码寄存器和CAN信息帧对应位必须相同才能验收通过;而所有验收屏蔽寄存器为1的位,验收码寄存器对应位的验收滤波功能则被屏蔽。本例中只接收ID为Addr的信息。

3.3.2 发送子程序

发送时只需将待发送的数据按特定格式送入发送缓存区中,然后启动发送即可。



3.3.3 接收子程序

消息的接收采用中断方式实现。首先要关闭接收中断,然后设置CANPAGE寄存器来指定接收的页数,随后由CANCDMob寄存器来控制接收动作。当有消息到达时,将触发CANSTMob寄存器中的RXOK中断,消息中的数据将被装载到CANMSG寄存器中。





结 语

本文详细介绍了以AT90CAN128微控制器为核心的开关量控制单元的主要软硬件设计。与目前同类型的单片机相比较,AT90CAN128由于内置CAN控制器,因而可大大降低设备成本,简化硬件结构,提高通信效率、安全性以及可靠性。实践证明,开关量控制单元在计算机联锁系统中运行稳定,能够很好地实现预期的功能。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top