软件设计
应用软件架构
基于P89LPC932单片机控制平台的TEA5768HL数字收音机的软件设计主要包括3部分:
1. I2C总线通信协议、键盘及显示终端驱动程序;
2. TEA5768HL 底层驱动,包括寄存器控制字的读写操作;
3. 应用层程序包括数字调谐收音机的各种应用功能的实现。
应用软件设计
整个应用层软件主程序由:系统初始化、键盘命令检测、系统状态信息读写、频道调谐、键盘命令处理和系统状态显示6大模块组成。TEA5768HL数字调谐收音机应用系统软件主程序流程如图3所示。其中系统初始化包括P89 LPC932的初始化、I2C通信初始化、系统状态信息读取和TEA5768HL控制寄存器的初始化。
关于键盘的扫描及键码识别程序,这里不再赘述,读者可以自行完成。所有的功能由键盘输入开启,所以键盘命令处理程序将完成该系统的所有功能。以下重点介绍TEA5768HL数字收音机的键盘命令处理程序。
键盘命令处理程序实现了暂停、手动搜索、自动搜索、广播频道切换、立体声/单声道切换、静音和键盘锁定7个常用功能,每一个功能由一个功能函数完成。
每个功能就是一个功能模块函数,键盘命令处理程序都是功能模块函数的调用。上述7个功能模块中,自动搜索和手动搜索是该数字调谐收音机系统程序功能模块的关键。
自动搜索功能模块函数
自动搜索功能模块函数主要由:FM广播频率设置、搜索频率设定、广播信号强度读取、IFC中频计数器读取、有效广播频道的判别、广播频道数据的存储和系统工作状态显示等部分组成。自动搜索功能模块函数流程如图4所示。
遵循图4流程编写自动搜索功能模块,将使系统能够很好地实现自动搜索功能,手动搜索相当于自动搜索的一个步进频率的搜索过程。不难发现,不管是自动搜索还是手动设定频率,如何调谐单个频率是关键,也是数字调谐收音机调谐广播电台的软件算法的核心。TEA5768HL数字调谐收音机系统通过调用一个功能函数来完成单个频率的调谐。
调谐单个频率功能模块函数
调谐单个频率功能模块函数包括:频率和锁相环数据的转换(调谐算法函数)、TEA5768HL调谐状态寄存器的设置、High/Low Injection 的优化选择以及TEA5768HL控制寄存器写操作。