新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于ATmega8515的USB-CAN适配器的实现

基于ATmega8515的USB-CAN适配器的实现

作者:时间:2013-10-26来源:网络收藏

  CAN(Controller Area Network)总线作为一种多主机局部网现场总线,由于其组网的灵活性和便捷性、通信的高效性和可靠性以及低廉的成本,在工厂的分散控制领域受到了广泛的应用. 现在的工厂自动化控制,既需要“分散控制”,更需要有效的“集中管理”,以保障生产的安全和效率,而联络各种设备的现场总线和对设备进行监控的工作站(通常为工业PC机) 之间的通信成为一个关键的咽喉. 以往的监控站和现场总线之间的通信大多采用两种方式:一是设计专用的通信卡和现场总线进行通信;二是通过PC机的RS-232C标准接口和现场总线进行接口.使用专用的通信卡对于现在的小型化控制设备已不太方便和实用,而以最高波特率仅为38. 4kb/s 的RS-232C标准接口和最高波特率达1 Mb/s的CAN总线进行接口,无疑会造成CAN总线和监控站之间的通信“瓶颈”问题.

  可见,包括RS-232 在内的接口已经无法满足PC机与外部设备之间不断提高的速度以及稳定性、易用性等方面的要求,并给工程技术人员的设计和用户的运用带来诸多不便. USB(通用串行总线) 的出现解决了上述问题. USB以其优越的易用性、稳定性、兼容性、扩展性、完备性、网络性和低功耗的特点得到了广泛的欢迎和应用,目前的PC机无论是台式还是便携式,均带有 USB插口,并且在最新发布的USB2. 0 版本中,USB 的带宽已经提升到了480Mb/s. 基于上述原因,作者利用Atmel公司最新推出的RISC架构的微控器 , 设计了一种USB总线到CAN总线的专用来对CAN 总线上的设备进行监控. 用USB和CAN总线进行对接,解决了CAN总线和PC机间的通信“瓶颈”问题,提高了通信速度及效率,同时又达到了稳定、易用的目的.

1  的硬件设计

  本文所设计的的主要特点是:(1) PC机和CAN总线之间数据传输波特率可以达到CAN总线1 Mb/s 的最高传输效率; (2) PC机和CAN总线之间数据传输可靠性高,其硬件系统电路如图1 所示,其中CAN 总线的控制器选用Philips公司的独立CAN总线控制器SJA1000 ,USB总线控制器选择全速器件USBN9603 ,两个总线控制器之间的协调处理器采用高性能的AVR 单片机,从而保障了通信速率;CAN 总线控制器和CAN 总线进行光电隔离,采用DC/DC 电源变换器件给光电隔离器件及其后端器件供电,彻底隔离CAN 总线和PC机之间的电气干扰,保障了PC机的安全性.

图1  适配器电气原理图

1. 1  外部微控制器
  独立CAN总线控制器SJA1000 和全速USB总线节点控制器USBN9603必须有外部微控制器进行控制才能工作. 设计中采用Atmel公司最新推出的高性能、低功耗的8 位AVR微控制器 ,给USB-CAN适配器带来诸多优点,并且提高了其性价比.

  ATmega8515具有低功耗特点,供电电压在4.5 ~5.5V DC ,其引脚Vcc 和GND之间最高电流为20mA. 而USB口电源为+ 5V DC,最大可提供500mA电流,故在适配器的电路设计中利用USB口提供的电源直接供电,免去了电源电路,使电路更为简洁.

  ATmega8515 是RISC架构,有多达130 条功能强大的指令(大部分只用一个时钟周期执行) ,32×8通用工作寄存器,完全静态运作,在16MHz 的晶振下运行速度可以达到16MIPS ,片上2周期的乘法器,其运算速度是目前常用的8051单片机的10多倍,用它可以大大减少USB总线控制器和CAN总线控制器之间协调处理的时间,提高了USB-CAN适配器的实际通信速率.

  微控制器具有非易失性的程序和数据存储器,8K字节的在线可编程Flash;可选驻留代码区带有独立的锁存位,通过片上驻留程序可以在线编程实现真正的Read-While-Write 操作;512字节的EEPROM,可进行10 万次擦写,使USB-CAN 适配器的重要设置参数在掉电情况下仍能保存;512 字节的SRAM,可选用对AVR 微控制器进行C 或C + + 编程的编译器, 为开发比较大的程序带来了方便( 例如AT90S1200 没有RAM空间来建立堆栈,只能运用汇编器) ;带有软件加密位;而且微控制器的外围器件中有2 个定时P计数器,具有独立的预分频、比较模式及捕捉模式;3 个PWM通道;可编程串行USART;主P从SPI 串行接口,如图1 中J2 和SPI 的MISO、MOSI、SCK相接,J2 接在串行下载线ISP 上可在线编程;具有独立片上振荡器的可编程看门狗计时器,这些给USB-CAN 适配器控制软件提供了充足的存储、开发空间和安全性.

  ATmega8515可以扩展高达64K字节的外部程序存储器,带有ALE (即外部数据存储器地址锁存使能) 引脚,可以很方便地与SJA1000 和USBN9603引脚相连,这是除了AT90S4414/8815 外其它AVR 微处理器所没有的. 如图1 所示,SJA1000 在Meag8515 的空间地址为0x7F00H ~ 0x7F7FH , USBN9603 在Meag8515 的空间地址为0xBF00H~0xBFFFH.

1. 2  USB总线控制器
  USB -CAN适配器中的USB 总线控制器USBN9603是全速USB 总线节点控制器,传输数据波特率最高可达12Mb/s. USBN9603内部集成收发器,通过18~27Ω的终端电阻与USB 电缆连接,如图1中R7、R8 ;片内集成了倍频电路PLL ,可降低EMI ;并具有可编程时钟输出功能,如图1 中U2 的CLKOUT引脚,在加电复位状态下,默认频率输出为4 MHz ,通过微处理器编程设置,其输出频率为frequency = 48 MHz/(CLKDIV + 1) ,其中CLKDIV 为0~15 之间的整数,当CLKDIV = 2时,可以为ATmega8515 提供16MHz 时钟源,简化了微处理器外围电路;USBN9603 内部集成了1个3. 3V 的调节器,通过1 个1. 5 kΩ的上拉电阻(如图1中R1) 连接到USB 的D + 数据线上,可以使USB 主控制器识别出有1 个USB 全速设备正在连接.

  USBN9603 有7 个基于FIFO 的端点:1 个必需的双向控制端点EPC0 (8 字节缓存), 3 个发送端点EPC1、EPC3 和EPC5 (每个64 字节缓存) ,3 个接端点EPC2、EPC4 和EPC6 (每个64 字节缓存) . 充分利用USBN9603 的FIFO ,可以使ATmega8515 微处理器和USBN9603 控制器并行运行,大大提高了适配器的运行效率.

  USBN9603 的MODE0、MODE1 和ATmega8515 的2 个引脚相连,通过控制2 个引脚的电平,可以选择USBN9603 和微处理器之间的接口方式(如表1 所示) .

表1  USBN9603 接口方式

  USBN9603 支持DMA ,图1 中ATmega8515 通过控制BACK为低电平来使能或高电平禁止DMA. 此外,USBN9603 的中断输出INTR 接到ATmega8515 的INTR0 上,使ATmega8515 能够对USBN9603进行及时的状态诊断和事件处理.

1. 3  CAN总线控制器
  USB -CAN适配器中的SJA1000是工业自动控制领域中独立的CAN总线控制器, 是PhilipsSemiconductors公司继PCA82C200的下一代产品,在PCA82C200 的BasicCAN模式基础上, 增加了符合CAN2.0 协议规定的PeliCAN 模式, 因此它和PCA82C200 在电气上是兼容的;支持11 位标识符ID和29 位标识符ID ;在最高达24MHz 的晶振下,通信速率达1 Mb/s ;发送缓存13 个字节,接收缓存有64个字节,采用FIFO 模式,减少了接收等待时间,提高了实际通信效率.

  USB-CAN 适配器数据传输处理框图如图2 所示,CAN 总线控制器的数据地址复用口和ATmega8515的PA 口相连,它的中断使能端和ATmega8515 的INT1引脚相连,使得ATmega8515能够对SJA1000进行及时的状态诊断和事件处理;串行数据传输端通过光电隔离器件6N137和CAN控制器接口器件PCA82C250相连,使USB-CAN适配器的稳定性及抗干扰能力大为提高.


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭