您的位置 首页 编程

根据WinCE6.0的数字调频收音机规划

基于WinCE 6.0的系统设计一般分为3个过程:针对不同的硬件平台设计BSP包,BSP包括Boot-loader、OAL和驱动程序;针对系统的需.

1 根据WinCE6.0的体系规划流程

如图1所示,根据WinCE 6.0的体系规划一般分为3个进程:针对不同的硬件渠道规划BSP包,BSP包含Boot-loader、OAL和驱动程序;针对体系的需求,运用Platform Builder for CE 6.0挑选适宜的组件,构建操作体系并导出SDK;在SDK的支撑下开发运用程序。

WinCE 6.0与其前期版别比较,开发东西有了较大的改变。Platform Builder现已不是一个独自发行的东西,Platform Builder 6.0现已成为Visual Studio.Net 2005的一个插件,所以在visual Studio.Net 2005集成开发环境中即可完结WinCE6.0的体系定制、驱动开发和运用程序开发。

2 数字收音机芯片Si4730

2.1 Si4730简介

Si4730/31是Silicon Labs公司推出的高集成度AM/FM收音机芯片,原理图如图2所示。

Si4731具有RDS/RBDS功用和数字音频接口。在不包含天线的情况下,Si4730/31及其外围电路只需15 mm2。它的功用十分丰厚,包含主动搜台、主动校准、数字调谐、自适应噪声按捺才能等,这些特性十分适合于便携式设备。因为不需求RDS/RBDS功用,所以这儿选用Si4730这款芯片。

2.2 Si4730的操控接口

Si4730的外围电路十分简略,如图3所示。Si4730供给了3种操控办法:2线形式(兼容I2C总线)、SPI形式、3线形式。芯片经过RST引脚上升沿时GP01与GP02的引脚状况来决议选用哪种办法,当GP01与GP02悬空时Si4730为2线形式。SEN引脚接高电平时,器材地址为0xC6H;接低电平时,地址为0x22H。

3 接口电路与驱动程序的规划

本规划的硬件渠道选用S3C2440处理器,现已完结BSP包的开发以及WinCE 6.0操作体系的移植。

3.1 接口电路的规划

因为S3C2440具有I2C接口,所以只需将其与Si4730的I2C接口相互衔接。Si4730的复位引脚RST与S3C2440的GPB5引脚相连。

3.2 驱动程序的规划

驱动程序由两部分组成:I2C总线的驱动和GPIO口的驱动。I2C总线的驱动用于操作体系与Si4730之间的通讯,GPIO口的驱动用于运用程序操控Si4730的复位。

3.2.1 Si4730的指令

Si4730的指令有两种:一种是操控指令,如调谐到某一频率、主动查找等;一种是特点指令,如设置接纳信号的强度门限、输出音量的巨细等。常用的指令有以下几种:

①上电(POWER_UP),指令格局为{0x01,0xd0,0x05}。

②获取芯片信息(GET_REV),指令格局为{0x10}。

③调谐到某一频率(FM_TUNE_FREQ),指令格局为{0x20,0x00,ARG2,ARG3,0x00}。其间ARG2与ARG3是频率的十六进制数,例如102.3 MHz,则ARG2为0x27,ARG3为0xF6。

④主动查找(FM_SEEK_START),指令格局为{0x21,0x0c)。

3.2.2 I2C总线驱动的完结

这儿选用流接口驱动程序的规划办法开发I2C总线驱动。I2C总线驱动供给给操作体系的流接口为I2C_Init()、I2C Open()、I2C Close()、I2C Write()、I2C Read()、I2C_IOControl()等,运用程序经过调用CreateFile()、WirteFile()和DeviceloControl()等接口函数来访问设备。在已编译完结的WinCE6.0镜像工程中增加I2C总线驱动的流程如图4所示。

①增加子工程。在镜像工程的Solution Explorer窗口中,右键挑选Add New Subproject,新建子工程。

②编写I2C总线驱动程序。在Source files下新建I2c.c的源文件,并在该文件中编写驱动代码,驱动程序的主要内容便是完结流接口函数。读I2C总线的完结函数为BooL_WRITE_IIC(UINT32 slvAddr,UINT8 n,UINT8*data)。写I2C总线的完结函数为BooL READ_IIC(UINT32 slvA-ddr,UINT32 addr,UINT8 n,UINT8*data)。I2C_IOControl()的作用是传递I/O操控指令给设备,在该函数里完结了对Si4730的操控。部分代码如下:

③注册表中注册设备驱动程序。翻开platform.reg文件,在其间增加注册信息如下:

④将驱动程序打包进镜像中。翻开platform.bib配置文件,增加如下代码:

I2c.dll$(_FLATRELEASEDIR)\I2c.dll NK SHK

⑤创立驱动程序的def文件。工程需求def文件导出相应的函数,文件的部分内容为:

3.2.3 GPIO驱动的完结

Si4730作业时需求一个复位信号,这儿运用S3C2440的GPB5口来进行操控。在驱动中设置寄存器GPXCON为输出功用,设置寄存器GPXDAT的值为0或1来操控输出口为低电平或高电平。相关代码如下:

4 运用程序规划

4.1 功用完结

运用程序的作用是调用驱动程序的流接口函数操控Si4730,然后完结FM的功用。在运用层中需求用到的API是CreateFile()、Devicelo Control()、ReadFile()、WriteFile(),函数的参数阐明能够参阅Visual Studio 2005的帮助文件。

程序中首要运用CreateFile()翻开设备句柄:

I2Cdriver=CreateFile(L“I2C:”,GENERIC_READ|GENER%&&&&&%_WRITE,0,NULL,OPEN_EXISTING,0,NULL);

然后就可运用DeviceIocontrol()、ReadFile()、Write File()等API函数对设备进行操控,如调谐的完结:

DeviceloControl(I2Cdriver,IOCTL_FM_TUNE,NULL,0,NULL,0,NULL,NULL);

4.2 界面规划

杰出的界面是运用程序重要的部分,如图5所示,界面中应该有如下几个部分:播映、频率向上调谐、频率向下调谐、音量操控等。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/188531.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部