TTL和CMOS

阿须 发表于 2009-03-12 16:02:42

TTL电平标准 输出 L: <0.8V ; H:>2.4V。 输入 L: <1.2V ; H:>2.0V TTL器件输出低电平要小于0.8V,高电平要大于2.4V。输入,低于1.2V就认为是0,高于2.0就认为是1。 CMOS电平标准 CMOS电平Vcc可达到12V CMOS电路输出高电平约为0.9Vcc,而输出低电平约为0.1Vcc。 CMOS电路不使用的输入端不能悬空,会造成逻辑混乱。 TTL电路不使用的输入端悬空为高电平 CMOS集成电路电源电压可以在较大范围内变化,因而对电源的要求不像TTL集成电路那样严格。用TTL电平他们就可以兼容 TTL 双极器件、电源电压5V、速度快数ns、功耗大mA级、负载力大,负载以mA计,不用端多半可不做处理。 CMOS 单级器件、电源电压可到15V、速度慢几百nS,功耗低省电uA级、负载力小以容性负载计,不用端必须处理。 74ls: 是低功耗肖特基 TTL电平(L电平:小于等于0.8V ;H电平:大于等于2V) 74lv:低压CMOS器件,Vcc为3.3V COMS电平 74HC:高速CMOS器件 ,Vcc为5V CMOS电平 74HCT:高速CMOS器件 ,Vcc为5V TTL电平(可完全替代74LS系列) CD4000:标准的COMS电路,Vcc=5~18V,CMOS电平 MC14000:基本上可以完成代替cd4000,只是要注意负载的驱动能力 如果是 TTL 驱动 CMOS,要考虑电平的接口。TTL 可直接驱动 74HCT 型的 CMOS,其余必须考虑逻辑电平的转换问题。 如果是 CMOS 驱动 TTL,要考虑驱动电流不能太低。74HC/74HCT 型 CMOS 可直接驱动 74/74LS 型 TTL,除此需要电平转换。 由于 CMOS 的输入阻抗都比较大,一般比较容易捕捉到干扰脉冲,所以 NC 的脚尽量要接个上拉电阻,而且 CMOS 具有电流闩锁效应,容易烧掉 IC,所以输入端的电流尽量不要太大,最好加限流电阻。 CD4051和74HC4051都是逻辑器件 74HC/LS/HCT/F系列芯片的区别 1、 LS是低功耗肖特基,HC是高速COMS。LS的速度比HC略快。HCT输入输出与LS兼容,但是功耗低;F是高速肖特基电路; 2、 LS是TTL电平,HC是COMS电平。 3、 LS输入开路为高电平,HC输入不允许开路, hc 一般都要求有上下拉电阻来确定输入端无效时的电平。LS 却没有这个要求 4、 LS输出下拉强上拉弱,HC上拉下拉相同。 5、 工作电压不同,LS只能用5V,而HC一般为2V到6V; 6、电平不同。LS是TTL电平,其低电平和高电平分别为0.8和V2.4,而CMOS在工作电压为5V时分别为0.3V和3.6V,所以CMOS可以驱动TTL,但反过来是不行的 7、驱动能力不同,LS一般高电平的驱动能力为5mA,低电平为20mA;而CMOS的高低电平均为5mA; 8、 CMOS器件抗静电能力差,易发生栓锁问题,所以CMOS的输入脚不能直接接电源。 74系列集成电路大致可分为6大类: . 74××(标准型); .74LS××(低功耗肖特基); .74S××(肖特基); .74ALS××(先进低功耗肖特基); .74AS××(先进肖特基); .74F××(高速)。 近年来还出现了高速CMOS电路的74系列,该系列可分为3大类: . HC为COMS工作电平; . HCT为TTL工作电平,可与74LS系列互换使用; .HCU适用于无缓冲级的CMOS电路。 这9种74系列产品,只要后边的标号相同,其逻辑功能和管脚排列就相同。根据不同的条件和要求可选择不同类型的74系列产品,比如电路 的供电电压为3V就应选择74HC系列的产品

FPGA器件选型(转载)

阿须 发表于 2009-01-07 14:49:57

1 引 言

现场可编程门阵列FPGA有集成度高、体积小、灵活可重配置、实验风险小等优点,在复杂数字系统中得到了越来越广泛的应用。

随着FPGA技术的成熟和不断飞速发展,数字电路的设计只需一片FPGA器件、一些存储设备和一些电气接口匹配电路的解决方案已成为主流选择方案。根据多年的应用经验,相关数字系统中,FPGA器件的选型非常重要,不合理的选型会导致一系列的后续设计问题,有时甚至会使设计失败;合理的选型不光可以避免设计问题,而且可以提高系统的性价比,延长产品的生命周期,获得预想不到的经济效果。

经过深入研究,总结了以下选型问题:器件的供货渠道和开发工具的支持;器件的硬件资源;器件的电气接口标准;器件的速度等级;器件的温度等级;器件的封装;器件的价格。

2 FPGA器件选型应该考虑的问题

2.1 器件的供货渠道和开发工具的支持

目前,主要的FPGA供应商有Xllinx公司、Altera公司、Lattic公司和Actel公司[1],其中Xllinx公司和Altera公司的规模最大,能提供器件的种类非常丰富[2,3]。FPGA的发展速度非常快,很多型 
号的FPGA器件已不是主流产品,为了提高产品的生命周期,最好在货源比较足的主流器件中选型。目前,Altera公司的主流器件有CycloneⅡ,CycloneⅢ,StatixⅡ,StatixⅡGX,StatixⅢ和StatixⅢGX等系列,其中CycloneⅡ和CycloneⅢ系列主要应用于逻辑设计和简单的数字信号处理,StatixⅡ和StatixⅢ系列主要应用于高速复杂数字信号处理和高速逻辑设计,StatixⅡGX和StatixⅢGX系列主要应用于通讯领域[1];Xllinx公司的主流器件有Spartan-3E,Spartan-3A,Virtex-4LX,Virtex-4 SX,Virtex-4 FX,Virtex-5 LX,Virtex-5SX和Virtex-5 FX等系列,其中Spartan-3E和Spartan-3A系列主要应用于逻辑设计和简单数字信号处理,Vir-tex-4 LX和Virtex-5 LX系列主要应用于高速逻辑设计,Virtex-4 SX和Virtex-5 SX系列主要应用于高速复杂数字信号处理,Virtex-4 FX和Virtex-5 FX系列主要应用于嵌入式系统[3]。

两家公司都提供了优秀的开发工具。Xllinx公司有集成开发环境ISE,Altera公司有集成开发环境QuartusⅡ,两个集成开发环境支持本公司所有器件的设计和开发[2,3]。该集成开发环境不仅功能强大、界面友好,而且有很多第三方合作伙伴提供相应的技术支持,能使器件获得更高的性能。因此,如果没有特殊应用要求,建议最好在这两家公司进行器件选型。

2.2器件的硬件资源

硬件资源是器件选型的重要标准。硬件资源包括逻辑资源、I/O资源、布线资源、DSP资源、存储器资源、锁相环资源、串行收发器资源和硬核微处理器资源等。

逻辑资源和I/O资源的需求是每位设计人员最关心的问题,一般都会考虑到,可是,过度消耗I/O资源和布线资源可能产生的问题却很容易被忽视。主流FPGA器件中,逻辑资源都比较丰富,一般可以满足应用需求。可是,在比较复杂的数字系统中,过度I/O资源的消耗可能会导致2个问题[2,3]:FPGA负荷过重,器件发热严重,严重影响器件的速度性能、工作稳定性和寿命,设计中要考虑器件的散热问题;局部布线资源不足,电路的运行速度明显降低,有时甚至使设计不能适配器件,设计失败。根据本人的应用经验:

(1)在做复杂数字信号处理时,位数比较高的乘法器和除法器对全局布线资源的消耗量比较大;

(2)在做逻辑设计时,双向I/O口对局部布线资源的消耗量比较大;

(3)在利用存储器资源设计滤波器的应用场合,局部布线资源的消耗量比较大;

(4)在电气接口标准比较多,而逻辑比较复杂的应用场合,局部布线资源的消耗量比较大。据Altera公司推荐,设计中最好能预留30%以上的逻辑资源、20%以上的I/O资源和30%以上的布线资源[1]。而且,从两家公司器件的结构看,Xllinx公司器件的可编程逻辑块相对于Al-tera公司要复杂一些,使用起来要灵活一些。在一些复杂的、控制信号比较多的设计中,适合选用Xllinx公司的产品。不过Xllinx公司器件布线资源是分段的,器件延时的可预测性要差一些。在这些应用场合,最好首先做设计仿真,对设计?肖耗的布线资源,尤其是很容易被忽视的局部布线资源,要有一个比较充分的了解,然后在考虑器件选型,是比较理想的。

在做乘法运算比较多而且对速度性能要求比较高的应用场合,最好能选用带DSP资源比较多的器件,例如,Altera公司的StatixⅡ和StatixⅢ系列[2],Xllinx公司的Virtex-4 SX和Virtex-5 SX系列等[3]。


器件中的存储器资源主要有2种用途[2,3]:作高性能滤波器;实现小容量高速数据缓存。这是一种比较宝贵的硬件资源,一般器件中的存储器资源都不太多,存储器资源较多的器件逻辑容量也非常大,用得也比较少,供货渠道也不多,器件价格也非常高。因此,在器件选型时,最好不要片面追求设计的集成度而选用这种器件,可以考虑选用低端器件+外扩存储器的设计方案。

为什么大学毕业生工作难找?(转载)

千枫寒云 发表于 2008-01-01 14:52:00

近日,博鳌亚洲论坛秘书长龙永图先生做客深圳电视台,与观众面对面,解答观众提出目前大学生找工作难的问题,龙先生提出了三个观点:1、当今的大学生心理脆弱,适应社会能力低,已经不能被认为是“精英阶层”;2、教育孩子要从教育家长开始;3、工作一定要快乐。龙先生还谈到,目前大学生就业困难的局面主要来自于结构性的失衡。 我看后总觉得有点可笑。龙先生把大学毕业生找工作难的原因归咎于现在大学生的心理素质差,适应社会能力低,和结构性失衡等原因,这是不是良医也开错了药方。 我认为,龙永图先生作为一个资深经济问题专家,他应该知道,中国的经济总量每年都在以两位数的速率高速增长,但为什么中国的大学毕业生反而感到工作越来越难找的主要原因是什么。是因为我国大学生的心理素质差吗?抑或是结构性失衡,才造成大学毕业生工作难找。我看,都不是! 那么,到底是什么原因,造成大学毕业生今天这么难找工作呢?我看只有两个原因:一个是政府的税赋太重,另一个是中国的房地产泡沫暴涨得太快。这两个原因就像两座大山一样,压得企业步履艰难,使企业生存的空间变得越来越小;同时也扑灭了很多投资者创办企业的热情,人们宁愿眼睁睁地看着自己存在银行中的17万亿元存款不断地被贬值,也不敢贸然拿出来进行投资创业。 十几年来,中国的GDP虽然每年都以12%以上的速率在高速增长,但中国的税收比GDP增长速度更快,每年都以20%以上的速率高速增长,远远高于GDP的增长率;以及房价每年也以12%以上速率在增长,这两个原因,正在不断地压缩企业的生存空间,同时也使大学毕业生找工作越来越困难。 根据媒体报道,2006年全国税收收入,不包括关税、契税和耕地占用税,一共完成了37636亿元,首次超过了日本(3.2万亿元人民币);2007年上半年,全国税收收入(不包括关税、耕地占用税和契税,未扣减出口退税)持续保持稳定增长,累计完成24947亿元,比上年同期增收 5615亿元,增长29%。 目前,中国的GDP还没有达到日本GDP的二分之一,而税收却超过了日本,这种情况也算正常吗?但根据国家税务总局发言人的说法,中国的税率与其它国家相比还是比较低的,只有24%。我们不知道这些数据是怎么计算出来的,因为,直接以税收总数与GDP总值相比的结果是18.8%。我认为,中国的税务局领导也不会傻到这个地步,直接按GDP总值来对企业进行收税。 我们可以怀疑,24% 的税率并不是统计出来的,而是根据官方意志制定的。理由是,以前中国的税收全部都是先交中央,然后再由地方打报告,申请投资项目金额,通过拨款的方式返回一部分给地方;这种做法会影响地方收税的积极性,因此,1994年中央进行了税制改革,决定给地方政府让利,把税收分成国税和地税两个部份,国税为 17%,地税收由地方自己定,但不能超过国税的二分之一,因此24% 这个数字就诞生了,即地税为7%。 另外,根据中央党校周天勇的计算,目前中国的税率不是24%,而应该是31%,因为,24%还没有包括社保以及其它多种收费。这两个结果,我也不相信,因为中国GDP总量统计结果,从来就没有一次是可信的。 根据前两天的新闻报道,中国的人均GDP正好达到了2000美金,即中国的GDP总量已经达到20万亿元人民币。对于我国的GDP总量是否已经达到20万亿元,这个数字是真是假,我们可以从24%、12%、37636亿元和20万亿元这4个关联数字中找出答案。如果前面3个数字是真的,最后一个数字就是假的;如果最后一个是真的,前面一个数字就是假的。 但我们相信37636亿元(06年税收收入)和24947亿元(07上半年税收收入)都是真的,因为它们都是真金白银。 因此,很多人都对统计结果产生怀疑,因为经济天天在增长,但老百姓的工资为什么没有增长,生活水平反而在不断下降。但中国的老百姓并没有感觉到2000美金的生活与1000美金的生活到底有多大的区别。 我们不妨举个例子来计算一下,中国企业的实际赋税率是多少。不过用这种简单计算方法计算出来的结果不要与中国政府相关部门的数据对应,因为内容的定义不一样。 假设某企业创收的毛利率(税前利润)为30%,即:每增值100元就有30元的毛利,那么,这30元钱之中应该包括国税的17%和地税的 33%;那么,扣除国税17元后,还剩13元;再扣除地税33%,即4.29元;最后剩下8.71元。这样企业每增值100元就要交税21.29元,自己最后获利为8.71元;由此可以求得企业缴税的利率是71%,而企业税后利润的利率只有29%。实际上,目前中国大多数企业的获利水平还很难达到30%。 另外,29%还不是企业的投资回报率,因为,企业投资的总成本并不是100元,而是远远高于100元。假设某企业生产某产品,购买材料的成本为100元,然后制成产品卖200元,这样,增值正好为100元,那么,根据上面计算的结果,企业的总投资应该是170元,即200元之中有30元是毛利。由此可求得这个企业的投资回报率是5.1%,即:企业每投资100元,可赢利5.1元,而政府却可增收12.52元。 上面举的这个例子,对于目前中国大多数企业来说,已经是非常良好的情况了。一般的加工企业根本就没有这么好的赢利水平。下面,我们再举一个彩电加工企业的经营情况作为例子,一看就会明白。 目前,一台普通21寸CRT彩电的价格大约是580~590元,而出厂价大约为550~560元。其中CRT显像管的价格为220~230 元,其它电子元器件的总价格为250~270元,机壳的材料费约为20元,还有包装箱说明书约10元,几项合计总共为500~530元。由此,可以算出一台普通21寸CRT彩电的增值还不到40元,其中还要包括:厂房租金,设备折旧,模具费,人工、水电费,以及税收,等等。这样毛利一般只有14~20%。 我们知道,如果毛利低过17%,企业就是亏损的,因为国税的税率就是17%。由此我们可以知道,一个电视机生产企业生产一台21寸CRT 电视机,最多赢利才2~3元钱,有时还会亏损。它们的投资回报率一般都不到5‰,即:企业每投资1000元,赢利还不到5元钱。因此,目前中国很多大型家电生产企业,虽然每年销售收入可以达到好几百亿元,但纯利润却很少超过两亿元,有的甚至只有几千万元或亏损。由此可见,目前中国的大多数加工企业的生存环境是多么的艰难。 如果按照国家税总局公布的24%税率,那么企业创收的平均毛利率应该达到38.2%以上。这个毛利率,只有中国电讯和石油以及房地产等垄断企业才有可能达到。因此,如果中国电讯和石油以及房地产等垄断企业的税率是24%,则对于其它企业的税率就应该在70%以上。但是,中国70%以上的企业都是加工型企业,难道政府就是想着让这些企业再过两、三年就要关门吗? 下面,我们再来详细分析,中国的大学毕业生为什么找工作这么困难的原因。我可以直截了当地说,中国的高税率政策,以及房地产泡沫,正在不断地剥夺着大学毕业生就业的权利。 我们知道,一个人之所以要找工作,其主要目的首先是要解决吃、穿、住三大问题;这三大问题基本上是都是通过企业给职工发放工资的形式来解决的。当一个人只能在“自由”和“面包”两者之中选择其一时,他只能选择面包。因此,当今的大学生找工作首先也是为了面包;根本不是因为大学生心理脆弱,适应社会能力低的问题;而是企业根本就没有能力提供他们除了吃饭以外的生存条件。 因此,很多大学生只能穿上牛仔裤,提上水桶,先到大城市里淘上一、两年金,如果一无所获,成不了精英,就得另找门路,或者回到井冈山去。这就是龙先生所说的心理脆弱,适应社会能力低。 我们可以以深圳为例,来说明一个大学生能找到工作的条件。目前,深圳房地产的平均价格是每平方米12800元,并且还在持续飙升。那么如果一个大学生未来准备在深圳就业以及定居下来,他们必须要租一套房子或买一套房子。但从长远来说,买一套房子要比租一套房子更合算,因为房东也要靠赢利来吃饭,租房子只能缓冲交首期买房款的压力。 那么,一对夫妻在未来的20年内他们要拥有一套自己的房子,就是他们成为深圳居民的基本条件。如果你不想拥有房子或买不起房子,你最多只能在这里呆上几年就得含泪离去,这不是市长要开除你,而是你不够格成为深圳居民。如果你5年前不是深圳居民,每年你还得要花300元钱到公安局办一次暂住证。现在,如果你不打算成为深圳的永久居民,那么,一旦你离开深圳的时候,你交的社保最多只能取回一半。 假设夫妻二人一个人的收入全部用来供房,另一个人的全部收入用来养家,这还算是比较艰苦的。这样120平米的房子总价为153.6万元,再加装修和买家具,大约要180万元;还要加上20年分期付款的利息,估计要80万元,总共为260万元;平均每月要供款1.083万元。 也就是说,一个大学毕业生在20年内,他每月的平均纯收入必须要达到1.083万元,若加上个人所得税大约需要12000元,他才有可能在深圳或上海、北京等大城市定居。 如果一个大学生每个月拿1.2万元的工资,那么,作为一个用人企业,它需要提供多少投资,获得的回报才能养得起这个大学生呢?我们还是按经营比较好的企业(即毛利达30%)来计算吧。 前面我们已经举例计算过了,如果企业创收的毛利率是30%,则企业的投资回报率只有5.1%。如果企业的投资者把投资回报与员工分成是根据 “二一添作五”的定理进行的(这是世界上最好的老板),那么,企业每月需要给这位大学生的投资就是47万元。实际上中国的企业资金周转率并没有这么高,如果,企业的资金平均周转率为3个月,则总投资额就是141万元。对于设备投资,如果按5年折旧率来计算,总投资额还要更高,平均要超过700万元。 目前,我国每年的平均经济增长率大约为12%,按2006年的GDP为20万亿元人民币作为基数,可求得GDP增量为2.4万亿元人民币。把2.4万亿元人民币转换成新增投资总额,即乘以1.7倍,可求得4.08万亿元人民币。如果4.08万亿元的新增投资全部让给新增大学毕业生用于就业,那么最多也只能提供289万个新增职位。况且还有那么多的农民,以及没有考上大学的中学生也要就业;并且中国的大多数企业其创收的毛利率很难达到 30%。 目前,中国每年毕业的大学生或大、中专生的人数大约为310万人,而这些人数大约只占高中毕业生的30%,因此,必然还有一半以上的人无法找到合适工作。并且连年累积,就使得大学毕业生的就业压力越来越大。 另外,目前中国正处于经济转型时期,即由农业国家向工业国家转型,因此,在未来的20年内将有大约8亿多农业人口要转变成工业人口,或有 3~4亿农民要到城里找工作。相当于国家每年要能提供3000多万个新增职位给他们。那么,如果每年的经济增长率保持12%不变,则新增职位所能提供的平均工资最高只能达到1500元。由此可知,未来的大学生已经不再属于“精英阶层”,他们必须自知之明,尊重事实,不要企求每人都能找到每月1.2万元工资的工作。 除此之外,根据国家工商管理总局发布的一组数字表明:1999年全国有个体工商户3160万户,到2006年6月底下降为2505.7万户,个体工商户减少约650万户,平均每年减少87万户。 根据2006年《民营经济蓝皮书》显示,过去5年,中国个体工商户注册户数由2571万户下降至2464万户,减少了107万户,年均降幅为0.8%。究其原因,主要是个体工商户的创业成本过高,1/3的税,2/3的费,沉重的税赋正在不断地打击着中国个体工商户的创业热情。 因此,未来几年中国的就业状况只能越来越糟糕,在短时间内不会变好,不要相信每年12~15%的GDP增长,能够改变大学毕业生的命运。

对照龙芯困境 谈日本CPU的发展道路(转载)

千枫寒云 发表于 2008-01-01 14:50:07

说到日本的CPU,很多人会问,日本有CPU吗?确实,我们日常接触的计算机基本都是wintel,CPU基本都是美国公司的。其实日本有很多种CPU,在中国也被广泛应用,只是我们很难看到它,被嵌入了,不象有个什么“Intelinside”的牌子。当然,在中国嵌入式开发领域,日本CPU的应用也比较少,低端的多为51、PIC、AVR系列,高端的则是ARM一统天下,总之是八国联军。我想大概是因为日本CPU的相关支持工具和文档资料大多用日文写的,一般中国人看不懂。相比之下,欧美的CPU就比较好接受。看起来,CPU东西,自己的文化弱了,推广起来也比较困难。不过,在日本,日本CPU绝对是主流,从低端到高端。从我使用的情况看,比欧美系的CPU好用,功能全面集成度高。日本的CPU大概叫关起门来自己爽。 谈CPU先要谈与CPU直接相关的基础产业——半导体。日本的半导体产业起步不算早。直到70年代初,日本半导体需要量的7-8成还需要依靠进口。当时中国正处于文化大革命,经济崩溃,知识分子被关牛棚,工农兵大学生和外行领导内行导致科研机构一片混乱。即使这样,日本当年还需要从中国进口半导体制造设备。 这时候,日本的电电公社,现在NTT的前身,相当于中国电信,发挥了很大作用。电电公社坚决采购国产电话交换机,并坚持使用国产的半导体,组织协调日本的半导体企业协作攻关。反面则是电电公社搞垄断,高昂的电话初装费和软预算赤字财政。1976年,日本政府成立半导体的国家实验室,国家的力量进行攻关。国家战略的结果,使日本半导体生产技术达到了世界领先水平。 国家扶持和计划,使日本半导体产业与美国有很大的不同。最大的特点是大而全,小而全,自产自销。在初期,半导体的生产几乎100%在本企业或本集团内消费了。即使现在,也有很大比例是在本企业本集团内消费。这与美国半导体企业基本外销很不相同。比如,日立生产的半导体,很大比例在日立集团内部消费了,如日立的家电、精机、重机、工厂等等。而Intel的半导体则很少自己用,绝大多数都卖给其它用户。原因是日本半导体的起点低,性能质量价格面并没有优势,只能自产自销,大而全小而全,发展半导体是作为国家及本企业集团的战略,而不是一时的经济效益。要经济效益还不如直接买美国的。 日本的这种做法,引起美国的不满,认为这是计划经济违反了市场经济规律云云。日本人也颇不满,自己的电电公社虽然搞软预算赤字财政,毕竟还是企业。而美国的国防部则完全是软预算,完全不讲经济效益。就中国是市场经济的信徒,在日本半导体突飞猛进的时候,中国迎来了改革开放的春风,引进市场机制的葵花宝典,半导体产业就挥刀自宫了。同时自宫的产业还有很多。自宫的结果,使中国这近 30年取得了世人瞩目的经济成就。欲练神功需要挥刀自宫,这是颠扑不破的真理。 国家战略和计划的引领下,日本半导体生产工艺突飞猛进,但需要高超设计技巧的CPU却没有很大突破。中国经历了10年文革的摧残,1977年研制成功了专用的弹载16位CPU。美国的CPU在1970年代末期形成了Intel的86系和Motorola的68系CPU。两强争霸,都想扩大市场占有率树立事实上的标准,但又受限于产能不足。于是找到日本厂家,日本厂家以许可证方式生产与美国兼容的CPU,作为第二供货方,这是日本CPU的起步。 日立承接的是Motorola的MC680X和MC68000,日立生产的MC68就叫HD68。NEC则承接Intel的86,形成V20、V30系的CPU。日本没有与国际接轨,融入国际社会的心思,喜欢自定标准,自搞一套。当80年代初IBMPC风靡全球时,日本自搞了一个PC98。手机也是自成系统。这以中国不同,在中国与国际接轨是政治正确,雄心壮志早被阉了,想自立体系想都不敢想。当然,PC98最终没有抵抗住IBMPC,在几年前还是最终放弃了,但毕竟日本曾经奋斗过,很多事也是谋事在人成事在天,但奋斗的心不能死。 1984年,作为日本国策的TRON项目开始实施。TRON项目是集计算机OS和CPU设计一体的大型计划。涵盖的目标非常广泛,从实时控制到桌面系统,从工厂自动化到商业应用,无所不包。目的要建立日本独立的计算机软硬件体系。即阻止外国系统对日本的渗透,又想在世界中树立日本的标准。 1984 年也是中国关键的一年。是年年底,通过了城市改革的决议,拉开了城市改革的序幕。这一年还是“鬼门关”,无论项目是否成功,这一年都必须下马停止。时隔 20年后,许多项目才重新开始,或者再也没有可能开始了。这一年大概可以称为中国的“自宫年”。中国需要集中精力发展经济,改善生活。我们的目的是喝水,再也不能干挖井的蠢事了,这些“奇技淫巧”还是算了吧。 作为TRON项目的结果。1987年,日立发布了H8/H16/H32三款CPU,分别是8位/16位/32位。其时日本产品在欧美市场上咄咄逼人,即便作为86和68系CPU的第二供货商,也有喧宾夺主侵夺美国原厂商市场份额的势头。这些引发了日美贸易摩擦,美国政府向日本政府施加压力,小胳膊毕竟没有扭过大腿。TRON计划被大幅度缩小,只限定在实时嵌入式领域。Intel和Motorola分别向NEC和日立提起诉讼,禁止它们再生产销售与86和68系兼容的芯片。这些诉讼最后都在庭外和解了,作为和解的结果,H16由于酷似Motorola的68被放弃了,H32由于TRON项目缩小也被放弃了。H8虽然也大量承袭了68的设计,但总算被保留了下来。 日本历史上有过多次失败,但雄心壮志从来就没有熄灭过。虽然有时必须认命,被外力宫去大半,但雄心不死,还有重生的机会。中国则精神上萎靡了,不用别人动手,就自宫了。即便有人劝说中国能行,但始终坚挺不起来。 日立的H8虽然是8位的CISC设计,随着时代发展,逐步扩展到16位和32位。并在此基础上发展了RISC型的SuperH系列 SH1/SH2/SH3/SH4。SH1/SH2定位于实时控制领域,SH3/SH4则定位于信息处理。NEC则发展了自己独自的78和V850系列。 这些CPU都定位于嵌入式领域,避免与美国直接冲突。嵌入式领域市场庞大并被细分,手机、游戏机、汽车、各种家用电器、各种生产装置……,这些领域都是日本的强势领域。这些东西和我们日常生活密切相关,但我们往往觉察不到它们里面计算机的存在。在嵌入式领域对CPU的性能要求并不很高,很难出现赢家通吃的局面。日本CPU的最高主频目前还没有超过1GHz,NEC的V850的一款CPU号称是世界上主频最低的32位RISCCPU,只有20MHz,但却有着极低的功耗。 嵌入式领域性能不是主要因素,有自己的特色就可以在市场中找到定位点。 嵌入式应用需要丰富的接口,光CPU远远不够。日本的CPU一大特点是集成了丰富的接口,A/D、D/A、PWM、定时器/技数器、各种通信协议、图象声音的编解码器、Flash、SRAM甚至还集成了大容量的DRAM。包含接口的不同,形成一个完整的系列,根据具体应用的需要选择具体的CPU型号。往往一个单片就可以构造一个完整的应用系统。 软件系统虽然TRON被大幅度缩小,成了uITRON,TRON前面的uI分别代表微型和工业的意思。小有小的好处,正好适应这种资源严重受限的嵌入式应用环境。WindowsCE和Linux则庞大笨重,于是uITRON占了日本近一半的市场份额。uITRON只是一个标准,并不是具体实现,具体的软件有好几种,其中也有免费开源的uITRON。当然这些日本CPU也能运行WindowsCE和Linux。据说SH3是世界上第一种运行WindowsCE的CPU。 软件和硬件系统的结合,使日本的CPU在日本市场上成为主导,外国CPU占的市场份额很小。这与中国不同,中国则是被八国联军占领了。日本的出版教育界也功不可没。有名的CQ出版社出版的电子杂志详细介绍这些本国CPU用法和特点,还免费赠送这些CPU的实验板。还免费提供这些CPU的软核,在FPGA中实现自己的系统,用于研究和教学。学生时代的教育就使用本国的CPU,工作后自然而然就使用本国的CPU。中国的教育原来是Z80,后来是8051,于是学生毕业后就用这些外国CPU。 国家战略、科研、教育、产业相结合,使日本CPU产业从无到有,由弱到强,独树一帜。中国这四个方面相互脱节,国家战略是建立市场经济体制,不惜摧毁自己独立的科研和产业体系。科研面是单打独斗,在整个国家当作点缀存在。教育是面向世界,为留学和外企培养人才。产业则基本被卖掉了,外资企业挑大梁。这样的环境中,发展自己的CPU产业何等艰难。聪明如陈进的,一开始就认为事不可为,打磨芯片交差,科研经费落袋。方舟则是在中途醒悟,还是搞房地产来钱快。就剩下愚公龙芯继续奋斗,但不知道红旗能打多久。

常用电容器

千枫寒云 发表于 2007-12-11 22:28:37

1、铝电解电容器 用浸有糊状电解质的吸水纸夹在两条铝箔中间卷绕而成,薄的化氧化膜作介质的电容器.因为氧化膜有单向导电性质,所以电解电容器具有极性.容量大,能耐受大的脉动电流容量误差大,泄漏电流大;普通的不适于在高频和低温下应用,不宜使用在25kHz以上频率低频旁路、信号耦合、电源滤波 2、钽电解电容器 用烧结的钽块作正极,电解质使用固体二氧化锰温度特性、频率特性和可靠性均优于普通电解电容器,特别是漏电流极小,贮存性良好,寿命长,容量误差小,而且体积小,单位体积下能得到最大的电容电压乘积对脉动电流的耐受能力差,若损坏易呈短路状态超小型高可靠机件中。 3、薄膜电容器 结构与纸质电容器相似,但用聚脂、聚苯乙烯等低损耗塑材作介质频率特性好,介电损耗小不能做成大的容量,耐热能力差滤波 器、积分、振荡、定时电路。 4、瓷介电容器 穿心式或支柱式结构瓷介电容器,它的一个电极就是安装螺丝。引线电感极小,频率特性好,介电损耗小,有温度补偿作用不能做 成大的容量,受振动会引起容量变化特别适于高频旁路。 5、独石电容器 (多层陶瓷电容器)在若干片陶瓷薄膜坯上被覆以电极桨材料,叠合后一次绕结成一块不可分割的整体,外面再用树脂包封而成小体积、大容量、高可靠和耐高温的新型电容器,高介电常数的低频独石电容器也具有稳定的性能,体积极小,Q值高容量误差较大噪声旁路、滤波器、积分、振荡电路。 ① 铝电解电容与钽电解电容 铝电解电容的容体比较大,串联电阻较大,感抗较大,对温度敏感。它适用于温度变化不大、工作频率不高(不高于25kHz)的场合,可用于低频滤波。铝电解电容具有极性,安装时必须保证正确的极性,否则有爆炸的危险。 与铝电解电容相比,钽电解电容在串联电阻、感抗、对温度的稳定性等方面都有明显的优势。但是,它的工作电压较低。 ② 纸介电容和聚酯薄膜电容 其容体比较小,串联电阻小,感抗值较大。它适用于电容量不大、工作频率不高(如1MHz以下)的场合,可用于低频滤波和旁路。使用管型纸介电容器或聚酯薄膜电容器时,可把其外壳与参考地相连,以使其外壳能起到屏蔽的作用而减少电场耦合的影响。 ③ 云母和陶瓷电容 其容体比很小,串联电阻小,电感值小,频率/容量特性稳定。它适用于电容量小、工作频率高(频率可达500MHz)的场合,用于高频滤波、旁路、去耦。但这类电容承受瞬态高压脉冲能力较弱,因此不能将它随便跨接在低阻电源线上,除非是特殊设计的。 ④ 聚苯乙烯电容器 其串联电阻小,电感值小,电容量相对时间、温度、电压很稳定。它适用于要求频率稳定性高的场合,可用于高频滤波、旁路、去耦。

系统管理总线(SMBus)

千枫寒云 发表于 2007-12-10 20:10:10

Intel®制定了SMBus标准用于低速通信,SMBus 2线接口与I²C接口非常相似。SMBus也使用一条数据线(SMBDATA)和一条时钟线(SMBCLK)进行通信。SMBCLK和SMBDATA也需 要上拉电阻,3V供电时上拉电阻大于8.5kΩ,5V供电时上拉电阻大于14kΩ。SMBus工作电压范围在3V和5V之间,大于2.1V为高电平,低于 0.8V为低电平。

I²C接口和SMBus接口的最主要区别是最高/最低时钟速率,因为I²C总线为被动传输总线,不存在总线超时问题,速率可低至“静止”。SMBus接口 则存在总线超时问题。如果时钟信号拉低之后的时间大于超时周期(最长为35ms)时,从机复位接口,认为发生总线超时。SMBus的超时周期限制了时钟的 最小速率为19kHz。为了保证正常通信,SMBCLK的速率必须介于10kHz至100kHz之间,而I²C接口的主机或从机则可根据传输数据的需要将 时钟保持在低电平。

SPI、I2C、UART三种串行总线协议的区别

千枫寒云 发表于 2007-12-10 20:07:14

第一个区别当然是名字:
    SPI(Serial Peripheral Interface:串行外设接口);
    I2C(INTER IC BUS:意为IC之间总线)
    UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)

第二,区别在电气信号线上:
    SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现 多个SPI设备互相连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。
    如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。

    I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
    如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。(注:I2C资料了解得比较少,这里的描述可能很不完备)

    UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
    显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。

第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行;

第四,看看牛人们的意见吧!
    wudanyu:I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协议。
    quickmouse:I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。

I2C总线

千枫寒云 发表于 2007-12-10 20:02:14

I2C总线是PHILIPS公司为有效实现电子器件之间的控制而开发的一种简单的双向两线总线。I2C采用两根I/O线:一根时钟线(SCL串行时钟线),一根数据线(SDA串行数据线),实现全双工的同步数据通信。

每一次I2C总线传输都由主设备产生一个起始信号,采用同步串行传送数据,数据接收方每接收一个字节数据后都回应一个应答信号。一次I2C总线传输传送的字节数不受限制,主设备通过产生停止信号来终结总线传输。数据从最高位开始传送,数据在时钟信号高电平时有效。通信双方都可以通过拉低时钟线来暂停该次通信。

传输数据的过程如下:
    1)假设微控制器A 要发送信息到微控制器B
       --微控制器A 主机寻址微控制器B 从机
       --微控制器A 主机发送器发送数据到微控制器B 从机接收器
       --微控制器A 终止传输
    2)如果微控制器A 想从微控制器B 接收信息
       --微控制器A 主机寻址微控制器B 从机
       --微控制器A 主机接收器从微控制器B 从机发送器接收数据
       --微控制器A 终止传输,甚至在这种情况下主机微控制器A 也产生定时而且终止传输


I²C接口定义了一个简单的主/从双向通信接口。在这个体系中,MCU决定自己为主机(写模式)或为从机(接收模式)。每个从机具备专有、唯一的地址,使主机可以和多个从机通过一条总线进行通信,而不需要为每一个从机提供单独的片选线。如图3所示,从机的数目只受限于最大线上电容(400pF),I²C接口的机制基于7位或10位地址,7位的地址更为常见。在7位地址的机制中,总线上可以接127个不同的外设。SCL和SDA线为漏极开路结构,所以闲置时必须为高。当电源电压为3V时,连接一个1kΩ或更大阻值的上拉电阻;当电源电压为5V时,连接一个1.6kΩ或更大阻值的上拉电阻。

图3. 利用数据输入/输出和时钟信号进行通信的2线接口
图3. 利用数据输入/输出和时钟信号进行通信的2线接口

当SCL为高,SDA从高变为低,即发出了一个开始命令,启动I²C通信。图4a所示,每个SCL时钟传输一个数据位,传输一个字节至少需要9个数据位。一个写周期包括8个数据位和一个应答位(ACK)或者非应答位(NACK)。如图4b所示,当数据在I²C总线上传输时,在SLK的上升沿写入从机,在SLK的下降沿从机输出。在SCL时钟周期为高电平的时间内,SDA线的数据不可以改变。一次传输的完成必须跟随着一个中止或重新开始的命令,既SCL为高时,SDA由低变为高。当总线空闲时,SDA和SCL都为高。

图4a. 开始条件和停止条件,2线接口采用开始、重复开始和停止命令在主机和从机之间传输数据
图4a. 开始条件和停止条件,2线接口采用开始、重复开始和停止命令在主机和从机之间传输数据

图4b. I²C应答位,应答数据时,2线接口将SDA拉低
图4b. I²C应答位,应答数据时,2线接口将SDA拉低

I²C的写周期起始于开始命令,随后是7位从机地址和第8位用于标识读、写操作。将第8位置低,表示写操作;将第8位置高,表示读操作。主机在第8个时钟周期后释放总线。如果从机应答数据传输,则在第9个时钟周期将SDA拉低。如果从机不应答写命令,则释放SDA (该数据线通过上拉电阻置于高电平)。

随后,主机写入8位命令字节,然后是第二个ACK/NACK位。接下来,主机写入8位数据字节并跟随第三个ACK/NACK位。数据字节和最后的应答位完成一个读/写周期,更新外设输出,图5a是一个写周期的详细例子。

I²C读周期起始于开始命令,随后是需要写入数据的从机地址、第8位置高,表示读操作。在ACK/NACK之后,主机写入命令字节访问从机寄存器。在第二个ACK/NACK位后,主机重新写入从机地址。在第三个ACK/NACK位后,从机控制总线,一次输出8位数据到总线上。如图5b所示,当从与上次读操作相同的从机寄存器读取数据时,主机只需要在读取从机数据之前写入从机地址。

图5. 2线接口一次传输8位数据,图5a是I2C写周期的一个例子;图5b是I2C读周期的一个例子
图5. 2线接口一次传输8位数据,图5a是I²C写周期的一个例子;图5b是I²C读周期的一个例子

I²C接口支持低速(大于100kHz)、快速(大于400kHz)和高速(大于3.4MHz)三种数据速率。I²C接口的高低电平为CMOS逻辑电平 (低电平为0.3x电源电压以下,高电平为0.7x电源电压以上)。


3线接口 VS 2线接口

千枫寒云 发表于 2007-12-10 19:57:17

3线接口 3线接口使用片选线(低电平有效CS或SS)、时钟线(SCLK)和数据输入/主机输出线(DIN或MOSI)。3线接口有时也包括一条数据输出/主机输入线(DOUT或MISO),这时也叫做4线接口。为了叙述的简便,本文将3线接口和4线接口统称为3线接口。 3线接口可以以更高的时钟频率工作,并且不需要上拉电阻。SPI/QSPI和MICROWIRE接口都可以工作在全双工模式(数据可以在同一时间发送和接收),一般在嘈杂环境下工作不成问题。3线接口是边沿触发,不是电平触发,因此具有更强的抗干扰能力。 3线接口的主要缺点是它要为每一个从机提供一条低电平有效的CS线,除非将从机用菊链形式连接,如图1所示(后续章节将详细讨论菊链方式)。另外一个缺点是3线接口没有应答机制去判断数据的收发是否正确。从软件设计看,在单主机/单从机应用中,3线接口比2线接口简单,效率更高。 图1. 利用数据输入、数据输出、时钟和片选信号进行通信的3线接口 2线接口 2线接口包括一条数据线(SDA或SMBDATA)和一条时钟线(SCL或SMBCLK)。2线接口的优点是使用更少的连线,这一点对于结构紧凑的设计尤为重要,比如:手机、光纤的应用。因为2线接口为每个从机分配唯一的地址,所以可以在一条总线连接多个从机而不需要片选信号。2线接口在成功完成一次读操作后会传输一个应答位。因为2线接口只有一条数据线,所以它只能工作在半双工模式(数据的读写不可以同时进行)。因为2线接口是电平触发,所以在嘈杂环境中如果发生数据位错误,可能造成问题。 表1. 3/2线接口优缺点的对比 Interface Advantages Disadvantages 3-Wire: SPI, QSPI, and MICROWIRE PLUS 1. Speed 2. No pullup resistors required 3. Full-duplex operation 4. Noise immunity 1. Larger number of bus line connections 2. Individual chip-select lines required to communicate with more than one slave at a time 3. No acknowledgment of received data 2-Wire: I²C and SMBus 1. Fewer bus line connections 2. Multiple devices share the same bus 3. Received data is acknowledged 1. Speed: SMBus limited to 100kHz; I²C limited to 3.4MHz 2. Half-duplex operation 3. Open-drain bus lines require pullup resistors 4. Reduced noise immunity 总的来说:I2C的数据输入输出用的是一根线,SPI则分为dataIN和dataOUT。由于这个原因,采用I2C时CPU的端口占用少,SPI多一根。但是由于 I2C的数据线是双向的,所以隔离比较复杂,SPI则比较容易。所以系统内部通信可用I2C,若要与外部通信则最好用SPI带隔离(可以提高抗干扰能力)。但是I2C和SPI都不适合长距离传输。长距离时就要用485了。

SPI总线

千枫寒云 发表于 2007-12-10 19:41:18

SPI 总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO。另外可能需要一根片选线SS。

通常的应用是作为主机的单片机来操作做为从机的多个SPI设备,如SPI接口的A/D,EEPROM等。当一个主机要控制多个从设备时,如多片EEPROM,主机需要多根片选线,分别来选择不同的从设备,这种应用是基于单主多从结构。

主设备通过产生移位时钟来发起通讯,通讯时,数据由SDO 输出,SDI 输入,数据在时钟的上升或下降沿由SDO 输出,在紧接着的下降或上升沿由SDI 读入,这样经过8/16 次时钟的改变,完成8/16 位数据的传输。



SPI是一个环形总线结构由ss(cs)、sck、sdi、sdo构成,其时序其实很简单,主要是在sck的控制下,两个双向移位寄存器进行数据交换。
      假设下面的8位寄存器装的是待发送的数据10101010,上升沿发送、下降沿接收、高位先发送。
      那么第一个上升沿来的时候数据将会是sdo=1;寄存器=0101010x。下降沿到来的时候,sdi上的电平将所存到寄存器中去,那么这时寄存器=0101010sdi,这样在8个时钟脉冲以后,两个寄存器的内容互相交换一次。这样就完成里一个spi时序。
      例子:
      假设主机和从机初始化就绪:并且主机的sbuff=0xaa,从机的sbuff=0x55,下面将分步对spi的8个时钟周期的数据情况演示一遍:假设上升沿发送数据

 
脉冲     主机sbuff     从机sbuff     sdi     sdo
0       10101010     01010101     0     0
1上     0101010x     1010101x     0     1
1下     01010100     10101011     0     1
2上     1010100x     0101011x     1     0
2下     10101001     01010110     1     0
3上     0101001x     1010110x     0     1
3下     01010010     10101101     0     1
4上     1010010x     0101101x     1     0
4下     10100101     01011010     1     0
5上     0100101x     1011010x     0     1
5下     01001010     10110101     0     1
6上     1001010x     0110101x     1     0
6下     10010101     01101010     1     0
7上     0010101x     1101010x     0     1
7下     00101010     11010101     0     1
8上     0101010x     1010101x     1     0
8下     01010101     10101010     1     0

这样就完成了两个寄存器8位的交换,上面的上表示上升沿、下表示下降沿,sdi、sdo相对于主机而言的。其中ss引脚作为主机的时候,从机可以把它拉底被动选为从机,作为从机的是时候,可以作为片选脚用。根据以上分析,一个完整的传送周期是16位,即两个字节,因为,首先主机要发送命令过去,然后从机根据主机的名准备数据,主机在下一个8位时钟周期才把数据读回来。





SCLK:同步时钟信号线,

SCLK用来同步主从设备的数据传输,由Master驱动输出,Slave设备按SCK的步调接收或发送数据。

串行数据线:

SPI接口数据线是单向的,共有两根数据线,分别承担MasterSlaveSlaveMaster的数据传输;但是不同厂家的数据线命名有差别。

Motorola的经典命名是MOSIMISO,这是站在信号线的角度来命名的。

MOSIWhen master, out line; when slave, in line

MISOWhen master, in line; when slave, out line

比如MOSI,该线上数据一定是Master流向Slave的。因此在电路板上,MasterMOSI引脚应与SlaveMOSI引脚连接在一起。双方的MISO也应该连在一起,而不是一方的MOSI连接另一方的MISO

不过,也有一些产家(比如Microchip)是按照类似SDI,SDO的方式来命名,这是站在器件的角度根据数据流向来定义的。

SDI:串行数据输入

SDO:串行数据输出

这种情况下,当MasterSlave连接时,就应该用一方的SDO连接另一个方的SDI

由于SPI接口数据线是单向的,故电路设计时,数据线连接一定要正确,必然是一方的输出连接另一方的输入。

其实这个问题本来很简单的,但由于不同厂家产品的命名习惯可能不同,因此还需小心,以免低级出错。

数据传输的时序模式

为了适用不同产品接口应用需要,SPI接口定义了多种时序传输模式,并可通过设置接口单元寄存器中的相关控制位来选择。在Motorola的产品中,时序即是由两个控制位(极性控制、相位控制)来控制的。


时钟极性选择位CPOL

在设备被使能激活后,还未进行数据传输时或两个字节数据传输间歇期间(见图3中的○1与○2处),SCLK处于空闲(Idle)电平,通过"CPOL空闲状态极性控制位"可以选择此空闲电平电平是0还是1

时钟相位选择位CPHA

该控制位用来选择数据接收端设备的采样时刻。可能在Idle to Active的跳变沿(见图3中的红色圈处),也可能在Active to Idle的跳变沿(见图3中的蓝色圈处)。在该采样时刻,线上数据必须已经稳定可靠,因此数据发送端设备应提前将数据移出到数据线上。为了降低设计难度,大部分接口电路都是用同一时钟周期中前一个时钟沿(即相反时钟变化方向)将数据移出。

SPI线上的MasterSlave设备必须根据具体情况设置匹配的传输时序模式,时序只有匹配,数据传输才能正常进行。如果设置的不匹配,可能导致数据接收方和发送方在同一时钟沿作用,导致数据传输失败。

    

我们以手机设计中非常流行的触摸屏控制器TSC2046为例,介绍SPI接口的实际应用。

由于TSC2046采样触摸屏信息并量化出最高位需要一定时间,而SPI总线没有握手机制,为避免Master过早的启动传输,接收无效数据,TSC2046引入了BUSY信号作为TSC2046Master的指示。

TSC2046是在时钟的第一个Idle to Active沿采集数据(下图1处),而在第一个(下一字节)Active to Idle 沿开始移出数据(下图2处),这导致Master只能在第二个dle to Active沿采集到的数据才是有效的(下图3处),而在第一个Idle to Active沿(下图1处)采集的数据是无效的,因此在软件中需要将该Bit丢弃。

可见,必须根据MasterSlave的实际时序进行匹配,软件也需要进行对应的调整,才能保证数据传输的正常进行。

  

 Slave的应用

SPI也支持多Slave应用。多个Slave共享时钟线、数据线,可以直接并接在一起;而各Slave的片选线SS则单独与Master连接,受Master控制。在一段时间内,Master只能通过某根SS线激活一个Slave,进行数据传输,而此时其他Slave的时钟线和数据线端口则都应保持高阻状态,以免影响当前数据传输的进行。

         

SPI  Vs  I2C

SPI协议没有定义寻址机制,需通过外部SS信号线选择设备,当出现多slave应用时,需要多根SS信号线,实施起来较I2C要复杂。此外,SPI总线不支持总线控制权仲裁,故只能用在单Master的场合;而I2C可以支持多Master的应用。

SPI 协议相对I2C要简单,没有握手机制,数据传输效率高,速率也更快,通常应用中可达几Mbps;此外SPI是全双工通信,可同时发送和接收数据,因此,SPI比较适合用于数据传输的场合。比如需要较大批量数据传输的场合(比如MMC/SD卡的数据传输就支持SPI模式),或者无需寻址传输的场合。

I2C协议功能较丰富,但也相对复杂,多用在传输一些控制命令字等有意义数据的场合。

比如TSC2046只有一个控制寄存器(一个8bit的命令字),使用SPI接口即可控制,因为无需寻址。而OVCmos Sensor内有多个控制寄存器,此时就必须使用I2C接口才能实现寻址控制(哦,确切的是SCCB,一个很像I2C的东东)。

SPI接口属于一种非常基本的外设接口,但是应用却很广泛。SPI也有所发展,比兔NS推出的SPI的精简接口Microwire,满足通常外设的扩展需求。Motorola还推出了扩展功能的QSPIQueued SPI)接口,应用更为广泛。