新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 高速红外VFIR控制器的设计与实现

高速红外VFIR控制器的设计与实现

作者:时间:2012-07-20来源:网络收藏

(Peripheral Component Interconnect)局部总线[1]是一种高性能、32位或64位地址数据多路复用的同步总线。它的用途是在高度集成的外设控制器件、扩展卡和处理器/存储器系统之间提供一种内部的连接机构,它规定了互连机构的协议、机械以及设备配置空间。局部总线因具有极小延迟时间、支持线性突发数据传输、兼容性能以及系统能进行全自动配置等特点受到业界青睐。总线规范2.1版本还定义了由32位数据总线扩充为64位总线的方法,使总线宽度扩展,并对32位和64位PCI局部总线外设做到向前和向后兼容。

目前微机之间的红外通信是基于IRDA-1.1标准的红外无线串行SIR通信,参考文献[2]给出了基于ISA总线的红外无线串行通信卡的设计及实现,该通信卡的数据速率为9.6kbps~115.2kbps,工作距离0~3m。但由于RS-232端口的最高数据速率上限为115.2kbps,不能满足IRDA-1.4规范甚VFIR 16Mbps速率要求,所以使用了PCI同步总线扩展外设的方法设计甚控制器。虽然ISA总线的传输速率能满足甚控制器设计要求,但目前许多微机系统已经逐渐淘汰ISA/EISA标准总线。原因是高速微处理器和低速ISA总线之间不同步,造成扩展外设只能通过一个慢速且狭窄的瓶颈发送和接收数据,使CPU高性能受到严重影响。

1 HHH(1,13)编解码

2001年5月,红外无线数据协会IRDA发布了红外串行物理层规范IRDA-1.4[4];它与前期发布的物理层规范的主要区别在于增加甚高速红外VFIR 16Mbps数据速率的编解码技术和帧结构,而其它如视角范围、发射器最小(大)光功率和接收器灵敏度等规范基于相同。红外串行物理层规范IRDA-1.4规定数据速率小于4Mbps采用RZI(归零反转)调制,最大脉冲宽度是位周期的3/16或1/4;数据速率4Mbps采用4PPM(脉冲位置调制);数据速率16Mbps采用HHH(1,13)码。

IRDA提出的VFIR编解码技术-HHH(1,13)码是码率为2/3,(d,k)=(1,13)的RLL(run-length-limited)码;它是一种功率消耗和频带利用率相对折中的高效编码,其中参数d、k分别表示在两个'1'之间最小和最大的'0'的数目,参数d决定接收信号中有无码间干扰ISI,参数k决定接收器能否从接收序列中恢复时钟。HHH(1,13)码的带宽效率使数据通信能够选择成本很低、上升/下降时间为19ns的LED。功率效率避免了LED的热问题,它能保证1m距离范围内保持链接。1m距离16Mbps链路可达到过去4Mbps链路的驱动电流和功耗。HHH(1,13)码和4PPM码(用于4Mbps)的显著区别是HHH(1,13)码决不允许一个红外脉冲紧跟前一个红外脉冲,脉冲之间应该保持一个chip时间差。由于光电管工作区域内有少量载流子的慢辐射,使LED或光电二极光表现出拖尾效应,HHH(1,13)码能够兼容拖尾效应,从而允许在chip时间周期内脉冲的扩展。

虽然HHH(1,13)码的设计过程比较复杂,但IRDA-1.4标准已经详细给出了编译码逻辑方程和电路,所以实现起来比较容易。笔者使用Altera MAX+plus II进行逻辑功能仿真,并用GW48 EDA实验系统进行硬件伪真,验证HHH(1,13)码编译码电路设计的正确性。

2 甚高速红外的硬件设计

由于PCI总线规定了严格的电气特性,开发PCI总线的应用具有很大难度,因此使用AMCC(Applied Micro Corporation)公司推出的PCI接口控制器S5933实现红外控制器PCI总线接口规范[5]。甚高速红外原理框图如图1所示。选用Altera公司的FLEX10K系列现场可编程门阵列器件实现S5933与红外TX/RXFIFO、寄存器的传输控制和逻辑时序以及红外接口控制逻辑和红外收发器接口功能模块(CRC校验、编解码以及串/并转换)。甚高速红外工作原理如下:首先由AMCC S5933外部非易失性串行EEPROM AT24C02下载PCI配置空间,然后主机通过直通(PassThru)寄存器数据访问方式向红外接口控制寄存器写控制命令[3]。红外接口控制逻辑根据控制命令发出控制信号,使整个红外控制器处于准备状态。当上层协议发出数据发送事件时,红外接口控制逻辑发出消息,通知主机启动S5933总线主控读操作,把上层数据写到外部红外TXFIFO数据缓冲器;同时红外接口控制逻辑根据TXFIFO状态把TXFIFO的数据发送到红外收发器接口,进行锁存、并/串转换、CRC校验和编码,最后通过VFIR收发器发送数据。同理VFIR收发器接收到的数据经过译码、CRC校验、串/并转换和锁存,写入RXFIFO数据缓冲器。红外接口控制逻辑触发上层协议发出数据接收事件接收数据,主机启动S5933总线主控写操作向上层协议递交数据,数据传输完成上层协议发回消息,通知数据接收完成。下面重点分析S5933与红外TX/RXFIFO、红外寄存器组访问控制逻辑以及红外接口控制逻辑和红外接发器接口功能。

2.1 红外TX/RXFIFO与红外控制寄存器组控制逻辑

AMCC S5933支持3个物理总线接口:PCI总线接口、扩充总线接口和非易失性EEPROM总线接口。非易失性EEPROM用于映射PCI的配置空间及设备BIOS的初始化;扩充总线可以与外设设备互连。主机和外设之间可以利用S5933的邮箱寄存器、FIFO寄存器、直通寄存器(Pass-Thru)数据传输方式双向传输数据。

红外寄存器组包括红外接口控制寄存器和状态寄存器。本文中甚高速红外控制利用S5933直通寄存器单周期数据传送向红外接口控制寄存器写控制字,由Pass-Thru逻辑控制电路把地址和数据分离开,直通地址寄存器(APTA)经374锁存并译码,选通红外接口控制寄存器,同时把直通数据寄存器(PTDA)的低字写入红外控制器;该接口控制寄存器的数据宽度为16位,包括红外控制器始能、工作模式(UART、SIR、MIR、FIR、VFIR)的设置,接收或发送数据的选择以及满足SIR模式下多波特率的分频数。红外接口控制寄存器结构定义如图2。

同理使用直通寄存器方式获取红外接口状态寄存器的状态。红外接口状态寄存器结构定义如图3。

为满足高速数据传输,利用S5933 FIFO寄存器总线主控方式下的同步猝发(Burst)操作(DMA传送)完成主机与红外TX/RXFIFO的数据传输。PCI接口首先初始化S5933作为总线主控设备,然后由PCI接口向主控读/写地址寄存器(MRAR/MWAR)写入要访问的PCI存储空间地址,向主控读/写计数器(MRTC/MWTC)写入要传输的字节数。S5933提供了4个专用引脚RDFIFO#、WRFIFO#、RDEMPY#和WREULL#控制内部FIFO与外部FIFO的数据传输接口逻辑。接收/发送FIFO的数据宽度都是32位,分别由4片8位数据总线的IDT72220 FFO数据位扩展实现。该FIFO既为PCI接口提供数据缓冲,又为红外收发器接口提供访问数据。S5933与红外TX/RXFIFO、红外寄存器组的数据访问控制逻辑如图4。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭