基于8051F330的音频信号发生器的设计与实现-设计应用_第1页
基于8051F330的音频信号发生器的设计与实现-设计应用_第2页
基于8051F330的音频信号发生器的设计与实现-设计应用_第3页
基于8051F330的音频信号发生器的设计与实现-设计应用_第4页
基于8051F330的音频信号发生器的设计与实现-设计应用_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑基于8051F330的音频信号发生器的设计与实现-设计应用1引言目前,单片机系统以价格低廉、开发环境完备、开发工具齐全、应用资料众多、功能强大且程序易于移植等优点而得到广泛应用。同时,随着信息化进程、计算机科学与技术以及信号处理理论与方法的迅速发展,需要的数据量越来越大,对数据存储也提出了更高要求。MMC/SD卡以其价格、体积、读取速度等特点成为现今大多数便携式嵌入式设备的。

2系统结构及原理

基于8051F330的音频信号发生器的系统结构如图1所示,它主要由8051F330单片机、MMC/SD卡存储器、RS232串行通信接口、上位机、液晶显示、键盘以及信号调理电路等部分组成。将写入MMC/SD卡中的音频数据存储在上位机,单片机通过RS232串行通信接口写入MMC/SD卡,以中断方式读取键盘接口命令,并根据命令控制选择相应的音频信号数据,再由信号调理电路输出不同频率和强度的音频信号,系统通过液晶显示模块显示信号频率、信号强度及信号类型。该系统突出的特点是上位机采用LabWindows/CVI软件,通过RS232串行通信接口与单片机通讯;以文本格式存储在上位机的音频信息则通过RS232串行通信接口到MMC/SD卡。

系统控制选用美国Cygnal公司的8051F330单片机,C8051F330微控制器采用独特的CIP-8051架构,对指令运行实行流水作业,大大提高了指令的运行速度;采用多功能存储卡-MMC/SD卡作为存储介质。MMC/SD卡内置控制电路,可应用于手机、数码相机、MP3等多种数字设备,反复记录30万次,具有较高的性价比;液晶显示屏采用OCM12864点阵液晶显示模块,由单片机时序控制,具有8位数据线、6条控制线和电源线。

3硬件设计3.1MMC/SD卡接口电路

MMC/SD卡在音频信号发生器系统中是以数字量形式存储音频信息。MMC/SD卡有两种工作模式,即MMC/SD模式和SPI模式。从实际应用角度出发,SPI模式设计简单,操作方便,但数据传输速率不如MMC/SD模式,本系统采用SPI模式。MMC/SD卡工作在SPI模式下,其各个引脚功能的定义,如表1所示。CS是MMC/SD卡的片选线,在SPI模式下,CS必须保持低电平有效;DI不但传输数据,还发送命令,传输方向是由单片机到MMC/SD卡;同样DO除了发送数据外还传送应答信号,传输方向是由MMC/SD卡到单片机;SCLK是操作MMC/SD卡的时钟线。将C8051F330的相应交叉开关配置为SPI模式,与MMC/SD卡对应的引脚连接。针对SPI总线线路上增加了上拉电阻。原文位置

3.2上位机和单片机通信

上位机采用LabWindows/CVI软件通过串口向单片机发送音频信息。单片机将接收到的信息数据写入MMC/SD卡。LabWindows/CVI软件的音频信息是由WinHex软件将原始文件转换成16进制的数字量,该软件可对多种语音信号进行转换。上位机与单片机的通信是通过RS232串口通讯器件完成的。当上位机与音频信号发生器相距较远.不能直接用RS232器件将其连接时,可将RS232转换为CAN,通过CAN总线实现串口设备的网络互联。RS232标准电平采用负逻辑,规定+3V~+15V的任意电平为逻辑“0”电平,-3V~-15V的任意电平为逻辑“1”电平。而CAN信号则使用差分电压传输,2条信号线称为“CAN_H”和“CAN_L”,静态时均为2.5V,此时状态表示为逻辑“1”,也可称为“隐性”;CAN_H比CAN_L高时表示逻辑“0”,称为“显性”。显性时,通常为:CAN_H=3.5V,CAN_L=1.5V。

RS232串口的帧格式:1位起始位,8位数据位,1位可编程的第9位(此位为发送和接收的地址/数据位),1位停止位。而CAN的数据帧格式:帧信息+ID+数据(分为标准帧和扩展帧两种格式)。3.3信号调理电路

存储在MMC/SD卡中的数据是音频信号发生器的源代码。单片机将这些数据从MMC/SD卡中读出,经过单片机内部数模转换,以模拟量的形式从P01输出。该模拟信号经信号调理电路可外接耳机或音响播放十几种音律。信号调理电路如图3所示。由P01输出的信号经LM324放大后,由多个LM324并联实现信号跟随和功率驱动。图中只画出了2个跟随器,实际应用中根据需要可以并联10多个信号跟随器。

4软件设计4.1系统初始化

系统初始化可完成C8051F330的I/O口、晶体振荡器、SPI总线和C8051F330片上串口的初始化设置。用C语言编写的程序代码如下:

4.2MMC/SD卡初始化

MMC/SD卡上电后默认为MMC/SD模式,要使MMC/SD卡工作在SPI模式下,在MMC/SD卡初始化时,当片选线(CS)被拉低时发送复位命令CMD0,如收到应答信号01H,表示已将卡置为闲置状态;如收到应答信号不是01H,则表示出错。然后向MMC/SD卡发送命令CMD1,收到正确的应答信号00H之后,才会使MMC/SD卡进入SPI模式。

MMC/SD卡协议是一种问答式协议。首先单片机发送CMD。接着由MMC/SD卡发送回应RES。MMC/SD卡的命令长度都是6字节,命令总是以左边的起始位开始,右边的结束位结束。其具体的命令格式如表2所示,MMC/SD卡的应答格式分为4种,分别是R1、R1b、R2和R3应答。

4.3MMC/SD卡单块写数据MMC/SD卡单块写数据主要实现C8051F330对MMC/SD卡的单块写操作。MMC/SD卡块的默认大小为512字节。当MMC/SD卡接收到单块写命令CMD24后,MMC/SD卡向单片机发送应答命令,并且等着单片机发送数据块。当应答命令R1为0时,说明可以发送512个字节数据。MMC/SD卡对接收到的数据块都通过一个l字节长的命令确认,当其低5位二进制数据为00101时,数据块才确认数据块写入MMC/SD卡。在数据块发送中,共发送515个字节数据,其中,个字节为0xFE,随后是512字节的用户数据块,是2个字节的CRC。

采用C语言编写的程序代码如下:

5结束语

根据MMC/SD卡的SPI协议,采用单片机实现与MMC/SD卡的接口,解决了嵌入式系统大容量数据存储问题,利用上位机可以方便的读取写入数据。本系统的存储速度可达20Mb/s,完全满足信号发生器所需的速度和音频播放速度。所编写的MMC/SD卡驱动程序已经应用到嵌入式信号发生器系统中,实现了数据的安全、稳定的存储。相对于MMC/SD卡无论是读写速度还是存储容量都得到了极大提高。在SPI模式下,SD卡与MMC卡相兼容,即就是说SD卡程序也适用于MMC卡。

参考文献:

[1].8051F330datasheet/datasheet/8051F330_310866.html.[2].RS232datasheet/datasheet/RS232

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论