




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TI 杯嵌入式设计大赛论文 作品题目 基于基于 Cortex M3 的个性收音机的个性收音机 设计成员 陈春林陈春林 周华华周华华 刘摇平刘摇平 刘京刘京 指导教师 王成华 二 一二年五月二十九日 基于 Cortex M3 的个性收音机 2 基于基于 CortexCortex M3M3 的个性收音机的个性收音机 摘要摘要 本产品一款是以TI公司Cortex M3系列LM3S8962芯片为控制核心 以收音机 模块 TEA5767 为从机芯片的个性收音机 硬件部分利用TEA5767调频芯片及 其外围电路组成收音机模块 用接插件与开发板相连 软件部分采用第三方开发 工具IAR控制协调MCU和调频芯片以实现FM调频和音量调节功能 并用LED灯 指示 作品成实现了电台自动 手动搜索 自动存台 电台外接功放播放 人机 交互显示等多项功能 主机 LM3S8962芯片 与从机之间的数据传输依赖于I2C 总线的串 行数据线SDA和串行时钟线SCL的配合 实现数据正常收发功能 此 作品功耗低且可电池供电 在便携式产品市场有很好的应用前景 基于此次产品 在功能上较为简单 所以针对其后期功能的修改和拓展仍有很多的工作需要我们 去完善 关键字关键字 Cortex M3 I2C 总线总线 电台播放电台播放 电台电台搜索搜索 键盘控制键盘控制 个性收音机个性收音机 功放功放音响音响 基于 Cortex M3 的个性收音机 3 目录目录 1引言引言 4 2 硬件系统的设计与功能实现硬件系统的设计与功能实现 4 2 1 Cortex M3 系列 LM3S8962 芯片控制系统原理 4 2 2 TEA5767 从机收音模块 5 2 3 音频功放电路模块 5 2 4 I2C 数据传输模块 5 2 5 按键控制模块 5 2 6 显示模块 5 3 软件设计的实现与说明软件设计的实现与说明 10 3 1 系统主程序设计 10 4 4 结束语结束语 12 5 致谢致谢 13 6 参考文献参考文献 14 附录 附录 作品实物图 15 附录 附录 程序源代码 17 基于 Cortex M3 的个性收音机 4 1 1 引言引言 随着声音广播技术的发展 收音机作为无线电广播最主要的接收设备在几十 年的时间里不断更新换代 尽管现在电视 网络等非常流行 但是收音机还是有 自己的一席之地 它的优点是快捷和接收方便 在没有网络 没有电话 没有电 的地方 能够接收信息的只有收音机 只要有两节电池 就可以很长时间收听 而且收音机是所有媒体中最便宜的 现在越来越多的设备里集成了收音机的功能 如车载音响 手机等 随着现在集成高频头技术的成熟 采用成品高频头制作收 音机无需多高频电路进行调试 制作一个个性收音机的难度已经降低很多 现在 人们生活节奏日益加快 随着生活质量提高 人们需要一个具有多功能的设备 它既可以实现手动和自动收听广播 又能实现人机交互的信息显示的功能 因此 本项目基于Cortex M3打造的个性收音机 它既能实现上述功能 同时成本低廉 能很好地满足用户的需求 2 2 硬件系统的设计与功能实现硬件系统的设计与功能实现 2 12 1 CortexCortex M3M3 系列系列 LM3S8962LM3S8962 芯片控制系统原理芯片控制系统原理 本系统采用LM3S8962作为主控制核心部件 LM3S8962 芯片作为TI 公司 Stellaris 系列中的一种基于Cortex M3 的32 位ARM 芯片 功能强大且运用范 围非常广泛 Cortex M3 处理器能够满足小存储要求 减少引脚数及低功耗三方 面的要求 用这款芯片作为收音机的控制部件 能很好的实现硬件之间的协调功 能 通过按键 使MCU 实现不同部件的控制操作 系统总体框图系统总体框图 基于 Cortex M3 的个性收音机 5 LM3S8962LM3S8962 主机系统图主机系统图 2 2 TEA5767 FM 从机收音模块 从机收音模块 TEA5767HN是一款由PHILIPS菲利普公司推出的低功耗的立体声收音机接 收器芯片 该芯片功能强大 结构简单 具有很好的使用价值 该芯片有以下几 个特色 1 首先 其内部集成了中频选频和解调网络 可以做到完全免调 因此只需要 基于 Cortex M3 的个性收音机 6 很少量的小体积外围元件 该芯片的特点是高灵敏度 内置集成低噪声输入运放 其次 它同时拥有FM混频自动转换电路 兼容美国 欧洲 87 5 to 108 MHz 和日 本 76 to 91MHz 调频波段 而在此次系统中该芯片对应的选频范围正是从87 5 MHz到 108 MHz 最后 其内部已集成了FM解调器 兼有自动搜台 手动搜台 的多项功能 下面就是该芯片的实验原理图 TEA5767 收音机原理图 2 收音机模块的读写信号说明 收音机芯片引脚收到主机发送过来的信号做出 读写选择 当收到读信号的时候 TEA5767将在IIC总线模式下通过SCL和SDA 两根传输线把当前的频率值传送给主机 当TEA5767收到写信号的时候 主机也 是以同样的数据传输方式配合相应的引脚信号将设置好的频率值传给TEA5767 2 2 3 3 音频功放电路模块音频功放电路模块 TDA2030是德律风根生产的音频功放电路 采用V型5 脚单列直插式塑料封 装结构 该集成电路广泛应用于汽车立体声收录音机 中功率音响设备 具有体 积小 输出功率大 谐波失真和交越失真小等特点 并设有短路和过热保护电路 等 多用于高级收录机及高传真立体声扩音装置 一般电路中的放大作用只是利 用了运算放大器的运算放大作用 因此最后的性能效果不会很好 对于噪声也没 有一定的滤出作用 而该设计电路利用了运算放大器的反相输出来稳定输出 同 时在正反馈中来进行放大 并且利用了二极管D1 D2来单向导电 然后在输出 端口利用一个电阻和电容的并联关系来选择输出能很好的解决这些问题 在本次 试验中功放电路用于将收音机输出的音频信号放大然后实现立体播放功能 基于 Cortex M3 的个性收音机 7 TDA2030 功放电路原理图 2 2 4 I2C4 I2C 数据传输模块数据传输模块 I2C总线是通过二根线 串行数据线SDA和串行时钟线SCL 来连接器件之 间通信的总线 并根据地址识别每个器件 启动总线后的第一个字节的高七位是 从器件的寻址地址 I2C的地址为C0 1100000 I2C总线的逻辑结构 收发机 总线工作在最大时钟频率为400KHz 不能连接IC到一个正工作在高时钟的总线 上 I I2C C总线只有两根双向信号线 一根是数据线总线只有两根双向信号线 一根是数据线SDASDA 另一根是时钟线 另一根是时钟线SCLSCL 数据传输时 传输的数据顺序 地址 字节1 字节2 字节3 字节4 字节 数据传送必须按顺序 地址最低位为 0 表示写操作到TEA5767 每个 基于 Cortex M3 的个性收音机 8 字节的第七位被认为是最高位 并作为字节的第一位传送 在时钟的下降沿 数 据变为有效信号 在每一字节后面的停止信号可以缩短传送时间 在整个传输完 成之前发送一个停止条件 保留的字节将包含以前的信息 I2C 总线协议 表1 写模式 注意 1 S 为启动条件 2 A 为应答信号 3 P 为停止条件 表2 读模式 注意 1 S 为启动条件 2 A 为应答信号 表3 IC 地址位 注 1 读或者写模式 a 0 对TEA5767 写操作 b 1 对TEA5767 读操作 I2C总线数据传输时序图总线数据传输时序图 基于 Cortex M3 的个性收音机 9 2 2 5 5 按键控制按键控制 键盘电路实现 下面是LM3S8962里键盘的电路图 但我们实际给上下左右四个按键电路加了个10k 的电阻 按键功能主要采用中断来实现的 当有按键被按下的时候 转入中断服务程 序 根据所按下的键盘不同 分别执行不同的功能 实现收音机跳到下一个频率 或者跳到下一个频道 另外实现跳到已经存储的电台频率 2 6 显示模块 基于 Cortex M3 的个性收音机 10 为了体现就地取材的理念 本产品显示部分采用的是 LM3S8962 开发板自带 的 OLED 显示内容包括静态显示部分和动态显示部分 静态显示内容包括带有 YOMOO 字样的 LOGO 和频率提示字样 FM 动态显示内容则是收音机不同工 作模式下动态变化的当前频率值 能很好地做到同步更新 显示模块显示模块实物图实物图 3 软件设计的实现与说明软件设计的实现与说明 硬件平台结构一旦确定 大的功能框架即形成 软件在硬件平台上构筑 完 成各部分硬件的控制和协调 系统功能是由软硬件共同实现的 由于软件的可伸 缩性 最终实现的系统功能可强可弱 差别可能很大 因此 软件是本系统的灵 魂 软件采用模块化设计方法 不仅易于编程和调试 也可减小软件故障率和提 高软件的可靠性 同时 对软件进行全面测试也是检验错误排除故障的重要手段 由于编程多涉及到数值运算 用我们平时常用的汇编语言编程是比较复杂的 这 里我们选用了移值性好 结构清晰 能进行复杂运算的C语言来实现编程 同时 整个系统程序的编写和调试都是在IAR Embedded Workbench FOR ARM软件环 境下完成的 3 3 1 1 系统主程序设计系统主程序设计 为了保证系统的可靠运行 必须要有良好的软件相配合 而且要有友好的人 机对话功能 鉴于以上要求 该系统软件部分主要由主程序 中断子程序 延时 子程序 电台搜索子程序等几大模块组成 具体主程序流程图如图3 1所示 基于 Cortex M3 的个性收音机 11 图 3 1 程序主流程图 开始开始 时钟初始化时钟初始化 I2C 总线总线使使能能 I2C 总线初始化总线初始化 外设端口使能外设端口使能 响应响应中断进入中断响应程序中断进入中断响应程序 FM 测试测试 主机模块使能主机模块使能 静态显示静态显示 LOGO 外设端口定义外设端口定义 结束结束 基于 Cortex M3 的个性收音机 12 Buttons up 读输入状态给读输入状态给 Buttons 点亮指示灯点亮指示灯 手动向上搜台手动向上搜台 点亮指示灯点亮指示灯 点亮指示灯点亮指示灯 手动向下搜台手动向下搜台 定义变量定义变量 Buttons 开始开始 结束结束 Buttons rig ht 点亮指示灯点亮指示灯 自动向上搜台自动向上搜台 自动向下搜台自动向下搜台 Buttons dow n Buttons left Y Y Y Y N N N N 图图 3 3 2 2 中断服务程序中断服务程序流程图流程图 基于 Cortex M3 的个性收音机 13 4 结束语 测试表明 基于 Cortex M3 的个性收音机基本上能够较好的完成题目要求的 要求 同时作为我们的特色电台播放效果也较为良好 经过两个多月的努力 我们终于成功的完成了题目的基本要求 制作过程 中 我们遇到了很多困难 比如功率放大器的选择和精确的放大电路 中断控制 按键代码的编写 ARM 程序中断的控制和调试等等 这些我们都耐心的一一克 服 经过这次比赛我们深刻体会到了团队的力量 培养了自己解决问题的能力 为我们以后在电子方面的发展奠定了基础 在此 衷心的感谢老师们对我们的栽 培和学校给我们创造的学习环境 5 致谢 在作品完成之际 我们要特别感谢指导老师的热情关怀和悉心指导 在我们 作品制作的过程中 老师们给了我们很多耐心的指导和启发 不仅让我学到了专 业知识 还让我学到了很多做人的道理 特别是他们广博的学识 深厚的学术素 养 严谨的治学精神和一丝不苟的工作作风使我们终生受益 在此表示真诚地感 谢 在作品的制作过程中 也得到了许多同学和学长的宝贵建议和指导 在此一 并致以诚挚的谢意 感谢所有关心 支持 帮助过我们的朋友 最后 向在百忙中抽出时间对本文进行评审并提出宝贵意见的各位领导老师 表示衷心地感谢 基于 Cortex M3 的个性收音机 14 6 参考文献参考文献 1 周立功等主编 嵌入式设计应用设计百例 M 北京航空航天大学出版 社 2009 年出版 2 傅丰林主编 中频电子线路 第二版 M 高等教育出版社 2008 3 傅丰林 原志强主编 中频电子线路电子教案 M 高等教育出版社 2005 年出版 4 刘雨棣主编 嵌入式原理及接口技术 M 西安电子科技大学出版社 2008 年出版 基于 Cortex M3 的个性收音机 15 附录 附录 系统实物图 作品整体作品整体实物图实物图 基于 Cortex M3 的个性收音机 16 作品工作时的作品工作时的实物图实物图 基于 Cortex M3 的个性收音机 17 附录 附录 所有软件的源程序所有软件的源程序 2012 年 5 月 27 日制作 硬件设计 周华华 刘京 系统分析员 刘摇平 程序员 陈春林 测试 周华华 刘摇平 陈春林 刘京 微控制器 Cortex M3 系列 LM3S8962 晶振 0 12MHz 5V 使用 6MHZ 晶振 include include include include include include systemInit h include rit128x96x4 h include I2C H 定义 LED define LED PERIPH SYSCTL PERIPH GPIOF 基于 Cortex M3 的个性收音机 18 define LED PORT GPIO PORTF BASE define LED PIN GPIO PIN 0 定义 KEY define KEYUP PERIPH SYSCTL PERIPH GPIOE define KEYUP PORT GPIO PORTE BASE define LED GPIO PIN 0 PF0 define UP GPIO PIN 0 PE0 define DOWN GPIO PIN 1 PE1 define LEFT GPIO PIN 2 PE2 define RIGHT GPIO PIN 3 PE3 define BUTTON UP DOWN LEFT RIGHT define max freq 108000 define min freq 87500 void radio write void void get pll void void get frequency void void radio read void void search bit mode void auto search bit mode void display logo void displayfrequency unsigned long frequency void fmtest void 基于 Cortex M3 的个性收音机 19 void GPIOE Handler void unsigned int frequency 89700 定义频率变量 unsigned int pll 定义 PLL 变量 unsigned int max pll 0 x339b 108MHz 时的 pll unsigned int min pll 0 x299d 87 5MHz 时的 pll unsigned long k 100 定义读取的键盘值 unsigned char radio write data 5 0 x2a 0 xb6 0 x50 0 x11 0 x40 要 写 入 TEA5767 的数据 unsigned char radio read data 5 0 x00 0 x00 0 x00 0 x00 0 x00 TEA5767 读 出的状态 volatile unsigned char Buttons 按键中断状态 typedef unsigned char BYTE typedef unsigned int WORD typedef tBoolean bit void radio write void unsigned char i iic start 基于 Cortex M3 的个性收音机 20 iic write8bit 0 xc0 TEA5767 写地址 if iic testack for i 0 i 5 i iic write8bit radio write data i iic ack iic stop 由频率计算 PLL void get pll void unsigned char hlsi unsigned int twpll 0 hlsi radio write data 2 if hlsi pll unsigned int float frequency 225 4 float 32 768 频率单位 k else pll unsigned int float frequency 225 4 float 32 768 频率单位 k 基于 Cortex M3 的个性收音机 21 由 PLL 计算频率 void get frequency void unsigned char hlsi unsigned int npll 0 npll pll hlsi radio write data 2 if hlsi frequency unsigned long float npll float 8 192 225 频率单位 KHz else frequency unsigned long float npll float 8 192 225 频率单位 KHz 读 TEA5767 状态 并转换成频率 void radio read void unsigned char i unsigned char temp l temp h pll 0 基于 Cortex M3 的个性收音机 22 iic start iic write8bit 0 xc1 TEA5767 读地址 if iic testack for i 0 imax freq frequency min freq else frequency 100 if frequencymax freq frequency min freq else radio write data 2 0 x41 frequency 20 if frequency min freq frequency max freq get pll 基于 Cortex M3 的个性收音机 25 radio write data 0 pll 256 0 x40 加 0 x40 是将 SM 置为 1 为自动搜索模式 radio write data 1 pll 256 radio write data 3 0 x11 SSL1 和 SSL0 控制搜索停止条件 radio write data 4 0 x40 radio write radio read while radio read data 0 displayfrequency frequency void display logo Initialize the OLED display RIT128x96x4Init 1000000 RIT128x96x4StringDraw 10 18 15 RIT128x96x4StringDraw Yomoo 38 24 15 RIT128x96x4StringDraw 10 34 15 基于 Cortex M3 的个性收音机 26 RIT128x96x4StringDraw FM 30 44 15 RIT128x96x4StringDraw 089 7KHz 47 44 15 RIT128x96x4StringDraw 10 54 15 void displayfrequency unsigned long frequency const char pcStr unsigned char freq 9 frequency 108000 freq 0 frequency 100000 0 frequency frequency 100000 freq 1 frequency 10000 0 frequency frequency 10000 freq 2 frequency 1000 0 frequency frequency 1000 freq 3 freq 4 frequency 100 0 frequency frequency 100 freq 5 k freq 6 H freq 7 z freq 8 0 基于 Cortex M3 的个性收音机 27 pcStr freq RIT128x96x4StringDraw pcStr 47 44 15 void fmtest void frequency 93700 get pll radio write data 0 pll 256 radio write data 1 pll 256 radio write data 2 0 x41 radio write data 3 0 x11 radio write data 4 0 x40 radio write SysCtlDelay 10 TheSysClock 3000 Delayus 4 radio read int main void jtagWait 防止 JTAG 失 效 重要 clockInit 时钟初始化 晶 基于 Cortex M3 的个性收音机 28 振 6MHz display logo iic enable iic init SysCtlPeripheralEnable SYSCTL PERIPH GPIOE SysCtlPeripheralEnable SYSCTL PERIPH GPIOF GPIOPadConfigSet GPIO PORTF BASE LED GPIO STRENGTH 2MA GPIO PIN TYPE STD GPIODirModeSet GPIO PORTF BASE LED GPIO DIR MODE OUT GPIOPadConfigSet GPIO PORTE BASE BUTTON GPIO STRENGTH 2MA GPIO PIN TYPE STD WPU GPIODirModeSet GPIO PORTE BASE BUTTON GPIO DIR MODE IN GPIOPinIntEnable GPIO PORTE BASE BUTTON GPIOIntTypeSet GPIO PORTE BASE BUTTON GPIO LOW LEVEL IntRegister 20 GPIOE Handler IntEnable INT GPIOE IntMasterEnable 基于 Cortex M3 的个性收音机 29 display logo frequency 93700 fmtest displayfrequency frequency while 1 中断控制按键 void GPIOE Handler void int j volatile unsigned c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论