论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
目 录
1 前言…………………………………………………………………………………1
2 基于Linux下USB设备识别技术………………………………………………2
2.1必要说明…………………………………………………………………………………2
3 MAD器件及其PCB…………………………………………………………………4
3.1器件…………………………………………………………………………4
3.2布线…………………………………………………………………………5
3.3跳线配置……………………………………………………………………5
3.4开关……………………………………………………………………………………5
3.5 LEDS………………………………………………………………………………………5
4 MAD固件源代码及其分析……………………………………………………6
4.1 硬件抽象层……………………………………………………………………………6
4.2 D12命令接口…………………………………………………………………………9
4.3中断服务例程……………………………………………………………………………9
4.4 USB标准请求……………………………………………………………………………11
4.5厂商请求…………………………………………………………………………………11
4.6主循环……………………………………………………………………………………12
5 MAD设备驱动程序及所涉之内核代码的分析………………………………14
5.1概念中的驱动程序………………………………………………………………………14 (科教论文网 lw.NsEac.com编辑整理)
5.2 Linux内核模块(LKM)与驱动模块以及1个范例模块……………………………15
5.31个范例性应用程序……………………………………………………………………16
5.4 MAD的驱动程序………………………………………………………………………18
5.5第1次跟踪内核及运行结果……………………………………………………………23
5.6更多内核设施和机制……………………………………………………………………29
5.71些讨论…………………………………………………………………………………30
6结论………………………………………………………………………………31
参考文献……………………………………………………………………………32
致 谢……………………………………………………………………………33
摘 要
本文介绍了1个事实上的USB设备-MiniAngelDaemon(MAD或简称MN)。理想中的MAD具有1些标准的输入接口,如温度探头、光探头、湿度探头等,以及标准输出接口,如各类电器的控制等。这正是MAD命名的由来。这个版本的MAD尚未实现如此丰富的功能。目前她的固件和驱动程序可以完成USB的标准请求,作为USB设备这是必须的。在应用程序的控制下,她还能够控制其上的两个LED(如果换用合适的继电器,可以控制直接启动的电器,如台灯)。本文力图通过硬件和编程来实现USB在Linux下像Windows中1样实现完全"即插即用"。
整个项目包括:硬件设计:芯片的选择、制作PCB( 印刷电路板)以及调试;固件设计:整体构架、规划、调试;驱动程序:构架、调试以及几个测试用的应用程序。
关键词: USB ;单片机 ;Linux。
Abstract
Here we introduce a defacto USB device named as MiniAngelDaemon (short for MAD or MN). Maybe as a mature product, at last MAD will have some standard INPUT port such as temperature-sensor/photosenstive -sensor/humidity-sensor; and some standard OUTPUT port, such as kinds of controller for equipments. This is the reason for the name of " MiniAngelDaemon ". 中国大学排名
But now, there is a lack of those function. At this moment her FirmWare and Driver can work out USB standard request like all USB devices. And under a Application, you can turn on or off the LEDs on MAD (of course, choose suitable relay, MAD can control switch-type equipm like desk lamp). This text try to make it realization which is completely "plug and play"(PNP)
of carrying out the equipments of USB to be under the Linux as Windows by hardware and programming.
The whole project includes: HardWare Design: make sure which chip(s) should be installed and make PCB (Printed Circuit Board) and test; FirmWare Design: make sure the whole architecture and the layout of some data structure and test/debug; Driver Design: study the main frame of Linux USB Driver and some kernel knowledge and test it and some demo applications.
Keywords: USB ;MCU ;Linux.
1前言
Linux操作系统是1个源码公开、结构清晰、功能强大,且已成为1个稳定可靠功能完善的系统,其开发群体的有效组织和高效工作,使得linux系统稳定发展并得到良好维护。USB是英文"Universal Serial Bus"的缩写,意为"通用串行总线",是由Compaq(康柏)、DEC、IBM、Intel、NEC、微软以及Northern Telecom(北方电讯)等公司于1994年11月共同提出的,其主要目的就是为了解决接口标准太多的弊端。USB使用1个4针插头作为标准插头,并通过这个标准接头,采用菊花瓣形式把所有外设连接起来,它采用串行方式传输数据,目前最大数据传输率为12Mbps, 支持多数据流和多个设备并行操作,允许外设热插拔。
目前,USB接口虽然只发展了2代(USB1.0/1.1,USB2.0),但是USB综合了1个多平台标准的所有优点 -- 包括降低成本,增加兼容性,可连接大量的外部设备,融合先进的功能和品质,使其逐步成为PC接口标准,进入了高速发展期。
USB设备越来越多,而Linux在硬件配置上仍然没有做到完全即插即用,对于Linux怎样配置和使用他们,也越来越成为困扰我们的1大问题,正确支持和配置常见的USB设备,就是其使用必不可少的关键1步,我将着力从Linux系统下设备驱动的架构,去阐述怎样去使用和配置以及怎样编制USB设备驱动。对于1般用户,可以使他们明晰Linux设备驱动方式,为更好地配置和使用USB设备提供了方便;而对于希望开发Linux系统下USB设备驱动的程序员,提供了初步学习USB驱动架构的机会。