<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于VDK的網(wǎng)絡(luò )音頻監控系統的設計與實(shí)現

基于VDK的網(wǎng)絡(luò )音頻監控系統的設計與實(shí)現

作者: 時(shí)間:2012-03-02 來(lái)源:網(wǎng)絡(luò ) 收藏

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

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

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

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

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

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

本文引用地址:http://dyxdggzs.com/article/161034.htm

e.JPG


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

tcp/ip相關(guān)文章:tcp/ip是什么



上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>