嵌入式课程设计

  • 格式:doc
  • 大小:1.57 MB
  • 文档页数:19

目录摘要 (1)第一章绪论 (2)1.1课题研究的背景 (2)第二章系统设计 (2)2.1 嵌入式系统 (3)2.2 嵌入式系统的组成 (3)2.3 嵌入式系统的开发流程 (4)2.4 操作系统的选择 (5)第三章硬件架构 (5)3.1 S3C2440处理器简介 (5)3.2 电源接口 (6)3.3 IIS音频数据接口 (7)3.4 AC97接口 (8)第四章 AC97音频驱动及实现 (10)4.1 设备的初始化 (11)4.2 Mixer 驱动 (11)4.3 Dsp 驱动 (12)第五章总结 (12)参考文献 (13)附录1 mixer.c (14)附录2 dsp.c (17)基于S3C2440的AC97音频设备电路及驱动程序设计摘要嵌入式操作系统ARM-Linux的应用已经越来越广泛,但是Linux系统本身并没有对种类繁多的硬件设备都提供现成的驱动程序, 特别是由于工程应用中的灵活性就需开发一套适合于自己产品的设备驱动, 这使得嵌入式Linux设备驱动程序的开发在整个嵌入式系统开发周期中占据很大的比例。

本文针对三星的S3C2440嵌入式ARM微处理器, 介绍了在Linux操作系统下, 对S3C2440微处理器内部AC97音频设备电路及驱动程序设计,通过编写编写AC97音频驱动程序, 总结出一种在嵌入式Linux操作系统下快速方便的开发驱动程序的方法。

关键词:嵌入式系统; Linux系统;设备驱动;AC97音频第一章绪论近年来随着微处理器技术、DSP 技术、多媒体编解码技术以及嵌入式技术的发展,多媒体娱乐终端已经成为消费性电子(Consumer Electronic,CE)产品的热点。

视频和音频都是多媒体娱乐的重要组成部分,尤其是数字音频信号。

在“十一五”规划建议中,数字化音频信息产业群被列为重点培育对象。

1.1 课题研究的背景嵌入式设备在生活中随处可见,如手机、MP3 播放器、家用电器、手持通信设备、信息终端、仪器仪表、汽车、航天航空、军事装备、制造工业、过程控制、电子表等,它以其独有的嵌入、专用特点,备受系统开发者的青睐。

嵌入式系统的软件、硬件都是可裁剪的,特别适用于对功能、可靠性、成本、体积、功耗有严格要求的场合。

开源操作系统Linux 具有丰富的开发工具,大量文档和广泛的技术支持;支持主流的硬件设备和最新的硬件技术,全球的Linux 爱好者编写了大量的驱动程序,使得Linux非常容易移植;庞大的体系给学习内核带来了很大困扰,通用的Linux 不具备硬实时性。

多媒体已经进入到人民生活的方方面面,视频与音频设备迅速发展,决定了编写相应的Linux 驱动代码的必要性。

纵观声卡的发展历史,我们不难发现,主线一直是随着声道技术以及采样规格的发展而发展。

UDA1341TS 编解码芯片属于16 位/44.1 kHz 声卡芯片之一,因其简单实用,价格便宜,又可以满足嵌入式系统对声音的一般处理要求而广泛使用,所以为其编写驱动程序是很有必要的。

Linux 内核主要支持OSS 和ALSA 两种声卡驱动框架,相比于OSS,ALSA 驱动框架可以完美的处理系统中的多个声音设备,还专门为简化应用程序的编写提供了相应的函数库alsa-libs,因此Linux2.6 内核采用了ALSA 驱动框架体系。

第二章系统设计嵌入式系统具有广阔的应用前景,可以用于不同的领域,而开源的Linux 操作系统在嵌入式领域快速发展,两者结合的研究是一个很好的课题,具有重要的社会和商业价值。

2.1 嵌入式系统嵌入式系统在广义上说就是计算机系统,它包括除了以通用为目的计算机之外的所有计算机。

从便携式音乐播放器到航天飞机的实时控制子系统都能见到嵌入式系统的应用。

与通用计算机系统可以满足多种任务不同,嵌入式系统只能完成某些特定目的的任务。

但有些也有实时性能的制约因素必须得到满足的原因,如安全性和可用性。

除此之外其他功能可能要求较低或没有要求,使系统的硬件得以简化,以降低成本。

对于大批量生产的系统来说,降低成本通常是设计的首要考虑。

嵌入式系统通常需要简化去除不需要的功能以降低成本,设计师通常选择刚刚满足所需功能的硬件使目标最小化低成本的实现。

嵌入式系统的定义:嵌入式系统是指以应用为中心,以计算机技术为基础,软件硬件可剪裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

它主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件等部分组成。

它具有“嵌入性”、“专用性”与“计算机系统”的三个基本要素。

2.2 嵌入式系统的组成一个典型的嵌入式系统应由硬件平台、班级支持包(BSP: Board Support Package)、操作系统、应用程序四部分组成。

硬件平台主要就是嵌入式处理器及其控制所需要的相关外设。

目前,32 位处理器是嵌入式处理器的主流,主频通常在40MHz 以上;也有超过500MHz 甚至更高的高端处理器。

多处理器组成的平台、多核处理器平台也出现在嵌入式领域。

不过。

现在大量使用的仍是32 位单处理组成的平台。

一个典型平台的基本组成如图2-1 所示:图2-1 嵌入式平台的架构2.3 嵌入式系统的开发流程设计一个嵌入式专用系统的开发过程:首先是需求分析,了解用户需要解决哪些问题;选择处理器和相应的硬件,原则上采用比较低的成本和简单的外设解决问题;而后是硬件的设计(包括原理图和PCB)调试,检查硬件是否工作正常;接着调试软件,有处理器的初始化、中断、外设等需要编程序实现的;最后就是测试,测试整个系统的功能是否正常,若正常则发布产品。

如果有了嵌入式系统(即:基本的处理器和核心电路是固定的,操作系统已经移植好了),做产品时,所需要做的工作就是看看是否需要添加外设,尔后编写所添加外设的驱动程序,进而编写应用程序。

这样避免重复劳动,缩短开发周期。

目前大多数小公司就采用的是这种方案。

其流程如图2-2 所示:图2-2 在嵌入式平台的开发流程2.4 操作系统的选择选择合适的操作系统,对于嵌入式系统开发十分关键。

合适的操作系统至少应该具有两大功能:多任务管理;文件和设备的管理。

此外,还得考虑以下5 个方面:1. 系统的实时性问题。

2. 是否容易移植。

3. 系统驱动程序是否好完善。

4. 用程序是否容易开发和调试。

5. 交叉编译工具链是否完善。

考虑以上因素,符合要求的有:Linux、WinCE、VxWorks、eCos、uC/OS-II 等,但Linux 源码开放,软件和驱动程序支持十分丰富,驱动协议栈完善,应用广泛,所以论文中采用了Linux 为操作系统。

第三章硬件架构3.1 S3C2440处理器简介S3C2440处理器由核心板和底板两大部分组成,外围扩展资源丰富,支持IIS 总线,AC97 声卡接口。

三星公司的16/32 位RISC 微处理器S3C2440A,它采用了ARM920t 的内核,0.13um 的CMOS 标准宏单元和存储器单元,新的总线架构Advanced Microcontroller Bus Architecture (AMBA),具有独立的16KB 指令ICache 和16KB 数据DCache。

同时,使用了5 级流水线技术,最大工作频率可到400MHz;采用哈佛体系机构,取指和读指可以同时进行;引入了高速缓存(Cache)和写缓存(Write Buffer),解决了存储器访问速度的瓶颈;支持MMU(Memory Manage Units,内存管理单元),使用虚拟文件系统,通过内存保护,一个进程的失败并不会影响其他进程的运行,从而增强了系统的稳定性。

论文中用到的片上功能有:1. 60 个中断源(1个看门狗定时器,5个定时器,9个UARTs,24个外部中断,4个DMA,2个RTC,2个ADC,1个IIC,2个SPI,1个SDI,2个USB,1个LCD和1个电池故障,1 个NAND和2个Camera), 1个AC97音频2. 电平/边沿触发模式的外部中断源3. 可编程的边沿/电平触发极性4. 支持为紧急中断请求提供快速中断服务5. 24个外部中断端口6. 130个多功能输入/输出端口7. 4-通道的DMA 控制器;8. 支持存储器到存储器,IO 到存储器,存储器到IO 和IO 到IO 的传输s9. 采用触发传输模式来加快传输速率10. 8 通道多路复用ADC11. 最大500KSPS/10 位精度12. 通道多主IIC 总线13. 可进行串行,8 位,双向数据传输,标准模式下数据传输速度可达100kbit/s,快速模式下可达到400kbit/s.14. 1 通道音频IIS 总线接口,可基于DMA 方式工作15. 串行,每通道8/16 位数据传输16. 发送和接收具备128 字节(64 字节加64 字节)FIFO17. 支持IIS 格式和MSB-justified 数据格式18. 支援16 位采样19. ch 立体声PCM 输入/ 1-ch 立体声PCM 输出1-ch MIC 输入3.2 电源接口TQ2440开发板上的电压设计采用5V 输入实验板,板上带电源开关和指示灯,经可带载1.5A 的低压差线性稳压源AS1117AR-3.3 IC 芯片稳压,提供给实验板所需要的3.3V 电源如图3-1 所示。

图3-1 3.3V电源电路注意:输入电压不要大于7V ,标配的电源适配器是5V 供电。

在不清楚适配器输出电压时,请向适配器的供应商确认输出电压或自行用电压表测试输出电压;以防止因为输入电压过高而导致开发板出现损坏的情况。

3.3 IIS音频数据接口TQ2440提供的音频接口完全按照标准接口提供,绿色为音频输出接口,红色为音频输入接口。

底板与UDA1341TS 的接口电路如图3-2 所示。

图3-2 TQ2440音频接口电路原理图IIS即音频数据接口,它是Philips 和Sony 等公司共同推出的接口标准。

本系统把接口与UDA1341TS (Philips 公司的)音频数字信号编译码相连接,得到SPEADER 音频输出通道和MICROPHONE 音频输入通道。

UDA1341TS 可把数字信号转换为模拟信号,同样也能把立体声模拟信号转化为数字信号,并可用AGC (自动增益控制)、PGA (可编程增益控制)对模拟信号进行处理。

对于数字信号,该芯片提供DSP (数字音频处理)功能。

对于UDA1341TS 的L3 总线,它是该芯片工作于微控制器输入模式时使用的,它包括L3DATA 、L3MODE 和L3CLOCK 三根接线,它们分别表示微处理器的接口数据线、接口模式线和接口时钟线(连接GPB2、GPB3、GPB4 引脚)。

通过这个接口,微处理器能够对UDA1341TS 中的数字音频处理参数和系统控制参数进行配置。