显示标签为“电路知识普及”的博文。显示所有博文
显示标签为“电路知识普及”的博文。显示所有博文

星期二, 一月 15, 2008

高手高手高高手 (转)

1 计算机科学与技术学习心得【转】

计算机科学与技术这一门科学深深的吸引着我们这些同学们,上计算机系已经有近三年了,自己也做了一些思考,原先不管是国内还是国外都喜欢把这个系 分为计算机软件理论、计算机系统、计算机技术与应用。后来又合到一起,变成了现在的计算机科学与技术。我一直认为计算机科学与技术这门专业,在本科阶段是 不可能切分成计算机科学和计算机技术的,因为计算机科学需要相当多的实践,而实践需要技术;每一个人(包括非计算机专业),掌握简单的计算机技术都很容易 (包括原先Major们自以为得意的程序设计),但计算机专业的优势是:我们掌握许多其他专业并不"深究"的东西,例如,算法,体系结构,等等。非计算机 专业的人可以很容易地做一个芯片,写一段程序,但他们做不出计算机专业能够做出来的大型系统。今天我想专门谈一谈计算机科学,并将重点放在计算理论上。

1、计算机理论的一个核心问题--从数学谈起:
  [1]高等数学Vs数学分析    
  记得当年大一入学,每周四课时高等数学,天天作业不断(那时是七天工作制)。颇有些同学惊呼走错了门:咱们这到底念的是什么系?不错,你没走 错门,这就是计算机科学与技术系。我国计算机科学系里的传统是培养做学术研究,尤其是理论研究的人(方向不见得有多大的问题,但是做得不是那么尽如人 意)。而计算机的理论研究,说到底了,如网络安全学,图形图像学,视频音频处理,哪个方向都与数学有着很大的关系,虽然也许是正统数学家眼里非主流的数 学。这里我还想阐明我的一个观点:我们都知道,数学是从实际生活当中抽象出来的理论,人们之所以要将实际抽象成理论,目的就在于想用抽象出来的理论去更好 的指导实践,有些数学研究工作者喜欢用一些现存的理论知识去推导若干条推论,殊不知其一:问题考虑不全很可能是个错误的推论,其二:他的推论在现实生活中 找不到原型,不能指导实践。严格的说,我并不是一个理想主义者,政治课上学的理论联系实际一直是指导我学习科学文化知识的航标(至少我认为搞计算机科学与 技术的应当本着这个方向)。
  其实我们计算机系学数学仅学习高等数学是不够的(典型的工科院校一般都开的是高等数学),我们应该像数学系一样学一下数学分析(清华计算机 系开的好像就是数学分析,我们学校计算机学院开的也是,不过老师讲起来好像还是按照高等数学讲),数学分析这门科学,咱们学计算机的人对它有很复杂的感 情。在于它是偏向于证明型的数学课程,这对我们培养良好的分析能力和推理能力极有帮助。我的软件工程学导师北工大数理学院的王仪华先生就曾经教导过我们, 数学系的学生到软件企业中大多作软件设计与分析工作,而计算机系的学生做程序员的居多,原因就在于数学系的学生分析推理能力,从所受训练的角度上要远远在 我们平均水平之上。当年出现的怪现象是:计算机系学生的高中数学基础在全校数一数二(希望没有冒犯其它系的同学),教学课时数也仅次于数学系,但学完之后 的效果却不尽如人意。难道都是学生不努力吗,我看未见得,方向错了也说不一定,其中原因何在,发人深思。
  我个人的浅见是:计算机系的学生,对数学的要求固然跟数学系不同,跟物理类差别则更大。通常非数学专业的所?quot;高等数学",无非是 把数学分析中较困难的理论部分删去,强调套用公式计算而已。而对计算机系来说,数学分析里用处最大的恰恰是被删去的理论部分。说得难听一点,对计算机系学 生而言,追求算来算去的所谓"工程数学"已经彻底地走进了误区。记上一堆曲面积分的公式,难道就能算懂了数学?那倒不如现用现查,何必费事记呢?再不然直 接用Mathematica或是Matlab好了。 退一万步讲,即使是学高等数学我想大家看看华罗庚先生的《高等数学导论》也是比一般的教材好得多。华 罗庚在数学上的造诣不用我去多说,但是他这光辉的一生做得我认为对我们来说,最重要的几件事情: 首先是它筹建了中国科学院计算技术研究所,这是我们国家 计算机科学的摇篮。在有就是他把很多的高等数学理论都交给了做工业生产的技术人员,推动了中国工业的进步。第三件就是他一生写过很多书,但是对高校师生价 值更大的就是他在病期间在病床上和他的爱徒王元写了《高等数学引论》(王元与其说是他的爱徒不如说是他的同事,是中科院数学所的老一辈研究员,对歌德巴赫 猜想的贡献全世界仅次于陈景润)这书在我们的图书馆里居然找得到,说实话,当时那个书上已经长了虫子,别人走到那里都会闪开,但我却格外感兴趣,上下两册 看了个遍,我的最大收获并不在于理论的阐述,而是在于他的理论完全的实例化,在生活中去找模型。这也是我为什么比较喜欢具体数学的原因,正如我在上文中提 到的,理论脱离了实践就失去了它存在的意义。正因为理论是从实践当中抽象出来的,所以理论的研究才能够更好的指导实践,不用于指导实践的理论可以说是毫无 价值的。



作者: dapplehou 2006-5-25 11:28   回复此发言


2 计算机科学与技术学习心得【转】

  我在系里最爱做的事情就是给学弟学妹们推荐参考书。没有别的想法,只是希望他们少走弯路。中文的数学分析书,一般都认为以北大张筑生老师的" 数学分析新讲"为最好。张筑生先生一生写的书并不太多,但是只要是写出来的每一本都是本领域内的杰作,这本当然更显突出些。这种老书看起来不仅是在传授你 知识,而是在让你体会科学的方法与对事物的认识方法。万一你的数学实在太好,那就去看菲赫金哥尔茨?quot;微积分学教程"好了--但我认为没什么必 要,毕竟你不想转到数学系去。吉米多维奇的"数学分析习题集"也基本上是计算型的书籍。书的名气很大,倒不见得适合我们,还是那句话,重要的是数学思想的 建立,生活在信息社会里我们求的是高效,计算这玩意还是留给计算机吧。不过现在多用的似乎是复旦大学的《数学分析》,高等教育出版社的,也是很好的教材。
  中国的所谓高等代数,就等于线性代数加上一点多项式理论。我以为这有好的一面,因为可以让学生较早感觉到代数是一种结构,而非一堆矩阵翻来 覆去。这里不得不提南京大学林成森,盛松柏两位老师编的"高等代数",感觉相当舒服。此书相当全面地包含了关于多项式和线性代数的基本初等结果,同时还提 供了一些有用的又比较深刻的内容,如Sturm序列,Shermon-Morrison公式,广义逆矩阵等等。可以说,作为本科生如能吃透此书,就可以算 是高手。国内较好的高等代数教材还有清华计算机系用的那本,清华出版社出版,书店里多多,一看就知道。从抽象代数的观点来看,高等代数里的结果不过是代数 系统性质的一些例子而已。莫宗坚先生的《代数学》里,对此进行了深刻的讨论。然而莫先生的书实在深得很,作为本科生恐怕难以接受,不妨等到自己以后成熟了 一些再读。
  正如上面所论述的,计算机系的学生学习高等数学:知其然更要知其所以然。你学习的目的应该是:将抽象的理论再应用于实践,不但要掌握题目的 解题方法,更要掌握解题思想,对于定理的学习:不是简单的应用,而是掌握证明过程即掌握定理的由来,训练自己的推理能力。只有这样才达到了学习这门科学的 目的,同时也缩小了我们与数学系的同学之间思维上的差距。
  [2]计算数学基础
  概率论与数理统计这门课很重要,可惜大多数院校讲授这门课都会少些东西。少了的东西现在看至少有随机过程。到毕业还没有听说过Markov过 程,此乃计算机系学生的耻辱。没有随机过程,你怎么分析网络和分布式系统?怎么设计随机化算法和协议?据说清华计算机系开有"随机数学",早就是必修课。 另外,离散概率论对计算机系学生来说有特殊的重要性。而我们国家工程数学讲的都是连续概率。现在,美国已经有些学校开设了单纯的"离散概率论"课程,干脆 把连续概率删去,把离散概率讲深些。我们不一定要这么做,但应该更加强调离散概率是没有疑问的。这个工作我看还是尽早的做为好。
  计算方法学(有些学校也称为数学分析学)是最后一门由数理学院给我们开的课。一般学生对这门课的重视程度有限,以为没什么用。不就是照套公 式嘛!其实,做图形图像可离不开它,密码学搞深了也离不开它。而且,在很多科学工程中的应用计算,都以数值的为主。这门课有两个极端的讲法:一个是古典的 "数值分析",完全讲数学原理和算法;另一个是现在日趋流行的"科学与工程计算",干脆教学生用软件包编程。我个人认为,计算机系的学生一定要认识清楚我 们计算机系的学生为什么要学这门课,我是很偏向于学好理论后用计算机实现的,最好使用C语言或C++编程实现。向这个方向努力的书籍还是挺多的,这里推荐 大家高等教育出版社(CHEP)和施普林格出版社(Springer)联合出版的《计算方法(Computational Methods)》,华中理工 大学数学系写的(现华中科技大学),这方面华科大做的工作在国内应算是比较多的,而个人认为以这本最好,至少程序设计方面涉及了:任意数学函数的求值,方 程求根,线性方程组求解,插值方法,数值积分,场微分方程数值求解。李庆扬先生的那本则理论性过强,与实际应用结合得不太紧,可能比较适合纯搞理论的。



作者: dapplehou 2006-5-25 11:28   回复此发言


3 计算机科学与技术学习心得【转】

  [3]也谈离散数学   
  每个学校本系里都会开一门离散数学,涉及集合论,图论,和抽象代数,数理逻辑。不过,这么多内容挤在离散数学一门课里,是否时间太紧了点?另 外,计算机系学生不懂组合和数论,也是巨大的缺陷。要做理论,不懂组合或者数论吃亏可就太大了。从理想的状态来看,最好分开六门课:集合,逻辑,图论,组 合,代数,数论。这个当然不现实,因为没那么多课时。也许将来可以开三门课:集合与逻辑,图论与组合,代数与数论。(这方面我们学校已经着手开始做了)不 管课怎么开,学生总一样要学。下面分别谈谈上面的三组内容。
  古典集合论,北师大出过一本《基础集合论》不错。
  数理逻辑,中科院软件所陆钟万教授的《面向计算机科学的数理逻辑》就不错。现在可以找到陆钟万教授的讲课录像,http://www.cas.ac.cn/html/Dir/2001/11/06/3391.htm自己去看看吧。总的来说,学集合/逻辑起手不难,普通高中生都能看懂。但越往后越感觉深不可测。
  学完以上各书之后,如果你还有精力兴趣进一步深究,那么可以试一下GTM系列中的 《Introduction to Axiomatic Set Theory》和《A Course of Mathematical Logic》。 这两本都有世界图书出版社的引进版。你如果能搞定这两本,可以说在逻辑方面真正入了门,也就不用再浪费时间听我瞎侃了。
  据说全中国最多只有三十个人懂图论。此言不虚。图论这门科学,技巧性太强,几乎每个问题都有一个独特的方法,让人头痛。不过这也正是它魅力 所在:只要你有创造性,它就能给你成就感。我的导师说,图论里面随便找一块东西就可以写篇论文。大家可以体会里面内容之深广了吧!国内的图论书中,王树禾 老师的"图论及其算法"非常成功(顺便推荐大家王先生的"数学思想史",个人认为了解科学史会对我们的学习和研究起到很大的推动作用)。一方面,其内容在 国内教材里算非常全面的。另一方面,其对算法的强调非常适合计算机系(本来就是科大计算机系教材)。有了这本书为主,再参考几本翻译的,如 Bondy & Murty的《图论及其应用》,人民邮电出版社翻译的《图论和电路网络》等等,就马马虎虎,对本科生绝对足够了。再进一步,世界 图书引进有GTM系列的"Modern Graph Theory"。此书确实经典!国内好象还有一家出版了个翻译版。不过,学到这个层次,还是读原版好 (说实话,主要是亲身体验翻译版的弊端,这个大家自己体会)。搞定这本书,也标志着图论入了门。
  离散数学方面我们北京工业大学实验学院有个世界级的专家,叫邵学才,复旦大学概率论毕业的,教过高等数学,线性代数,概率论,最后转向离散 数学,出版著作无数,论文集新加坡有一本,堪称经典,大家想学离散数学的真谛不妨找来看看。这老师的课我专门去听过,极为经典。不过你要从他的不经意的话 中去挖掘精髓。在同他的交谈当中我又深刻地发现一个问题,虽说邵先生写书无数,但依他自己的说法每本都差不多,我实在觉得诧异,他说主要是有大纲的限制, 不便多写。这就难怪了,很少听说国外写书还要依据个什么大纲(就算有,内容也宽泛的多),不敢越雷池半步,这样不是看谁的都一样了。外版的书好就好在这 里,最新的科技成果里面都有论述,别的先不说,至少?quot;紧跟时代的理论知识"。
  原先离散数学和数据结构归在一起成为离散数学结构,后来由于数据结构的内容比较多,分出来了,不过最近国外好像有些大学又把它们合并到了一 起,道理当然不用说,可能还是考虑到交叉的部分比较多。比较经典的书我看过得应算是 《Discrete Mathematical Structures》了,清华大学出版社有个影印版的。
  [4]续谈其他的一些计算数学
  组合数学我看的第一本好像是北大捐给我们学院的,一本外版书。感觉没有太适合的国产书。还是读Graham和Knuth等人合著的经典"具体数学"吧,西安电子科技大学出版社有翻译版。



作者: dapplehou 2006-5-25 11:28   回复此发言


4 计算机科学与技术学习心得【转】

  《组合数学》,《空间解析几何》还有那本《拓扑学》,看这三本书的时候是极其费事的,原因有几点,首先是这三本书无一例外,都是用繁体字写 的,第二就是书真得实在是太脏了,我在图书馆的座位上看,同学们都离我做得很远。我十分不自然,不愿意影响同学,但是学校不让向外借这种书(呵呵,说起这 是也挺有意思,别人都不看这种书,只有我在看,老师就特别的关注我,后来我和他讲了这些书的价值,他居然把他们当作是震馆之宝,老师都不许借,不过后来他 们看我真得很喜欢看,就把书借给了我,当然用的是馆长的名义借出去的。)不过收获是非常大的,再后来学习计算机理论时里面的很多东西都是常会用到的。当然 如果你没看过这些书绝对理解不到那个层次。拿拓扑学来说,我们学校似乎是美开设这门课程,但是这门课程的重要性是显而易见的,没有想到的是在那本书的很多 页中都夹着一些读书笔记,而那个笔记的作者及有些造诣,有些想法可以用到现代网络设计当中。
  抽象代数,国内经典为莫宗坚先生的《代数学》。此书听说是北大数学系教材,深得好评。然而对本科生来说,此书未免太深。可以先学习一些其它 的教材,然后再回头来看"代数学"。国际上的经典可就多了,GTM系列里就有一大堆。推荐一本谈不上经典,但却最简单的,最容易学的:http://www.math.miami.edu/~ec/book/这本"Introduction to Linear and Abstract Algebra"非常通俗易懂,而且把抽象代数和线性代数结合起来,对初学者来说非常理想,我校比较牛的同学都有收藏。
  数论方面,国内有经典而且以困难著称摹冻醯仁邸?(潘氏兄弟著,北大版)。再追溯一点,还有更加经典(可以算世界级)并且更加困难的"数论 导引"(华罗庚先生的名著,科学版,九章书店重印,繁体的看起来可能比较困难)。把基础的几章搞定一个大概,对本科生来讲足够了。但这只是初等数论。本科 毕业后要学计算数论,你必须看英文的书,如Bach的"Introduction to Algorithmic Number Theory"。
  计算机科学理论的根本,在于算法。现在很多系里给本科生开设算法设计与分析,确实非常正确。环顾西方世界,大约没有一个三流以上计算机系不 把算法作为必修的。算法教材目前公认以Corman等著的《Introduction to Algorithms》为最优。对入门而言,这一本已经足 够,不需要再参考其它书。 深一点的就是大家作为常识都知道的TAOCP了。即是《The Art of Computer Programming》3 册内容全世界都能看下来的本身就不多,Gates曾经说过"若是你能把这书上面的东西都看懂,请把你的简历发给我一份"我的学长司徒彦南兄就曾千里迢迢从 美国托人买这书回来,别的先不说,可见这书的在我们计算机科学与技术系中的分量。
   再说说形式语言与自动机。我看过北邮的教材,应该说写的还清楚。有一本通俗易懂的好书,MIT的sipser的 《introduction to theory of computation》。但是,有一点要强调:形式语言和自动机的作用主要在作为计算模型,而 不是用来做编译。事实上,编译前端已经是死领域,没有任何open problems,北科大的班晓娟博士也曾经说过,编译的技术已相当成熟。如果为了这 个,我们完全没必要去学形式语言--用用yacc什么的就完了。北邮的那本在国内还算比较好,但是在深度上,在跟可计算性的联系上都有较大的局限,现代感 也不足。所以建议有兴趣的同学去读英文书,不过国内似乎没引进这方面的教材。可以去互动出版网上看一看。入门以后,把形式语言与自动机中定义的模型,和数 理逻辑中用递归函数定义的模型比较一番,可以说非常有趣。现在才知道,什么叫"宫室之美,百官之富"!
  计算机科学和数学的关系有点奇怪。二三十年以前,计算机科学基本上还是数学的一个分支。而现在,计算机科学拥有广泛的研究领域和众多的研究 人员,在很多方面反过来推动数学发展,从某种意义上可以说是孩子长得比妈妈还高了。但不管怎么样,这个孩子身上始终流着母亲的血液。这血液是 the mathematical underpinning of computer science(计算机科学的数学基础),也就是理论计算机科 学。原来在东方大学城图书馆中曾经看过一本七十年代的译本(书皮都没了,可我就爱关注这种书),大概就叫《计算机数学》。那本书若是放在当时来讲决是一本 好书,但现在看来,涵盖的范围还算广,深度则差了许多,不过推荐大一的学生倒可以看一看,至少可以使你的计算数学入入门,也就是说至少可以搞清数学到底在 计算机科学什么地方使用。
  最常和理论计算机科学放在一起的一个词是什么?答:离散数学。这两者的关系是如此密切,以至于它们在不少场合下成为同义词。(这一点在前面 的那本书中也有体现)传统上,数学是以分析为中心的。数学系的同学要学习三四个学期的数学分析,然后是复变函数,实变函数,泛函数等等。实变和泛函被很多 人认为是现代数学的入门。在物理,化学,工程上应用的,也以分析为主。
  随着计算机科学的出现,一些以前不太受到重视的数学分支突然重要起来。人们发现,这些分支处理的数学对象与传统的分析有明显的区别:分析研 究的问题解决方案是连续的,因而微分,积分成为基本的运算;而这些分支研究的对象是离散的,因而很少有机会进行此类的计算。人们从而称这些分支为"离散数 学"。"离散数学"的名字越来越响亮,最后导致以分析为中心的传统数学分支被相对称为"连续数学"。
  离散数学经过几十年发展,基本上稳定下来。一般认为,离散数学包含以下学科



作者: dapplehou 2006-5-25 11:28   回复此发言


6 回复:计算机科学与技术学习心得【转】

1) 集合论,数理逻辑与元数学。这是整个数学的基础,也是计算机科学的基础。
2) 图论,算法图论;组合数学,组合算法。计算机科学,尤其是理论计算机科学的核心是算法,而大量的算法建立在图和组合的基础上。
3) 抽象代数。代数是无所不在的,本来在数学中就非常重要。在计算机科学中,人们惊讶地发现代数竟然有如此之多的应用。
 但是,理论计算机科学仅仅就是在数学的上面加上"离散"的帽子这么简单吗?一直到大约十几年前,终于有一位大师告诉我们:不是。 D.E.Knuth(他有多伟大,我想不用我再说了)在Stanford开设了一门全新的课程Concrete Mathematics。 Concrete这个词在这里有两层含义:
  首先:对abstract而言。Knuth认为,传统数学研究的对象过于抽象,导致对具体的问题关心不够。他抱怨说,在研究中他需要的数学 往往并不存在,所以他只能自己去创造一些数学。为了直接面向应用的需要,他要提倡"具体"的数学。在这里我做一点简单的解释。例如在集合论中,数学家关心 的都是最根本的问题--公理系统的各种性质之类。而一些具体集合的性质,各种常见集合,关系,映射都是什么样的,数学家觉得并不重要。然而,在计算机科学 中应用的,恰恰就是这些具体的东西。Knuth能够首先看到这一点,不愧为当世计算机第一人。其次,Concrete是Continuous(连续)加上 discrete(离散)。不管连续数学还是离散数学,只要是能与我们研究的内容挂上钩的都是有用的数学!
2、理论与实际的结合--计算机科学技术研究的范畴与学习方法      前面主要是从数学角度来看的。从计算机角度来看,理论计算机科学目前 主要的研究领域包括:可计算性理论,算法设计与复杂性分析,密码学与信息安全,分布式计算理论,并行计算理论,网络理论,生物信息计算,计算几何学,程序 语言理论等等。这些领域互相交叉,而且新的课题在不断提出,所以很难理出一个头绪来。想搞搞这方面的工作,推荐看中国计算机学会的一系列书籍,至少代表了 我国的权威。下面随便举一些例子。



作者: dapplehou 2006-5-25 11:48   回复此发言


7 回复:计算机科学与技术学习心得【转】

1) 集合论,数理逻辑与元数学。这是整个数学的基础,也是计算机科学的基础。
2) 图论,算法图论;组合数学,组合算法。计算机科学,尤其是理论计算机科学的核心是算法,而大量的算法建立在图和组合的基础上。
3) 抽象代数。代数是无所不在的,本来在数学中就非常重要。在计算机科学中,人们惊讶地发现代数竟然有如此之多的应用。
 但是,理论计算机科学仅仅就是在数学的上面加上"离散"的帽子这么简单吗?一直到大约十几年前,终于有一位大师告诉我们:不是。 D.E.Knuth(他有多伟大,我想不用我再说了)在Stanford开设了一门全新的课程Concrete Mathematics。 Concrete这个词在这里有两层含义:
  首先:对abstract而言。Knuth认为,传统数学研究的对象过于抽象,导致对具体的问题关心不够。他抱怨说,在研究中他需要的数学 往往并不存在,所以他只能自己去创造一些数学。为了直接面向应用的需要,他要提倡"具体"的数学。在这里我做一点简单的解释。例如在集合论中,数学家关心 的都是最根本的问题--公理系统的各种性质之类。而一些具体集合的性质,各种常见集合,关系,映射都是什么样的,数学家觉得并不重要。然而,在计算机科学 中应用的,恰恰就是这些具体的东西。Knuth能够首先看到这一点,不愧为当世计算机第一人。其次,Concrete是Continuous(连续)加上 discrete(离散)。不管连续数学还是离散数学,只要是能与我们研究的内容挂上钩的都是有用的数学!
2、理论与实际的结合--计算机科学技术研究的范畴与学习方法      前面主要是从数学角度来看的。从计算机角度来看,理论计算机科学目前 主要的研究领域包括:可计算性理论,算法设计与复杂性分析,密码学与信息安全,分布式计算理论,并行计算理论,网络理论,生物信息计算,计算几何学,程序 语言理论等等。这些领域互相交叉,而且新的课题在不断提出,所以很难理出一个头绪来。想搞搞这方面的工作,推荐看中国计算机学会的一系列书籍,至少代表了 我国的权威。下面随便举一些例子。
  由于应用需求的推动,密码学现在成为研究的热点。密码学建立在数论(尤其是计算数论),代数,信息论,概率论和随机过程的基础上,有时也用到图论和组合学等。很多人以为密码学就是加密解密,而加密就是用一个函数把数据打乱。这样的理解太浅显了。
现代密码学至少包含以下层次的内容:
第一,密码学的基础。例如,分解一个大数真的很困难吗?能否有一般的工具证明协议正确?
第二,密码学的基本课题。例如,比以前更好的单向函数,签名协议等。
第三,密码学的高级问题。例如,零知识证明的长度,秘密分享的方法。
第四,密码学的新应用。例如,数字现金,叛徒追踪等。
  密码学方面值得推荐的有一本《应用密码学》还有就是平时多看看年会的论文集,感觉这种材料实用性比较强,会提高很快。
在分布式系统中,也有很多重要的理论问题。例如,进程之间的同步,互斥协议。一个经典的结果是:在通信信道不可靠时,没有确定型算法能实现进程间 协同。所以,改进TCP三次握手几乎没有意义。例如时序问题。常用的一种序是因果序,但因果序直到不久前才有一个理论上的结果....例如,死锁没有实用 的方法能完美地对付。例如,......操作系统研究过就自己去举吧!
  如果计算机只有理论,那么它不过是数学的一个分支,而不成为一门独立的科学。事实上,在理论之外,计算机科学还有更广阔的天空。
我一直认为,4年根本不够学习计算机的基础知识,因为面太宽了,要是真学的话,我想至少8年的学习能使你具有一定的科学素养......
  这方面我想先说说我们系在各校普遍开设的《计算机基础》。在高等学校开设《计算机基础课程》是我国高教司明文规定的各专业必修课程要求。主要 内容是使学生初步掌握计算机的发展历史,学会简单的使用操作系统,文字处理,表格处理功能和初步的网络应用功能。但是在计算机科学系教授此门课程的目标决 不能与此一致。在计算机系课程中目标应是:让学生较为全面的了解计算机学科的发展,清晰的把握计算机学科研究的方向,发展的前沿即每一个课程在整个学科体 系中所处的地位。搞清各学科的学习目的,学习内容,应用领域。使学生在学科学习初期就对整个学科有一个整体的认识,以做到在今后的学习中清楚要学什么,怎 么学。计算机基本应用技能的位置应当放在第二位或更靠后,因为这一点对于本系的学生应当有这个摸索能力。这一点很重要。推荐给大家一本书:机械工业出版社 的《计算机文化》(New Perspective of Computer Science),看了这本书我才深刻的体会到自己还是个计算机科学初学 者,才比较透彻的了解了什么是计算机科学。科学出版社的《计算科学导论》 (赵致琢先生的著作)可以说是在高校计算机教育改革上作了很多的尝试,也是这方 面我受益很大的一本书。



作者: dapplehou 2006-5-25 12:13   回复此发言


8 回复:计算机科学与技术学习心得【转】

  一个一流计算机系的优秀学生决不该仅仅是一个编程高手,但他一定首先是一个编程高手。我上大学的时候,第一门专业课是C语言程序设计,念计算 机的人从某种角度讲相当一部分人是靠写程序吃饭的。在我们北京工业大学实验学院计算机系里一直有这样的争论(时至今日CSDN上也有),关于第一程序设计 语言该用哪一种。我个人认为,用哪种语言属于末节,关键在养成良好的编程习惯。当年老师对我们说,打好基础后学一门新语言只要一个星期。现在我觉得根本不 用一个星期,前提是先把基础打好。不要再犹豫了,学了再说,等你抉择好了,别人已经会了几门语言了。
  [1]专谈计算机系统的学习
 汇编语言和微机原理是两门特烦人的课。你的数学/理论基础再好,也占不到什么便宜。这两门课之间的次序也好比先有鸡还是先有蛋,无论你先学哪 门,都会牵扯另一门课里的东西。所以,只能静下来慢慢琢磨。这就是典型的工程课,不需要太多的聪明和顿悟,却需要水滴石穿的渐悟。有关这两门课的书,计算 机书店里不难找到。弄几本最新的,对照着看吧。组成原理推荐《计算机组成与结构》清华大学王爱英教授写的。汇编语言大家拿8086/8088入个门,之后 一定要学80x86汇编语言。实用价值大,不落后,结构又好,写写高效病毒,高级语言里嵌一点汇编,进行底层开发,总也离不开他,推荐清华大学沈美明的 《IBM-PC汇编语言程序设计》。有些人说不想了解计算机体系结构,也不想制造计算机,所以诸如计算机原理,汇编语言,接口之类的课觉得没必要学,这样 合理吗?显然不合理,这些东西迟早得掌握,肯定得接触,而且,这是计算机专业与其他专业学生相比的少有的几项优势。做项目的时候,了解这些是非常重要的, 不可能说,仅仅为了技术而技术,只懂技术的人最多做一个编码工人,而永远不可能全面地了解整个系统的设计,而编码工人是越老越不值钱。关于组成原理还有个 讲授的问题,在我学这门课程时老师讲授时把CPU工作原理誉微程序设计这一块略掉了,理由是我们国家搞CPU技术不如别的国家,搞了这么长时间好不容易出 了个龙芯比Intel的还差个十万八千里,所以建议我们不要学了。我看这在各校也未见得不是个问题吧!若真是如他所说,那中国的计算机科学哪个方向都可以 停了,软硬件,应用,有几项搞得过美国,搞不过别人就不搞了,那我们坐在这里干什么?教学的观念需要转变的。我们学校现在有一个学弟就专攻CPU设计,平 时交流不少,发现他能够将软件的设计思想应用到芯片设计上,我看真的是不错的,比起那些望而生畏的恐怕要强上百倍。
  模拟电路这个学科,如今不仅计算机系学生搞不定,电子系学生也多半害怕。如果你真想软硬件通吃,那么建议你先看看邱关源的"电路原理",也 许此后再看模拟电路底气会足些。教材:康华光的"电子技术基础"(高等教育出版社)还是不错的(我校电子系在用)。有兴趣也可以参考童诗白的书。
  数字电路比模拟电路要好懂得多。推荐大家看一看北京工业大学刘英娴教授写的《数字逻辑》。业绩人士都说这本书很有参考价值(机械工业出版社 的)。原因很明了,实用价值高,能听听她讲授的课程更是有一种"享受科学"的感觉。清华大学阎石的书也算一本好教材,遗憾的一点是集成电路讲少了些。真有 兴趣,看一看大规模数字系统设计吧(北航那本用的还比较多)。
  计算机系统结构该怎么教,国际上还在争论。国内能找到的较好教材为Stallings的 《Computer Organization and Architecture:Designing for Performance》(清华影印 本)。国际上最流行的则是《Computer architecture: aquantitative approach》, by Patterson & Hennessy。
  [2]一些其他的专业课程   
  操作系统可以随便选用《操作系统的内核设计与实现》和《现代操作系统》两书之一。这两部都可以算经典,唯一缺点就是理论上不够严格。不过这领 域属于Hardcore System,所以在理论上马虎一点也情有可原。想看理论方面的就推荐清华大学出版社《操作系统》吧,高教司司长张尧学写的,我 们教材用的是那本。 可以说理论涉及的比较全,在有就是他的实验指导书,操作系统这门学科同程序设计一样,不自己试着做些什么恐怕很难搞通。另外推荐一本 《Windows操作系统原理》机械工业出版社的,这本书是我国操作系统专家在微软零距离考察半年,写作历时一年多写成的,教操作系统的顶级教授除了清华 大学的张尧学(现高教司司长)很多专家都参加了。Bill Gates亲自写序。里面不但结合windows2000,xp详述操作系统的内核,而且后面 讲了一些windows编程基础,有外版书的味道,而且上面一些内容可以说在国内外只有那本书才有对windows内核细致入微的介绍。



作者: dapplehou 2006-5-25 12:13   回复此发言


9 回复:计算机科学与技术学习心得【转】

  如果先把形式语言学好了,则编译原理中的前端我看只要学四个算法:最容易实现的递归下降;最好的自顶向下算法LL(k);最好的自底向上算法 LR(k);LR(1)的简化SLR(也许还有另一简化LALR)。后端完全属于工程性质,自然又是another story。 推荐教材: Kenneth C.Louden写的《Compiler Construction Principles and Practice》即是《编译原理 及实践》(机械工业出版社的译本)
学数据库要提醒大家的是,会用VFP,VB, Power builder不等于懂数据库。(这世界上自以为懂数据库的人太多了!)数据库设计 既是科学又是艺术,数据库实现则是典型的工程。所以从某种意义上讲,数据库是最典型的一门计算机课程--理工结合,互相渗透。另外推荐大家学完软件工程学 后再翻过来看看数据库技术,又会是一番新感觉。至少对一些基本概念与描述方法会有很深的体会,比如说数据字典,E-R图之类的。推荐教材: Abraham Silberschatz等著的 "Database System Concepts".作为知识的完整性,还推荐大家看一看机械工业 出版社的《数据仓库》译本。
  计算机网络的标准教材还是来自Tanenbaum的《Computer Networks》(清华大学有译本)。还有就是推荐谢希仁的《计 算机网络教程》(人民邮电出版社)问题讲得比较清楚,参考文献也比较权威。不过,网络也属于Hardcore System,所以光看书是不够的。建议多 读RFC,http://www.ietf.org/rfc.html里可以按编号下载RFC文档。从IP的读起。等到能掌握10种左右常用协议,就没有几个人敢小看你了。再做的工作我看放在网络设计上就比较好了。
  数据结构的重要性就不言而喻了,学完数据结构你会对你的编程思想进行一番革命性的洗礼,会对如何建立一个合理高效的算法有一个清楚的认识。对于算法的建立我想大家应当注意以下几点:
  当遇到一个算法问题时,首先要知道自己以前有没有处理过这种问题.如果见过,那么你一般会顺利地做出来;如果没见过,那么考虑以下问题:
1. 问题是否是建立在某种已知的熟悉的数据结构(例如,二叉树)上?如果不是,则要自己设计数据结构。
2. 问题所要求编写的算法属于以下哪种类型?(建立数据结构,修改数据结构,遍历,查找,排序...)
3. 分析问题所要求编写的算法的数学性质.是否具备递归特征?(对于递归程序设计,只要设计出合理的参数表以及递归结束的条件,则基本上大功告成.)
4. 继续分析问题的数学本质.根据你以前的编程经验,设想一种可能是可行的解决办法,并证明这种解决办法的正确性.如果题目对算法有时空方面的要求,证明你的设想满足其要求.一般的,时间效率和空间效率难以兼得.有时必须通过建立辅助存储的方法来节省时间.
5. 通过一段时间的分析,你对解决这个问题已经有了自己的一些思路.或者说,你已经可以用自然语言把你的算法简单描述出来.继续验证其正确性,努力发现其中的错误并找出解决办法.在必要的时候(发现了无法解决的矛盾),推翻自己的思路,从头开始构思.
6. 确认你的思路可行以后,开始编写程序.在编写代码的过程中,尽可能把各种问题考虑得详细,周密.程序应该具有良好的结构,并且在关键的地方配有注释.
7. 举一个例子,然后在纸上用笔执行你的程序,进一步验证其正确性.当遇到与你的设想不符的情况时,分析问题产生的原因是编程方面的问题还是算法思想本身有问题.
8. 如果程序通过了上述正确性验证,那么在将其进一步优化或简化。
9. 撰写思路分析,注释.
对于具体的算法思路,只能靠你自己通过自己的知识和经验来加以获得,没有什么特定的规律(否则程序员全部可以下岗了,用机器自动生成代码就可以 了).要有丰富的想象力,就是说当一条路走不通时,不要钻牛角尖,要敢于推翻自己的想法.我也只不过是初学者,说出上面的一些经验,仅供大家参考和讨论。
  关于人工智能,我觉得的也是非常值得大家仔细研究的,虽然不能算是刚刚兴起的学科了,但是绝对是非常有发展前途的一门学科。我国人工智能创 始人之一,北京科技大学涂序彦教授(这老先生是我的导师李小坚博士的导师)对人工智能这样定义:人工智能是模仿、延伸和扩展人与自然的智能的技术科学。在 美国人工智能官方教育网站上对人工智能作了如下定义:Artificial Intelligence, or AI for short, is a combination of computer science, physiology, and philosophy. AI is a broad topic, consisting of different fields, from machine vision to expert systems. The element that the fields of AI have in common is the creation of machines that can "think".



作者: dapplehou 2006-5-25 12:13   回复此发言


10 回复:计算机科学与技术学习心得【转】

这门学科研究的问题大概说有:
(1)符号主义: 符号计算与程序设计基础,知识表达方法 :知识与思维,产生式规则,语意网络,一阶谓词逻辑问题求解方法:搜索策略,启发式搜寻,搜寻算法,问题规约方法,谓词演算:归结原理,归结过程专家系统:建立专家系统的方法及工具
(2)联接主义(神经网络学派):1988年美国权威机构指出:数据库,网络发展呈直线上升,神经网络可能是解决人工智能的唯一途径。关于神经网络学派,现在很多还是在发展阶段。
  我想对于人工智能的学习,大家一定不要像学数学似的及一些现成的结论,要学会分析问题,最好能利用程序设计实现,这里推荐给大家ACM最佳博 士论文奖获得者涂晓媛博士的著作《人工鱼-计算机动画的人工生命方法》(清华大学出版社)。搞人工生命的同学不会不知道国际知名的涂氏父女吧。关于人工智 能的书当然首选《Artificial Intelligence A New Synthesis》Nils J.Nilsson.鼻祖嘛!
  关于网络安全我也想在这里说两句,随着计算机技术的发展,整个社会的信息化水平突飞猛进,计算机网络技术日新月异,网络成了当即社会各个工 作领域不可缺少的组成部分,只要有网络存在,网络安全问题就是一个必须解决好的问题,学习网络安全不是简简单单的收集一些黑客工具黑一黑别人的网站,而是 要学习他的数学原理,实现原理,搞清底层工作机制,这样才能解决大部分的现有问题和新出现的安全问题。 总的来说信息安全学的研究还是非常深奥的,这方面 体会比较深的要算是在最近的微软杯程序设计大赛中利用.NET平台开发的那个项目My E-business Fairy.NET过程中了。
  [3]闲聊软件工程
  关于计算机科学的一些边缘科学我想谈一谈软件工程技术,对于一个企业,推出软件是不是就是几个程序员坐在一起,你写一段程序,我写一段程序 呢?显然不是。软件工程是典型的计算机科学和数学,管理科学,心理学,社会学等学科的综合。它使我们这些搞理论和技术的人进入了一个社会。你所要考虑的不 仅仅是程序的优劣,更应该考虑程序与软件的区别,软件与软件产品的区别,软件软件产品的市场前景,如何去更好的与人交流。这方面我还在学习阶段,以后这方 面再写文章吧,先推荐给大家几本书:畅销20年不衰的《人月神话》(清华大学中文版,中国电力出版社影印版),《软件工程-实践者研究的方法》(机械工业 出版社译本),《人件》(据说每一位微软公司的部门经理都读过这本书,推荐老总们和想当老总的同学都看看,了解一下什么是软件企业中的人)以及微软公司的 《软件开发的科学与艺术》和《软件企业的管理与文化》(研究软件企业的制胜之道当然要研究微软的成功经验了!) 看完上面的书,结合自己做的一些团队项 目,我的一些比较深的体会有这么几点:
1.How important a plan is for a project development.
2.How to communicate with your team members in a more effective way.
3.How to solve unexpected situations.
4.The importance of unification.
5.The importance of doing what you should do.
6.The importance of designing before programming.
7.The importance of management.
8.The importance of thinking what your teammates think.
在软件开发过程中我们应当具有以下能力:
1.Like it if you would like to do it.
We believe that your attitude toward your work will definitely makes great effect on the project.
2.The spirit of group working.
Take myself as an example. I am just a part of the team, just a little part. You must make it clear that you are just a member of the team, but your effort will change your project a lot.
3.Passion
With passion, you can do your job in a more effective way.



作者: dapplehou 2006-5-25 12:15   回复此发言


11 回复:计算机科学与技术学习心得【转】

4.The ability of solving unexpected problems.
5.Learning New things in a very short time
It is the basic requirement for we computer major to learn new technology.
6.Creativity
The tools are changing. As for us, what's more important is to use these new tools and technology to enable people and businesses throughout the world to realize their full potential.
7.The ability to do your work independently.
Every member has his own business. In a team, your work cannot be replaced by others' so you must do your business well in order to assure the project development process.
团队开发当中的一些具体精神应当有:
<1> Success and Failure is not one person's effect.
Your team's success is not the contribution of a single person. Success contributes to the whole team. If your project failed, it also is not just because of one person's poor work. It is also your failure.
<2> Learn from each other.
Every person has his own specialty. Even Bill Gates cannot know all the things about software development. We often learn from each other and gains a lot. The old saying goes like this:
There must be one out of three who can be your teacher. In our team we say: Every person is your teacher.
<3> Help those who have problems. Use the group working spirit to overcome all the difficulties.
There is no need to explain it. As the old saying: Two heads are better than one. We always find it difficult to solve all the problems just by oneself.
<4> Praise them who have got some improvement.
In our team, I always praise the members when they have finished something or just solved one problem, and they think that it is interesting and gains a lot. Because they can see their efforts.
<5> Say something if needed.
这个是一次软件大赛当中的体会,和大家也做个交流,不过不能再说了,软件工程学说起来写本2000页的书一点也不多,恕我才疏学浅,不再做过多论述了。
  [4]谈谈学习态度的问题
  关于计算机技术的学习我想是这样的:学校开设的任何一门科学都有其滞后性,不要总认为自己掌握的某门技术就已经是天下无敌手了,虽然现在 Java,VB,C,C++用的都很多,怎能保证没有被淘汰的一天,我想.NET平台的诞生和X#语言的初见端倪完全可以说明问题。换言之,在我们掌握一 门新技术的同时就又有更新的技术产生,身为当代的大学生应当有紧跟科学发展的素质。举个例子,就像有些同学总说,我做网页设计就喜欢直接写html,不愿 意用什么Frontpage,Dreamweaver。能用语言写网页固然很好,但有高效的手段你为什么不使呢?仅仅是为了显示自己的水平高, unique? 我看真正水平高的是能够以最快的速度接受新事物的人。高级程序设计语言的发展日新月异,今后的程序设计就像人们在说话一样,我想大家从 xml中应是有所体会了。难道我们真就写个什么都要用汇编,以显示自己的水平高,真是这样倒不如直接用机器语言写算了。反过来说,想要以最快的速度接受并 利用新技术关键还是在于你对计算机科学地把握程度。
  计算机技术牵扯的内容更为广泛些,一项一项说恐怕没个一年半载也说不清。我只想提醒大家的还是那句话,技术与科学是不能分家的,学好了科学 同时搞技术,这才是上上策。犹如英语,原先人们与老外交流必须要个翻译,现在满马路的人都会说英语。就连21世纪英语演讲比赛的冠军都轮不到英语系的学生 了。计算机也是一样的,我们必须面对的一个现实就是:计算机真就只是一个工具,如果不具备其它方面的素养,计算机系的学生虽然不能说找不到工作,不过总有 一天当其他专业性人才掌握了计算机技术后将比我们出色许多。原因就在于计算机解决的大都是实际问题,实际问题的知识却是我们少有的。单一的计算机技术没有 立足之地。



作者: dapplehou 2006-5-25 12:15   回复此发言


12 回复:计算机科学与技术学习心得【转】

  我想是时候指出:学习每一个课程之前,都要先搞清这一课程的学习目的。这一学科的应用领域。据我自身所了解到的同龄同学和低年级的同学的学习 状况:他们之中很少有人知道学一个学科的学习目的,期末考试结束了也不知道学这科做什么用。这就失去了读计算机科学的意义。当然这与现存的教育思想不能说 一点关系都没有。
  总的来说,从教育角度来讲,国内高校的课程安排不是很合理,强调理论,又不愿意在理论上深入教育,无力接受新技术,想避开新技术又无法避得 一干二净。我觉得关键问题就是国内的高校难于突破现状,条条框框限制着怎么求发展。我们虽然认识得到国外教育的优越性,但为什么迟迟不能采取行动?哪怕是 去粗取精的取那么一点点。我们需要改变。从我们自身角度来讲,多数人4年下来既没有学习计算机科学的学术水平,也没有学习计算机技术的那种韧劲。在我刚上 大一时,我的计算机科学入门导师,淮北煤炭师范学院王爱平教授曾经对我说过这样一番话:"当你选择了计算机这一门科学,就意味着你踏上了一条不归路,就意 味着你一生都要为之奋斗……你的身后是悬崖,只有向前走,不能往后退。"
  有些同学说按照这样学习学的东西太多,有的未见得有用,我想打个形象的比方:学校学出来的人都是一个球体,方方面面的知识都应具备。可是社 会上需要球体的地方很少,反而需要的是砖和瓦,即精通某一行的人才。但是对于同等体积的物体,用球体来改造是最方便最省事的。学校的学生很多,为了能够使 更多的学生来适应这个社会,学校也就不得以把所有的学生都打造成一个球体,然后让社会对这些学生进行再加工,成为真正能够有用的人才。即使你非常清楚自己 的将来要干什么,并且非常下定决心要走自己的路,这一步你也必须走,世界是在不断变化的,你不能预料未来。想清楚,努力去干吧!
  必须结束这篇"胡侃"了,再侃下去非我力所能及。其实计算机还有很多基础课都值得一侃。怎奈我造诣有限,不敢再让内行耻笑。计算机科学博大 精深,我只是个初学者。最后声明:这些只针对本科阶段的学习。即使把这些全弄通了,前面的路还长,计算机科学需要我们为之奋斗......学习计算机科学 需要韧性,更需要创新,需要激情。深刻学习理论知识,勇于接受新技术的挑战,这才是我们这一代人应具有的素质。最后送大家一句话 "Wake up every day with a feeling of passion for the difference technology will make in people's life! "。
在我大一时无意中找到了南京大学网友sir的帖子"胡侃(理论)计算机学习",这个帖子对我的大学学习起了至关重要的作用,后来也同他进行了一 些交流,写这份材料时也引用了其中的不少观点,并得到了sir的支持。再有就是每次和本系司徒彦南兄的交谈,都能从中学到很多东西,在这份材料中也有很多 体现。这份材料是我原来在实验学院进行新生入学教育的讲稿之一,原有基础上改进了其中我认为不太合适的理论,修正了一些观点,在推荐教材方面结合我的学习 情况有了较大改变。值得一提的是增加了一些计算机理论的内容,计算机技术的内容结合我国的教学情况和我们学习的实际情况进行了重写。这里所作的工作也只是 将各位学长和同学们的学习体会以及我在学习计算机科学时的所思所想汇总在一起写了下来,很不成熟。目的就是希望能够给一些刚入学或者是学习计算机科学还没 有入门的同学以一些建议。不期能够起到多大的作用,但求能为同学们的学习计算机科学与技术带来微薄的帮助。还是那句话,计算机科学博大精深,我只是个初学 者,不当之处希望大家批评指正。

星期二, 十二月 18, 2007

视频术语

3d:three dimensional,三维
3ds(3d subsystem,三维子系统)
ae(atmospheric effects,雾化效果)
afr(alternate frame rendering,交替渲染技术)
anisotropic filtering(各向异性过滤)
appe(advanced packet parsing engine,增强形帧解析引擎)
av(analog video,模拟视频)
back buffer,后置缓冲
backface culling(隐面消除)
battle for eyeballs(眼球大战,各3d图形芯片公司为了争夺用户而作的竞争)
bilinear filtering(双线性过滤)
cem(cube environment mapping,立方环境映射)
cg(computer graphics,计算机生成图像)
clipping(剪贴纹理)
clock synthesizer,时钟合成器
compressed textures(压缩纹理)
concurrent command engine,协作命令引擎
center processing unit utilization,中央处理器占用率
dac(digital to analog converter,数模传换器)
decal(印花法,用于生成一些半透明效果,如:鲜血飞溅的场面)
dfp(digital flat panel,数字式平面显示器)
dfs: dynamic flat shading(动态平面描影),可用作加速
dithering(抖动)
directional light,方向性光源
dme: direct memory execute(直接内存执行)
dof(depth of field,多重境深)
dot texture blending(点型纹理混和)
double buffering(双缓冲区)
dir(direct rendering infrastructure,基层直接渲染)
dvi(digital video interface,数字视频接口)
dxr: dynamicxtended resolution(动态可扩展分辨率)
dxtc(direct x texture compress,directx纹理压缩,以s3tc为基础)
dynamic z-buffering(动态z轴缓冲区),显示物体远近,可用作远景
e-ddc(enhanced display data channel,增强形视频数据通道协议,定义了显示输出与主系统之间的通讯通道,能提高显示输出的画面质量)
edge anti-aliasing,边缘抗锯齿失真
e-edid(enhanced extended identification data,增强形扩充身份辨识数据,定义了电脑通讯视频主系统的数据格式)
execute buffers,执行缓冲区
environment mapped bump mapping(环境凹凸映射)
extended burst transactions,增强式突发处理
front buffer,前置缓冲
flat(平面描影)
frames rate is king(帧数为王)
fsaa(full scene anti-aliasing,全景抗锯齿)
fog(雾化效果)
flip double buffered(反转双缓存)
fog table quality(雾化表画质)
gart(graphic address remappng table,图形地址重绘表)
gouraud shading,高洛德描影,也称为内插法均匀涂色
gpu(graphics processing unit,图形处理器)
gtf(generalized timing formula,一般程序时间,定义了产生画面所需要的时间,包括了诸如画面刷新率等)
hal(hardware abstraction layer,硬件抽像化层)
hardware motion compensation(硬件运动补偿)
hdtv(high definition television,高清晰度电视)
hel: hardware emulation layer(硬件模拟层)
high triangle count(复杂三角形计数)
icd(installable client driver,可安装客户端驱动程序)
idct(inverse discrete cosine transform,非连续反余弦变换,geforce的dvd硬件强化技术)
immediate mode,直接模式
ippr: image processing and pattern recognition(图像处理和模式识别)
large textures(大型纹理)
lf(linear filtering,线性过滤,即双线性过滤)
lighting(光源)
lightmap(光线映射)
local peripheral bus(局域边缘总线)
mipmapping(mip映射)
modulate(调制混合)
motion compensation,动态补偿
motion blur(模糊移动)
mpps:million pixels per second,百万个像素/秒
multi-resolution mesh,多重分辨率组合
multi threaded bus master,多重主控
multitexture(多重纹理)
nerest mipmap(邻近mip映射,又叫点采样技术)
overdraw(透支,全景渲染造成的浪费)
partial texture downloads(并行纹理传输)
parallel processing perspective engine(平行透视处理器)
pc(perspective correction,透视纠正)
pgc(parallel graphics configuration,并行图像设置)
pixel(picture element,图像元素,又称p像素,屏幕上的像素点)
point light(一般点光源)
point sampling(点采样技术,又叫邻近mip映射)
precise pixel interpolation,精确像素插值
procedural textures(可编程纹理)
ramdac(random access memory digital to analog converter,随机存储器数/模转换器)
reflection mapping(反射贴图)
render(着色或渲染)
s端子(seperate)
s3(sight、sound、speed,视频、音频、速度)
s3tc(s3 texture compress,s3纹理压缩,仅支持s3显卡)
s3tl(s3 transformation & lighting,s3多边形转换和光源处理)
screen buffer(屏幕缓冲)
sdtv(standard definition television,标准清晰度电视)
sem(spherical environment mapping,球形环境映射)
shading,描影
single pass multi-texturing,单通道多纹理
sli(scanline interleave,扫描线间插,3dfx的双voodoo 2配合技术)
smart filter(智能过滤)
soft shadows(柔和阴影)
soft reflections(柔和反射)
spot light(小型点光源)
sra(symmetric rendering architecture,对称渲染架构)
stencil buffers(模板缓冲)
stream processor(流线处理)
superscaler rendering,超标量渲染
tbfb(tile based frame buffer,碎片纹理帧缓存)
texel(t像素,纹理上的像素点)
texture fidelity(纹理真实性)
texture swapping(纹理交换)
t&l(transform and lighting,多边形转换与光源处理)
t-buffer(t缓冲,3dfx voodoo4的特效,包括全景反锯齿full-scene anti-aliasing、动态模糊motion blur、焦点模糊depth of field blur、柔和阴影soft shadows、柔和反射soft reflections)
tca(twin cache architecture,双缓存结构)
transparency(透明状效果)
transformation(三角形转换)
trilinear filtering(三线性过滤)
texture modes,材质模式
tmipm: trilinear mip mapping(三次线性mip材质贴图)
uma(unified memory architecture,统一内存架构)
visualize geometry engine,可视化几何引擎
vertex lighting(顶点光源)
vertical interpolation(垂直调变)
vip(video interface port,视频接口)
virge: video and rendering graphics engine(视频描写图形引擎)
voxel(volume pixels,立体像素,novalogic的技术)
vqtc(vector-quantization texture compression,向量纹理压缩)
vsis(video signal standard,视频信号标准)
v-sync(同步刷新)
z buffer(z缓存)

星期二, 十月 16, 2007

电平总结

TTL和CMOS电平

1,TTL电平:
输出高电平>2.4V,输出低电平<0.4V。在室温下,一般输出高电平是3.5V,输出低电平是0.2V。最小输入高电平和低电平:输入高电平>=2.0V,输入低电平<=0.8V,噪声容限是0.4V。
2,CMOS电平:
1逻辑电平电压接近于电源电压,0逻辑电平接近于0V。而且具有很宽的噪声容限。
3,电平转换电路:
因为TTL和COMS的高低电平的值不一样(ttl 5v<==>cmos 3.3v),所以互相连接时需要电平的转换:就是用两个电阻对电平分压,没有什么高深的东西。哈哈
4,OC门,即集电极开路门电路,OD门,即漏极开路门电路,必须外界上拉电阻和电源才能将开关电平作为高低电平用。否则它一般只作为开关大电压和大电流负载,所以又叫做驱动门电路。
5,TTL和COMS电路比较:
1)TTL电路是电流控制器件,而coms电路是电压控制器件。
2)TTL电路的速度快,传输延迟时间短(5-10ns),但是功耗大。COMS电路的速度慢,传输延迟时间长(25-50ns),但功耗低。COMS电路本身的功耗与输入信号的脉冲频率有关,频率越高,芯片集越热,这是正常现象。
3)COMS电路的锁定效应:
COMS电路由于输入太大的电流,内部的电流急剧增大,除非切断电源,电流一直在增大。这种效应就是锁定效应。当产生锁定效应时,COMS的内部电流能达到40mA以上,很容易烧毁芯片。
防御措施: 1)在输入端和输出端加钳位电路,使输入和输出不超过不超过规定电压。
2)芯片的电源输入端加去耦电路,防止VDD端出现瞬间的高压。
3)在VDD和外电源之间加线流电阻,即使有大的电流也不让它进去。
4)当系统由几个电源分别供电时,开关要按下列顺序:开启时,先开启COMS电路得电源,再开启输入信号和负载的电源;关闭时,先关闭输入信号和负载的电源,再关闭COMS电路的电源。
6,COMS电路的使用注意事项
1)COMS电路时电压控制器件,它的输入总抗很大,对干扰信号的捕捉能力很强。所以,不用的管脚不要悬空,要接上拉电阻或者下拉电阻,给它一个恒定的电平。
2)输入端接低内组的信号源时,要在输入端和信号源之间要串联限流电阻,使输入的电流限制在1mA之内。
3)当接长信号传输线时,在COMS电路端接匹配电阻。
4)当输入端接大电容时,应该在输入端和电容间接保护电阻。电阻值为R=V0/1mA.V0是外界电容上的电压。
5)COMS的输入电流超过1mA,就有可能烧坏COMS。
7,TTL门电路中输入端负载特性(输入端带电阻特殊情况的处理):
1)悬空时相当于输入端接高电平。因为这时可以看作是输入端接一个无穷大的电阻。
2)在门电路输入端串联10K电阻后再输入低电平,输入端出呈现的是高电平而不是低电平。因为由TTL门电路的输入端负载特性可知,只有在输入端接的串联电阻小于910欧时,它输入来的低电平信号才能被门电路识别出来,串联电阻再大的话输入端就一直呈现高电平。这个一定要注意。COMS门电路就不用考虑这些了。
8,TTL电路有集电极开路OC门,MOS管也有和集电极对应的漏极开路的OD门,它的输出就叫做开漏输出。OC门在截止时有漏电流输出,那就是漏电流,为什么有漏电流呢?那是因为当三机管截止的时候,它的基极电流约等于0,但是并不是真正的为0,经过三极管的集电极的电流也就不是真正的 0,而是约0。而这个就是漏电流。开漏输出:OC门的输出就是开漏输出;OD门的输出也是开漏输出。它可以吸收很大的电流,但是不能向外输出的电流。所以,为了能输入和输出电流,它使用的时候要跟电源和上拉电阻一齐用。OD门一般作为输出缓冲/驱动器、电平转换器以及满足吸收大负载电流的需要。
9,什么叫做图腾柱,它与开漏电路有什么区别?
TTL集成电路中,输出有接上拉三极管的输出叫做图腾柱输出,没有的叫做OC门。因为TTL就是一个三级关,图腾柱也就是两个三级管推挽相连。所以推挽就是图腾。一般图腾式输出,高电平400UA,低电平8MA

要了解逻辑电平的内容,首先要知道以下几个概念的含义: [52RD.com]
1:输入高电平(Vih): 保证逻辑门的输入为高电平时所允许的最小输入高电平,当输入电平高于Vih时,则认为输入电平为高电平。 [52RD.com]
2:输入低电平(Vil):保证逻辑门的输入为低电平时所允许的最大输入低电平,当输入电平低于Vil时,则认为输入电平为低电平。 [52RD.com]
3:输出高电平(Voh):保证逻辑门的输出为高电平时的输出电平的最小值,逻辑门的输出为高电平时的电平值都必须大于此Voh。 [52RD.com]
4:输出低电平(Vol):保证逻辑门的输出为低电平时的输出电平的最大值,逻辑门的输出为低电平时的电平值都必须小于此Vol。 [52RD.com]
5:阀值电平(Vt):数字电路芯片都存在一个阈值电平,就是电路刚刚勉强能翻转动作时的电平。它是一个界于Vil、Vih之间的电压值,对于CMOS电路的阈值电平,基本上是二分之一的电源电压值,但要保证稳定的输出,则必须要求输入高电平> Vih,输入低电平[52RD.com]
对于一般的逻辑电平,以上参数的关系如下: [52RD.com]
Voh > Vih > Vt > Vil > Vol。 [52RD.com]
6:Ioh:逻辑门输出为高电平时的负载电流(为拉电流)。 [52RD.com]
7:Iol:逻辑门输出为低电平时的负载电流(为灌电流)。 [52RD.com]
8:Iih:逻辑门输入为高电平时的电流(为灌电流)。 [52RD.com]
9:Iil:逻辑门输入为低电平时的电流(为拉电流)。 [52RD.com]
门电路输出极在集成单元内不接负载电阻而直接引出作为输出端,这种形式的门称为开路门。开路的TTL、CMOS、ECL门分别称为集电极开路(OC)、漏极开路(OD)、发射极开路(OE),使用时应审查是否接上拉电阻(OC、OD门)或下拉电阻(OE门),以及电阻阻值是否合适。对于集电极开路(OC)门,其上拉电阻阻值RL应满足下面条件: [52RD.com]
(1): RL < (VCC-Voh)/(n*Ioh+m*Iih) [52RD.com]
(2):RL > (VCC-Vol)/(Iol+m*Iil) [52RD.com]
其中n:线与的开路门数;m:被驱动的输入端数。 [52RD.com]
:常用的逻辑电平[52RD.com]
·逻辑电平:有TTL、CMOS、LVTTL、ECL、PECL、GTL;RS232、RS422、LVDS等。 [52RD.com]
·其中TTL和CMOS的逻辑电平按典型电压可分为四类:5V系列(5V TTL和5V CMOS)、3.3V系列,2.5V系列和1.8V系列。 [52RD.com]
·5V TTL和5V CMOS逻辑电平是通用的逻辑电平。 [52RD.com]
·3.3V及以下的逻辑电平被称为低电压逻辑电平,常用的为LVTTL电平。 [52RD.com]
·低电压的逻辑电平还有2.5V和1.8V两种。 [52RD.com]
·ECL/PECL和LVDS是差分输入输出。 [52RD.com]
·RS-422/485和RS-232是串口的接口标准,RS-422/485是差分输入输出,RS-232是单端输入输出。 [52RD.com]
[52RD.com]
title=dvubb pluginspage="http://www".macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash src="UploadFile/2006-7/200672321204716568".swf width="500" height="300" type="application/x-shockwave-flash" quality="high">[52RD.com]
TTL和CMOS的逻辑电平关系[52RD.com]
图2-1:TTL和CMOS的逻辑电平图 [52RD.com]
上图为5V TTL逻辑电平、5V CMOS逻辑电平、LVTTL逻辑电平和LVCMOS逻辑电平的示意图。 [52RD.com]
5V TTL逻辑电平和5V CMOS逻辑电平是很通用的逻辑电平,注意他们的输入输出电平差别较大,在互连时要特别注意。 [52RD.com]
另外5V CMOS器件的逻辑电平参数与供电电压有一定关系,一般情况下,Voh≥Vcc-0.2V,Vih≥0.7Vcc;Vol≤0.1V,Vil≤0.3Vcc;噪声容限较TTL电平高。 [52RD.com]
JEDEC组织在定义3.3V的逻辑电平标准时,定义了LVTTL和LVCMOS逻辑电平标准。 [52RD.com]
LVTTL逻辑电平标准的输入输出电平与5V TTL逻辑电平标准的输入输出电平很接近,从而给它们之间的互连带来了方便。 LVTTL逻辑电平定义的工作电压范围是3.0-3.6V。 [52RD.com]
LVCMOS逻辑电平标准是从5V CMOS逻辑电平关注移植过来的,所以它的Vih、Vil和Voh、Vol与工作电压有关,其值如上图所示。LVCMOS逻辑电平定义的工作电压范围是2.7-3.6V。 [52RD.com]
5V 的CMOS逻辑器件工作于3.3V时,其输入输出逻辑电平即为LVCMOS逻辑电平,它的Vih大约为0.7×VCC=2.31V左右,由于此电平与 LVTTL的Voh(2.4V)之间的电压差太小,使逻辑器件工作不稳定性增加,所以一般不推荐使用5V CMOS器件工作于3.3V电压的工作方式。由于相同的原因,使用LVCMOS输入电平参数的3.3V逻辑器件也很少。 [52RD.com]
JEDEC组织为了加强在3.3V上各种逻辑器件的互连和3.3V与5V逻辑器件的互连,在参考LVCMOS和LVTTL逻辑电平标准的基础上,又定义了一种标准,其名称即为3.3V逻辑电平标准,其参数如下: [52RD.com]
[52RD.com]
图2-2:低电压逻辑电平标准 [52RD.com]
从上图可以看出,3.3V逻辑电平标准的参数其实和LVTTL逻辑电平标准的参数差别不大,只是它定义的Vol可以很低(0.2V),另外,它还定义了其 Voh最高可以到VCC-0.2V,所以3.3V逻辑电平标准可以包容LVCMOS的输出电平。在实际使用当中,对LVTTL标准和3.3V逻辑电平标准并不太区分,某些地方用LVTTL电平标准来替代3.3V逻辑电平标准,一般是可以的。 [52RD.com]
JEDEC组织还定义了2.5V逻辑电平标准,如上图所示。另外,还有一种2.5V CMOS逻辑电平标准,它与上图的2.5V逻辑电平标准差别不大,可兼容。 [52RD.com]
低电压的逻辑电平还有1.8V、1.5V、1.2V的逻辑电平。 [52RD.com]
、TTL和CMOS逻辑器件[52RD.com]
逻辑器件的分类方法有很多,下面以逻辑器件的功能、工艺特点和逻辑电平等方法来进行简单描述。 [52RD.com]
:TTL和CMOS器件的功能分类[52RD.com]
按功能进行划分,逻辑器件可以大概分为以下几类: 门电路和反相器、选择器、译码器、计数器、寄存器、触发器、锁存器、缓冲驱动器、收发器、总线开关、背板驱动器等。 [52RD.com]
1:门电路和反相器 [52RD.com]
逻辑门主要有与门74X08、与非门74X00、或门74X32、或非门74X02、异或门74X86、反相器74X04等。 [52RD.com]
2:选择器 [52RD.com]
选择器主要有2-1、4-1、8-1选择器74X157、74X153、74X151等。 [52RD.com]
3: 编/译码器 [52RD.com]
编/译码器主要有2/4、3/8和4/16译码器74X139、74X138、74X154等。 [52RD.com]
4:计数器 [52RD.com]
计数器主要有同步计数器74X161和异步计数器74X393等。 [52RD.com]
5:寄存器 [52RD.com]
寄存器主要有串-并移位寄存器74X164和并-串寄存器74X165等。 [52RD.com]
6:触发器 [52RD.com]
触发器主要有J-K触发器、带三态的D触发器74X374、不带三态的D触发器74X74、施密特触发器等。 [52RD.com]
7:锁存器 [52RD.com]
锁存器主要有D型锁存器74X373、寻址锁存器74X259等。 [52RD.com]
8:缓冲驱动器 [52RD.com]
缓冲驱动器主要有带反向的缓冲驱动器74X240和不带反向的缓冲驱动器74X244等。 [52RD.com]
9:收发器 [52RD.com]
收发器主要有寄存器收发器74X543、通用收发器74X245、总线收发器等。 [52RD.com]
10:总线开关 [52RD.com]
总线开关主要包括总线交换和通用总线器件等。 [52RD.com]
11:背板驱动器 [52RD.com]
背板驱动器主要包括TTL或LVTTL电平与GTL/GTL+(GTLP)或BTL之间的电平转换器件。 [52RD.com]
:TTL和CMOS逻辑器件的工艺分类特点[52RD.com]
按工艺特点进行划分,逻辑器件可以分为Bipolar、CMOS、BiCMOS等工艺,其中包括器件系列有: [52RD.com]
Bipolar(双极)工艺的器件有: TTL、S、LS、AS、F、ALS。 [52RD.com]
CMOS工艺的器件有: HC、HCT、CD40000、ACL、FCT、LVC、LV、CBT、ALVC、AHC、AHCT、CBTLV、AVC、GTLP。 [52RD.com]
BiCMOS工艺的器件有: BCT、ABT、LVT、ALVT。 [52RD.com]
:TTL和CMOS逻辑器件的电平分类特点[52RD.com]
TTL和CMOS的电平主要有以下几种:5VTTL、5VCMOS(Vih≥0.7*Vcc,Vil≤0.3*Vcc)、3.3V电平、2.5V电平等。 [52RD.com]
5V的逻辑器件 [52RD.com]
5V器件包含TTL、S、LS、ALS、AS、HCT、HC、BCT、74F、ACT、AC、AHCT、AHC、ABT等系列器件 [52RD.com]
3.3V及以下的逻辑器件 [52RD.com]
包含LV的和V 系列及AHC和AC系列,主要有LV、AHC、AC、ALB、LVC、ALVC、LVT等系列器件。 [52RD.com]
具体情况可以参考下图: [52RD.com]
[52RD.com]
图3-1:TI公司的逻辑器件示例图 [52RD.com]
:包含特殊功能的逻辑器件[52RD.com]
A.总线保持功能(Bus hold) [52RD.com]
由内部反馈电路保持输入端最后的确定状态,防止因输入端浮空的不确定而导致器件振荡自激损坏;输入端无需外接上拉或下拉电阻,节省PCB空间,降低了器件成本开销和功耗,见图6-3。ABT、LVT、ALVC、ALVCH、ALVTH、LVC、GTL系列器件有此功能。命名特征为附加了“H”如:74ABTH16244。 [52RD.com]
[52RD.com]
图3-2:总线保持功能图 图3-3:串行阻尼电阻图 [52RD.com]
B.串联阻尼电阻(series damping resistors) [52RD.com]
输出端加入串联阻尼电阻可以限流,有助于降低信号上冲/下冲噪声,消除线路振铃,改善信号质量。如图6-4所示。具有此特征的ABT、LVC、LVT、 ALVC系列器件在命名中加入了“2”或“R”以示区别,如ABT162245,ALVCHR162245。对于单向驱动器件,串联电阻加在其输出端,命名如SN74LVC2244;对于双向的收发器件,串联电阻加在两边的输出端,命名如SN74LVCR2245。 [52RD.com]
C.上电/掉电三态(PU3S,Power up/power down 3-state) [52RD.com]
即热拔插性能。上电/掉电时器件输出端为三态,Vcc阀值为2.1V;应用于热拔插器件/板卡产品,确保拔插状态时输出数据的完整性。多数ABT、LVC、LVT、LVTH系列器件有此特征。 [52RD.com]
D.ABT 器件(Advanced BiCMOS Technology) [52RD.com]
结合了CMOS器件(如HC/HCT、LV/LVC、ALVC、AHC/AHCT)的高输入阻抗特性和双极性器件(Bipolar,如TTL、LS、AS、ALS)输出驱动能力强的特点。包括ABT、LVT、ALVT等系列器件,应用于低电压,低静态功耗环境。 [52RD.com]
E.Vcc/GND对称分布 [52RD.com]
16位Widebus器件的重要特征,对称配置引脚,有利于改善噪声性能。AHC/AHCT、AVT、AC/ACT、CBT、LVT、ALVC、LVC、ALB系列16位Widebus器件有此特征。 [52RD.com]
F.分离轨器件(Split-rail) [52RD.com]
即双电源器件,具有两种电源输入引脚VccA和VccB,可分别接5V或3.3V电源电压。如ALVC164245、LVC4245等,命名特征为附加了“4”。[52RD.com]
[52RD.com]
逻辑器件的使用指南[52RD.com]
1:多余不用输入管脚的处理 [52RD.com]
在多数情况下,集成电路芯片的管脚不会全部被使用。例如74ABT16244系列器件最多可以使用16路I/O管脚,但实际上通常不会全部使用,这样就会存在悬空端子。所有数字逻辑器件的无用端子必须连接到一个高电平或低电平,以防止电流漂移(具有总线保持功能的器件无需处理不用输入管脚)。究竟上拉还是下拉由实际器件在何种方式下功耗最低确定。 244、16244经测试在接高电平时静态功耗较小,而接地时静态功耗较大,故建议其无用端子处理以通过电阻接电源为好,电阻值推荐为1~10K。 [52RD.com]
2:选择板内驱动器件的驱动能力,速度,不能盲目追求大驱动能力和高速的器件,应该选择能够满足设计要求,同时有一定的余量的器件,这样可以减少信号过冲,改善信号质量。并且在设计时必须考虑信号匹配。 [52RD.com]
3:在对驱动能力和速度要求较高的场合,如高速总线型信号线,可使用ABT、LVT系列。板间接口选择ABT16244/245或 LVTH16244/245,并在母板两端匹配,在不影响速度的条件下与母板接口尽量串阻,以抑制过冲、保护器件,典型电阻值为10- 200Ω左右,另外,也可以使用并接二级管来进行处理,效果也不错,如1N4148等(抗冲击较好)。 [52RD.com]
4:在总线达到产生传输线效应的长度后,应考虑对传输线进行匹配,一般采用的方式有始端匹配、终端匹配等。 [52RD.com]
始端匹配是在芯片的输出端串接电阻,目的是防止信号畸变和地弹反射,特别当总线要透过接插件时,尤其须做始端匹配。内部带串联阻尼电阻的器件相当于始端匹配,由于其阻值固定,无法根据实际情况进行调整,在多数场合对于改善信号质量收效不大,故此不建议推荐使用。始端匹配推荐电阻值为10~51 Ω,在实际使用中可根据IBIS模型模拟仿真确定其具体值。 [52RD.com]
由于终端匹配网络加重了总线负载,所以不应该因为匹配而使Buffer的实际驱动电流大于驱动器件所能提供的最大Source、Sink电流值。 [52RD.com]
应选择正确的终端匹配网络,使总线即使在没有任何驱动源时,其线电压仍能保持在稳定的高电平。 [52RD.com]
5:要注意高速驱动器件的电源滤波。如ABT、LVT系列芯片在布线时,建议在芯片的四组电源引脚附近分别接0.1 μ或0.01 μ电容。 [52RD.com]
6:可编程器件任何电源引脚、地线引脚均不能悬空;在每个可编程器件的电源和地间要并接0.1uF的去耦电容,去耦电容尽量靠近电源引脚,并与地形成尽可能小的环路。 [52RD.com]
7:收发总线需有上拉电阻或上下拉电阻,保证总线浮空时能处于一个有效电平,以减小功耗和干扰。 [52RD.com]
8:373/374/273等器件为工作可靠,锁存时钟输入建议串入10-200欧电阻。 [52RD.com]
9:时钟、复位等引脚输入往往要求较高电平,必要时可上拉电阻。 [52RD.com]
10:注意不同系列器件是否有带电插拔功能及应用设计中的注意事项,在设计带电插拔电路时请参考公司的《单板带电插拔设计规范》。 [52RD.com]
11:注意电平接口的兼容性。 选用器件时要注意电平信号类型,对于有不同逻辑电平互连的情况,请遵守本规范的相应的章节的具体要求。 [52RD.com]
12: 在器件工作过程中,为保证器件安全运行,器件引脚上的电压及电流应严格控制在器件手册指定的范围内。逻辑器件的工作电压不要超出它所允许的范围。 [52RD.com]
13:逻辑器件的输入信号不要超过它所能允许的电压输入范围,不然可能会导致芯片性能下降甚至损坏逻辑器件。 [52RD.com]
14:对开关量输入应串电阻,以避免过压损坏。 [52RD.com]
15:对于带有缓冲器的器件不要用于线性电路,如放大器。 [52RD.com]
、TTL、CMOS器件的互连[52RD.com]
:器件的互连总则[52RD.com]
在公司产品的某些单板上,有时需要在某些逻辑电平的器件之间进行互连。在不同逻辑电平器件之间进行互连时主要考虑以下几点: [52RD.com]
1:电平关系,必须保证在各自的电平范围内工作,否则,不能满足正常逻辑功能,严重时会烧毁芯片。 [52RD.com]
2:驱动能力,必须根据器件的特性参数仔细考虑,计算和试验,否则很可能造成隐患,在电源波动,受到干扰时系统就会崩溃。 [52RD.com]
3:时延特性,在高速信号进行逻辑电平转换时,会带来较大的延时,设计时一定要充分考虑其容限。 [52RD.com]
4:选用电平转换逻辑芯片时应慎重考虑,反复对比。通常逻辑电平转换芯片为通用转换芯片,可靠性高,设计方便,简化了电路,但对于具体的设计电路一定要考虑以上三种情况,合理选用。 [52RD.com]
对于数字电路来说,各种器件所需的输入电流、输出驱动电流不同,为了驱动大电流器件、远距离传输、同时驱动多个器件,都需要审查电流驱动能力:输出电流应大于负载所需输入电流;另一方面,TTL、CMOS、ECL等输入、输出电平标准不一致,同时采用上述多种器件时应考虑电平之间的转换问题。 [52RD.com]
我们在电路设计中经常遇到不同的逻辑电平之间的互连,不同的互连方法对电路造成以下影响: [52RD.com]
·对逻辑电平的影响。应保证合格的噪声容限(Vohmin-Vihmin≥0.4V,Vilmax-Volmax ≥0.4V),并且输出电压不超过输入电压允许范围。 [52RD.com]
·对上升/下降时间的影响。应保证Tplh和Tphl满足电路时序关系的要求和EMC的要求。 [52RD.com]
·对电压过冲的影响。过冲不应超出器件允许电压绝对最大值,否则有可能导致器件损坏。 [52RD.com]
TTL和CMOS的逻辑电平关系如下图所示: [52RD.com]
图4-1: TTL和CMOS的逻辑电平关系图 [52RD.com]
图4-2:低电压逻辑电平标准 [52RD.com]
3.3V 的逻辑电平标准如前面所述有三种,实际的3.3V TTL/CMOS逻辑器件的输入电平参数一般都使用LVTTL或3.3V逻辑电平标准(一般很少使用LVCMOS输入电平),输出电平参数在小电流负载时高低电平可分别接近电源电压和地电平(类似LVCMOS输出电平),在大电流负载时输出电平参数则接近LVTTL电平参数,所以输出电平参数也可归入 3.3V逻辑电平,另外,一些公司的手册中将其归纳如LVTTL的输出逻辑电平,也可以。 [52RD.com]
在下面讨论逻辑电平的互连时,对3.3V TTL/CMOS的逻辑电平,我们就指的是3.3V逻辑电平或LVTTL逻辑电平。 [52RD.com]
常用的TTL和CMOS逻辑电平分类有:5V TTL、5V CMOS、3.3V TTL/CMOS、3.3V/5V Tol.、和OC/OD门。 [52RD.com]
其中: [52RD.com]
3.3V/5V Tol.是指输入是3.3V逻辑电平,但可以忍受5V电压的信号输入。 [52RD.com]
3.3V TTL/CMOS逻辑电平表示不能输入5V信号的逻辑电平,否则会出问题。 [52RD.com]
注意某些5V的CMOS逻辑器件,它也可以工作于3.3V的电压,但它与真正的3.3V器件(是LVTTL逻辑电平)不同,比如其VIH是2.31V(= 0.7×3.3V,工作于3.3V)(其实是LVCMOS逻辑输入电平),而不是2.0V,因而与真正的3.3V器件互连时工作不太可靠,使用时要特别注意,在设计时最好不要采用这类工作方式。 [52RD.com]
值得注意的是有些器件有单独的输入或输出电压管脚,此管脚接3.3V的电压时,器件的输入或输出逻辑电平为3.3V的逻辑电平信号,而当它接5V电压时,输入或输出的逻辑电平为5V的逻辑电平信号,此时应该按该管脚上接的电压的值来确定输入和输出的逻辑电平属于哪种分类。 [52RD.com]
对于可编程器件(EPLD和FPGA)的互连也要根据器件本身的特点并参考本章节的内容进行处理。 [52RD.com]
以上5种逻辑电平类型之间的驱动关系如下表: [52RD.com]
输入[52RD.com]
5V TTL 3.3V /5V Tol. 3.3V TTL/CMOS 5V CMOS[52RD.com]
输出 5V TTL √ √ ?/FONT> ?/FONT>[52RD.com]
3.3V TTL/CMOS √ √ √ ?/FONT>[52RD.com]
5V CMOS √ √ ?/FONT> √[52RD.com]
OC/OD 上拉 上拉 上拉 上拉[52RD.com]
上表中打钩(√)的表示逻辑电平直接互连没有问题,打星号(?/FONT>)的表示要做特别处理。 [52RD.com]
对于打星号(?/FONT>)的逻辑电平的互连情况,具体见后面说明。 [52RD.com]
一般对于高逻辑电平驱动低逻辑电平的情况如简单处理估计可以通过串接10-1K欧的电阻来实现,具体阻值可以通过试验确定,如为可靠起见,可参考后面推荐的接法。 [52RD.com]
从上表可看出OC/OD输出加上拉电阻可以驱动所有逻辑电平,5V TTL和3.3V /5V Tol.可以被所有逻辑电平驱动。所以如果您的可编程逻辑器件有富裕的管脚,优先使用其OC/OD输出加上拉电阻实现逻辑电平转换;其次才用以下专门的逻辑器件转换。 [52RD.com]
对于其他的不能直接互连的逻辑电平,可用下列逻辑器件进行处理,详细见后面5.2到5.5节。 [52RD.com]
TI的AHCT系列器件为5V TTL输入、5V CMOS输出。 [52RD.com]
TI的LVC/LVT系列器件为TTL/CMOS逻辑电平输入、3.3V TTL(LVTTL)输出,也可以用双轨器件替代。 [52RD.com]
注意:不是所有的LVC/LVT系列器件都能够运行5V TTL/CMOS输入,一般只有带后缀A的和LVCH/LVTH系列的可以,具体可以参考其器件手册。 [52RD.com]
:5V TTL门作驱动源[52RD.com]
·驱动3.3V TTL/CMOS [52RD.com]
通过LVC/LVT系列器件(为TTL/CMOS逻辑电平输入,LVTTL逻辑电平输出)进行转换。 [52RD.com]
·驱动5V CMOS [52RD.com]
可以使用上拉5V电阻的方式解决,或者使用AHCT系列器件(为5V TTL输入、5V CMOS输出)进行转换。 [52RD.com]
:3.3V TTL/CMOS门作驱动源[52RD.com]
·驱动5V CMOS [52RD.com]
使用AHCT系列器件(为5V TTL输入、5V CMOS输出)进行转换(3.3V TTL电平(LVTTL)与5V TTL电平可以互连)。 [52RD.com]
:5V CMOS门作驱动源[52RD.com]
·驱动3.3V TTL/CMOS [52RD.com]
通过LVC/LVT器件(输入是TTL/CMOS逻辑电平,输出是LVTTL逻辑电平)进行转换。 [52RD.com]
:2.5V CMOS逻辑电平的互连[52RD.com]
随着芯片技术的发展,未来使用2.5V电压的芯片和逻辑器件也会越来越多,这里简单谈一下2.5V逻辑电平与其他电平的互连,主要是谈一下2.5V逻辑电平与3.3V逻辑电平的互连。(注意:对于某些芯片,由于采用了优化设计,它的2.5V管脚的逻辑电平可以和3.3V的逻辑电平互连,此时就不需要再进行逻辑电平的转换了。) [52RD.com]
1:3.3V TTL/CMOS逻辑电平驱动2.5V CMOS逻辑电平 [52RD.com]
2.5V 的逻辑器件有LV、LVC、AVC、ALVT、ALVC等系列,其中前面四种系列器件工作在2.5V时可以容忍3.3V的电平信号输入,而ALVC不行,所以可以使用LV、LVC、AVC、ALVT系列器件来进行3.3V TTL/CMOS逻辑电平到2.5V CMOS逻辑电平的转换。 [52RD.com]
2:2.5V CMOS逻辑电平驱动3.3V TTL/CMOS逻辑电平 [52RD.com]
2.5V CMOS逻辑电平的VOH为2.0V,而3.3V TTL/CMOS的逻辑电平的VIH也为2.0V,所以直接互连的话可能会出问题(除非3.3V的芯片本身的VIH参数明确降低了)。此时可以使用双轨器件SN74LVCC3245A来进行2.5V逻辑电平到3.3V逻辑电平的转换,另外,使用OC/OD们加上拉电阻应该也是可以的。

星期二, 五月 22, 2007

在一个大的电容上还并联一个小电容的原因[转]

大电容由于容量大,所以体积一般也比较大,且通常使用多层卷绕的方式制作,这就导致了大电容的分布电感比较大(也叫等效串联电感,英文简称ESL)。

电感对高频信号的阻抗是很大的,所以,大电容的高频性能不好。而一些小容量电容则刚刚相反,由于容量小,因此体积可以做得很小(缩短了引线,就减小了ESL,因为一段导线也可以看成是一个电感的),而且常使用平板电容的结构,这样小容量电容就有很小ESL这样它就具有了很好的高频性能,但由于容量小的缘故,对低频信号的阻抗大。

所以,如果我们为了让低频、高频信号都可以很好的通过,就采用一个大电容再并上一个小电容的方式。

常使用的小电容为 0.1uF的瓷片电容,当频率更高时,还可并联更小的电容,例如几pF,几百pF的。而在数字电路中,一般要给每个芯片的电源引脚上并联一个0.1uF的电容到地(这个电容叫做退耦电容,当然也可以理解为电源滤波电容,越靠近芯片越好),因为在这些地方的信号主要是高频信号,使用较小的电容滤波就可以了。

0 欧姆电阻的作用(转载)

大概有以下几个功能:

①做为跳线使用。这样既美观,安装也方便。

②在数字和模拟等混合电路中,往往要求两个地分开,并且单点连接。我们可以用一个0欧的电阻来连接这两个地,而不是直接连在一起。这样做的好处就是,地线被分成了两个网络,在大面积铺铜等处理时,就会方便得多。附带提示一下,这样的场合,有时也会用电感或者磁珠等来连接。

③做保险丝用。由于PCB上走线的熔断电流较大,如果发生短路过流等故障时,很难熔断,可能会带来更大的事故。由于0欧电阻电流承受能力比较弱(其实0欧电阻也是有一定的电阻的,只是很小而已),过流时就先将0欧电阻熔断了,从而将电路断开,防止了更大事故的发生。有时也会用一些阻值为零点几或者几欧的小电阻来做保险丝。不过不太推荐这样来用,但有些厂商为了节约成本,就用此将就了。

④为调试预留的位置。可以根据需要,决定是否安装,或者其它的值。有时也会用*来标注,表示由调试时决定。

⑤作为配置电路使用。这个作用跟跳线或者拨码开关类似,但是通过焊接固定上去的,这样就避免了普通用户随意修改配置。通过安装不同位置的电阻,就可以更改电路的功能或者设置地址。
0欧的电阻不但有卖,而且还有不同的规格呢,一般是按功率来分,如1/8瓦,1/4瓦等等。

如何设计一个合适的系统电源

如何设计一个合适的系统电源
对于现在一个电子系统来说,电源部分的设计也越来越重要,我想通过和大家探讨一些自己关于电源设计的心得,来个抛砖引玉,让我们在电源设计方面能够都有所深入和长进。
Q1:如何来评估一个系统的电源需求

Answer:对于一个实际的电子系统,要认真的分析它的电源需求。不仅仅是关心输入电压,输出电压和电流,还要仔细考虑总的功耗,电源实现的效率,电源部分对负载变化的瞬态响应能力,关键器件对电源波动的容忍范围以及相应的允许的电源纹波,还有散热问题等等。功耗和效率是密切相关的,效率高了,在负载功耗相同的情况下总功耗就少,对于整个系统的功率预算就非常有利了,对比LDO和开关电源,开关电源的效率要高一些。同时,评估效率不仅仅是看在满负载的时候电源电路的效率,还要关注轻负载的时候效率水平。

至于负载瞬态响应能力,对于一些高性能的CPU应用就会有严格的要求,因为当CPU突然开始运行繁重的任务时,需要的启动电流是很大的,如果电源电路响应速度不够,造成瞬间电压下降过多过低,造成CPU运行出错。

一般来说,要求的电源实际值多为标称值的+-5%,所以可以据此计算出允许的电源纹波,当然要预留余量的。

散热问题对于那些大电流电源和LDO来说比较重要,通过计算也是可以评估是否合适的。

Q2:如何选择合适的电源实现电路

Answer:根据分析系统需求得出的具体技术指标,可以来选择合适的电源实现电路了。一般对于弱电部分,包括了LDO(线性电源转换器),开关电源电容降压转换器和开关电源电感电容转换器。相比之下,LDO设计最易实现,输出纹波小,但缺点是效率有可能不高,发热量大,可提供的电流相较开关电源不大等等。而开关电源电路设计灵活,效率高,但纹波大,实现比较复杂,调试比较烦琐等等。

Q3:如何为开关电源电路选择合适的元器件和参数

Answer:很多的未使用过开关电源设计的工程师会对它产生一定的畏惧心理,比如担心开关电源的干扰问题,PCB layout问题,元器件的参数和类型选择问题等。其实只要了解了,使用一个开关电源设计还是非常方便的。

一个开关电源一般包含有开关电源控制器和输出两部分,有些控制器会将MOSFET集成到芯片中去,这样使用就更简单了,也简化了PCB设计,但是设计的灵活性就减少了一些。

开关控制器基本上就是一个闭环的反馈控制系统,所以一般都会有一个反馈输出电压的采样电路以及反馈环的控制电路。因此这部分的设计在于保证精确的采样电路,还有来控制反馈深度,因为如果反馈环响应过慢的话,对瞬态响应能力是会有很多影响的。

而输出部分设计包含了输出电容,输出电感以及MOSFET等等,这些的选择基本上就是要满足一个性能和成本的平衡,比如高的开关频率就可以使用小的电感值(意味着小的封装和便宜的成本),但是高的开关频率会增加干扰和对MOSFET的开关损耗,从而效率降低。使用低的开关频率带来的结果则是相反的。

对于输出电容的ESR和MOSFET的Rds_on参数选择也是非常关键的,小的ESR可以减小输出纹波,但是电容成本会增加,好的电容会贵嘛。开关电源控制器驱动能力也要注意,过多的MOSFET是不能被良好驱动的。

一般来说,开关电源控制器的供应商会提供具体的计算公式和使用方案供工程师借鉴的。

Q4:如何调试开关电源电路

Answer:有一些经验可以共享给大家

1: 电源电路的输出输出通过低阻值大功率电阻接到板内,这样在不焊电阻的情况下可以先做到电源电路的先调试,避开后面电路的影响。

2: 一般来说开关控制器是闭环系统,如果输出恶化的情况超过了闭环可以控制的范围,开关电源就会工作不正常,所以这种情况就需要认真检查反馈和采样电路。特别是如果采用了大ESR值的输出电容,会产生很多的电源纹波,这也会影响开关电源的工作的。

接地技术的讨论

Q1:为什么要接地?

Answer:接地技术的引入最初是为了防止电力或电子等设备遭雷击而采取的保护性措施,目的是把雷电产生的雷击电流通过避雷针引入到大地,从而起到保护建筑物的作用。同时,接地也是保护人身安全的一种有效手段,当某种原因引起的相线(如电线绝缘不良,线路老化等)和设备外壳碰触时,设备的外壳就会有危险电压产生,由此生成的故障电流就会流经PE线到大地,从而起到保护作用。随着电子通信和其它数字领域的发展,在接地系统中只考虑防雷和安全已远远不能满足要求了。比如在通信系统中,大量设备之间信号的互连要求各设备都要有一个基准‘地’作为信号的参考地。而且随着电子设备的复杂化,信号频率越来越高,因此,在接地设计中,信号之间的互扰等电磁兼容问题必须给予特别关注,否则,接地不当就会严重影响系统运行的可靠性和稳定性。最近,高速信号的信号回流技术中也引入了 “地”的概念。

Q2:接地的定义

Answer: 在现代接地概念中、对于线路工程师来说,该术语的含义通常是‘线路电压的参考点’;对于系统设计师来说,它常常是机柜或机架;对电气工程师来说,它是绿色安全地线或接到大地的意思。一个比较通用的定义是“接地是电流返回其源的低阻抗通道”。注意要求是”低阻抗”和“通路”。

Q3:常见的接地符号

Answer: PE,PGND,FG-保护地或机壳;BGND或DC-RETURN-直流-48V(+24V)电源(电池)回流;GND-工作地;DGND-数字地;AGND-模拟地;LGND-防雷保护地

Q4:合适的接地方式

Answer: 接地有多种方式,有单点接地,多点接地以及混合类型的接地。而单点接地又分为串联单点接地和并联单点接地。一般来说,单点接地用于简单电路,不同功能模块之间接地区分,以及低频(f<1MHz)电子线路。当设计高频(f>10MHz)电路时就要采用多点接地了或者多层板(完整的地平面层)。

Q5:信号回流和跨分割的介绍

Answer:对于一个电子信号来说,它需要寻找一条最低阻抗的电流回流到地的途径,所以如何处理这个信号回流就变得非常的关键。

第一,根据公式可以知道,辐射强度是和回路面积成正比的,就是说回流需要走的路径越长,形成的环越大,它对外辐射的干扰也越大,所以,PCB布板的时候要尽可能减小电源回路和信号回路面积。

第二,对于一个高速信号来说,提供有好的信号回流可以保证它的信号质量,这是因为PCB上传输线的特性阻抗一般是以地层(或电源层)为参考来计算的,如果高速线附近有连续的地平面,这样这条线的阻抗就能保持连续,如果有段线附近没有了地参考,这样阻抗就会发生变化,不连续的阻抗从而会影响到信号的完整性。所以,布线的时候要把高速线分配到靠近地平面的层,或者高速线旁边并行走一两条地线,起到屏蔽和就近提供回流的功能。

第三,为什么说布线的时候尽量不要跨电源分割,这也是因为信号跨越了不同电源层后,它的回流途径就会很长了,容易受到干扰。当然,不是严格要求不能跨越电源分割,对于低速的信号是可以的,因为产生的干扰相比信号可以不予关心。对于高速信号就要认真检查,尽量不要跨越,可以通过调整电源部分的走线。(这是针对多层板多个电源供应情况说的)

Q6:为什么要将模拟地和数字地分开,如何分开?

Answer:模拟信号和数字信号都要回流到地,因为数字信号变化速度快,从而在数字地上引起的噪声就会很大,而模拟信号是需要一个干净的地参考工作的。如果模拟地和数字地混在一起,噪声就会影响到模拟信号。

一般来说,模拟地和数字地要分开处理,然后通过细的走线连在一起,或者单点接在一起。总的思想是尽量阻隔数字地上的噪声窜到模拟地上。当然这也不是非常严格的要求模拟地和数字地必须分开,如果模拟部分附近的数字地还是很干净的话可以合在一起。

Q7:单板上的信号如何接地?

Answer:对于一般器件来说,就近接地是最好的,采用了拥有完整地平面的多层板设计后,对于一般信号的接地就非常容易了,基本原则是保证走线的连续性,减少过孔数量;靠近地平面或者电源平面,等等。

Q8:单板的接口器件如何接地?

Answer:有些单板会有对外的输入输出接口,比如串口连接器,网口RJ45连接器等等,如果对它们的接地设计得不好也会影响到正常工作,例如网口互连有误码,丢包等,并且会成为对外的电磁干扰源,把板内的噪声向外发送。一般来说会单独分割出一块独立的接口地,与信号地的连接采用细的走线连接,可以串上0欧姆或者小阻值的电阻。细的走线可以用来阻隔信号地上噪音过到接口地上来。同样的,对接口地和接口电源的滤波也要认真考虑。

Q9:带屏蔽层的电缆线的屏蔽层如何接地?

Answer:屏蔽电缆的屏蔽层都要接到单板的接口地上而不是信号地上,这是因为信号地上有各种的噪声,如果屏蔽层接到了信号地上,噪声电压会驱动共模电流沿屏蔽层向外干扰,所以设计不好的电缆线一般都是电磁干扰的最大噪声输出源。当然前提是接口地也要非常的干净。


对于现在一个电子系统来说,电源部分的设计也越来越重要,我想通过和大家探讨一些自己关于电源设计的心得,来个抛砖引玉,让我们在电源设计方面能够都有所深入和长进。
Q1:如何来评估一个系统的电源需求

Answer:对于一个实际的电子系统,要认真的分析它的电源需求。不仅仅是关心输入电压,输出电压和电流,还要仔细考虑总的功耗,电源实现的效率,电源部分对负载变化的瞬态响应能力,关键器件对电源波动的容忍范围以及相应的允许的电源纹波,还有散热问题等等。功耗和效率是密切相关的,效率高了,在负载功耗相同的情况下总功耗就少,对于整个系统的功率预算就非常有利了,对比LDO和开关电源,开关电源的效率要高一些。同时,评估效率不仅仅是看在满负载的时候电源电路的效率,还要关注轻负载的时候效率水平。

至于负载瞬态响应能力,对于一些高性能的CPU应用就会有严格的要求,因为当CPU突然开始运行繁重的任务时,需要的启动电流是很大的,如果电源电路响应速度不够,造成瞬间电压下降过多过低,造成CPU运行出错。

一般来说,要求的电源实际值多为标称值的+-5%,所以可以据此计算出允许的电源纹波,当然要预留余量的。

散热问题对于那些大电流电源和LDO来说比较重要,通过计算也是可以评估是否合适的。

Q2:如何选择合适的电源实现电路

Answer:根据分析系统需求得出的具体技术指标,可以来选择合适的电源实现电路了。一般对于弱电部分,包括了LDO(线性电源转换器),开关电源电容降压转换器和开关电源电感电容转换器。相比之下,LDO设计最易实现,输出纹波小,但缺点是效率有可能不高,发热量大,可提供的电流相较开关电源不大等等。而开关电源电路设计灵活,效率高,但纹波大,实现比较复杂,调试比较烦琐等等。

Q3:如何为开关电源电路选择合适的元器件和参数

Answer:很多的未使用过开关电源设计的工程师会对它产生一定的畏惧心理,比如担心开关电源的干扰问题,PCB layout问题,元器件的参数和类型选择问题等。其实只要了解了,使用一个开关电源设计还是非常方便的。

一个开关电源一般包含有开关电源控制器和输出两部分,有些控制器会将MOSFET集成到芯片中去,这样使用就更简单了,也简化了PCB设计,但是设计的灵活性就减少了一些。

开关控制器基本上就是一个闭环的反馈控制系统,所以一般都会有一个反馈输出电压的采样电路以及反馈环的控制电路。因此这部分的设计在于保证精确的采样电路,还有来控制反馈深度,因为如果反馈环响应过慢的话,对瞬态响应能力是会有很多影响的。

而输出部分设计包含了输出电容,输出电感以及MOSFET等等,这些的选择基本上就是要满足一个性能和成本的平衡,比如高的开关频率就可以使用小的电感值(意味着小的封装和便宜的成本),但是高的开关频率会增加干扰和对MOSFET的开关损耗,从而效率降低。使用低的开关频率带来的结果则是相反的。

对于输出电容的ESR和MOSFET的Rds_on参数选择也是非常关键的,小的ESR可以减小输出纹波,但是电容成本会增加,好的电容会贵嘛。开关电源控制器驱动能力也要注意,过多的MOSFET是不能被良好驱动的。

一般来说,开关电源控制器的供应商会提供具体的计算公式和使用方案供工程师借鉴的。

Q4:如何调试开关电源电路

Answer:有一些经验可以共享给大家

1: 电源电路的输出输出通过低阻值大功率电阻接到板内,这样在不焊电阻的情况下可以先做到电源电路的先调试,避开后面电路的影响。

2: 一般来说开关控制器是闭环系统,如果输出恶化的情况超过了闭环可以控制的范围,开关电源就会工作不正常,所以这种情况就需要认真检查反馈和采样电路。特别是如果采用了大ESR值的输出电容,会产生很多的电源纹波,这也会影响开关电源的工作的。

接地技术的讨论

Q1:为什么要接地?

Answer:接地技术的引入最初是为了防止电力或电子等设备遭雷击而采取的保护性措施,目的是把雷电产生的雷击电流通过避雷针引入到大地,从而起到保护建筑物的作用。同时,接地也是保护人身安全的一种有效手段,当某种原因引起的相线(如电线绝缘不良,线路老化等)和设备外壳碰触时,设备的外壳就会有危险电压产生,由此生成的故障电流就会流经PE线到大地,从而起到保护作用。随着电子通信和其它数字领域的发展,在接地系统中只考虑防雷和安全已远远不能满足要求了。比如在通信系统中,大量设备之间信号的互连要求各设备都要有一个基准‘地’作为信号的参考地。而且随着电子设备的复杂化,信号频率越来越高,因此,在接地设计中,信号之间的互扰等电磁兼容问题必须给予特别关注,否则,接地不当就会严重影响系统运行的可靠性和稳定性。最近,高速信号的信号回流技术中也引入了 “地”的概念。

Q2:接地的定义

Answer: 在现代接地概念中、对于线路工程师来说,该术语的含义通常是‘线路电压的参考点’;对于系统设计师来说,它常常是机柜或机架;对电气工程师来说,它是绿色安全地线或接到大地的意思。一个比较通用的定义是“接地是电流返回其源的低阻抗通道”。注意要求是”低阻抗”和“通路”。

Q3:常见的接地符号

Answer: PE,PGND,FG-保护地或机壳;BGND或DC-RETURN-直流-48V(+24V)电源(电池)回流;GND-工作地;DGND-数字地;AGND-模拟地;LGND-防雷保护地

Q4:合适的接地方式

Answer: 接地有多种方式,有单点接地,多点接地以及混合类型的接地。而单点接地又分为串联单点接地和并联单点接地。一般来说,单点接地用于简单电路,不同功能模块之间接地区分,以及低频(f<1MHz)电子线路。当设计高频(f>10MHz)电路时就要采用多点接地了或者多层板(完整的地平面层)。

Q5:信号回流和跨分割的介绍

Answer:对于一个电子信号来说,它需要寻找一条最低阻抗的电流回流到地的途径,所以如何处理这个信号回流就变得非常的关键。

第一,根据公式可以知道,辐射强度是和回路面积成正比的,就是说回流需要走的路径越长,形成的环越大,它对外辐射的干扰也越大,所以,PCB布板的时候要尽可能减小电源回路和信号回路面积。

第二,对于一个高速信号来说,提供有好的信号回流可以保证它的信号质量,这是因为PCB上传输线的特性阻抗一般是以地层(或电源层)为参考来计算的,如果高速线附近有连续的地平面,这样这条线的阻抗就能保持连续,如果有段线附近没有了地参考,这样阻抗就会发生变化,不连续的阻抗从而会影响到信号的完整性。所以,布线的时候要把高速线分配到靠近地平面的层,或者高速线旁边并行走一两条地线,起到屏蔽和就近提供回流的功能。

第三,为什么说布线的时候尽量不要跨电源分割,这也是因为信号跨越了不同电源层后,它的回流途径就会很长了,容易受到干扰。当然,不是严格要求不能跨越电源分割,对于低速的信号是可以的,因为产生的干扰相比信号可以不予关心。对于高速信号就要认真检查,尽量不要跨越,可以通过调整电源部分的走线。(这是针对多层板多个电源供应情况说的)

Q6:为什么要将模拟地和数字地分开,如何分开?

Answer:模拟信号和数字信号都要回流到地,因为数字信号变化速度快,从而在数字地上引起的噪声就会很大,而模拟信号是需要一个干净的地参考工作的。如果模拟地和数字地混在一起,噪声就会影响到模拟信号。

一般来说,模拟地和数字地要分开处理,然后通过细的走线连在一起,或者单点接在一起。总的思想是尽量阻隔数字地上的噪声窜到模拟地上。当然这也不是非常严格的要求模拟地和数字地必须分开,如果模拟部分附近的数字地还是很干净的话可以合在一起。

Q7:单板上的信号如何接地?

Answer:对于一般器件来说,就近接地是最好的,采用了拥有完整地平面的多层板设计后,对于一般信号的接地就非常容易了,基本原则是保证走线的连续性,减少过孔数量;靠近地平面或者电源平面,等等。

Q8:单板的接口器件如何接地?

Answer:有些单板会有对外的输入输出接口,比如串口连接器,网口RJ45连接器等等,如果对它们的接地设计得不好也会影响到正常工作,例如网口互连有误码,丢包等,并且会成为对外的电磁干扰源,把板内的噪声向外发送。一般来说会单独分割出一块独立的接口地,与信号地的连接采用细的走线连接,可以串上0欧姆或者小阻值的电阻。细的走线可以用来阻隔信号地上噪音过到接口地上来。同样的,对接口地和接口电源的滤波也要认真考虑。

Q9:带屏蔽层的电缆线的屏蔽层如何接地?

Answer:屏蔽电缆的屏蔽层都要接到单板的接口地上而不是信号地上,这是因为信号地上有各种的噪声,如果屏蔽层接到了信号地上,噪声电压会驱动共模电流沿屏蔽层向外干扰,所以设计不好的电缆线一般都是电磁干扰的最大噪声输出源。当然前提是接口地也要非常的干净。

星期四, 五月 17, 2007

N次面试的总结+最近学习的总结

大家认为最厉害的面试官会问你什么问题吗 ?
我认为,最好的一问一答的,呵呵,这样好多问题他也不知道,所以我也就可以逃脱过去,还有一些问题自己也可以侥幸的回答。最厉害的面试官是什么也不需要问的,他知会让你去说,让你去把你已经记在脑子里(而不一定是掌握)的东西说给他听!!!通过你讲,他就知道你对 这方面的知识的了解程度了!!!
我认为是这样的,对于向我这样的初学者,ARM+Linux都不怎么熟悉,要你好好的把你认为的嵌入式的理解说出来,的确,对一个高手来说,让他讲讲嵌入式开发的经验,你给他一天的时间他也讲不完,这就不像我这样,没有经验,功底不深厚的人说几句就堵车的样子。我认为这样的面试官是最厉害的。
不过,上有政策,下有对策。那就是在面试之前好好的准备,假如让我说的话,我应该怎么回答他,以致于让他不能插嘴,只有我一人能好好的侃侃而谈!!这样才能显得出我们的博学!!!是啊,这样的方法很好,但有的时候,不知道自己是在怕什么,不敢去想!!是胆小。是XX恐惧者!!
为了下次不会出现面试 堵车 的 现象,下次blog内容就是关于面试的主要谈论的内容 !!!