自在自线亚洲а∨天堂在线-中文字幕一区视频播放-扒开双腿猛进入喷水高潮叫声-欧美日本亚洲一区二区-老熟妇高潮偷拍一区二区-国产精品高清一区二区不卡-午夜色福利视频一区二区三区-亚洲国产成人精品福利在线观看-亚洲欧美成人一区二区在线电影

機電之家資源網(wǎng)
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
語音分組處理器在IP語音網(wǎng)關中的應用
語音分組處理器在IP語音網(wǎ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ù)設置,使AC483進入正常工作狀態(tài),即產(chǎn)生語音分組和接收來自主機的語音分組。這里由AC483_init()完成這些功能。

    AC483_init(){

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

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

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

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

    :

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

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

    writeb(addr,value);

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

    writeb(addr,value);

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

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

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

    typedef struct{

    packet_head_t packet_head,/*包頭*/

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

    }packet_t;

    語音包頭數(shù)據(jù)結構的定義:

    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ù)結構中的packet_size字段,在HPI 口相應的位置寫入或讀取packet_size長度的字節(jié)數(shù)。

    (3)中斷服務子程序

    使用中斷來進行處理,可以提高程序的實時性及運行效率。AC483每一個幀間隔就會產(chǎn)生一個語音包,就會產(chǎn)生一個中斷;MPC852T檢測到中斷后,將會調用中斷處理函數(shù)。在此中斷處理函數(shù)中,將會調用讀語音包函數(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來處理中斷。

    在驅動程序中先聲明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ù)中調度AC483_

    tasklet:

    tasklet_schedule(&AC483_tasklet);

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

    結  語

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

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

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

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

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