STIr4200S是SigmaTel公司开发的一款专用于USB与IrDA间桥接控制的新型ASIC,采用低功耗CMOS设计,直接从USB口馈电,片内集成4K字节的FIFO缓冲,采用28脚SSOP封装,IrDA数据传输率范围从2.4 Kbps到4 Mbps,主要用于通过USB口实现红外无线数据通信。
1 功能方块图
功能方块图如 图 1 所示,总的来说STIr4200由两个部分组成:USB控制器和数字红外传输器。USB控制器向USB宿主机提供1个控制端点、1个批量数据输入端点和1个批量数据输出端点。数字红外传输器由发送接口和接收接口组成,这两个接口与模拟红外收发器相连。

图1 STIr4200功能方块图
2 引脚描述
STIr4200S引脚排列如 图 2 所示。

图2 引脚排列图
STIr4200S引脚说明如 表 1 所列。
表1 STIr4200S引脚说明

3 指令说明
STIr4200S为用户提供了一个指令集,允许通过USB驱动程序读写数字IR传输器的寄存器以及USB控制器的ROM,其指令集详述如下。
(1) 写多个寄存器指令
写多个寄存器指令可使用户写数字IR传输器连续的多个寄存器,其指令格式如 表 2 所列。每一个寄存器长为1字节,命令给出了读写的第一个寄存器、连续读写的寄存器数,以及写入数据所在的数据周期。
表2 写多个寄存器指令说明

(2) 写1个寄存器指令说明,如 表 3 所列。
表3 写1个寄存器指令说明

(3) 读多个寄存器指令说明,如 表 4 所列。
表4 读多个寄存器指令说明

(4) 读ROM指令说明,如 表 5 所列。
表5 读ROM指令说明

读ROM指令可使DRIVER读取USB控制器端点0中ROM,这主要是为了调试时用于验证该ROM中的内容。每次最多可读取64字节。
4 数字红外传输器
数字红外传输器,从模拟红外收发器接收数字输入。主要由传送调制器、接收解调器、FIFO、模拟传输部分及寄存器组组成,如 图 3 所示。可以通过设置寄存器的值来实现对设备的操作,如调制模式、波特率、FIFO中帧的大小以及RX输入方式等。其中FIFO的大小为4 K字节。

图3 数字红外传输器方块图
由USB控制器送往TX调制器的数据必须组成IrLAP帧。一个IrLAP帧的格式 由以下几部分组成。其中BOF为帧开始标志,A为地址字段,C为控制字段,I 为信息字段,FCS为帧的CRC校验码,EOF为帧结束标志。

另外,FIFO中的内容发送给USB控制器以前,还必须在报文中加一个2字节的ID码以及2 字节的帧大小。
5 帧格式
为了标识红外传输帧的边界在帧格式中用到了一些特殊的字符,如 表 6 所列,当这些字符在数据区出现时,就必须对它们进行转义表示。同时,由于在传输过程中,USB批量数据输入/输出缓冲区的边界可能和红外传输帧的边界不能对齐,因此,在帧格式中还定义了一个字符0x7D用于实际的帧边界描述。另外,在FIR模式下引入了0x7F作为预同步字符。
表6 转义字符说明

5.1 SIR模式下的帧格式
SIR模式下的传输率可以是2.4,9.6,19.2, 38.4,57.6及115.2 Kbps。帧格式如 图 4、 图 5 所示。

图4SIR发送帧格式图5 SIR接收帧格式
5.2 MIR模式下的帧格式
MIR模式下传输率可以是576 Kbps和1.152 Mbps。帧格式如 图 6 、图 7 所示。

图6 MIR发送帧格式图7 MIR接收帧格式
5.3 FIR模式下的帧格式
FIR模式下的传输率为4 Mbps,帧格式如图8、图9所示。

图8 FIR发送帧格式图9 FIR接收帧格式
6 寄存器设置
在数字红外传输器中共有16个寄存器,如 表 7 所列。可以设置数字红外传输器的工作模式、波特率等,也可以通过访问状态寄存器来获取其工作状态。下面对除测试寄存器和DPLL寄存器以外的各寄存器的设置进行详细的说明。测试寄存器和DPLL寄存器只用于厂家的调试。
表7 数字IR传输器中寄存器说明

(1) FIFO数据寄存器
默认设置为0x00,用于USB接口进入FIFO中的数据,但这个寄存器很少使用。因为一般情况下,USB可通过Bulk read/write指令来对FIFO进行操作。
(2) 模式寄存器
默认状态为0x20。设置说明如 表 8 所列。
表8 模式寄存器设置说明

(3) 波特率寄存器
这个8位寄存器全为PDCLK位,默认值为0x77。 表 9 通过设置模式寄存器、波特率寄存器来设置IrDA的传输模式。
表9 波特率寄存器说明

(4) 控制寄存器
默认值为0x00。bit7为SDMODE位,只有当STIr4200S连接到TEMIC类型的红外传输器时,才使用此位,用于将红外传输器设置成省电状态。bit6为RXSLOW位,设为1时,采用RXSLOW接收输入信号;设为0时,采用RXFAST接收输入信号。bit5为DLOOP1位,当设为1时,表示将红外传送器与红外接收器相连,此位不能用于STIr4200S集成解决方案。bit4为TXPWD位,当设为1时,将停止红外调制器供电。bit3为RXPWD位,设为1时,表示停止红外解调器供电。bit2~1为TXPWR(1:0)位,用以设置内部下拉电阻控制传输二极管的电流:00表示设成最大电流,01表示为中高电流,10将设置成中低电流,11为最小电流。bit0为SRESET位,设成1时,将对红外调制解调器进行复位。
(5) 灵敏度寄存器
默认值为0x26,具体设置规则如 表 10 所列。
表10 灵敏度寄存器设置说明

(6) 状态寄存器
默认值为0x14,设置说明如 表 11 所列。
表11 状态寄存器设置说明

(7) IRDIG 初始寄存器
IRDIG主要用于设置红外传输器与前端红外模拟收发器连接的引脚极性,设置说明如 表 12所列。
表12 IRDIG 初始寄存器设置说明

结束语
本文介绍了一款USB/IrDA桥控制芯片STIr4200S的原理和结构。在该芯片内部集成了USB和IrDA之间的协议转换功能,通信协议完全符合USB1.1 spec 和IrDA spec,通信速度可达4 Mbps。