admin管理员组文章数量:1531762
2024年6月18日发(作者:)
不用USBASP芯片也可用USB,纯AVR实现USB通讯:AVRUSB
AVR的速度刚好可以跟得上USB1.0的通讯速度,所以可以模拟和USB通讯。USBASP
就是这么来的(不知道什么是USBASP?就是下载器)。
AVRUSB技术探讨
作者:邵子扬、王育强、吕益光
摘要
本文介绍了一种独特的AVR单片机和计算机进行USB通信的方法:AVRUSB。介绍
了AVRUSB技术的基本原理、特点、应用,同时还详细的介绍了AVRUSB系统的单片机
软件开发和计算机软件开发的方法。
关键字:
AVRUSB,LibUSB,LibUSB-Win32
正文
1 简介
1.1 AVRUSB是什么
AVRUSB技术是利用高性能的8位RISC架构的AVR单片机,使用单片机的IO口来
模拟USB的通信端口,由软件来实现USB通信协议,将普通的AVR单片机模拟成一个
USB低速设备,从而实现AVR单片机与计算机之间的通信和控制。
AVRUSB 技术的基本原理就是利用AVR单片机的普通IO端口来模拟USB的硬件端
口进行通信。因为低速USB设备的速度是1.5M位/秒,而AVR单片机是单指令周期的,
在单片机使用12MHz的时钟频率时,正好是1.5MHz的8倍。也就是说,单片机每8条
指令就精确完成一个数据位的采集。采用这种方法时,对单片机的时序要求非常严格,所
以软件的核心部分代码完全由汇编语言实现。
1.2 AVRUSB的历史
AVRUSB 技术最早的文档可见于AVR的官方应用笔记《AVR309 Software Universal
Serial Bus (USB)》(软件USB)一文中。在这篇应用笔记里,详细的介绍了如何使用AVR
单片机的普通IO口来实现USB通信,同时介绍了计算机的驱动程序以及计算机上用户程
序的编程方法,并提供了全部源码。但是AVR309中介绍的单片机程序完全是使用汇编语
言编写的,不利于将程序移植到其他应用环境中,也不利于程序的维护(毕竟使用汇编语
言的人相对比较少,使用C语言编程是大部分人的选择),这使得其应用受到了很多限制。
后来,OBJECTIVE公司推出了AVRUSB。它以汇编语言实现USB通信的底层接口,
用C语言实现用户层的程序接口。用户接口被简化为很简单的几个函数(在最简化的情况
下,只需要三个函数,一个初始化函数、一个轮询函数和一个数据处理函数)和一个配置
文件,用户可以完全不会使用汇编语言编程。同时它还提供了一个稳定而成熟的用户程序
框架,用户可以在此框架的基础上,通过修改和扩展接口函数的功能来实现各种USB通信
功能和控制功能,实现各种带USB接口的应用系统。并且,AVRUSB支持目前最流行的
AVR GCC编译器和IAR C编译器,因此具有很强的实用性。
版权声明:本文标题:纯AVR实现USB通讯 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1718708023a714768.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论