在众多处理器中,ARM系列内核因其体积小、功耗低、成本低和性能高等特点,得到了广泛应用。全球许多厂商都在生产基于ARM内核的处理器。与此同时,Linux作为一种开放源码的操作系统,最初设计用于桌面系统,后因其开放源码和内核可裁减的特性,被广泛用于服务器和嵌入式领域。
在嵌入式系统中,ARM内核处理器与嵌入式Linux的结合已经成为一种典型配置。以Samsung公司的16/32位ARM7TDMI内核的网络处理器S3C4510B为例,搭配μClinux操作系统,可以构建一个支持完整TCP/IP协议及其他网络协议的低成本系统。
接下来,让我们深入了解嵌入式系统的构成。硬件系统主要由CPU、Flash ROM、SDRAM、以太网物理层、FIFO以及CPLD等芯片构成。CPU是核心,负责处理数据;Flash ROM和SDRAM则构成了存储空间,分别用于存放操作系统、应用程序和系统内存。
为了实现网络通信,系统还需要以太网物理层和串行接口芯片。以太网控制器提供了MAC功能,但需要物理层芯片来完成编解码和时钟恢复。串行接口芯片则负责电平转换。
此外,为了支持实时数据通信,系统还需要FIFO和CPLD。FIFO用于数据缓冲,而CPLD负责产生FIFO控制逻辑和外部总线控制逻辑。
在操作系统方面,虽然商业化操作系统如VxWorks、pSOS和Nucleus等在功能和稳定性方面有很好的表现,但价格昂贵。因此,许多人选择了开放源码的嵌入式Linux。它不仅价格低廉,而且在网络和图形界面方面也有很好的支持。更重要的是,它的模块化设计使得用户可以根据实际需要灵活配置。
针对没有MMU的CPU,μClinux是一个不错的选择。它基于标准的Linux 2.0内核,经过精简和修改,更适合嵌入式系统。最新的μClinux版本已经支持S3C4510B及典型开发板,但如果没有支持的CPU和开发板,用户需要根据实际情况移植。
总之,嵌入式系统以其独特的优势,正逐渐改变我们的生活方式。从硬件到软件,从处理器到操作系统,每一个环节都充满了创新和挑战。而随着技术的不断进步,我们有理由相信,嵌入式系统将在未来发挥更大的作用。
嵌入式系统目前已广泛应用于信息家电、网络通信和工业控制等各个领域。典型的嵌入式系统主要由嵌入式硬件和软件构成,其中硬件部分的核心为嵌入式处理器。
ARM系列内核是目前嵌入式处理器中广泛使用的内核。采用ARM内核的处理器具有体积小、功耗低、成本低和性能高的特点。在全球有众多生产ARM内核处理器的厂商。
Linux是一种很受欢迎的开放源码操作系统,原先被设计应用于桌面系统,后被广泛应用于服务器。由于其开放源码和内核可裁减等特性,Linux逐渐被修改用于嵌入式领域。目前已有多个嵌入式应用的版本,μClinux 是其中的一个分支,最早被设计应用于微控制领域。其最大特征就是没有MMU(内存管理单元),很适合于许多低端的、没有MMU的嵌入式处理器。
本文设计了一种嵌入式系统用于多媒体实时数据的网络传输。ARM内核处理器与嵌入式 Linux 是目前嵌入式应用中的一种典型组合,选用了 Samsung 公司的16/32位ARM7TDMI 内核的网络处理器 S3C4510B 为嵌入式硬件核心,μClinux 为操作系统。该系统支持完整的TCP/IP协议以及许多其它的网络协议,同时它具有很低的成本。
1 嵌入式系统的构成
1.1 硬件系统
嵌入式硬件系统主要由 CPU、Flash ROM、SDRAM、以太网物理层、FIFO以及CPLD等芯片构成,如图1所示。
(1) CPU
本系统采用了 ARM7TDMI 内核的 RISC 处理器S3C4510B。该芯片具有如下一些主要特点:
8/16/32位的外部总线支持 ROM、RAM、Flash 存储器、DRAM 和外部I/O;
8K 字节的 Cache;
一个I2C 接口;
一个带 MII 接口的100mbps/10Mbps 以太网控制器;
两个 uart 通道;
两个通用 DMA 通道;
两个 HDLC 通道;
18个通用I/0通道;
两个32位定时器;
共有21个中断源,其中4个用于外部中断;
一个内部 PLL 用于提供高频率的系统时钟,最高系统时钟可达50MHz。
由此可见,S3C4510B 很适用于低端的网络设备,如集线器、交换机、家庭网关等。
(2)Flash ROM 和 SDRAM
Flash ROM 和 SDRAM 构成了系统的存储空间。其中Flash ROM 作为程序存储器,用于存放操作系统、应用程序等;SDRAM为系统内存。
(3)以太网物理层和串行接口芯片
CPU 内部的以太网控制器只提供了MAC(媒体接入控制器),需在外部接一个物理层芯片完成编解码和时钟恢复等功能。串行接口芯片主要完成串行线路接口的电平转换。
(4)CPLD 和 FIFO
为了能使系统支持实时数据通信,需要在外设和嵌入式系统的外部总线之间加上 FIFO 和CPLD。FIFO 用于数据缓冲,CPLD 用于产生 FIFO控制逻辑和外部总线控制逻辑。
1.2 操作系统
ARM7TDMI 内核已被众多的嵌入式操作系统所支持,如 VxWorks、pSOS 及 Nucleus 等。这些商业化操作系统在网络和用户图形界面等方面都有很好的支持,并且在稳定性和实时性方面都有相应的保证,但其价格也相当高。这里选用了开放源码的嵌入式 Linux,它一般免费或花较少的费用就可得到,同时它在网络和图形界面方面也有很好的支持。另外,嵌入式 Linux 的高度模块化使它可以根据实际应用需要灵活配置,能有效精简内核代码。嵌入式 Linux 具有很高的稳定性。在实时性方面,尽管 Linux 本身未作过多关注,但可通过打实时 Linux(RTLinux)补丁解决。
针对所采用的 CPU 没有 MMU,选用了目前在嵌入式系统中被广泛使用的μClinux。μClinux 是从标准的Linux 2.0 内核发展而来的,但其源代码针对典型的嵌入式应用已经作了许多精简和修改,使得其内核比标准的 Linux 内核要小很多,不过它仍然保留了标准 Linux的主要特色。
目前最新的μClinux 版本已经支持 S3C4510B 及典型开发板,如果所采用的 CPU及开发板没有被支持,应根据实际情况移植。此外,由于在外部总线接了 CPLD和 FIFO,为了使应用程序能访问它,需要在μClinux 下开发相应的驱动程序。