關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于VDK的網絡音頻監控系統的設計與實現

        基于VDK的網絡音頻監控系統的設計與實現

        作者: 時間:2012-03-02 來源:網絡 收藏

        摘要:提出了一種ADI公司的ADSP-BF533和芯片LAN91C111的方案。介紹了的組成與工作原理、TCP/IP堆棧移植、的SOCKET編程、BF533和LAN91C111的電路連接,最后給出了通信程序的方法。
        關鍵詞:數字;VDK;BF533;LAN91C111;SOCKET;網絡通信

        0 引言
        近年來,數字在我國發展迅猛,尤其是在廣播領域,該系統擔當著越來越重要的角色,另外,在保證音頻信息準確度和實時性的條件下,音頻數據的網絡傳輸也成為一項十分重要的技術。
        本系統以BF533為核心處理芯片,以軟件工具VDSP++的自帶VDK內核為基礎,移植了LWIP作為網絡主要結構,實現了TCP/IP在ADSP-BF533
        上的移植。同時在VDK的基礎上,通過開發Socket服務器程序,實現了嵌入式網絡終端與上位機電腦直接的數據傳輸。

        1 VDK的組成原理
        VDK實際上是一種帶API函數庫的實時操作系統內核,這是一款規模很小但卻十分健壯的內核,它是Visual DSP產品的一部分,VDK也一樣會隨Visual DSP進行相應的升級或改版。使用VDK從產品維護的角度來看,是十分方便的。使用VDK也小會帶來附加成本。它具有任務調度和任務管理功能,一共可支持32個任務。VDK是整個軟件的基礎,所有其他的程序都運行在該Kernel上。VDK的組成部分主要包括線程、調度、信號、中斷眼務程序設備驅動、API等。
        VDK的工作原理是首先引入多任務并且為每個任務都分配自己的堆??臻g,然后由任務淵度器來決定哪個任務獲得內核時間。任務調度主要涉及三種方式:
        第一是合作調度廳式。該方式是最簡單的調度方式,系統中所有線程被賦予相同優先級的調度權,系統中線程在運行態占用處理器資源,在阻塞態時被排列在等待隊列的最后,也可以自己調用yield函數,以使線程退出運行態而進入等待隊列。另外,任何系統調用都會引起當前正在運行的線程阻塞。
        第二是時間片輪轉調度方式。時間片調度方式給予每一個優先權相同的線程固定的執行時間間隔。VDK中時間間隔是通過設定tick參數確定的。
        第三是搶先式調度方式。如果等待隊列中有比正在運行的線程優先級更高的線程,則正在運行的線程阻塞后進入等待隊列,等待隊列中優先級最高的線程獲得執行權。該方式提供了比其他兩種方式更有效、而且更靈活的淵度方式。對嵌入式編程者來講,最熟悉的調度方式就是“時間片輪轉”的方式,在這種方式下,每個應用程序只占用很短的CPU時間,用戶幾乎無法察覺它們在進行輪換。操作系統或VDK會自動地將操作系統的控制權以輪轉調度或時間片的方式在所有線程之間進行傳遞。每個線程所得到的處理器控制時間的長度由程序員定義。該方式的優先級可以被靜態地分配,也可以被動態地分配。靜態分配意味著應用程序在創建時就已經被指定好了優先級。動態分配則意味著程序的優先級在其運行時仍能被改變,也就是說,在線程實體化或運行時,其優先級都能被改變。

        2 TCP/IP堆棧移植
        關于TCP/IP堆棧移植,ADI提供有快速解決方案,即一個輕便型堆棧Lwip。Lwip(Light-weight Internet Protocl)是瑞士計算機科學院(Swedish Institute of Computer Science)的Adam Dunkels等人開發出來的一套用于嵌入式系統的開放源代碼TCP/IP協議棧。Lwip的主要優點是可在保持TCP/IP協議主要功能的基礎上,減少其對RAM的占用。一般情況下,它只要幾十KB的RAM和40KB左右的ROM就可以運行,這使得Lwip協議非常適合在嵌入式系中使用。
        Lwip堆棧的調用基于ADI的驅動模型以及System Services Libraries(即系統服務函數庫)。Lwip堆棧支持IP、ARP、ICMP、TCP、UDP等基本協議,同時支持一套標準的BSD Socket接口函數。

        3 基于VDK的SOCKET編程
        應用層通過傳輸層進行數據通信時,TCP和UDP會遇到同時為多個應用程序進程提供并發服務的問題。多個TCP連接或多個應用程序進程可能需要通過同一個TCP協議端口傳輸數據。為了區別不同的應用程序進程和連接,許多計算機操作系統為應用程序與TCP/IP協議交互提供了稱為套接字(Socket)的接口,以區分不同應用程序進程間的網絡通信和連接。生成套接字主要有3個參數:通信的目的IP地址、使用的傳輸層協議(TCP或UDP)和使用的端口號。Socket的原意是“插座”。通過將這3個參數結合起來,與一個“插座”Socket的綁定,應用層就可以和傳輸層通過套接字進行接口,以區分來自不同應用程序進程或網絡連接的通信,實現數據傳輸的并發服務。
        要通過互聯網進行通信,至少需要一對套接字,一個運行于客戶機端,稱之為ClientSocket;另一個運行于服務器端,稱之為erver So cket。根據連接啟動的方式以及本地套接字要連接的目標,套接字之間的連接過程可以分為三個步驟,即服務器監聽、客戶端請求和連接確認。

        4 硬件電路
        4.1 ADSP-BF533簡介
        ADSP-BF533處理器是Blackfin系列產品中的一員。其最大工作頻率可達600MHz。Blackfin處理器內核包含有2個16位乘法器、2個40位累加器、2個40位ALU、4個視頻ALU和1個40位移位器,可處理來自寄存器組的8位、16位或32位數據。
        4.2 LAN91C111簡介
        ADSP-BF533通過以太網接口可將DSP采集的數據信息傳送到遠程服務器。LAN91C111是SMSC公司生產的專門用于嵌入式產品的10/100M快速以太網控制器,該器件具有可編程、CRC校驗、同步或異步工作方式,并具有低功耗CMOS和小尺寸等特點。
        4.3 ADSP-BF533與LAN91C111的硬件連接
        ADSP-BF533與LAN91C111之間的信號傳輸連接圖如圖1所示。

        本文引用地址:http://www.104case.com/article/161034.htm

        e.JPG


        該硬件系統由四大部分組成:其中主控芯片選用ADSP-BF533,以太網控制芯片選用LAN91C111,網絡隔離芯片選用TG110-E050N5,而網口存儲器則選用AT93C46。
        由于LAN91C111是專為嵌入式系統設計的,因此其外圍電路相對比較簡單。只要將地址總線A1-A15與系統對應相連即可。其A0沒有被LAN 91C111使用而懸空;數據總線D0-D15用于16位數據傳輸。LAN91C111端的D16-D32懸空;LAN91C111的片選信號AEN由DSP提供。字節選擇引腳BE0和BE1分別接DSP的ABE0和ABE1,而BE2和BE3直接接高3.3 V電壓,即選定的是16位操作模式。AEN作為片選信號,接DSP的AMS3引腳。DSP芯片利用I/O引腳和中斷引腳可實現對以太網控制器LAN91C111芯片的控制和數據傳輸。以太網控制器LAN91C111芯片通過網絡隔離芯片TG110 -E050N5并經RJ45與外面的上位機相連接,以實現數據傳輸。TG110-E050N5是雙絞線驅動/接收器,內部有2個耦合變壓器可用來傳輸信號,同時抑制來自介質的共模噪聲/干擾。AT93C46是一片串行數據存儲器,該芯片不論寫入或讀取數據,皆采用串行傳輸的模式動作,串行方式雖然沒有并行傳輸來得快速,但是其傳遞遠距離的數據,卻可以大量減少使用傳輸線的需求,也縮小了系統整體的占有面積。因此,非常適合用于微控制器或是微處理器。

        tcp/ip相關文章:tcp/ip是什么



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 锡林浩特市| 云龙县| 梁河县| 鸡东县| 阿鲁科尔沁旗| 黎城县| 上林县| 泸水县| 淳化县| 调兵山市| 福鼎市| 蕉岭县| 宣汉县| 天水市| 洮南市| 涞水县| 工布江达县| 怀仁县| 黑水县| 濮阳市| 武清区| 姚安县| 二连浩特市| 如皋市| 习水县| 平潭县| 措勤县| 金坛市| 犍为县| 晋中市| 信阳市| 景谷| 肇源县| 临高县| 布尔津县| 铅山县| 凤冈县| 巴南区| 越西县| 泸定县| 铜梁县|