基于W90N740的MEPG-2数字视频编码机

出处:pcbandmcu 发布于:2007-12-20 14:02:49

  随着微电子技术和以太网技术的发展,MPEG-2产品正逐步从传统的模拟传输,向采用IP/ATM传输发展。MPEG-2 over IP是采用以太网传输技术,将MPEG-2视频传输流(TS流)通过以太网进行传输的产品。

  如何更好将MPEG-2和以太网传输控制实现有机地结合起来,是研究实现MPEG-2 over IP的重点。本文围绕着这个重点而展开。

  1.系统工作原理

  典型的MPEG-2 over IP结构如下图1所示。MPEG-2 over IP主要包括MPEG-2编码模块和通信控制模块。MPEG-2编码模块实现对模拟视音频的PMEG-2压缩编码;通信控制模块实现对MPEG-2编码模块的控制、MPEG-2 TS流的采集和在以太网上的传输。

MPEG-2 over IP结构

  2.编码机系统的实现

  根据典型的MPEG-2 over IP产品结构,将编码机硬件体系设计分为MPEG-2编码模块和通信控制模块两个部分。

  2.1.MPEG-2编码模块

  2.1.1.MPEG-2编码模块的构成

原理图

  MPEG-2编码模块采用日本富士通公司的MPEG-2编码处理芯片MB86391、SAA7114视频处理芯片、SC5340音频处理芯片和Atmel公司的AVR 8位微处理器Atmega16等构成。其原理图如下图2所示。

  2.1.2.MB86391介绍

  MB86391的内部框图如图3所示。它是在单一芯片中集合了音频/视频编码。编码使用富士通开发的高性能MPEG-2压缩运算法则。集合了内部DPSRClite CPU处理的硬件和软件。

  支持ISO/IEC 11172(MPEG-1)、ISO/IEC 13818(MPEG-2) 标准和MPEG-1音频层-1/2编码功能( ISO/IEC11172-3)。

  支持NTSC和PAL制式的视频格式。视频编码输出码率可达20Mbps。视频输入接口采用8位并行接口,音频采用串行接口。支持并行或者串行的主机接口。在串行主机接口模式下,其配置和执行MPEG-2算法的firmware(固件)可通过串行主机接口。

MB86391的内部框图

  2.1.3.MPEG-2编码模块的工作原理

  模拟视频和音频通过SAA7114视频处理芯片、SC5340音频处理芯片进行模数转换和处理,输出给MPEG-2编码芯片MB86391,MB86391芯片按MPEG-2视频格式将数字视音频作压缩编码处理,从MB86391的流输出接口输出。

  ATMEL公司的AVR 8位处理器ATmega16为编码模块的CPU,它通过串行总线来控制MB86391和为其firmware(MB86391的微码,用于执行编码算法等);ATmega16通过I2C总线与SAA7114和SC5340相连接,完成对前端视音频的控制调节。

  同时ATmega16也肩负着MPEG-2编码模块与通信控制模块的通信控制任务,它通过SPI总线与通信控制模块连接。

  ATmega16在编码模块中主要为通信控制模块和MB86391、SAA7114以及SC5340提供通信控制的桥梁。

  2.2.通信控制模块

  通信控制模块是MPEG-2编码机功能的。它主要实现对MPEG-2编码模块的控制和传输MPEG-2视频数据流到以太网上的功能。通信控制模块由Winbond公司的32位ARMTDMI核的微处理器W90N740、Lattice公司的FPGA  LFXP3C-5T组成。其原理图如图4所示。

通信控制模块框图

  图4:通信控制模块框图

  2.2.1.W90N740的特点

  W90N740是台湾华邦电子公司的一款基于ARM7TDMI核的32位微处理器,内部功能框图如图5所示。

内部功能框图

  该处理主要针对路由器网络产品而设计,采用ARM7TDMI核,工作频率可达80MHz。提供2个10/100M的以太MAC(媒体访问控制器)、EBI(外部总线接口)总线、4个独立可编程的外部中断源、2个24位的定时计数器和一个24位的看门狗定时器,以及21个可编程通用I/O和一个UART接口。

  内置的两个以太网MAC控制器,每个MAC都有支持IEEE802.3以太网协以引擎和含有DMA控制器和收/发FIFO,支持媒质独立接口MII(Media Inde-pendent Interface)精简媒质独立接口RMII(Reduced MII)。以太网MAC也支持长帧(长度大于1518字节)和短帧(长度小于64字节)两种帧结构。

  EBI控制器支持访问片外SDRAM、RAM/SRAM、ROM/FLASH和I/O设备。提供支持达32M字节的ROM空间、2个为32M字节的SDRAM和4个32M的I/O设备空间。

 4个可编程的外部中断源,可独立配置电平触发或者边沿触发方式。

  W90N740的特点非常适合于在MPEG-2 over IP产品中担当通信控制模块的处理器。

  2.2.2.MPEG-2编码模块的通信/控制

  MPEG-2编码模块和通信控制模块的通信/控制设计为SPI接口。MPEG-2编码模块为从SPI,通信控制模块为主SPI。W90N740本身没有SPI总线接口。设计时,采用W90N740的通用I/O来模拟一个SPI的主控制器。

  同时,为了保证MPEG-2编码模块和通信控制模块的同步,通行控制模块为编码模块提供一个由W90N740的通用I/O控制的复位引脚,在通信控制模块复位的情况下,让编码模块也能复位。

  2.2.3.TS流的采集

  在编码机系统中,TS流的采集是一个重点。设计时使用FPGA设计异步FIFO将MB86391的输出数据流和W90N740的EBI总线连接起来,实现TS流的采集。

FPGA中的TS流采集部分

  其FPGA中的TS流采集部分如图6所示。

  图6的左端是异步FIOF的输入控制部分。它与MPEG-2编码模块的MB86391的图像数据流接口相连。MB86391工作在27M同步并行模式。其输出压缩编码数据流的时序如图7所示:BCLK为同步数据时钟,频率是图像数据流的码率的1/8;STEN是图像数据流数据有效指示;TSPSSUNC是图像数据流同步指示,当一个TS流包(188字节)的个字节是0x47时,它为高电平;STDATA是图像数据流的数据。它们分别与图6的TS clk、TS vaild、TS sync、TS D[7..0]相连,8位并行的TS流进过“8bit to 32bit”部分转换输入到32位宽度的异步FIFO进行缓存。

  图6的右端是通信控制模块获取TS流的部分,它占用W90N740的EBI I/O设备接口bank0资源。EBI I/O设备接口bank0配置在32位宽度,以提高W90N740的采集数据的能力。当FIFO中的数据缓存到设定的临界值后,FIFO的flag信号将变为高电平。通过FIFO的flag信号产生送给W90N740的中断申请nIRQ0,通知W90N740图像数据准备好了。

输出压缩编码数据流的时序

  W90N740的EBI I/O总线时序如图8所示。利用W90N740的系统时钟MCLK作为异步FIFO的读时钟rd clk;通过片选信号nECS0和读选通信号nOE来产生异步FIFO的读允许rd en。

输出压缩编码数据流的时序

  同时,图6中“控制部分”除了根据W90N740的EBI I/O设备时序产生FIFO的读时序外,它还用W90N740的EBI I/O设备接口和TS vaild信号来产生FIFO的复位,reset信号。

  采用异步FIFO采集MPEG-2 TS流的设计,降低了图像数据采集占用CPU的时间。为提高整个编码机的性新能起到非常大的作用。

  2.3.编码机的软件结构

  2.3.1.存储器分配

  大多数的嵌入式系统,采用Flash或者ROM等存储器来存储系统的软件,为了提高系统的运行速度,一般将程序软件放入SDRAM、SRAM或者RAM等快速存储器中运行。

  在我们设计编码机的也采用上面的方式来存储和运行程序代码。为了降低对ROM存储器的容量要求,将程序代码采用压缩方式都放置在16Mbit的FLAS中。其分配使用如表1所示。

分配使用


  2.3.2.软件设计

  Linux操作系统是源代码开放的多任务操作系统,它具有完善的TCP/IP协议栈,支持多任务,成为软件设计的主选对象。

  uClinux是针对没有MMU(内存管理单元)的微处理器而设计的Linux操作系统。它继承了Linux的绝大多功能,支持进程、线程,TCP/IP协议栈功能强大。因此,软件设计选用uClinux操作系统。

  在uClinux操作系统下,将软件分为驱动和上层应用两个部分来设计。驱动负责提供上层应用程序访问底层硬件的接口。应用软件完成编码机的功能。

  在uClinux中进程和线程都是并行运行的,设计时软件按功能划分为模块,设计为进城或者线程。考虑到进程占用内存资源渐多,而线程占用内存资源少,因此、系统软件结构如图9所示应用软件采用进程和线程来设计。应用软件功能模块如图9所示。

编码机软件结构

  图9:编码机软件结构  

  划分进程和线程是软件设计的一个关键。分析Linux进程和线程的特点,结合编码机需要用软件实现的功能,将初始化工作(如MPEG-2编码模块的初始化、以太网参数初始化)、条件工作功能(如编码机参数配置、远程升级)设计为辅助进程,这些进程的运行的时间短,只有在系统复位初始化或者条件控制下才运行,并且会退出运行。

  主进程将是一个永远运行的进程,在这个进程中将实现编码的主要功能,如图像数据流在网络的传输、远程控制、用于与其它设备通信的RS-485/RS-232低速数据传输、编码机的状态监测等。这些功能之间相互有着联系,如远程控制可以查询编码机的状态,而编码机的状态随时由编码机的监测更新。因此,将这些功能用线程来实现,在主进程中用全局变量来实现各个功能之间的联系。

  编码机的功能——TS流传输线程和远程控制命令处理线程的流程如下图10所示。

  结  语

  通过实际设计表明,在MPEG-2 over IP编码机设计中,采用W90N740作为CPU和uClinux操作系统,使得设计简单,灵活,已于维护。实际效果明显,能实时传输10路4M码率的MPEG-2图像给不同的目的IP。

  参考文献

[1]. MB86391 datasheet https://www.dzsc.com/datasheet/MB86391_156544.html.

[2]. SAA7114 datasheet https://www.dzsc.com/datasheet/SAA7114_596029.html.

[3]. Atmega16 datasheet https://www.dzsc.com/datasheet/Atmega16_144718.html.

[4]. W90N740 datasheet https://www.dzsc.com/datasheet/W90N740_1095266.html.

[5]. ARM7TDMI datasheet https://www.dzsc.com/datasheet/ARM7TDMI_139812.html.

[6]. ROM datasheet https://www.dzsc.com/datasheet/ROM_1188413.html.

[7]. Winbond electronics Corp.  W90N740CD/W90N740CDG data sheet.

[8]. 日本富士通.  MPEG2 1chip Audio/Video Encoder MB86391 Product Specification.

[9]. 马忠梅、徐英慧.  ARM嵌入式处理器结构与应用基础(第2版).   北京航空航天大学出版社.

[10]. 余兆明、李晓飞.  MPEG标准及其应用.  北京邮电大学出版社.

[11]. 张辉.  GNU/Linux编程指南(第二版).  清华大学出版社.

[12]. 詹俊鹄、于卫译.  实战Linux Socket 编程.  西安电子科技大学出版社

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!