采用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 ( )顺序调用。
要将设备连接到网络中需要给网络添加额外的电缆,幸好,电源可以被整合到以太网电缆中空余的导线上。解决这个问题有多种方法,最为常见的是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 ( )顺序调用。
电子 自动化 传感器 放大器 DAC C语言 连接器 Keil 相关文章:
- 变革电信网网络安全框架 (01-03)
- 浅谈IPv6技术的若干问题(01-09)
- LG电子低成本CDMA手机的设计原则剖析 (01-12)
- 专家教你做个病毒高手(04-30)
- 数据库归档要考虑的四大问题(05-26)
- 5个步骤成功加密电子邮件(07-18)