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

发布者:翅膀小鹰最新更新时间:2012-07-20 来源: 61ic关键字:高速红外  VFIR控制器  PCI 手机看文章 扫描二维码
随时随地手机看文章

PCI(Peripheral Component Interconnect)局部总线[1]是一种高性能、32位或64位地址数据多路复用的同步总线。它的用途是在高度集成的外设控制器件、扩展卡和处理器/存储器系统之间提供一种内部的连接机构,它规定了互连机构的协议、机械以及设备配置空间。PCI局部总线因具有极小延迟时间、支持线性突发数据传输、兼容性能以及系统能进行全自动配置等特点受到业界青睐。PCI总线规范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 甚高速红外VFIR控制器的硬件设计

由于PCI总线规定了严格的电气特性,开发PCI总线的应用具有很大难度,因此使用AMCC(Applied Micro Corporation)公司推出的PCI接口控制器S5933实现红外控制器PCI总线接口规范[5]。甚高速红外VFIR控制器原理框图如图1所示。选用Altera公司的FLEX10K系列现场可编程门阵列器件实现S5933与红外TX/RXFIFO、寄存器的传输控制和逻辑时序以及红外接口控制逻辑和红外收发器接口功能模块(CRC校验、编解码以及串/并转换)。甚高速红外VFIR控制器工作原理如下:首先由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。[page]

2.2 红外接口控制逻辑

根据红外接口控制寄存器控制字,红外接口控制逻辑实现外部RX/TXFIFO与红外收发器接口之间的数据传输和逻辑时序。它的工作原理如下:根据控制字,首先启动红外收发器接口CRC校验、编解码器和可编程时钟(RX/TXFIFO读/写时钟RCLK、WCLK和编解码时钟fclock),然后根据控制字的TX/RX位决定是接收还是发送数据。发送数据时,TXFIFO缓冲器不为空,TXFIFO的EF信号就触发红外接口控制逻辑发TXFIFO读操作信号ENR#,读取TXFIFO的数据(数据宽度32位)传给红外收发器接口进行CRC校验、编码以及并/串转换。同理当甚高速红外控制器接收数据时,红外收发器接收到的数据经过译码、串/并转换(数据宽度32位),然后触发红外接口控制逻辑发出红外接收FIFO的写操作信号ENW#,把接收数据写入红外接收FIFO。当RXFIFO写满后,触发控制逻辑发出S5933 FIFO写信号WRFIFO#,上层协议启动PCI接口初始化S5933为同步主控写操作实现红外接收FIFO到主机内存的数据传畀。另外红外接口逻辑还实现红外接口状态寄存器状态的配置,以方便上层协议了解红外控制器工作状态。

2.3 红外收发器接口

红外收发器接口的设计与实现是红外控制器成功的关键。该接口需要实现各种工作模式(SIR、MIR、FIR、VFIR)的编解码器和硬件CRC校验、设计比较复杂。编码器前、译码器后,数据都要进行硬件CRC校验实现差错控制。SIR模式采用RZI(归零反转)编码,信号为高电平,调制为低电平;信号为低电平,调制为高电平脉冲,最大脉冲宽度是位周期的3/16。MIR模式也采用RZI(归零反转)编码,但最大脉冲宽度是位周期的1/4。FIR模式采用4PPM(脉冲位置调制)调制,它的原理是被编码的二进制数据流每两位组合成一个数据码元组(DBP),其占用时间Dt=500ns,再将该数据码元组(DBP)分为4个125ns的时隙(chip),根据码元组的状态,在不同的时隙放置单脉冲。由于PPM通信依赖信号光脉冲在时间上的位置传输信息,所以解调时先保证收发双方时隙同步、帧同步,然后根据脉冲在500ns周期中的位置解调出发送数据。考虑到红外收发器通信距离突然变化引发脉冲宽度扩展,发生码间干扰,导致译码出错,因此根据Hiroshi Uno提出的新算法[7]简化4PPM译码过程,并通过实验验证该算法比最大似然译码算法结构更简单,功耗更低,而且更容易实现。

VFIR模式采用HHH(1,13)编解码技术。编码器原理:为了正确实现编码,要求在计算内部码字C=(c1,c2,c3)之前,在nT(T表示一个chip时间)时刻到达编码器输入端的输入数据码元组d=(d1,d2)经过3个编码周期(每个编码周期是3T)的延时后进行逻辑计算,得到下一状态矢量值N=(s1,s2,s3),即与输入数据有关的N出现在(n+9T)时刻;再经过一个编码周期,即(n+12T)时刻,状态N赋给内部状态矢量S=(s1,s2,s3),同时计算与输入数据码元组d=(d1,d2)有关的内部码字矢量C=(c1,c2,c3),再经过一个编码周期,内部码字C赋给输出码字矢量Y=(y1,y2,y3)。由此可见16Mbps的数据速率经过编码器变为24Mchip/s编码速率,整个编码过程延时5个编码周期即15个chip。注意编码器初始状态S应设置为(1,0,0)。译码器原理:输入数据R=(r1,r2,r3)经过锁存器延时得到矢量Y4=(y10,y11,y12),对Y4进行不同的延时得到Y3、Y2及Y1。这里矢量Yi是Y4的4-I次延时(由锁存器实现延时);对Y4进行或非运算得到Zd,再将Zd进行不同的延时得到Zc和Zb。这里Zc、Zb、Zd是变量,然后将Y4、Y3、Y2、Y1、Zb、Zc、Zd进行逻辑运算、延时分别得到矢量X1=(x1,x2)、X2=(x3,x4)、X3=(x5,x6);最后将x1、x2经过锁存器得到译码器输出矢量值U=(u1,u2)。整个译码过程延时4个周期即12个chip。可见HHH(1,13)编译码电路比较简单,利用FPGA基于门级描述即可实现,但必须注意锁存器时钟fclock=1/3fchip。VFIR模式增加线性反馈移位寄存器(LFSR)实现加扰和解扰功能提高系统性能,减少误码。



3 甚高速红外VFIR控制器的软件设计

控制器软件主要分为三部分:系统初始化部分、接收部分、发送部分。系统初始化首先调用BIOS 1Ah中断功能获取设备PCI总线号、功能号、内存、I/O空间基地址和空间大小以及中断号,然后通过直通(Pass-Thrn)方式写控制命令初始化红外控制器,选择控制器接收或发送数据,设置控制器工作模式和波特率分频数并允许控制器工作。红外控制器具有收发双向数据传输能力。编程时将S5933FIFO设置成由PCI接口初始化为同步主控方式,支持突发传输(DMA);然后根据控制器收/发位判断PCI总线主控读还是主控写操作。程序采用中断控制,主程序调用set_up_pci_busmaster()初始化主控操作,该函数不仅装载访问内存实际地址和传输字节数,而且还要允许读/写传输字节数到零中断。红外控制器初始化完成后,系统等待中断。中断服务处理程序读取S5933中断状态/控制寄存器INTCSR判断中断源,并清除中断标志;读取CRC校验状态位,判断接收数据是否正确。发送数据时,中断服务处理程序还要检测红外发送FIFO状态位是否为1(1表示FIFO为空),不为1置发送不为发空标志tx_not_empty=1,主程序继续等待,直到TXFIFO数据为空;同理接收数据也需要检测红外接口状态寄存器的红色接收FIFO状态位是否为1(测试位为1表示FIFO为空)。这样可保证接收和发送FIFO的数据完全被取走。编写的应用程序使用Turbo C2.0调试通过。

PCI总线已经成为当今电脑的主流总线,为此根据红外串行物理层规范IRDA-1.4设计基本PCI总线的甚高速红外VFIR控制器。使用AMCC公司PCI总线专用控制器外加部分接口控制电路实现VFIR控制器硬件设计,缩短开发周期、提高效率、节约成本。目前正在使用VtoolsD开发虚拟驱动程序,解决系统如何分配红外控制器配置资源、如何访问硬件设备、如何处理硬件中断和总线主控DMA操作以及VXD和应用程序之间的通信。另外国外已有公司推出VFIR红外控制器专用芯片,如MKNET公司的MK7100。

关键字:高速红外  VFIR控制器  PCI 引用地址:高速红外VFIR控制器的设计与实现

上一篇:点对多点的多任务无线通信
下一篇:建材质量自动监测系统的设计

推荐阅读最新更新时间:2024-03-16 13:03

基于LabVIEW PCI-1712L变压器测试系统
0引 言   当前国内对电力变压器的性能测试基本上仍处于手工测量的阶段,每项性能指标都由专用的仪器进行测量,很多测试项目仍采用一些指针式仪表,存在读数误差大、费工、耗时,功能简单等问题,测量的重复性、可信度较差。虚拟仪器的出现有效的解决了这一问题,所谓虚拟仪器就是利用现有的计算机,加上特殊设计的仪器硬件和专用软件,形成既有普通仪器的基本功能,又有一般仪器所没有的特殊功能的高档低价的新型仪器。在虚拟仪器系统中,硬件仅仅是为了解决信号的输入输出,软件才是整个仪器系统的关键。软件对硬件采集的数字信号进行加工、分析,得到各种所需要的信息。 本文采用研华公司的PCI-1712L高速数据采集卡及其为LabVIEW定制的Advantech
[测试测量]
基于LabVIEW <font color='red'>PCI</font>-1712L变压器测试系统
基于高性能多DSP互连技术
  前言   由于现代数字信号处理器(DSP)设计、半导体工艺、并行处理和互连与传输技术的进步,现代高性能DSP的处理能力得到极大发展。但在移动通信、雷达信号处理和实时图像处理等复杂电子系统中,单片DSP的性能仍可能无法满足需求,通常需要使用多片DSP构成并行信号处理系统。   在多DSP系统中,互连技术连接DSP、接口及其他处理器,一起构成系统的静态体系结构,是数据传输的中间介质的总和。互连技术传输代表计算任务、中间数据、结果或状态控制信息的数据流,使接口与DSP中的算法模块通过数据流动态地连接起来,整合成分工协作的有机整体。   已经有一些对多DSP并行系统互连技术的综述 ,但还不够全面而且没有反映高性能DSP互连
[嵌入式]
PCI Express体系结构概述
虽然PCI总线取得了巨大的成功,但是随着处理器主频的不断提高,PCI总线提供的带宽愈发显得捉襟见肘。PCI总线也在不断地进行升级,其位宽和频率从最初的32位/33MHz扩展到64位/66MHz,而PCI-X总线更是将总线频率提高到533MHz,能够提供的最大理论带宽为4263MB。但是PCI总线仍无法解决其体系结构中存在的一些缺陷。PCI总线面临着一系列挑战,包括带宽、流量控制和数据传送质量等。 PCI总线的最高工作频率为66M,最大位宽为64b,从理论上讲,PCI总线可以提供的最大传输带宽为532MB。然而PCI总线作为一个共享总线,在其上的所有PCI设备必须要共享PCI总线的带宽。同时由于PCI总线的协议开销,导致PCI总线可以
[嵌入式]
基于PCI总线的STM32运动控制卡的设计
伴随着计算机的普及,PC的性能、可靠性及应用环境也已经今非昔比,在工业领域方面PC拥有大量的支持软件用以改善用户界面、图形显示、动态仿真、故障诊断、网络通讯等诸多功能,此外,在总线的开发也因PC丰富的接口资源和模块化设计而变得简单。因此,基于PC的开放式数控系统绝对是未来控制系统主流主流方向,发展开放式和形成具有自主产权软件型数字控制系统,是我国数控发展迈出实质性突破和赶超世界先进水平的一次良机。因此,文中研究课题主要对数控系统实际要求出发,结合PC和高性价比的ARM系列芯片,利用模糊控制算法,设计一款性能稳定,高精度的伺服控制器,为推进伺服技术的发展具有重要意义。 1 系统结构 本系统采用的是“PC+运动控制卡”形式。其
[单片机]
基于<font color='red'>PCI</font>总线的STM32运动控制卡的设计
基于PCI 总线的DSP 系统应用程序的更新
  0 引言   在DSP嵌入式业务系统设备中,一般采用片外FLASH自举方式来实现DSP端应用程序的加载和启动。当DSP业务系统需要更新应用程序时,则可通过仿真器连接JTAG 口来控制DSP,完成DSP 外围FLASH 的应用程序更新。然而,对于成型、交货的设备产品,DSP业务系统板上一般不会留有JTAG口,或在机箱中很难插拔仿真器;另一方面,对已交货产品经常插拔仿真器,会对硬件设备有所损伤,使设备硬件处于非控状态。   如果系统设计使用了PCI作为系统通信总线,则可以通过PCI来完成DSP 业务系统应用程序的更新和加载。本设计以TI公司TMS320C6416T(简称C6416)芯片为例,来说明通过PCI总线来更新DSP
[嵌入式]
IDT推出专为高性能I/O 连接优化的低功耗PCI Express 交换产品系列
推出业界首个 12 端口交换器件,发布 8 种新产品覆盖从服务器到消费类产品应用   领先的关键半导体解决方案供应商 IDT 公司( Integrated Device Technology, Inc.; NASDAQ: IDTI )推出专为应对系统 I/O 连接挑战而优化的 PCI Express ( PCIe )交换产品系列,该系列为业界迄今为止最广泛的 PCIe 交换产品系列。 IDT 公司 PRECISE 系列目前包括 10 种 PCIe 交换器件,是目前市场上具有最低功耗的器件。该系列产品可最大限度地降低系统热管理需
[新品]
基于Wishbone片上总线的PCI Bridge核的研究和应
摘要:讨论了PCI主桥的应用和Wishbone片上总线技术,详细介绍了基于Wishbone总线的PCI Bridge核的功能、内部结构和操作方式。实验证明,在PCI系统中使用PCI Bridge核进行开发设计,电路简洁,使用方便灵活。 关键词:PCI主桥;Wishbone片上总线;PCI桥核 自PCI协议问世以来,PCI总线应用越来越广泛,现已成为事实上的计算机总线标准。随着PCI应用和开发的深入,往往需要在复杂的PCI系统中使用PCI桥来完成设计工作,包括使用主/PCI桥来完成整个系统的初始化配置过程。PCI桥的使用已从传统的PC机领域拓展到更多的电子应用系统中。 1 PCI主桥简介 在复杂的PCI系统中,往往拥有不只
[应用]
基于C8051F021型单片机与PCI接口实现数据采集卡的设计
1、引言 国家电力公司陆延昌副总经理在第26届中国电网调度运行全闭幕式上的讲话中指出了今后一段时期内的电网技术的发展上应重点研究和解决的问题,其中,在电网安全、稳定、经济运动领域,互联电力系统实时功角测量受到越来越的关注。特别是在以监控中目的的电力调度自动化系统中,如何快速、准确地采集处理各种电气参数显得尤为重要。而在实现自动化的过程中,首要环节就是数据采集。为此我们研究开发了电力系统功角广域测控系统,其中,用C8051F021型单片机实现的数据采集卡不仅可以准确、高效、实时地进行AD数据采集并通过双口RAM和PCI接口与上位机交换数据,还可以通过与GPS接收通信接收秒脉冲实现采集数据异地同步 2、功角及其测量 2.1 发电机
[单片机]
基于C8051F021型单片机与<font color='red'>PCI</font>接口实现数据采集卡的设计
热门资源推荐
热门放大器推荐
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved