基于VDK的網(wǎng)絡(luò )音頻監控系統的設計與實(shí)現
5 基于VDK的應用程序設計
本系統中的網(wǎng)絡(luò )通信模塊主要完成的任務(wù)是網(wǎng)絡(luò )芯片初始化及接收應急信號,接收上位機指令幀并對其進(jìn)行解析,同時(shí)將選擇板卡返回指令幀發(fā)送給上位機。
分析上述任務(wù),可將應用程序分為三個(gè)線(xiàn)程:其中一個(gè)Boot Thread:lwip_sysboot_threadtype的作用是上電后對系統進(jìn)行初始化并創(chuàng )建各個(gè)線(xiàn)程,然后激活Echo_Server_ThreadType線(xiàn)程,完成與上位機的客戶(hù)端建立Socket連接;其次,初始化線(xiàn)程級別最高;連接成功后,由Echo_Servet_ThreadType線(xiàn)程激活Echo Worker_ThreadType線(xiàn)程,Echo_Worker_ThreadTrype線(xiàn)程的任務(wù)為通過(guò)recv()函數接收上位機指令幀并對其進(jìn)行功能解析,然后根據幀功能碼判斷應該發(fā)送給上位機的幀,準備好上傳數據,再通過(guò)send()函數將上報幀上傳給上位機并顯示最終處理結果。本文引用地址:http://dyxdggzs.com/article/161034.htm
圖2所示是基于VDK的系統線(xiàn)程軟件工作流程。系統上電或復位后,DSP自啟動(dòng)后,VDK啟動(dòng)線(xiàn)程lwip_sysboor_threadtype開(kāi)始運行。在線(xiàn)程lwip_sysboot_threadtype中進(jìn)行板級初始化和Lwip協(xié)議棧和網(wǎng)口初始化,接下來(lái)再創(chuàng )建所需要線(xiàn)程。圖3所示是VDK線(xiàn)程的通信工作流程圖。
芯片初始化模塊主要完成以下幾項工作:
(1)系統時(shí)鐘速率配置:包括初始化PLL,由PLL_LOCKCNT設置穩定時(shí)間,PLL_CTL控制寄存器設置VCO與CLKIN之間的倍數14,通過(guò)設置PLL_DIV決定SCLK及CCLK的時(shí)鐘,使能PLL中斷;
(2)同步串口(SPI)配置:如果SPI是作為主啟用,SPI使用SPI標志寄存器(SPI FLG)使多達7個(gè)通用可編程標志引腳用作從選擇端。并設置為0X02,SPISEL1使能。FIO_DIR中設置PF10為輸入,其余均為輸出;
(3)CS8420初始化:即初始化CS8420,則SPICTL設置字長(cháng)為16位,當發(fā)送數據寫(xiě)入發(fā)送數據緩沖器時(shí),SPI使能。設置為主模式。SPI BAUD為0x18,波特率大概為512b/s;
(4)激活Echo_Server_ThreadType線(xiàn)程;
(5)由線(xiàn)程銷(xiāo)毀模塊完成對初始化線(xiàn)程的銷(xiāo)毀。
連接成功后,再由Echo_Server_ThreadType線(xiàn)程激活Echo_Worker_ThreadType線(xiàn)程。Echo_Worker_ThreadType線(xiàn)程的任務(wù)是通過(guò)recv()函數接收上位機指令幀并對其進(jìn)行功能解析,根據幀功能碼判斷應該發(fā)送給上位機的幀,準備好上傳數據,再通過(guò)send()函數將上報幀上傳給上位機并顯示最終處理結果。
圖4所示是系統控制板卡與上位機之間的通信結果。
6 結語(yǔ)
本文以BF533為核心處理器,提出了一種基于VDK的網(wǎng)絡(luò )音頻通信系統的設計方案,同時(shí)通過(guò)實(shí)際項目的操作對該方案的可行性進(jìn)行了驗證。經(jīng)過(guò)測試證明,該系統可以提高傳輸效率,而且實(shí)時(shí)性好,性能穩定。
tcp/ip相關(guān)文章:tcp/ip是什么
評論