当前位置:首页 > 设计方法
  • 谈一谈设计方法和智能传感器的研究领域

    谈一谈设计方法和智能传感器的研究领域

    智能传感器系统的实现是在传感器技术、计算机技术、信号处理、网络控制等技术的基础上发展起来的,并随这些技术的发展而发展,但不是这些技术的简单合成。无论是微处理器还是网络技术,都不是原来一般技术的简单合成,下面针对网络化传感器系统所涉及的一些问题进行分析。 首先,系统构成。从计算机技术角度来看,一般计算机系统所处理的数据是数字信号,且是直接通过外部设备输入的,这些信号本身会受到外部设备限制。但是对于传感器系统来说所面对的是与外界环境相关的模拟信号,信号与外界的一些物理量相关。这意味着信号的存在和信号的出现是受到环境限制的,为了满足控制实时性的需要,信号的采样必须保证实时性。 其次,信号处理方法。在网络化使用环境中,即插即用是对网络中的每个设备最基本的要求。但是由于每个被测物理量通过传感器时输入输出的关系是不定的,有些是线性的,但更多的是非线性的,必须保证系统能够准确识别被测对象,一方面要能够确定探测器信号的位置,另一方面要能够确定传感器输入输出之间的关系以及物理量(一般被测物理量和传感器输出物理量不一定一样。例如电容式压力传感器输入为压力,输出为电容)。这类似于传统传感器设计时涉及到的标定问题,但是不完全一样。因为一般传感器设计中无须考虑输入输出物理量,仅仅只考虑它们之间的关系。 再次,需要考虑外部接口。从网络化智能传感器的应用来说,其一般使用在自动化现场的测量控制级,相互之间需要通过现场总线连接在一起。对于不同的应用场合,现在已经有很多不同的总线标准协议。要保证所设计的传感器完全满足这些协议比较困难,这就必须考虑接口问题。这是智能网络化传感器与普通传感器最大的区别。 最后,软件工具的开发。由于过去传感器完全是由硬件所组成,因此研究的对象主要局限在传感机理、材料、结构、工艺等物理方面。而智能传感器的智能性则是在硬件的基础上通过软件实现其价值的,软件在智能传感器中占据了主要的成分。而且智能化的程度是与软件的开发水平成正比的,相信在不久的将来,基于计算机平台完全通过软件开发的虚拟传感器会有十分广泛的应用。软件开发工具包括设计、管理和通讯管理等不同方面。目前这类工具已经开始出现,一般C,LabView,ActiVeX等工具软件都可以完成。软件的功能主是与软件的开发水平成正比的,用以实现传感器模型建立、标定参数建立、最佳标定模型选择等。尽管智能传感器的构成方法并非在所有的场合使用都是合理的,但是在许多的应用中,其相对与传统传感器的优点是无法抗拒的。在大多数情况下,智能传感器价格便宜、使用方便、性能优越、维护简单、功能扩展容易的优点是传统的传感器所无法比拟的。特别是在一些应用传感器较多的场合,无疑智能传感器将是最为合理的选择。 目前来说,考虑到投资因素,由于在过程测量控制领域中系统设计寿命一般都有几十年,尽管传统所使用的测量控制主要是模拟量传输的,而符合现场总线网络标准的智能传感器有很多优点,但是更换这些传感器执行器需要花费很多的时间和增加很大的投资,这种系统还会存在相当长的一段时间。过去这类系统功能的扩展比较困难,因此多种系统共存的局面将维持一段时间。

    时间:2019-08-02 关键词: 智能传感器 测量控制 设计方法

  • 并行设计FPGA和PCB,应对系统设计的趋势与挑战

    复杂度日益增加的系统设计要求高性能FPGA的设计与PCB设计并行进行。通过整合FPGA和PCB设计工具以及采用高密度互连(HDI)等先进的制造工艺,这种设计方法可以降低系统成本、优化系统性能并缩短设计周期。 图1 FPGA和PCB 设计团队必须并行工作,不断地交换数据和信息以确保系统设计成功 电子工业背后的推动力是对更快、更便宜的产品的需求以及在竞争厂商之前将产品推向市场。IC技术的进步一直以来就是促使功能增加和性能提高的主要因素之一,而FPGA技术也一直以非常快的速度在发展。与过去FPGA仅仅用作胶合逻辑不同的是,现在FPGA已经被用来实现主要系统功能。FPGA的逻辑门数已达1千万,内核速度达到400MHz,能提供高达11Gbps的下一代芯片间通信速度。而与此同时,它仍然保持着非常合理的成本,因此,与ASIC和定制IC相比,FPGA是一种更具有吸引力的选择。 IC和FPGA技术的进步对下游产业产生的效应影响到了PCB行业,这些高管脚数和高性能封装推动新的PCB生产及设计技术具有诸如嵌入无源器件、数千兆位信号和EMI分析等功能,并对专用的高密度和高性能布线提出了需求。基本的系统设计方法也在发生变化,对FPGA和PCB的设计可以并行进行以降低系统成本、优化系统性能并缩短设计周期。 PCB和FPGA一般是在不同的设计环境下创建,过去这些设计方案很少相互沟通。然而,随着高性能、高密度FPGA器件的日益流行,为满足紧张的上市时间表,如今PCB和FPGA设计团队必须并行工作(见图1),不断地交换数据和信息以确保整个系统设计获得成功。 当在PCB上实现高端FPGA时,设计工程师面临性能优化和系统设计生产率的双重挑战。设计工程师必须问自己:是什么问题使得过程慢了下来?需要做什么来获得最佳性能?这些问题的答案可帮助他们鉴别可实现更小、更便宜和更快系统的解决方案。 设计效率的挑战 设计工程师需要并行设计PCB和FPGA时,FPGA设计工程师再也不能像以前那样独立地设计,然后将完成的FPGA设计交给PCB设计工程师就可了事。一个有竞争力的设计要求FPGA和PCB设计工程师从上至下的协作,各自做些折衷以保证最后得到一个最优系统。并行设计的好处是它能减少设计周期、优化系统性能并降低制造成本。 并行设计的挑战在于FPGA布局和布线工具得到的结果需要准确、迅速地映射到原理图和PCB布局中,同时PCB设计的任何改变也必须在FPGA上更新。传统的设计过程是先设计FPGA,然后再将它们交给PCB设计工程师进行电路板实现,如今这种做法不再可行。 如果FPGA设计/综合、布局/布线以及PCB设计环境没有被整合,FPGA和PCB方案之间的沟通必须用人工的方法来实现。对于有几百个管脚的小型FPGA,这可能还可以接受,但是,如今很多设计拥有多个高度复杂的FPGA,使用这种方法进行信息沟通将非常浪费时间,并容易出错。仅仅是高管脚数FPGA的PCB原理图符号的创建和更新,就可以凸显这个问题(设计时间的评估见图2)。 图2 创建和更新FPGA的PCB原理图符号所需时间的估计 另外一个问题涉及到PCB上的大型FPGA。与小型FPGA的符号不同,大型FPGA的单个符号在一张原理图放不下。这些符号必须通过功能分组被分成几个符号,并在FPGA的设计反复过程中保持不变。 FPGA设计工程师花费大量时间调整性能、选择正确的I/O管脚驱动器/接收器,然而FPGA的设计并非仅受FPGA设计工程师的控制。当在PCB上进行FPGA的布局和布线时,设计环境可能要求改变FPGA的管脚分配,如果PCB工具中没有FPGA设计规则,这可能成为一个重复而费时的过程。 此外,FPGA 的I/O分配也成了一个系统问题。设计工具需要能够管理管脚分配,但它们必须能被PCB和FPGA设计工程师用来沟通管脚约束。PCB设计工程师无法创建一个阻止FPGA时序收敛的条件,而FPGA设计工程师也不能创建一个阻止系统时序收敛的条件。 图3、图4给出的例子体现了装配在PCB上的FPGA的性能优化前后的布线情况。FPGA的32位总线必须直接与左边连接器进行通讯,这是一个高速总线,其上所有网络必须匹配以获得适当的偏斜控制。 在图3中,为使所有的走线长度与最长网络相匹配,布线器增加了很多蛇形走线。从PCB布线的角度来看,其结果是一团糟:有很多额外的拥塞、太多额外的走线以及一个工作性能并非最优的总线。 图3 FPGA性能优化前的布线图 在图4中,布线器也对所有的走线长度与最长走线进行了匹配。即使这样,每条走线的长度也只有1.8英寸,而此前为3.2英寸,更短的匹配长度使总线延时减少到320皮秒。这种性能优化是整合FPGA和PCB设计过程的结果,它可获得理想的FPGA管脚图。 图4 FPGA性能优化后的布线图 这个例子说明了在PCB上装配FPGA可能存在的挑战,包括:额外的拥塞需要更长的PCB设计时间完成布线;并非最优的系统性能;额外的布线要求额外的PCB层,从而增加制造成本。 功能方面的性能障碍 IC和FPGA器件已经过优化以便得到更高性能,例如,它们现在能够实现每秒数Gb的串行通讯性能。从时序收敛、信号完整性以及全面降低PCB布线密度的角度来看,这种方法有以下几个优点: (1) 时序校准没那么严格:时钟包含在串行信号内,因此设计工程师不需要管理时钟和数据之间的时序; (2) 改善信号完整性:所有信号都使用差分线对,可提高信号质量; (3) 布线简化:串行信号沿一条路径(实际上是差分线对)传输,而不是在具有多条走线的总线上并行传输,这意味着互连需要较少的走线和层数; (4) 片上端接:通过在FPGA内集成可变电阻端接器,板上需要的表面贴器件更少,可以节省空间并提高性能。在更新的器件里还包含了片上电容,可节省更多的空间。 在系统中使用这些高端FPGA则使PCB设计成为整个系统设计取得成功的关键途径,其中系统必须能高速运行,并具有生产成本效益,还能按时设计出来。 每秒数Gb的通讯速度要求一套能够进行信号走线并验证的全新工具。这时PCB上的走线、连接器和过孔也需要消耗功率,必须小心地对它们建模,用经典的信号完整性分析方法计算延时、过冲/下冲和串扰。另外还必须用理解位模式、预加重、均衡和眼图,对工作在GHz频率范围的串行连接进行建模。EDA和FPGA供应商也正在协作,以“设计套件”的形式提供准确的器件模型、设计约束和参考设计,这都将提高设计质量并缩短设计周期。 串行I/O还需要由公共系统约束驱动的改进的PCB布局和布线技术,另外还须根据最大的匹配延时以及用到的过孔数量严格控制差分线对的走线。 先进的PCB制造技术 高端FPGA的高管脚数和高管脚密度产生的另一个挑战是需要将FPGA装配到PCB上,然后再将它们连接到板上的其它IC。在很小的面积上有如此多管脚,以致采用普通PCB制造工艺几乎不可能进行内部连线。其结果是,这些器件促进了先进PCB制造技术的采用,例如高密度互连(HDI)以及嵌入无源器件等。 HDI在PCB上使用IC制造技术。HDI层沉积在传统PCB压合层上(例如FR4),可以制造出很窄的走线和很小的过孔(微过孔),并很容易使扇出远离高密度封装,通常是球栅阵列(BGA)或芯片级封装(CSP)。另外,使用这些HDI技术还需要能够理解这种PCB和IC混合生产技术的专用PCB布局软件。 HDI/微过孔的好处包括: 减少产品尺寸:PCB基板的高度和厚度降低,体积也减小了; 增加走线密度:每个器件的连线更多,而器件布置得更紧密; 降低成本:HDI能减少电路板的层数和面积,使每块大的裸板能产出更多电路板,削减生产成本; 改善电气性能:HDI的寄生效应只有通孔的十分之一,其引线更短,噪声裕量更大; 降低无线电干扰(RFI)/EMI:因为地平面更接近或者就在表层,可利用地平面的分布电容,大大减少RFI/EMI; 提高散热效率:HDI层的绝缘介质很薄,温度梯度很高,可提高散热性能; 提高设计效率:微过孔使双面布局变得容易,还改善了器件管脚的走线(在焊盘上打过孔),因而留出更多的内层布线空间; 提高良品率(DFM):由于间隙很小,HDI板几乎不需要压合; 减少层数:通常需要10到12层板的表面贴技术(SMT),采用HDI制造工艺只需6层就可以实现; 缩短设计周期:由于采用埋孔,布线空间更充足,可显著减少设计时间。 此外,这些高管脚数器件需要很多去耦电容和端接电阻以保证工作性能,传统的SMD无源器件会占用表面层的宝贵面积。通过将这些无源器件嵌入到PCB内层,PCB的尺寸可大大减少,同时性能也能得到提高。 嵌入无源器件具有很多优点,包括: 增加设计密度:将无源SMD移入到内层能让其它器件布置得更紧密; 降低系统成本:虽然额外的步骤将增加生产成本,但是通过减少SMD并使电路板面积最小化,可降低整体系统成本; 减轻系统重量和电路板面积:去除SMD能减少电路板尺寸和重量; 提高性能:无源器件可以非常靠近有源器件,这可减少电感,提高性能; 提高可靠性和质量:需要装配的SMD越少意味着潜在的焊接故障越少; 增加功能:为增加功能创造了机会,而不用担心减少设计面积。 就像其它任何新兴技术一样,随着支持它们的基础技术的发展,其成本将下降。嵌入无源器件技术便是如此,它曾经仅用于非常前沿的设计,但现在它甚至用在那些要求小尺寸、高功能的消费类产品中。 嵌入无源器件的设计关键是要有便于高效设计的自动化工具。如果由人工来定义库器件,那么要设计具有不同参数值和公差的数百个无源器件是不可能的,它需要由电阻和电容特性参数(来自元器件供应商)驱动的自动综合算法。这些综合算法驱动那些分析所有无源器件所需的权衡工具,并帮助确定最佳材料组合和外形尺寸。这些权衡工具有助于减少电路板上的器件数量,减少生产步骤和最终成本。 本文小结 从事电子产品设计的公司需要FPGA工具和PCB设计工具进行紧凑、双向地整合,还需要EDA和FPGA供货商紧密合作。有了这种整合与合作,他们才能达到上市时间和性能的目标,

    时间:2017-08-08 关键词: pcb设计 fpga设计 设计方法

  • 嵌入式存储器的设计方法和策略

    随着集成电路制造工艺水平的提高,半导体芯片上可以集成更多的功能,为了让产品有别于竞争对手的产品特性,在ASIC上集成存储器可以降低成本和功耗、改善性能、增加系统级芯片的可靠性。随着对嵌入式存储器需求的持续增长,其复杂性、密度和速度也日益增加,从而需要提出一种专用存储器设计方法。 存储器的外包设计 存储器模块都具有相对独立的特性,在一个时钟系统中它通常占用一个管道,从成本和人力资源两方面考虑,许多芯片开发商都将存储器模块外包设计,因为,与其它半导体芯片相比,在系统中定义和分离存储器模块要容易得多。此外,诸多因素促进了存储器编辑器及定制存储器设计公司的发展,例如:存储器模块的标准模块特性、对嵌入式存储器的巨大市场需求以及存储器核心采用的是系统设计人员不熟悉的新技术,为了满足紧迫的系统设计进度要求,存储器设计公司通过板上存储器设计及时地为系统设计公司服务。 当许多公司外包嵌入式存储器设计时,也有许多公司迟迟迟疑不决。在外包设计过程中,要让系统设计人员尽可能早地获得引脚的位置、存储芯片面积以及存储器HDL模型,这样,就能够及时和高效地推出系统级芯片,同时不必担心系统芯片的面积、性能和品质问题。 获取嵌入式存储器设计的另一种方法是利用存储器编译器,它能够快捷和廉价地设计存储器物理模块。尽管该方法很有效并且完全适合标准存储器结构,但它存在若干缺陷。通常,编译后的存储器设计导出大量存储器模块,并造成系统的整体性能下降,另外,当系统设计需要添加新的功能时,该设计方法灵活性较差。 与此相反,向存储器定制设计公司定制嵌入式存储器设计则大有裨益。定制存储器可满足系统对存储器的突发需求,例如修改逻辑电路以便和存储器核实现逻辑兼容。定制存储器不是简单地在芯片上嵌入标准存储器模块,然后围绕存储器的其它逻辑电路来综合实现预想的功能。实际上,设计人员将逻辑电路直接植入存储器模块,从而使物理版图与存储器的存储单元紧密结合,这就能减小芯片的总面积,从而实现较高的存储密度,并提高芯片的性能,达到高速、紧凑、低耗电和布线简洁的设计要求。 现有存储器设计的复杂性需要完整的设计流程。本文介绍的设计方法包括设计概念、网表的建立、设计、布线以及存储器模块的验证,该方法可确保存储器模块在嵌入SoC时能有效地工作。 RISC中的存储器设计 在500MHz、64位RISC微处理器的嵌入式存储器设计中,片上存储器速度要足够快速,结构要足够复杂,否则无法与高速而复杂的微处理器相匹配。定制存储器占据200mm2 处理器1/3以上的面积,包括:一级和二级高速缓存、将虚拟页地址转化为物理地址的两级转换后备缓存(TLB)、用于定点和浮点内核的多端口寄存器文件以及查寻表(LUT)和通用存储器(GP)等。高速缓存包含实现数据存储、标识及LRU功能的独立存储器。除了多端口存储阵列之外,寄存器文件还包含用于地址翻译和命名逻辑单元的ROM和CAM(见图1)。总之,要设计20个独特的存储器。   图1 逻辑单元的ROM和CAM 存储器的复杂性和独特性表明,采用存储器编译器并不完全可行,每种嵌入式存储器都需要采用新的电路技术来设计,以便满足微处理器的高性能、高密度、低功耗和极低噪声的要求。 这样的高速微处理器必须采用最先进的0.18μm、6层铜线双镶嵌金属CMOS工艺制作,其极小的特征尺寸和高性能的晶体管使存储器设计面临严峻的考验,因为窄金属导线(线高大于水平间距)尤其容易受到串扰及电子迁移效应的影响,而晶体管的低阈值将导致抗噪声性能降低。 嵌入式存储器设计方法 要制定出每个设计人员都必须遵循的设计指南,首先要开发出一套设计标准,该标准包括最优门比率、扇出数目、最大晶体管宽度以及预布线阻抗和电容的经验法则。在高密度、高速存储器的设计过程中,要采用先进的电路技术、抗串扰技术及噪声容限设计标准。串扰标准规定了邻近信号的布线规则,其它噪声容限标准则规定静态噪声容限和锁存电路的可写性规则。 芯片的多种宏设计要求与电路标准保持一致。时钟发生器和寄存器的标准尤为重要,它们是整个CPU输入设置和保持时间维持一致的前提。为了使时钟偏差最小,设计人员需要密切控制占空比和扇出数目以及所有时钟发生器的上升和下降时间。 另外,我们采用可测性设计(DFT)方法,如扫描和全频内建自检(BIST)方法来设计每个存储器。毫无无疑,BIST技术比采用测试仪器测试要复杂得多,后者要将嵌入式存储器的I/O信号复用到测试总线上,并通过布线连接到芯片的I/O端口以便测试仪器进行测试。但是,BIST方法的优点在于与测试仪器无关,并可全频测试存储器。利用BIST复杂的测试功能,可以用标记将故障与特定的例程或一个实际的I/O或一个存储单元隔离。该特性可实现冗余处理和详细的故障分析。BIST还具备测试存储器功能和确定宏或存储器最大工作频率的能力,但通常无法计算宏的存取时间。 DFT方法虽然增加不到2%的开销,但对存储器的验证来说,其作用非常重要。采用这些技术及定制嵌入式ATE(自动测试设备)电路,我们已经制作了一些测试芯片来验证存储器设计过程中采用的复杂设计技术(图2)。   图2 验证存储器设计 现在,要驱动500MHz的外部I/O引脚很不实际,我们设计了专用嵌入式ATE电路来俘获并评估嵌入式宏的实际存取时间。通过建立片上测试器,可确保采用低成本的数字测试器来驱动及评测芯片。 时序和功能验证 对高性能半导体芯片,精确的时序模型至关重要。为了提取嵌入式存储器中关键路径的特征并进行仿真,要采用了Avant!公司的Hspice软件。从仿真运行时间来看,仿真整个宏的LPE网表是不切实际的,为此要采用集总和加载技术(见图3)。   [!--empirenews.page--] 图3 采用集总和加载技术 集总和加载方法是通用技术,面临分布式载荷造成的模型不精确的问题,并受到由阻容(RC)网络引起的传输线效应的影响。RC网络不仅包含阻容元件,还包含要对栅极、源极和漏极电容精确建模的晶体管。为了获得精确时序,要建立验证关键路径中所有元件与实际宏的LPE网表之间匹配程度的工具。对我们感兴趣的节点,要比较关键路径和LPE网表之间的引线、栅极、源极、漏极、耦合电容和电阻。当这些参数不匹配时,就必须修正负载模型。 Hspice可以仿真温度、P-T-V曲线并对每个角作出测量说明和绘图分析,从而便于查找不正确的电路行为,例如分析信号偏移率变差的程度、由串扰引起的信号尖峰、不期望的脉冲重叠程度、传输延迟变坏的程度、时钟电路的建立和保持时间变坏的程度等。 我们通常利用Verilog或VHDL模型来仿真整个SoC并对其建模。为了确保精确度,每个嵌入式存储器都有一个与之对应的Verilog模型,这样才能确保电路的功能与HDL模型匹配。对每个存储器,要建立全面的测试平台来测试所有的地址组合、控制和测试模式(即扫描和BIST),然后,我们将测试矢量及其相关的预测数据应用到每个宏的所有LPE网表。 如上所述,可以证明用Hspice仿真大型网表和大型测试向量集(通常有数千个向量)是不切实际的。为了弥合Hspice和Verilog之间的差距,要采用Synopsys公司的Timemill测试工具, 该工具可将逻辑等价性测试和电路的电性能验证结合起来,它可将向量驱动的全部存储器的LPE网表作为输入置于Verilog环境中进行仿真,其优点在于能检测电路网表和Verilog模型之间功能上的差异,并具有良好时序精度,从而发现时序缺陷。Timemill测试工具不是故障仿真器,但是测试向量能够涵盖99%以上的待测节点。我们在与Hspice仿真相同的P-T-V曲线下运行了Timemill测试。此外,还检测了未驱动的节点、最低和最高工作频率及P-T-V曲线的极端情形。 物理验证 我们还采用Mentor Graphics公司的Calibre工具来验证物理设计,并用完整的LVS和DRC规则基准来检验电路连接的正确性、所有的间距和宽度等,用附加的质量保证规则基准来检验浮动层、阻抗连接和不期望出现的几何结构。 对于版图的寄生参数抽取,要采用Mentor公司的xCalibre工具,它可生成用于Hspice关键路径分析和Timemill仿真的LPE网表。为了达到精确抽取,版图的层次必须与电路图的层次匹配,此外,所有的馈通(feedthrough)必须嵌入页元(leaf cell)中,这样其寄生效应才会在子电路的LPE网表中得到仿真。 LPE网表只能对关键路径仿真进行事后说明,但为了防止LPE预仿真和LPE后仿真的结果之间出现大的差异,这样做有必要。假如我们要达到高性能的仿真结果,关注实际版图的质量对电路设计技术也至关重要,例如合并或共用信号源极或漏极、屏蔽时钟信号线和解码信号线组、以及使用多个触点把电阻降到最小(在驱动大负载时,这点特别重要)。 质量保证 除了上述步骤和检验以外,在每个宏输出到系统设计工程师之前,要对其进行强化质量保证分析。目前,EDA质量保证工具正在形成之中,我们已经开发了很多专用检验工具。一级QA检验工具专用于较小面积的存储器开发,用该工具能确保Hspice关键路径网表加载与全版图LPE网表准确匹配。该工具还能分析整个LPE网表里的每个节点,并检验额外的驱动输出和偏移率,它检测到节点上的多个驱动器并找到易受电荷共享(特别是动态节点)和串扰影响的节点,然后要考虑耦合电容、驱动强度、接收器的噪声容限以及相邻节点的数量。检验之后,设计工程师必须纠正或者调整上述检验中有问题的节点。 我们采用一套特殊的DRC规则集对版图进行QA检验,该工艺找到具有阻性的连接点并检查电源格的完整性以及超宽晶体管。典型的DRC规则无法检查的阻性连接点或软连接不会导致芯片的功能故障,但容易产生与频率相关的问题或稳定性故障。 为了满足时序要求,设计工程师有时必须在噪声容限和速度之间作出折衷。即便如此,所有电路都必须通过最小噪声容限规则,否则当把存储器嵌入到整个CPU 后,就存在故障隐患。存储器、比例逻辑(伪NMOS逻辑)和动态逻辑门等电路都要经过静态和动态噪声容限分析。对于那些在同一裸片上参数不匹配的器件(如差分传感放大器),要通过蒙特卡洛Hspice分析,最后,存储器单元和锁存器要在所有P-V-T曲线上进行可写性测试。 功率分配和电源格的完整性对宏的性能有显著影响。电压IR降到Vdd,Vss上的电位抖动对噪声容限、时序甚至电路的功能有重要影响,随着电源电压的降低和深亚微米特征尺寸Vts的减小,这个问题甚至会恶化。在0.18微米工艺中,窄线距必然电流密度高,从而增加了出现电子迁移故障的可能性。因为电流和焦耳热会造成互连线特性的逐步退化,通常在几个月或几年后就可能发生电子迁移故障,如果故障出现得太早,那么就有可能造成灾难性的损失。 采用Synopsys公司的Pow ermill(Timemill的姊妹工具)仿真整个宏的电源,能按照放置的位置详细描绘各子电路电源的电流图,该电流图和宏版图的RC网表一起,输入到分析电源总线IR压降和电子迁移的工具中,该工具将指出任何有故障的线段或触点/通孔,并允许设计工程师改进总线,同时,输出的版图错误标识图、轮廓图、 3D电流和电压分布图有助于进一步分析。 事实上,不仅限于最高速和最小加工工艺,即使0.35微米以上的工艺和 100MHz以下的速度,也可以采用上述QA流程对噪声容限、串扰、IR压降或电子迁移相关的故障进行检测和分析。 本文总结 在外包嵌入式存储器设计的时候,一般都有明确的交付日期。在设计初期,存储器设计工程师必须向系统设计工程师提供底层规划图、关于重要边界和引脚位置的布局和布线约束条件。用户还希望用精确的HDL模型来消除系统中出现的小错误。然后,存储器设计工程师必须提交一个配备延迟和竞争查寻表或方程的时序库,从而方便客户对整个芯片逻辑和时序进行仿真。当前的拓扑图有助于系统设计工程师对整个芯片的电源、IR压降和电子迁移进行分析。设计工具必须具备一个用于存储器模块测试的配备测试向量的测试基准以及足够的文档。最终设计结果是完整的版图数据库,可以作为存储器模块直接放置到系统芯片上,同时还要提供包括仿真、时序、验证结果、设计细节、网表和电路图在内的完整设计文件。[!--empirenews.page--] 嵌入式存储器在半导体芯片中的作用非常重要,它向整个芯片提供的可互用特性决定了整个芯片的效率、速度和性能。只有设计方法可靠,才能设计出优良的存储器。 嵌入式存储器易受外部噪声的影响,因而要求比传统的片外存储器更严格。存储器的设计通常要与整个芯片并行开始,所以工程师必须学会预测和实现精确的灰盒存储器模型。 要保证嵌入式存储器的质量,必须建立严格的设计标准,设计工程师在设计过程中,不仅要善于创新,还要坚持采用严格的设计方法和质量保证工具,只有这样才能取得设计的成功。

    时间:2015-10-09 关键词: 存储器 嵌入式 存储技术 策略   设计方法

  • 印刷布线图的基本设计方法和原则要求

    一、印刷线路组件布局结构设计讨论 一台性能优良的仪器,除选择高质量的元器件,合理的电路外,印刷线路板的组件布局和电气联机方向的正确结构设计是决定仪器能否可靠工作的一个关键问题,对同一种组件和参数的电路,由于组件布局设计和电气联机方向的不同会产生不同的结果,其结果可能存在很大的差异。因而,必须把如何正确设计印刷线路板组件布局的结构和正确选择布线方向及整体仪器的工艺结构三方面联合起来考虑,合理的工艺结构,既可消除因布线不当而产生的噪声干扰,同时便于生产中的安装、调试与检修等。 下面我们针对上述问题进行讨论,由于优良“结构”没有一个严格的 “定义”和“模式”,因而下面讨论,只起抛砖引玉的作用,仅供参考。每一种仪器的结构必须根据具体要求(电气性能、整机结构安装及面板布局等要求),采取相应的结构设计方案,并对几种可行设计方案进行比较和反复修改。 印刷板电源、地总线的布线结构选择——系统结构:模拟电路和数字电路在组件布局图的设计和布线方法上有许多相同和不同之处。模拟电路中,由于放大器的存在,由布线产生的极小噪声电压,都会引起输出信号的严重失真,在数字电路中,TTL噪声容限为0.4V~0.6V,CMOS噪声容限为Vcc的0.3~0.45倍,故数字电路具有较强的抗干扰的能力。 良好的电源和地总线方式的合理选择是仪器可靠工作的重要保证,相当多的干扰源是通过电源和地总线产生的,其中地线引起的噪声干扰最大。 二、印刷电路板图设计的基本原则要求 1。印刷电路板的设计,从确定板的尺寸大小开始,印刷电路板的尺寸因受机箱外壳大小限制,以能恰好安放入外壳内为宜,其次,应考虑印刷电路板与外接元器件(主要是电位器、插口或另外印刷电路板)的连接方式。印刷电路板与外接组件一般是通过塑料导线或金属隔离线进行连接。但有时也设计成插座形式。即:在设备内安装一个插入式印刷电路板要留出充当插口的接触位置。 对于安装在印刷电路板上的较大的组件,要加金属附件固定,以提高耐振、耐冲击性能。 2。布线图设计的基本方法首先需要对所选用组件器及各种插座的规格、尺寸、面积等有完全的了解;对各部件的位置安排作合理的、仔细的考虑,主要是从电磁场兼容性、抗干扰的角度,走线短,交叉少,电源,地的路径及去耦等方面考虑。各部件位置定出后,就是各部件的联机,按照电路图连接有关引脚,完成的方法有多种,印刷线路图的设计有计算机辅助设计与手工设计方法两种。 最原始的是手工排列布图。这比较费事,往往要反复几次,才能最后完成,这在没有其它绘图设备时也可以,这种手工排列布图方法对刚学习印刷板图设计者来说也是很有帮助的。计算机辅助制图,现在有多种绘图软件,功能各异,但总的说来,绘制、修改较方便,并且可以存盘贮存和打印。 接着,确定印刷电路板所需的尺寸,并按原理图,将各个元器件位置初步确定下来,然后经过不断调整使布局更加合理,印刷电路板中各组件之间的接线安排方式如下:(1)印刷电路中不允许有交叉电路,对于可能交叉的线条,可以用 “钻”、“绕”两种办法解决。即,让某引线从别的电阻、电容、三极管脚下的空隙处“钻”过去,或从可能交叉的某条引线的一端“绕”过去,在特殊情况下如何电路很复杂,为简化设计也允许用导线跨接,解决交叉电路问题。 (2)电阻、二极管、管状电容器等组件有“立式”,“卧式”两种安装方式。立式指的是组件体垂直于电路板安装、焊接,其优点是节省空间,卧式指的是组件体平行并紧贴于电路板安装,焊接,其优点是组件安装的机械强度较好。这两种不同的安装组件,印刷电路板上的组件孔距是不一样的。 (3)同一级电路的接地点应尽量靠近,并且本级电路的电源滤波电容也应接在该级接地点上。特别是本级晶体管基极、发射极的接地点不能离得太远,否则因两个接地点间的铜箔太长会引起干扰与自激,采用这样“一点接地法”的电路,工作较稳定,不易自激。 (4)总地线必须严格按高频-中频-低频一级级地按弱电到强电的顺序排列原则,切不可随便翻来复去乱接,级与级间宁肯可接线长点,也要遵守这一规定。特别是变频头、再生头、调频头的接地线安排要求更为严格,如有不当就会产生自激以致无法工作。 调频头等高频电路常采用大面积包围式地线,以保证有良好的屏蔽效果。 (5)强电流引线(公共地线,功放电源引线等)应尽可能宽些,以降低布线电阻及其电压降,可减小寄生耦合而产生的自激。 (6)阻抗高的走线尽量短,阻抗低的走线可长一些,因为阻抗高的走线容易发笛和吸收信号,引起电路不稳定。电源线、地线、无反馈组件的基极走线、发射极引线等均属低阻抗走线,射极跟随器的基极走线、收录机两个声道的地线 必须分开,各自成一路,一直到功效末端再合起来,如两路地线连来连去,极易产生串音,使分离度下降。 三、印刷板图设计中应注意下列几点 1。布线方向:从焊接面看,组件的排列方位尽可能保持与原理图相一致,布线方向最好与电路图走线方向相一致,因生产过程中通常需要在焊接面进行各种参数的检测,故这样做便于生产中的检查,调试及检修(注:指在满足电路性能及整机安装与面板布局要求的前提下)。 2。各组件排列,分布要合理和均匀,力求整齐,美观,结构严谨的工艺要求。 3。电阻,二极管的放置方式:分为平放与竖放两种:(1)平放:当电路组件数量不多,而且电路板尺寸较大的情况下,一般是采用平放较好;对于1/4W以下的电阻平放时,两个焊盘间的距离一般取4/10英寸,1/2W的电阻平放时,两焊盘的间距一般取5/10英寸;二极管平放时,1N400X系列整流管,一般取3/10英寸;1N540X系列整流管,一般取4~5/10英寸。 (2)竖放:当电路组件数较多,而且电路板尺寸不大的情况下,一般是采用竖放,竖放时两个焊盘的间距一般取1~2/10英寸。 4。电位器:IC座的放置原则(1)电位器:在稳压器中用来调节输出电压,故设计电位器应满中顺时针调节时输出电压升高,反时针调节器节时输出电压降低;在可调恒流充电器中电位器用来调节充电电流折大小,设计电位器时应满中顺时针调节时,电流增大。[!--empirenews.page--] 电位器安放位轩应当满中整机结构安装及面板布局的要求,因此应尽可能放轩在板的边缘,旋转柄朝外。 (2)IC座:设计印刷板图时,在使用IC座的场合下,一定要特别注意IC座上定位槽放置的方位是否正确,并注意各个IC脚位是否正确,例如第1脚只能位于IC座的右下角线或者左上角,而且紧靠定位槽(从焊接面看)。 5。进出接线端布置(1)相关联的两引线端不要距离太大,一般为2~3/10英寸左右较合适。 (2)进出线端尽可能集中在1至2个侧面,不要太过离散。 6。设计布线图时要注意管脚排列顺序,组件脚间距要合理。 7。在保证电路性能要求的前提下,设计时应力求走线合理,少用外接跨线,并按一定顺充要求走线,力求直观,便于安装,高度和检修。 8。设计布线图时走线尽量少拐弯,力求线条简单明了。 9。布线条宽窄和线条间距要适中,电容器两焊盘间距应尽可能与电容引线脚的间距相符;10。设计应按一定顺序方向进行,例如可以由左往右和由上而下的顺序进行。

    时间:2014-10-19 关键词: 电路设计 印刷布线图 原则要求 设计方法

  • 基于RTOS的智能交通灯设计方法

    摘要:介绍一种基于车流量变化动态调节时间的智能交通灯的设计方法;在进行流量统计的同时,对违章情况进行监测;根据模糊算法分配各车道的绿灯时间,实现车流动态调节。分析其中存在的多种任务,用传统的前后台编程方法实现难度较大,使用实时操作系统可简化程序设计,并使程序具有良好的可读性、可维护性和可移植性。介绍车流量检测的原理与绿灯时间分配方案。 关键词:智能交通灯 车流量 实时 多任务实时操作系统 引言 随着城市汽车保有量的越来越多,城市的交通拥挤问题正逐渐引起人们的注意。交通灯是交管部分管理城市交通的重要工具。目前绝大部分交通灯其时间都是设定好的,不管是车流高峰还是低谷,红绿灯的时间都固定不变;还有一些交通灯能根据简单划分的时间段来调整时间,但控制起来都不是很灵活,这使得城市车流的调节不能达到最优。本文所述设计正是针对这一弊端进行了改进,根据实时车流量对各路口的绿灯时间进行动态调节,大大加强了其灵活性和实时性;软件编程采用了实时操作系统RTX51,在确保实时性要求的同时,简化了复杂的软件设计工作。 1 方案论证 图1是一个典型的十字路口示意图。分别用1、2、3、4表明四个流向的主车道,用a、b、c、p分别表示各主车道的左行车道、直行车道、右行车道以及人行横道。 通过分析很容易得知,除了四个右行车道外,在同一时间,最多只能有两个车道通行,如1a、1b通行时,其它车道都会被阻断。所以在设计红绿灯时,可以两两组合,共有四组(如la-1b、2a-2b、3a-3b、4a-4b);而各车道的红灯时间和人行横道通停时间都由这四个组合的绿灯窗口时间决定。本文将以广泛采用的图2所示的通行顺序来讲述智能交通灯的设计。 2 系统软硬件设计 本系统硬件上采用上位机和下位机设计,其中下位机四个,均采用AT89C52单片机,分别控制图2所示的四个组合。AT89C52单片机具有MCS-51 内核,片内有8KB Flash、256字节RAM、6个中断源、1个串行口、最高工作频率可达24MHz,完全可以满足本系统的需要。 上位机和下位机之间的串行通信采用RS-485标准接口。在通信频率为9600bps的情况下,有效通信距离可达2.1km。 软件设计中,采用RTX51小型实时操作系统。它是一个专用于8051系列处理器的多任务实时操作系统,能使用四个任务优先权完成同时存在时间片轮转调度和抢先的任务切换,并可以简化那些复杂而且时间要求严格的工程软件设计工作。 2.1 下位机设计 以控制1a-1b-3c-4c-2p组合的下位机为例说明。 下位机外接动态车辆检测电路、LED和数码相机。各下位机通过对车辆检测电路定时扫描,读取各车道当前信息,判断是否有车通过;LED显示各车道方向箭头及剩余时间;数码相机则对违章车辆进行抓拍。 动态车辆检测电路结构如图3所示。 埋设在各车道安全线前方路面下的环形线圈传感器与振荡器匹配,形成一定频率的周期信号。该信号经施密特整形电路转化为脉宽信号后可作为计数脉冲。当有车辆通过该环形线圈时,线圈磁场发生变化,从而导致计数脉冲数量的变化。将100ms时间内没有车通过时的频率计数作为基准计数Base,实际计数为Num。当NumBase>0时,就可判定有车辆通过。 下面是下位机中多任务的分析与实现。 (1)初始化任务 初始化串行接口,并开始全部其它任务。最后删除自身,因为初始化只需要一次。 (2)数据采集任务 每隔100ms顺次读取四个车道(1a、1b、3c、4c)动态车辆检测电路的信息,判断Num-Base是否大于0。若为真,则置相应Flag为1,否则置0(Flash表示某一车道有无车辆通过的标识)。令FLAG1、flag1分别标志1a车道上一次和本次的检测结果。若FLAG1- flag1=1,则表明有车通过(同样,可以令FLAG2、flag2标识1b车道,FLAG3、flag3标识3c车道、FLAG4、flag4标识 4c车道前后两次的检测结果)。若任一车道有车通过,则向流量统计及违章监测任务发送信号。程序如下: void job2()_task_job2{ while(1){ 读取车辆检测电路信息,通过判断给flag1、flag2、flag3、flag4赋值; if(FLAG1-flag1==1||FLAG2-flag2==1||FLAG3-flag3==1||FLAG4-flag4=1) //若某一车道有车通过 { 记录有车通过的车道; os_send_signal(job3);//向流量统计与违章监测任务发出信号 } FLAG1=flag1;FLAG2=flag2;FLAG3=flag3;FLAG4=flag4; //当前标识位成为前一标识位 各计数器恢复初值; os_wait(100ms); } } (3)流量统计与违章监测任务 在接收到任务2发来的信号后,根据其提供的车道记录及该车道的当前显示情况,实现流量统计或违章监测的功能。 void job3()_task_job3{ while(1){ os_wait(K_SIG,0,0); if(1a||1b车道有车通过){ if(当前为红灯)启动数码相机抓拍,并读取实时时钟当前时间; else N1++; //在绿灯持续时间内对通过车辆计数 } else若当前为红灯,启动数码相机抓拍,并读取时间。3c、4c违章监测 } } (4)显示任务 图2 十字路口典型通行顺序示意图 在外接的LED上分别显示四个车道方向箭头和人行横道的红绿灯,以及1a-1b车道剩余时间。最初的窗口时间由上位机给定。该显示值每秒钟刷新一次。 Void job4()_task_job4{ t1=T1; //T1为上位机给定绿灯窗口时间 while(1){ 各路口方向箭头、人行横道红绿灯显示及1a、1b车道剩余时间(t1)显示; os_wait(1000ms); //1s刷新 t1--; if(t1==0) {os_create_task(job6); //若时间到,创建通信任务 os_delete_task(job4);} //删除显示任务 } } (5)看门狗复位任务 定期对看门狗进行复位,表明程序正常运行。 (6)通信任务 当时间到时,根据当前情况进行红绿灯显示切换若1a、1b当前为绿灯,则时间到后通知上位机,并将统计的车流量经串行口传送给上位机,由上位机触发下一组绿灯显示;右1a、1b当前为红灯,则时间到后等待上位机触发信号。这样由上位机统一调度,可以避免各下位机各自为政所造成的时间差。由于通信任务对时间特性的要求很高,所以应将通信任务设为高优先级。 Void job6()_task_job6_prority_1{ if(绿灯时间间到){ V1=N1*60/(2*T1); //N1表示1a、2b车道在T1时间内通过的车辆总和,V1为该绿灯周期内两个车道平均每分钟车流量 将V1值传送上位机; N1清0; 1a、1b、3c、2p转红色显示; } if(红灯时间到){ os_wait(K_SIG,0,0); //等待上位机信号 根据上位机计算数据更新T1; 1a、1b、4c、2p转绿色显示; } os_create_task(job4); //创建显示任务 os_delete_task(job6); //删除自身 } 2.2 上位机设计 上位机主要完成人机交互的功能。它外接一个字符型LCD显示器和键盘。LCD显示器在睡眠状态下显示各路口的当前绿灯窗口时间。当有键盘响应时,作相应的辅助显示。 本系统的键盘采用9按键输入。 当主车道上有紧急车辆(如警车、消防车或急救车等)要求通行时,可以按下此键。 本系统设定了6种功能选项:4个主车道的绿灯窗口时间调节选项、手动/自动操作模式切换选项以及违章记录查询选项。这6项功能,可以通过按功能键进行切换。 下面是上位机中多任务的分析与实现。 (1)初始化任务 初始化串行接口及各车道组合的绿灯窗口时间(20s),并开始其它任务,最后删除自身。 (2)键盘扫描任务 利用顺序查询的方式,定时对键盘进行扫描,判断是否有按键被按下。若有,则判断是哪个键被按下,并向任务3发出信号。 void job2_task_job2{ while(1){ 扫描键盘; if(有键被按下){ 判断是哪个键; os_send_signal(job3); } os_wait(10ms); } } (3)键盘处理任务 若在初始情况下按下功能键,则进入6个功能项。再次按下功能键,则在这6个功能项之间进行切换;若按下的是确定键,则创建相应功能项所定义的任务。在任何情况下按下紧急通行键,将创建紧急通行任务。 (4)显示任务 当键盘扫描任务在一定的时间内没有检测到输入信号时,将LCD转入睡眠状态,面板显示各车道组合的当前绿灯窗口时间。若该窗口时间由于任务5被更新,当有按键被按下时,则根据按键情况作相应的辅助显示。 (5)时间自动调节任务 在自动操作模式下,每隔10min,对各下位机上传的各车道组合的车流量进行分析,根据模糊算法确定各车道组合的最优时间分配。 分别用V1、V2、V3、V4表示1a-1b、2a-2b、3a-3b、4a-4b四个车道组合当前每分钟平衡车流量,t1、t2、t3、t4表示各自绿灯窗口时间,则绿灯时间分配如表1所列。 表1 绿灯时间分配表 Vi(i=1~4) Vi≤5 5<5i≤10 1020 ti/S 15 20 25 30 35 不难理解,每一组合的红灯窗口时间等于其它三个组合的绿灯窗口时间之和。为了避免某一组车道等待的时间过长,当有两个以上的车道组合的每分钟平衡车流量都大于15时,将它们的绿灯时间都定为30s。这样,最长的等待时间不超过90s。 (6)时间手动调节任务 每按一下“+键”,将当前车道组合的绿灯窗口时间加1,按“-键”则减1。当按确定键后,则当前设定时间被保存到变量Ti中。 (7)手动/自动切换任务 当切换到自动操作模式时,创建任务5,并发出信号使任务3中“主车道绿灯窗口时间调节”功能项不可选。当切换到手动操作模式时,删除任务5,并解除时间调节功能项的限制。 (8)违章查询任务 读取各个位机的违章记录,包括违章车道和违章时间,并在LCD上显示出来。违章车辆的图像信息可由数码相机获取。 (9)紧急通行任务 当紧急通告键被按下时,该任务被创建。任务首先保存当前各车道组合的绿灯窗口时间,然后强制有紧急情况的车道组合绿灯显示、其它车道组合红灯显示,以保障紧一辆顺序通行。延时10s后,恢复以前的顺序显示。由于该任务时间特性要求很高,所以应将其优先级设为2,高于通信任务。最后删除自身。 (10)看门狗复位任务 定期对看门狗进行复位,表明程序正常运行。 (11)通信任务 当某一下位机因绿灯时间到而触发串行口中断后,该取该下位机的当前车流量Vi,并触发控制下一车道组合的下位机进行绿灯显示;同时,将更新的绿灯窗口时间 ti(i=1~4)赋给各下位机,从而实现对车流量的动态调节。由于该任务时间特性要求较高,将其优先级设为1。 结语 本系统结构简单,操作方便;既可现场控制,又可远程控制;拥有手动和自动两种控制模式,具有一定的智能性;能根据现场状况,合理地调节车流,对优化城市交通具有一定的意义。 另外,利用RTX51实时操作系统提供的系统特征,可以简化多任务程序设计,满足多个任务的时间特性要求,可完成前后台编程方法难以完成的编程任务。同时基于实时多任务操作系统,可以将各任务进行细分包装,使各任务保持相对独立;能有效改善程序结构,便于模块化处理,使程序的可读性、可维护性和可移植性都得到进一步的提高。

    时间:2014-06-04 关键词: rtos 驱动开发 智能交通灯 设计方法

  • 印刷布线图的基本设计方法和原则要求

    一、印刷线路组件布局结构设计讨论 一台性能优良的仪器,除选择高质量的元器件,合理的电路外,印刷线路板的组件布局和电气联机方向的正确结构设计是决定仪器能否可靠工作的一个关键问题,对同一种组件和参数的电路,由于组件布局设计和电气联机方向的不同会产生不同的结果,其结果可能存在很大的差异。因而,必须把如何正确设计印刷线路板组件布局的结构和正确选择布线方向及整体仪器的工艺结构三方面联合起来考虑,合理的工艺结构,既可消除因布线不当而产生的噪声干扰,同时便于生产中的安装、调试与检修等。 下面我们针对上述问题进行讨论,由于优良“结构”没有一个严格的 “定义”和“模式”,因而下面讨论,只起抛砖引玉的作用,仅供参考。每一种仪器的结构必须根据具体要求(电气性能、整机结构安装及面板布局等要求),采取相应的结构设计方案,并对几种可行设计方案进行比较和反复修改。 印刷板电源、地总线的布线结构选择——系统结构:模拟电路和数字电路在组件布局图的设计和布线方法上有许多相同和不同之处。模拟电路中,由于放大器的存在,由布线产生的极小噪声电压,都会引起输出信号的严重失真,在数字电路中,TTL噪声容限为0.4V~0.6V,CMOS噪声容限为Vcc的0.3~0.45倍,故数字电路具有较强的抗干扰的能力。 良好的电源和地总线方式的合理选择是仪器可靠工作的重要保证,相当多的干扰源是通过电源和地总线产生的,其中地线引起的噪声干扰最大。 二、印刷电路板图设计的基本原则要求 1、印刷电路板的设计,从确定板的尺寸大小开始,印刷电路板的尺寸因受机箱外壳大小限制,以能恰好安放入外壳内为宜,其次,应考虑印刷电路板与外接元器件(主要是电位器、插口或另外印刷电路板)的连接方式。印刷电路板与外接组件一般是通过塑料导线或金属隔离线进行连接。但有时也设计成插座形式。即:在设备内安装一个插入式印刷电路板要留出充当插口的接触位置。 对于安装在印刷电路板上的较大的组件,要加金属附件固定,以提高耐振、耐冲击性能。 2、布线图设计的基本方法首先需要对所选用组件器及各种插座的规格、尺寸、面积等有完全的了解;对各部件的位置安排作合理的、仔细的考虑,主要是从电磁场兼容性、抗干扰的角度,走线短,交叉少,电源,地的路径及去耦等方面考虑。各部件位置定出后,就是各部件的联机,按照电路图连接有关引脚,完成的方法有多种,印刷线路图的设计有计算机辅助设计与手工设计方法两种。 最原始的是手工排列布图。这比较费事,往往要反复几次,才能最后完成,这在没有其它绘图设备时也可以,这种手工排列布图方法对刚学习印刷板图设计者来说也是很有帮助的。计算机辅助制图,现在有多种绘图软件,功能各异,但总的说来,绘制、修改较方便,并且可以存盘贮存和打印。 接着,确定印刷电路板所需的尺寸,并按原理图,将各个元器件位置初步确定下来,然后经过不断调整使布局更加合理,印刷电路板中各组件之间的接线安排方式如下:(1)印刷电路中不允许有交叉电路,对于可能交叉的线条,可以用 “钻”、“绕”两种办法解决。即,让某引线从别的电阻、电容、三极管脚下的空隙处“钻”过去,或从可能交叉的某条引线的一端“绕”过去,在特殊情况下如何电路很复杂,为简化设计也允许用导线跨接,解决交叉电路问题。 (2)电阻、二极管、管状电容器等组件有“立式”,“卧式”两种安装方式。立式指的是组件体垂直于电路板安装、焊接,其优点是节省空间,卧式指的是组件体平行并紧贴于电路板安装,焊接,其优点是组件安装的机械强度较好。这两种不同的安装组件,印刷电路板上的组件孔距是不一样的。 (3)同一级电路的接地点应尽量靠近,并且本级电路的电源滤波电容也应接在该级接地点上。特别是本级晶体管基极、发射极的接地点不能离得太远,否则因两个接地点间的铜箔太长会引起干扰与自激,采用这样“一点接地法”的电路,工作较稳定,不易自激。 (4)总地线必须严格按高频-中频-低频一级级地按弱电到强电的顺序排列原则,切不可随便翻来复去乱接,级与级间宁肯可接线长点,也要遵守这一规定。特别是变频头、再生头、调频头的接地线安排要求更为严格,如有不当就会产生自激以致无法工作。 调频头等高频电路常采用大面积包围式地线,以保证有良好的屏蔽效果。 (5)强电流引线(公共地线,功放电源引线等)应尽可能宽些,以降低布线电阻及其电压降,可减小寄生耦合而产生的自激。 (6)阻抗高的走线尽量短,阻抗低的走线可长一些,因为阻抗高的走线容易发笛和吸收信号,引起电路不稳定。电源线、地线、无反馈组件的基极走线、发射极引线等均属低阻抗走线,射极跟随器的基极走线、收录机两个声道的地线 必须分开,各自成一路,一直到功效末端再合起来,如两路地线连来连去,极易产生串音,使分离度下降。 三、印刷板图设计中应注意下列几点 1、布线方向:从焊接面看,组件的排列方位尽可能保持与原理图相一致,布线方向最好与电路图走线方向相一致,因生产过程中通常需要在焊接面进行各种参数的检测,故这样做便于生产中的检查,调试及检修(注:指在满足电路性能及整机安装与面板布局要求的前提下)。 2、各组件排列,分布要合理和均匀,力求整齐,美观,结构严谨的工艺要求。 3、电阻,二极管的放置方式:分为平放与竖放两种:(1)平放:当电路组件数量不多,而且电路板尺寸较大的情况下,一般是采用平放较好;对于1/4W以下的电阻平放时,两个焊盘间的距离一般取4/10英寸,1/2W的电阻平放时,两焊盘的间距一般取5/10英寸;二极管平放时,1N400X系列整流管,一般取3/10英寸;1N540X系列整流管,一般取4~5/10英寸。 (2)竖放:当电路组件数较多,而且电路板尺寸不大的情况下,一般是采用竖放,竖放时两个焊盘的间距一般取1~2/10英寸。 4、电位器:IC座的放置原则(1)电位器:在稳压器中用来调节输出电压,故设计电位器应满中顺时针调节时输出电压升高,反时针调节器节时输出电压降低;在可调恒流充电器中电位器用来调节充电电流折大小,设计电位器时应满中顺时针调节时,电流增大。[!--empirenews.page--] 电位器安放位轩应当满中整机结构安装及面板布局的要求,因此应尽可能放轩在板的边缘,旋转柄朝外。 (2)IC座:设计印刷板图时,在使用IC座的场合下,一定要特别注意IC座上定位槽放置的方位是否正确,并注意各个IC脚位是否正确,例如第1脚只能位于IC座的右下角线或者左上角,而且紧靠定位槽(从焊接面看)。 5、进出接线端布置(1)相关联的两引线端不要距离太大,一般为2~3/10英寸左右较合适。 (2)进出线端尽可能集中在1至2个侧面,不要太过离散。 6、设计布线图时要注意管脚排列顺序,组件脚间距要合理。 7、在保证电路性能要求的前提下,设计时应力求走线合理,少用外接跨线,并按一定顺充要求走线,力求直观,便于安装,高度和检修。 8、设计布线图时走线尽量少拐弯,力求线条简单明了。 9、布线条宽窄和线条间距要适中,电容器两焊盘间距应尽可能与电容引线脚的间距相符;10。设计应按一定顺序方向进行,例如可以由左往右和由上而下的顺序进行。

    时间:2014-04-05 关键词: 电路设计 印刷布线图 原则要求 设计方法

  • 物联网智能网关应用系统的一般设计方法

    随着互联网的日益普及、信息共享程度的要求不断提高,各种家电设备、仪器仪表以及工业生产中的数据采集与控制设别在逐步走向网络化,以便利用庞大的网络资源,实现分布式远程监控、信息交换与共享。物联网的发展更是为网络技术的应用起到了巨大的推动作用。 利用以太网实现远程控制系统,通过互联网共享以单片机应用系统为核心的小型嵌入式信息采集系统的信息,是物联网应用的关键内容。 单片机网络化应用系统的基本设计原则是:可靠性高、性能价格比高、操作简便以及设计周期短。 在进行物联网智能网关应用系统方案设计时,可以采用下述一般设计方法作为指导。 1. 确定系统功能与性能 由需求调查确定物联网智能网关应用系统的设计目标,这一目标包括系统功能与性能。系统功能主要由数据采集、数据处理、输出控制等。 2. 确定系统基本结构 物联网智能网关应用系统结构一般是以单片机为核心外部扩展相关电路的形式。确定了系统中的单片机、存储器分配以及输入/输出方式就可答题确定出物联网智能网关应用系统的基本组成。 ⑴单片机 在系统详细方案设计时,先要确定单片机的型号。所选单片机的型号不同,组成的系统结构也就不同。 ⑵存储器分配 不同的单片机具有不同的存储器组织。应根据应用系统的需要合理进行存储器的分配。 ⑶I/O方式 采用不同的输入/输出方式,对于单片机应用系统的软、硬件结构有直接的影响。在单片机应用系统中,常用的I/O方式主要有:无条件传送方式(同步传送方式)、查询方式、中断方式。 ⑷网络控制器 性能稳定,结构简单,编程易实现的网络控制器对于优化物联网智能网关应用系统起着关键性的作用。 物联网智能网关应用系统的工作模式可以分为两类,服务器端和客户端。无论工作于何种模式,都需要对以太网控制器进行网络参数配置,以实现最基本的物理连接(即能够ping通)。 3. 硬件设计 物联网智能网关应用系统硬件设计是围绕着单片机及网络控制器做外部功能扩展而展开的,其基本结构如图所示。 ⑴ 程序存储器 传统的单片机内无片内程序存储器或存储容量不够大,需外部扩展程序存储器。外部扩展的存储器通常选用FLASH存储器。现在的单片机一般都集成了较大容量的程序存储器,使用时,不需要进行程序存储器的扩展。 ⑵ 数据存储器 数据存储器用于暂时保存程序运行中的中间结果,一般由RAM 构成。大多数单片机都提供了小容量的片内数据存储器,只有当片内数据存储器不够用时才扩展外部数据存储器。无论是程序存储器还是数据存储器,存储器的设计原则是:在存储容量能够满足要求的前提下,尽可能减少存储芯片的数量。 ⑶ I/O接口 由于外设多种多样,使得单片机与外设之间的接口电路也各种不相同。因此,I/O接口常常是单片机应用系统中设计最复杂也是最困难的部分之一。 ⑷ 译码电路 当需要外部扩展电路时,常常需要设计译码电路。译码电路要尽可能简单,要求存储器空间分配合理,译码方式选择得当。 ⑸ 总线驱动器 如果单片机外部扩展的器件较多,负载过重,就要考虑设计总线驱动器。 ⑹ 抗干扰电路 针对可能出现的各种干扰,应考虑抗干扰电路的设计。在单片机应用系统中,一个不可缺少的抗干扰电路就是抗电源干扰电路。最简单的实现方法是在系统弱电部分(以单片机为核心)的电源入口处对地跨接1个100uf 左右的电容和1个0.1uf左右的电容,在系统内部各芯片的电源端对地跨接1个0.01~0.1uf的小电容。 4. 软件设计 软件是物联网智能网关应用系统中的一个重要组成部分,一般计算机应用系统的软件包括系统软件和用户软件,而物联网智能网关应用系统中的软件一般只有用户软件,即应用系统软件。软件设计的关键是确定软件应完成的任务及选择相应的软件结构。 ⑴任务确定 根据系统软、硬件的功能分工,确定出软件应完成什么功能。作为实现控制功能的软件应明确控制对象、控制信号及控制时序;作为实现处理功能的软件应明确输入是什么、要做什么样的处理(即处理算法)、产生何种输出。 ⑵ 软件结构 软件结构与程序设计技术密切相关。程序设计技术提供了程序设计的基本方法,最常用的程序设计方法是模块化程序设计。模块化程序设计具有结构清晰、功能明确、设计简便、程序模块可共享、便于功能扩展及便于程序维护等特点。为了编制模块程序,先要将软件功能划分为若干子功能模块,然后确定出各模块的输入、输出及相互间的联系。

    时间:2013-07-30 关键词: 物联网 应用系统 智能网关 设计方法

  • 基于模式的SoC设计方法研究

    引 言 SoC(system on chip) 是微电子技术发展的一个新的里程碑,SoC不再是一种功能单一的单元电路,而是将信号采集、处理和输出等完整的系统集成在一起,成为一个有专用目的的电子系统单片。其设计思想也有别于IC,在一个或若干个单片上完成整个系统的功能。 SoC开发和设计存在一些问题,如描述语言不统一、抽象层次低、仿真速度慢、可重用性差、设计性能无法保障、RTL级发现的问题需要重新进行整个的设计流程才能解决,因此SoC的建模与设计的方法成为当前刻不容缓的课题。上述种种问题与曾经困惑软件业的“软件危机”的表现非常类似,为了解决软件危机,人们提出了软件工程。因此,本文的思路是将软件工程中应用最为广泛的面向对象技术引入到SoC设计当中。 设计模式是面向对象的精髓,在软件中已经得到了广泛的运用,在SoC设计中使用设计模式,可以降低软硬件开发之间的鸿沟,对于软硬件协同设计有很大的帮助,使系统得到更大的可伸缩性。 SoC设计方法学 传统的设计方法 在传统SoC设计过程中,系统一开始就被划分为软件和硬件2大部分,软件和硬件独立进行开发设计. 这样隐含一些问题,如软硬件之间的交互受到很大限制、软硬件之间的相互性能影响造成很难评估和系统集成相对滞后,导致设计质量差、设计修改难和研制周期不能有效保障。 传统SoC设计流程中,EDA设计方法只作用于SoC后级,缺乏SoC前级设计方法与系统验证策略,从而导致了RTL电路模型中错误成分复杂化与验证人工开销激增. 另外,软件开发者必须等到硬件的设计和结构都完成并通过验证之后,才能开始软件的设计和实现,所以开发的周期将会持续很长,产品的竞争力会因此而下降. 基于模式的设计方法 针对传统设计方法的不足,新的SoC设计方法应该在行为级就开始建立仿真模型和进行行为与结构的验证,同时必须强调结构化、封装和重用硬件设计在高层次的抽象的重要性。 因此,本文提出基于模式的SoC设计方法PBSOC ,如图1所示,强调高层次的系统建模,更有利于设计的复用. 在需求分析阶段,根据规格说明,使用面向对象的分析方法,给出用例的关系和顺序图. 在系统级设计阶段,使用统一的语言SystemC进行软硬件协同设计。SystemC是由Open SystemC Initiative (OSCI) 提出和维护的开放源代码的基于C++统一软硬件建模平台. 软硬件模块都用C++ 描述,对不同软硬件划分方案的评估和权衡可以方便地进行。 PBSOC使用形式化方法和面向对象的Petri网对系统的行为和结构建模,不涉及任何结构和时间的细节,并通过实时UML进行可视化的描述. 它不仅具备传统面向对象方法所具有的风格,而且具有Petri网直观模拟系统动态行为的优点,从而能够更加简洁、清楚地描述系统的静态结构和组成元素之间的层次关系。将Petri网思想引入面向对象建模当中,可将系统看作是一些相互作用的对象组成的集合。集合中的每个对象都具有自己的属性和任务,它们根据收到的消息、句柄等来完成相应的任务,从而实现系统的整体功能.在系统级建立面向对象的设计模式库和IP复用库,OO库即面向对象数据库,主要存放的是各种SoC设计模式(pattern) ,在SoC系统框架设计、IP设计以及IP通信设计中都可以使用模式。IP库中存放的可以是普通的IP核,即其他厂商设计的成熟的IP;也可以是用面向对象的方法设计的一些IP 核,即IP 的设计过程也遵从于PBSOC。     图1  PBSOC 设计框架 SOC设计的设计模式 设计模式 模式是解决某一类问题的方法论,它把解决某类问题的方法总结归纳到理论高度。虽然模式起源于建筑,但其思想也同样适用于面向对象设计模式。指导模式设计有3个重要概念,即重用( reuse) 、接口与实现分离和低耦合(loose couple)。重用是系统的设计目标,主要通过继承(inheritance) 和对象复合(composition) 实现. 接口与实现分离指接口保持不变,用分离带来灵活性,主要表现形式为多态性(polymorphism)。低耦合可以降低复杂性。 现存的硬件设计模式和重用方法主要是处理RTL(寄存器传输级) 设计和编码的。这种在设计过程中积累的经验在设计重用时是非常重要和有用的,然而并没有涉及系统级设计的问题。因此在系统级应用面向对象的方法可以克服这些鸿沟,使用设计模式还可以更快速和直观地捕捉设计的内容,提高设计的可理解性,将抽象的级别上升到系统级,能够处理更复杂的硬件设计。 SoC设计模式 SoC的设计模式与软件的设计模式的不同,主要在于软件和硬件的设计差别。SoC的设计不仅包括软件,还有硬件以及软硬件的协同设计,因此,它涉及物理约束、实时性和并发等关键问题。所以要将软件的模式进行改造,并使用软硬件通用的描述语言进行描述。 软件设计模式中运用得比较多的面向对象方法是继承,它同样适用于SoC的设计模式当中,但必须考虑SoC系统中的物理约束。一些软件设计模式,主要是创建型模式,能够动态地生成系统的对象,而SoC系统中硬件部分结构是静态的,因此,它们不适合于SoC硬件部分设计模式,但是对于SoC系统中的软件模块还是可以适用的,例如原型模式和命令模式等。 大部分的结构型模式只需要稍做修改就可以应用到SoC设计中,主要是实现方式的问题,即用软硬件通用的语言来重新描述它。而行为型的模式,需要加入实时系统中一些约束。对于典型软件模式改造的前提和目标是设计的可重用性,主要是SoC系统级设计的可重用。在SoC中FSM(有限状态机) 是最常用的一种行为表达方式,因此状态转换的频率是非常多的.如下面的状态模式,通过改造,可以用于描述硬件设计。 新的SoC设计模式的提出是PBSOC 最终的目标。它主要针对的就是高层次SoC设计中最常用的一些设计方法,以及构筑SoC系统的基本组件和基本结构,如层适配模式(layeradapter pattern) 和包装器模式(wrapper)。本文仅给出了模式的结构,具体的实现不在此赘述。 (1) 状态模式(state pattern) 状态模式的意图是使一个对象在内部状态改变时可以改变自己的行为,从客户看来,好像对象改变了它的类。即不同的状态,不同的行为;或者说,每个状态有着相应的行为.考虑SoC片上总线协议, 片上总线总是有3 个状态: 闲( IDL E) 、忙(BUSY) 和关闭(CLOSE) . 而各个状态的处理过程不一样. 如图2 所示,BusProtocol 类维护一个表示总线当前状态的状态对象(一个BusState 子类的实例) . BusProtocol 类将所有与状态相关的请求委托给这个状态对象. BusProtocol 使用它的BusState 子类实例来执行特定于连接状态的操作. 一旦总线状态改变, BusProtocol 对象就会改变它所使用的状态对象. 例如,当片上总线从闲置状态转为忙状态时,BusProtocol 会用一个BusBusy 的实例来代替原来的BusIdle 的实例。     图2  状态模式的系统结构 State 模式不指定哪一个参与者定义状态转换准则. 如果该准则是固定的, 那么它们可在Context 中完全实现. 然而若让State 子类自身指定它们的后继状态以及何时进行转换, 通常更灵活、更合适. 这需要Context 增加一个接口, 让State 对象显式地设定Context 的当前状态。 首先定义类BusProtocol ,它提供了一个片上总线的基本协议通道并处理改变状态的请求。BusProtocol 在state 成员变量中保持一个BusState 类的实例。类BusState 复制了BusProtocol的状态改变接口。每一个BusState 操作都以一个BusProtocol 实例作为一个参数, 从而让BusState 可以访问BusProtocol 中的数据和改变总线的状态。BusProtocol 将所有与状态相关的请求委托给它的BusState 实例state。BusProtocol 还提供了一个操作用于将这个变量设为一个新的BusState。BusProtocol 的构造器将该状态对象初始化为BusIdle 状态。 (2) 层适配模式 层适配模式为SoC通信建模提供分层的协议转换,将不同架构的网络协议通过接口的匹配,实现各层次的数据通信,提供事务级建模各层的适配方式。系统建模中通信机制可以分为4 层,其中事务级建模分为3 层,即除L0 之上的3 层为事务级。其中:L3 为消息层,这一层没有任何的时间信息,系统行为是事件驱动的,并建立点到点的通信. L2 为事务层,这一层的系统模型带有时间信息,但并不是时钟精确周期,系统是时间驱动执行的。 事务层将理想的结构映射到需要考虑资源分配和设计约束的结构中,完成SoC体系结构的分析和建模,并开始软件的开发。L1为传输层,它在RTL层之上,系统由精确到周期的行为组成,但比RTL 级的仿真速度要快。传输层建模一般对应一定的总线协议,将精确到周期的协议映射到给定的硬件接口和总线结构上,隐藏了接口的管脚,将事务直接映射到总线周期。层适配模式将通过适配完成各层次的模型转换。如图3 所示,TL1 Master Adapter通过适配TL1通道和TL2 通道,使TL1 Master 和TL2 Slave 通信。   图3  层适配模式结构 (3) 包装器模式 包装器模式的目的是通过调整接口和IP 组件的行为来适应特定的应用环境,它属于结构型模式.在SoC设计中,功能组装正在逐渐代替功能设计,而成为主流的设计方法。因此,各个IP模块的互连,以及与片上总线的通信成为研究的重点。IP的本质特征是可重用性,通常必然满足以下基本特征:通用性好,正确性有保证,可移植性好。因为许多IP在设计之初都是针对特定的应用,而很少考虑到要与外来电路搭配使用。IP的定义没有一个通用的接口标准,因为芯片实现的功能千差万别,性能方面的要求也由于应用领域的差异而不同,即使同样功能的IP模块在速度、面积、功耗、对外接口等方面也表现各异包装器模式的系统结构如图4 所示。   图4  包装器模式的系统结构 通过包装器模式的封装,能适配各种IP 接口。即使用包装器模式来调整组件接口以适应于环境要求。包装器模式的匹配程度,对IP Component 的接口与其他的接口进行匹配的工作量各个WrapperModel 可能不一样。从简单的接口转换(例如改变操作名) 到支持完全不同的操作集合,WrapperModel 的工作量取决于Component 接口与需要转换接口的相似程度。 结束语 在SoC设计中,可重用性是应该考虑的一个很重要的因素. 除了IP复用,设计的可重用也是非常重用的。在讨论将现有软件设计模式应用到SoC设计当中后,提出了SoC设计模式,主要针对高层次的SoC设计中的最常用的一些设计方法,以及构筑SoC系统的基本组件和基本结构。除了上述的3 种模式,还提出的一系列的SoC设计模式中,总线模式属于体系结构的模式,包装器模式和层适配模式属于结构型模式,总线协议模式、管道模式和FSM模式属于行为型模式。下一步的工作是深入研究系统级设计方法,以及基于UML的软件设计模式描述如何自动地转换为元(meta) 程序。

    时间:2012-12-13 关键词: 模式 SoC 设计方法

  • 减少电子医疗设备EMI问题的设计方法

    设备设计者一直要求获得具有更小封装的SMPS。更小的EMI滤波器不仅能够在电磁发射到达主线前有效的降低其量级,还能够减少主线滤波器的体积。模块化的SMPS使设计者在设计医疗设备时具有更大的灵活性。在重新设计或升级过程中,可以使用更高功率级别模块化SMPS替换原SMPS,而无需对支持SMPS和设备的电气机械系统进行重新设计。 使用基底噪声滤波器降低传导发射量级 基底噪声滤波器与传导线滤波器的联合之下,基底噪声通过传导线滤波器被导入地下,在基底噪声进入建筑设施接地系统前,它将被有效减少。这样一来,建筑设置内的噪声也就得到了减少。同时在某些情况下,使用基底噪声滤波器能够在传导线滤波器的输入导线处减少电磁发射,这样也能够减少线滤波器的体积。 基底噪声滤波器被置于整体系统地和线滤波器地之间。这种放置方式将减少线滤波器输入端的电磁发射,并减少引入接地导线的电磁发射。两种方法都能够减少医疗设备的泄漏电流(这种电流通常难以控制,因为线滤波器中的额外滤波将产生更多的泄漏电流)。 电子医疗设备中的微机地处使用基底噪声滤波器。在此处使用基底噪声滤波器能够对微机产生的基底噪声进行隔离,使其不会影响电路的其余部分,而反之亦然。这种设置有效的打破了电路中的高频接地回路。 医疗设施内的基底噪声循环医疗设施内的基底噪声经常会对成像用敏感电子医疗设备(如超声波设备、核磁共振成像设备(MRI)和计算机断层成像设备(CT))的运行造成影响。 为了提高成像质量,现场工程师有时需要花费大量时间寻找接地问题和/或基底噪声问题。有时在不能确定基底噪声是否会对成像质量造成影响的情况下,就对子系统设备进行了更换。与更换昂贵的成像元件而言,使用基底噪声滤波器来提高成像质量能够获得更高的成本效益。另外,在成像系统的地上使用基底噪声滤波器能够减少进入设施接地系统的噪声(由成像系统产生)。 医疗设施内的基底噪声循环噪声会进入设施并在设施的接地系统内传播。设施内的所有设备也都有可能产生基底噪声,这些噪声将会在设施接地点处汇集,并将会达到极高的噪声量级。基底噪声的循环也可能发生在不同配电盘之间、不同设备之间、配电盘和设备之间,最终将会导致设备内出现EMI问题。在设施接地系统内使用一个或多个基底噪声滤波器将非常有效的减少EMI问题,如图6所示。 结论 随着医疗设备技术的进步和医疗设施的发展扩大,需要使用新方法来降低传导发射的量级。许多医疗设施都需要解决严重的基底噪声问题。一个或多个基底噪声滤波器的战略性使用将会减少医疗设施内的基底噪声,并将消除基底噪声环路。滤波器的战略性布置将会降低EMI问题的发生机率,并/或将提高解决已有EMI问题的几率。传导线滤波器体积上的减少能够节省设备空间、减少重量并降低成本。在电路设计中有许多位置可以安放基底噪声滤波器,当前有许多相关实验和研究正在进行。这些实验和研究将有可能在世界范围内医疗设施中实现更加有效的诊断和病患护理。

    时间:2012-11-06 关键词: 设备 emi 电子医疗 设计方法

  • 基于有限元的螺旋天线设计方法

    目前,在无线通信和军事通信中,如:山区公路通信、铁路隧道通信,常常需要一种体积小、重量轻、方向性强的圆极化天线,螺旋天线因能满足这些要求而受到重视,并在这个领域发挥了重要的作用。 本文设计基于有限元方法,利用此方法对所设计的螺旋天线进行了仿真、优化设计,得出了一系列有用的数据,并依据设计结果制作天线。通过对天线进行适当的调试和测试,结果表明,在相同条件下,螺旋天线性能优于现有天线,是一种具有广泛应用前景的UHF天线。 2 基本理论 2.1 有限元法 有限元法是随着电子计算机的发展而迅速发展起来的一种现代计算方法。他是20世纪50年代首先在连续体力学领域——飞机结构静、动态特性分析中应用的一种有效的数值分析方法,随后很快广泛应用于求解热传导、电磁场、流体力学等连续性问题。 有限元是以变分原理和剖分插值为基础的一种数值方法,他是将考察的连续场分割为有限个单元,再用比较简单的函数表示每个单元的解,但并不要求每个单元的试探解都满足边界条件,边界条件并不进入有限元的关系式中,所以对内部和边界都可以采用同样的函数,边界条件只在集合体的方程中引入,其过程比较简单,只需要考虑强迫边界条件。有限元的优点可以总结为:最终求解的线性代数方程组一般为正定的稀疏系数矩阵;特别适合处理具有复杂几何形状物体和边界的问题;便于处理有多种介质和非均匀连续媒质问题;便于计算机上实现,可以做成标准化的软件包。 2.2 螺旋天线特性 2.2.1 一般螺旋天线 螺旋是一种基本的三维几何形式,结合了直线、圆以及柱体等几何形式。将金属导线绕制成一定尺寸的圆柱形螺旋线,其一端处于自由状态,另一端用同轴线内导体馈电,馈电端的金属接地板与同轴线的外导体相连,构成一个圆柱螺旋天线,其结构如图1所示。     图中,D为螺旋直径,a为螺距角,S为螺距,N为圈数,L为螺旋轴向长度,l为螺旋一匝的长度。显然,s=πDtan a,L=NS。根据螺旋线上不同的电流分布,圆柱螺旋天线的辐射状态又可以分为法向、轴向和圆锥形3种辐射状态。其中,轴向辐射状态是指在螺旋天线的轴向有最强的辐射,他具有以下的特点:沿天线轴线方向有最强的辐射,即当D=(0.25~0.46)λ时,即螺旋的圈长在一个波长左右的时候,轴线方向的辐射最大;辐射场是圆极化场;沿螺旋导线传播的电流波是行波,输入阻抗近似地等于纯电阻;频带较宽。基于这些特点,其在宽频带的定向天线中得到了广泛的应用。在这里,根据设计要求(f:800~900 MHz;增益:13 dB;前后比:14 dB;VSWR:不大于1.5),我们采用轴向模螺旋天线,下面着重讨论此种天线。 2.2.2 轴向螺旋天线 螺旋天线工作在轴向模式时,其辐射的情形如端射天线,沿着螺旋天线本身的轴辐射出去。此模式发生在天线的圆周长大约为一个波长的时候。如图2所示。 轴向模螺旋天线可以提供到15 dB左右的稳定增益和圆极化,所以普遍应用在超高频上(UHF)。 当螺旋天线的圈数很少时,天线在3λ/4≤C≤4λ/3的频率范围内表现很好,可提供的带宽比由下式为1.78,且在较长的螺旋天线时,工作频率,f要低于4λ/3。     轴向模螺旋天线的周长约为差1波长,所以任意两相对的端点约为1/2波长,当一个线圈的电流在螺旋天线(如图3所示),原来右端的电流应该向上,因为距离差1/2波长,使得电流相位偏移了180°,在右端的电流因而与左端的电流同相,一起向下,加上任意两个对端的电流相位相同并且电流大小相等又在同一圆轴上,所以产生圆极化。     从以上的叙述了解到,单一线圈可产生圆极化,当天线为多线圈时,每一圈的电流都为同相,如图3所示,其辐射场将沿着天线的轴方向加强辐射,如同阵列天线。 这里给出了一些半经验公式: (1) 方向增益     相对于各向同性圆极化电源时的增益值,在估算时忽略了副瓣的影响,因而较实测值略大,但通常不会超过1~2 dB。 (2) 波瓣宽度 半功率波瓣宽度和零功率波瓣宽度分别为:     3 数值计算与测试结果分析 3.1 数值优化与仿真 有限元方法的建模过程分为以下几个步骤(如图4所示):     (1) 区域离散 在任何有限元分析中,区域离散是第一步,也是最重要的一步,因为区域离散的方式将影响计算机内存的需求、计算时间和数值结果的精确度。 (2) 插值函数的选择 在每一个离散单元的结点上的值是我们要求的未知量,在其内部其他点上的值是依靠结点值对其进行插值。 (3) 方程组的建立 对Maxwell方程利用变分方法建立误差泛函,对于问题已经离散化为很多个子域的组合,可以首先在每个单元内建立泛函对应的小的线性表达式,其次将其填充到全域矩阵中的相应位置,最后应用边界条件来得到矩阵方程的最终形式。   (4) 方程组的求解 方程组的求解是有限元分析的最后一步,最终的方程组是下列两种形式之一:     方程式(1)是确定型的,他是从非齐次微分方程或非齐次边界条件或从他们两者兼有的问题中导出的。在电磁学中确定性方程组通常与散射、辐射以及其他存在源或激励的确定性问题有关。而方程(2)是本征值型的,他是从齐次微分方程和齐次边界条件导出的。本征值方程组通常与诸如波导中波传输和腔体中的谐振等无源问题有关。在这种情形下,己知向量{f}为零,矩阵[L]可以写成[A]-λ[B]的形式,这里的λ表示未知的本征值。 经过数值计算,得到满足性能指标的螺旋天线,其天线仿真模型如图5所示,并且得到其在中心频率850 MHz的方向图(图6),从图中可以看出其增益为15 dB,其他数据如表1所示。     3.2 测试结果与仿真结果分析 根据仿真结果,对天线进行加工设计,并进行适当的调试,得到如下的测试结果:     从表1可以看出,仿真结果和测试结果取得了较好的一致,由于在仿真时是一种理想化的设计情况,所以实际测试结果比仿真略低一些,但已完全满足设计指标要求。     4 结语 文章根据圆柱螺旋天线的一些辐射特性,结合有限元方法对轴向模螺旋天线进行了优化和仿真设计,成功设计了一副工作在800~900 MHz频段上的小型化天线。对UHF天线小型化的设计具有一定的现实指导意义,非常适合工程上的需要,并且提高了法向模螺旋天线在现代无线移动通信中的实用价值。

    时间:2012-11-04 关键词: 螺旋天线 有限元 设计方法

  • 基于IP核的FPGA 设计方法

    几年前设计专用集成电路(ASIC) 还是少数集成电路设计工程师的事, 随着硅的集成度不断提高,百万门的ASIC 已不难实现, 系统制造公司的设计人员正越来越多地采用ASIC 技术集成系统级功能(System L evel In tegrete - SL I) , 或称片上系统(System on a ch ip ) , 但ASIC 设计能力跟不上制造能力的矛盾也日益突出。现在设计人员已不必全部用逻辑门去设计ASIC, 类似于用集成电路( IC) 芯片在印制板上的设计,ASIC 设计人员可以应用等效于印制板上IC 芯片的功能模块, 称为核(core)、或知识产权( IP) 宏单元进行系统设计, 这就是基于核的设计方法。CPU、存储器、总线控制器、接口电路、DSP 等都可成为核。但是ASIC 设计与印制板(PCB) 设计有很大区别,ASIC 必须用EDA 工具进行硬件设计, 主要问题都是通过计算机仿真解决, 而不能象印制板设计那样通过实验调试解决, 另外ASIC 的制造还需要数量可观(一般数万美元) 的不可重复工程费用(NRE)。80年代后期出现的现场可编程门阵列(FPGA ) 和复杂可编程逻辑器件(CPLD) 是ASIC 的一种, 其优点是在制造厂家提供的FPGA 或CPLD 芯片上, 可由设计工程师对其进行现场编程完成ASIC 的最后设计, 而不需昂贵的NRE 费。现在FPGA 的规模已达到百万门, 如XILINX 公司的V irtex 系列, 完全可以实现片上系统,其设计方法将逐步转向核基设计。 1 核的分类和特点 核是一种预定义的并经过验证的复杂功能模块, 它可以集成到系统设计中。核基设计主要特点是可重复使用已有设计模块, 缩短设计时间, 减少设计风险, 通过高层的集成可望提高整个系统的性能。在FPGA 设计中的核分为三种, 如表1所示: 表1 核的分类和特点 硬核 (hard core) 预定义的已布局布线的模块 不能修改设计, 必须采指定实现技术 时序性能有保证 固核 (firm core) HDL 源码,与实现技术有关的网表 部分功能可以修改, 采用指定的实现技术 关键路径时序可控制 软件 (soft core) 行为级或RTL 级HDL源码 可修改设计,与具体实现技术无关 时序性能无保证, 由使用者确定 硬核是针对特定的实现技术优化的, 它具有不能修改的结构和布局布线, 可作为库元件使用, 且时序性能稳定, 但硬核不能按设计需要修改和调整时序。固核由HDL 源码和与实现技术有关的网表组成, 使用者可按规定增减部分功能。固核的关键路径时序是固定的, 但其实现技术不能更改, 即不同厂家FPGA 的固核不能互换使用。软核是可综合的硬件描述语言(HDL ) 源码, 它与实现技术无关, 可按使用者需要修改, 具有最大的使用灵活性, 但软核的关键路径时序性能无保证, 最终性能主要决定于使用者采用的综合、布局布线和实现技术。 在FPGA 设计中, 由于不同厂家的具体实现技术差别较大, 完全与硬件实现技术无关的软核性能受到很大限制, 而硬核缺少使用的灵活性, 因此作为软、硬核折中的固核使用较多。以上是具有代表性的核的分类, 在实际使用中, 某种功能的核往往以各种形式出现, 由使用者按需要选用, 软核也不仅只有HDL 源码, 还包括用于功能测试的行为模型和测试向量, 用于指导综合的约束文件。 2 核基FPGA 设计方法简介 在核基设计中, 一个完整的设计主要由两部分组成, 一部分是核, 如图1中的MCU、RAM , 另一部分是用户自己定义的逻辑电路。按系统设计的要求将这些功能模块连接在一起就完成了芯片的设计,各个核或功能块的连接目前还没有统一的标准, 因不同的设计而定, 一般应满足一定的时序要求。作为核基设计的第一步是选择合适的核, 这主要从核的功能、性能可靠性和实现技术几方面来选择。     图1 核基设计芯片示意图 一个核首先要有核的功能描述文件, 用于说明该核的功能、时序要求等, 如图2所示, 其次还要包括设计实现和设计验证两个方面的文件, 即不但要有实现核功能的寄存器传输级(RTL ) 源码或网表, 还要有用于核实现后验证逻辑功能正确性的仿真模型和测试向量。硬核的实现较简单, 类似于PCB 设计中IC 芯片的使用, 软核的使用情况较为复杂, 实现后的性能与使用者的具体实现方式有关, 为保证软核的性能, 软核提供者一般还提供综合描述文件, 用于指导软核的综合, 固核的使用介于上述二者之间。     图2 核由设计实现和设计验证组成 很多核提供者都提供核的评价环境和演示、开发板,便于用户了解核的功能和使用。 核基FPGA 设计流程如图3所示。设计输入部分包括: 1) 用户设计逻辑、软核、固核或硬核仿真模型的输入, 2) 功能仿真, 3) 逻辑综合。其中仿真模型是一个行为级模型, 只用作功能仿真, 不进行综合。     图3 核基FPGA 设计流程 设计的输入一般是采用HDL 语言, 如VHDL、V erilog 等, 输入完设计和仿真模型后就可进行功能仿真, 当功能仿真完成后, 就可进行逻辑电路的综合。 用户逻辑和软核的综合应加合理的时序约束, 以满足设计的要求, 约束条件可由综合文件(Synthesis Script ) 给出。完成设计输入后进入设计实现阶段,在此阶段固核的网表和设计约束文件, 用户综合出的网表和设计约束文件一起输入给FPGA 布局布线工具, 完成FPGA 的最后实现, 并产生时序文件用于时序仿真和功能验证。最后进入设计验证阶段,用静态时序分析判定设计是否达到性能要求, 对比功能仿真结果和时序仿真结果, 验证设计的时序和功能是否正确。若设计的性能不能达到要求, 需找出影响性能的关键路径, 并返回延时信息, 修改约束文件, 对设计进行重新综合和布局布线, 如此重复多次直到满足设计要求 为止。若重复多次还不能达到设计要求, 则需修改设计或采用其它实现技术。 3 软核的设计及使用 由于FPGA 的硬件技术迅速发展, 硬件资源越来越丰富, 速度越来越快, 使软核资源利用率不高、工作速度较低等不足得到很大的弥补, 软核在核基设计中作用越来越大。其主要优点是功能与实现技术无关, 使用灵活。这样我们可以很方便地在不同的实现技术下使用软核。如用X IL INX FPGA 实现的软核, 不需改动设计, 重新综合后就可以用ACTEL FPGA 实现, 设计实现的灵活性大为提高。但软核的性能受实现技术影响还是很大, 怎样保证软核达到预想的性能是目前需要解决的难题。国外近年提出了与实现技术无关的可综合软核的思想, 希望通过对编制软核的HDL 源码的某种限制, 并结合综合工具的时序约束功能, 达到部分控制软核性能的目的。如限制软核只能采用严格的同步逻辑设计, 没有反馈环路、多时钟路径、三态逻辑、锁存器和异步置位复位触发器, 只使用D 触发器和逻辑门。这样借助于综合工具, 可有效地控制软核关键路径的延时,并预测具体实现技术中软核的性能。当然这是以牺牲一定的FPGA 逻辑资源为代价的, 但随着硅技术的发展, 硬件资源十分丰富, 用一定的硬件资源浪费去换取设计灵活性提高是值得的, 正如在PC 机软件设计中, 现在已很少有人过多考虑程序占用的存储空间一样。 本文作者按照上述软核设计思想, 采用全同步逻辑设计, 只使用D 触发器和逻辑门, 实现了与PIC16C57兼容的8位微控制器的设计。顶层结构如图4, 采用哈佛结构, 取指和指令执行并行工作, 除少数几条程序跳转指令外, 全部为单时钟周期指令。程序存储器ROM 一般放在FPGA 外, 若ROM 中指令较少, 也可放在FPGA 内。数据总线采用多路选择器形式, 以适应不同的实现技术。指令寄存器和特殊功能寄存器, 包括IO 端口寄存器、状态寄存器、程序计数器等, 都由D 触发器构成, 通用寄存器采用了FPGA 的RAM 模块, 指令译码和算数逻辑单元由组合逻辑门构成。     图4 8位微控制器顶层结构图 实现的主要功能: (1) 指令与P IC16C57兼容。 (2) 三个8位双向IO 口。 (3) 程序存储器2K X 12 B IT。 (4) 内部RAM 共32个, 7个为特殊寄存器。 (5) 二级子程序堆栈。 (6) 未实现指令: POT ION、SLEEP、CLRWDT。 (7) 单相时钟。该软核用VHDL 语言完成设计的输入, 用EXPRESS 综合工具进行综合, 采用Xilinx 4000系列FPGA 实现, 不包括ROM 约需2500逻辑门, 时钟频率5MHz, 即运行一条指令200ns。 上述软核在综合、布局布线时, 只给予了简单的时序约束, 当需要改用其它FPGA 实现时, 可用综合工具重新综合、布局布线, 一般不需改变时序约束文件就能达到上述性能, 因此当时钟频率不太高时,软核的使用还是较为方便的。但当时钟频率较高时,虽然采用了与实现技术无关的可综合软核的思想,软核的性能还是与使用者及其采用的实现技术紧密相关, 要真正做到与实现技术无关是很困难的。此时软核的使用者必须清楚其使用的复杂性, 最好能得到软核提供者的技术支持, 许多软核提供者都提供这方面的服务。 4 总结 随着硅技术的发展, 集成电路芯片的硬件生产能力迅速提高, 几年前FPGA、CPLD 的规模还在万门左右, 现在ALTERA 公司已宣布将推出250万门的CPLD。如此快的发展速度, 使集成电路设计能力严重不足, 只靠增加设计人员, 不从设计方法上改进, 提高设计的效率, 是不可能解决问题的。因此基于核的设计、设计重利用等技术, 近年来在国外发展很快, 并成立了相应的标准化组织, 如VSIA (Virtual Socket Interface Alliance) , 专门从事核或称IP模块的互连标准研究, 以使核的使用就象在印制板上使用集成电路块一样方便。一个片上系统的时代即将到来, 电子工程师应跟上这个时代发展的潮流,正如以前电子管系统向晶体管系统, 分离元件系统向集成电路系统发展一样。

    时间:2012-11-01 关键词: FPGA ip核 设计方法

  • SOC参数自动配置设计方法与功耗优化

    引 言 片上系统( system ON chip ,SOC) 已经成为21世纪全球瞩目的关键核心技术。 SOC 具有垂直整合的特性,并注重创新和创意,产品非常个人化、应用差异化、样式多元化。 SOC 应用需求的广泛性,以及大部分SOC 应用功能单一、性质确定的特点,决定了SOC 目前大多是针对专门的应用领域进行专门设计来满足高性能、低成本和低功耗的要求。 目前SOC 的发展趋势是: 体系结构需要在新技术与产品、市场和应用需求之间取得平衡;设计方法趋向于走专用、定制和自动化的道路。 一方面由于SOC 的专用化设计要求,另一方面由于IP 提供商的支持, SOC 的集成设计方法正向参数化设计发展。 SOC 的参数可能影响系统功耗、性能和面积,每个参数的选择范围是一个有限集合,因此一个SOC 设计可以理解为一组SOC 参数的选择。 在系统结构形成后,SOC 设计问题就转变为参数配置问题。 随着参数的增多,手工对代码进行修改是不可接受的,这不仅效率低,而且会增加错误率。本文对原有的硬件描述语言进行扩展,并建立了参数自动配置环境,通过分析SOC 参数属性,利用邻域搜索算法针对功耗进行自动参数优化。 参数自动配置设计方法 采用传统的硬件描述语言(HDL) ,参数自动配置的难点在于:首先模块本身的描述随参数配置的改变而变化; 其次当模块被更上层的父模块例化(inSTance) 时,其接口逻辑在不同参数配置下也可能不同。 在进行参数化设计时,只能采用硬件描述语言的宏定义,这种方法不仅不够灵活,而且代码复杂,冗余很多。 参数自动配置环境由一组运行脚本组成,主要通过两个工具Eperl 和Vperl 来进行参数配置,实现了代码的即配置即生成。 Eperl 的作用是定制内部的逻辑,Vperl 的作用是生成模块间的连接关系。 基于Verilog 硬件描述语言的参数自动配置过程如下。 1) 参数首先被送到3.evp 文件,这是同时包括Eperl 语法和Vperl 语法的文件,因为Eperl 和Vperl 电路的语法非常简洁,所以设计师不仅不用担心会在这里陷入困境,反而会大大减少设计强度。 2) 3.evp 文件经过Eperl 处理后生成3.vp 文件,这是只包含Vperl 语法的文件,这时所有的参数都被解析,模块内参数配置都已经完成了。 3) 3.vp 经过Vperl 处理后, 最后生成3.v 文件, 即电路的Verilog 描述。 因此在参数化设计中,与传统设计不同,设计师的描述文件是3.evp 文件,而Verilog 代码只是作为设计的中间代码出现。 参数自动配置环境建立了一系列脚本程序来自动解析相关文件的相互关系,并生成整个系统的硬件描述语言描述。 Eperl 最初用作HTML 页面生成,适合于静态文本相当多,但是又有一部分代码需要动态生成的场合。 因为大多数硬件描述是静态代码,只有一小部分需要可配置,所以Eperl 非常适用于电路的硬件描述。 Eperl 结合了Perl 的解释功能,相当于在原文本结构中插入了一段内嵌代码。 这段内嵌代码最终可以生成想要配置的硬件结构。 Eperl 利用Print 结构来传递所有的内嵌代码。 Eperl 所做的相当于程序员写一个用于生成代码的Perl 脚本。 下面所示程序段是从dma _fifo.evp 文件中提取的一部分代码。 ∥Synchronous FIFO.fifo_depth x fifo_width bit words. &moduleBeg ; &Ports ; &Regs ; &WIRes ; < : $width_msb=$fifo_width21 ; $depth_msb=$fifo_depth21 ; $ptr_width=log ( $fifo_depth)/log (2) ; $ptr_msb=$ptr_msb21 ; : > &Force ("mem","fifomem", < :=$width_msb : >,0, < :=$depth_msb : >,0) ; …… ∥Update FIFO memory. always @(posedge clk) begin if ( rstp== 1′b0 & & writep== 1′b1 & & fullp== 1′b0) fifomem [ head ] <=din [ < :=$width_msb : > :0 ] ; end ∥Update the head register. always @(posedge clk) begin if ( rstp== 1’b1) head [<:=$ptr_msb:>:0]<=<:=$ptr_width:>′b0 ; else if (writep== 1′b1 & & fullp== 1′b0) head [ < :=$pt r_msb : > :0 ] < = head [ < :=$pt r_msb : > :0 ] + 1 ; end .. 在< :…… : > 中的就是Eperl 代码,以& 开始的是Vperl 代码, 如&ModuleBeg 表示模块的开始。 在FIFO 中,可配置的参数主要是2 个: FIFO 深度和FIFO 宽度,所以dma_fif.evp 文件对外只有2 个参数可调, 而其他的比如定义信号所需要的FIFO 寄存器的最高位width_msb 、head 指针的宽度ptr_width 等都可以用Eperl 脚本生成。 这与宏定义相比体现了Eperl 的灵活性。再比如可以通用寄存器组gpr.evp 文件利用for 循环来例化每一个寄存器,更充分地体现了使用Eperl 的灵活性。 for 循环的代码如下所示。 for($i = 0;$i<$reg _num;$i++) { print"&Instance ("iu_register","iu_register_$i " );n" ; } : > …… 3.evp 格式的文件经过Eperl 解析后生成 3.vp格式的文件。 dma _fifo.evp 经过Eperl 解析后生成的3.vp 文件如下所示。 ∥Synchronous FIFO.fifo_depth x fifo _width bit words。 &ModuleBeg ; &Ports ; &Regs ; &Wires ; &Force ("mem" ,"fifomem" ,15 ,0 ,3 ,0) ; …… ∥Update FIFO memory。 always @(posedge clk) begin if (rstp== 1′b0 & & writep==1′b1 & &fullp==1′b0) fifomem [head]<= din [15 :0] ; end ∥Update the head register。 always @(posedge clk) begin if (rstp = = 1′b1) head [1 :0 ] < = 2′b0 ; else if (writep = = 1′b1 & & fullp = = 1′b0) head [1 :0 ] < = head [1 :0 ] + 1 ; end …… 当然IP 模块的不同配置会造成SOC 系统信号的不同。 如向系统中添加通用异步收发器(UART)模块,SOC 系统就要增加输入输出端口,并且要增加很多内部的连线,比如把IP 总线引入UART.Vperl 程序可以解决这个问题。 Vperl 的工作原理是通过分析模块内使用的信号的属性来确定模块的信号定义。 HDL 具有一定的语法结构,比如Verilog 有2 种信号类型,always 块中的<= 操作符左边一定是reg 类型信号,由此取reg 类型的补集就是wire 类型,除非显式地通过&Force()声明为其他类型,如在dma_fifo.vp 中的第6 行代码,声明为二维reg 数组类型。 分析模块也可以确定模块的输入输出,如果一个信号在模块中自始至终没有被赋值过,那么这个信号必然是input信号;同理,如果一个信号被赋值但从来没被使用过,就是output 信号; 如果既被赋值过,又被使用过,那么这个信号有很大可能是这个模块的内部信号,不是模块的端口,除非显式地通过&Force ( ) 声明为inout类型。 对于模块中例化的子模块(在3.vp 中用&Instance() 语句声明) ,Vperl 程序首先分析模块间的从属关系,并先处理最底层的子模块代码,在自动分析子模块接口的输入输出属性后,缺省地把子模块的输入输出信号作为上层模块的接入信号,并在上层模块中自动进行连接,当然Vperl 也提供了&Connect () 语句来更改子模块接入上层模块的信号名。 所以用Vperl 的格式书写的文件3.vp不需要在文件头部定义信号名。 如下所示是dma_fifo.vp 文件的示例代码。 ∥Synchronous FIFO.fifo _depth x fifo _width bit words。 module dma _fifo (clk,rstp,din,writep,readp,dout ,emptyp,fullp); input clk; input rstp; input [15:0] din; input readp; input writep; output [15:0]dout; output emptyp; output fullp; reg emptyp; reg fullp; reg [15:0]dout; reg [ (DEPTH-1):0 ]  tail; reg [ (DEPTH-1):0 ]  head; reg [ (DEPTH-1):0 ]  count; reg [15:0 ] fifomem [0:MAX_COUNT]; …… ∥Update FIFO memory。 always @(posedge clk) begin if ( rstp==1′b0 && writep==1′b1 &&fullp==1′b0) fifomem [head]<= din [15:0]; end ∥Update the head register。 always @(posedge clk) begin if ( rstp==1′b1) head[1:0 ]<=2′b0; else if (writep==1′b1 & & fullp==1′b0) head[1:0 ]<=head[1:0 ] + 1; end …… 在上述程序段中, din [15:0 ] 对应参数fifo_width=16 的情况, 如果在dma_top 模块中用Vperl 语法例化了dma_fifo ( &Instance(dmafifo);) ,那么Vperl把din[15:0]连接进dma_top ,并进而生成dma_top.v 代码,即dma_top.v 的信号定义。 Vperl 实际上是接管了模块间的信号连接工作,使得设计师不用担心参数改变对模块间关系的影响。 另外,Vperl 的另一项优点就是省去了每个HDL 文件中繁琐的信号定义,避免因为信号定义引起的语法错误(比如信号忘记定义、信号名打错等) ,大大加快源代码的编写速度。 当然,使用Vperl 需要遵循一定的语法。 在参数自动配置机制中,结合Eperl 和Vperl这两种工具就可以由选定的参数组合自动地配置硬件结构。 对于软件而言,由C 语言编写的应用程序不需要修改,但是编译器需要针对不同的执行单元的配置增加减少指令并进行优化。 SOC 参数优化 一个SOC 中包括了P1 , P2 , P3 , ..., Pn 等参数。每个参数的值都可以从一个有限集合中选取。 为了选择最优的参数值,也就是为了达到最优的系统配置,使功耗、性能和面积达到合理的目标,需要进行参数优化。 一种方法是运行一次仿真后,记录下指令序列(trace) ,将不同的参数配置结合指令序列通过纯软件的行为分析器进行分析。 这种方法的优势是速度快。 但是在不同的结构参数下,指令序列差别很大,特别是当指令集都发生改变时,结果的可信度大大降低;而且行为分析器对一些动态参数,比如动态电压,对功耗的影响无法估计,所以可能不得不进行多次仿真来获得较准确的功耗估计。 由于仿真时间一般较长,参数的优化算法对设计周期的影响很大。 参数的属性 在SOC 设计中的定制概念不再是晶体管级的定制,而是体现在模块级层面上,具体表现为系统的结构参数。 SOC 的系统参数具有一些属性,如大多数系统参数是相互影响的,这些相关性必须在参数配置时予以考虑。 相关性可以区分为数值相关和性能相关。 参数自身也有单调性和层次性。 数值相关 两参数的数值相关意味着一个参数的选择限制了另一个参数的选择范围。 例如对于容量限制为64 ×8 bit s 的直接存储器存取(DMA) 缓冲区,可以缓冲64 个8 位数据,但是当用于缓冲32 位数据时,只能放16 个数据。 在这里数据个数和数据格式是数值相关的。 再如可配置处理器的乘法器(MUL) 单元一般不会和乘累加器(MAC)单元一起出现,因为两者的功能是重叠的。 在进行参数选择时,利用数值相关性可以去除一些不可能的参数值,缩小参数的选择范围。 性能相关 两参数的性能相关意味着一个参数的改变会影响另一个参数的最优选择。性能相关是有方向性的,如果参数B 与A 性能相关, 则参数A 是B 的主动参数,参数B 是A 的随动参数。 在参数选择时,可以先确定A 再确定B 。如寄存器的个数相关与MUL 单元相关意味着MUL 单元是主动参数,而寄存器个数是随动参数。 两个参数也可能互相相关,也就是说参数A 和B 之间形成环路。 这时两个参数必须同时调整才能得到最优的方案。 例如高速缓存的组参数和每个缓存块的容量参数的性能是相关的。 在进行参数选择时,性能不相关的参数可以独立选取最优解。 单调性 很多参数对某一优化目标而言是单调函数。 例如决定UART 缓冲区大小的参数,对功耗这一优化目标,一般是缓冲区越大功耗越大。 参数的方向性也可以缩小参数的选择范围。 层次性 模块参数只影响模块自身,比如Cache 容量、Cache 行大小和关联组个数。 多个模块参数可以形成一个系统参数,比如从系统角度来看,Cache 失配率就是一个系统参数。 利用参数的层次性可以进行局部优化。 邻域搜索算法 参数的性能相关性是参数优化的主要难题。 首先需要一种数据结构来表征性能相关性。 图1 较好地表示了参数的性能相关性。 其中,参数用节点表示,而节点与节点间的连线表示两参数的性能相关。节点和节点之间的连线是有方向性的,从A 到B 的边表示参数B 与A 的性能相关。     图1  功耗性能相关图 随着SOC集成度的进一步提高,参数个数增多,导致设计选择空间急剧扩大,完全地对每一个参数组合进行评价是不可能的。 由于每次计算代价函数需要很长的时间,一些进化优化算法,如遗传算法不再适用。 邻域搜索算法是一种解决优化问题的方法。 一般来说,邻域搜索算法只能找到局部最优解。但是与大多数优化问题不同,SOC 的参数具有一定的方向性,系统设计师的经验可以帮助设计师找到一种较优化的参数组合,SOC 参数优化的主要目的是对系统性能进行微调,因此邻域搜索算法可以满足SOC 参数优化的要求。 以一个数据采集系统为例来验证领域搜索算法的有效性,数据采集系统的参数如表1 所示。 在这个应用中,系统从UART 接收数据,利用DMA 运送到内存,软件进行32 点FIR 滤波处理。 UART 的接收速率是10kB/s ,参数的性能相关图如图1 所示。 首先建立功耗相关图。在建图过程中,可以利用参数的数值相关进行参数归并,比如MUL的选用和MAC的选用可以归并为一个参数;以及区分参数的层次性,比如ICache 的失配参数N 由参数A 、B 、C 的一个子图组成。 接着设立代价函数f ( K) =系统功耗, K 是一个参数组合。 选择初始解Kbest.f best=f(Kbest ) 。 然后进行参数优化,参数优化的算法步骤如下。 1) 分析功耗相关图的拓扑顺序,包括较低层次的子图。 一般可以采用邻接表作为实现上述算法的数据结构。 首先从图中选一个入度为0 的节点并将其输出,然后从图中删掉此节点及其所有的边。 反复执行这两步,直至剩下的图中再也没有入度为0 的节点。 剩下的就是单个节点或环路。 分析拓扑顺序是 为了确定参数优化的顺序。 拓扑序列的第一个节点就是第一个被优化的参数。 表1  数据采集系统参数表     2) 邻域映射定义为取当前优化节点的最近可选值。 仿真得到功耗f ( K) 。 如果f ( K) < f best ,则Kbest = K , f best = f ( K) ;否则退回原来的值。 重复步骤2) ,直到最近的可选值都被仿真过。 3) 选择下一个优化的节点,一般选择拓扑序列的下一个参数,但是在环路中,如果一个参数发生改变,则需要重新遍历一遍环路,这时应取环路上的节点。 如果该节点包含较低层次的子图,则选取子图中的节点。 重复步骤2) 。 实验结果 在进行优化实验前, 需要建立IP的功耗模型。 门级电路的功耗估计已经比较成熟了。 因为门电路的结构比较简单,可以比较容易地测量静态功耗,并根据标准单元的输入建立动态功耗的查询表。 但是门电路的功耗分析可能需要较大的运算量,而且门电路方法一般用于设计的后期,这时软硬件划分、硬件微结构设计、寄存器传输级(RTL)设计、综合都已经完成了。 这种方法无法对系统设计提供帮助或参考,这对系统设计师来说是很大的担心,也可能对设计周期产生影响。 当前功耗建模的方向主要是在RTL 或行为级领域。功耗常常与状态相关。 对于状态机电路来说,由于硬件模块一般有几个状态,在不同状态下,每个时钟周期上消耗的能量是不同的,可以利用IP 的状态机建模。 状态功耗模型并不一定和IP 核的电路状态机完全一致,它还可以考虑电路中的一些组合逻辑输出和关键输入信号如门控时钟信号等,只要这些信号的组合可以表示一个特殊的功耗状态即可。本文采用常用的状态功耗建模方法,利用TSMC0。18 工艺的门电路仿真数据对Cache 、GPR、各运算单元、DMA 和UART 进行建模。 在软硬件仿真平台上,对这个数据采集系统进行仿真。 由于应用程序较短以及采样速率不是很高,在实验中,共经过了28 个参数组合的仿真,得到的优化解如表2 所示。 如果对整个设计空间进行仿真则需要1.92×107 次仿真。 表2  对参数进行邻域搜索优化的结果     结 语 原有的硬件描述语言难以适应参数化设计的要求,Eperl 和Vperl 提供了硬件描述语言的扩展。 利用参数自动配置环境嵌入Eperl 和Vperl ,可以生成对应特定参数配置的SOC 硬件语言描述。 参数优化建立在参数自动配置环境的基础上。 在分析SOC参数属性基础上提出的领域搜索算法可以大大减少SOC优化周期。 该设计环境已应用于一款嵌入式RISC处理器CK520和基于它的SOC开发,并取得了满意的效果。

    时间:2012-10-29 关键词: SoC 自动 参数 设计方法

  • 普及LED灯具应该必备的设计方法

    一种全新概念的固态光源,LED以其无与伦比的节能、环保、长寿命、可控性高等技术优势,成为近年来全球最具发展前景的高新技术之一,正式拉开全面替代传统照明的序幕,半导体照明技术革新正在改变百年传统照明历史。随着LED技术在照明领域的应用,LED灯具产品在全球掀起了一场节能环保的绿色风暴,被业界誉为绿色照明产品。在能耗越来越高的今天,甚至有人预言:“在未来10年内,LED灯具产品将成为取代高压钠灯、白炽灯、荧光灯、台灯等传统照明灯具的唯一产品。”LED灯具要普及,不但需要大幅度降低成本,更需要解决能效和可靠性的难题,如何解决这些难题,一起分享高效高可靠LED灯具设计的方法。 一、不要使用双极型功率器件 瓷库中国专家指出由于双极型功率器件比MOSFET便宜,一般是2美分左右一个,所以一些设计师为了降低LED驱动成本而使用双极型功率器件,这样会严重影响电路的可靠性,因为随着LED驱动电路板温度的提升,双极型器件的有效工作范围会迅速缩小,这样会导致器件在温度上升时故障从而影响LED灯具的可靠性,正确的做法是要选用MOSFET器件,MOSFET器件的使用寿命要远远长于双极型器件。 二、尽量不要使用电解电容 LED驱动电路中到底要不要使用电解电容?目前有支持者也有反对者,支持者认为如果可以将电路板温度控制好,依次达成延长电解电容寿命的目的,例如选用105度寿命为8000小时的高温电解电容,根据通行的电解电容寿命估算公式“温度每降低10度,寿命增加一倍”,那么它在95度环境下工作寿命为16000小时,在85度环境下工作寿命为32000小时,在75度环境下工作寿命为64000小时,假如实际工作温度更低,那么寿命会更长!由此看来,只要选用高品质的电解电容对驱动电源的寿命是没有什么影响的! 在LED驱动电路输入部分可以考虑不用电解电容,实际上使用PI的LinkSwitch-PH就可以省去电解电容,PI的单级PFC/恒流设计可以让设计师省去大容量电容,在输出电路中,可以用高耐压陶瓷电容来代替电解电容从而提升可靠性,有的人在设计两级电路的时候,在输出采用了一个400V的电解电容,这会严重影响电路的可靠性,建议采用单级电路用陶瓷电容就可以了。对于不太关注调光功能、高温环境及需要高可靠性的工业应用来说,强烈建议不采用电解电容进行设计。 三、不要选用耐压600V的MOSFET 耐压600V的MOSFET比较便宜,很多认为LED灯具的输入电压一般是220V,所以耐压600V足够了,但是很多时候电路电压会到340V,在有浪涌的时候,600V的MOSFET很容易被击穿,从而影响了LED灯具的寿命,实际上选用600VMOSFET可能节省了一些成本但是付出的却是整个电路板的代价,所以,瓷库中国专家建议不要选用600V耐压的MOSFET,最好选用耐压超过700V的MOSFET。 四、尽量使用单级架构电路 Doug表示有些LED电路采用了两级架构,即“PFC(功率因数校正)+隔离DC/DC变换器”的架构,这样的设计会降低电路的效率。例如,如果PFC的效率是95%,而DC/DC部分的效率是88%,则整个电路的效率会降低到83.6%!“PI的LinkSwitch-PH器件同时将PFC/CC控制器、一个725VMOSFET和MOSFET驱动器集成到单个封装中,将驱动电路的效率提升到87%!”Doug指出,“这样的器件可大大简化电路板布局设计,最多能省去传统隔离反激式设计中所用的25个元件!省去的元件包括高压大容量电解电容和光耦器。”Doug表示LED等级两级架构适用于必须使用第二个恒流驱动电路才能使PFC驱动LED恒流的旧式驱动器。这些设计已经过时,不再具有成本效益,因此在大多数情况下都最好采用单级设计。

    时间:2012-10-29 关键词: LED 灯具 设计方法

  • 基于Android平台的双网双待的设计方法

    0 引言   随着移动通信技术的快速发展以及人们对手机功能需求的不断提高,智能手机逐渐成为人们的日常消费品,智能手机的用户也与日俱增。为了方便人们的生活,追求双网双待已成为手机研发的一种普遍现象。双网双待解决了一部手机可以同时接入两个网络的难题,最大的优点是保证了GSM 与CDMA 两种网络在同一手机中同时工作,真正实现了两网自由连通。双网的连通还具有差异化优势,可以将CDMA 较高的接入速度和通信保密等强大功能体现在终端方面,使双网双待手机用户能够尽享CDMA 网络支持的丰富多彩的数据增值业务。同时GSM 与CDMA 两网的和谐整合将为手机厂商带来巨大的市场价值。   Android 作为当前众多智能手机系统平台的后起之秀,以其优势正逐渐获得广大手机开发人员和手机消费者的青睐。实现双网双待也必将成为Android 不断创新和发展的重要因素。   Android 系统由嵌入式Linux 和Java 构成,因此基于Android 系统平台的双网双待设计区别于其他手机对双网双待的实现,它充分地利用了Android 平台清晰的系统架构、简易的工作原理和已经实现的部分Phone 核心应用程序进行双网双待的功能扩展,提高了Android 平台双网双待设计的效率。   1 Android 操作系统介绍   Android 是Google 于2007 年11 月份宣布的基于Linux 2. 6. 23平台的开源手机操作系统,号称是首个为移动终端打造的真正开放和完整的移动软件。Google 重新设计了Android Java 虚拟机和系统,使得Android 的Java 应用更接近于底层系统,效率更高; 另外使用虚拟机技术使得Android 的应用在被监控的情况下运行,安全性更高。Android 包括移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍,具有平台标准化、用户可定制以及服务免费等特色,是一个对第三方软件完全开放的平台,突破了iPhone 等只能添加为数不多的固定软件的枷锁; 同时与Windows Mobile、Symbian、iPhone OS 等厂商不同,Android 操作系统免费向开发人员提供,大大节省了开发成本。   Android 平台由操作系统、中间件、用户界面和应用软件组成。Linux 内核层用来提供系统的底层服务,位于硬件和其他软件之间。Android 运行库包含一组核心库和Dalvik 虚拟机,Android 提供丰富的类库支持且大部分为开源代码,如采用嵌入式数据库SQLite.应用框架层为Android 开发人员提供了访问框架应用程序接口的全部权限,采用结构化设计简化了组件间的重用。在应用程序层,Android 本身附带了一些核心的应用程序,大大简化了Android 应用程序的开发。   因此,利用Android 平台更易于开发具有双网双待功能的智能手机系统,同时也便于在原有系统的基础上进行不断的完善和功能扩展。   2 Android 平台双网双待框架设计   Android 平台上实现的双网双待手机是将GSM 网络和CDMA网络相结合,使得一部手机可同时插入两张不同网络的号卡,并同时处于开机状态,用户无需切换网络,即可任意拨打、接听和收发短信,且这些手机均可支持中国电信自有的增值业务,使商务人士尽享移动办公的自由以及休息娱乐的乐趣。此外,用户还可预设接听和拨打电话的顺序,使用起来非常方便。   基于Android 系统平台的双网双待的设计,充分结合了Android2. 1 版本之后在framework 层上已经实现的双卡处理机制,设计方案主要侧重于RIL 及ARM(modem)侧的实现机制。通过在RIL 上依样建立一套新的处理机制,将双卡分别进行处理。   比如,打电话的时候,发送哪套请求就先选择向哪套机制发送请求,然后还在这套机制中等待消息的返回。Android 平台双网双待框架如图1 所示。       图1 Android 平台双网双待框架     图1 中GSM 网络和CDMA 网络分别拥有一套独立的RIL处理机制,从而可以根据上层不同的Phone 服务执行framework层以及RIL 层的相应处理,真正实现双网的协同工作,达到同一手机中双网双卡之间互不干扰的效果。     3 Android 平台双网双待软件设计   Android 平台双网双待功能设计主要涉及到Android 软件平台的四大功能模块,分别是Linux 内核层、本机库/运行时、应用程序框架层以及应用程序层。其中在应用程序层利用Android的各种组件API 实现PhoneApp 并在Linux 内核层提供相应的底层驱动。Android 系统架构如图2 所示。       图2 Android 系统架构   (1)Linux 内核。   Android 系统平台是基于优化的Linux 内核来开发的,主要添加了一个名为Goldfish 的虚拟CPU 以及Android 运行所需的特定驱动代码。该层用来提供系统的底层服务,提供诸如内存管理、进程管理、设备驱动、安全管理、电源管理等驱动模块,作为一个虚拟的中间层,该层位于硬件与其他软件层之间,采用YAFFS2 文件系统,同时也是手机软硬件的连接层。在系统开发中,也需要针对自身的硬件模块添加对应的驱动,如Phone 驱动、GPRS 驱动、GPS 驱动、液晶和触摸板驱动等。   (2)本机库/Android 运行时。   这些共享库都是利用C 和C + + 语言编写的,且针对电话使用的特定的硬件架构进行了编译,并已由手机制造商预先安装到手机上。本机库主要包含: 标准C 函数库、媒体功能库、浏览器引擎、2D 和3D 图形库及SQLite 引擎等。开发者利用这些功能可以方便地开发出人机界面友好的应用程序接口,极大地缩短了开发过程。   Android 运行时包含一组Java 内核库和Dalvik 虚拟机,它们有效地优化了Java 程序的运行过程。       (3)应用程序框架层。   Android 应用程序开发是基于框架和组件的,该层提供了在创建应用程序时需要使用的各种高级构建块,因此在该层中,开发人员拥有访问框架API 的全部权限,在开发应用程序时调用Android 本身自带的许多组件,也可以开发新的组件,并将该组件放入应用程序框架中,以供自己和其它应用程序调用,这样的模块大大提高了应用程序的开发效率。   (4)应用程序层。   Android 本身包含一些由Java 开发的核心应用程序,如桌面、短信收发程序、日历、电话通讯录、浏览器、E-mail 客户端等,开发者还可以在此基础上开发出更多具有特色的Android 应用程序,如特效相机、播放器、充电相框等。   3. 1 Android 双网双待实现方案   在GSM 单模状态下通过添加一套支持CDMA 的无线接口层RIL 来实现双网双待机制的方案如图3 所示。     图3 Android 双网双待电话部分结构     在PhoneAPP 中new 一个GSMPhone 和一个CDMAPhone,分别对应两种framework (不同的CallTracker)和RIL (不同的RIL),实现单模向双网双待的改进。   图中CallLiST 主要用来管理两个电话之间的切换,以避免如挂掉某一个通话却导致另一个的通话也结束等一系列界面显示出错问题。CallList 模块管理两个电话以及这两个电话所有的通话,通过一个CallList 表来存储两个电话的所有呼叫。上层界面调用这个CallList 表来处理两个电话的切换。在framework 中new 一个CallList 的类来存储phone 的多个电话以便上层显示。   CallList 类中包含attached(),detach(),update(),clear(),get-CurrentCall(),getDefault()等方法。使得两个Phone 的Call 得到控制。挂掉的时候就从表中删除,来电话的时候加入表中。   上层显示的时候,只要调用CallList 中的最后存入Call 就不会出现界面出错的情况。   在包含GSM 网络和CDMA 网络的双网双待模块中,因为有了CDMA 部分的整合不少代码已经发生改变,原来的CallTracker只被GSM 使用,在这里改为CallTracker 和GsmCallTracker,抽象出CallTracker 基类,使其也可以被CDMA 利用; GSMCall 变成GsmCall,更加符合统一的命名规则; 另外,比如pppd 的启动部分,也从Java 框架层放到RIL 层。   3. 2 Android RIL 层的改进   在Android 系统中RIL 是电话系统的本地实现,它提供了Android 电话服务(android. telephony)与无线电硬件之间的抽象层,主要负责AT 命令的发送和响应解析,这也是电话服务的实现基础。另外,RIL 还负责数据的可靠传输。因此RIL 在Android电话部分起核心作用。本方案设计过程中主要涉及到RIL以下四个部分的修改:   (1)由于本方案维护两个RIL 实例,因此RIL 实例管理者(RIL instance Manager)需要各自负责与android telephony 通过socket 进行连接。每个RIL 实例针对各自的SIM 卡提供专用的通信通道来进行modem 侧的通信服务。   (2)无线电仲裁管理者(Radio Service Arbitration Manager),这是实现双网双待方案中新增加的模块,主要用来为每个RIL 实例进行语音和短消息业务的仲裁,数据服务的仲裁由MODEM 来进行。   (3)RIL 事件分配机(RIL Event Dispatcher),用于分配RIL请求及AMSS 事件到通信服务管理模块进行的处理。   (4)无线电服务管理者(Radio Service Manager),Android 通话应用首先需要通过子系统信息来从framework 层获得通话服务,然后每个SIM 卡子系统将会映射到一个特定的RIL 实例ID上,服务管理将使用RIL 实例的ID 来识别子系统ID 中DSS API的参数。   3. 3 Android 双网双待通话机制的实现   Android 系统电话服务的实现基础是RIL.在Android 单模状态下的RIL 同TI 等平台类似,均使用了Google 默认的参考接口,也就是通过打开modem 侧提供的串口或者USB 虚拟串口向modem 侧发送AT 指令的方式,进行实际的无线通信。比如,UI上层向RIL 层发送RIL_REQUEST_DIAL 请求,RIL 层在接收到该请求的时候,通过串口向modem 发送"AT***"命令,发起呼叫,当然,最终真正实现通话的是modem 侧的功能,此时,与Android 就无关了。Android 平台RIL 与modem 的工作原理如图4 所示。       图4 RIL 与modem 的工作原理     呼叫(call)构建于电话服务的基本架构之上。   与呼叫相关的主要用户接口,其实就是基于ITelephony 接口实现Phone 应用中的"Phone"服务,通过TelephonyManager 提供访问接口。此服务内部通过PhonyFactory 获取的GSMPhone /CDMAPhone 来访问RIL,提供诸如拨号、接通、挂断、保持通话等服务功能。Android 双网双待呼叫部分的结构如图5 所示。     图5 android 双网双待呼叫部分结构     Android 系统双网双待呼叫部分的实现,从GSMPhone /CDMAPhone到对应RIL 的路径中间主要涉及几个关键数据结构,即GSMCall /CDMACall、CallNotifiter、GSMConnection /CDMAConnection、CallTracker 等类。   其中GSMCall 和CDMAPhone 都继承Call 基类,提供基本的呼叫控制结构以及呼叫状态,如Hold、Active 等信息,每个接通的GSMCall / CDMACall 都拥有一个或多个(conference call)GSMConnection /CDMAConnection 结构,用于维护呼叫时长等相关信息。CallTracker 是呼叫模块的核心,它提供与呼叫相关的接口,如通话、挂断等。GSMPhone /CDMAPhone 拥有CallTracker的实例,并封装相应的接口,这个接口通过调用GSMPhone /CDMAPhone中的CommandsInterface 实现,即提交的RIL 封装。   除此之外,CallTracker 还维护当前的GSMCall 和CDMACall列表,保持对所有呼叫状态的追踪,提供对来去电等呼叫状态的管理。实现追踪的方法为pollCallsWhenSafe,通过CommandsInterface的getCurrentCalls 接口获取当前活动的呼叫列表。这一操作的底层实现为AT + CLCC(不同的Modem 实现可能不同),这是从Modem 获取呼叫状态列表的主要接口。回调通过ENENT_ POLL _ CALLS-RESULT 完成,回调函数为handlePollCalls,这是获取Modem 中实际呼叫信息的核心方法,也是Tracker的含义所在。handlePollCalls 完成实际的追踪功能,根据底层上报的Outgoing、Incomming 以及Active、Hold 等状态更新Call列表的信息,每个呼叫在其生命周期内的状态转换,在Call-Tracker 中都可得到体现,并将这些变化信息及时通知其关注者,也就是实现Phone 的应用。   4 结果分析   基于Android 操作系统实现的双网双待功能模块设计,利用Android 通用的系统架构和设备无关的应用程序开发平台,实现了双网双待单通系统电话部分的框架设计和上层Phone 应用程序设计。改进后的Android 系统平台同时支持GSM 和CDMA两种网络同时待机,这大大方便了许多拥有两张手机卡并且不在同一制式网络的用户。图6 为Android 系统平台上GSM和CDMA 双网同时待机的状态图。       图6 GSM 和CDMA 双网同时待机界面     5 结语   利用Android 原有系统架构和本身包含一些Java 核心应用程序,通过添加一套新的支持CDMA 的RIL 来实现基于Android平台的双网双待设计,使得一部手机同时维护两套独立的RIL,既支持GSM 又支持CDMA,分别对双SIM 卡进行各自独立的处理,极大地方便了广大Android 手机用户。Android 作为目前被给予厚望的智能手机操作系统,实现双网双待必将为其赢得更广阔的发展空间以及更多的拥护者,也将为未来的发展奠定坚实的基础。尽管本方案的部分设计还不完善,许多细节的实现还有待解决。但随着Google 对Android 版本的不断升级以及Android 应用的不断丰富,基于Android 平台的双网双待设计将会不断地完善与发展。

    时间:2012-10-08 关键词: Android 双网 设计方法

  • 高频变压器设计方法

    高频变压器设计方法 高频变压器的设计包括:线圈参数的设计,磁芯材料的选择,磁芯结构的选择,磁芯参数的设计,组装结构的选择等内容。下面对高频变压器线圈参数的计算与选择、磁芯材料的选择、磁芯结构的选择、磁芯参数的设计和组装结构的选择进行详细介绍。 (1) 高频变压器线圈参数的计算与选择 高频变压器的线圈参数包括:匝数、导线截面(直径)、导线形式、绕组排列和绝缘安排。 原绕组匝数根据外加激磁电压或者原绕组激磁电感(储存能量)来决定,匝数不能过多也不能过少。如果匝数过多,会增加漏感和绕线工时;如果匝数过少,在外加激磁电压比较高时,有可能使匝间电压降和层间电压降增大,而必须加强绝缘[5]。副绕组匝数由输出电压决定。导线截面(直径)决定于绕组的电流密度。还要注意的是导线截面(直径)的大小还与漏感有关。 高频变压器的绕组排列形式有: ①如果原绕组电压高,副绕组电压低,可以采用副绕组靠近磁芯,接着绕反馈绕组,原绕组在最外层的绕组排列形式,这样有利于原绕组对磁芯的绝缘安排; ②如果要增加原和副绕组之间耦合,可以采用一半原绕组靠近磁芯,接着绕反馈绕组和副绕组,最外层再绕一半原绕组的绕组排列形式,这样有利于减少漏感。 另外,当原绕组为高压绕组时,匝数不能太少,否则,匝间或者层间电压相差大,会引起局部短路。 对于绝缘安排,首先要注意使用的电磁线和绝缘件的绝缘材料等级要与磁芯和绕组允许的工作温度相匹配。等级低,满足不了耐热要求,等级过高,会增加不必要的材料成本。其次,对在圆柱形磁路上绕线的线圈,最好采用线圈骨架,既可以保证绝缘,又可以简化绕线工艺。另外,线圈最外层和最里层,高压和低压绕组之间都要加强绝缘。如果一般绝缘只垫一层绝缘薄膜,加强绝缘应垫2~3层绝缘薄膜。 (2) 高频变压器磁芯材料的选择 高频变压器磁芯一般使用软磁材料。软磁材料有较高磁导率,低的矫顽力, 高的电阻率。磁导率高,在一定线圈匝数时,通过不大的激磁电流就能有较高的磁感应强度,线圈就能承受较高的外加电压,因此在输出功率一定的情况下,可减轻磁芯体积。磁芯矫顽力低,磁滞回环面积小,则铁耗也少。电阻率高则涡流小,铁耗也小。 铁氧体材料是复合氧化物烧结体,和其它软磁磁芯材料一样,软磁铁氧体的优点是电阻率高、交流涡流损耗小,价格便宜,易加工成各种形状的磁芯,缺点是工作磁通密度低、磁导率不高、磁致伸缩大、对温度变化比较敏感。它适合高频下使用,因此高频变压器一般采用铁氧体材料作为磁芯。 (3) 高频变压器磁芯结构的选择 磁芯基本结构有: ①叠片,通常由硅钢或镍钢薄片冲剪成E、I、F、O等形状,叠成一个铁芯。 ②环形铁芯,由O型薄片叠成,也可由窄长的硅钢、合金钢带卷绕而成。 ③C形铁芯,此种铁芯可免去环形铁芯绕线困难的缺点,由二个C型铁芯对接而成。 ④罐形铁芯,它是磁芯在外,铜线圈在里,免去环形线圈不便的一种结构形式,可以减少 EMI。缺点是内部线圈散热不良,温升较高。 高频变压器设计时选择磁芯结构应考虑的因素:降低漏磁和漏感,增加线圈散热面积,有利于屏蔽,线圈绕线容易, 装配接线方便等。 在高频变压器磁芯结构设计中,对窗口面积的大小,要综合考虑各种因素后来决定。为了防止高频电源变压器从里向外和从外向里的电磁干扰,有些磁芯结构在窗口外面有封闭和半封闭外壳。封闭外壳屏蔽电磁干扰作用好,但散热和接线不方便,必须留有接线孔和出气孔。半封闭外壳,封闭的地方起屏蔽电磁干扰作用,不封闭的地方用于接线和散热。如果窗口完全开放,接线和散热方便,屏蔽电磁干扰作用差。 (4) 高频变压器磁芯参数ΔB的选择 高频变压器磁芯参数选择时,必须注意工作磁通密度不只是受磁化曲线限制,还要受损耗的限制,同时还与功率传送的工作方式有关。 对于磁通单方向变化的工作模式: ,ΔB既受饱和磁通密度限制,又受损耗限制。 对于磁通双方向变化的工作模式: ,工作磁滞回线包围的面积比局部回线大得多,损耗也大得多,ΔB主要受损耗限制,而且还要注意出现的直流偏磁问题。 对电感器功率传送方式,磁导率是有气隙后的等值磁导率,一般都比磁化曲线测出的磁导率小。 (5) 高频变压器组装结构的选择 高频变压器组装结构分为卧式和立式两种。如果选用平面磁芯、片式磁芯和薄膜磁芯,都采用卧式组装结构,上下表面比较大,有利于散热;其它的都采用立式结构。另外,组装结构中采用的夹件和接线端子等尽量采用标准件,以便于外协加工,降低成本。 (6) 高频变压器工作点的确定 对于新买来的磁芯,由于厂家提供的磁感应强度值并不准确,一般先要粗略测试它,具体方法:将调压器接至原线圈,用示波器观察副线圈输出电压波形,将原线圈的输入电压由小到大慢慢升高,直到示波器显示的波形发生奇变,此时磁芯已饱和,根据公式:U=4.44fN1Φm可推知在Φm值。 更多资讯请关注:21ic模拟频道

    时间:2012-09-04 关键词: 高频变压器 设计方法

  • 基于放大电路的采集心电信号的设计方法

    1 人体心电信号的特点     心电信号属生物医学信号,具有如下特点:     (1)信号具有近场检测的特点,离开人体表微小的距离,就基本上检测不到信号;     (2)心电信号通常比较微弱,至多为mV量级;     (3)属低频信号,且能量主要在几百赫兹以下;     (4)干扰特别强。干扰既来自生物体内,如肌电干扰、呼吸干扰等;也来自生物体外,如工频干扰、信号拾取时因不良接地等引入的其他外来串扰等;     (5)干扰信号与心电信号本身频带重叠(如工频干扰等)。 2 采集电路的设计要求     针对心电信号的上述特点,对采集电路系统的设计分析如下:     (1)信号放大是必备环节,而且应将信号提升至A/D输人口的幅度要求,即至少为“V”的量级;     (2)应尽量削弱工频干扰的影响;     (3)应考虑因呼吸等引起的基线漂移问题;     (4)信号频率不高,通频带通常是满足要求的,但应考虑输入阻抗、线性、低噪声等因素。 3 采集电路设计分析过程 3.1 前级放大电路设计     由于人体心电信号的特点,加上背景噪声较强,采集信号时电极与皮肤间的阻抗大且变化范围也较大,这就对前级(第一级)放大电路提出了较高的要求,即要求前级放大电路应满足以下要求:     高输入阻抗;高共模抑制比;低噪声、低漂移、非线性度小;合适的频带和动态范围。     为此,选用Analog公司的仪用放大器AD620作为前级放大(预放)。AD620的核心是三运放电路(相当于集成了三个OP07运放),其内部结构如图1所示。     该放大器有较高的共模抑制比(CMRR),温度稳定性好,放大频带宽,噪声系数小且具有调节方便的特点,是生物医学信号放大的理想选择。根据小信号放大器的设计原则,前级的增益不能设置太高,因为前级增益过高将不利于后续电路对噪声的处理。     根据上面的分析,前级放大电路按图2设计,并先运用Multisim 2001仿真。     仿真过程采用O.5 MV,1.2 Hz的差分信号源为模拟心电输入来模拟电路的放大过程,结果满足要求。 3.2 次级放大电路(信号放大)     第二级放大电路主要以提高增益为目的,选用普通的AD OP07即可满足要求。 3.3 高通滤波器(消除基线漂移)     在电路部分加上简单的高通滤波环节,对隔断直流通路和消除基线漂移将会起到事半功倍的效果,本部分电路置于预放大与信号放大电路之间,一个简单的无源高通滤波电路如图3所示。     其特征频率(转折频率)计算为:         经过高通滤波后,可X以大大削弱0.03 Hz以下因呼吸等引起的基线漂移程度,心电信号低频端也就相应地取该频率。 3.4 补偿电路(抵消人体信号源中的各种噪声)     引入补偿电路,是为了抵消人体信号源中的干扰(包括工频干扰)。引入补偿电路的方法:在前级放大电路的反馈端与信号源地端建立共模负反馈,为提高电路的反馈深度,将反馈信号放大后(仍采用OP07)接人信号源参考端,这样可以最大限度地抵消工频干扰。引入的这种电路形式,根据其结构和功能,可形象地将其称为“反馈浮置跟踪电路”。 3.5 整个电路系统的框图结构     整个电路系统的原理框图及信号流程如图4所示。   3.6 实际电路系统原理图     最后的综合电路如图5所示。图中U1单元为AD620前置放大;U2为反馈浮置跟踪部分;U3为第二级放大输出部分。     该电路的增益估算为:     第一级放大:     实际增益由于高通滤波及其他损耗的存在,要比理论估算值略小,但已满足放大输出的要求。     4 电路性能的实验验证     按图5搭建电路,采用虚拟仪器LabVIEW 8.2系统,通过NI的USB-6009DAQ采集电路输出的心电信号,结果如图6所示(为便于对比,采用了相同的坐标刻度)。     在图6中,图6(a)为不加反馈浮置部分时采集到的信号波形,可以看出,干扰很大,其中的主要干扰为50 Hz的工频干扰;图6(b)为加上反馈浮置电路部分后采集到的心电波形,其基线附近的仍有部分纹波干扰,但较图6(a)不加反馈浮置时得到的波形已大为改善,可见加上反馈浮置电路对降低人体中干扰信号有很大帮助。至于仍残留的工频干扰,可在系统后续部分采用有关滤波技术进一步加以抑制,这里不再讨论有关工频干扰的进一步滤波问题。 5 结 语     采用以AD620及OP07为核心的信号放大器来实现心电信号的放大,电路功耗小,灵敏度高,理论上最低只需3 V的电源,可由外接电池提供,容易实现基于移动式设备(如笔记本电脑)为核心的心电信号采集及处理,是一种实用的心电信号前端采集放大电路(信号的进一步优化可在采集后由软件进行调理)。

    时间:2012-08-19 关键词: 放大电路 采集 心电信号 设计方法

  • 传感器供电系统抗干扰设计方法

    对传感器、仪器仪表正常工作危害最严重的是电网尖峰脉冲干扰,产生尖峰干扰的用电设备有:电焊机、大电机、可控机、继电接触器、带镇流器的充气照明灯,甚至电烙铁等。对于传感器供电系统抗干扰设计可用硬件、软件结合的办法来抑制。 1、用硬件线路抑制尖峰干扰的影响 常用办法主要有三种: (1)在传感器交流电源输入端串入按频谱均衡的原理设计的干扰控制器,将尖峰电压集中的能量分配到不同的频段上,从而减弱其破坏性; (2)在传感器交流电源输入端加超级隔离变压器,利用铁磁共振原理抑制尖峰脉冲; (3)在传感器交流电源的输入端并联压敏电阻,利用尖峰脉冲到来时电阻值减小以降低仪器从电源分得的电压,从而削弱干扰的影响。 2、利用软件方法抑制尖峰干扰 对于周期性干扰,可以采用编程进行时间滤波,也就是用程序控制可控硅导通瞬间不采样,从而有效地消除供电系统对传感器干扰。 3、采用硬、软件结合的看门狗(watchdog)技术抑制尖峰脉冲的影响 软件:在定时器定时到之前,CPU访问一次定时器,让定时器重新开始计时,正常程序运行,该定时器不会产生溢出脉冲,watchdog也就不会起作用。一旦尖峰干扰出现了“飞程序”,则CPU就不会在定时到之前访问定时器,因而定时信号就会出现,从而引起系统复位中断,保证智能传感器回到正常程序上来。 4、采用噪声滤波器也可以有效地抑制交流伺服驱动器对传感器的干扰。该措施对以上几种干扰现象都可以有效地抑制。 5、实行电源分组供电,例如:将执行电机的驱动电源与控制电源分开,以防止它对传感器的干扰。 6、采用高抗干扰性能的电源,如利用频谱均衡法设计的高抗干扰电源。这种电源抵抗随机干扰非常有效,它能把高尖峰的扰动电压脉冲转换成低电压峰值的电压,但干扰脉冲的能量不变,从而可以提高传感器、仪器仪表的抗干扰能力。 7、采用隔离变压器 考虑到高频噪声通过变压器主要不是靠初、次级线圈的互感耦合,而是靠初、次级寄生电容耦合的,因此隔离变压器的初、次级之间均用屏蔽层隔离,减少其分布电容,以提高传感器抵抗共模干扰能力。

    时间:2012-08-13 关键词: 传感器 抗干扰 供电系统 设计方法

  • 基于语音识别的声控鼠标的设计方法

     摘要: 实现了一种基于语音识别技术的声控鼠标光标应用程序, 可以用语音控制鼠标光标移动到屏幕的任意位置, 能用来帮助伤残人士只用声音而不用鼠标和键盘就能操作电脑。分析了语音控制鼠标光标使用过程中的延时缺陷, 并做出了针对性的改进。   1 概述   电脑语音技术经过多年发展已经取得了巨大进步, 目前已经有一些产品和项目让人们有机会和计算机进行语音交互工作, 例如IBM公司的Viavoice 系列软件以及微软的新的Office 产品都有实用的语音功能, 可以进行语音听写录入文字等工作, 还出现了一些基于语音技术的应用系统。   语音技术特别是语音识别技术的发展, 使人们可能实现用语音控制电脑, 这对于世界上众多不能方便使用传统的鼠标及键盘的伤残人士有重大的意义; 另外在一些场合不方便操作电脑但又必须使用的情况下同样很有意义, 比如驾驶的同时查询电子地图。目前要真正控制一台图形界面的电脑, 必须做到使用语音控制也能像使用键盘和鼠标那样输入数据以及控制光标。因此一种有效的语音控制光标程序, 也就是可以定位在屏幕的任意位置, 并且可以模拟单击、双击拖拽等各种鼠标动作的语音控制程序, 对于实现语音控制电脑将是一个很有意义的工具。   本文利用微软的Speech SDK 5.1 免费的语音识别引擎和模拟鼠标技术, 用Delphi7.0 实现了一个语音控制鼠标应用程序, 可以实现语音控制鼠标移动、停止、单击等动作达到控制屏幕光标的作用, 并对语音控制鼠标程序中的延迟问题进行了分析, 提出并实现了一种改进方法。   2 基于语音识别的光标控制类型   目前有两种语音控制鼠标的模式: 一种是目标导向光标控制和方向导向光标控制[n].对于前者, 用户需要用语音给出具体目标名称或者位置, 比如图标、菜单, 或者屏幕区域名称, 然后给出执行的命令如"单击"等, 这种方式对于单个软件还是有效的, 但是当目标增加的时候用户需要记忆很多目标的名称, 还可能出现同名称目标的情况, 因此工作中的错误率会增加。另一种方向导向光标控制又分为非连续控制和连续控制两种, 对于非连续的情况用户要同时说明方向和距离, 如命令"左8 厘米", 那么光标就向左移动8厘米; 而对于连续的情况用户先说明方向如"向左",光标就向左移动, 直到用户再说"停止", 光标才停止运动。   本文讨论的声控光标是属于方向导向中的连续控制, 这种鼠标控制和日常的使用习惯比较一致, 用户使用起来比较适应。   3 实现   本文语音控制光标程序的语音控制是采用微软的Speech SDK 5.1 的语音识别引擎及其API 接口, 这是一个免费的开发包, 并且可以用它开发具有中文语音功能的软件。语音识别引擎通常可以分为两种工作方式, 一种就是命令控制(Command and Control) 方式, 这个方式下语音识别引擎可以识别简短的语音命令, 以便执行相应的程序; 另外一种是连续听写方式,这个模式下语音识别引擎要识别连续的语音, 这种功能实现起来比语音控制更复杂, 因为语音听写过程中需要对上下文以及相同相似发音的词语进行分析、作出判断, 而在命令控制语音方式中不需要作上下文分析。本文采用的是命令控制方式, 因为实现语音控制鼠标只需要对有限的几个简短的命令进行识别, 如"左"、"右"、"停"等。图1 是语音控制鼠标程序的结构图。 图1 语音控制鼠标程序结构   该应用程序主要包括两个部分: 第一部分语音控制应用主程序部分, 主要调用语音识别引擎识别用户的语音命令。   这部分程序主要完成几件工作:   ①导入辞书文法文件(XML 格式, 其中定义感兴趣的语音命令) , 完成对语音识别引擎接口的初始化工作, 激活语音识别引擎;②接收语音识别引擎的识别结果, 根据识别结果调用相应的鼠标控制程序。   下面的语法文件中定义了方向命令和鼠标事件命令的语法规则:   <GRAMMAR LANGID="804">   <DEFINE>   <ID NAME="RID_start" VAL="1"/>   <ID NAME="PID_colour" VAL="2"/>   <ID NAME="PID_colourvalue" VAL="3"/>   </DEFINE>   <! - - Rule definiTIons - - >   <RULE NAME="start" ID="RID_start" TOPLEVEL="ACTIVE">   <RULEREF NAME="colour" PROPNAME="colour"PROPID="PID_colour" />   </RULE>   <RULE NAME="colour" >   <L PROPNAME="colourvalue" PROPID="PID_   colourvalue">   <P VAL="1">上</P>   <P VAL="2">下</P>   <P VAL="3">左</P>   <p VAL="4">右</p>   <p VAL="5">停止</p>   <P VAL="6">单击</P>   <P VAL="7">双击</P>   <p VAL="8">关闭</p>   </L>   </RULE>   </GRAMMAR>  在程序运行的时候, 一旦有上述语法文件中定义的命令被成功识别, 则在程序的onRecgnition 响应函数中可以查询出识别的返回值是1~8 中的某个值, 根据不同的返回值就可以调用鼠标控制程序进行鼠标的某个方向的移动或者点击等事件的模拟控制。   第二部分鼠标控制程序, 就是调用程序模拟控制鼠标移动或单击等各种鼠标事件。这一部分主要是利用Windows API 函数模拟鼠标事件实现对鼠标光标的控制。   模拟鼠标移动可以通过循环调用Windows API函数SetcursorPos(x1,y1)来实现, 在循环中控制x1 和y1 的变化就可以实现任何方向的鼠标移动。在程序中模拟鼠标移动需要用到多线程控制, 否则鼠标移动过程中无法随时停止或者让他转向。以下是移动线程中的移动控制代码:   for I := 1 to 500 do   begin   if bstop=1 then break;   //遇到停止命令时停止光标移动   case Dr of   //根据参数Dr 决定光标运行方向   1: x1:=x1+n1; //右移   2: x1:=x1- n1; //左移   3: y1:=y1+n1; //下移   4: y1:=y1- n1; //上移   end;   windows.SetcursorPos(x1,y1);   end;   鼠标的另一类控制程序是模拟鼠标单击双击等鼠标事件, 主要是在程序中利用mouse_event 函数对鼠标事件进行模拟。程序中以下代码模拟了鼠标左键单击:   windows.mouse_event (MOUSEEVENTF_LEFTDOWN,0,0,0,0);   // 左键按下   windows.mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);   // 左键抬起   图2 是一个理想情况下用本文程序实现语音控制鼠标的例子。光标初始位置在屏幕左下方, 目标矩形在屏幕右上区, 首先用户对麦克风发出"右"的命令, 光标就向右移动; 当光标到达目标下方的时候用户说"上"命令, 光标就改向上移动( 或者先说"停"命令, 光标停止) ; 当光标到达目标矩形, 用户说"停"命令, 光标停止, 最后用户说"单击", 程序模拟鼠标左键单击事件, 相当于目标矩形被单击。 图2 一个语音控制鼠标工作的例子   4 语音控制鼠标的缺陷   虽然几个简单的语音命令, 可以控制鼠标移动到屏幕的任何位置, 并可以根据语音命令模拟单击、双击等各种鼠标事件, 但是实际使用中还存在缺陷。   对于大的目标而言, 这种语音控制鼠标控制没有什么问题, 如果目标区域比较小, 将会增加使用者的难度, 比如当光标移动到矩形时喊"停", 光标会继续移动一小段才停, 这时光标可能已经越过了目标矩形。这种情况和语音识控制中存在的延时有关, 每次用户发出语音命令到命令被执行都有一个过程, 首先使用者说出语音命令是需要时间的, 而且语速快的人和语速慢的人说同样的命令花的时间不同; 另外语音识别引擎成功识别一个语音命令也需要一个时间。所以语音控制鼠标在控制过程中必然存在延时。因此从开始发出语音命令到动作被执行, 光标必然会有位置的误差: △S=V×△t ( △S 为位置误差, V 为鼠标移动速度, △t 为说话和识别造成的延时)。   Sear 等人曾经研究用一个虚拟鼠标机制来解决延时误差问题, 即在真实的鼠标移动前虚设一个鼠标, 当假鼠标到达目标时发出语音命令, 执行的时候真鼠标正好到达目标处。但是他们的试验结果并不理想。因为每个人说话的习惯和速度是不一样的, 而且不同的状态下的语速也不同, 因此延时△t 不是一定的, 所以每次的位置误差△S 也不尽相同, 而一种固定距离的先导虚拟鼠标并不能取得很好的效果。   5 一种改进方法   影响位置控制效果的因素和目标的大小、移动速度和延时有关。能够改变的是速度控制, 所以本文采取一种方案改进位置控制精度。改进后的语音控制鼠标每次的位置误差△S 明显减小, 在目标较小的情况下, 位置控制精度得到提高。   改进方法是在程序中增加对鼠标的速度控制: 在目标较小的情况下, 光标先以正常速度V1 移动, 到达目标附近时先进行减速控制, 用语音命令"慢"来控制鼠标减低移动速度到V2( 实际设计中V2=1/3 V1) ,到达目标后再用语音命令"停"停止鼠标移动, 图3 反映了这个过程中光标速度的变化。这样在延时时间不变, 由于光标移动速度V 降低很多, 由△S=V×△t 知道位置误差△S 也减小很多。 图3 速度可控制的语音控制光标移动速度变化示意图   而在目标比较大的情况下, 因为位置控制精度足够, 可以不选择"慢"命令控制直接进行"停"控制。   结语   本文研究语音控制鼠标的应用程序, 实现了对鼠标基本的语音控制, 针对语音控制中因为延时而产生的位置控制误差做了分析和改进。本文研究的内容对于开发辅助不便使用鼠标及键盘的伤残人士使用计算机的交互工具有积极的意义。   试验表明用本程序控制鼠标移动、点击等可实现浏览网页、打开、关闭程序等电脑操作。但是由于控制鼠标过程中要多次发出语音命令, 同时要集中注意力观察光标的位置, 所以也存在用户容易疲劳的问题。   后续将对改进语音控制鼠标使用舒适情况和提高控制效率等做进一步研究。

    时间:2012-08-07 关键词: 鼠标 声控 语音识别 设计方法

  • 多彩背光灯的设计方法

    标签:LED  彩色背光 设计背景 消费类电子产品主要面向的是年轻消费群体,为了取悦消费者,工程人员总是需要想各种方法让产品功能变得更加完善,外表更加绚丽。在产品成本高透明度,以及研发周期短的情况下,如何提升产品的竞争力这是研发人员所面临的一个事实。当前流行的MP3/MP4,手机等消费类电子添加7或者多色背光的功能是一个就是一个典型的例子。所付出的只是几个发光二极管的成本,却达到了让产品的操作界面更加绚丽和个性化。 应用范围 彩色背光应用最典型的是应用在MP3产品的LCD背光,手机键盘灯背光,以及一些其他需要背光显示的产品。 传统7色背光设计方法 7色背光的实现方法,硬件如下。只利用了主控制器的3条GPIO口线,对三个背光LED管子做开关控制。可以很容易实现7种颜色的变化。 优点:实现方法简单,硬件添加成本低。最多能达到显示的7种颜色背光的要求。 缺点:无法调节发光亮度;3个管子同时打开时电流达到25~30mA; 7种颜色过于单调。 LED灯光控制专用芯片介绍 LPD6803是“彩拓科技开发有限公司”专门为彩色显示LED系统开发控制驱动芯片,控制简单。 功能描述: a. 内置振荡器,扫描不需要依靠控制板提供扫描时钟。 b. 2根控制线,控制和布线简单。 c. 可以控制3路LED,通过寄存器设定方式可以产生出128种彩色出来。 d. 由于利用了人眼的间歇特性,进行PWM扫描,让实际需要电流变得更小。 e. 芯片供电3.3V~7V宽范围供电。 多彩色LED背光控制设计思路 LPD6803成本在1.5块人民币左右,低功耗设计满足便携式产品设计要求。 1. 设计能达到的效果 A. 使背光亮度可调节。0~16级背光亮度调节。 B. 达到128种背光颜色显示。 C. 任意一种显示颜色,总体电流保持在10mA之内。 D. 向LP6803写完固定的寄存器后,就可以达到指定的颜色显示。不占软件系统资源。 2. 硬件设计 4. 软件驱动设计 以下以驱动单个像素点来说明数据传送的方式。LPD6803是一个可以自动产生128级别 LED_SendData(BYTE Rdt, BYTE Gdt, BYTE Bdt) { ...... SCLK = 0; SDO = 0; for(i=0;i<32;i++){SCLK=1;SCLK=0} //送起始32bits 0 SDO=1;SCLK=1;SCLK=0; //送起始位'1' //输出5位红色 mask = 0x10; for(j=0;j<5;j++) { if(mask&Rdt) SDO = 1; else SDO = 0; SCLK=1;SCLK=0; mask>>=1; } //输出5位绿色 mask = 0x10; for(j=0;j<5;j++) { if(mask&Bdt) SDO = 1; else SDO = 0; SCLK=1;SCLK=0; mask>>=1; } //输出5位蓝色 mask = 0x10; for(j=0;j<5;j++) { if(mask&Bdt) SDO = 1; else SDO = 0; SCLK=1;SCLK=0; mask>>=1; } SDO=0; SCLK=1;SCLK=0; //补1个CLOCK,如果一次送出了n个点的数据,则需要补n个Clock. ...... }

    时间:2012-07-20 关键词: 背光灯 设计方法

  • iPhone App的特点及基本设计方法

    iPhoneApp的特点   iPhone有自己的特点和气质,因此他的App不同于其他键盘手机甚至Android这种触屏手机。   首先iPhone只有一个物理按键Home,而这个按钮主要是在系统级操作上起到一些作用,在一个应用中,绝大多数情况都是退出功能。在480x320这个对手机而言很大的屏幕上要包括以下3个模块,才能对一个App进行操作。   1、虚拟键盘   iPhone虽然与Android同为触屏,但没有物理键盘(而Android有可能有物理键盘),所有的输入操作都需要屏幕中的虚拟键盘来实现,同时需要考虑虚拟键盘的遮挡问题。   2、目录导航   没有物理按键做为目录菜单的呼出功能,完全不同于Symbian和Android系统,包括导航也需要屏幕中的虚拟按钮来实现。   3、功能操作   需要把所有的功能集成在App中,比如我们可以用Tabbar来做功能的分类,工具栏来做具体视图的功能操作集合。   我们再来看看用户对iPhone的使用习惯   显然支持单手操作并不是iPhone应用的特性,当然也有一些游戏需要双手进行(沉浸式应用),但因为iPhone有一块非常灵敏支持手指多点触控的电容屏,所以手指直接在屏幕上的操作更加直观和更具操控感,不需要任何中间设备(按键或是鼠标)来控制。        1、自上而下的操作:   用户多数情况下会如上图的姿态,一手握机,大拇指做为主要操作和点击手指,我们可以看到不管是iPhone系统应用还是很多其他的优秀应用,大多使用很多的列表,因为拇指在滑动列表时会非常顺畅和方便,而且操作速度非常快,所以很长的列表不会成为iPhone应用的障碍,这与其他手机平台上的特性不同,更何况在表格的情况下,单击顶部的状态栏可以快速回到顶部。   2、减少输入   这与《移动设备交互设计》书中的一些观点一致,即对于手持设备我们要尽量的减少用户输入,特别对于iPhone这种虚拟键盘而言,即便电容屏再灵敏,对于每次都准确的触动面积很小的虚拟键盘也并不是一件轻松的事情,我们要尽量使用选择器,或是输入提示suggestion来减少成本。   3、足够大的按钮面积   对于iPhone这块电容屏来讲,虽然很灵敏,但接受的感触面积并不小,且用户又是直接用手指操作,所以我们要对应用中的所有按钮要适合指尖来操作,跟据官方给出的设计指导,44*44pix是一个较理想的面积。   4、多点触控手势   相对于设备的软硬件来说,手指总是保持可用,它是人体的一部分,可以灵活的做各种动作,而且直接触控屏幕非常直观,且用户也非常愿意使用这些看上去很酷手势动作,比如可以对图片用两个手指拉开来放大,合并来缩小,直接拖动来调换顺序,摇晃来进行刷新等。当然我们要考虑这些手势在不同应用的不同使用场景,不要滥用。   总之,iPhone应用的是线性的,连贯的,直观的依赖滑动操作,手指点击,以及各种手势给人很酷的感觉。   iPhone App的基本设计方法   1、iPhone应用的分类   1)高效型   这类应用可以帮助用户快速完成一个任务,注重内容的组织逻辑功能和信息架构的展现,以方便用户快速高效的使用,最终完成任务。此类应用一般包含大量的列表及每个列表中的任务功能。最典型的就是系统自带的“Mail”应用,这是一个非常典型的高效型应用。    此类应用给用户的感觉是层层进入,内容逐步具体化,直到可以完成用户的任务。   另外一个非系统应用且典型的就是QQ,可以看一下是不是也遵循这个特点。   2)实用工具型应用   此类应用一般交互操作非常少,也没有很深的层次结构,往往都是直接了当的展示信息,一般会在“背面”(通常会有一个翻转的效果)展示设置功能。最常见的就是“天气”和“股票”两个系统自带的应用。   3)浸入式应用   大多指游戏类应用,但也有一些实用工具,比如电子罗盘,所谓浸入式应用一般是全屏模式,专注一个任务或是娱乐的深入体验,没有过多的文字,而将用户的注意力放在如何使用它。   2、设计iPhone应用   1)iPhone应用的基本结构   状态栏:这是ios系统的一部分,除了浸入式应用外,其他应用一般都会保留这个bar。   导航栏:这里包括当前的title,当前的主要操作的控件和返回的导航功能   工具栏:对当前内容区可执行的功能动作。   标签栏:可以理解为全局导航,方便快速切换功能或是导航。工具栏和标签栏在一个视图中只能存在一个。        2)移植你的应用     大多数情况下我们都是把web端的应用移植到手机上,而在web端的应用,如果我们列出一个功能结构图,可能会包含100项以上的功能点,你可以做如下工作:   ①考虑这个web端的产品,核心功能是什么。任何一个产品都会有核心功能,以及附加功能,比如QQ,核心功能就是IM,即时通信,可能截屏是一个附加功能,尽管用的人非常多。确定核心功能后,以及围绕核心功能尽可能少的扩展功能和逻辑。   ②对确认的功能结构考虑在iPhone上的信息架构模型。上文说过,iPhone应用是线性的连贯操作,一层一层进入直到完成最后的任务,所以你要按这个思路去整理信息架构,一般来说,操作的深度不要超过3层,如果超过3层就要对产品形态进行扁平化处理,即由深度改为广度,因为随着深度的增加,每一级别都会有不同的功能,甚至有承载上一级的功能或逻辑,深度越多,这些功能就会越复杂,而在手机如此小的空间上就很难进行合理组织。   ③合理利用iPhone应用的结构及标准控件。   标签栏,可以理解为web应用中的全局导航或是主要子功能的切换,这个bar可以贯穿于主要视图的底部,方便用户快速跳转,比如下图这个标签栏。        导航栏,可以理解为web应用中的局部导航,子导航或是面包屑,显示当前位置,同时还承载了1个或两个主要功能操作。可以方便用户返回,或是对当前视图进行1-2个最重要的操作。如下面这个导航栏。

    时间:2012-06-18 关键词: iPhone app 设计方法

首页  上一页  1 2 3 4 5 下一页 尾页
发布文章

技术子站

更多

项目外包