LSI
机顶盒USB接口
() 《中国有线电视》2004 17
CHINA CABL E TEL EVISION ?开发与应用?
L SI 方案机顶盒 U SB 接口设计
?刘明亮 , 刘卫忠 , 夏华锋 , 余 娟
()华中科技大学 ,湖北 武汉 430074
摘 要 :介绍了在 LSI 方案机顶盒 E - Bus 总线上实现 USB 接口的设计 ,包括硬件设计 、驱动程序设计及
应用开发等 。
关键词 :机顶盒 ; E - Bus 总线 ;USB 接口 ;数据广播
() 中图分类号 : TN948 . 55文献标识码 :B 文章编号 :1007 - 7022 200417 - 0063 - 03
The Design of USB Interface of Set2Top2Box
?L IU Ming2liang ,L IU Wei2zhong ,XIA Hua2feng , YU J uan
( )Huazhong University of Science and Technology , Hubei Wuhan 430074 , China
Abstract :This paper describes the design of USB interface of Set2Top2Box based on the E - Bus , including the
hardware , driver , and application software design.
Key words :Set2Top2Box ; E - Bus ; USB Interface ; Data Broadcast
() 1 前言加密数据下载到 USB 移动存储设备 ,并移至其输的
移动存 储 技 术 , 特 别 是 基 于 USB - Flash 技 术 的 他设备进行处理 。USB 接口为机顶盒与其他设备的交 USB 移动存储器技术的发展为嵌入式系统中数据存储 互提供了一个通道 ,在此基础上开发的一些增值业务 和交换提供了新的可能性 。作为一种嵌入式网络终端 将大大丰富数据广播网络的应用 。
设备 ,机顶盒正朝着家庭多媒体网关的方向发展 ,其接 2 硬件设计
口越来越丰富 。开发机顶盒 USB 接口 ,可以用来将通 由于 LSI 方案机顶盒主芯片 SC2005 不带 USB 总 过卫星 、有线电视电缆 、地面广播或者因特网等媒介传 线 ,在硬件开发时采用了市面上一种通用的 USB HOST
数据广播系统的前端由管理服务器 、播控服务器 、,特别是在广大在目前宽带用户规模较小的情况下 内容服务器等构成 ,主要负责内容的收集 、整理 、编辑 、 农村 ,应该充分利用有线电视网的广播特点为村镇用户 分发等一系列功能 ,用户接收端采用 DVB 机顶盒进行 提供多媒体数据多播/ 组播 、多媒体视频点播 、个性化信 接收然后输出到电视机等视频终端上 ,用户在通过机 息检索 、交互讨论 、网上教育等多媒体服务 ,为村镇用户 顶 盒 接 收 数 据 的 同 时 , 也 可 以 通 过 机 顶 盒 内 置 的
提供农村实用技术 、科技咨询 、技能培训与教育 、农业政 Modem拨入 DBS 前端系统提供的接入系统来获得内容
发布服务 。 策与市场信息 、文化娱乐等针对性强 、内容丰富 、形式直
6 结束语观的信息 ,这将为农村信息服务开辟新的途径 。
[ 收稿日期 :2003210227
() () 作者简介 :刘明亮 19802 ,男 ,硕士 ,主要研究方向为多媒体与通信技术 ;刘卫忠 19722 ,男 ,副教授 ,主要研究方向为多媒体与
解决方案 ,该方案遵守 USB 1 . 1
,可以全面兼USB HOST 模块完成命令后 ,将响应写入 Response
( 容所有遵守 USB 协议规范的移动存储器 基于 Flash域 ;
的 、基于 SmartMedia 等的移动存储器和 USB 接口的移 如果有数据则将数据写入 ResponseData 区域 ;
) 向机顶盒发送响应消息 。 所有命令与响应 的 格 动硬盘等,支持 FAT12/ FAT16 文件系统 。
该解决方案作为一个模块嵌入到机顶盒的系统式 、内 容 都 遵 循 USB HOST
模块制订的通信协议 。命令与响应格式见表 1 。中 ,通过双端口 RAM 实现与机顶盒系统的通信 。如图
1 所示 ,机顶盒通过 E - Bus 总线按制订的通信协议往 表 1 U SB HO S T 命令与响应格式 长度 ,2 048 B 0双端口 RAM 指定位置发送命令和数据 ,然后由该模块 1B 31 B 32 B 执行相应的操作 。 内容 命令码 命令参数 保留区 数据区
系统命令/ 响应消息用于在机顶盒或 USB HOST
模块将要发出的命令或响应及相应数据准备好后 ,通
知对方命令或响应已经准备完毕 ,可以开始执行 。
该消息通过向双端口 RAM 的 0xFFFE 或 0xFFFF
地址写数据来完成 ,以中断方式来实现 。如图 2 所示 ,
对机顶盒而言 ,当向 0xFFFE 写入数据 0X01 时 ,即为通
知 USB HOST 模块有命令待执行 ,USB HOST 模块执行
完毕后发响应与消息并触发中断 ,机顶盒系统进入中
断处理程序 ,从 0xFFFF 读出 USB HOST 模块所发的消 图 1 USB HOST 模块与息值 0X01 即清除了该中断 ,再读取响应并根据响应进 机顶盒系统集成示意图行下一步处理 。 机顶盒的 E - Bus 总线是一种可灵活配置的总线 ,
可接 8 位 、16 位和 32 位的设备 ,共有 6 根片选信号线 ,
可为每个片选信号配置相应的地址空间 。
双方的硬件连接通过一个 34 针 的 接 插 件 完 成 。
信号定义如下 :
( 地址 总 线 : AR0 , AR15 接 E - Bus 的 ADD0 ,
) ADD7 和 AD16,AD23;
() 数据总线 :DR0,DR7 接 E - Bus 的 AD0,AD7;
系统 控 制 线 : INTR , SEMR , CER , RDR , WRR 。其
中 : INTR 为 双 端 口 RAM 向 机 顶 盒 提 供 的 外 部 中 断 ;
) ( CER 与 SEMR 永远接高用于实现片选 ; RDR 与 WRR
分别用于读写操作 。
3 底层驱动的设计
USB HOST 模块工作于命令/ 响应方式下 ,由机顶
盒发出命令 ,USB HOST 模块再根据该命令进行相应处
理后 ,向机顶盒返回相关的响应 ,该命令即完成 。这一
过程根据需要重复进行 , 以此实现整体系统的工作 。
集成后的系统工作方式如下 : 图 2 双端口 RAM 地址空间划分 机顶盒通过 E - Bus 总线将命令写入双端口 RAM通信协议所能实现的命令类型有创建文件 、打开
的 Command 区域 ;文件 、写文件 、读文件 、指定文件指针 、检测磁盘 、检查
磁盘容量 、格式化磁盘等 。 如果有数据则将数据写入 CommandData 区域 ;
向 USB HOST 模块发送命令消息 ; 以下是创建一个文件的函数 ,入口参数为文件名 、 USB HOST 模块收到命令消息后 ,即处理 Command 扩展名 、文件类型 。 区域的命令 ; ) )( (# define Command char 3 0xb8015f80
64
《中国有线电视》2004 年第 17 期刘明亮等 :LSI 方案机顶盒 USB 接口设计
) )() ( (# define Response char 3 0xb8015fc0 1初始化 USB 任务 ,包括创建任务 ,创建消息队
( 3 FileName , UINT8 static UINT16 CreateFile UINT8 列 ,开中断等操作 ;
)3 ExtensionName ,UINT8 FileMode () 2开数据缓冲区 ,开 PID 通道 ,开始接收前端发
{ int i ; 送的文件数据 ;
() CreateFileCmdPkg 3 crCmdPkg ; 3发创建文件的消息给 USB 任务 ,在 U 盘中创 CreateFileResp Pkg 3 m-pCreateFileResp ; 建一个新文件 ;
( ) crCmdPkg = CreateFileCmdPkg 3 Command ; () 4接收第一个 Section ,获取文件长度和 Section 总
( () ) memset char 3 crCmdPkg , 0 , 64; / 3 初始化创 数 ;
() 建文件命令包 3 / 5按顺序接收后面的 Section ,当缓冲区写满时 ,
( ) memset crCmdPkg - 3 将文 > FileName , 0x20 , 8;/ 发写文件消息给 USB 任务 ,该任务按通信协议将缓冲
件名复位为空格 3 /区内的数据经 USB HOST 模块写入 U 盘 。
= 0x07 ;/ 3 创建文件 crCmdPkg - > CommandCode () 6重复第五步 ,直到条件 this- section = = total- sec2
3 / tion 成立 。发送最后一个写文件消息 ,写 U 盘完成后
( memcpy crCmdPkg - > FileName , FileName , strlen 整个文件即下载完成 。
( ) ) FileName;/ 3 文件名 3 /整个过程根据驱动层返回的参数 ,显示相应的提
( memcpy crCmdPkg - > ExtensionName , Extension2 示信息 。在向 U 盘写数据的时候 ,用进度条来显示下
( ) ) 载的进度 。 Name ,strlen ExtensionName;/ 3 扩展名 3 /
> FileAttr = 0x20 ;/ 3 文件属性为普通 crCmdPkg - 5 性能测试
文档 3 /整个功能实现后 ,我们对 USB 接口的性能进行了 crCmdPkg - 3 设 定 同 文 件 > Option = FileMode ; / 测试 ,主要是测试可靠性和下载速度两个方面 。经选
名是否覆盖 3 /用不同大小 、不同类型的文件反复进行测试 ,得出在保 bRecvRsp = 0 ; 证可靠性的前提下 ,下载速率可达 70 kB/ s 左右 。 可SEND- SYSCMD ;/ 3 发送命令消息 3 / 靠性与下载速度之间的帄衡在于所开缓冲区大
() OSPTaskTemporarySleep 200; 小 ,最优的情况是达到上层的数据接收速率与写 U 盘的
( ) while ! bRecvRsp;/ 3 等待中断 3 /速率正好匹配 。开小了容易出错 ,影响可靠性 ,开大了
( ( memcpy m-pCreateFileResp , Response , sizeof Create2 会造成时间的浪费 ,影响速度 。经比较我们认为开 512
) ) (FileResp Pkg; ×2 188 Byte 是最合适的 2 188 Byte 为一个 Section 的长 ( if m-pCreateFileResp - = CRE2 > CommandCode = ) 度。此时既可以保证可靠性 ,速度也达到最快 。
) ATE- FIL E- RESP 6 结束语
)(> createResult = = TRUE {if m-pCreateFileResp - 我们基本上从功能上完成了机顶盒 USB 接口的
() {return 0x0003;}/ 3 创建成功的应答 3 / 开发 ,为后续的应用开发提供了帄台 ,在此帄台上可以
else / 3 失败则返回错误类型码 3 /开发新的数据广播增值业务 。机顶盒 USB 接口 ,不但
> errCode ( () ( ( 为其他设备利用广播网络传输与获取数据提供了渠 {return UINT16m-pCreateFileResp -
) () ) ) 0 < < 8 | m-pCreateFileResp - > errCode 1 ;} 道 ,而且为机顶盒与其他设备交互创造了新的途径 ,有 } 着广阔的应用前景 。
}
4 应用层的实现参考文献 :
开发机顶盒 USB 接口的主要目的是提供一个下
1 ,王 琪 ,赵 黎 ,等 . MPEG - 2 运动图像钟玉琢 载通过数字广播网络传输的加密数据的通道 ,丰富数
压缩编码国际
及 MPEG - 2 的新进展 M .字广播网络的应用 。基于这个目的 ,做应用开发的时
候我们从系统前端以数据广播的形式轮发一个文件 , 北京 :清华大学出版社 ,2002 .
SC2005 Technical Manual , LSILOGIC ,2002 . 2 该文件按 MPEG - 2 协议被打包成 Section 格式 ,终端机
顶盒接收并解析后再以文件的形式存入到 USB 存储[ 收稿日期 :2004203226