微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > 采用DS80C400建立网络多媒体应用

采用DS80C400建立网络多媒体应用

时间:12-07 来源:互联网 点击:
5 关于以太网供电

要将设备连接到网络中需要给网络添加额外的电缆,幸好,电源可以被整合到以太网电缆中空余的导线上。解决这个问题有多种方法,最为常见的是IEEE 802.3af标准,规定将48V电源连接至8引脚以太网连接器的7、8引脚(+)和4,5引脚(GND)。48V电源普遍应用于电话系统,因此配线柜中通常已带了这个电源。为了能够应用于网络型微控制器,电源必须降压至某个合适的水平。

6 文本到语音

使用麦克风记录现场语音或播放存储在网络服务器上的录音,是应用网络型PA系统的方式之一。另外—种是利用接收自电子邮件、WEB页或蜂窝电话短消息业务的文本广播消息。

为系统添加语音合成非常容易,转换可以直接在主控服务器上进行,利用文本到语音转换引擎从输入文本产生音频波形,然后就可以将这个波形如同其他音频信号一样发送至扬声器,扬声器模块无须作任何改动。文本到语音转换引擎已广泛应用,并且已经成为有些操作系统(例如Mac OSX)的组成部分。

7 娱乐级音频


如果音频采样以非压缩方式传输,则CD音频就会遇到问题。以44.1kHz 16位采样、未经处理的立体声需要1.44Mbps的网络带宽(几乎占了10Mbps网络的30%),已经超出了许多网络可提供的带宽。

MP3这样的压缩算法能够降低数据速率,由此大大提高网络负载能力,使系统切实可行。配合硬件解压缩芯片,DS80C400能够轻松完成任务。事实上,36MHz的时钟速率足以连续播放192KB的MP3。

8 成像

将视频信号连接至DS80C400,如安防照相机,采用一个廉价的照相机每秒获取一个快照,并传送到网上用于显示和存储。服务器端的后处理可完成运动监视并警示保安人员,比较好的照相机选择是现代的蜂窝电话——它们不仅小巧、廉价而且随处可得,大多采用一种串行协议进行通信,但不同的制造商也可能采用不同的通信协议。

实验表明,无须任何硬件辅助的图像压缩,DS80C400便可每秒传输4帧原始的黑白图像(240180),而且还留有一定的余量可用于处理话音级的音频。对于那些熟悉Unix网络编程的人来说,closesocket( )就是close( )。DS80C400版本的close( )函数由文件系统使用,与Windows系统一样,DS80C400上的套接字句柄与文件句柄是不可互换的,必须使用独立的套接字函数。

相机系统提供给DS80C400的时钟频率为73.7MHz,接近于75MHz的极限值。73.7MHz的频率由基频模式的18.432MHz晶体和集成在DS80C400上的PLL(Phase locked loop,锁相环路)经4倍频后得到。这种设计降低了整个系统的成本,同时还允许工作在接近微控制器最高频率的上限。此外,18.432MHz4对于异步串行通信来讲还是一个很好的波特率发生器。

9 网络门

将安防照相机与双向音频、按钮和蜂鸣器等结合在一起是很容易做到的。这样的系统允许我们建造一个网络门(见图5)。应用是无止境的,尤其是与访问控制和安全登录等结合在一起时。对于DS80C400来说,按钮和蜂鸣器仅仅是外部设备,可以直接连接到普通I/O上。

在Keil C中,通过sfr和shit,很容易定义I/O端口:

/* Define port 1 */

Sfr pl = 0x90;

/* Define P1.7 (port 1 is bit addressable) */

sbit pl_7 = pl^7;/* Toggle Pl.7 */

p_7 = !pl一7;

采用ibutton和内置于DS80C400的1-Wire主控制器接口,很容易在网络门上添加安全认证功能(某种程度上讲,该接口的编程要复杂一些,因此Dallas Semiconductor提供了库文件,以便简化任务)。

注意:像网络门这样的系统可能需要完成多种处理(或任务),DS80C400 ROM包含了一个任务调度器。下面实例说明了如何在C语言中使用它。还有,在工业级应用中,应该检查返回代码。

unsigned Char pri, task;

/* Get the current task */

task = task_getcurrent( );

/* The current task’S priority */

pri = task_getpriority(0);

/* Decrease the priority */

task_Setpriority(0, pri-1);/* Sleep */

task_Sleep(0, 0, 500);

样例程序还包含了一些有用的函数,如task_fork( ),通过复制当前任务,创建一个新的任务。Task_kill ( )取消一个任务,以及task_suspend( )挂起一个任务。

二、总结

可以采用多种方法开发DS80C400的应用软件。若想快速评估方案,可以考虑采用Java语言和TINI运行环境。对于那些要求考虑每个指令周期的应用,最好采用最优化的汇编语言。

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

Dallas Semiconductor公司提供接口至DS80C400内部网络栈的C库文件。在Dallas Semiconductor的ftp网站:

ftp://ftp.dalsemi.com/pub/tini/ds80c400/上,可以找到该库文件,以及一份使用Keil开发环境创建DS80C400项目的详细操作指南。这些库文件极大地简化了网络编程.例如,创建两个TCP连接已简化为全球皆知的socket( )和connect ( )顺序调用。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top