基于ARM9内核和嵌入式Linux的网络投影机系统设计
投影机网络化正成为投影机发展过程中的一个重要趋势, 通过标配的有线及无线网络接口或选配的网络适配器, 用户可以通过计算机更方便地向投影机传送显示控制信号, 在投影机上显示输出内容, 可通过计算机来监控管理投影机。
设计开发了一套用于投影机的嵌入式远程监控系统,利用Internet,通过对底层设备驱动编程和上层软件系统的设计开发, 客户端可通过浏览器访问嵌入式系统内置的http 服务器, 将投影机的相关参数直观实时地在Web 页面上显示出来,并且可以实现对于投影机现场相关显示参数的设置。
1 嵌入式计算机系统的特点
嵌入式计算机系统同通用型计算机系统相比具有以下特点:
(1) 嵌入式系统通常面向特定应用。与通用型系统的最大不同是嵌入式CPU 大多工作在为特定用户群设计的系统中, 它通常具有低功耗、体积小、集成度高等特点, 能够把通用CPU 中许多由板卡完成的功能集成在芯片内部, 从而有利于嵌入式系统设计趋于小型化, 移动能力大大增强, 与网络的耦合也越来越紧密。
(2) 嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物。这一点决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
(3) 嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余, 力争在同样的硅片面积上实现更高的性能, 这样才能在具体应用中对处理器的选择更具有竞争力。
(4) 嵌入式系统与具体应用有机结合, 它的升级换代也是与具体产品同步进行的, 因此嵌入式系统产品一旦进入市场, 一般具有较长的生命周期。
(5) 为了提高执行速度和系统可靠性, 嵌入式系统中的软件一般都固化在存储器芯片或单片机中, 而不是存储于磁盘等载体中。
(6) 嵌入式系统本身不具备自举开发能力, 设计完成以后用户通常不能对其中的程序功能进行修改, 必须有一套开发工具和环境才能进行开发。
2 嵌入式投影机系统的组成
本系统采用目前比较流行的ARM 处理器和嵌入式Linux 操作系统平台, 对投影机进行信息采集, 并向局域网中的投影机发出控制命令。在ARM 处理器的NANDFlash 中, 固化了嵌入式Linux 操作系统和http 服务器,可以将投影机的投影信息及时地传输给用户, 同时用户可以方便地通过浏览器修改投影机的投影参数。
首先,用户在浏览器中输入已经联入局域网的投影机嵌入式模块的IP 地址, 向嵌入式模块的http 服务器提出连接请求,输入正确的用户名和密码之后,用户就可以登录系统进行控制。当用户登录系统之后,嵌入式模块首先会通过IPC (进程间通信) 的方式和投影机的核心模块通信,投影机设备将当前投影参数读取出来,然后将参数通过IPC(进程间通信)发送给嵌入式模块,嵌入式模块通过TCP/IP 协议栈将参数返回给浏览器, 用户则通过Web 页面直观实时地查看投影机当前的投影信息。用户也可以选择对投影机的投影信息进行修改, 如增加投影机投影亮度、对比度、选择Auto Keystone 方式等。
系统的整体框架如图1 所示。
图1 系统整体架构
3 嵌入式投影机应用系统架构详细设计
3.1 硬件平台的选择
基于嵌入式微处理器在嵌入式系统中的核心地位,选择一款恰当的处理器非常重要。目前市场主流的32位微处理器主要有Power PC、68K、MIPS 和ARM 等。通常在选择微处理器时, 需要考虑很多因素, 如性能、功耗、价格、配套的开发工具以及市场的供货情况, 而ARM 在这些方面都具有优势。同时ARM 还具有业界领先的RISC 体系架构, 所以, 选择基于ARM 核的处理器是最理想的。
本设计采用S3C2410 开发板为硬件平台。该平台在尽可能小的电路板面积上集成了64 M SDRAM、64 MNand Flash 、1 M Nor Flash 、RJ -45 网卡、音频输入与输出、USB Host 、USB Slave 、标准串口、SD 卡插座、, 用户按键和一些用户灯等设备接口, 并且引出CPU 的大部分信号引脚。通过这个平台可以针对S3C2410 进行系统级的硬件和软件设计, 并且能够很方便地在该平台上进行相关的功能扩展, 并进行所需的产品设计。
3.2 系统的软件实现
3.2.1 开发平台宿主机的配置
本系统的开发平台选择ubuntu 8.04 LTS 。首先从网络上下载vmware workstation 的体验版, 在Windows XP环境下安装配置好。从网络下载ubuntu 8.04 LTS 版本的ISO 镜像文件, 在vmware workstation 虚拟机环境下安装配置好ubuntu 8.04 LTS 系统, 设置虚拟机中ubuntu 系统的网络连接方式为Bridged , 通过apt 软件包管理程序可以方便地安装配置虚拟机中的ubuntu 开发环境, 安装系统开发所必须的程序库, 如build-essential,samba 以及openssh-server 等。
3.2.2 开发过程
(1) 搭建交叉编译环境
当开发嵌入式Linux 软件时, 一般都要经过交叉编译。如果是开发PC 机上的软件, 只要用Linux 本身提供的强大的编译器(如GCC) 直接编译即可。而一般的嵌入式设备所用的CPU 和PC 机上的CPU 有着不同的架构,这样就要求在PC 机上编译出适用于嵌入式设备CPU 架构的软件,这就是交叉编译的概念。图2 是交叉编译环境图示。
(2)U-boot 的移植
- 基于ARM平台的远程视频监控系统的研究(04-22)
- 基于ARM920T的红外通信系统的设计(03-11)
- 基于嵌入式ARM-Linux无线ZigBee协调器驱动设计(11-02)