日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
語音分組處理器在IP語音網(wǎng)關(guān)中的應(yīng)用
語音分組處理器在IP語音網(wǎng)關(guān)中的應(yīng)用
 更新時間:2008-8-18 9:49:22  點擊數(shù):18
【字體: 字體顏色

    hpi_eonfig(){

    /*init br3 8Lor3 HPI*/

    memctrl_p一>meme_br3=0x80000401;

    memctrl_p一>meme_or3=Oxffffof24;

    :

    /*映射為I/O內(nèi)存*/

    v_addr=ioremap(AC483_REG_BASE,AC483_REG_LEN);

    request_mem_region(AC483_REG_BASE.AC483.”AC483”);

    :

    接著對AC483進行初始化配置。AC483的操作模式順序為內(nèi)核文件下載模式、程序下載模式、初始化模式以及運行模式,如圖4所示。

    對AC483初始化,就是要完成內(nèi)核下載、程序下載,以及初始化模式和空閑狀態(tài)下一些命令設(shè)置、參數(shù)設(shè)置,使AC483進入正常工作狀態(tài),即產(chǎn)生語音分組和接收來自主機的語音分組。這里由AC483_init()完成這些功能。

    AC483_init(){

    kernel_download();    /*內(nèi)核文件下載*/

    program_download();    /*程序下載*/

    setup_device();    /*初始化AC483的參數(shù)配置*/

    setup_channel();  /*設(shè)置每個信道的參數(shù),共四個信道*/

    :

    }
 
    以上對AC483的初始化配置可以放在open入口點函數(shù)中。

    在內(nèi)核文件下載時,由于AC483還運行在10 MHz,所以此時對HPI口進行兩次讀或?qū)懼g要加入延時來滿足時序要求。

    writeb(addr,value);

    udelay(1);/*延時1 ms*/

    writeb(addr,value);

    udelay(1);/*延時1 ms*/

    (2)服務(wù)于I/o請求的子程序

    驅(qū)動程序的主要任務(wù)是在底層實現(xiàn)對硬件的讀寫,對AC483來說就是要從HPI口讀取和寫入語音包。系統(tǒng)進行read和write調(diào)用時,調(diào)用read和write入口點函數(shù),由用戶態(tài)進入核心態(tài)。由函數(shù)transmit_packet()和re—eeive_packet()實現(xiàn)語音包的寫入和讀取。語音包數(shù)據(jù)結(jié)構(gòu)的定義:

    typedef struct{

    packet_head_t packet_head,/*包頭*/

    char payload[MAX_SIZE];/*載荷*/

    }packet_t;

    語音包頭數(shù)據(jù)結(jié)構(gòu)的定義:

    typedef struct{

    shortconstAA    :8;

    short const_0_0_13    :3 ;

    short channel_id    :5;

    /*Word#1*/

    short pay_load_size    :8;

    short packet_size    :8;

    /*Word#2*/

    /*Word#7*/

    }packet_head_t;

    transmit_packet()和receive_packet()是根據(jù)語音包數(shù)據(jù)結(jié)構(gòu)中的packet_size字段,在HPI 口相應(yīng)的位置寫入或讀取packet_size長度的字節(jié)數(shù)。

    (3)中斷服務(wù)子程序

    使用中斷來進行處理,可以提高程序的實時性及運行效率。AC483每一個幀間隔就會產(chǎn)生一個語音包,就會產(chǎn)生一個中斷;MPC852T檢測到中斷后,將會調(diào)用中斷處理函數(shù)。在此中斷處理函數(shù)中,將會調(diào)用讀語音包函數(shù)來讀取HPI口中語音包,存人內(nèi)核空間的緩沖區(qū)中。使用下面兩個函數(shù)在系統(tǒng)中注冊和注銷中斷:

    ret=request_8xxirq(dev一>irq,AC483_interrupt,0*

   “AC483”,dev);    /*申請中斷*/

    free_irq(dev irq,dev);/*釋放中斷*/

    對于中斷處理函數(shù),由于它運行在interrupt context,所以有許多限制,它必須盡可能快地執(zhí)行。這里使用tasklet來處理中斷。

    在驅(qū)動程序中先聲明AC483_tasklet,并且指定函數(shù)

    AC483_do_tasklet()作為tasklet的函數(shù):

    void AC483_do_tasklet(unsigned long);

    DECLARE_TASKLET(AC483_tasklet,AC483_do_tasklet.0);

    然后在AC483_interrup()中斷處理函數(shù)中調(diào)度AC483_

    tasklet:

    tasklet_schedule(&AC483_tasklet);

    在AC483_tasklet被調(diào)度后,它將盡可能快地被執(zhí)行,在AC483_do_tasklet()函數(shù)中,相應(yīng)AC483的中斷,讀取HPI口中的語音包!

    結(jié)  語

    本文介紹了一種語音分組處理器AC483與MPC852T的接口設(shè)計以及基于Linux的驅(qū)動程序?qū)崿F(xiàn)。經(jīng)過硬件電路的調(diào)試和驅(qū)動程序的測試,此語音分組處理器已應(yīng)用于我們開發(fā)的語音網(wǎng)關(guān)中。

  • 上一篇: TPC單元及其在步進電機調(diào)速中的應(yīng)用
  • 下一篇: LT5527型RF混頻器及其在3G無線基站接收器中的應(yīng)用
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1