- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
揭秘环境操作系统单片机开发环境版本分别为和上位机开发软件编译器概念单片机公司的一种位架构的单片机利用高性能单片机一般用系列的口来模拟的通信端口由软件来实现通信协议模拟一个低速设备从而实现单片机与计算机之间的通信和控制是产品的代号是生产商的代号不能随意设且需购买但针对于类类和通用类设备分别有一个免费对具体如下控制类类类驱动程序设备都要通过驱动才能被操作系统识别和使用最简单的驱动包括底层驱动程序和设备描述文件设备描述文件一个文本文件用于说明设备的参数主要就是设备的设备名称使用的底层驱动程序名称等一个
AVRUSB揭秘
环境:
操作系统:WINDOWS XP
单片机开发环境:AVR Studio+WINAVR(版本分别为452_v412
上位机开发软件编译器:VC++6.0
概念
1.AVR单片机:ATMEL公司的一种8位RISC架构的单片机。
2.AVRUSB:利用高性能AVR单片机(一般用MEGA系列)的IO口来模拟USB的通信端口,由软件来实现USB通信协议,模拟一个USB低速设备,从而实现AVR单片机与计算机之间的通信和控制。
3. PID、VID:PID是产品的代号,VID是生产商的代号。不能随意设,且需购买。但针对于HID类、CDC类和通用类设备分别有一个免费PID/VID对。具体如下:
VID
PID
控制类
0x16C0
0x05DC
CDC类
0x16C0
0x05DF
HID类
0x16C0
0x05E1
4.驱动程序:设备都要通过驱动才能被操作系统识别和使用,最简单的驱动包括底层驱动程序和设备描述文件。
5. 设备描述文件:一个文本文件,用于说明设备的参数,主要就是设备的PID、VID、设备名称、使用的底层驱动程序名称等。
6. libusb :一个开源USB驱动程序,支持多种操作系统平台。它已经写好了底层驱动程序,使得我们只需要编写设备描述文件。而这个驱动程序还提供了设备描述文件的生成向导。
实现
2.1.单片机程序的实现
2.1.1 建立一个工程并添加有用的文件。
新建一个工程,选择好单片机型号,然后把AVRUSB相关文件添加进去。
建议使用AVRUSB的读者单独存放一个USBDRV的文件夹,里面存放所有与AVRUSB相关的文件。实际在网上下载的例程都是这样的,我们只需把USBDRV文件夹拷到自己的项目文件中去即可。
我们只需用到:
usbdrv.h usb驱动接口文件的头文件
usbdrv.c usb驱动接口文件
usbdrvasm.S 汇编语言编写的底层接口函数
usbconfig.h 用户配置文件
注意:上面的文件除了usbconfig.h外,都在USBDRV文件夹中。在USBDRV文件夹中有一个usbconfig-prototype.h文件,这个文件是用户配置文件usbconfig.h的原始模板,我们需要将这个文件复制到项目文件夹中并将它改名为usbconfig.h。复制后,还需要再添加USBDRV文件夹的路径到项目的包含路径中,建议采用单级路径,即USBDRV文件直接建在项目文件夹内。
方法:project-configuration option-include derection,选中USBDRV即可。
2.1.2 参数配置
编译项目之前需要对AVRUSB的参数进行配置。配置文件usbconfig.h中的参数非常多,但对于简单利用只需关注下表的参数并做相应修改即可
USB_CFG_IOPORTNAME
定义USB数据线使用的端口。只要是通用的IO都可以,没有特殊的要求。
USB_CFG_DMINUS_BIT
USB数据线D-使用的引脚。
USB_CFG_DPLUS_BIT
USB数据线D+使用的引脚。因为D+要求同时连接到INT0上,所以一般情况下需要使用3个IO口。如果D+使用的引脚就是INT0,那么可以少使用一个IO端口。
USB_CFG_VENDOR_ID
设备生产商的ID号
USB_CFG_DEVICE_ID
设备的产品ID号。这两个参数就是Windows识别USB设备的主要参数。需要注意的是,这两个参数都是低字节在前,高字节在后。
USB_CFG_DEVICE_VERSION
设备的版本号次版本号在前,主版本号在后。在Windows的设备管理中可以看到这个版本号
USB_CFG_VENDOR_NAME
设备生产商的名称,它在Windows的设备管理中可以看到。这里一般写入的是网址。
USB_CFG_VENDOR_NAME_LEN
设备生产商名称的长度。
USB_CFG_DEVICE_NAME
设备的名称,它在Windows的设备管理中可以看到。设备名称和生产商的名称都是以字符的方式定义的,它们目前不支持中文。
USB_CFG_DEVICE_NAME_LEN
设备名称的长度。
2.1.3 接口函数
参数配置完成后就可以利用接口函数进行数据通信了。
实现通信只需6个函数,分别如下:
usbInit() 初始化函数
usbPoll() 事件处理函数
usbFunctionWrite 主机向单片机写入数据usbFnctionRead 主机从单片机中读取数据usbFunctionSetup 一般功能设置
usbCrc16() 数据校验(考虑到单片机能力,此
您可能关注的文档
最近下载
- T_CSGPC 019-2024 城镇地理信息系统技术规范 燃气管网.docx VIP
- 一种消旋环氧丙烷手性拆分装置.pdf VIP
- 中医肥胖管理课件图片.pptx VIP
- 3.1 卫星运行时间 同步分层作业-2024-2025学年数学四年级上册(学生版)(北师大版).pdf VIP
- [中央]2025年中国电子口岸数据中心招聘笔试历年参考题库附带答案详解.pdf
- 预包装食品标签合规性评审指南.pdf VIP
- (全)mike flood 城市内涝培训教程.pdf VIP
- 18R417-2_装配式管道支吊架_含抗震支吊架国家标准图集.pdf VIP
- 2025年高考物理大一轮复习全套复习讲义(完整版).pdf
- 四手联弹演奏技巧初探.doc VIP
文档评论(0)