EDN首页   博客首页

最新日志

发表于:2007/5/30 8:39:36
标签:中国电信计划对基于AVS的IPTV进行测试  降低对H264的依赖  

0

中国电信计划对基于AVS的IPTV进行测试 降低对H.264的依赖

中国电信计划对基于AVSIPTV进行测试 降低对H.264的依赖

 

转自:http://www.esmchina.com/ART_8800076669_43f72b93_no.HTM?click_from=1000007000,8644920285,2007-05-30,ESMCOL,ARTICLE_ALERT

 

有消息称,中国电信计划于下月在上海进行IPTV测试,测试将使用中国自主开发的数字音视频编解码标准(AVS)。测试规模会有多大还不得而知。但如果中国电信决定根据AVS对其IPTV平台进行标准化,则将是对H.264设备供应商的一大打击。

AVS是中国正在推动的一些国产标准中的一项。中国支持国产标准,以降低对外国知识产权的依赖。如果这项策略在长期来看获得成功,将会使专利费和其它费用掉头流向中国本地公司,并有助于增强中国的技术实力。

Analysys International的分析师称,2007年一季度,上海地区的IPTV用户增加到22万,增长率达到150%

市场调研公司iSuppli估计,到2008年中国将有360万个IPTV用户,到2010年将增长到1,740万个。

有些观察家认为在由H.264主宰的市场中,转向AVS没有太大意义,因为AVS不够成熟,转向AVS可能带来较高的成本。然而,H.264有一个向运营商收取专利费的软肋,而对运营商免费恰恰成为了中国提出的AVS音视频标准最大的亮点。

在此之前,中国电信部署的IPTV均采用在通信、广播和存储方面通用的全球标准H.264

目前,中国网已经在大连进行了采用AVS编解码标准的IPTV测试,效果与H.264相当。

中国网通计划在2007年底以前在20个城市采用基于AVSIPTV,并希望在五到七年内发展600万个基于AVSIPTV用户,相当于其现有宽带用户的40%

 

 

系统分类: 消费电子   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(559)
发表于:2007/4/27 23:05:11
标签:基金统计指标  

0

基金统计指标

     基金统计指标 

      在一些基金评级网站上,有成立一年以上基金的主要数据,从这些数据里面可以看出比单纯基金评级更多的信息。以中国晨星网站为例,无论你通过什么方式搜索到一个基金,都会有“风险评估”一栏。如果是1 只1 年以上的基金,也就是参加评级的基金,在这项里面会有6 个指标:平均回报、标准差、夏普比率、阿尔法系数、贝塔系数和R2。
      平均回报指标是按照今年到目前的数据去推算一年的总回报。一般说来,当然是总回报越大越好。
      标准差指标是表现基金增长率的波动情况,也就是平均涨跌幅度的变化。标准差越大,说明基金收益的变化越大,波动短期风险越大。
      夏普比率是综合了收益和风险的系数,基本上是收益除以风险。夏普比率高,也就是说在收益相同的情况下,波动较低;反之,在风险相同的情况下,收益较高,也就是高收益低风险。当然,收益小、风险也小的基金,很可能夏普比率也高,例如债券基金。所以,夏普比率一定要在同类基金中进行比较。
       阿尔法系数(琢)是代表基金能在多大程度上跑赢整个市场,当然是数值越大越好,也就是说,基金的收益能超越市场。
      贝塔系数(茁)也是表现基金相对于大盘指数的波动情况。如果是一个指数基金,那么贝塔系数就是1,因为指数基金是完全按照大盘情况来设置的。贝塔比1 大,说明基金比大盘波动还要大,也就是短期风险比大盘大;贝塔比1 小,说明比大盘波动小,风险比大盘小。
      R2 代表基金和大盘的相关性。如果是1,表示和大盘完全相关。其实,R2 和1 相差很大的话,贝塔系数就没有什么意义了。
      简单地说:平均回报和阿尔法都代表收益,当然是越大越好;标准差和贝塔代表波动,也就是短期风险,数值越小,基金表现得越平稳。夏普比率是收益和风险两者的综合,在收益或者风险相同时,这个数值越大越好。需要再次强调的是:我们必须在同类基金中进行比较,也就是相对于同样的资产组合标准。

系统分类: 自由话题   |    用户分类:    |    来源: 整理

评论(1) | 阅读(752)
发表于:2007/4/25 21:34:17
标签:MMU  MIPS  TLB  cache  

1

mips的内存管理学习

mips的内存管理学习
 
    今天又在学习TLBMMU,哎,本来以为只需要花几个小时就能彻底理解TLB并拿出比较好的的测试方法的,但是到今天为止,断断续续地搞了3天了,还是没有完全搞定,这个东西还真是比较烦人的,比起cache来说还另人头疼。理解和使用相差一大节。刚浏览网页时发现这个熟悉的知识,仔细一看到还是有不少地方讲得比较准确,尽管其写得比较通俗而且中英相杂。读后让我想起《see to mips》那本书。在网上有一个比较完整的中文版,联接如下:
http://nasiry.cnblogs.com/archive/2005/02/28/110357.html
本文引用来自:http://www.xtrj.org/mips/mips3.htm
系统计算研究所里确实有不少有用的东西,特别是处理器相关的知识,想想刚接触mips时,该网站给我带来不少收获。
原文如下:
对于MIPSMMUMemory Management, the first and yet important one we need always keep in mind is: No real-mode
没有实模式。这一点是MIPS CPU 的一个很重要的特点(或缺点)

我们会问了:BNN
Give me a break. Without CPU running in the real-mode,
how could you boot up a kernel? Well, here is the thing: Bydefault, MIPS architecture , when power on, has enabled/mapped two memory areas. In other words, those two memory areas are the places where your boot codes HAVE TO resident and run on top of. If you read the makefiles of MIPS linux source tree, you would easily find the infor. For example, 0x8000xxxx or some things like that.
MIPS 存储体系结构
我们在这里不谈64CPU,只谈32位的。
MIPS将存储空间划分为4大块--kuseg, kseg0,kseg1 and kseg2.
------------------------------------------------------------------
0xFFFF FFFF
mapped kseg2
0xC000 0000
unmapped uncached kseg1
0xA000 0000
unmapped cached kseg0
0x8000 0000
2G kuseg
0x0000 0000
------------------------------------------------------------------
对于上述图表,弟兄们要记住以下几点:

*
当开电(Power On)的时候,只有kseg0 and kseg1 是可以存取的。

*kseg0 512M(From 0x8000 0000 to 0xA000 0000) are DIRECTLY mapped to physical memory ranging from 0x0000 0000 to 0x2000 0000, with cache-able(either write back or write through, which is decided by SR(Status Register of MIPS CPU)
*kseg1 512M(From 0xA000 0000 to 0xC000 0000) are (also) DIRECTLy mapped to physical memory ranging from 0x0000 0000 t0 0x2000 0000, with non-cachable.
以上两点对于理解MIPS OS的启动是至关重要的。细心的读者会发现:kseg1有点象其他CPUreal-mode方式。
*(
虚拟)地址from 0x0000 0000 to 0x8000 0000 是不可以存取的,在加电时
(POWERON)!必须等到MMU TLB初始化之后才可以。
*
同理对地址
from 0xC000 0000 to 0xFFFF 0000
*MIPS
CPU运行有3个态
--User Mode; Supervisor Mode and Kernel Mode.For simplicity, let's just talk about User Mode and Kernel Mode. Please always keep this in mind:
CPU can ONLY access kuseg memory area when running in User Mode
CPU MUST be in kernel mode or supervisor mode when visiting kseg0, kseg1 and kseg2 memory area.
* MMU TLB
MIPS CPU
通过TLB translates all virtual addresses generated by the CPU.
于这一点,这里不多废话。
下面谈谈ASID(Address Space Identifier). Basically, ASID, plus the VA(Virtual Address) are composed of the primary key of an TLB entry. 换句话说,虚拟
地址本身是不能唯一,确定一个TLB entry的。一般而言,ASID的值就是相应的process ID.
Note that ASID can minimized TLB re-loads, since several TLB entries can have the same virtual page number, but different ASID's.
对于一个多任务操
作系统来讲,每个任务都有自己的4G虚拟空间,但是有自己的ASID
MMU 控制寄存器
对于一个Kernel Engineer来说,对MMU的处理主要是通过MMU的一些控制寄存器来完成的。
MIPS体系结构中集成了一个叫做System Control Coprocessor (CP0)的部件。CP0就是我们常说的MMU控制器。在CP0中,除了TLB entry(例如,对RM5200,有48pair,96TLB entry),一些控制寄存器提供给OS KERNEL来控制MMU的行为。
每个CP0控制寄存器都对应一个唯一的寄存器号。MIPS提供特殊的指令来对CP0进行操作。
mfc0 reg. CP0_REG
mtc0 reg. CP0_REG
我们通过上述的两条指令来把一个GPR寄存器的值assign给一个CP0寄存器,从而达到控制MMU的目的。
下面简单介绍几个与TLB相关的CP0控制寄存器。
Index Register
这个寄存器是用来指定TLB entry的,当你进行TLB读写的时候。我们已经知道,例如,MIPS R5提供了48TLB pair,所以index寄存器的值是从047。换句话说,每次TLB写的行为是对一个pair发生的。这一点是与其他的CPU MMU TLB 读写不同的。


EntryLo0, EntryLo1
这两个寄存器是用来specify 一个TLB pair的偶(even)和奇(odd)物理(Physical)页面地址。
一定要注意的是:
EntryLo0 is used for even pages; EntryLo1 is used for odd pages.Otherwise, the MMU will get exception fault.

Entry Hi
Entry Hi
寄存器存放VPN2,或一个TLB的虚拟地址部分。注意的是:ASID value也是在这里被体现。


Page Mask
MIPS TLB
提供可变大小的TLB地址映射。一个PAGE可以是4K16K64K256K1M4M16M。这种可变PAGE SIZE提供了很好的灵活性,特别是对Embedded System Software. 对于Embedded System Softare,一个很大的区别就是:不允许大量的
Page Fault.这一点是传统OSGeneral OSEmbedded OS上的致命缺陷。也是为什么POSIX 1B的目的所在。传统OS存储管理的一个原则就是:Page On Demand.这对大多Embedded System是不允许的。 For embedded system,往往是需要在系统初始化的时刻就对所有的存储进行configuration, 以确保在系统运行时不会有Page Fault.

上述几个寄存器除了MAP一个虚拟页面之外,还包括设置一个页面的属性。其中包括:

writable or not; invalide or not; cache write back or write through
下面简单谈谈MIPSJTLB

MIPS中,如R5000 JTLB is provided. JTLB stands for Joint TLB. 什么意思呢?就是

TLB buffer
中包含的mixed Instruction and Data TLB 映射。有的CPUInstruction TLB Data TLB buffer 是分开的。

当然MIPS(R5000)确实还有两个小的,分开的Instruction TLBData TLB。但其大小很小。主要是为了Performance,而且是对系统软件透明的。

在这里再谈谈MMU TLBCPU Level 1 Cache的关系。

我们知道,MIPS,或大多数CPU,的Level 1 Cache都是采用Virtually Indexed and Physicall tagged. 通过这个机制,OS就不需要在每次进程切换的时候去flush CACHE。为什么呢?

举一个例子吧:

进程A的一个虚拟地址Addr1,其对应的物理地址是addre1

进程B的一个虚拟地址Addr1,其对应的物理地址是
addre2;
在某个时刻,进程A在运行中,并且Addr1Level 1 CACHE中。

这时候,
OS does a context swith and bring process B up, having process A sleep. Now, let's assume that the first instruction/data fetch process B does is to access its own virtual address Addr1.
这时候CPU会错误的把进程ALevel 1中的Addr1addr1返回给CPU吗?

我们的回答应该是:不会的。

原因是:

当进程切换时,OS会将进程BASIDPID填入ASID寄存器中。请记住:对TLB的访问,(ASID + VPN)才是
Primary Key.
由于MIPSCACHE属性是Virtually Indexed, Physically tagged.所以,任何地址的访问,CPU都会
issue the request to MMU for TLB translation to get the correct physical address, which then will be used for level cache matching.
与此同时,CPU会把虚拟地址信号传给Level 1 Cache 控制器。然后,我们必须等待MMUPhysical Address数据。只有physical tag也 匹配上了,我们才能说一个:
Cache Hit.
所以,我们不需要担心不同的进程有相同的虚拟地址的事情。

弟兄们可以重温一下我们讲过的
Direct Mapped; Full Associative, and Set Associative.
从而理解为什么Cache中可以存在多个具有相同虚拟地址的entry. For example,the above Addr1 for proccess A and Addr1 for process B.

系统分类: 嵌入式   |    用户分类:    |    来源: 整理

评论(0) | 阅读(2119)
发表于:2007/4/24 13:04:43
标签:MIPS  ARM  ICT  

0

MIPS:处理器架构/IP应该干净、简洁

MIPS:处理器架构/IP应该干净、简洁

转自: http://www.eepw.com.cn/news/show.aspx?ClassID=128&ArticleID=48184

MIPS是公司名,又是架构和生态环境名。在32/64位市场,MIPS举足轻重。329MIPS 科技首席执行官 John Bourgoin 先生、首席技术官Mike Uhler 先生访华,发布与STM合作消息。值此机会,记者更近地走近了MIPS及其架构

  与ST合作细节是:STM已授权使用 MIPS 科技的 64 位架构,用于STM与中科院计算所(ICT)的龙芯生产。由STM进行兼容性检测,ICT的设计将经过MIPS Verified
 
  MIPS64 架构为强大、高性能的 MIPS处理器提供了重要基础,并为 MIPS32 架构带来了向上兼容性。MIPS架构有3P优势,即价格、性能、功耗。目前,已有包括 BroadcomNEC等十余家厂商,将该技术应用于各种消费产品和网络应用。

  MIPS目前的战略是:在MIPS营造的生态系统中,重要的是吸引第三方,付费支持第三方的某一方面。被授权的定制化的用户有不同的选择,可以用不同的指令和配置或优化,或另搞自己的指令集。

  MIPS历史可追溯到1984年斯坦福大学校长John Hennessy 研发出跨时代的 RISC (精简指令集计算机),并与几位合伙人创立了该公司。80年代曾被工作站/服务器厂商SGI公司收购为子公司,1998年从SGI独立,成为嵌入式公司,目前有300多家公司,130多个授权。使用该架构的,主要有32位和64位(视频游戏、数据传输和打印机。)。

  第一款是34K2004年第一次授权。2005年英先生领导下开发出第一个双实科技为第一个授权培训中心。签署了25家客户。这是我们在中国授权的公司。

  提问:MIPS 的架构从 90 年代开始推出基于工作站的产品。请问 MIPS 是如何紧跟市场变化的快节奏,为市场提供灵活性?

  MIPS 科技首席执行总裁 John Bourgoin (以下简称 JB):刚才在幻灯片中讲到了我们市场成功在什么地方,但这跟工作站市场是很不一样的。工作站市场的特点是不惜成本地要求高性能。当然我们这个架构也可以达到这种要求。例如ICT的胡为武研究院他们所作的龙芯。但是 MIPS 卖的内核非常小,有些只有十分之几平方毫米大,成本很低,非常适合消费市场。我们的产品范围很广,从低成本到的相对高性能而低成本的产品。

  提问:刚才您提到 MIPS 在数字电视、DVD 等消费市场中的领袖地位。我想了解,你们是如何衡量 MIPS 的市场份额的?通过统计客户数量还是商业策略?

  JB:最简单的衡量 IP 市场份额方式是通过单位份额。因为 IP 会用到各种大的芯片上,而价值取决于尺寸的大小。所以如果单纯将芯片的销售数量作为衡量 IP 市场份额的标准的话,是非常误导的。因此,我们把单位份额作为衡量我们整体市场份额的最准确标准。另外一种方式是通过将 MIPS 与竞争对手在同一个市场的销售额进行比较,但是这种数据是很难获得的。这就是为什么我们偏向用单位份额。

  提问:MIPS 为什么不直接跟ICT合作授权?MIPS 上海的研发中心的规模和未来发展战略是什么?

  JB:先来回答第一个问题。我们是通过与意法半导体合作。因为意法半导体拥有设备完善的生产工厂,先进的技术和销售渠道。这些与 ICT 的设计能力是非常好的搭配。整个项目以我们三方团队合作的方式进展的非常好。我们认为这是最佳的合作方式。

  MIPS 科技上海总经理何英伟(以下简称何):MIPS上海的研发中心一共有 8个工程师。还要扩大队伍。我们刚搬到新的办公室。我们现在研发的是硬核,那么我们的产品主要是除了架构之外,还有内核,我们内核分成软核和硬核。上海研发的主要是硬核,从低端,中端到高端。因为硬核在中国市场还是比较受欢迎的。

  JB:有一点我想补充的是,请大家不要误解,MIPS 是什么样的公司,提供什么样的产品。我们提供设计的权利,就像我们授权给意法半导体和中科院计算机所一样,通常生产出的产品是特点各异的。另外我们还提供内核。因此,MIPS 有授权 IP 和提供内核两方面,我们认为这两方面都很重要。

  提问:国内有超过 30 家半导体公司,他们的注册资本也就一百万元人民币左右,因此非常关心成本问题。MIPS 是如何看待和处理这个成本问题的?

  JB:看待成本的问题有几种不同的途径,首先是授权费。因此针对这些资金有限的小公司,我们会向他们授权硬核,或者同等的硬核,价格当然就相当便宜了。

  另一种看待成本的方式是芯片本身的成本。在消费电子市场中,假如你销售一千万甚至更多产品,芯片本身的成本加起来在整体成本中就显得很重要了。MIPS 的内核有尺寸上的优势,同样的性能水平下,我们的内核通常比其他竞争对手的小 30%。这样本身占用的材料就比较少。因此这就是为什么 MIPS 在很多低端产品市场业绩很突出。

  提问:现在市场上好像有一些公司推出了可配置处理器这种架构,他们强调说他们在灵活性和成本上是很有优势的,我想请您评价一下这个情况。

  JB:可配置性可以代表好几种意思。我刚才讲到的将 TOB(用料单)、或像代码压缩这样的各种功能放到芯片上的能力。但是当像艾科创新微电子或 Tensilica 这样的公司谈到可配置性的时候,他们指的是以一种我们叫特定应用扩展(ASE)的方式加入专门的指示。因此你是有可能生产具有这种功能的高性能产品。但是问题是,你也得一代一代不断升级这种专门的软件,这样成本是非常高的。

  因此,可配置所谓的灵活性产品,是有一定的市场,但是这不会对 MIPS 处理器的通用能力造成威胁。当然也会有一些 MIPS 的用户会利用这种可配置性,这也对我们无伤大雅。

  提问:MIPSARM架构有什么异同?这两家公司市场定位区别在哪里?

  MIPS 科技首席技术官 Michael Uhler (以下简称 MU):MIPS ARM 的架构最本质的一个差别就是 MIPS 的架构更加干净,这从我们 1984 开始研发架构以来到现在经受的考验就可以看出来。MIPS 架构的实施比 ARM 的更小、更快。最重要的原因就是我们的更清洁、干净。

  JB:简单介绍一下两家公司的市场定位差别。ARM 在手机市场中做的非常出色,这也归功于ARMTI、诺基亚等公司在 90 年代打下的坚实基础。另外,ARM 公司它受欢迎的主要一个原因,就是功耗非常低,但事实上是,MIPS 的处理器的功耗也非常低,而且也是可配置的。但是我们重点是放在高性能市场上,虽然我们在另两个 P Price 价格、Power 功耗)上做的也很好。主要是因为我们瞄准的市场都是高性能的产品,例如数字电视、机顶盒、视频游戏、网络、打印机等等。

  另外有一点也可以针对你的问题,就是硬核和软核之间的区别。软核是一种针对产品的功能和性能的高级描述性语言,也是逻辑性的描述。硬核主要是把这个描述语言拿出来放到通常叫做 GDSII 的物理水平来写,这种格式事实上可以直接写一个掩码。

  提问:在中国市场 MIPS 的软核和硬核的市场份额各是多少?贵公司05年第二、第三季度出现了一个明显的增长,是什么原因?

  JB:关于硬核和软核的市场份额我现在没法告诉你确切的数字,但是总体来讲硬核的市场份额比软核的多。

  刚刚 Michael 提醒我了,在 2004 财年末尾时,我们推出了 24K 系列,这是我们历史上最成功的一款产品。他们很快因为其优异的性能、超小的尺寸而大受欢迎。我相信这对我们那段时间飞速发展发挥了不可忽视的作用。

  提问:IC 授权商和内核授权商的业务模式如何和谐并存?

  JB:简单的回答就是它们服务的市场不同,IC 授权商或设计授权商瞄准的是专业化的或者高性能的市场,对于这些市场,我们不提供我们的内核。因此我们追求的市场不一样。我在刚才的演讲中提到了,很多时候,IC 授权商或设计授权商,他们也授权用我们的内核,因为虽然他们瞄准不同的市场,但是他们希望有能力在共同的基础设施上服务这些市场。我想再加一点,我们今天谈的很多公司,为了推广他们的解决方案,他们都把 IP 授权看成是必须做的一部分,特别是在必须建立一个生态系统的情况下。

  提问:在 IP 授权上,与 ARM 公司相比,MIPS 的授权有什么特别的地方?

  JB:从授权的模式来讲没有太多的不同,主要是根据不同的客户而有差别。ARM 有相当大的客户群,但并不是提供 IP 处理器,而是设计服务、工具、以及一些并行 IP,这些 MIPS 都不提供,而是由我们的第三方合作伙伴来提供。

  提问:ICT龙芯为何选择MIPS架构?

  中科院胡为武博士:首先从技术角度讲 MIPS 的架构是非常干净的架构,非常易于实现。还要弄清一个问题,就是通用,通用意思是说它既可以使用在嵌入式设备,也可以用在服务器等其他高性能技术应用上,ARM 在这方面不一样。

  另外我认为更重要的是 MIPS 架构实现的效率非常高,而且非常容易开展高性能的实现,我们在此之前进行很多风险的比较和分析,我们认为 MIPS 是最佳的选择。

  另外在很多教学的环境下,研究生的教学都可以使用 MIPS 的这种架构。

  还有一点是最重要的,就是 MIPS 的业务模型是非常开放的,它鼓励厂商来设计自己的 CPU,这跟其他的架构不一样。

  我想强调一下,因为 MIPS 业务是非常开放的,它就是设定一个指令,你自己去实现,你怎么实现都行,就是说MIPS鼓励你去实现,因为这个业务模式如果它说你必须用我的核来实现,那不行。MIPS 鼓励你去设计,指令系统就是编码,设计自己的 CPU。但比如说有些公司他只卖芯片,不允许别人用我的指令系统来实现。因此我们经常有一种说法叫做 “MIPS CPU里面的 Linux”

  另外我想说,如果你跟 MIPS 公司签署合作合同的话,你就加入到了它的授权商联盟。现在中科院计算所、意法半导体与 MIPS 一起合作,我们可以使用由 MIPS 其他授权商比如德州仪器提供的专利,当然他们也可以用我们的专利。

  JB:我有点想补充,MIPS 提供的与内核实现相关的知识产权保护是面向整个 MIPS 社区的,并不是说专门指代TI的专利。这种举措的价值很大,MIPS 授权商确实从这种保护获得了很多好处。

  另外我想补充一下博士刚才的发言。从长远来说,开放架构非常重要。因为开放的架构能吸引全球最优秀的设计团队。就是因为它能吸引优秀的设计团队,它也就能吸引优秀的第三方合作伙伴。第三方合作伙伴就可以提供很多产品。这样一来参与使用架构的厂商越多,支持的范围也就越广泛,最终我们就能在市场上产生更大的影响力,占有更大的市场份额。这就是我们的战略,这就是我们为什么认为 MIPS 的架构将在未来独领风骚,就像在过去 20 年中一直保持领先的地位一样。今天我非常高兴又有这么一个优秀的设计团队加入到了我们的队伍。

 

系统分类: 嵌入式   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(1124)
发表于:2007/4/20 21:27:40
标签:数字电视厂商及解决方案全景大扫描  

0

数字电视厂商及解决方案全景大扫描

数字电视厂商及解决方案全景大扫描

http://www.ed-china.com/ART_8800019993_400002_500018_OT_E8EA88DB.HTM?click_from=2100001510,8000013471,2007-04-20,EDCOL,ARTICLEALERT

目前世界上大多数的国家和地区都制定了数字电视实现的时间表,数字电视的普及趋势不可逆转。世界上主要的数字电视标准包括以美国为代表的ATSC、以欧洲为代表的DVB-T、日本的ISDB-T、去年8月公布的中国地面数字电视传播标准DMB-TH和有线网络数字电视DVB-C以及卫星数字电视DVB-S

从不同的角度切入,数字电视可做以下分类:1.按信号传输方式分类:可分为地面无线传输(地面数字电视)、卫星传输(卫星数字电视)、有线传输(有线数字电视)三类。2.按产品类型分类:可分为数字电视显示器、数字电视机顶盒、一体化数字电视接收机。3.按清晰度分类:可分为低清晰度数字电视(图像水平清晰度大于250线)、标准清晰度数字电视(图像水平清晰度大于500线)、高清晰度数字电视(图像水平清晰度大于800线,即HDTV)

目前在数字电视领域,主CPU、传输码流(TS)解复用、MPEG解码、模拟彩色解调、视频信号处理、图像显示处理等功能均可集成进一块芯片中,甚至数字电视信号解调解码、模拟电视信号解调、HDMI接收、模拟分量视频信号(YPrPb)/RGB接收、音频信号解码也可以一并集成进单芯片,而芯片工艺可达到90纳米,甚至65纳米技术水平。除了基本数字电视功能以外,高清数字电视还将集成进更多的功能接口,诸如USBSMART Card1394/iLINKSATA、网络接口以及H.264/VC1解码功能。

每台数字电视里大约有5-7颗主要芯片。主要的芯片包括数字信号调谐、数字信号解调、MPEG解码、后段图像处理和内存。这些芯片可以全部位于数字电视机里(数字电视一体机),也可以分别位于数字电视机顶盒和电视机中。

1.调谐器: 调谐器并非是一颗IC,而是一个模块,通常是铁盒(CAN)封装,俗称高频头,而2004年底业界开发出了硅调谐器,取代铁盒封装,是目前调谐器产品的主流。各个不同的数字电视标准需要不同规格的调谐器。该领域的主要厂家有MicrotuneAnadigicsALPSXceiveFreescaleRF Magic。而ST主攻机顶盒领域调谐器,Broadcom主攻卫星电视领域调谐器。

2.解调器,这是技术含量最高的部分,门槛较高。现在也有厂家将调谐器和解调芯片封装成一个模块,但单独的解调器还是主流。这个领域主要的厂家包括IntelDiBcomFrontier SiliconNXP DibcomSianoSamsung

英特尔是在200510月收购加拿大Zarlink公司的英国无线前端消费类电子业务分部才获得此项技术的。英特尔是此领域公认的龙头厂家。

DiBcom是一家法国厂家,擅长移动DVB-T信号的解调,也就是手机电视DVB-H,DiBcom技术经验丰富,在高速演算、频道的判断架构,及抗多卜勒效应(Doppler compensation)等方面拥有多项专利技术。其产品大多使用于汽车环境,对于高速行驶中讯号接收能力极佳。不仅具有低功耗的优势,即使车速超过每小时100英哩,仍能稳定接收讯号。

3.数字电视的MPEG解码。目前主要是MPEG2解码,MPEG4H.264解码很快也会被添加进去。数字电视用的MPEG2解码和DVD机里的MPEG2解码相差不大,不过数字电视的性能更优秀一些,运算速率更高,缓存更大。DVD机目前多是单片设计,而数字电视的MPEG2解码基本上都是单独出现的。

意法半导体在MPEG解码领域是最强的厂家,1995年就推出全球第一片MPEG2解码芯片。MPEG解码芯片的技术门槛不高,关键是成本控制问题,而成本控制关键的是集成度,意法半导体在这方面最成功,已经推出65纳米的MPEG2解码样片。

单独的MPEG-2厂家很少,目前的发展趋势是MPEG2解码集成到电视控制IC中。独立的MPEG-2解码IC主要针对机顶盒市场,此领域厂家有意法半导体、美国的ATI和卓然、日本的富士通、中国台湾的其乐达、凌阳和中国大陆的海尔。

4.显示处理芯片IC。该领域几乎所有的日本厂家都自己完成芯片的开发。而为除日本厂家外的其他厂家提供此芯片的公司主要有GnesisPixelworksTrident、意法半导体、Micronas、东芝、NXPATI、晨星和联发科等。

5.电源管理芯片。该领域的的半导体厂家有飞兆、IntersilNXP、安森美、TI、昂宝等。

2反映了整个数字电视产业的构成情况。产业链中有STTINXP这样的提供数字电视芯片的芯片供应商,也伴随着有为这些芯片公司提供服务的软件厂商,如Esmertec。而这些芯片供应商有可能单独将芯片提供给数字电视机顶盒或者一体机的OEM厂商,也更有可能将来自软件公司的服务和自身的芯片一起做成解决方案提供给OEM厂商。芯片厂商同时也会将自己的产品用以上两种形式提供给分销商或者大量的第三方设计公司,然后再由他们附加价值后提供给OEM厂商,最终终端用户通过由OEM厂商出品的数字电视机顶盒或者一体机享受由内容供应商和服务供应商提供的丰富多彩的数字电视节目。在每一个领域内都活跃着一些各具特色的公司,接下来我们将为您一一介绍。

1.芯片提供商主要

ST
意法半导体(ST)的高清数字电视解决方案包括数字电视接收嵌入式解决方案及单芯片解决方案。产品线涵盖了数字解调器、视频信号处理器、调谐器、外设功能IC和音/视频开关等。

在数字电视接收嵌入式解决方案中,数字一体化调谐器包括数字射频频率调谐和信道解码两部分,从接收到的数字电视射频信号解调输出标准的MPEG传输码流信号。未特殊加密的MPEG码流直接输入到ST数字电视信号解码芯片中进行处理;对于特殊加密的MPEG码流,首先输入到CI卡回路进行解密,再将码流直接输入ST数字电视信号解码系统芯片进行处理。经ST数字电视信号解码系统芯片的MPEG解码和信号编码,AD变换输出模拟YPRPB和立体声音频信号,到已有的模拟电视系统显示数字电视图像,从而构成完整的液晶高清数字电视。

ST数字电视单片系统芯片及附带的FLASH/DDR SDRAM存储器,外围的数模一体化调谐器、模拟开关芯片、HDMI/YPrPb/VGA输入处理芯片、液晶屏、伴音处理芯片、音频放大电路、扬声器、CI卡电路,以及键盘/遥控接收,共同组成液晶高清数字电视接收系统。

TI
作为DLP技术的主要倡导者,TI的产品线主要以视频解码器为主。TI除了常规的数字电视芯片还拥有名为Hollywood的单芯片的移动数字电视解决方案。Hollywood包含两款芯片:DTV1000DTV1001芯片。DTV1000支持DVB-H,工作频率范围为470-750MHz(UHF)以及1.670-1.675GHz(L-band);而DTV1001支持ISDB-T“one-segment”,工作频率范围为470-770MHz。二者最小占位面积均不到1cm2,相比调谐器、解调器及外部存储器三者分离的解决方案可节省更多占板面积。DTV100X可支持多个并行电视频道的视频基本流(elementary stream)传输,频道切换时间少于1.5秒。

NXP
飞利浦在模拟电视时代就是电视领域内的领导厂商之一。脱胎于飞利浦芯片部门的NXP在数字电视领域有很深的技术积淀,具有宽广的产品线,针对高中低端市场都有相应的解决方案。 其单芯片方案TV210D50-60Hz CRT电视也能具备接收数字信号的能力,该芯片还提供动态画面管理功能,能实现优秀的画面。针对DVB-T市场有TV505D参考设计,针对ATSC市场有基于其NEXPERIA处理器的中端集成型解决方案TV810和主流集成型液晶电视解决方案TV520

ATI
ATI
可以提供各个标准的数字电视机顶盒芯片,同时也可以提供数字电视一体机芯片,也生产数字电视调谐器。ATI推出了Xilleon系列的数字电视芯片。其中Xilleon226ATI第三代的数字电视芯片,其包含一个300MHzCPU,双高清解码器、双音频解码、支持多标准的CA,支持USB/EIDE/Serial/IR/PCI接口。Xilleon 210VC配备ATSCQAM以及NTSC信号等解码功能,有条件接收(CA),多路分配器,扫描线转换,IP转换,以及显示菜单用的2维和3维图形处理功能。Xilleon 210H是一款DVB高清数字电视芯片、Xilleon 210D是一款DVB标清数字电视芯片。Xilleon 240S/H是理想的低成本ATSC数字电视芯片,依然支持NTSC制式的模拟信号输入,具有高清或标清的MPEG-2解码功能。而较高端的Xilleon具有最快处理速度的500M-600Mhz CPU,存储带宽高达5GB/S,支持世界范围内的模拟视频和音频信号(NTSCPAL),进一步支持USB2.0接口和SD卡及记忆棒。ATI还可提供数字电视的前端解调器,包括THEATER 313/310NXT2003/2004

MTK
联发科先后推出符合美规、欧规的数字电视芯片,主要提供HDMIMPEG解码器与图象处理芯片,搭配其它芯片厂的De-ModulatorTuner出货;另外,联发科将推出更高整合度的数字电视单芯片,进一步将MPEG2 DecoderDe-ModulatorTV Controller整合,最后只剩Tuner外挂。 联发科最大的特点在于,它不仅能提供数字电视芯片还能够提供Turn key的解决方案,该模式受到了众多OEM厂商的欢迎。

Genesis
Genesis
PūrVIEW HD系列DTV控制器提供了灵活、性价比高的解决方案。其主要针对采用ATSC/DVB标准的国家和地区,提供MPEG-2解码,支持杜比环绕(AC3)MP3等其它音频,输出分辨率可以支持WUXGA/1080P

Trident
Trident
是业界领先的数字电视处理SOC芯片供应商。近期Trident推出了第五代数字视频处理SOC芯片-SVP EX以及用于HDTV系统的HiDTV芯片。其最新推出的TV-Master是一个高度整合的,高速USB2.0的方便便捷的电视图像捕获设备,给基于PC机或笔记本电脑看电视提供一个低成本的解决方案。TV-Master这个单颗的IC整合了两通道16Bit音频ADC,两通道10Bit2D梳状滤波器的高性能的视频解码器(video decoders)以及一个内嵌的MCU

Pixelworks
Pixelworks
是一家为数字电视厂家提供系统级芯片和软件的半导体公司。其在SOC芯片上集成了微处理器、存储器和图像处理器,通过优化和处理视频信号,获得高质量的显示效果。其拥有一项名为DNX(Digital Natural Expression)的核心电视技术,可以典型的提高视频图像的质量,获得清晰、自然和高清的图像。该技术包括运动自适应去隔行算法、像素增强、丰富的色彩处理、视频图像增强、数字降噪、精密缩放数字偏转控制等。其媒体处理芯片系列包括PWM2000PWM2020PWM2030

卓然
卓然数字电视领域内成长性很强的一家公司,其专长在于可以通过全面的平台参考设计、完善的软件以及专业支持团队,实现对数字机顶盒产品持续不断的创新。其SupraTV处理器用于众多制造商的数字机顶盒产品,而SupraHD处理器被用于很多知名品牌的数字电视产品。

希图视鼎
希图视鼎是位于中国北京的一家音视频编解码芯片设计公司。其推出的CC1100 SoC集成了350MHz RISC处理器,256位的向量处理器,Motion Estimation引擎和Entropy引擎可编程模块,以及DDRII-667控制器,具有DACPCI-E, SATA, USB2.0 OTGSDIO等外设接口。它支持MPEG-2H.264, MPEG-4.2, VC-1, RMFlashMJEPG等多视频格式的编解码及转码。

Vivace
Vivace(
芯慧同用)通过对自定义处理器、高集成化固件以及硅验证IP的结合, 正努力创造出高性能芯片,满足媒体处理器的高标准要求。芯慧同用半导体芯片可支持包括 H264/MPEG4 AVC, MPEG4 ASP, Windows Media 9, MPEG2VC-1 在内的多种视频压缩标准和包括AES, DES, 3-DESDVB CSA在内的多种解码标准。其出品的VSP300芯片是下一代高清集成数字电视的理想设备。 高性能解决方案将高质量视频集成入平台,支持无线接入高清晰流。VSP300支持多种数据标准和数字版权管理标准(DRM),并拥有完整的应用程序库。VSP300 运行Linux Windows CE 操作系统,具备完整的开发环境。

2.第三方设计公司:
随着产业分工的进一步细化,和出于成本以及产品面市速度的多方面考虑,数字电视领域也活跃着一批第三方设计公司。比如深圳英诺(Innor)科技公司就是一家主要基于TIZoranSTPhilips的芯片进行数字电视系统设计的第三方设计公司。而北京时代飞腾技术有限公司也是活跃在该领域的一家第三方设计公司,其前身是隶属于TI的应用设计开发公司北京长信嘉实业有限公司,时代飞腾基于TI达芬奇平台的解决方案已经应用于创维集团的高清电视当中。而上海全景数字技术有限公司是另一家基于TI芯片开发高清电视解决方案的设计公司。

分销商:
科通通信代理博通的机顶盒芯片。大联大旗下的世平则代理NXP的硅调谐器,而艾睿和安富利代理ST的数字电视芯片。一些分销商在代理元器件的同时,也会推出自己与元器件应用相关的解决方案,以促进元器件的销售和扩大自己的产品线。比如世健系统就拥有基于Pixworks的数字电视方案。

3.OEM
创维、康佳、长虹、TCL等企业是其中的代表,他们出产了大量的数字电视机顶盒,也正积极地同机卡分离方案提供商合作推出数字电视一体机。国微半导体公司可以提供符合DTV-CI标准的CAM卡,同时开发符合中视科技规范的机卡分离的一体机模块。

最后值得一提的是在数字电视领域涌现出了一批本土的芯片公司,他们有同洲电子、杭州国芯、奇码科技、复旦微纳、凌讯科技、海思半导体、北京海尔等。

展望未来广播电视的数字化绝不仅仅是机顶盒置换这么简单,从目前的发展情况来看,双向化,交互式和与互联网的融合成为市场和产品的主要趋势。无论是机顶盒老牌厂家ST,还是从IT领域杀入的新军ATI,或者是从中型设计公司进步到大公司的Zoran,他们的产品都伴随着更高的图像清晰度,更多的媒体接口,更好的交互功能和更完善的网络通讯功能。在这些技术提供商和相关服务提供商的推动下,数字电视不仅能够给消费者带来更多更清晰的节目,而且能够提供给消费者一个个性化的、互动的家庭多媒体信息平台。而服务提供商也能够通过这一覆盖率最高的互动平台,真实深刻地了解到不同消费群体的需求,提供最大可能的,满足不同人群的商业机会。

 

 

系统分类: 消费电子   |    用户分类:    |    来源: 转贴

评论(1) | 阅读(1481)
发表于:2007/4/19 22:52:50
标签:噪音与接地问题  

1

噪音与接地问题

噪音与接地问题

   地与电(信号),这是一对形影不离的双胞胎。接地,通常是指用导体大地相连。可在电子技术中的地,可能就与大地毫不相关,它只是电路中的一等电位面。如收音机、电视机中的地,它只是接收机线路里的一电位基准点。接地,在电力和电子技术中,既简单,又复杂,而且还必不可少。按接地的作用,可分为工作接地、保护接地、过压保护接地、防静电接地、屏蔽接地、信号地等多种。在广电技术中,以上几种接地类型都会遇到。现就结合实际对某些接地技术问题作一阐述。
    一.保护接地
    保护接地是为防止绝缘损坏造成设备带电危及人身安全而设置的保护装置,它有接地与接零两种方式。按电力规定,凡采用三相四线供电的系统,由于中性线接地,所以应采用接零方式,而把设备的金属外壳通过导体接至零线上,而不允许将设备外壳直接接地。这在广电系统的配电房中的开关设备,中央空调机、发射机等电源开关设备和大耗电设备中尤为常见。在规划设计时,应从地网中引出接地母线至各设备上,再将机器外壳用导体连至接地母线上。值得指出的是:接地线应接在设备的接地专用端子上,另一端最好使用焊接。
    有时设备外壳会麻手,这是由于交流漏电而设备外壳没接零造成的。一般可将电源插头拔出调换一下位置再插入即可解决。这在一些常移动的编录设备中,由于接零线常常被忽略,操作人员有的可能会双手同时接触接零和不接零的设备,就有可能发生上述现象。
    二. 过压保护接地
    这是为防雷电而设置的接地保护装置。防雷装置最广泛使用的是避雷针和避雷器。避雷针通过铁塔或建筑物钢筋入地,避雷器则通过专用地线入地。避雷器每年雷雨季节来临之前须检验,以防失效。如我台的热线电话接入器遭雷击,就是因话线防雷器失效所致。在防雷引下线上,绝不要连接其他设备的地线,防雷引下线只能单独直接入地,否则雷电会通过引下线损坏其他设备。如某台卫星电视接收机曾数次遭雷击,其原困是馈线与房顶金属护栏摩擦而绝缘损坏,而金属护栏与避雷针引下体焊在一起,以至雷电窜入而击坏接收机。
    三. 屏蔽地
    为防止电磁感应而对视、音频线的屏蔽金属外皮、电子设备的金属外壳、屏蔽罩、建筑物的金属屏蔽网(如测灵敏度、选择性等指标的屏蔽室)进行接地的一种防护措施。在所有接地中,屏蔽地最复杂,有种说不清,道不明的感觉。因为屏蔽本身既可防外界干扰,又可能通过它对外界构成干扰,而在设备内各元器件之间也须防电磁干扰,如大家熟知的中周外壳、电子管屏蔽罩就是例子。 

     屏蔽不良、接地不当会引起干扰,这些干扰主要有:
    1.交流干扰,这主要由交流电源引起。对交流干扰的防护,通常对电源进行滤波或在电源变压器初次级间加屏蔽层并接地。在大的杂散电磁场外,为防电磁干扰进行屏蔽接地十分必要。例如,我市新亚新商城开工典礼时,录扩设备附近有台变压器,其电磁场就干扰现场的录扩音。后通过把录扩设备屏蔽接地,解决了这一问题。
    2.高频干扰。这类干扰来自各类无线发射台的变频或超变频信号,它们窜入电子设备后在机内得到非正常解调而形成声频干扰。
    信号频率越高,建筑物或设备的金属网孔眼就应越小,信号线屏蔽层的编织就应越密,否则将失去屏蔽作用。对频繁拔插的信号线,应防止屏蔽层在插头处松动和脱落。因有时仪器设备的屏蔽是通过信号线的屏蔽入地的(它们通过插头插座联接起来),若屏蔽脱落,则很容易造成干扰。如我在汕头某电子厂时,测试人员反应,卫星电视接收机中有时会有一种滋滋作声的干扰并影响图像质量。经跟踪观察,与飞机的经过有关,显然是澄海机场雷达信号的窜入并得到非正常解调所致。经分析查找,原来是信号线的屏蔽层在插头外脱落,使卫星电视接收机屏蔽没接地所致。
    四. 信号地
    各种电子电路,都有一个基准电位点,这个基准电位点就是信号地。它的作用是保证电路有一个统一的基准电位,不致于浮动而引起信号误差。
    信号地的连接是:同一设备的信号输入端地与信号输出端地不能联在一起,而应分开;前级(设备)的输出地只有与后级(设备)的输入地相连。否则,信号可能通过地线形成反馈,引起信号的浮动。这在设备的测试中,信号地的连接尤其要引起注意。例如,本人在某电子公司工作时,质检部门反映卫星接收机质量测试结果不一。原来,质检部的测试仪器,有的外壳接地,有的外壳没接地(测试信号由信号中心传送至各部门),以致信号通过地回馈使测量结果不一致。后把所有接地的测试仪器设为不接地,这种现象就没有了。

系统分类: 模拟技术   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(750)
发表于:2007/4/16 22:27:16
标签:mp4  mpeg2  aac技术  

0

MP4与MPEG-2AAC技术

MP4MPEG-2 AAC技术

转自:http://article.ednchina.com/Consumer/20070410101606.htm

 

音乐的魅力是永恒的,沉醉于优美的旋律中,徜徉在流行的大潮里,音乐带给人们太多的享受和梦想。数字时代,数字音乐早已悄然渗入我们的生活,从最早出现的CD唱机到现今流行的MP3 随身听和网络音乐等,都是数字音乐逐渐演变出来的各种形式和内容。MP3问世不久,就凭着较高的压缩比和较好的音质创造了一个全新的音乐体验,就在MP3 日益成为一种主流的音乐格式之际,忽然间冒出个MP4。令很多人不得其详。MP4究竟是什么?它与MP3之间有什么关系?它的出现对MP3有什么影响? MP3或者MP4的未来将会怎样?下面将针对以上问题展开叙述。

 

  MP4的由来

与早已众所周知的 MP3相比,人们对MP4的了解还不多。尽管从逻辑上来说,当我们听到或看到MP4时,会推断这是MP3的后继格式,事实却要复杂得多。实际上,MP4 MP3有着太多的不同。MP3是一种音频压缩的国际标准,而MP4却是一个商标的名称。虽然两者都属于网络音乐格式的范畴,但也代表着完全不同的两种音频压缩技术和格式。       
    MP4
的出现,使原来就容易混淆的MPEG标准系列变得更加难以分辨了。MP3并不是指MPEG-3标准,而是MPEG Layer 3的简称,这是个ISO/IEC国际标准,是一种完全公开的音频压缩技术。而MP4既不是MPEG Layer 4的简称,更不是MPEG-4标准。它是GMO公司针对MP3侵犯音乐出版物的版权,采用了AT&T授权的基于MPEG-2 AAC(Advanced Audio Coding)A2B音乐,并将其命名为MP4,其用意大概是想表明MP4是继MP3之后的一种升级换代技术,这正好符合人们的思维习惯。       
        A2B
技术主要由以下三个部分组成。第一,AT&T的音频压缩技术专利,以知觉编码为关键技术可以将AAC压缩比提高到 20:1而不损失音质;第二,安全数据库,它可以为你的A2B音乐文件创建一个特定的密钥,并将此密钥置于其数据库中,只有A2B的播放器才能播放含有这种密钥的音乐;第三,协议认证,这个认证包含了复制许可、允许复制副本数量、歌曲总时间、歌曲可以播放时间以及经营销售许可等信息。       
       
相对MP3等以往的音乐格式,MP4具有如下特点:

(1)每首MP4乐曲就是一个扩展名为exe的可执行文件,其内嵌有播放器,操作简便,在Windows里直接双击就可以运行播放,十分方便;

(2)由于采用先进的A2B音频压缩技术,使MP4文件的大小仅为MP3的四分之三左右,更好的音质,更大的压缩比,从这个角度来看MP4更适合在Internet上传播,而且音质也更胜一筹;

 (3)独特的数字水印,MP4采用了名为“SOLANA”的数字水印技术,可方便的追踪和发现盗版行为,而且,任何针对MP4的非法解压行为都可能导致MP4原文件的损毁;

 (4)支持版权保护,MP4乐曲内置了包括与作品版权持有者相关的文字、图像等版权说明,既可说明版权,又表示了对作曲家和演唱()者的尊重;

 (5)较为完善的功能,MP4可独立调节左右声道的音量大小、内置的波形/分频动态音频显示和音乐管理器可支持多种彩色图像、网站链接及无限制的滚动显示文本。       
       
由此可知,MP4是一种商品,它是利用改进后的MPEG-2 AAC技术对音频进行压缩处理,并加上由出版公司直接授权的知识产权协议后形成一个全新形式的数字音乐标准。

 

MPEG-2 AAC       
  MPEG-2 AACAdvanced Audio Coding)是在1997年由以BosiBrandenburgJohnston等为首的音频编码研究提出的,它总结了MPEG-1MPEG-2 AC-3等的长处,在MPEG系统上进一步改进了很多新的功能,大大增强了编码的灵活度,在保证音质的同时更大限度地压缩了码率。同时,MPEG-2 AAC已经成为MPEG-4标准中高质量音频编码的核心,是下一代音频压缩标准。

为了能够适应于不同的应用场合,在AAC标准中定义了三种不同复杂度的框架(Profile)。分别为:       
  Main Profile(主框架):在这种框架具有最高的复杂度,可以用于存储量和计算能力都很充足的场合。在这种框架中,利用了除增益控制以外的所有编码工具来提高压缩效率。       
  Low Complexity Profile(低复杂度框架):这种框架用于要求在有限的存储空间和计算能力的条件下进行压缩的场合。在这种框架中,没有预测和增益控制这两种工具,TNS的阶数比较低。       
  SSR (Scalable Sample Rate) Profile(采样率可分级框架):在这种框架中,使用增益控制工具,但是预测和耦合工具是不被允许的,具有较低的带宽和TNS阶数。对于最低的一个 PQF子带不使用增益控制工具。当带宽降低时,SSR框架的复杂度也可降低,特别适应于网络带宽变化的场合。

 

  MPEG-2 AAC编解码

  编码时,时域信号先经增益控制模块(只在可分级档次使用),把信号分成4个频带,对信号的幅度进行增益控制,在由滤波器组分解成为1024条频域谱线。同时根据输入的时域信号进行心理声学模型分析,计算当前的掩蔽域值。另外,心理声学模型还输出M/S立体声和强度立体声处理所需的控制信息。TNS模块对滤波器 输出的部分谱线进行线性预测以残差信号代替原谱线,强度立体声模块提取信号高频成分的包络。M/S立体声模块以和信号M和差信号S代替左右声道信号。量化模块进行比特分配,尽量使量化噪声小于掩蔽域值。量化后的信号与比例因子进行哈夫曼编码,最后进行AAC组码。把上述过程逆过来就是解码。

  MPEG-2 AAC把高分辨率的滤波器组、预测技术、噪声整形技术、联合立体声编码、非均匀量化和哈夫曼编码结合在一起,可以满足如下的要求:  
      
1)支持8kHz96kHz的采样频率;

2)支持输入通道配置为1/0(单声道)2/0(双声道立体声)3/2+1(//右、左环绕/右环绕、低频增强通道)等的不同的多通道配置;

  (3)在比特流语法中为更大数目和更小数目的通道配置留有余地;

  (4)在384Kb/s的数据率和3/2通道配置中,可以获得不可分辨的音质;

  (5)为了改善误码的消除,支持在存在误码的情况下维持码流同步的机制和某种误码消除机制。

  总结

  MP3是目前最流行的一种音乐 格式,已经占据了大量的网络资源,深受广大音乐爱好者的喜爱。因此,MP4的推广将会遇到很大的困难。但是,MP4有其独特的优越性,其压缩技术优于MP3,音质好于MP3;从维护版权的角度看,会得到出版界的欢迎。尤其 是和A2B 压缩技术相同的AAC 格式、编/ 解码器、音乐已经在网络上出现,正在被大众接受并获得发展。而且MPEG-2 AAC已经成为MPEG-4标准中高质量音频编码的核心,是下一代音频压缩标准。因此,随着时间的推移和MPEG-4标准的推广,作为MPEG-4音频之 一的MPEG-2AAC必将受到重视而广泛应用。

  参考文献

1 ISO/IEC 13818-7.Information Technology-Generic Coding of Moving Pictures and Associated Audio Information-Part 7Advanced Audio CodingAAC.1997
2
韩宪柱.数字音频技术及应用.北京:中国广播电视出版社,2003
3
车振华. MPEG-2 AAC音频编解码算法分析及其DSP实现.硕士学位论文[DB/OL].万方数据库,2002-03
4
顾健,周敬利,余胜生.数码音乐:MP3MP4[J].电声技术,2002,(2):18-19
5
子青.MP4粉墨登场[J].电脑技术.1999,(3):28-30 

 

系统分类: 消费电子   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(819)
发表于:2007/4/12 19:39:29
标签:手机  行业  公司  

0

手机行业

:手机主要OEM/ODM/EMS厂商:
BELLWAVE              光宝       
TELSON                华宝       
SEWON                 广达       
INNOSTREAM            仁宝       
Mirae未来电信         英华达     
Flextronics           卓力国际   
SOLECTRON             奇美通讯   
Pantech&Curitel       宏达       
GIGA&Codacom          明基       
鸿海精密工业          鼎讯       
启基                              


B:手机设计公司:     
中电赛龙   上海意岭(ELEON)             
中电奥盛                        上海希姆通(Simcom)          
深圳万众通讯                    深圳埃立特                    
美博通信(Mobicom)             深圳精成通                    
上海禹华                        上海精佑(Huntel Technologies)
浙江华立                        北京迪欧吉欧(TOGOTRIO)      
德信无线(中讯润通/国电未来)     深圳金立通信                  
上海宇梦                        深圳友利通                    
经纬科技                        深圳移动核软件有限公司        
启迪世纪                        杰特电信                      
上海毅仁                        上海木马设计(Moma design)   
上海嘉阳通讯(SUNPLUS)         上海龙域工业设计              
南京移软                        上海广辰工业设计              
凯思昊鹏                        深圳意思设计顾问有限公司      
Trolltech & MontaVista          IDEO                          
科泰世纪                        LunarDesign                   
上海龙旗                        Pentagram                     
科银京城                        DesignExchange                
安凯                            络达科技
AXLEDESIGN                      普天慧讯

C:手机芯片厂商:
德州仪器(TI)                   美国模拟器件公司(ADI ) 
高通                             英特尔                 
飞利浦                           松下半导体             
飞思卡尔(原摩托罗拉半导体部门)   瑞萨科技               
意法半导体(ST)                 东芝                   
爱立信移动平台有限公司(EMP)      展讯通信(上海)有限公司
Agere                            中星微电子             
英飞凌(Infineon)                 天碁科技               
RF Micro                         安凯开曼公司           
Skyworks                         侨兴赛邦通信科技有限公司
重庆重邮信科股份有限公司         威盛电子               

D:手机按键主要厂商
日本三箭      台湾淳安
台湾闳晖      松下部品
台湾毅嘉

E:手机外壳
贝尔罗斯  台湾绿点  
FOXCONN OY(原Eimo)    吉川化成  
耐普罗                  可成      
HI-P(赫比)            华孚      
Nolato                  Balda     
UNIKUN                  UPG联塑公司
彼恩特                  Intarsia  
友信化学                日本制刚  
TOSEI                   联盛发

                           
F:手机电声产品生产厂商     
松下部品                飞利浦
Hosiden星电             美隆 
可立新                  志丰 
日本丰达电机            宣威 
美律

G:手机用PCB市场的主要厂商
Ibiden揖斐电           AT&S   
CMK                    敬鹏   
Multek                 金像电子
依利安达               大德电机
华通                   三星电机
欣兴                   上海美维
耀华                   东莞生益
楠梓电子               珠海多层

H:手机用连接器的主要厂商
富士康集团             信音                             
正崴精密               福登精密工业股份有限公司         
连展科技股份有限公司   鸿松                             
宣得股份有限公司       安费诺东亚电子科技(深圳)有限公司
台湾龙杰股份有限公司   莫莱克斯                         
实盈

I:手机用被动元件市场的主要厂商
村田                    风华高科
京瓷                    Kemet  
太阳诱电                Lelon  
台湾国巨                松尾电子
奇力新                  南玻电子
华新科技                Nichicon
大毅科技                三星电机
旺诠                    松下电工
日本罗姆                Vishay 
AVX/Kyocera             银河科技
TDK                     兴勤电子
Elna                    EPCOS

J:手机用LCD市场的主要厂商
胜华                    三洋爱普生   
碧悠                    飞利浦移动显示
全台晶像                凌巨         
华生科技                三星SDI      
光联科技                长春联信     
劲佳光电                深圳天马     
信利半导体                        
 

系统分类: 消费电子   |    用户分类:    |    来源: 整理

评论(0) | 阅读(1029)
发表于:2007/4/10 19:06:44
标签:mp3  mp4  mp5  

1

mp3/mp4/mp5名词定义

MP3

MP3是利用音频压缩技术,将声音用110甚至112的压缩率压缩成容量较小的文件,可以保持较好的音质。由于这种压缩方式的全称叫MPEG1(MPEG1Moving Picture Experts Group) Audio Layer-3所以人们把它简称为MP3。以MP3形式存储的音乐就叫作MP3音乐,能播放MP3音乐的设备就叫做MP3播放器.

MP3Internet上最流行的音乐格式,最早起源于1987年德国一家公司的EU147数字传输计划,它利用MPEGAudioLayer3的技术,将声音文件用112左右的压缩率压缩,变成容量较小的音乐文件,使传输和储存更为便捷,更利于互联网用户在网上试听或下载到个人计算机。 同时,MP3格式音乐的流行也带动了MP3专用播放装置的出现,并在近年来得到快速发展。目前市场上流行的MP3设备从功能和性能上已经远远超出了原来"播放器"的范畴,逐步发展成为集音频播放(包括MP3之外的音乐格式)、录音复读、文本阅读、移动存储、FM收音等功能为一体的多媒体掌上设备。有的高端MP3设备甚至还集成了音频编辑处理、电影播放等功能。

MP3的优点有许多,主要有三点:一是由于大大压缩了文件的体积,所以相同的空间能存储更多的信息;二是由于没有机械元件,全部是电子元件,所以不存在防震问题,更加适合运动时欣赏音乐;三是可以随心所欲编辑自己喜爱的歌。有一利便有一弊,MP3也有一些缺点。MP3音频压缩技术是一种失真压缩,因为人耳只能听到一定频段内的声音,而其他更高或更低频率的声音对人耳是没有用处的,所以MP3技术就把这部分声音去掉了,从而使得文件体积大为缩小。虽然听上去MP3音乐仍旧具有接近CD的音质,但毕竟要比CD稍逊一些。

MP4

当今MP4市场过于混乱,产业界和技术界都没有一个统一的标准说法。

从现有产业界来简单说MP4,就是MP3的下一代,能够播放MPEG-4的播放器。MP4播放器大多以硬盘或者闪存作为存储介质,不仅具备传统MP3的基本功能,如播放MP3WMA等不同格式的音频文件、录音、FM收音等,更能够播放MPEG-4格式的视频文件。除此之外,MP4都会自带液晶屏幕,并可以通过USB/OTG与电脑或其他数码设备连接,实现随时随地观看影片的需求。不仅如此,有些MP4产品还具有如数码相机、数码摄像机以及数码存储伴侣等功能。关于MP4的准确概念,一言难尽,因为无论是从MP4的品牌、市场、产品规格、配置标准等各方面来说,都可以用一个字来形容——“。不知是炒作还是趋势 ,在现在商家眼里,只要能视频沾一点边的播放器,统统都叫MP4。消费者对于厂商的宣传也是一头雾水。业界比较认可的定义:MP4播放器是可以支持MPEG-4标准的视频格式文件,同时可以支持从320×2401280×1024的不同分辨率的1.8以上彩屏的的播放器。

从技术层面讲,MP4使用的是MPEG-2 AAC技术,也就是简称为A2BAAC的技术。它的特点是音质更加完美而压缩比更大(15:1-20:1)。MPEG-2 AAC在采样频率为896KHz时可提供148个声道可选范围的高质量音频编码。AAC就是Advanced Audio Coding(先进音频编码)的缩写,它适用于从比特率为8kbps单声道的电话语音音质到160kbps多声道超高质量音频信号范围内的编码,并且允许对多媒体进行编码/解码。它增加了诸如对立体声的完美再现、比特流的效果音扫描、多媒体控制、降噪等MP3没有的特性,使得在音频压缩后仍能完美的再现CD的音质。

其实MP4并不能望文生义地理解为MPEG-4或者MPEG-1 Layer 4格式。MP4名称的由来与其本身的技术含义是没有直接联系的,否则它应该叫做MPEG-2 AAC了。MP4真正的含义由来是因为版权问题,对唱片公司来说,MP3的缺陷就是忽视了著作者和出版者应享有的版权待遇。于是,GMOGlobal music one)公司针对MP3提出了基于AT&T公司授权的AAC改良技术—A2B的音频压缩方法和应用,并将其命名为MP4,其用意大概是想表明MP4是继MP3之后的一种升级换代技术,这正好可以契合了人们的习惯思维。A2B技术主要由以下三个部分组成。第一,AT&T的音频压缩技术专利,它可以将AAC压缩比提高到20:1而不损失音质;第二,安全数据库,它可以为你的A2B 音乐文件创建一个特定的密钥,并将此密钥置于其数据库中,只有A2B的播放器才能播放含有这种密钥的音乐;第三,协议认证,这个认证包含了复制许可、允许复制副本数量、歌曲总时间、歌曲可以播放时间以及经营销售许可等信息。由此可知,MP4是一种商品,它是利用改进后的MPEG-2 AAC技术对音频进行压缩处理,并加上由出版公司直接授权的知识产权协议后形成一个全新形式的数字音乐标准。

MP4技术的优越性要远远胜过MP3,因为它更适合多媒体技术的发展以及视听欣赏的需求,它的特别之处是利用改进后的MPEG-2 AAC技术并加上由出版公司直接授权的知识产权协议作为新的标准,其压缩率大于MP3,音质却好于MP3。从维护版权的角度看,得到出版界的欢迎。而且屏幕比较大,除了提供很好的显示效果为,扩展一些受欢迎而实用的功能,如电子书、浏览图片等等。但是电池续航能力和成本较高是现阶段MP4的缺点。

MP5

MP4的定义已经模糊不清了,MP5的称呼更是没有什么依据。从2006年开始,市面上就出现了MP5的“产品”,当时只是产业界的一种市场炒作。

最先是有些商家看到MP4手机卖得火热,所以增加一个外型巨大的喇叭,既美化了外观,又可以炒作概念。增加一个外置喇叭的MP5手机比MP4手机多了一种媒体设备,不管MP4手机的名字来历,MP5+MP4+一种媒体设备,让终端用户觉得合情合理。但是相关从业者无法接受这个名词。

在第十二届国际集成电路研讨暨展览会(IIC China 2007)上,一种手持设备MP5出现了。爱国者展出这款P881 MP5,正式命名MP5是因为它解决了MP4的一个技术瓶颈:支持rm/rmvbReal公司的流媒体格式的播放。而这一技术瓶颈的突破,当归功于Freescalei.MX31产品。i.MX31处理器基于ARM11平台,采用FreescaleSmart Speed增强技术,能够最大限度地提高有效周期/指令(eCPI),为低功耗/性能比的移动娱乐解决方案建立新的基准。该处理器支持MPEG-4H.263编解码,其CPU 266MHZ,系统133MHZ,提供16/18彩色LCD控制器,支持VGAReal公司的rm/rmvb等流媒体格式具有体积小、清晰度高、片源丰富等优点,但是长期以来,支持Real格式的播放一直是便携式媒体播放器的技术瓶颈,在i.MX31平台下,P881终于实现了这一突破。爱国者MP5 P881具有4.3英寸高解析度特丽屏、最大可支持到720×480的分辨率,支持169宽屏显示。

IIC China 2007展会后,相信相关从业者不得不从此接受这个名词——MP5。产业界和技术界将长期处于这种MP4MP5模糊定义阶段。

系统分类: 消费电子   |    用户分类:    |    来源: 原创

评论(2) | 阅读(1643)
发表于:2007/4/8 22:07:19
标签:c语言  

2

c语言精华

      本文引用原文名为《嵌入式程序员C语言测试题》,我将之引用不是因为其为面试常考的题目,而是我认为收集的这些题目很能代表C语言的精粹。

      下文题目的设置从应用着手,既从一个程序员的专业角度来考察了应试者的编程功底,同时有考察了应试者的编程风格和对编程的理解,而且结合了嵌入式应用来分析招聘人员的出题目的。文章原作者不愧是一名从业多年的行业老手。曾经拿过程序员证书的自信的我不得不承认自己见识少,目光短浅。
  
预处理器(Preprocessor)
1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
  #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
我在这想看到几件事情:
1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)
2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。
3) 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。
4) 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。

2 . 写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。
#define MIN(A,B) ((A) <= (B) ? (A) : (B)) 这个测试是为下面的目的而设的:
1) 标识#define在宏中应用的基本知识。这是很重要的。因为在  嵌入(inline)操作符 变为标准C的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。
2)三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。
3) 懂得在宏中小心地把参数用括号括起来
4) 我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事?
least = MIN(*p++, b);

3. 预处理器标识#error的目的是什么?
如果你不知道答案,请看参考文献1。这问题对区分一个正常的伙计和一个书呆子是很有用的。只有书呆子才会读C语言课本的附录去找出象这种问题的答案。当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。

死循环(Infinite loops)
4. 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢? 
这个问题用几个解决方案。   
我首选的方案是:
  while(1)
  {

  }
  一些程序员更喜欢如下方案:
  for(;;)
  {

  }
  这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。如果一个应试者给出这个作为方案,我将用这个作为一个机会去探究他们这样做的基本原理。如果他们的基本答案是:"我被教着这样做,但从没有想到过为什么。"这会给我留下一个坏印象。
  第三个方案是用 goto
  Loop:
  ...
  goto Loop;
应试者如给出上面的方案,这说明或者他是一个汇编语言程序员(这也许是好事)或者他是一个想进入新领域的BASIC/FORTRAN程序员。

数据声明(Data declarations) 
5. 用变量a给出下面的定义
  a) 一个整型数(An integer) 
  b)一个指向整型数的指针( A pointer to an integer) 
  c)一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an intege)r 
  d)一个有10个整型数的数组( An array of 10 integers) 
  e) 一个有10个指针的数组,该指针是指向一个整型数的。(An array of 10 pointers to 
  integers) 
  f) 一个指向有10个整型数数组的指针( A pointer to an array of 10 integers) 
  g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function 
  that takes an integer as an argument and returns an  integer) 
  h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of  ten pointers to functions that take an integer argument  and return an integer )
  答案是: 
  a) int a; // An integer 
  b) int *a; // A pointer to an integer 
  c) int **a; // A pointer to a pointer to an integer 
  d) int a[10]; // An array of 10 integers 
  e) int *a[10]; // An array of 10 pointers to integers 
  f) int (*a)[10]; // A pointer to an array of 10 integers 
  g) int (*a)(int); // A pointer to a function a that 
  takes an integer argument and returns an integer 
  h) int (*a[10])(int); // An array of 10 pointers to 
  functions that take an integer argument and return an 
  integer 
人们经常声称这里有几个问题是那种要翻一下书才能回答的问题,我同意这种说法。当我写这篇文章时,为了确定语法的正确性,我的确查了一下书。但是当我被面试的时候,我期望被问到这个问题(或者相近的问题)。因为在被面试的这段时间里,我确定我知道这个问题的答案。应试者如果不知道所有的答案(或至少大部分答案),那么也就没有为这次面试做准备,如果该面试者没有为这次面试做准备,那么他又能为什么出准备呢?

Static 
6. 关键字static的作用是什么?
这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:
1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2)在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
3)  在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。
大多数应试者能正确回答第一部分,一部分能正确回答第二部分,同是很少的人能懂得第三部分。这是一个应试者的严重的缺点,因为他显然不懂得本地化数据和代码范围的好处和重要性。

Const 
7.关键字const有什么含意?
我只要一听到被面试者说:"const意味着常数",我就知道我正在和一个业余者打交道。去年Dan 
Saks 已经在他的文章里完全概括了const的所有用法,因此ESP(译者:Embedded Systems Programming)的每一位读者应该非常熟悉const能做什么和不能做什么.如果你从没有读到那篇文章,只要能说出const意味着"只读"就可以了。尽管这个答案不是完全的答案,但我接受它作为一个正确的答案。(如果你想知道更详细的答案,仔细读一下Saks的文章吧。)
如果应试者能正确回答这个问题,我将问他一个附加的问题:下面的声明都是什么意思?
  const int a;
  int const a;
  const int *a;
  int * const a;
  int const * a const;
  /******/
  前两个的作用是一样,a是一个常整型数。第三个意味着a是一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)。第四个意思a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。最后一个意味着a是一个指向常整型数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的)。如果应试者能正确回答这些问题,那么他就给我留下了一个好印象。顺带提一句,也许你可能会问,即使不用关键字 ,也还是能很容易写出功能正确的程序,那么我为什么还要如此看重关键字const呢?我也如下的几下理由:
1) 关键字const的作用是为给读你代码的人传达非常有用的信息,实际上,声明一个参数为常量是为了告诉了用户这个参数的应用目的。如果你曾花很多时间清理其它人留下的垃圾,你就会很快学会感谢这点多余的信息。(当然,懂得用const的程序员很少会留下的垃圾让别人来清理的。)
2) 通过给优化器一些附加的信息,使用关键字const也许能产生更紧凑的代码。
3) 合理地使用关键字const可以使编译器很自然地保护那些不希望被改变的参数,防止其被无意的代码修改。简而言之,这样可以减少bug的出现。

Volatile 
8. 关键字volatile有什么含意?并给出三个不同的例子。
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:
1) 并行设备的硬件寄存器(如:状态寄存器)
2) 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)
3) 多线程应用中被几个任务共享的变量
  回答不出这个问题的人是不会被雇佣的。我认为这是区分C程序员和嵌入式系统程序员的最基本的问题。搞嵌入式的家伙们经常同硬件、中断、RTOS等等打交道,所有这些都要求用到volatile变量。不懂得volatile的内容将会带来灾难。 假设被面试者正确地回答了这是问题(嗯,怀疑是否会是这样),我将稍微深究一下,看一下这家伙是不是直正懂得volatile完全的重要性。
1)一个参数既可以是const还可以是volatile吗?解释为什么。
2); 一个指针可以是volatile 吗?解释为什么。
3); 下面的函数有什么错误:
int square(volatile int *ptr)
  {
  return *ptr * *ptr;
  }
下面是答案:
  1)是的。一个例子是只读的状态寄存器。它是volatile因为它可能被意想不到地改变。它是const因为程序不应该试图去修改它。
2); 是的。尽管这并不很常见。一个例子是当一个中服务子程序修该一个指向一个buffer的指针时。
  3) 这段代码有点变态。这段代码的目的是用来返指针*ptr指向值的平方,但是,由于*ptr指向一个volatile型参数,编译器将产生类似下面的代码:
int square(volatile int *ptr) 
  {
  int a,b;
  a = *ptr;
  b = *ptr;
  return a * b;
  }
由于*ptr的值可能被意想不到地该变,因此a和b可能是不同的。结果,这段代码可能返不是你所期望的平方值!正确的代码如下:
  long square(volatile int *ptr) 
  {
  int a;
  a = *ptr;
  return a * a;
  }

位操作(Bit manipulation) 
9. 嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。 对这个问题有三种基本的反应
1)不知道如何下手。该被面者从没做过任何嵌入式系统的工作。
2)  用bit fields。Bit  fields是被扔到C语言死角的东西,它保证你的代码在不同编译器之间是不可移植的,同时也保证了的你的代码是不可重用的。我最近不幸看到 Infineon为其较复杂的通信芯片写的驱动程序,它用到了bit fields因此完全对我无用,因为我的编译器用其它的方式来实现bit  fields的。从道德讲:永远不要让一个非嵌入式的家伙粘实际硬件的边。
3) 用 #defines 和 bit masks  操作。这是一个有极高可移植性的方法,是应该被用到的方法。最佳的解决方案如下:
  #define BIT3 (0x1 << 3)
  static int a;
void set_bit3(void) 
  {
  a |= BIT3;
  }
  void clear_bit3(void) 
  {
  a &= ~BIT3;
  }

  一些人喜欢为设置和清除值而定义一个掩码同时定义一些说明常数,这也是可以接受的。我希望看到几个要点:说明常数、|=和&=~操作。

访问固定的内存位置(Accessing fixed memory locations) 
10. 嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。
在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。这一问题测试你是否知道为了访问一绝对地址把一个整型数强制转换(typecast)为一指针是合法的。这一问题的实现方式随着个人风格不同而不同。典型的类似代码如下:
  int *ptr;
  ptr = (int *)0x67a9;
  *ptr = 0xaa55;
  A more obscure approach is: (   一个较晦涩的方法是):
  *(int * const)(0x67a9) = 0xaa55;
  即使你的品味更接近第二种方案,但我建议你在面试时使用第一种方案。

中断(Interrupts) 
11.  中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C支持中断。具代表事实是,产生了一个新的关键字  __interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。
__interrupt double compute_area (double radius) 
  {
  double area = PI * radius * radius;
  printf("\nArea = %f", area);
  return area;
  }
这个函数有太多的错误了,以至让人不知从何说起了:
1)ISR 不能返回一个值。如果你不懂这个,那么你不会被雇用的。
2) ISR 不能传递参数。如果你没有看到这一点,你被雇用的机会等同第一项。
3) 在许多的处理器/编译器中,浮点一般都是不可重入的。有些处理器/编译器需要让额处的寄存器入栈,有些处理器/编译器就是不允许在ISR中做浮点运算。此外,ISR应该是短而有效率的,在ISR中做浮点运算是不明智的。
4) 与第三点一脉相承,printf()经常有重入和性能上的问题。如果你丢掉了第三和第四点,我不会太为难你的。不用说,如果你能得到后两点,那么你的被雇用前景越来越光明了。

代码例子(Code examples)
12 . 下面的代码输出是什么,为什么?
  void foo(void)
  {
  unsigned int a = 6;
  int b = -20;
  (a+b > 6) ? puts("> 6") : puts("<= 6");
  }
  这个问题测试你是否懂得C语言中的整数自动转换原则,我发现有些开发者懂得极少这些东西。不管如何,这无符号整型问题的答案是输出是 ">6"。原因是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。因此-20变成了一个非常大的正整数,所以该表达式计算出的结果大于 6。这一点对于应当频繁用到无符号数据类型的嵌入式系统来说是丰常重要的。如果你答错了这个问题,你也就到了得不到这份工作的边缘。

13. 评价下面的代码片断:
  unsigned int zero = 0;
  unsigned int compzero = 0xFFFF; 
  /*1's complement of zero */
  对于一个int型不是16位的处理器为说,上面的代码是不正确的。应编写如下:
unsigned int compzero = ~0;
  这一问题真正能揭露出应试者是否懂得处理器字长的重要性。在我的经验里,好的嵌入式程序员非常准确地明白硬件的细节和它的局限,然而PC机程序往往把硬件作为一个无法避免的烦恼。
到了这个阶段,应试者或者完全垂头丧气了或者信心满满志在必得。如果显然应试者不是很好,那么这个测试就在这里结束了。但如果显然应试者做得不错,那么我就扔出下面的追加问题,这些问题是比较难的,我想仅仅非常优秀的应试者能做得不错。提出这些问题,我希望更多看到应试者应付问题的方法,而不是答案。不管如何,你就当是这个娱乐吧...

动态内存分配(Dynamic memory allocation) 
14. 尽管不像非嵌入式计算机那么常见,嵌入式系统还是有从堆(heap)中动态分配内存的过程的。那么嵌入式系统中,动态分配内存可能发生的问题是什么?这里,我期望应试者能提到内存碎片,碎片收集的问题,变量的持行时间等等。这个主题已经在ESP杂志中被广泛地讨论过了(主要是 P.J. Plauger, 他的解释远远超过我这里能提到的任何解释),所有回过头看一下这些杂志吧!让应试者进入一种虚假的安全感觉后,我拿出这么一个小节目:下面的代码片段的输出是什么,为什么?
  char *ptr;
  if ((ptr = (char *)malloc(0)) == NULL) 
  puts("Got a null pointer");
  else
  puts("Got a valid pointer");
  这是一个有趣的问题。最近在我的一个同事不经意把0值传给了函数malloc,得到了一个合法的指针之后,我才想到这个问题。这就是上面的代码,该代码的输出是"Got   a valid pointer"。我用这个来开始讨论这样的一问题,看看被面试者是否想到库例程这样做是正确。得到正确的答案固然重要,但解决问题的方法和你做决定的基本原理更重要些。

Typedef 
15 Typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。例如,思考一下下面的例子:
  #define dPS struct s *
  typedef struct s * tPS;
  以上两种情况的意图都是要定义dPS 和 tPS 作为一个指向结构s指针。哪种方法更好呢?(如果有的话)为什么?
  这是一个非常微妙的问题,任何人答对这个问题(正当的原因)是应当被恭喜的。答案是:typedef更好。思考下面的例子:
  dPS p1,p2;
  tPS p3,p4;
第一个扩展为
  struct s * p1, p2;
上面的代码定义p1为一个指向结构的指,p2为一个实际的结构,这也许不是你想要的。第二个例子正确地定义了p3   和p4 两个指针。

晦涩的语法
16 . C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?
  int a = 5, b = 7, c;
  c = a+++b;
  这个问题将做为这个测验的一个愉快的结尾。不管你相不相信,上面的例子是完全合乎语法的。问题是编译器如何处理它?水平不高的编译作者实际上会争论这个问题,根据最处理原则,编译器应当能处理尽可能所有合法的用法。因此,上面的代码被处理成:c = a++ + b;
因此, 这段代码持行后a = 6, b = 7, c = 12。
  如果你知道答案,或猜出正确答案,做得好。如果你不知道答案,我也不把这个当作问题。我发现这个问题的最大好处是这是一个关于代码编写风格,代码的可读性,代码的可修改性的好的话题。
    

系统分类: 嵌入式   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(808)
2Next >Total , Page /