基于ATmega8515的USB-CAN适配器的实现
发布时间:2008/6/3 0:00:00 访问次数:458
摘要: 该文通过分析目前pc机和can总线之间通信的“瓶颈”问题,从通信的实际效率角度出发,设计了基于微控制器atmega8515的通用串口总线到控制器局域网总线的适配器. 详细介绍了atmega8515、usbn9603、sja1000 的性能特点及其在usb-can适配器电路中的作用;重点论述了乒乓缓存法在适配器的固件编程上的运用;并介绍了适配器驱动程序的编程和实际应用情况.
关键词: 通用串口总线接口;控制器局域网总线;乒乓缓存法;固件;驱动程序
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架构的微控器atmega8515 , 设计了一种usb总线到can总线的专用适配器来对can 总线上的设备进行监控. 用usb和can总线进行对接,解决了can总线和pc机间的通信“瓶颈”问题,提高了通信速度及效率,同时又达到了稳定、易用的目的.
1 usb-can适配器的硬件设计
本文所设计的usb-can适配器的主要特点是:(1) pc机和can总线之间数据传输波特率可以达到can总线1 mb/s 的最高传输效率; (2) pc机和can总线之间数据传输可靠性高,其硬件系统电路如图1 所示,其中can 总线的控制器选用philips公司的独立can总线控制器sja1000 ,usb总线控制器选择全速器件usbn9603 ,两个总线控制器之间的协调处理器采用高性能的avr 单片机atmega8515,从而保障了通信速率;can 总线控制器和can 总线进行光电隔离,采用dc/dc 电源变换器件给光电隔离器件及其后端器件供电,彻底隔离can 总线和pc机之间的电气干扰,保障了pc机的安全性.
图1 usb-can适配器电气原理图
1. 1 外部微控制器
独立can总线控制器sja1000 和全速usb总线节点控制器usbn9603必须有外部微控制器进行控制才能工作. 设计中采用atmel公司最新推出的高性能、低功耗的8 位avr微控制器atmega8515 ,给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 (即外
关键词: 通用串口总线接口;控制器局域网总线;乒乓缓存法;固件;驱动程序
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架构的微控器atmega8515 , 设计了一种usb总线到can总线的专用适配器来对can 总线上的设备进行监控. 用usb和can总线进行对接,解决了can总线和pc机间的通信“瓶颈”问题,提高了通信速度及效率,同时又达到了稳定、易用的目的.
1 usb-can适配器的硬件设计
本文所设计的usb-can适配器的主要特点是:(1) pc机和can总线之间数据传输波特率可以达到can总线1 mb/s 的最高传输效率; (2) pc机和can总线之间数据传输可靠性高,其硬件系统电路如图1 所示,其中can 总线的控制器选用philips公司的独立can总线控制器sja1000 ,usb总线控制器选择全速器件usbn9603 ,两个总线控制器之间的协调处理器采用高性能的avr 单片机atmega8515,从而保障了通信速率;can 总线控制器和can 总线进行光电隔离,采用dc/dc 电源变换器件给光电隔离器件及其后端器件供电,彻底隔离can 总线和pc机之间的电气干扰,保障了pc机的安全性.
图1 usb-can适配器电气原理图
1. 1 外部微控制器
独立can总线控制器sja1000 和全速usb总线节点控制器usbn9603必须有外部微控制器进行控制才能工作. 设计中采用atmel公司最新推出的高性能、低功耗的8 位avr微控制器atmega8515 ,给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 (即外
摘要: 该文通过分析目前pc机和can总线之间通信的“瓶颈”问题,从通信的实际效率角度出发,设计了基于微控制器atmega8515的通用串口总线到控制器局域网总线的适配器. 详细介绍了atmega8515、usbn9603、sja1000 的性能特点及其在usb-can适配器电路中的作用;重点论述了乒乓缓存法在适配器的固件编程上的运用;并介绍了适配器驱动程序的编程和实际应用情况.
关键词: 通用串口总线接口;控制器局域网总线;乒乓缓存法;固件;驱动程序
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架构的微控器atmega8515 , 设计了一种usb总线到can总线的专用适配器来对can 总线上的设备进行监控. 用usb和can总线进行对接,解决了can总线和pc机间的通信“瓶颈”问题,提高了通信速度及效率,同时又达到了稳定、易用的目的.
1 usb-can适配器的硬件设计
本文所设计的usb-can适配器的主要特点是:(1) pc机和can总线之间数据传输波特率可以达到can总线1 mb/s 的最高传输效率; (2) pc机和can总线之间数据传输可靠性高,其硬件系统电路如图1 所示,其中can 总线的控制器选用philips公司的独立can总线控制器sja1000 ,usb总线控制器选择全速器件usbn9603 ,两个总线控制器之间的协调处理器采用高性能的avr 单片机atmega8515,从而保障了通信速率;can 总线控制器和can 总线进行光电隔离,采用dc/dc 电源变换器件给光电隔离器件及其后端器件供电,彻底隔离can 总线和pc机之间的电气干扰,保障了pc机的安全性.
图1 usb-can适配器电气原理图
1. 1 外部微控制器
独立can总线控制器sja1000 和全速usb总线节点控制器usbn9603必须有外部微控制器进行控制才能工作. 设计中采用atmel公司最新推出的高性能、低功耗的8 位avr微控制器atmega8515 ,给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 (即外
关键词: 通用串口总线接口;控制器局域网总线;乒乓缓存法;固件;驱动程序
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架构的微控器atmega8515 , 设计了一种usb总线到can总线的专用适配器来对can 总线上的设备进行监控. 用usb和can总线进行对接,解决了can总线和pc机间的通信“瓶颈”问题,提高了通信速度及效率,同时又达到了稳定、易用的目的.
1 usb-can适配器的硬件设计
本文所设计的usb-can适配器的主要特点是:(1) pc机和can总线之间数据传输波特率可以达到can总线1 mb/s 的最高传输效率; (2) pc机和can总线之间数据传输可靠性高,其硬件系统电路如图1 所示,其中can 总线的控制器选用philips公司的独立can总线控制器sja1000 ,usb总线控制器选择全速器件usbn9603 ,两个总线控制器之间的协调处理器采用高性能的avr 单片机atmega8515,从而保障了通信速率;can 总线控制器和can 总线进行光电隔离,采用dc/dc 电源变换器件给光电隔离器件及其后端器件供电,彻底隔离can 总线和pc机之间的电气干扰,保障了pc机的安全性.
图1 usb-can适配器电气原理图
1. 1 外部微控制器
独立can总线控制器sja1000 和全速usb总线节点控制器usbn9603必须有外部微控制器进行控制才能工作. 设计中采用atmel公司最新推出的高性能、低功耗的8 位avr微控制器atmega8515 ,给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 (即外