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