>
摘要:CAN总线接口设计以AduC812为控制核心,将其地址数据总线与CAN控制器相连,经光电隔离把地址/数据发送到CAN收发器后,可在CAN总线上的传输。AduC812和CAN控制器的复位由复位芯片分别控制。CAN驱动程序采用CAN2.0A协议。通过设置812IE寄存器、初始化CAN控制器并将其置为复位模式、配置控制器寄存器并置为正常工作模式等,可实现CAN通讯。
关键词:接口;CAN总线;AduC812;CAN2.0A
引言
较RS-232和CCITV2.4通信标准,CAN在传输速率、距离、精确性以及总线负载能力上都具优越性,因此广泛应用于控制现场。为更节省资源,采用AduC812为控制核心,进行CAN接口设计。美国AD公司AduC812单片机带8路12位ADC,2路12位DAC,片内8K字节FLASH与8051指令兼容,8K字节闪速/电擦除(Flash/EE)程序存储器,640字节闪速/电擦除数据存储器和256字节数据SRAM均由可编程内核控制。另外MCU具有看门狗定时器、电源监视器和ADCDMA功能,为多处理器接口和I/O扩展提供32条可编程的I/O线、I2C兼容的SPI和标准UART串行口I/O等。
硬件设计
①原理框图(图1)
图1 硬件设计原理框图
从AduC812引出的地址数据总线与CAN控制器SJA1000相连,经过光电隔离,将地址/数据发送到CAN收发器PCA82C250,通过CAN收发器PCA82C250使数据在CAN总线上传输。其复位芯片分别控制AduC812和SJA1000的复位(也可用AduC812自身看门狗)。电源转换电路将电源和地隔离,起保护和抗干扰的作用。
②相关电路说明
(a)AduC812下载电路(图2)
图2 AduC812的下载电路
AduC812下载脚接法见图4(41脚)。图3是MAX232与AduC812的接线图(AduC812未画)。
图3 MAX232与AduC812的接线图
(b)AduC812与SJA1000硬件电路(图4)
AduC812的P0口作为地址数据总线,与SJA1000相连。通过P0口访问SJA1000内部寄存器,并进行寄存器的读写操作。通过软件对SJA1000的初始化与配置,中断产生时,把数据寄存在发送缓冲区中,发送到总线上。AduC812和SJA1000的复位信号是通过复位按钮U4来产生的。当U4按下后,产生的低电平信号就使RESET和/RESET分别产生高电平和低电平,从而使二者复位。/PSEN的引脚接法通过跳线接地。当要下载程序时,将跳线短接;而当程序运行时,则将跳线断开。
图4 AduC812与SJA1000硬件电路图
③AduC812下载
下载程序到AduC812应注意PSEN的引脚电压是否为低。一般PSEN通过1k下拉电阻接地的,但本实验将PSEN通过跳线直接接地。因为测出的PSEN上拉电阻为十几千欧,因此1k下拉电阻太大。与PSEN连接的跳线要短接,只有当程序运行时才断开。对于AduC812,RESET信号为高时有效,所以下载前须保证RESET信号电平为低。
④注意事项
不能忽视DC/DC和光电隔离器的作用。若将隔离电路屏蔽,虽能下载程序也能运行程序,但AduC812寿命很短,程序运行也不稳定。空载时DCP020505的电源输出为7V的电压,故一般在5、6脚上加上500欧左右的电阻,最好再加个电源指示灯。去耦也很必要,可屏蔽电路产生的高频信号。
CAN驱动程序流程图
本设计协议采用CAN2.0A协议。其中,ID为11位,RTR设为0,数据长度为8位;每帧包含8个字节的数据,ID占2个字节,共10个字节。图5为CAN驱动程序流程图。
小结
图5 CAN驱动程序流程图
本设计的CAN接口适配卡尺寸小,下载方便。通过下载程序的修改可适时控制通讯。