基于Linux下TDM模块的USB主机端驱动的开发
2011-08-09刘辉,向涛,张杰
刘 辉,向 涛,张 杰
(1.重庆邮电大学重庆信科设计有限公司,重庆 400065;2.重庆邮电大学通信新技术应用研究所,重庆 400065)
责任编辑:孙 卓
0 引言
TDM330是重邮信科通信技术有限公司研发的TDSCDMA无线模块。模块提供了100PIN或者MINIPCI接口,为语音传输、短消息和数据业务的开发提供了接口,支持2.8 Mbit/s的HSDPA数据和2.2 Mbit/s的HSUPA传输速率。TDM330在硬件上不仅提供了RS-232串口,也提供一种易于使用的高速率数据传输的USB接口。全速USB的速率理论值能达到12 Mbit/s,而RS-232串口速率的理论值只能达到几百kbit/s。相对于 USB而言,RS-232串口传输的速度受到很大的限制,会导致在传输过程出现严重的数据丢包现象,因此本文通过开发USB的主机端驱动来使之开发板子DM6467与TD无线上网TDM330之间通过USB接口进行传输数据。同时,TDM芯片主机端的USB驱动将成为TD无线传输项目开发的必要环节。
1 TDM330适配的USB驱动分析
TDM330设备支持USB接口连接,应用层的数据需要通过USB接口与TDM330模块设备进行交互。根据USB主机端驱动[1-2]结构图(见图1)可以了解到用户只能和TTY层、字符设备等层之间进行数据的交流,而不能直接与USB驱动层进行数据的交流。由于TDM330在开发中仅仅用于数据业务通信,因此可以把USB设备驱动的上层看成TTY层。用户可以通过TTY层与USB设备驱动层进行通信。所以Linux的用户需要针对TDM330模块开发USB主机端驱动,使之能够枚举多个ttyUSB串口(至少2个),使其在使用TDM330模块设备时,1个串口用于数据的传输,1个串口用于命令的传输。例如1个C口,可以用来进行AT命令交互,如启动协议栈(AT^SPSS=0)。C口一般对应设备描述名为/dev/ttyUSB1。……
