关闭
关闭
首页 > 嵌入式软件 > WinCE

1 基于WinCE6.0的系统设计流程

本文引用地址: http://embed.21ic.com/software/wince/201801/50288.html

本文引用地址:http://www.eepw.com.cn/article/201706/351229.htm

如图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来控制输出口为低电平或高电平。相关代码如下:

 

换一批

延伸阅读

[图酷] 给你一台收音机,你能想出最有趣的控制方法是什么?

给你一台收音机,你能想出最有趣的控制方法是什么?

来自韩国设计师Jung Jaekyu等人的创意,这款收音机几乎全部的操作都在这小圆球上:首先是开关,将小圆球压回收音机就是关闭,将之拉出就是打开;其次是频率调节,将小圆球稍大幅度地压向左右并稍停留,收......

关键字:

[新鲜事] 高通和英特尔发布千兆LTE芯片 理论下载速度实现1Gbps

高通和英特尔发布千兆LTE芯片 理论下载速度实现1Gbps

移动世界大会(MWC)将于下周举行。近日,高通和英特尔双双为智能手机发布了最新的 LTE 芯片,两个公司的芯片可以实现理论下载速度 1Gbps,也就是所谓的“千兆 LTE”。这两家公司都是苹果 iPhone LTE 芯片的供应商。......

关键字:MWC 高通 英特尔 LTE

[疯狂史] 互联网史上最贵的域名排名榜

互联网史上最贵的域名排名榜

小编为你盘点互联网史上最贵的域名排名榜。......

关键字:互联网 域名

[新鲜事] 联想终于出手:Motorola彻底死亡!

联想终于出手:Motorola彻底死亡!

恐怕谁也没想到,曾经手机圈最牛的两位巨头摩托罗拉和诺基亚已经沦落到如此地步了。......

关键字:联想 Motorola

[新鲜事] Intel无人机亮相NBA全明星:不来航拍而是玩扣篮

Intel无人机亮相NBA全明星:不来航拍而是玩扣篮

这年头无人机除了航拍以外,还衍生出了送快递、送鸡拜年、载人飞行等玩法,在前段时间美国职业橄榄球总决赛超级碗中,Intel无人机帮Lady Gaga伴舞,现在更有NBA球员在近日的全明星扣篮大赛中,利用Intel的无人机来配合扣篮表演,让体育......

关键字:Intel 无人机 扣篮
条评论

我 要 评 论

网友评论

大家都爱看

  • 兆易创新研发14nm嵌入式异构AI芯片

    昨日,兆易创新发表公告,重申了收购上海思立微的目的。兆易创新表示,这次产业并购,旨在整合境内优质的芯片设计领域资产,获取智能人机交互领域的核心技术,拓展并丰富公司产品线,在整体上形…

    2018-01-31
  • 华为的优势,就是自家的各种自研芯片

    CPU即中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

    2017-08-16
  • 你不知道Ryzen芯片有多火?来看看AMD的股票吧

    据外媒报道,美银美林认为,AMD最新的Ryzen芯片可能会引发一波销售浪潮,进而推动该股继续上涨。它认为AMD股票还有40%以上的上涨空间。

    2017-08-16
  • 国产芯片:厚积薄发,强势崛起

    关于国产芯片,是近几年才有崛起的势头,可是在几年之前,国产芯片还处于“沉睡”的状态,尤其是手机芯片,几乎大部分都依赖进口,而且国外的市场几乎被高通和联发科所垄断,也就展讯还在市场边…

    2017-08-16
  • 为了数据安全 大疆无人机增加隐私飞行功能

    大疆周一表示,在美国陆军因为“网络缺陷”而要求其成员停用大疆无人机后,这家中国无人机制造商将加强无人机的数据安全性。 大疆政策和法务副总裁布伦丹&middot…

    2017-08-15