0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于单片机实现音频信号发生器的设计

电子设计 来源:郭婷 作者:电子设计 2019-06-08 08:36 次阅读

1 引言

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

2 系统结构及原理

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

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

3 硬件设计

3.1 MMC/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 上位机和单片机通信

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

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6024

    文章

    44393

    浏览量

    629565
  • 嵌入式
    +关注

    关注

    5048

    文章

    18850

    浏览量

    299673
  • 存储器
    +关注

    关注

    38

    文章

    7378

    浏览量

    163222
收藏 人收藏

    评论

    相关推荐

    基于单片机频信号发生器的设计

    基于单片机频信号发生器的设计
    发表于 12-01 18:15

    怎样去设计一种基于51单片机的低频信号发生器

    基于51单片机的低频信号发生器是由哪些部分组成的?怎样去设计一种基于51单片机的低频信号发生器
    发表于 10-18 08:54

    基于8051F330的音频信号发生器的设计

     MMC/SD卡以其优越的性能,在单片机嵌入式设备中得到广泛应用。将MMC/SD卡作为外部掉电存储介质应用于音频信号发生器中,通过8051F330单片机上的SPI接口,
    发表于 12-11 16:09 79次下载
    基于8051F330的<b class='flag-5'>音频信号</b><b class='flag-5'>发生器</b>的设计

    音频信号发生器电路图

    音频信号发生器电路图
    发表于 04-10 18:18 3560次阅读
    <b class='flag-5'>音频信号</b><b class='flag-5'>发生器</b>电路图

    携带式音频信号发生器

    携带式音频信号发生器
    发表于 04-20 11:35 538次阅读
    携带式<b class='flag-5'>音频信号</b><b class='flag-5'>发生器</b>

    频信号发生器原理及制作

    频信号发生器原理及制作 本文介绍的调频信号发生器,精度高,工作可靠,可作为调频接收的高频、中频、鉴频
    发表于 05-17 10:31 5358次阅读
    调<b class='flag-5'>频信号</b><b class='flag-5'>发生器</b>原理及制作

    基于FPGA和51单片机信号发生器设计

    为了降低传统函数信号发生器成本,改善函数信号发生器低频稳定性,本文结合FPGA和51单片机设计并实现
    发表于 03-22 12:08 125次下载
    基于FPGA和51<b class='flag-5'>单片机</b><b class='flag-5'>信号</b><b class='flag-5'>发生器</b>设计

    音频信号发生器

    音频信号发生器
    发表于 03-15 10:04 66次下载

    【论文】单片机函数信号发生器设计

    【小论文】单片机函数信号发生器设计
    发表于 12-11 22:06 16次下载

    可调音频信号发生器的安装与检修

    可调音频信号发生器(以下简称音频信号发生器)是一种频率可谓的低频振荡,它可以产生频率在可昕范围内的低
    发表于 09-07 09:16 11次下载
    可调<b class='flag-5'>音频信号</b><b class='flag-5'>发生器</b>的安装与检修

    FPGA和51单片机信号发生器设计

    FPGA和51单片机信号发生器设计
    发表于 10-31 09:15 22次下载
    FPGA和51<b class='flag-5'>单片机</b><b class='flag-5'>信号</b><b class='flag-5'>发生器</b>设计

    音频信号发生器的制作

    本文主要介绍了用D触发组成的音频信号发生器电路原理及实物组装视频,另外还介绍了音频信号发生器功能作用及几款
    的头像 发表于 07-27 08:45 2.7w次阅读

    音频信号发生器的电路说明

    《电子报》2007年第37期“电子职校”版刊登的《音频信号发生器》一文,文中的电路是一种变压反馈振荡。现介绍另一种电路简单、工作稳定可靠的音频信
    的头像 发表于 05-01 16:47 4192次阅读
    <b class='flag-5'>音频信号</b><b class='flag-5'>发生器</b>的电路说明

    基于单片机的LABVIEW信号发生器课设

    基于单片机的LABVIEW信号发生器课设(单片机原理及接口技术)-该文档为基于单片机的LABVIEW信号
    发表于 07-22 14:13 28次下载
    基于<b class='flag-5'>单片机</b>的LABVIEW<b class='flag-5'>信号</b><b class='flag-5'>发生器</b>课设

    17-基于单片机的函数信号发生器(低频信号发生器

    频信号发生器系统主要由CPU、D/A转换电路、电流/电压转换电路、按键和波形指示电路、电源等电路组成。
    发表于 11-04 17:51 25次下载
    17-基于<b class='flag-5'>单片机</b>的函数<b class='flag-5'>信号</b><b class='flag-5'>发生器</b>(低<b class='flag-5'>频信号</b><b class='flag-5'>发生器</b>)