新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > CAN控制器在深海测控中的应用

CAN控制器在深海测控中的应用

作者:时间:2012-06-25来源:网络收藏

  VDD1和VSS1:逻辑电路5V电源和逻辑电路地。

  XTAL:晶体振荡器放大器输入,外部晶体振荡器信号由该脚输入。

  XTAL2:晶体振荡器放大器输出,当使用外部晶体振荡器信号时,该输出引脚必须开路。

  VDD3和VSS3:输出驱动5V电源和输出驱动地。

  TX0和TX1:CAN输出驱动器0和1输出到物理总线。

  INT:中断输出,用于触发微中断;内部中断寄存器的任何位置位,INT将低电平输出;INT为开环输出;该引脚为低电平将电路从睡眠状态激活。

  RST:复位输入,用于复位CAN接口(低电平有效)。

  VDD2和VSS2:输入比较器5V电源和输入比较器地。

  RX0和RX1:从物理CAN总线输入到的输入比较器。

  与微处理器的接口非常简单,微处理器以访问外部存储器的方式来访问。由于SJA1000的内部寄存器分布在连续的地址内,所以完全可以把SJA1000当作外部RAM。在设计接口电路时,SJA1000的片选地址应与其他外部存储器的片选在逻辑上无冲突。

3系统设计

  SJA1000型CAN兼容CAN2.0A和CAN2.0B二种规范。CAN2.0B具有二种不同的帧格式:标准帧和扩展帧,前者为11位标识符,后者为29位标识符。前者的标识符比后者的标识符少2个字节。系统的CAN节点数量少,只有上位机节点和水下中心节点,所以即使距离比较远,对传输数据速度和可靠性的影响也不是很大。

  3.1单片机与CAN的硬件设计

  图2为C8051F020型单片机与SJA1000型控制器的硬件连接电路原理。SJA1000占用了0x8000-0x80FF的外部RAM空间。当单片机访问以上空间时片选信号会选中SJA1000。

  C8051F020有高低2个外部存储器接口。因此,SJA1000的AD0-AD7连接到C8051F020的高端口P7口,CS连接到基址为0x8000的外部存储器片选信号。当C8051F020访问地址0x8000-0x80FF时,CPU可对SJA1000执行相应的读/写操作。SJA1000的RD、WR和ALE分别与C8051F020的对应引脚相连,INT接C8051F020的INT0引脚,于是C8051F020可通过中断方式访问SJA1000。SJA1000的复位信号RST为低电平有效。C8051F020的AD0-AD7口用于地址/数据的输入/输出,将其配置为漏极开路方式,利用4.7kΩ上拉电阻器拉至5V。通过设置数字交叉开关,将C8051F020的外部中断引脚配置到P2.7口。

  CAN能够使用多种物理介质,例如双绞线和光纤等。该设计方案采用双绞线。信号以差分电压传送,2条信号线为CAN_H和CAN_L,静态时为2.5V,此时状态表示逻辑"1",也叫做"隐性"。CAN_H比CAN_L高,表示逻辑"0",称为"显性",此时CAN_H=3.5V,CAN_L=1.5V。TJA1050型CAN总线收发器是CAN协议控制器和物理总线之间的接口,CAN总线上二端节点须加60Ω电阻器和47nF电容器将信号吸收,以避免信号反射。为了增强CAN总线节点的抗干扰能力,SJA1000的TX1与RX1通过6N137型高速光耦后与TJA1050相连。这样就很好地实现了总线上各CAN节点间的电气隔离。其中,光耦部分电路的2个电源VCC和V_CAN必须完全隔离,否则采用光耦就是失去了意义。电源的完全隔离可采用小功率电源隔离模块和通过带多个5V隔离输出的开关电源模块实现。

  3.2软件设计

  通信协议采用"ID+命令+数据+校验"的形式,其中ID为网络设备的标识符,采用ID.18-ID.20。标识符ID.21-ID.28作为固定命令,不参与验收滤波。数据表示通信的具体内容。校验为1个字节,采用校验和的形式,由于CAN总线本身具有15位CRC校验,并且该系统节点数少,竞争不会很激烈,通信可靠性比较高。

  软件设计思想为系统上电后C8051F020先对自身和SJA1000进行初始化以确定工作主频、波特率和输出特性等,然后接收来自甲板上位机的控制命令,同时将获取的采样参数通过SJA1000传送到CAN总线上或备份到Flash存储器中;对SJA1000的初始化设计是重点,也是难点,必须对写入每个寄存器的内容进行仔细和全面考虑,否则系统将无法正常运行。可设上位机SJA1000适配卡的ACR为xx20,AMR为FF00。水下中心SJA1000的ACR为xx40,AMR为FF00。



评论


相关推荐

技术专区

关闭