linux系统reales,基于uCLinux系统的IEEE1394设备驱动程序的编程研究与实现

本文分析了IEEE1394协议驱动层框架,介绍了uCLinux下IEEE1394设备驱动程序架构和编写IEEE1394视频设备驱动程序的步骤和方法。(1)IEEE1394网络架构IEEE1394的网络共有三层,分别是物理层、链接层及传输层。物理层主要的功能是数据的编码、译码与总线的判断。链接层主要功能为封包接收、封包传送与周期控制。传输层则是定义请求及响应协议,并用以实现读取、写人及锁住三个基本的传输动作。(2)uCLinux系统的IEEE1394的驱动程序编程研究尽管uCLinux沿用Linux的标准,但在uCLinux系统里编写IEEE1394设备驱动程序有其独特之处。从控制的角度来划分,IEEE1394驱动程序可以分为IEEE1394子系统、主机控制程序和设备驱动程序。IEEE1394子系统IEEE1394子系统即是IEEE1394_core。它通过定义一些数据结构、宏和功能函数来抽象所有的硬件设备。IEEE1394-core模块提供了为硬件处理的所有下层接口,包含所有IEEE1394设备驱动和主机控制的通用程序,IEEE1394设备驱动模块向子系统注册或者取消注册。对于特殊的IEEE1394设备(那些对任何子系统都不适合注册)需要注册fil仁。Peration和一些次设备号。所有的IEEE1394驱动程序都包括一个向子系统注册的结构,当设备被总线检测到,调用此人口点。主机控制程序主机控制程序可以分为两类:。hci、unci。在本系统中选择:。hci1394作为IEEE1394子系统的驱动程序,主机处理驱动(ohci)向IEEE1394_core数据结构注册它的功能函数。它完成IEEE1394_core接口硬件的初始化、状态控制、传输差错控制以及数据处理。IEEE1394设备驱动程序如果不是通用IEEE1394设备,Linux内核里不会支持,因此有必要单独为其写驱动程序。在此通过L讯uxAPI功能函数描述IEEE1394设备驱动程序的实现.IEEE1394_DEVIC是IEEE1394设备驱动程序实现的基础。其中初始化函数tvl394_init()完成系统加载时把IEEE1934设备驱动编译人内核,递交数据包函数及发送数据包函数实现对协议层的支持。设备驱动程序还要提供。Pen、reales。和ioctl等3个接口函数来完成对设备的打开、释放和控制处理,在Li、x2.4以后的内核中去掉了read、write、iseek这些不必要的操作。此外,还需申请中断号r肉uest_irq。(3)将驱动程序编译进内核并建立设备文件,uCLinux内核不支持内核模块Ikm(Loadablekernelmodule)设备驱动及文件系统,需要静态地编译进内核。IEEE1394的高速、灵活和可扩展性,使其在很多方面都大有用武之地,可以预见嵌人式设备中会越来越多的使用该类设备,所以了解uCLinux中IEEE1394设备驱动程序的编写有非常好的意义。作者:马学文,朱名日(桂林工学院电子与计算机系广西541004)基于uCLinux系统的IEEE1394设备驱动程序的编程研究与实现@马学文$桂林工学院电子与计算机系!广西541004

@朱名日$桂林工学院电子与计算机系!广西541004本文分析了IEEE1394协议驱动层框架,介绍了uCLinux下IEEE1394设备驱动程序架构和编写IEEE1394视频设备驱动程序的步骤和方法。(1)IEEE1394网络架构IEEE1394的网络共有三层,分别是物理层、链接层及传输层。物理层主要的功能是数据的编码、译码与总线的判断。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值