论文部分内容阅读
随着信息技术的飞速发展,ADSL技术逐渐成为当今最重要的宽带接入技术。USB接口ADSL调制解调器将USB协议和ADSL技术结合在一起,满足了使用者的不同需求。Linux是近年来向家用桌面电脑进军的操作系统,它以强劲的势头向MicrosoftWindows家族产品发起进攻。很多电脑产品对Windows的支持很好,却和Linux绝缘了,因为厂家没有开发基于Linux的驱动程序。USBADSL调制解调器生产厂商,就现在了解的几家大的芯片生产厂家(Conexant、ITEX、Globespan等等)看来,也都不提供官方的Linux驱动程序。本课题在分析ADSL、ATM、PPP以及USB技术的基础上,开发了USB接口ADSL调制解调器在Linux下的主机驱动程序。
论文简要描述了ADSL、ATM、PPP技术和USB协议的重要概念,并详细地讲解了驱动程序各部分的设计思路和实现方法。首先从ADSL接入技术入手,将PPPoE技术所涉及到的ATM分层结构、适配层协议类型AAL5、PPP拨号连接、ATM网络IP数据封装、PVC连接方式、ATM信元的ADSL传送等进行了重点的介绍。在论述了驱动程序的设计流程之后,按照设计流程的顺序,将驱动中每个文件的功能和实现机制逐一详细阐述。
驱动程序中以内核驱动模块为工作主体,USB设备初始化以后,由输入输出控制函数通知内核驱动模块,数据线路开通,可以开始数据交换,再创建一个伪网络接口代替以太网口,使ATM数据从这个虚拟接口输入输出,最后PPPoE软件通过该接口进行虚拟拨号,连接ISP,完成接入。
实现过程中利用第三方提供的函数库,对用户区编写设备驱动的工作量进行了简化,提高了效率。这其中包括CRC校验和SARLIB这两组函数,一组提供了CRC32校验,一组提供了ATMSAR分割重组(主要是针对AAL5)的函数调用。
本课题对基于Linux的驱动程序设计进行了有益的尝试,并且取得了预期的效果。