嵌入式系统的实时数据接口扩展

发布者:幸福之路最新更新时间:2010-09-05 来源: 电子技术应用关键字:嵌入式系统  μClinux  实时多媒体  接口扩展 手机看文章 扫描二维码
随时随地手机看文章

    嵌入式系统目前已广泛应用于信息家电、网络通信和工业控制等各个领域。典型的嵌入式系统主要由嵌入式硬件和软件构成,其中硬件部分的核心为嵌入式处理器。与通用处理器相比,其在功耗、体积、成本等方面都受到应用要求的制约。嵌入式系统的软件部分可以像计算机一样使用操作系统,目前已有许多成熟嵌入式操作系统,如VxWorks、pSOS、Nucleus、Windows CE以及嵌入式Linux等。当然,在一些简单应用中许多嵌入式系统的软件并没有使用操作系统,只有一些循环控制。这样,软件复杂度大大降低,从而减少存储器的容量要求,但是这样的软件在重复使用、网络支持等方面的能力相对较弱。

    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/O通道;
·两个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是从标准的Linux2.0内核发展而来的,但其源代码针对典型的嵌入式应用已经作了许多精简和修改,使得其内核比标准的Linux内核要小很多,不过它仍然保留了标准Linux的主要特色。

    目前最新的μClinux版本已经支持S3C4510B及典型开发板,如果所采用的CPU及开发板没有被支持,应根据实际情况移植。此外,由于在外部总线接了CPLD和FIFO,为了使应用程序能访问它,需要在μClinux下开发相应的驱动程序。


2 实时数据接口的扩展

2.1 应用要求

    将上述嵌入式系统应用于实时多媒体数据的网络传输,如图2所示。这里的实时多媒体可以是MPEG-4或MPEG-2等,其数据流一般是连续、恒定码率的。

2.2 硬件扩展

    根据上述数据流的特点,需在嵌入式系统与外设(编、解码器)之间加入数据缓冲控制单元。对于发送端和接收端,数据缓冲控制单元的设计有所不同,下面以MPEG-2为例说明。这里考虑系统的处理能力、网络的承受能力以及图像质量,MPEG-2的输出为4Mbps的CBR(固定比特率)Ts流。

2.2.1 发送端

    编码器送出连续、恒定速率的码流。如果将此码流直接送到CPU外部总线,将会导致操作系统频繁地处理中断,甚至会产生中断不能及时处理从而导致数据丢失。因此,有必要在编码器与外部总线之间加上FIFO,同时用CPLD实现FIFO的读写控制逻辑。编码器送出的数据流连续不断地以恒定速率写入FIFO;当FIFO中的数据积聚到一定值后,每写入若干个数据就向CPU发一个中断;CPU在收到中断后通过外部总线读入相当量的数据,并将其打包送入网络。正常情况下,每个中断读数据个数是一定的,在一段时间内FIFO写入和读出将维持平衡,且不会产生“饥饿”状态;当操作系统因处理别的任务而没有及时响应中断时,FIFO将暂时进入“饱和”状态,但只要FIFO容量足够大就不会产生数据溢出现象。由于CPU从FIFO读取单位数据的速度大大高于外设向FIFO写单位数据的速度,“饱和”状态一般能消除。由此,可以解决前述问题。

2.2.2 接收端

    在接收端,由于解码器的输入要求是一个连续、恒定速率的码流,同样要求在CPU外部总线与编码器之间加上FIFO和CPLD。同时,接收端的数据包由于经过了网络,不可避免地会引入延时,且数据包之间的延时是不确定的,甚至会产生数据包的丢失。这些都需要在接收端予以考虑,增加了接收端数据缓冲控制单元的复杂度。

    为了解决数据包到达延时及抖动问题(数据包的丢失将间接导致延时的增加),可以简单地靠增大FIFO容量解决。但增大FIFO将意味着从编码器到解码器之间延时的增加,影响了实时性。因此,为了保证一定的实时性,同时考虑成本因素,不能单纯靠增大FIFO解决。

    由于FIFO容量的限制,在出现大延时的情况下,FIFO将可能出现“空”状态。这意味着送给解码器的数据流会有中断,从而可能导致解码器的不正常工作并可能不能恢复(在数据流恢复正常后)。为此,需要在FIFO出现“空”状态之前,即处于“饥饿”状态时(可以设置一个阈值),由CPLD停止向FIFO读数据而向解码器发填充包。填充包中含有同步头,可以维持解码器的同步。短时间的插空包会使视频图像出现马赛克,如果时间过长,可能会出现黑屏。在实际试验中,接收端视频的质量与网络的负载情况有关。当网络负载较重时,图像会出现马赛克,黑屏现象一般极少发生。

2.3 驱动程序

    为了使μClinux下的应用程序能通过外部总线访问FIFO,需要编写相应的驱动程序。驱动程序主要包括三个基本部分,即CPU相关寄存器的初始化设置以及CPU对外部I/O口的读操作和写操作。其中,初始化设置主要包括中断号及其类型设置、外部I/O口数据位宽度和读写时序设置等。

关键字:嵌入式系统  μClinux  实时多媒体  接口扩展 引用地址:嵌入式系统的实时数据接口扩展

上一篇:采用Virtex-5嵌入式三模以太网MAC进行设计
下一篇:缺乏官方认证 美台USB 3.0控制器一拖再拖

推荐阅读最新更新时间:2024-05-02 21:08

SoC前段(ARM)嵌入式系统开发实作(上)
简介:在RISC的精简指令中,它含有多种意义,因此较难理解。但在Debugger对CPU掌握的全透明下,就可清清楚楚看到指令的执行, 也加深对CPU的了解。为了观看指令与组合语言的执行,我们来开一视窗共解说它各处视窗的意义。 一个嵌入式系统的核心在于CPU,当CPU选定后,其他的问题就可慢慢就绪。SoC嵌入式系统的实现可把它分为:一应用型SoC嵌入式系统、开发型SoC嵌入式系统二种型态,这二种型态的软硬体开发有着不小的差异,但首先碰到的都是CPU的选定。这里笔者会针对它们的异同处做说明,再来描述ARM CPU、指令、系统管理、开发实作训练平台(PreSoCes)、Linux与程式等,以建立SoC嵌入式系统的整体轮廓概念,并在实作
[单片机]
SoC前段(ARM)<font color='red'>嵌入式系统</font>开发实作(上)
借助创新电子设计平台实现FPGA嵌入式系统设计
FPGA问世已经超过20年,现在FPGA在复杂逻辑电路以及数字信号处理领域中扮演着越来越重要的角色,SoC以其低功耗、高性能、低成本、高可靠性等优点成为嵌入式系统的发展趋势。不过,对于很多设计者来讲这还是“新鲜事物”。学习并掌握一项新的技术或具备某种能力,比如学习FPGA开发技术并将其应用到实际系统中,这是一项艰巨任务。Altium Designer 提供了一种简单轻松的方法,可以帮助软/硬件工程师共同应对FPGA嵌入式系统开发的挑战。Altium designer拥有强大的嵌入式系统设计功能以及非常便捷的设计流程,它在FPGA 及嵌入式智能方面有如下优势: 1) 完整功能、统一的设计环境 a) 简单易用的FPG
[嵌入式]
新型嵌入式系统电源监控模块设计
嵌入式系统对供电电源要求比较严格.通常都需采用独立的稳压器件供电。在嵌入式系统硬件设计中,通常在电源模块的交流输入端为供电提供过压保护,但在直流输出端一般只是采用稳压器件为系统提供正常的供电,并提供一个发光二极管检测直流电压的有无,并未过多的考虑系统工作时电源模块输出电压是否准确以及能否让各种器件正常运行。针对这一现象,这里给出一种应用于某嵌入式系统的电源监控模块的设计方案以及具体的硬件实现。 2 系统整体设计思想 嵌入式系统中供电电压过高会损坏器件,而过低集成电路则导致系统无法正常工作。因此电源监控模块设计需遵循以下原则: (1)保护原则电压过高,必然会烧坏器件;有时,电压过低,由于系统设计的复杂性,可能不仅会影响器件的正
[电源管理]
基于嵌入式系统的I2C触摸屏设计
引言   随着计算机相关技术的发展,ARM是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等。ARM 公司是专门从事基于 RISC 技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的 ARM 微处理器核。嵌入式Linux系统具有开发源代码、内核稳定、可裁减性等特点,吸引着众多商业公司和自由软件开发者的目光,成为嵌入式系统领域不可或缺的操作系统之一。   1 电阻式触摸
[单片机]
基于<font color='red'>嵌入式系统</font>的I2C触摸屏设计
AVR单片机入门一:单片机嵌入式系统的结构
一、单片嵌入式系统的结构 单片嵌入式系统一般包含硬件与软件两个部分,而硬件部分又分为单片为控制芯片(即单片机)和外围电路,外围电路又分为基本系统电路与接口电路,接口电路又分为前向通道接口电路、后向通道接口电路、交互通道接口电路与数据通信接口电路。 1、基本系统电路 基本系统电路是指满足单片机系统运行所需的基本电路。比如时钟电路、复位电路、系统供电电路、驱动电路、扩展的存储器等。 2、前向通道接口电路主要是输入接口 前向通道接口电路主要是输入接口,通常是指各种物理量的测量传感器、变换器输入通道。常见的有传感器、信号调理器、模/数转换器ADC、开关输入、频率测量接口等。 3、后向通道接口电路主要是输出接口
[单片机]
利用Java良好的移植特性的FPGA可编程嵌入式系统
  传统的嵌入式产品只能实现某种特定的功能,不能满足用户可变的丰富多彩的应用需求。为解决这个问题,本文设计并实现了一种使用Java作为软件平台的基于FPGA的可编程嵌入式系统,以实现系统对多种本地应用和网络的支持。   1. 概述   传统的嵌入式系统设计的主要目标是找到一种优化的体系结构来完成单一的,特定的功能。对这样的系统来说,ASIC和核心处理器是作为特别的构件模块加以考虑的:设计者根据应用的要求选择适当的ASIC,根据给定的性能要求比如处理器主频,系统稳定性,以及对功耗的要求等选用适当的处理器内核。   然而,在当今移动通信已经进入每个人的生活的今天,现在的嵌入式系统比如PDA等已经不同于传统意义上的嵌入式系统了,它
[单片机]
利用Java良好的移植特性的FPGA可编程<font color='red'>嵌入式系统</font>
嵌入式系统学习笔记(6)——MCS51汇编语言程序设计
有汇编程序和反汇编程序,可以由机器语言得到汇编语言 不是所有都会默认从0000H开始,保险起见,还是要在开头用ORG 0000H,然后加一条跳转指令到程序存放起始地址 交叉汇编,在一台电脑上汇编,在另一台电脑上运行 注意,除了51单片机之外,其它单片机上电后PC值并不一定是0000H,所以需要根据实际情况放第一条指令的位置。此外,0003H到0023H是中断入口,所以第一条指令只能是0000H到0002H一共三个字节,LJMP指令恰好就是3个字节。跳转后的两个NOP是为了等外接芯片复位,因为外接芯片可能复位比51的CPU慢,这段时
[单片机]
<font color='red'>嵌入式系统</font>学习笔记(6)——MCS51汇编语言程序设计
SoPC与嵌入式系统软硬件协同设计
摘要 软硬件协同设计是电子系统复杂化后的一种设计新趋势,其中SoC和SoPC是这一趋势的典型代表。SoPC技术为系统芯片设计提供了一种更为方便、灵活和可靠的实现方式。在介绍系统级芯片设计技术的发展由来后,重点介绍SoPC设计系统芯片中的软硬件协同设计方法,并指出它比SoC实现方式所具有的优势。 关键词 嵌入式系统软硬件协同设计片上可编程系统(SoPC) 1 概述 20世纪90年代初,电子产品的开发出现两个显著的特点:产品深度复杂化和上市时限缩短。基于门级描述的电路级设计方法已经赶不上新形势的发展需要,于是基于系统级的设计方法开始进入人们的视野。随着半导体工艺技术的发展,特别是超深亚微米(VDSM,0.25μm)工艺
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved