随着简单易用的USB接口日益流行,在嵌入式系统中添加对USB接口的支持已成为大势所趋。本文通过介绍Linux中支持USB的各种模块和库,分析了在Linux上利用USB实现高速串口和以太网连接等通信方式的具体方法。
通用串行总线(USB,Universal Serial Bus)是一种非常实用的通信接口,其应用日益广泛。有三种方法可以使运行Linux操作系统的嵌入式系统支持USB接口,本文将对这三种方法逐一进行介绍。
基于Linux的USB设备与USB主机一般有以下三种通信方式:1.一些功能最完备结构也最复杂的设备采用用户定制内核模块来实现在标准USB总线上运行复杂的高级协议,而由USB主机上相应的用户驱动程序和应用来完成连接。2.另一些基于Linux的USB设备则利用USB总线来实现与主机上所运行的某个应用的简单的点对点串行连接。主机上的应用虽然利用了主操作系统所提供的USB编程接口,但表面看来却似乎是在通过一个典型的串口进行通信。3.最后,还有些设备以主计算机作为网关,将USB设备连接到办公局域网或互联网上,从而使USB设备看起仿佛构成了一个以太网。这种方法专业性较强,但通常可行,是主机驱动程序使该方法成为可能。
在这三种方法中,您可以根据预留给开发的时间长短和期望USB接口在嵌入式应用中所扮演的角色来决定选用那一种方法比较恰当。为了帮助您做出正确的选择,下一节将向您介绍这三种方法分别应用于基于Linux的USB设备时的情况,但首先让我们对USB接口做一个大致介绍。
USB概述
USB是一种方便快捷的接口,可用于为计算机工作站连接一些小配件。根据USB规范的定义,鼠标、键盘、音频播放和录音设备、照相机、大容量存储设备以及许多其他设备均可以通过USB接口,以高达480Mbps的速度连接到一台主计算机。协议定