预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

嵌入式Linux下基于SPI总线的VS1003B驱动设计与实现 王辉何永刚 (中国电子科技集团公司第三研究所音视频部北京100015) 【摘要】:介绍嵌入式Linux系统的SPI驱动设计,并通过SPI驱动实现对VS1003B音频编解码芯片的控制,进而实现对MP3文件的播放。阐述SPI驱动程序的实现过程,通过SPI总线对VS1003B寄存器进行读写控制和数据发送。 【关键词】:S3C2440;VS1003B;SPI;linux驱动程序设计 【Abstract】IntroductionofembeddedLinuxsystemSPIdriverdesign,andthroughtheSPIdriverforVS1003Baudiocodecchipcontrol,soastorealizetheMP3fileplayback.TheSPIdriverfortherealizationoftheprocess,throughtheSPIbustotheVS1003Bregisterreadandwritecontrolanddatatransmission. 【Keywords】S3C2440;VS1003B;SPI;DesignofLinuxDriver 随着计算机技术的飞速发展在社会日益信息化的今天,嵌入式系统已成为继PC和Internet之后IT界新的技术热点[1]。应用嵌入式系统的电子产品随处可见,如日常用的手机、医疗仪器,乃至航空、航天、嵌入式系统体积小、功能强、开发灵活方便,在工业控制、通信、航空航天等设备都要用到嵌入式系统领域应用广泛[1]。在嵌入式系统的开发过程中,有时经常会用到SPI通信方式。虽然通用的串口驱动可以满足很多系统的需要,但实际上由于嵌入式系统对SPI接口完善的支持,一些芯片使用SPI通信方式会更加方便和高效[2]。本文基于ARM9芯片的S3C2440和Linux操作系统,设计了一种SPI驱动程序,并利用SPI驱动实现了对VS1003B解码芯片的控制,同时实现了对MP3文件实时播放。 1.S3C2440试验开发平台 采用Samsung公司的芯片S3C2440A作为核心处理器,,主频400MHz,最高533Mhz,并与64MBSDRAM和256MBNANDFlash共同组成核心部分。该微处理器集成了众多的外围设备接口,其中包括虚拟内存管理单元MMU、SPI接口总线、LCD控制器、USB主从设备接口、触摸屏接口、I2C总线接口和网络接口等。该项目的实际为满足设计需要设计使用中,将Linux2.6.32.2版内核移植于该开发平台之上[3]。 2.系统硬件组成 2.1SPI硬件模块 S3C2440包括具有两个SPI接口,每个接口分别SPI具有两个8位的数据移位寄存器,用于数据的独立地发送和接收数据,并兼容SPIver.2.11协议,并且支持8位逻辑预分频设置。此SPI模块共包含以下5根信号线[3]:SCK、nCS、MISO(SPIMISO0)、MOSI(SPIMOSI0)和)/SS(nSS)[4]。 其中SCK信号为串行时钟线,用于移位和采样数据线上的信息,使得从机和主机同步接收或发送数据;nCS类似于片选信号,当其为低电平为有效,主机发送,选择使能与其通信的某个从设备;MISO主入从出数据线,从机发送数据,主机接收数据;MOSI主出从入数据线,主机发送数据,从机接收数据;/SS(nSS):多主机错误检测信号。 (1)SCK:数据同步时钟信号,由主设备驱动,向从设备输出,使得从设备按照同步时钟的步调来接收或发送数据。 (2)nCS(由用户指定GPIO):从设备选择信号线(SlaveSelect,SS)由主设备发出,用来选择激活某个从设备,低电平有效。 (3)MISO(SPIMISO0):主入从出信号线,表示该信号在主设备中作为输入,在从设备中作为输出。 (4)MOSI(SPIMOSI0):主出从入信号线,表示该信号在主设备中作为输出,在从设备中作为输入。 (5)/SS(nSS):多主错误检测。 2.2VS1003B解码芯片 VS1003B是由荷兰VLSI公司出品的一款单芯片的MP3/WMA/MIDI音频解码和ADPCM编解码芯片,能解码MPEG1和MPEG2音频层III、WMA、WAV以及通用MIDI/SP-MIDI的文件,对话筒输入或线路输入的音频信号进行IMAADPCM编码[5]。它内含高性能片上立体声数模转换器,两声道间无相位差,内含能驱动30欧负载的耳机驱动器,并且为用户应用提供5KB的指令RAM和0.5KB的数据RAM[它包含一个高性能,自主产权的低功耗DSP处理器和VS_DSP工作数据存储器,为用户应用提供5KB的指令RAM和0.5KB的数据RAM。串行的控制和数据输入接口,4个通用IO口,一个UA