当前位置:首页 > 电源 > 数字电源
[导读]摘要:提出了一种基于ADI公司的ADSP-BF533和网络芯片LAN91C111的网络音频监控系统的设计与实现方案。介绍了VDK的组成与工作原理、TCP/IP堆栈移植、基于VDK的SOCKET编程、BF533和LAN91C111的电路连接,最后给出了基于

摘要:提出了一种基于ADI公司的ADSP-BF533网络芯片LAN91C111的网络音频监控系统的设计与实现方案。介绍了VDK的组成与工作原理、TCP/IP堆栈移植、基于VDK的SOCKET编程、BF533和LAN91C111的电路连接,最后给出了基于VDK的网络通信程序的实现方法。
关键词:数字音频;VDK;BF533;LAN91C111;SOCKET;网络通信

0 引言
    近年来,数字音频监控系统在我国发展迅猛,尤其是在广播领域,该系统担当着越来越重要的角色,另外,在保证音频信息准确度和实时性的条件下,实现音频数据的网络传输也成为一项十分重要的技术。
    本系统以BF533为核心处理芯片,以软件工具VDSP++的自带VDK内核为基础,移植了LWIP作为网络主要结构,实现了TCP/IP在ADSP-BF533
上的移植。同时在VDK的基础上,通过开发Socket服务器程序,实现了嵌入式网络终端与上位机电脑直接的数据传输。

1 VDK的组成原理
    VDK实际上是一种带API函数库的实时操作系统内核,这是一款规模很小但却十分健壮的内核,它是Visual DSP产品的一部分,VDK也一样会随Visual DSP进行相应的升级或改版。使用VDK从产品维护的角度来看,是十分方便的。使用VDK也小会带来附加成本。它具有任务调度和任务管理功能,一共可支持32个任务。VDK是整个软件的基础,所有其他的程序都运行在该Kernel上。VDK的组成部分主要包括线程、调度、信号、中断眼务程序设备驱动、API等。
    VDK的工作原理是首先引入多任务并且为每个任务都分配自己的堆栈空间,然后由任务渊度器来决定哪个任务获得内核时间。任务调度主要涉及三种方式:
    第一是合作调度厅式。该方式是最简单的调度方式,系统中所有线程被赋予相同优先级的调度权,系统中线程在运行态占用处理器资源,在阻塞态时被排列在等待队列的最后,也可以自己调用yield函数,以使线程退出运行态而进入等待队列。另外,任何系统调用都会引起当前正在运行的线程阻塞。
    第二是时间片轮转调度方式。时间片调度方式给予每一个优先权相同的线程固定的执行时间间隔。VDK中时间间隔是通过设定tick参数确定的。
    第三是抢先式调度方式。如果等待队列中有比正在运行的线程优先级更高的线程,则正在运行的线程阻塞后进入等待队列,等待队列中优先级最高的线程获得执行权。该方式提供了比其他两种方式更有效、而且更灵活的渊度方式。对嵌入式编程者来讲,最熟悉的调度方式就是“时间片轮转”的方式,在这种方式下,每个应用程序只占用很短的CPU时间,用户几乎无法察觉它们在进行轮换。操作系统或VDK会自动地将操作系统的控制权以轮转调度或时间片的方式在所有线程之间进行传递。每个线程所得到的处理器控制时间的长度由程序员定义。该方式的优先级可以被静态地分配,也可以被动态地分配。静态分配意味着应用程序在创建时就已经被指定好了优先级。动态分配则意味着程序的优先级在其运行时仍能被改变,也就是说,在线程实体化或运行时,其优先级都能被改变。

2 TCP/IP堆栈移植
    关于TCP/IP堆栈移植,ADI提供有快速解决方案,即一个轻便型堆栈Lwip。Lwip(Light-weight Internet Protocl)是瑞士计算机科学院(Swedish Institute of Computer Science)的Adam Dunkels等人开发出来的一套用于嵌入式系统的开放源代码TCP/IP协议栈。Lwip的主要优点是可在保持TCP/IP协议主要功能的基础上,减少其对RAM的占用。一般情况下,它只要几十KB的RAM和40KB左右的ROM就可以运行,这使得Lwip协议非常适合在嵌入式系中使用。
    Lwip堆栈的调用基于ADI的驱动模型以及System Services Libraries(即系统服务函数库)。Lwip堆栈支持IP、ARP、ICMP、TCP、UDP等基本协议,同时支持一套标准的BSD Socket接口函数。

3 基于VDK的SOCKET编程
    应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口,以区分不同应用程序进程间的网络通信和连接。生成套接字主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP或UDP)和使用的端口号。Socket的原意是“插座”。通过将这3个参数结合起来,与一个“插座”Socket的绑定,应用层就可以和传输层通过套接字进行接口,以区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。
    要通过互联网进行通信,至少需要一对套接字,一个运行于客户机端,称之为ClientSocket;另一个运行于服务器端,称之为erver So cket。根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤,即服务器监听、客户端请求和连接确认。

4 硬件电路设计
4.1 ADSP-BF533简介
    ADSP-BF533处理器是Blackfin系列产品中的一员。其最大工作频率可达600MHz。Blackfin处理器内核包含有2个16位乘法器、2个40位累加器、2个40位ALU、4个视频ALU和1个40位移位器,可处理来自寄存器组的8位、16位或32位数据。
4.2 LAN91C111简介
    ADSP-BF533通过以太网接口可将DSP采集的数据信息传送到远程服务器。LAN91C111是SMSC公司生产的专门用于嵌入式产品的10/100M快速以太网控制器,该器件具有可编程、CRC校验、同步或异步工作方式,并具有低功耗CMOS设计和小尺寸等特点。
4.3 ADSP-BF533与LAN91C111的硬件连接
    ADSP-BF533与LAN91C111之间的信号传输连接图如图1所示。


    该硬件系统由四大部分组成:其中主控芯片选用ADSP-BF533,以太网控制芯片选用LAN91C111,网络隔离芯片选用TG110-E050N5,而网口存储器则选用AT93C46。
    由于LAN91C111是专为嵌入式系统设计的,因此其外围电路相对比较简单。只要将地址总线A1-A15与系统对应相连即可。其A0没有被LAN 91C111使用而悬空;数据总线D0-D15用于16位数据传输。LAN91C111端的D16-D32悬空;LAN91C111的片选信号AEN由DSP提供。字节选择引脚BE0和BE1分别接DSP的ABE0和ABE1,而BE2和BE3直接接高3.3 V电压,即选定的是16位操作模式。AEN作为片选信号,接DSP的AMS3引脚。DSP芯片利用I/O引脚和中断引脚可实现对以太网控制器LAN91C111芯片的控制和数据传输。以太网控制器LAN91C111芯片通过网络隔离芯片TG110 -E050N5并经RJ45与外面的上位机相连接,以实现数据传输。TG110-E050N5是双绞线驱动/接收器,内部有2个耦合变压器可用来传输信号,同时抑制来自介质的共模噪声/干扰。AT93C46是一片串行数据存储器,该芯片不论写入或读取数据,皆采用串行传输的模式动作,串行方式虽然没有并行传输来得快速,但是其传递远距离的数据,却可以大量减少使用传输线的需求,也缩小了系统整体的占有面积。因此,非常适合用于微控制器或是微处理器。
[!--empirenews.page--]
5 基于VDK的应用程序设计
    本系统中的网络通信模块主要完成的任务是网络芯片初始化及接收应急信号,接收上位机指令帧并对其进行解析,同时将选择板卡返回指令帧发送给上位机。
    分析上述任务,可将应用程序分为三个线程:其中一个Boot Thread:lwip_sysboot_threadtype的作用是上电后对系统进行初始化并创建各个线程,然后激活Echo_Server_ThreadType线程,完成与上位机的客户端建立Socket连接;其次,初始化线程级别最高;连接成功后,由Echo_Servet_ThreadType线程激活Echo Worker_ThreadType线程,Echo_Worker_ThreadTrype线程的任务为通过recv()函数接收上位机指令帧并对其进行功能解析,然后根据帧功能码判断应该发送给上位机的帧,准备好上传数据,再通过send()函数将上报帧上传给上位机并显示最终处理结果。


    图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的网络音频通信系统的设计方案,同时通过实际项目的操作对该方案的可行性进行了验证。经过测试证明,该系统可以提高传输效率,而且实时性好,性能稳定。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

上海2024年5月16日 /美通社/ -- 2024年5月10日至5月13日,富士胶片(中国)投资有限公司携旗下影像产品创新力作亮相北京P&E 2024。在数码相机展览区域,全新制定的集团使命"为世界绽...

关键字: 富士 数码相机 影像 BSP

贝克曼库尔特目前已成为MeMed Key免疫分析平台和MeMed BV检测技术的授权经销商 在原有合作的基础上,继续开发适用于贝克曼库尔特免疫分析仪的MeMed BV检测 加州布瑞亚和以色列海法2024年5月16日...

关键字: BSP IO 检测技术 免疫分析仪

英国英泰力能的燃料电池是可产业化的产品解决方案 英国首个专为乘用车市场开发的燃料电池系统 在 157kW 功率下,此燃料电池比乘用车的其他发动机更为强大 &...

关键字: ENERGY INTELLIGENT 氢燃料电池 BSP

深爱人才,共赴"芯"程 深圳2024年5月15日 /美通社/ -- 5月11日,深圳国资国企"博士人才荟"半导体与集成电路产业专场活动在深圳市重投天科半导体有限公司(简...

关键字: 半导体 集成电路产业 BSP 人工智能

武汉2024年5月15日 /美通社/ -- 北京时间4月26日-5月4日,2024 VEX 机器人世界锦标赛于美国得克萨斯州达拉斯市举办。本届 VEX 世锦赛为期九天,设有 VIQRC 小学组/初中组、V5RC 初中组/...

关键字: 机器人 BSP RC POWERED

上海2024年5月15日 /美通社/ -- 由生成式人工智能(AI)驱动的临床阶段生物医药科技公司英矽智能宣布,与复星医药(600196.SH;02196.HK)合作开发的潜在"全球首创"候选药物IS...

关键字: ISM BSP PC 人工智能

上海2024年5月13日 /美通社/ -- 5月8日,浦东新区国资委组织陆家嘴集团等9家区属企业与立邦中国召开合作交流会,旨在贯彻落实浦东新区区委、区政府工作要求,进一步放大进博会溢出带动效应,持续扩大区属企业与进博会重...

关键字: BSP 数字化 自动化立体仓库 智慧园区

上海2024年5月13日 /美通社/ -- 在数字化时代,高效的税务管理和ERP系统成为企业发展的关键。为了满足这一需求商应信息科技与Exact Software 易科软件就金四全电票税系统与ERP系统集成及商务合作建立...

关键字: AC 软件 BSP 数字化

北京2024年5月13日 /美通社/ -- 5月11日,鲲鹏昇腾开发者大会2024期间,华为举办"昇思AI框架及大模型技术论坛",软通动力数字基础设施与集成事业部总经理谢睿受邀出席、软通动力...

关键字: AI 模型 BSP 精度
关闭
关闭