Linux操作系统是源代码开放的多任务操作系统,它具有完善的TCP/IP协议栈,支持多任务,成为软件设计的主选对象。
uClinux 是针对没有MMU(内存管理单元)的微处理器而设计的Linux操作系统。它继承了Linux的绝大多功能,支持进程、线程,TCP/IP协议栈功能强大。因此,软件设计选用uClinux操作系统。
在uClinux操作系统下,将软件分为驱动和上层应用两个部分来设计。驱动负责提供上层应用程序访问底层硬件的接口。应用软件完成编码机的功能。
在uClinux中进程和线程都是并行运行的,设计时软件按功能划分为模块,设计为进城或者线程。考虑到进程占用内存资源渐多,而线程占用内存资源少,因此、系统软件结构如图9所示应用软件采用进程和线程来设计。应用软件功能模块如图9所示。
图9:编码机软件结构
划分进程和线程是软件设计的一个关键。分析Linux进程和线程的特点,结合编码机需要用软件实现的功能,将初始化工作(如MPEG-2编码模块的初始化、以太网参数初始化)、条件工作功能(如编码机参数配置、远程升级)设计为辅助进程,这些进程的运行的时间短,只有在系统复位初始化或者条件控制下才运行,并且会退出运行。
主进程将是一个永远运行的进程,在这个进程中将实现编码的主要功能,如图像数据流在网络的传输、远程控制、用于与其它设备通信的RS-485/RS-232低速数据传输、编码机的状态监测等。这些功能之间相互有着联系,如远程控制可以查询编码机的状态,而编码机的状态随时由编码机的监测更新。因此,将这些功能用线程来实现,在主进程中用全局变量来实现各个功能之间的联系。
编码机的核心功能——TS流传输线程和远程控制命令处理线程的流程如下图10所示。
图10:部分线程流程
结 语
通过实际设计表明,在 MPEG-2 over IP编码机设计中,采用 W90N740 作为CPU和 uClinux 操作系统,使得设计简单,灵活,已于维护。实际效果明显,能实时传输10路4M码率的MPEG-2图像给不同的目的IP。
参考文献
1. Winbond eleCTRonICs Corp. W90N740CD/W90N740CDG data sheet.
2. 日本富士通. MPEG2 1chi
p Audio/Video Encoder MB86391 Product Specification.
3. 马忠梅、徐英慧. ARM嵌入式处理器结构与应用基础(第2版). 北京航空航天大学出版社.
4. 余兆明、李晓飞. MPEG标准及其应用. 北京邮电大学出版社.
5. 张辉. GNU/Linux编程指南(第二版). 清华大学出版社.
6. 詹俊鹄、于卫译. 实战Linux Socket 编程. 西安电子科技大学出版社
本文关键字:暂无联系方式DSP/FPGA技术,单片机-工控设备 - DSP/FPGA技术