新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于CAN总线的现场设备控制管理系统

基于CAN总线的现场设备控制管理系统

作者:时间:2012-12-04来源:网络收藏

SJA1000作为微控制器的片外扩展芯片,其片选引脚CS应接在微控制器的P2.0 上,以用于决定CAN控制器各寄存器的地址。SJA1000通过CAN总线驱动器PCA82C250连接在物理总线上。PCA82C250器件可提供对总线的差动发送能力和对CAN控制器的差动接受能力,它同时完全和“ISO11898”标准兼容。由于通信信号传输到导线的端点时会发生反射,而且反射信号会干扰正常信号的传输,因此,总线两端应接有终端电阻R1、R2,以消除反射信号,其阻值应当与传输电缆的特性阻抗大致相当。

2.CAN节点的软件设计
本节点的软件编程主要包括A/D转换(ADC)、CAN控制器的初始化、CAN总线数据的发送和接收等几个部分。主程序的流程图如图3所示。


下面分别对这几个主要部分的程序设计做一介绍。
2.1 A/D转换部分
笔者在本设计中采用的是单步A/D转换模式,并将A/D转换结果存入指定的数据存储区。具体步骤如下:
(1)通过设置ADC控制寄存器(ADCCON1和ADCCON(2)的值来确定A/D转换的工作状态和采样通道号;
(2)使能ADC中断,置位SCONV位以启动单步A/D转换;
(3)等待响应ADC中断,并进入中断服务程序;
(4)把采样所得的数据从ADCDATAL和ADC-DATAH两个特殊寄存器中取出,并存入预设的片内数据存储器中,然后退出中断服务程序;
(5)判断所需通道是否采样完毕,如果未完成,则设置采样通道号并返回步骤(2),若完成则退出A/D转换子程序。
通过该程序可随时根据实际需要更改采样通道数,并将采样结果直接存入指定数据存储区,以为今后向CAN总线发送所得数据提供便利。

2.2 SJA1000的初始化
CAN的通信协议主要是由CAN控制器完成的,因此,要想实现CAN节点的数据传送,对CAN控制器的初始化是十分关键的。这个步骤直接决定着该CAN网络系统各节点所共同遵守的协议。对SJA1000进行初始化实际上就是通过单片机向其片内的各个寄存器写入控制字的过程,其寄存器包括以下几个:
REG CONTROL―内部控制寄存器地址;
REG COMMAND―内部命令寄存器地址;
REG STATUS ―内部状态寄存器地址;
REG INTERRUPT―内部中断寄存器地址;
REG ACR―内部验收代码寄存器地址;
REG AMR―内部验收屏蔽寄存器地址;
REG BTR0―总线定时寄存器0;
REG BTR1―总线定时寄存器1;
REG OCR―输出控制寄存器。
其中:BTR0、BTR1寄存器的内容可用于决定系统通信的波特率和CAN协议物理层中的同步跳转宽度,因此,对于一个系统中的所有节点,这两个寄存器的内容必须相同(包括上位机),否则将无法进行通信;OCR寄存器的内容用于决定CAN控制器的输出方式;而写入ACR、AMR寄存器的内容则要根据实际的网络系统和报文标志符来决定。本设计中笔者采用的是BasicCAN模式。
完成初始化后,CAN控制器就能正常运行了,但是要实现具体的数据收发任务,还必须编制特定的收、发程序。

2.3 CAN总线数据的发送和接收
(1)发送部分的程序设计
用CAN总线发送数据的流程图如图4所示。实际上,在程序运行过程中,常常会在发送某一帧数据时发现上一帧的数据还没有完全发送完毕(可以通过查询状态寄存器REG STATUS的第4位BIT TCS的显、隐状态可了解上次数据的发送情况)。因此,笔者采用的处理方法是:通过指令启动本次发送之后,就不停地查询状态寄存器,以判断本次发送是否完成,直到确定完成为止。这样可以为下次发送提供便利,同时也有利于程序的顺利执行,从而避免出现错误。




(2)接收部分的程序设计
图5所示是该系统接收部分的软件流程图。实际上,在对响应速度要求不太高的场合,以查询方式来设计接收子程序是最简单、最可靠的方式。如果总线上有数据发往本节点,则通过查询状态寄存器的第1位BIT_RBS的位状态,便可得知接收缓冲区(RXFIFO)中的可用信息,然后通过软件将RXFIFO中的数据逐个“移入”到指定的片内存储空间即可。对于这样一个主要以数据采集功能为主的CAN节点,这些数据多半是由CAN网络中的“控制中心”发来的控制信号,设计时把它们留给ADμC812进一步处理就可以了。

参考文献
1 Bosch 公司 CAN 协议规范 V2.0版本
2 肖海荣 周风余.基于SJA1000的系统智能节点设计 计算机自动测量与控制 2001、9(2)
3 邬宽明.原理和应用系统设计,北京航空航天大学出版社
4 SJA1000独立CAN控制器介绍,广州周立功单片机发展有限公司.
5 独立CAN器件SJA1000的应用,东南大学学报,2002年3月.

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭