2012年3月14日 星期三

rp-usb-connector

rp-usb-connector
http://code.google.com/p/rp-usb-connector/

[中文版本在本页下方:]

RoboPeak USB Connector is a driverless USB ISP programmer for AVR/C51 MCU. It is developed by RoboPeak team).

RoboPeak USB Connector is based on the work of AVR-Doper project (http://www.obdev.at/products/vusb/avrdoper.html), which is a STK500 compatible In-System Programmer (ISP) and High Voltage Serial Programmer (HVSP).
The USB connectivity is achieved using the v-usb lib (a software-only implementation of a low-speed USB device for Atmel's AVR microcontrollers). We only use a simple AVR MCU in the circuit.

The RoboPeak USB Connector can be considered as a simplified version of AVR-Doper, besides, the firmware has been written using Arduino-Lite firmware libarary and the building system.

Supported Operating Systems:

In theory, any OS with build-in HID usb drivers is supported.

As the PC-side client (avrdude.exe) can work on the following systems, RoboPeak USB Connector should work for these systems as well:
  • Linux with libusb
  • Windows from the version WinXP
  • MacOS
We had verified the following Windows Versions:
  • Windows XP
  • Windows Vista, both 32bit and 64 bit versions
  • Windows 7, both 32bit and 64 bit versions
---
RoboPeak USB Connector是由RoboPeak团队开发的供AVR/C51单片机使用的USB免驱动ISP编程器。

RoboPeak USB Connector基于AVR-Doper项目(http://www.obdev.at/products/vusb/avrdoper.html ),它是一款兼容STK500的ISP编程器和高压编程器(HVSP).

USB的通讯能力是通过v-usb库(以纯软件模拟实现基于AVR单片机的低速USB通讯)。 在RoboPeak USB Connector,我们仅使用了一块AVR芯片。

RoboPeak USB Connector可以认为是AVR-Doper的简化版本,除此以外,我们使用Arduino-Lite固件库重写了RoboPeak USB Connector的固件,并且采用Arduino-Lite的编译系统。

支持的操作系统:

理论上说,任何内建了HID usb驱动程序的操作系统均可工作。

因为PC的客户端程序(avrdude.exe)以及可以在以下操作系统上工作,因此RoboPeak USB Connector应当也支持这些操作系统:
  • Linux with libusb
  • Windows from the version WinXP
  • MacOS
我们已经验证了如下的Windows操作系统版本:
  • Windows XP
  • Windows Vista, 32位版 和 64位版
  • Windows 7, 32位版 和 64位版
RoboPeak USB Connector使用的是不含有USB接口的AVR芯片。因此,USB通讯支持是采用软件方式进行的。索性目前 v-usb开源库[4]已经提供了很优秀的封装。

软件模拟usb的优势在于可以降低设备成本(带有USB的AVR芯片成本较高),缺点是稳定性和速率上不如硬件实现。 对于本制作,稳定性和速度并不关键。

在使用USB与PC通讯时有一个烦恼的问题是驱动。直接为系统编写驱动程序会提升本制作的难度,同时对于64位 Windows系统,微软要求驱动程序进行签名。目前也有一种可以在用户态实现usb驱动的方案:libusb。但是,同样在64 位Windows系统上,这个做法就不管用了。

这里采用了另一种思路:利用那些OS自带驱动支持的USB类设备。(USB协议中预先定义了几类USB设备的种类,比如 Mass Storage就是平时用的移动硬盘、UVC设备常用于实现摄像头、HID设备用于实现键盘鼠标。OS往往会自带驱动支持 这类设备)。这里我也使用了HID类设备。理由如下:
  1. 协议比较简单,通讯单位也是数据包
  2. 支持USB1.1低速率规范,可以用v-usb实现
  3. 在Windows、Linux、Mac上均可以通过OS提供的用户态API与HID设备通讯

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。