基于VDK的网络音频监控系统的设计与实现
5 基于VDK的应用程序设计
本系统中的网络通信模块主要完成的任务是网络芯片初始化及接收应急信号,接收上位机指令帧并对其进行解析,同时将选择板卡返回指令帧发送给上位机。
分析上述任务,可将应用程序分为三个线程:其中一个Boot Thread:lwip_sysboot_threadtype的作用是上电后对系统进行初始化并创建各个线程,然后激活Echo_Server_ThreadType线程,完成与上位机的客户端建立Socket连接;其次,初始化线程级别最高;连接成功后,由Echo_Servet_ThreadType线程激活Echo Worker_ThreadType线程,Echo_Worker_ThreadTrype线程的任务为通过recv()函数接收上位机指令帧并对其进行功能解析,然后根据帧功能码判断应该发送给上位机的帧,准备好上传数据,再通过send()函数将上报帧上传给上位机并显示最终处理结果。本文引用地址:https://www.eepw.com.cn/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是什么
评论