开发DSP片内及片外硬件外设驱动程序的方法

2013-10-17 18:06 来源:电子信息网 作者:和静

目前,TI公司的DSP应用很广泛,随着DSP的功能越来越强大,片上外设种类及应用日趋复杂。传统的DSP程序开发包含两方面程序:即配置、控制、中断等管理DSP片内外设、接口的硬件相关程序和基于应用的算法程序。这样的系统结构,应用程序与硬件相关程序紧密的结合一起,限制了程序的可移植性和通用性,软件开发总要从零开始,存在诸多重复工作。一旦硬件平台有变化,往往与硬件程序捆绑一起的应用程序也需改动,代码的维护性和可移植性均不高。

通过建立硬件驱动程序的开发模式,可使上述现象得到改善。因此,本文介绍一种开发TI公司DSP片内及片外硬件外设驱动程序的方法,并以C5000 DSP的McBSP/DMA及TMS320C5509的USB驱动程序开发为具体对象,介绍这种方法的应用。

2 基于DSP/BIOS的IOM硬件驱动

在CCS应用环境中集成的实时操作系统DSP/BI-OS[1]中,硬件驱动程序最终以函数库的形式被封装起来,应用程序可不关心底层硬件外设的具体操作,通过调用DSP/BIOS相关的标准API与不同外设接口。接口按统一标准定义,即在DSP/BIOS中创建并配置硬件设备驱动模块为IOM(I/O Mini-driver)模式。

IOM[2]是DSP/BIOS的设备驱动模块的一种接口方式,配置硬件设备驱动模块为IOM模式可在DSP/BIOS的图形化界面(GUI)中方便完成。IOM模式将设备驱动程序分为两个层次:上一层是“类”驱动程序(class driv-er),这部分程序负责对存储缓冲区管理、由DSP/BIOS各类标准的API函数与应用程序接口,与设备硬件无关。下一层是“迷你”驱动程序(mini-driver),这部分程序集成了实际硬件相关的代码。IOM接口将“迷你”驱动程序与“类”驱动程序联系一起,包括定义I/O数据包(IOM_Packet)以提交“迷你”驱动程序读写,定义功能函数包(IOM Fxns)完成相关初始化,打开或关闭通道,提交I/O数据传输与控制等任务,确保“迷你”驱动程序与“类”驱动程序运行协调一致。

“类”驱动程序直接在应用程序中出现,并且根据数据输入/输出的处理方式不同,有相应“类”驱动程序。主要是3种:流输入输出型“类”驱动(SIO)、管道型“类”驱动(PIP)和通用输入输出型“类”驱动(GIO)。

其中,SIO“类”驱动由两部分组成:SIO模块和DIO适配模块(Adapter),前者负责创建通道、数据流输入/输出,DIO提供负责缓冲管理、信号同步、将API及参数与下层“迷你”驱动程序接口;PIP“类”驱动由两部分组成:PIP模块和PIO适配模块(Adapter),前者创建管道、数据管道输入/输出,PIO提供负责缓冲管理、信号同步、将API及参数与下层“迷你”驱动程序接口。GIO“类”驱动是一种通用输入输出接口,调用的API函数,可通过阻塞线程读写数据,直接与“迷你”驱动通信。

SIO,PIP,GIO模块集成在DSP/BIOS中,SIO通道、PIP管道可在DSP/BIOS的输入输出模块图形化界面(GUI)中静态设置并创建,也可以在应用程序中动态创建。DIO,PIO适配模块(Adapter)创建在DSP/BIOS的设备驱动模块图形化界面(GUI)中完成。

1 2 3 4 > 
DSP 硬件驱动

相关阅读

暂无数据

一周热门