《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 一種基于WinCE6.0的數(shù)字調(diào)頻收音機(jī)的設(shè)計(jì)
一種基于WinCE6.0的數(shù)字調(diào)頻收音機(jī)的設(shè)計(jì)
單片機(jī)與嵌入式系統(tǒng)
王 波,李會(huì)勇,鐘 君
摘要: 摘要:提出一種基于WinCE6.0的數(shù)字調(diào)頻收音機(jī)的設(shè)計(jì)方案,介紹了基于WinCE6.0的系統(tǒng)設(shè)計(jì)流程和數(shù)字調(diào)頻收音機(jī)芯片Si4730的特性,詳細(xì)分析了WinCE6.0下驅(qū)動(dòng)程序和應(yīng)用程序的設(shè)計(jì)方法,并通過基于S3C2440的硬件平
Abstract:
Key words :

摘要:提出一種基于WinCE 6.0的數(shù)字調(diào)頻收音機(jī)的設(shè)計(jì)方案,介紹了基于WinCE 6.0的系統(tǒng)設(shè)計(jì)流程和數(shù)字調(diào)頻收音機(jī)芯片Si4730" title="Si4730">Si4730的特性,詳細(xì)分析了WinCE6.0" title="WinCE6.0">WinCE6.0下驅(qū)動(dòng)程序和應(yīng)用程序的設(shè)計(jì)方法,并通過基于S3C2440" title="S3C2440">S3C2440的硬件平臺(tái)加以驗(yàn)證。該方案具有可靠性高、功耗低、界面美觀等優(yōu)點(diǎn)。
關(guān)鍵詞:WinCE6.0;Si4730;I2C總線驅(qū)動(dòng)程序" title="I2C總線驅(qū)動(dòng)程序">I2C總線驅(qū)動(dòng)程序;S3C2440

    本設(shè)計(jì)利用數(shù)字收音機(jī)芯片Si4730,為基于WincE6.0的智能系統(tǒng)集成FM功能提供了一種很好的解決方案,該方案實(shí)現(xiàn)了全頻手動(dòng)與自動(dòng)搜臺(tái)等功能。

1 基于WinCE6.0的系統(tǒng)設(shè)計(jì)流程
    如圖1所示,基于WinCE 6.0的系統(tǒng)設(shè)計(jì)一般分為3個(gè)過程:針對(duì)不同的硬件平臺(tái)設(shè)計(jì)BSP包,BSP包括Boot-loader、OAL和驅(qū)動(dòng)程序;針對(duì)系統(tǒng)的需求,利用Platform Builder for CE 6.0選擇合適的組件,構(gòu)建操作系統(tǒng)并導(dǎo)出SDK;在SDK的支撐下開發(fā)應(yīng)用程序。

b.JPG


    WinCE 6.0與其早期版本相比,開發(fā)工具有了較大的變化。Platform Builder已經(jīng)不是一個(gè)單獨(dú)發(fā)行的工具,Platform Builder 6.0已經(jīng)成為Visual Studio.Net 2005的一個(gè)插件,所以在visual Studio.Net 2005集成開發(fā)環(huán)境中即可完成WinCE6.0的系統(tǒng)定制、驅(qū)動(dòng)開發(fā)和應(yīng)用程序開發(fā)。

2 數(shù)字收音機(jī)芯片Si4730
2.1 Si4730簡(jiǎn)介
    Si4730/31是Silicon Labs公司推出的高集成度AM/FM收音機(jī)芯片,原理圖如圖2所示。

c.JPG


    Si4731具有RDS/RBDS功能和數(shù)字音頻接口。在不包括天線的情況下,Si4730/31及其外圍電路只需15 mm2。它的功能十分豐富,包括自動(dòng)搜臺(tái)、自動(dòng)校準(zhǔn)、數(shù)字調(diào)諧、自適應(yīng)噪聲抑制能力等,這些特性非常適合于便攜式設(shè)備。由于不需要RDS/RBDS功能,所以這里選用Si4730這款芯片。
2.2 Si4730的控制接口
    Si4730的外圍電路非常簡(jiǎn)單,如圖3所示。Si4730提供了3種控制方式:2線模式(兼容I2C總線)、SPI模式、3線模式。芯片通過RST引腳上升沿時(shí)GP01與GP02的引腳狀態(tài)來決定采用哪種方式,當(dāng)GP01與GP02懸空時(shí)Si4730為2線模式。SEN引腳接高電平時(shí),器件地址為0xC6H;接低電平時(shí),地址為0x22H。

k.JPG



3 接口電路與驅(qū)動(dòng)程序的設(shè)計(jì)
    本設(shè)計(jì)的硬件平臺(tái)采用S3C2440處理器,已經(jīng)完成BSP包的開發(fā)以及WinCE 6.0操作系統(tǒng)的移植。
3.1 接口電路的設(shè)計(jì)
    由于S3C2440具有I2C接口,所以只需將其與Si4730的I2C接口互相連接。Si4730的復(fù)位引腳RST與S3C2440的GPB5引腳相連。
3.2 驅(qū)動(dòng)程序的設(shè)計(jì)
    驅(qū)動(dòng)程序由兩部分組成:I2C總線的驅(qū)動(dòng)和GPIO口的驅(qū)動(dòng)。I2C總線的驅(qū)動(dòng)用于操作系統(tǒng)與Si4730之間的通信,GPIO口的驅(qū)動(dòng)用于應(yīng)用程序控制Si4730的復(fù)位。
3.2.1 Si4730的命令
    Si4730的命令有兩種:一種是控制命令,如調(diào)諧到某一頻率、自動(dòng)搜索等;一種是屬性命令,如設(shè)置接收信號(hào)的強(qiáng)度門限、輸出音量的大小等。常用的命令有以下幾種:
    ①上電(POWER_UP),命令格式為{0x01,0xd0,0x05}。
    ②獲取芯片信息(GET_REV),命令格式為{0x10}。
    ③調(diào)諧到某一頻率(FM_TUNE_FREQ),命令格式為{0x20,0x00,ARG2,ARG3,0x00}。其中ARG2與ARG3是頻率的十六進(jìn)制數(shù),例如102.3 MHz,則ARG2為0x27,ARG3為0xF6。
④自動(dòng)搜索(FM_SEEK_START),命令格式為{0x21,0x0c)。
3.2.2 I2C總線驅(qū)動(dòng)的實(shí)現(xiàn)
    這里采用流接口驅(qū)動(dòng)程序的設(shè)計(jì)方法開發(fā)I2C總線驅(qū)動(dòng)。I2C總線驅(qū)動(dòng)提供給操作系統(tǒng)的流接口為I2C_Init()、I2C Open()、I2C Close()、I2C Write()、I2C Read()、I2C_IOControl()等,應(yīng)用程序通過調(diào)用CreateFile()、WirteFile()和DeviceloControl()等接口函數(shù)來訪問設(shè)備。在已編譯完成的WinCE6.0鏡像工程中添加I2C總線驅(qū)動(dòng)的流程如圖4所示。

l.JPG


    ①添加子工程。在鏡像工程的Solution Explorer窗口中,右鍵選擇Add New Subproject,新建子工程。
    ②編寫I2C總線驅(qū)動(dòng)程序。在Source files下新建I2c.c的源文件,并在該文件中編寫驅(qū)動(dòng)代碼,驅(qū)動(dòng)程序的主要內(nèi)容就是實(shí)現(xiàn)流接口函數(shù)。讀I2C總線的實(shí)現(xiàn)函數(shù)為BooL_WRITE_IIC(UINT32 slvAddr,UINT8 n,UINT8*data)。寫I2C總線的實(shí)現(xiàn)函數(shù)為BooL READ_IIC(UINT32 slvA-ddr,UINT32 addr,UINT8 n,UINT8*data)。I2C_IOControl()的作用是傳遞I/O控制命令給設(shè)備,在該函數(shù)里實(shí)現(xiàn)了對(duì)Si4730的控制。部分代碼如下:
    m.JPG
    d.JPG
    ③注冊(cè)表中注冊(cè)設(shè)備驅(qū)動(dòng)程序。打開platform.reg文件,在其中添加注冊(cè)信息如下:
    e.JPG
    ④將驅(qū)動(dòng)程序打包進(jìn)鏡像中。打開platform.bib配置文件,添加如下代碼:
     I2c.dll$(_FLATRELEASEDIR)\I2c.dll NK SHK
    ⑤創(chuàng)建驅(qū)動(dòng)程序的def文件。工程需要def文件導(dǎo)出相應(yīng)的函數(shù),文件的部分內(nèi)容為:
    f.JPG
3.2.3 GPIO驅(qū)動(dòng)的實(shí)現(xiàn)
    Si4730工作時(shí)需要一個(gè)復(fù)位信號(hào),這里使用S3C2440的GPB5口來進(jìn)行控制。在驅(qū)動(dòng)中設(shè)置寄存器GPXCON為輸出功能,設(shè)置寄存器GPXDAT的值為0或1來控制輸出口為低電平或高電平。相關(guān)代碼如下:
    g.JPG
    h.JPG
4 應(yīng)用程序設(shè)計(jì)
4.1 功能實(shí)現(xiàn)
    應(yīng)用程序的作用是調(diào)用驅(qū)動(dòng)程序的流接口函數(shù)控制Si4730,從而實(shí)現(xiàn)FM的功能。在應(yīng)用層中需要用到的API是CreateFile()、Devicelo Control()、ReadFile()、WriteFile(),函數(shù)的參數(shù)說明可以參考Visual Studio 2005的幫助文件。
    程序中首先使用CreateFile()打開設(shè)備句柄:
    I2Cdriver=CreateFile(L“I2C:”,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
    然后就可使用DeviceIocontrol()、ReadFile()、Write File()等API函數(shù)對(duì)設(shè)備進(jìn)行控制,如調(diào)諧的實(shí)現(xiàn):
    DeviceloControl(I2Cdriver,IOCTL_FM_TUNE,NULL,0,NULL,0,NULL,NULL);
4.2 界面設(shè)計(jì)
    良好的界面是應(yīng)用程序重要的部分,如圖5所示,界面中應(yīng)該有如下幾個(gè)部分:播放、頻率向上調(diào)諧、頻率向下調(diào)諧、音量控制等。

a.JPG

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国内免费精品永久在线视频| 亚洲无玛一区| 国产精品视频999| 欧美日韩性生活视频| 女仆av观看一区| 久久天堂成人| 久久久国产精品一区二区中文| 亚洲性夜色噜噜噜7777| a4yy欧美一区二区三区| 99亚洲伊人久久精品影院红桃| 91久久精品国产91性色tv| 亚洲福利一区| 亚洲国产天堂久久综合| 亚洲高清资源综合久久精品| 亚洲电影在线| 亚洲国产精品精华液2区45| 久久国产视频网站| 久久国产精品久久久久久| 久久成人羞羞网站| 亚洲国产中文字幕在线观看| 亚洲茄子视频| 99国产精品一区| 在线综合亚洲| 亚洲综合欧美| 午夜影院日韩| 久久精品国产99精品国产亚洲性色| 久久精品国产99精品国产亚洲性色 | 久久青青草综合| 毛片基地黄久久久久久天堂| 欧美暴力喷水在线| 欧美女同在线视频| 国产精品毛片高清在线完整版 | 国产精品自在线| 国产日韩专区| 一区久久精品| 亚洲人成在线观看网站高清| 正在播放亚洲| 久久aⅴ国产欧美74aaa| 亚洲日本va午夜在线影院| 一本色道久久88精品综合| 亚洲一区二区精品在线| 久久国产精品久久久久久电车| 久久米奇亚洲| 欧美日韩国产在线看| 国产精品白丝av嫩草影院| 国产日韩精品视频一区| 伊人婷婷欧美激情| 99视频精品| 欧美一级午夜免费电影| 最近中文字幕日韩精品 | 久久精品视频在线播放| 日韩亚洲欧美中文三级| 性xx色xx综合久久久xx| 老司机精品久久| 欧美性事免费在线观看| 很黄很黄激情成人| 亚洲另类在线视频| 欧美一区二区三区四区视频| av不卡在线观看| 久久精品国产99国产精品澳门| 欧美国产大片| 国产人成一区二区三区影院| 亚洲国产精品久久久久秋霞影院| 中文成人激情娱乐网| 久久精品国产欧美激情 | 亚洲女性喷水在线观看一区| 久久亚洲影院| 欧美香蕉视频| 尤物九九久久国产精品的分类| 99视频精品免费观看| 欧美中文在线观看| 亚洲午夜视频在线| 久热精品视频在线观看| 国产精品男女猛烈高潮激情| 亚洲国产精品va在线看黑人动漫| 亚洲先锋成人| 日韩亚洲欧美一区| 久久亚洲春色中文字幕| 国产精品捆绑调教| 亚洲人精品午夜在线观看| 欧美影视一区| 午夜精品999| 欧美全黄视频| 伊人精品视频| 午夜精品福利视频| 亚洲一区综合| 欧美精品黄色| 极品尤物av久久免费看 | 久久久久久综合| 国产精品久久久久av免费| 亚洲国产欧美一区| 欧美一区二区三区免费大片| 亚洲一区免费视频| 欧美啪啪成人vr| 亚洲国产第一| 久久精品欧美日韩| 欧美在线地址| 国产精品视屏| 亚洲午夜国产一区99re久久 | 亚洲视频在线看| 一本大道久久a久久综合婷婷 | 亚洲伊人久久综合| 在线亚洲一区观看| 欧美激情视频一区二区三区免费 | 黑人巨大精品欧美一区二区小视频| 亚洲一区国产精品| 在线午夜精品| 欧美激情一区在线观看| 1000部国产精品成人观看| 久久成人亚洲| 久久久综合激的五月天| 国产一区二区三区在线观看视频 | 亚洲一区二区精品视频| 欧美日韩精品免费观看视一区二区 | 欧美激情2020午夜免费观看| 韩国av一区二区三区| 欧美一区二区三区在线| 久久国产日韩欧美| 国产婷婷一区二区| 欧美在线观看视频一区二区三区| 性8sex亚洲区入口| 国产精品亚洲一区| 香港成人在线视频| 久久精品视频播放| 国产主播精品| 亚洲国产欧美日韩另类综合| 免费看成人av| 亚洲国产cao| 99ri日韩精品视频| 欧美视频福利| 亚洲婷婷综合久久一本伊一区| 亚洲免费一区二区| 国产女优一区| 欧美在线观看视频在线| 久久亚洲私人国产精品va| 在线日韩一区二区| 日韩一级精品| 欧美视频不卡中文| 亚洲影院色无极综合| 久久福利影视| 精品不卡视频| 亚洲麻豆视频| 欧美视频一区在线观看| 亚洲一区二区在线观看视频| 久久精品夜色噜噜亚洲a∨| 一区二区三区在线视频播放 | 午夜精品在线视频| 国产一区二区三区不卡在线观看| 亚洲丶国产丶欧美一区二区三区 | 国产精品一区二区久久国产| 性视频1819p久久| 免费欧美电影| 日韩一区二区高清| 欧美一区二区三区在线| 国内精品久久久久久| 亚洲精品一区在线观看| 欧美日韩天天操| 亚洲永久免费视频| 久久午夜激情| 亚洲精品影院在线观看| 性久久久久久久久久久久| 国产综合色产在线精品| 日韩视频在线观看| 国产精品久久久久影院色老大| 欧美在线视频在线播放完整版免费观看| 欧美mv日韩mv国产网站app| 日韩视频一区二区三区在线播放免费观看 | 国产麻豆精品theporn| 亚洲国产精品一区二区www| 欧美日韩人人澡狠狠躁视频| 亚洲男人的天堂在线| 欧美aa在线视频| 亚洲一区二区三区乱码aⅴ| 美国十次了思思久久精品导航| 日韩视频精品| 久久九九精品| 亚洲伦理精品| 久久久999| 亚洲美女视频在线观看| 久久久久.com| 99精品热视频| 久久综合久久综合久久| 亚洲一区bb| 欧美极品色图| 久久超碰97中文字幕| 欧美特黄a级高清免费大片a级| 欧美专区亚洲专区| 国产精品国产三级国产aⅴ入口 | 亚洲女同精品视频| 亚洲黄一区二区三区| 久久国产主播| 99这里只有久久精品视频| 老鸭窝毛片一区二区三区| 亚洲一区二区三区欧美| 欧美黄免费看| 久久国产一区二区| 国产精品美女久久久免费| aa级大片欧美| 亚洲电影第1页| 久久久久久精|