网站客服:zx81024163 |

基于DS80C400微控制器实现音视频范例网络多媒体系统的设计

2024-02-24 07:02:37发布    浏览352次    信息编号:99391

友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。

基于DS80C400微控制器实现音视频范例网络多媒体系统的设计

随着电子信息技术的快速发展,对有线公共广播系统(PA-)、网络门、MP3播放器和安全摄像机等令人兴奋的多媒体应用的需求也日益增加。 随着网络技术发展的今天,可以使用低成本的网络微处理器来构建和实现它。 其特点是每秒可传输4帧原始黑白图像,无需任何硬件图像压缩,分辨率可达像素。

该新型网络微控制器具有高性能结构、多层网络节点和I/O端口以及稳定的ROM固件。 广泛应用于工业控制/自动化、数据转换器、远程数据采集设备、环境监测、家庭/办公自动化、交易/支付终端和网络传感器等领域。 本文分析和讨论了如何在音视频示例网络多媒体系统中应用基于网络的微控制器。

1、基于网络的有线公共广播(PA)系统的建立

1 普通或传统PA系统

PA系统是用于寻呼/对讲和公开演讲的系统。 公共演讲系统有两个主要部件,即扩音器和扬声器。 其组成如图1的原理框图所示。放大器有四个16Ω扬声器,PBX()用户交换机将外线电话线连接到某栋住宅或办公室的分机,PBX系统功能包括呼叫转移、快速拨号、内/外寻呼、通话详细记录等

当广播系统工作时,操作员通过广播和寻呼向人员广播某些信息,例如“全体工作人员请注意,火灾报警系统正在测试”,或者“主管请到化学品库报告”等。对于这类系统,人们常常使用传统的独立布线和基础设施技术来实现。

2 网络型有线公共广播(PA)系统

现在,如果你把这个系统搬到网络上,情况就会不一样了。 不仅可以节省独立的音频布线,还可以让系统更加智能化。 这是因为寻呼系统已经连接到各个建筑物的门禁系统或网络服务器,以便操作员可以轻松地知道某个人的位置。 此外,这种基于计算机化网络的公共广播系统可以自动重复消息,从而使接线员能够腾出时间来处理更多呼叫。 更新颖的是,该系统还可以连接到全公司的电子邮件系统,实现电子邮件到语音的转换服务; 或者它可以通过可以输入寻呼请求的网站发布消息,而无需人工干预。

那么如何构建这样一个基于网络的PA系统呢? 首先,您需要至少一台运行WEB界面的服务器和带有麦克风的电子邮件网关。 我们将此服务器称为主服务器 ( )。 接下来,需要一些扬声器模块,例如带有能够驱动扬声器的数模转换器(DAC)的基于网络的微控制器。 这些扬声器单元需要价格便宜并且相对容易现场安装。 图2是网络微控制器的内部结构框图。

图3所示为网络音视频PA系统架构示意图。 该网络型广播系统实现M、L两栋楼之间的网络运行,包括7个扬声器单元和一个主控服务器; 建筑物之间的网络连接使用路由器()而不是网桥。 在这个基于网络的 PA 系统中,网络微控制器驱动扬声器单元。 由于此类基于网络的PA系统不需要高带宽和处理能力,控制器提供的PC系统的处理能力和存储资源足以支持系统运行。 因此,采样率为 22 位的未压缩单声道音频的带宽要求足以在 22.0 位内提供出色的语音质量。 而且无需支付硬件解压费用,从而大大提高了这种基于网络的PA系统的性价比。

图4是此类基于网络的音频系统的相对带宽要求的示意图。 图4所示的剖面线是网络音频PA系统的带宽区域,表明此类网络音频系统的音频带宽只需要0.,即使在早期的网络上(半双工)(见图4轴纵坐标),相对于该基于网络的PA系统的有效带宽为5Mbps的容量,音频带宽(0.)仅使用了5%的容量。 与当今大多数以太网带宽要求相比,这非常低,从而显着节省了容量。

3 扬声器单元硬件配置

此外,扬声器单元还需要一些内存(512KB的SRAM就足够了)、网络PHY(开放系统互连)、DAC、放大器和扬声器。 为此,通过以下技术简化了安装和代码分发:

● 通过网络启动方式“”配备网络微控制器,并使用DHCP(动态主配置协议)和TFTP(简单文件传输协议)网络协议获取IP地址和加载器数据,降低安装和配置成本;

● 以太网供电(参见图3 顶部和底部的两条粗水平圆形线,以太网电缆)可简化接线并降低材料成本。

上电后,ROM通过DHCP(动态主配置协议)获取IP地址,然后向网络查询应用程序的最新版本。 应用程序执行后,系统就准备好接收音频数据。 现场找到未使用的网口,连接线缆,完成新扬声器模块单元的安装。

4 扬声器单元软件

为了简化硬件的安装,软件需要一些额外的工作。 由于两栋大楼之间有路由器(见图 3 中间),因此广播和呼叫消息无法从一栋大楼直接到达另一栋大楼。 因此,不能使用简单的消息广播。 新的发言者必须发送组播消息,直到主服务器确认发言者的位置和参数。 新的扬声器系统无法提前知道主服务器的位置,因此需要发送组播消息来请求主服务器识别自己的身份。 如果担心安全问题,可以对交换的信息进行数字签名,以排除冒充服务器的系统。 一旦配置了传统的单播消息传递,扬声器单元就会加入多播组并等待由主设备多播的音频数据包。 使用组播是因为TINI(Tiny,Tiny )操作环境支持组播。 它与从一个源发送到一个目的地的单播数据包不同。 它允许多个目标主机接收相同的数据,从而消除重复。 传输,节省带宽。 在网络中,组播报文使用一种特殊类型的目的IP地址,称为组播组网络。

PA系统的示例程序是用C语言编写的。 需要注意的是,除了 join() 之外,这些编写步骤对于为 TCP/IP 网络编写代码的程序员来说应该是相当熟悉的。

5 关于以太网供电

将设备连接到网络需要向网络添加额外的电缆,但幸运的是,电源可以集成到以太网电缆的备用电线中。 解决这个问题的方法有很多,最常见的是 IEEE 802.3af 标准,该标准规定将 48V 电源连接到 8 针以太网连接器的引脚 7 和 8 (+) 以及引脚 4 和 5 (GND)。 电话系统普遍使用48V电源,因此接线柜通常已配备此电源。 为了适用于联网微控制器,必须将电源降压至合适的水平。

6 文字转语音

使用麦克风录制现场语音或播放网络服务器上存储的录音是应用基于网络的PA系统的方式之一。 另一种方法是使用从电子邮件、网页或蜂窝电话短消息服务接收的文本广播消息。

将语音合成添加到系统中非常容易。 转换可以直接在主机服务器上执行,使用文本到语音转换引擎从输入文本生成音频波形。 然后可以像任何其他音频信号一样将该波形发送到扬声器。 扬声器模块不需要做任何事情。 任何变化。 文本转语音引擎应用广泛,并且已经成为某些操作系统(例如 Mac OSX)不可或缺的一部分。

7 娱乐级音频

如果音频样本未压缩传输,CD 音频就会出现问题。 以 44.1kHz 16 位采样的未经处理的立体声需要 1.0% 的网络带宽(几乎是网络的 30%),这超出了许多网络所能提供的带宽。

MP3等压缩算法可以降低数据速率,从而大大增加网络负载能力,使系统变得可行。 有了硬件解压芯片,就可以轻松完成任务。 事实上,36MHz的时钟频率足以连续播放192KB的MP3。

8 影像学

例如,将视频信号连接到安全摄像头,廉价摄像头每秒拍摄一张快照,并将其发送到网上以供显示和存储。 服务器端后处理可以完成运动监视并向安保人员发出警报。 更好的相机选择是现代手机——它们体积小、价格便宜且广泛使用。 大多数使用串行协议进行通信,但不同制造商也可能使用不同的通信协议。

实验表明,在没有任何硬件辅助图像压缩的情况下,每秒可以传输4帧原始黑白图像(),对于处理语音级音频还有一定的余量。 对于熟悉 Unix 网络编程的人来说,( ) 是 close( )。 文件系统使用 close() 函数的版本。 与系统一样,套接字句柄和文件句柄不可互换,必须使用单独的套接字函数。

相机系统提供的时钟频率为73.7MHz,接近75MHz的极限。 73.7MHz的频率是由基波模式下的18.晶体频率的4倍以及其上集成的PLL(相位环)获得的。 这种设计降低了总体系统成本,同时还允许在微控制器最大频率上限附近运行。 另外,18.对于异步串行通信来说是一个很好的波特率发生器。

9 网络门

将安全摄像头与双向音频、按钮和蜂鸣器等集成起来很容易。 这样的系统允许我们构建一个网络门(见图5)。 应用程序是无穷无尽的,尤其是与访问控制和安全登录等功能结合使用时。 例如,按钮和蜂鸣器只是可以直接连接到普通 I/O 的外部设备。

在 Keil C 中,I/O 端口可以通过 sfr 和 Shit 轻松定义:

/* 端口1 */

Sfrpl=0x90;

/* P1.7(端口1为位)*/

sbit pl_7 = pl^7;/* P​​l. 7*/

p_7 = ! pl-7;

使用内置的1-Wire主控制器接口可以很容易地向网络门添加安全认证功能(对该接口进行编程稍微复杂一些,因此提供了一个库来简化任务)。

注意:像网络门这样的系统可能需要完成多个进程(或任务),并且ROM包含任务调度器。 下面的例子说明了如何在C语言中使用它。 此外,在工业应用中,应检查返回码。

Char pri,任务;

/* 获取任务 */

任务=();

/* 任务 */

优先 = (0);

/* 这 */

(0, pri-1);/* 休眠 */

(0, 0, 500);

示例程序还包含一些有用的函数,例如 ( ),它通过复制当前任务来创建新任务。 ( ) 取消任务,( ) 暂停任务。

2. 总结

应用软件可以使用多种方法来开发。 如果您想快速评估解决方案,可以考虑使用Java语言和TINI操作环境。 对于需要考虑每个指令周期的应用程序,最好使用优化的汇编语言。

在本文中,我们使用C语言。 Keil C编译器支持连续24位寻址模式,允许高达16MB的代码/数据存储空间。 要使用此模式,需要扩展版本的编译器和链接器(CX51、LX51)。 这些工具包含在专业开发人员工具 (PK51) 中。

该公司提供与内部网络堆栈接口的 C 库文件。 可以在此处找到库文件以及使用 Keil 开发环境创建项目的详细指南。 这些库文件极大地简化了网络编程。 例如,创建两个 TCP 连接已简化为全局已知的 ( ) 和 ( ) 顺序调用。

提醒:请联系我时一定说明是从星空网上看到的!