基于IEEEl394b总线双向数据传输设备驱动程序设计

发布者:科技奇才最新更新时间:2016-05-09 来源: eefocus关键字:IEEEl394b总线  双向数据  传输设备  驱动程序 手机看文章 扫描二维码
随时随地手机看文章
  介绍了基于IEEEl394b总线双向数据传输系统PC机端设备驱动程序。结合IEEEl394b总线规范,以Windows环境为例详细介绍了利用Fir-eAPI SDK开发IEEE1394b设备驱动程序的设计原理、实现方法。

  现有的大部分数据传输接口总线造价比较高,且难以满足实际运用中对传输速率的要求,成了阻碍整个系统性能提高的一大屏障。IEEE-1394是现今最高速的串行总线接口之一,IEEE1394lb更是在原有IEEE1394的基础上速度更快,支持距离更长,在实时批量数据传输方面有广泛的应用前景。

  基于1394传输系统设备驱动文献,大部分都是基于IEEE1394a的,而IEEE1394b以其更高的速度展现出了更大的魅力,对实时大批量的数据传输具有重大意义,但是Microsoft并没有提供对1394b的支持,在Windows自带的1394不能支持其S800的速度,因此1394b在应用上受到局限,Unibrian提供了FireAPI SDK开发包,提供了对1394b的完全支持,也是现在唯一持1394b的驱动程序开发包。

  1 IEEEl394串行总线概述

  IEEE1394又称火线(Fire Wire),是由美国苹果电脑公司开发的一种品质高、传输速度快的串行总线技术。1995年IEEE正式认可IEEE139 4-1995规范,并于2000年又推出了IEEE1394a-2000规范。2002年推出了IEEEl394b-2002的传输速率可达3.2 Gb·s-1,兼容于IEEE1394a,但是接口的形状从IEEE1394a的6 Pin变成9 Pin。IEEE1394的主要特点如下:

  (1)高速可升级,支持100 Mb·s-1、200 Mb·s-1、和400 Mb·s-1的传输速率。IEEE1394b增加800 Mb·s-1,16 00 bib·s-1,3 200 Mb·s-1的传输速率,现在市面上所提供的芯片最高支持到800 Mb·s-1。

  (2)支持点到点传输,各节点可以脱离主机自主执行事务。

  (3)支持较远距离的传输;IEEE1394节点之间的距离不能超过4.5 m。IEEE1394b最远距离可达100 m,而且可以选用更多的传输媒介,比如非屏蔽的5类双绞线、塑料光纤和玻璃光纤等。

  (4)支持即插即用,可以在任何时候向IEEE1394网络添加或删除设备。

  (5)热插拔,无需将系统断电就可以加入和移除设备。

  (6)支持两类事务,包括等时(Isochronous)和异步(Asynchronous)事务。

  (7)拓扑结构,设备间采用树形或菊花链拓扑结构,每条总线最多可以连接63台设备。

  (8)公平仲裁,是等时传输具有较高优先级,同时异步传输也能获得对总线公平的访问。

  2 IEEE1394b驱动程序的基本结构

  Unibrianl394驱动程序栈采用由上而下的架构,这个栈的核心就是1394类驱动,它完成1394所有事物并提供应用程序所需的全部服务。而这个1394类驱动正是WDM驱动中的类驱动。图1为Unibrainl394驱动栈。

  3 IEEE1394b驱动程序的具体实现

  3.1 驱动程序入口点

  运用FireAPI的第一件事就是调用C1394Initializa,C1394Initialize执行所有对1394初始化支持的必需动作,这个函数会检查FireAPI驱动栈是否已完全安装,相应的驱动程序是否已经开始,以及初始化驱动栈需要的内部结构。

  3.2 打开设备方法

  当1394总线上添加或删除一个或多个设备时会自动重新配置物理设备地址,以此来支持即插即用特性,这时设备物理ID的重新分配,设备的节点号可能会改变。不过1394要求每个节点都要有一个全球惟一标识符GUID,它存储在Bus_Into_Block,在设备的整个生存期它是惟一不变的,所以在程序中根据设备的GUID打开设备句柄,其传输时将不用担心总线复位及物理ID改变。

  4 IEEE1394b具体通信机制

  IEEE1394串行总线支持两种传输类型;异步传输和等时传输。

  (1)异步传输,异步传输使用确定的物理地址来指向某一个节点,以完成读、写、锁定操作。基于请求和应答的机制来确保数据传输的正确性。

  (2)等时传输,等时传输是一种不需要确认数据的传输类型,它主要强调的是传输数据的实时性。等时传输是通过一个6位的信道号码来确定一个或多个设备。其以固定时间间隔(125 ms)发送数据,所以必须分配固定的总线带宽,有着高于异步传输的优先级。等时传输所用的最大带宽是整个带宽的80%。

  4.1 IEEE1394b异步传输

 

  异步传输的主要步骤如下:

  (1)设置传输速度,1394b支持的最高速度为800 Mb·s-1,驱动程序可以在总线复位完成后立即通过C1394GetMaxSpeedToNode或1394Get-MaxSpeedBetweenNodes设置节点间速度。

  (2)设置最大包,1394b在S800的速度下所支持的最大包长为4 096 bit,可通过C1394GetMaxPayloadForSpeedand C1394GetMaxPayloadF-orMaxRec设置最大包长。

  (3)设置带宽,要注意的是带宽不仅取决于包的大小,还与节点间的传输速率有关,当传输速率增加时,所需的带宽会减小。

  (4)异步读/写,异步传输分为阻塞调用和非阻塞调用,C1394ReadNode/C1394WriteNodewei为阻塞调用,只在读或写事务完成 (包括发送请求数据包,检查确认,等待响应或超时)后返回。C1394ReadNodeAsynch/C1394WriteNodeAsynch为非阻塞调用。非阻塞调用比阻塞调用更节省时间,节约资源。

  4.2 IEEE1394b等时传输机制

  与异步传输不同,等时传输强调了数据的实时性。等时传输是基于时间片的。

  建立等时传输的步骤为:(1)设置传输速率,最大为800 Mb·s-1。(2)设置带宽。(3)分配等时信道。(4)分配等时资源。(5)等时事务处理。(6)完成后释放资源。

  有时候应用程序并不只发送一个等时请求,那么适配器通道要处理下一个请求,同时程序还要处理上一个请求完成的结果,这样确保等时接收时不会丢数据包,这时要用到等时请求队列来完成。内核模式的API两种等时处理模型,排队一完成和即时一完成,驱动可以使用其中任意一个,如有必要可混合使用。在用户模式中,操作模式有一些限制,不能直接回调,应用程序通常使用排队一完成模式处理所有等时请求。图2和图3分别是排队一完成和即时一完成模型的处理流程图。

  5 结束语

  介绍了基于IEEE1394b驱动程序的开发,在此基础之上开发了设备驱动和应用程序,建立了1394组网平台。试验证明,实现了互联与传输,系统能工作在800 Mb·s-1的速率上,达到了预定的目标。

关键字:IEEEl394b总线  双向数据  传输设备  驱动程序 引用地址:基于IEEEl394b总线双向数据传输设备驱动程序设计

上一篇:通用1553B总线的信息监控系统的设计
下一篇:基于CAN总线的智能超声液位变送器设计

推荐阅读最新更新时间:2024-05-03 00:22

Windows CE中实现蓝牙串口驱动程序
摘要:蓝牙通信平台在嵌入式系统的实现过程中,OBEX(对象交换)始终是很重要的一部分,基于OBEX的蓝牙文件传输得到广泛应用。而OBEX的实现是基于蓝牙仿真接口,所以蓝牙串口驱动程序的实现就有了很重要的意义。介绍了Windows CE下串口驱动程序的结构和一种具体的实现方法。 关键词:蓝牙 OBEX 嵌入式系统 驱动程序 Windows CE作为一种典型的嵌入式操作系统,通过将蓝牙应用移植到Widows CE中,对于如pSOS+、Nucleus等其它嵌入式系统,具有典型意义。由于OBEX上的文件传输应用建立在RFCOMM实现的蓝牙仿真串口上,本文介绍OBEX文件传输的蓝牙虚拟串口驱动程序的实现。 1 Windows CE设备
[嵌入式]
基于接口芯片的PCI总线接口卡的设计
1、引言   作为对PCI总线在仪器领域的扩展,PXI总线由于具有高性能、低价位等特点,使其在数据采集、工业自动化系统、计算机机械观测系统和图像处理等方面获得了广泛应用。   但是PXI总线协议十分复杂,其接口的实现比ISA困难得多,直接为它设计相匹配的数字逻辑控制电路难度很大。特别是对于那些没有PCI板卡设计经验的人来说,要想直接设计出能满足要求的PXI模块几乎是不可能的事。而PXI总线的电气规范大部份跟PCI相同,只是增加了一些仪器特性。基于以上考虑,我们决定通过设计一个PCI接口卡来系统地了解利用接口芯片PCI 9030开发PXI模块的过程和方法。 2、硬件设计   目前实现 PCI 接口的方法主要是采用可编
[嵌入式]
pcf8563外部RTC驱动程序基于STM32F10x
#ifndef uchar #define uchar unsigned char #endif #define SEC 0x02 //秒寄存器 #define MIN 0x03 //分寄存器 #define HOUR 0x04 //时寄存器 #define DAY 0x05 //日寄存器 #define WEEK 0x06 //周寄存器 #define MONTH 0x07 //月寄存器 #define YEAR 0x08 //年寄存器 #define read_ADD 0xA3 //写器件地址 #define write_ADD 0xA2 //读器件地址 tm timer_8563; /
[单片机]
MSP430与PCF8576驱动程序(可以借鉴IIC的使用方法)
#i nclude msp430x14x.h #define uint unsigned int #define uchar unsigned char #define Num_of_Results 8 unsigned int results ; uchar PCF8576=0x70;//器件地址 //内存数据定义 uchar ByteCnt; //I2C 数据字节计数器 uchar SlvAdr; //被控器地址 uchar SubAdr; //被控器单元地址 uchar XmtDat ; //发送数据缓冲区 uchar MODE2=0xCD; uchar B
[单片机]
STM32F103标准库开发---SPI实验---底层驱动程序
一、SPI 实验----I/O端口配置 在本次 SPI 实验中,STM32芯片做主控,主要使用 SPI1 功能。 具体引脚配置如下: 具体引脚初始化程序如下: /* SPI引脚初始化配置 **PA4------CS **PA5------SCLK **PA6------MISO **PA7------MOSI */ void SPI1_GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE );/
[单片机]
STM32F103标准库开发---SPI实验---底层<font color='red'>驱动程序</font>
VxWorks系统下的RTL8139驱动程序改进
  引言   RTL8139是台湾Realtek半导体公司生产的一种快速以太网控制器,提供符合PCI2.2标准的接口,兼容IEEE802.3u 100BASE-T规范,支持IEEE-802.3x全双工流量控制,支持10Mbit.s-1/100Mbit.s-1全双工、半双工自适应,价格便宜,性能稳定,是PC机、电信终端产品中应用最多的以太网控制器之一。RTL8139在各种操作系统下的驱动都能从Realtek公司网页下载,其中包括 VxWorks系统下的驱动,而且提供C源代码。但是在嵌入式系统下,针对不同的硬件平台,往往需要修改该驱动程序以提高其稳定性和效率。基于 MPC8241 CPU的硬件平台,本文提出RTL8139在VxWork
[单片机]
VxWorks系统下的RTL8139<font color='red'>驱动程序</font>改进
第17节:两片联级74HC595驱动16个LED灯的基本驱动程序
开场白: 上一节讲了如何把矩阵键盘翻译成独立按键的处理方式。这节讲74HC595的驱动程序。要教会大家两个知识点: 第一点:朱兆祺的学习板是用74HC595控制LED,因此可以直接把595的OE引脚接地。如果在工控中,用来控制继电器,那么此芯片的片选脚OE不要为了省一个IO口而直接接地,否则会引起上电瞬间继电器莫名其妙地动作。为了解决这个问题,OE脚应该用一个IO口单独驱动,并且千万要记住,此IO必须接一个15K左右的上拉电阻,然后在程序刚上电运行时,先把OE置高,并且尽快把所有的74HC595输出口置低,然后再把OE置低.当然还有另外一种解决办法,就是用一个10uF的电解电容跟一个100K的下拉电阻,组成跟51单片机外围复位电路
[单片机]
基于Small RTOS51的PS/2键盘驱动程序开发
引言   随着嵌入式系统的发展,嵌入式软件设计向软件平台靠近,单片机软件设计不再是单一线程结构方式,而是逐步采用多任务的设计思想。实时操作系统使得实时应用程序的设计、扩展和维护变得更容易,无需大的改动就可以增加新的功能。然而随着任务的增加,要求输入的数据也会增加,类型也呈多样化。如果仍然用矩阵式扫描键盘,势必浪费单片机巨大的资源,且增加了成本。若用PC机标准PS/2键盘取而代之,将可解决以上矛盾。本文介绍基于实时操作系统Small RTOS51的PS/2键盘驱动程序的设计,具有响应快,移植性强,占用资源少等优点。 1 驱动的设计   驱动的实现一般可用以下几种方法:① 使用任务编写;② 使用消息编写;③ 使用信号量编写。PS
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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