WinCE6.0+S3C6410 USB驱动架构分析

简介:
学习 WinCE 下的 USB 驱动几天了,有了一个整体的了解,这里对网上的资料和个人的理解做一个总结。软件平台是 WinCE6.0 ,硬件平台是 S 3C 6410
        1 WinCE 设备的三种角色
    USB 是主从结构,分为主端和从端。一般主端称为 Host ,从端称为 Client ,但是在 WinCE 系统中有些不同,主端称为 Host ,从端称为 Function
     对于 USB 而言,搭载 WinCE 系统的嵌入式设备可以扮演三种不同的角色,即三种不同的功能: Host Function 以及 OTG
    WinCE 设备经常会外接各种 USB 设备,如 RNDIS Print Mass Storage HID 设备等,此时作为主端使用,实现的是 Host 功能。
     WinCE 设备连接 PC 机时,便是作为从端使用,实现的是 Function 的功能。但此时 WinCE 设备可以表现为多种形式,有 Mass Storage RNDIS 或者串口设备。比如 WinCE 设备连接 PC 进行同步时表现为串口设备。
     WinCE 设备实现 OTG 功能时,既可以作为主端使用,也可以做为从端使用。
        2 WinCE6.0 中的 USB 驱动框架
       USB 的驱动架构如下图所示,包含了它的三种角色。
3 WinCE6.0 中的 USB 目录结构
       WinCE6.0 中对 USB 已经有了很好的支持,下面看看微软已经做了哪些工作。
     从上面的目录结构可以看出,微软提供的 USB 驱动是根据三种不同角色来划分的。 USB 对应着 USB Host 的功能, USBFN 对应着 USB Function 功能, USBOTG 对应着 USB OTG 功能。
      1 WINCE600\PUBLIC\COMMON\OAK\DRIVERS\USB 的下层目录如下:
    结合架构图理解, CLASS 文件夹对应 USB Host Client Driver 部分,是上层的应用协议,各个文件夹对应有 HID 设备、打印机、大容量存储器、 USB 串口等应用。 CLIENTCMN COMMON 两个文件夹是各种应用的公用代码。
    HCD 文件夹实现的是控制器驱动程序模块,为 USBD 模块提供底层支持。 HCD 模块主要提供对各个协议的支持,包括 OHCI(open host controller inferface) UHCI   (universal host controller interface) 以及 EHCI   (enhanced host controller interface) 。具体的关于这几个协议的介绍请查看后面的链接资料。
    USBD 文件夹是通用串行总线驱动程序模块,利用 HCD 模块的支持,实现各种接口函数提供给上层,使得上层能够与外围设备进行通信。
    COMMON INC 文件夹实现的是锁功能,包含 lock.h lock.cpp
      2 WINCE600\PUBLIC\COMMON\OAK\DRIVERS\USBFN 的下层目录如下:
     结合架构图, CLASS 文件夹对应 USB Function Client Driver 部分,下面的各个文件夹对应着 WinCE 设备的表现形态,常用的有三大类: RNDIS SERIAL STORAGE 。这些和 USB Host 驱动中的不同,那些指的是外围设备,这里指的是 WinCE 设备本身。文件夹 COMPOSITEFN UFNPRN 是共用的代码。
    CONSTROLLER 文件夹实现了底层控制器的驱动。当 WinCE 设备跟 PC USB 线连接时,表现为多种形式:大容量存储器( Mass Storage )、一个网卡( RNDIS )或者一个串口设备( Serial Class) 等,所以需要一个控制系统,把这部分分离了出来做成一层驱动,叫做 Controller (控制器),由该层驱动来控制 WinCE 设备到底表现成一种什么形式,包括卸载旧的 Client ,加载新的 Client MDD 文件夹实现的是该部分驱动的 MDD 部分, PDD 部分的硬件是 NET2280 控制器,在文件夹 NET2280 中实现。
    UFNCLIENTLIB 是该驱动的基础公共代码。
      3 WINCE600\PUBLIC\COMMON\OAK\DRIVERS\USBOTG 的下层目录如下:
    USB OTG 结构比较简单,驱动实现按照标准的流接口形式,分为 MDD PDD 两部分, MDD 部分对应上面的文件夹, PDD 部分的硬件采用的是 ISP1301 收发器,在 TRANS 文件夹中实现。
     4 WinCE6.0 系统的 USB 功能定制
    WinCE6.0 USB 相关的定制包含两部分:内核服务层和设备驱动层。
        内核服务层的定制在 Catalog Items View 中的” Core OS -> CEBASE -> Core OS Services -> USB Host Support ”,如图:
        设备驱动层的定制在 Catalog Items View 中的” Device Drivers -> USB Function -> USB Function Clients ”,如图:


本文转自jazka 51CTO博客,原文链接:http://blog.51cto.com/jazka/737486,如需转载请自行联系原作者
相关文章
|
1月前
|
运维 监控 负载均衡
动态服务管理平台:驱动微服务架构的高效引擎
动态服务管理平台:驱动微服务架构的高效引擎
28 0
|
3月前
|
安全 数据处理 数据安全/隐私保护
C/S架构与B/S架构的适用场景分析
C/S架构(客户端/服务器架构)与B/S架构(浏览器/服务器架构)在适用场景上各有特点,主要取决于应用的具体需求、用户群体、系统维护成本、跨平台需求等因素。
307 6
|
4天前
|
机器学习/深度学习 存储 人工智能
基于AI的实时监控系统:技术架构与挑战分析
AI视频监控系统利用计算机视觉和深度学习技术,实现实时分析与智能识别,显著提升高风险场所如监狱的安全性。系统架构包括数据采集、预处理、行为分析、实时决策及数据存储层,涵盖高分辨率视频传输、图像增强、目标检测、异常行为识别等关键技术。面对算法优化、实时性和系统集成等挑战,通过数据增强、边缘计算和模块化设计等方法解决。未来,AI技术的进步将进一步提高监控系统的智能化水平和应对复杂安全挑战的能力。
|
1月前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
1月前
|
运维 NoSQL Java
后端架构演进:微服务架构的优缺点与实战案例分析
【10月更文挑战第28天】本文探讨了微服务架构与单体架构的优缺点,并通过实战案例分析了微服务架构在实际应用中的表现。微服务架构具有高内聚、低耦合、独立部署等优势,但也面临分布式系统的复杂性和较高的运维成本。通过某电商平台的实际案例,展示了微服务架构在提升系统性能和团队协作效率方面的显著效果,同时也指出了其带来的挑战。
86 4
|
2月前
|
消息中间件 监控 NoSQL
驱动系统架构
【10月更文挑战第29天】
33 2
|
2月前
|
存储 SQL 分布式计算
湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
【10月更文挑战第7天】湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
152 1
|
2月前
|
存储 前端开发 API
DDD领域驱动设计实战-分层架构
DDD分层架构通过明确各层职责及交互规则,有效降低了层间依赖。其基本原则是每层仅与下方层耦合,分为严格和松散两种形式。架构演进包括传统四层架构与改良版四层架构,后者采用依赖反转设计原则优化基础设施层位置。各层职责分明:用户接口层处理显示与请求;应用层负责服务编排与组合;领域层实现业务逻辑;基础层提供技术基础服务。通过合理设计聚合与依赖关系,DDD支持微服务架构灵活演进,提升系统适应性和可维护性。
|
3月前
|
存储 监控 安全
SaaS业务架构:业务能力分析
【9月更文挑战第20天】在数字化时代,软件即服务(SaaS)模式逐渐成为企业软件解决方案的首选。SaaS 业务架构设计对于提供高效、可靠的服务至关重要。其核心业务能力包括:用户管理(注册登录、角色权限)、数据管理(存储备份、安全共享)、业务流程管理(设计定制、工作流自动化)、应用集成(第三方应用、移动应用)及客户服务(支持培训、反馈改进)。通过优化这些能力,可为企业提供更高效、可靠的 SaaS 服务。
71 11
|
3月前
|
缓存 负载均衡 数据管理
深入探索微服务架构的核心要素与实践策略在当今软件开发领域,微服务架构以其独特的优势和灵活性,已成为众多企业和开发者的首选。本文将深入探讨微服务架构的核心要素,包括服务拆分、通信机制、数据管理等,并结合实际案例分析其在不同场景下的应用策略,旨在为读者提供一套全面、深入的微服务架构实践指南。**
**微服务架构作为软件开发领域的热门话题,正引领着一场技术革新。本文从微服务架构的核心要素出发,详细阐述了服务拆分的原则与方法、通信机制的选择与优化、数据管理的策略与挑战等内容。同时,结合具体案例,分析了微服务架构在不同场景下的应用策略,为读者提供了实用的指导和建议。

热门文章

最新文章