Electronic Joint Business

Solution for E-Business

driver

WDF USB设备驱动开发指南

USB 的全称是 Universal Serial BUS(通用串行总线), 它有两个重要的特点:串行数据传输、支持热拔插。从 1996 年 1 月至今,USB 已经经历了四个版本:1.0、1.1、2.0 和 3.0。其应用遍及各个领域, USB 采用主从结构。两个可以互联的设备,一定有主从之分。这导致了两台主机(主设备)或者两个 U 盘之间没有办法互联,只能在设备(U盘)和主机之间建立主从互联关系。

要成为 USB 主机,就一定有两种设备:USB 主控制器、USB 根集线器。主控制器用来处理根集线器上的数据,交给系统处理;根集线器用来连接多个外部设备。请注意:根集线器和普通 USB 集线器是不同的,普通 USB 集线器也是 USB 外部设备的一种,不是主机的组成部分。

我们在使用的电脑,每台电脑都有若干个控制器,控制器上有一个或多个根集线器,集线器上又对外暴露出一个或多个 USB A 型接口让外部设备连接。在设备管理器的视图模式选择 “按连接排序设备” 后,可看到和图 1-1 类似的”设备->集线器–>控制器->系统”层次结构。

最上层是 USB EHCI 接口的控制器,中间层是控制器上唯一的根集线器,最下层是连接在根集线器上的设备(包括普通集线器)。 每个 USB 控制器是一个 USB 族群的核心,其驱动程序负责为子设备分配总线地址。总线地址为 7 位宽,由于控制器自己占一个地址,故而最多可提供(2^7 -1 = 127)个子设备地址,也就是说,每个控制器上最多能连接 127 个子设备。并且这个数目包含了根集线器。

USB 电气特性和枚举
标准 USB 接口有 4 个金属针脚,对应着 USB 线中,就是 4 根金属线:两根电源线(5V的 VBus 和地线 GND )和两根数据线(D+ 和 D-)。这两根数据线实现了数据的差分传输,其实等于是一根线,但是提高了稳定性,这也就是“串行”之由来了。 USB 设备可以自己供电,也可以从总线获取电源,即通过 5V 电源线传过来的。像 U 盘、鼠键这类小型设备,5V 电源或者 100mA 电流足以满足其设备需求,故而多从总线获取电源;移动硬盘、打印机、USB 声卡这种较大设备,往往需要外置电源。

>>> 阅读全文

 

, ,

在.NET中使用嵌入式Firebird (附驱动更新)

Firebird 脱胎于 Borland 公司的开源版数据库 Interbas e6.0,是一个完全非商业化的产品, 用 C 和 C++ 开发。由于与 interbase 的血缘关系,大部分 interbase 的开发工具可以直接应用 到 Firebird 开发中。

Firebird 2.0 项目已于 2005年2月份开发完成,2005年5月发布。下面列举一些 Firdbird 2.0 新增加的功能:

  • 对 SQL 标准支持增强:支持 SQL200X 标准定义的“派生表”(derived tables)、为了和 SQL-99 标准一致,引进了“SEQUENCE”,用来代替“GENERATOR”;
  • 经典结构模式(Classic architecture)支持全部API;
  • 支持 64 位操作系统平台;
  • 内置函数增加;
  • 存储过程语言(PSQL)增强:支持“显式游标”、存储过程支持默认参数、支持“LEAVE标号”语法、将用户自定义函数(UDF)作为存储过程调用等;
  • 索引得到增强:252字节限制取消、支持“表达式索引”等;
  • 改进的优化器;
  • 安全增强:安全数据库结构改变、口令加密更安全、远程不能访问安全数据库、阻止“暴力破解”行为;
  • 在线增量备份。

单从功能上,Firebird 比 SQLite 要强大许多,并且 FireBird 有多种版本,包括服务器版,单机版以及嵌入式,不管是服务器版还是嵌入式版它都完整支持视图、触发器、存储过程等SQL高级特性。

部署嵌入式FireBird十分简单,只需要把 fb Embedded Server 的 “fbembed.dll” 拷贝到应用程序目录下。在 .net 的工程项目中则可以包含 fbembed.dll 文件,并将其属性设置为 “copy always” 或者 “copy if newer” 即可。

在 C# 中使用嵌入式 Firebird 需要 .net provider 1.6以上版本,典型的 ConnectionString 如下:

>>> 阅读全文

 

, , , , , ,

Next posts