日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 《物聯(lián)網(wǎng)技術(shù)》雜志
[導(dǎo)讀]摘要:提出了一種基于ADI公司的ADSP-BF533和網(wǎng)絡(luò)芯片LAN91C111的網(wǎng)絡(luò)音頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)方案。介紹了VDK的組成與工作原理、TCP/IP堆棧移植、基于VDK的SOCKET編程、BF533和LAN91C111的電路連接,最后給出了基于VDK的網(wǎng)絡(luò)通信程序的實(shí)現(xiàn)方法。

引言

近年來(lái),數(shù)字音頻監(jiān)控系統(tǒng)在我國(guó)發(fā)展迅猛,尤其是在廣播領(lǐng)域,該系統(tǒng)擔(dān)當(dāng)著越來(lái)越重要的角色,另外,在保證音頻信息準(zhǔn)確度和實(shí)時(shí)性的條件下,實(shí)現(xiàn)音頻數(shù)據(jù)的網(wǎng)絡(luò)傳輸也成為一項(xiàng)十分重要的技術(shù)。

本系統(tǒng)以BF533為核心處理芯片,以軟件工具VDSP++的自帶VDK內(nèi)核為基礎(chǔ),移植了LWIP作為網(wǎng)絡(luò)主要結(jié)構(gòu),實(shí)現(xiàn)了TCP/IP在ADSP-BF533上的移植。同時(shí)在VDK的基礎(chǔ)上,通過(guò)開(kāi)發(fā)Socket服務(wù)器程序,實(shí)現(xiàn)了嵌入式網(wǎng)絡(luò)終端與上位機(jī)電腦直接的數(shù)據(jù)傳輸。

1  VDK的組成原理

VDK實(shí)際上是一種帶API函數(shù)庫(kù)的實(shí)時(shí)操作系統(tǒng)內(nèi)核.這是一款規(guī)模很小但卻十分健壯的內(nèi)核,它是VisualDSP產(chǎn)品的一部分,VDK也一樣會(huì)隨VisualDSP進(jìn)行相應(yīng)的升級(jí)或改版。使用VDK從產(chǎn)品維護(hù)的角度來(lái)看,是十分方便的。使用VDK也不會(huì)帶來(lái)附加成本。它具有任務(wù)調(diào)度和任務(wù)管理功能,一共可支持32個(gè)任務(wù)。VDK是整個(gè)軟件的基礎(chǔ),所有其他的程序都運(yùn)行在該Kernel±0VDK的組成部分主要包括線程、調(diào)度、信號(hào)、中斷服務(wù)程序、設(shè)備驅(qū)動(dòng)、API等。

VDK的工作原理是首先引入多任務(wù)并且為每個(gè)任務(wù)都分配自己的堆棧空間,然后由任務(wù)調(diào)度器來(lái)決定哪個(gè)任務(wù)獲得內(nèi)核時(shí)間。任務(wù)調(diào)度主要涉及三種方式:

第一是合作調(diào)度方式。該方式是最簡(jiǎn)單的調(diào)度方式,系統(tǒng)中所有線程被賦予相同優(yōu)先級(jí)的調(diào)度權(quán),系統(tǒng)中線程在運(yùn)行態(tài)占用處理器資源,在阻塞態(tài)時(shí)被排列在等待隊(duì)列的最后,也可以自己調(diào)用yield函數(shù),以使線程退出運(yùn)行態(tài)而進(jìn)入等待隊(duì)列。另外,任何系統(tǒng)調(diào)用都會(huì)引起當(dāng)前正在運(yùn)行的線程阻塞。

第二是時(shí)間片輪轉(zhuǎn)調(diào)度方式。時(shí)間片調(diào)度方式給予每一個(gè)優(yōu)先權(quán)相同的線程固定的執(zhí)行時(shí)間間隔。VDK中時(shí)間間隔是通過(guò)設(shè)定tick參數(shù)確定的。

第三是搶先式調(diào)度方式。如果等待隊(duì)列中有比正在運(yùn)行的線程優(yōu)先級(jí)更高的線程,則正在運(yùn)行的線程阻塞后進(jìn)入等待隊(duì)列,等待隊(duì)列中優(yōu)先級(jí)最高的線程獲得執(zhí)行權(quán)。該方式提供了比其他兩種方式更有效、而且更靈活的調(diào)度方式。對(duì)嵌入式編程者來(lái)講,最熟悉的調(diào)度方式就是“時(shí)間片輪轉(zhuǎn)”的方式,在這種方式下,每個(gè)應(yīng)用程序只占用很短的CPU時(shí)間,用戶(hù)幾乎無(wú)法察覺(jué)它們?cè)谶M(jìn)行輪換。操作系統(tǒng)或VDK會(huì)自動(dòng)地將操作系統(tǒng)的控制權(quán)以輪轉(zhuǎn)調(diào)度或時(shí)間片的方式在所有線程之間進(jìn)行傳遞。每個(gè)線程所得到的處理器控制時(shí)間的長(zhǎng)度由程序員定義。該方式的優(yōu)先級(jí)可以被靜態(tài)地分配,也可以被動(dòng)態(tài)地分配。靜態(tài)分配意味著應(yīng)用程序在創(chuàng)建時(shí)就已經(jīng)被指定好了優(yōu)先級(jí)。動(dòng)態(tài)分配則意味著程序的優(yōu)先級(jí)在其運(yùn)行時(shí)仍能被改變,也就是說(shuō),在線程實(shí)體化或運(yùn)行時(shí),其優(yōu)先級(jí)都能被改變。

2  TCP/IP堆棧移植

關(guān)于TCP/IP堆棧移植,ADI提供有快速解決方案,即一個(gè)輕便型堆棧Lwip。Lwip(Light-weightInternetProtocol)是瑞士計(jì)算機(jī)科學(xué)院(SwedishInstituteofComputerScience)的AdamDunkels等人開(kāi)發(fā)出來(lái)的一套用于嵌入式系統(tǒng)的開(kāi)放源代碼TCP/IP協(xié)議棧。Lwip的主要優(yōu)點(diǎn)是可在保持TCP/IP協(xié)議主要功能的基礎(chǔ)上,減少其對(duì)RAM的占用。一般情況下,它只要幾十KB的RAM和40KB左右的ROM就可以運(yùn)行,這使得Lwip協(xié)議非常適合在嵌入式系中使用。

Lwip堆棧的調(diào)用基于ADI的驅(qū)動(dòng)模型以及SystemServicesLibraries(即系統(tǒng)服務(wù)函數(shù)庫(kù))。Lwip堆棧支持IP、ARP、ICMP、TCP、UDP等基本協(xié)議,同時(shí)支持一套標(biāo)準(zhǔn)的BSDSocket接口函數(shù)。

3  基于VDK的SOCKET編程

應(yīng)用層通過(guò)傳輸層進(jìn)行數(shù)據(jù)通信時(shí),TCP和UDP會(huì)遇到同時(shí)為多個(gè)應(yīng)用程序進(jìn)程提供并發(fā)服務(wù)的問(wèn)題。多個(gè)TCP連接或多個(gè)應(yīng)用程序進(jìn)程可能需要通過(guò)同一個(gè)TCP協(xié)議端口傳輸數(shù)據(jù)。為了區(qū)別不同的應(yīng)用程序進(jìn)程和連接,許多計(jì)算機(jī)操作系統(tǒng)為應(yīng)用程序與TCP/IP協(xié)議交互提供了稱(chēng)為套接字(Socket)的接口,以區(qū)分不同應(yīng)用程序進(jìn)程間的網(wǎng)絡(luò)通信和連接。生成套接字主要有3個(gè)參數(shù):通信的目的IP地址、使用的傳輸層協(xié)議(TCP或UDP)和使用的端口號(hào)。Socket的原意是“插座”。通過(guò)將這3個(gè)參數(shù)結(jié)合起來(lái),與一個(gè)“插座"Socket的綁定,應(yīng)用層就可以和傳輸層通過(guò)套接字進(jìn)行接口,以區(qū)分來(lái)自不同應(yīng)用程序進(jìn)程或網(wǎng)絡(luò)連接的通信,實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)牟l(fā)服務(wù)。

要通過(guò)互聯(lián)網(wǎng)進(jìn)行通信,至少需要一對(duì)套接字,一個(gè)運(yùn)行于客戶(hù)機(jī)端,稱(chēng)之為ClientSocket;另—運(yùn)行于服務(wù)器端,稱(chēng)之為ServerSocket。根據(jù)連接啟動(dòng)的方式以及本地套接字要連接的目標(biāo),套接字之間的連接過(guò)程可以分為三個(gè)步驟,即服務(wù)器監(jiān)聽(tīng)、客戶(hù)端請(qǐng)求和連接確認(rèn)。

4  硬件電路設(shè)計(jì)

4.1  ADSP-BF533簡(jiǎn)介

ADSP-BF533處理器是Blackfin系列產(chǎn)品中的一員。其最大工作頻率可達(dá)600MHzoBlackfin處理器內(nèi)核包含有2個(gè)16位乘法器、2個(gè)40位累加器、2個(gè)40位ALU、4個(gè)視頻ALU和1個(gè)40位移位器,可處理來(lái)自寄存器組的8位、16位或32位數(shù)據(jù)。

4.2  LAN91C111簡(jiǎn)介

ADSP-BF533通過(guò)以太網(wǎng)接口可將DSP采集的數(shù)據(jù)信息傳送到遠(yuǎn)程服務(wù)器。LAN91C111是SMSC公司生產(chǎn)的專(zhuān)門(mén)用于嵌入式產(chǎn)品的10/100M快速以太網(wǎng)控制器,該器件具有可編程、CRC校驗(yàn)、同步或異步工作方式,并具有低功耗CMOS設(shè)計(jì)和小尺寸等特點(diǎn)。

4.3  ADSP-BF533與LAN91C111的硬件連接

ADSP-BF533與LAN91C111之間的信號(hào)傳輸連接圖如圖1所示。

基于VDK的網(wǎng)絡(luò)音頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

圖1  信號(hào)傳輸連接圖

該硬件系統(tǒng)由四大部分組成:其中主控芯片選用ADSP-BF533,以太網(wǎng)控制芯片選用LAN91C111,網(wǎng)絡(luò)隔離芯片選用TG110-E050N5,而網(wǎng)口存儲(chǔ)器則選用AT93C46。

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

5  基于VDK的應(yīng)用程序設(shè)計(jì)

本系統(tǒng)中的網(wǎng)絡(luò)通信模塊主要完成的任務(wù)是網(wǎng)絡(luò)芯片初始化及接收應(yīng)急信號(hào),接收上位機(jī)指令幀并對(duì)其進(jìn)行解析,同時(shí)將選擇板卡返回指令幀發(fā)送給上位機(jī)。

分析上述任務(wù),可將應(yīng)用程序分為三個(gè)線程:其中一個(gè)BootThread:lwip_sysboot_threadtype的作用是上電后對(duì)系統(tǒng)進(jìn)行初始化并創(chuàng)建各個(gè)線程,然后激活Echo_Server_Threadlype線程,完成與上位機(jī)的客戶(hù)端建立Socket連接;其次,初始化線程級(jí)別最高;連接成功后,由Echo_Server_Threadlype線程激活Echo_Worker_ThreadType線程,Echo_Worker_ThreadType線程的任務(wù)為通過(guò)recv()函數(shù)接收上位機(jī)指令幀并對(duì)其進(jìn)行功能解析,然后根據(jù)幀功能碼判斷應(yīng)該發(fā)送給上位機(jī)的幀,準(zhǔn)備好上傳數(shù)據(jù),再通過(guò)send。函數(shù)將上報(bào)幀上傳給上位機(jī)并顯示最終處理結(jié)果。

圖2所示是基于VDK的系統(tǒng)線程軟件工作流程。系統(tǒng)上電或復(fù)位后,DSP自啟動(dòng)后,VDK啟動(dòng)線程lwip_sysboot_threadtype開(kāi)始運(yùn)行。在線程lwip_sys-boot_threadtype中進(jìn)行板級(jí)初始化和Lwip協(xié)議棧和網(wǎng)口初始化,接下來(lái)再創(chuàng)建所需要線程。圖3所示是VDK線程的通信工作流程圖。

基于VDK的網(wǎng)絡(luò)音頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

圖2  VDK線程啟動(dòng)流程

芯片初始化模塊主要完成以下幾項(xiàng)工作:

系統(tǒng)時(shí)鐘速率配置:包括初始化PLL,由PLL_LOCKCNT設(shè)置穩(wěn)定時(shí)間,PLL_CTL控制寄存器設(shè)置VCO與CLKIN之間的倍數(shù)14,通過(guò)設(shè)置PLL_DIV決定SCLK及CCLK的時(shí)鐘,使能PLL中斷;

同步串口(SPI)配置:如果SPI是作為主啟用,SPI使用SPI標(biāo)志寄存器(SPI_FLG)使多達(dá)7個(gè)通用可編程標(biāo)志引腳用作從選擇端。并設(shè)置為0X02,SPISELl使能。FIO_DIR中設(shè)置PF10為輸入,其余均為輸出;

CS8420初始化:即初始化CS8420,則SPI_CTL設(shè)置字長(zhǎng)為16位,當(dāng)發(fā)送數(shù)據(jù)寫(xiě)入發(fā)送數(shù)據(jù)緩沖器時(shí),SPI使能。設(shè)置為主模式。SPI_BAUD為0x18,波特率大概為512b/s;

激活EchoServerThreadType線程;

由線程銷(xiāo)毀模塊完成對(duì)初始化線程的銷(xiāo)毀。

基于VDK的網(wǎng)絡(luò)音頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

圖3  VDK線程通信工作流程圖

連接成功后,再由Echo_Server_ThreadType線程激活EchoWorkerThreadType線程。Echo_Worker_ThreadType線程的任務(wù)是通過(guò)recvO函數(shù)接收上位機(jī)指令幀并對(duì)其進(jìn)行功能解析,根據(jù)幀功能碼判斷應(yīng)該發(fā)送給上位機(jī)的幀,準(zhǔn)備好上傳數(shù)據(jù),再通過(guò)send()函數(shù)將上報(bào)幀上傳給上位機(jī)并顯示最終處理結(jié)果。

圖4所示是系統(tǒng)控制板卡與上位機(jī)之間的通信結(jié)果。

基于VDK的網(wǎng)絡(luò)音頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

圖4  控制板卡與上位機(jī)的網(wǎng)絡(luò)通信界面

6  結(jié)語(yǔ)

本文以BF533為核心處理器,提出了一種基于VDK的網(wǎng)絡(luò)音頻通信系統(tǒng)的設(shè)計(jì)方案,同時(shí)通過(guò)實(shí)際項(xiàng)目的操作對(duì)該方案的可行性進(jìn)行了驗(yàn)證。經(jīng)過(guò)測(cè)試證明,該系統(tǒng)可以提高傳輸效率,而且實(shí)時(shí)性好,性能穩(wěn)定。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶(hù)體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(chē)(EV)作為新能源汽車(chē)的重要代表,正逐漸成為全球汽車(chē)產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車(chē)的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車(chē)的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車(chē) 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車(chē)場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周?chē)娮釉O(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉