• Linux Shell中的 ()、(())、[]、[[]]、{} 详解

    Linux Shell中的 ()、(())、[]、[[]]、{} 详解

    一、小括号,圆括号() 1、单小括号 () ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。 ②命令替换。等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令。有些shell不支持,如tcsh。 ③用于初始化数组。如:array=(a b c d) 2、双小括号 (( )) ①整数扩展。这种扩展计算是整数型的计算,不支持浮点型。((exp))结构扩展并计算一个算术表达式的值,如果表达式的结果为0,那么返回的退出状态码为1,或者 是"假",而一个非零值的表达式所返回的退出状态码将为0,或者是"true"。若是逻辑判断,表达式exp为真则为1,假则为0。 ②只要括号中的运算符、表达式符合C语言运算规则,都可用在$((exp))中,甚至是三目运算符。作不同进位(如二进制、八进制、十六进制)运算时,输出结果全都自动转化成了十进制。如:echo $((16#5f)) 结果为95 (16进位转十进制) ③单纯用 (( )) 也可重定义变量值,比如 a=5; ((a++)) 可将 $a 重定义为6 ④常用于算术运算比较,双括号中的变量可以不使用$符号前缀。括号内支持多个表达式用逗号分开。 只要括号中的表达式符合C语言运算规则,比如可以直接使用for((i=0;i<5;i++)), 如果不使用双括号, 则为for i in `seq 0 4`或者for i in {0..4}。再如可以直接使用if (($i<5)), 如果不使用双括号, 则为if [ $i -lt 5 ]。 二、中括号,方括号[] 1、单中括号 [] ①bash 的内部命令,[和test是等同的。如果我们不用绝对路径指明,通常我们用的都是bash自带的命令。if/test结构中的左中括号是调用test的命令标识,右中括号是关闭条件判断的。这个命令把它的参数作为比较表达式或者作为文件测试,并且根据比较的结果来返回一个退出状态码。if/test结构中并不是必须右中括号,但是新版的Bash中要求必须这样。 ②Test和[]中可用的比较运算符只有==和!=,两者都是用于字符串比较的,不可用于整数比较,整数比较只能使用-eq,-gt这种形式。无论是字符串比较还是整数比较都不支持大于号小于号。如果实在想用,对于字符串比较可以使用转义形式,如果比较"ab"和"bc":[ ab < bc ],结果为真,也就是返回状态为0。[ ]中的逻辑与和逻辑或使用-a 和-o 表示。 ③字符范围。用作正则表达式的一部分,描述一个匹配的字符范围。作为test用途的中括号内不能使用正则。 ④在一个array 结构的上下文中,中括号用来引用数组中每个元素的编号。 2、双中括号[[ ]] ①[[是 bash 程序语言的关键字。并不是一个命令,[[ ]] 结构比[ ]结构更加通用。在[[和]]之间所有的字符都不会发生文件名扩展或者单词分割,但是会发生参数扩展和命令替换。 ②支持字符串的模式匹配,使用=~操作符时甚至支持shell的正则表达式。字符串比较时可以把右边的作为一个模式,而不仅仅是一个字符串,比如[[ hello == hell? ]],结果为真。[[ ]] 中匹配字符串或通配符,不需要引号。 ③使用[[ ... ]]条件判断结构,而不是[ ... ],能够防止脚本中的许多逻辑错误。比如,&&、||、<和> 操作符能够正常存在于[[ ]]条件判断结构中,但是如果出现在[ ]结构中的话,会报错。比如可以直接使用if [[ $a != 1 && $a != 2 ]], 如果不适用双括号, 则为if [ $a -ne 1] && [ $a != 2 ]或者if [ $a -ne 1 -a $a != 2 ]。 ④bash把双中括号中的表达式看作一个单独的元素,并返回一个退出状态码。 例子: if ($i<5) if [ $i -lt 5 ] if [ $a -ne 1 -a $a != 2 ] if [ $a -ne 1] && [ $a != 2 ] if [[ $a != 1 && $a != 2 ]] for i in $(seq 0 4);do echo $i;done for i in `seq 0 4`;do echo $i;done for ((i=0;i<5;i++));do echo $i;done for i in {0..4};do echo $i;done 三、大括号、花括号 {} 1、常规用法 ①大括号拓展。(通配(globbing))将对大括号中的文件名做扩展。在大括号中,不允许有空白,除非这个空白被引用或转义。第一种:对大括号中的以逗号分割的文件列表进行拓展。如 touch {a,b}.txt 结果为a.txt b.txt。第二种:对大括号中以点点(..)分割的顺序文件列表起拓展作用,如:touch {a..d}.txt 结果为a.txt b.txt c.txt d.txt # ls {ex1,ex2}.sh ex1.sh ex2.sh # ls {ex{1..3},ex4}.sh ex1.sh ex2.sh ex3.sh ex4.sh # ls {ex[1-3],ex4}.sh ex1.sh ex2.sh ex3.sh ex4.sh ②代码块,又被称为内部组,这个结构事实上创建了一个匿名函数 。与小括号中的命令不同,大括号内的命令不会新开一个子shell运行,即脚本余下部分仍可使用括号内变量。括号内的命令间用分号隔开,最后一个也必须有分号。{}的第一个命令和左括号之间必须要有一个空格。 2、几种特殊的替换结构 ${var:-string},${var:+string},${var:=string},${var:?string} ①${var:-string}和${var:=string}:若变量var为空,则用在命令行中用string来替换${var:-string},否则变量var不为空时,则用变量var的值来替换${var:-string};对于${var:=string}的替换规则和${var:-string}是一样的,所不同之处是${var:=string}若var为空时,用string替换${var:=string}的同时,把string赋给变量var: ${var:=string}很常用的一种用法是,判断某个变量是否赋值,没有的话则给它赋上一个默认值。 ② ${var:+string}的替换规则和上面的相反,即只有当var不是空的时候才替换成string,若var为空时则不替换或者说是替换成变量 var的值,即空值。(因为变量var此时为空,所以这两种说法是等价的) ③${var:?string}替换规则为:若变量var不为空,则用变量var的值来替换${var:?string};若变量var为空,则把string输出到标准错误中,并从脚本中退出。我们可利用此特性来检查是否设置了变量的值。 补充扩展:在上面这五种替换结构中string不一定是常值的,可用另外一个变量的值或是一种命令的输出。 3、四种模式匹配替换结构 模式匹配记忆方法: # 是去掉左边(在键盘上#在$之左边) % 是去掉右边(在键盘上%在$之右边) #和%中的单一符号是最小匹配,两个相同符号是最大匹配。 ${var%pattern},${var%%pattern},${var#pattern},${var##pattern} 第一种模式:${variable%pattern},这种模式时,shell在variable中查找,看它是否一给的模式pattern结尾,如果是,就从命令行把variable中的内容去掉右边最短的匹配模式 第二种模式: ${variable%%pattern},这种模式时,shell在variable中查找,看它是否一给的模式pattern结尾,如果是,就从命令行把variable中的内容去掉右边最长的匹配模式 第三种模式:${variable#pattern} 这种模式时,shell在variable中查找,看它是否一给的模式pattern开始,如果是,就从命令行把variable中的内容去掉左边最短的匹配模式 第四种模式: ${variable##pattern} 这种模式时,shell在variable中查找,看它是否一给的模式pattern结尾,如果是,就从命令行把variable中的内容去掉右边最长的匹配模式 这四种模式中都不会改变variable的值,其中,只有在pattern中使用了*匹配符号时,%和%%,#和##才有区别。结构中的pattern支持通配符,*表示零个或多个任意字符,?表示仅与一个任意字符匹配,[...]表示匹配中括号里面的字符,[!...]表示不匹配中括号里面的字符。 # var=testcase # echo $var testcase # echo ${var%s*e} testca # echo $var testcase # echo ${var%%s*e} te # echo ${var#?e} stcase # echo ${var##?e} stcase # echo ${var##*e} # echo ${var##*s} e # echo ${var##test} case 4、字符串提取和替换 ${var:num},${var:num1:num2},${var/pattern/pattern},${var//pattern/pattern} 第一种模式:${var:num},这种模式时,shell在var中提取第num个字符到末尾的所有字符。若num为正数,从左边0处开始;若num为负数,从右边开始提取字串,但必须使用在冒号后面加空格或一个数字或整个num加上括号,如${var: -2}、${var:1-3}或${var:(-2)}。 第二种模式:${var:num1:num2},num1是位置,num2是长度。表示从$var字符串的第$num1个位置开始提取长度为$num2的子串。不能为负数。 第三种模式:${var/pattern/pattern}表示将var字符串的第一个匹配的pattern替换为另一个pattern。 第四种模式:${var//pattern/pattern}表示将var字符串中的所有能匹配的pattern替换为另一个pattern。 [root@centos ~]# var=/home/centos [root@centos ~]# echo $var /home/centos [root@centos ~]# echo ${var:5} /centos [root@centos ~]# echo ${var: -6} centos [root@centos ~]# echo ${var:(-6)} centos [root@centos ~]# echo ${var:1:4} home [root@centos ~]# echo ${var/o/h} /hhme/centos [root@centos ~]# echo ${var//o/h} /hhme/cenths 四、符号$后的括号 (1)${a} 变量a的值, 在不引起歧义的情况下可以省略大括号。 (2)$(cmd) 命令替换,和`cmd`效果相同,结果为shell命令cmd的输,过某些Shell版本不支持$()形式的命令替换, 如tcsh。 (3)$((expression)) 和`exprexpression`效果相同, 计算数学表达式exp的数值, 其中exp只要符合C语言的运算规则即可, 甚至三目运算符和逻辑表达式都可以计算。 五、使用 多条命令执行 (1)单小括号,(cmd1;cmd2;cmd3) 新开一个子shell顺序执行命令cmd1,cmd2,cmd3, 各命令之间用分号隔开, 最后一个命令后可以没有分号。 (2)单大括号,{ cmd1;cmd2;cmd3;} 在当前shell顺序执行命令cmd1,cmd2,cmd3, 各命令之间用分号隔开, 最后一个命令后必须有分号, 第一条命令和左括号之间必须用空格隔开。 对{}和()而言, 括号中的重定向符只影响该条命令, 而括号外的重定向符影响到括号中的所有命令。

    时间:2019-06-02 关键词: Linux shell 嵌入式系统电路 分隔符

  • C语言类型修饰符Volatile的使用

    volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。 volatile区分C程序员和嵌入式系统程序员的最基本的问题。搞嵌入式的家伙们经常同硬件、中断、RTOS等等打交道,所有这些都要求用到volatile变量。 不懂得volatile的内容将会带来灾难。 int volatile nVint; 当要求使用volatile 声明的变量的值时,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。 由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化,对于变量, 编译器发现两次从i读数据的代码之间的代码没有对i进行过操作,它会自动把上次读的数据放在b中。而不是重新从i里面读取. 这样以来,如果i是一个寄存器变量或者表示一个端口数据就容易出错,所以说volatile可以保证对特殊地址的稳定访问。 volatile 指出 i是随时可能发生变化的,每次使用它的时候必须从i的地址中读取. •;存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义,如并行设备的硬件寄存器(如:状态寄存器) •;中断服务程序中修改的供其它程序检测的变量需要加volatile,如一个中断服务子程序中会访问到的非自动变量(Non-automatic variables) •;多任务环境下各任务间共享的数据,如多线程应用中被几个任务共享的变量

    时间:2018-07-23 关键词: C语言 volatile 单片机制作 修饰符

  • STM32单片机硬件关键基础精华及注意事项

    一、如果你正为项目的处理器而进行艰难的选择: 一方面抱怨16位单片机有限的指令和性能,另一方面又抱怨32位处理器的高成本和高功耗。 那么,基于 ARM Cortex-M3内核的STM32系列处理器也许能帮你解决这个问题。使你不必在性能、成本、功耗等因素之间做出取舍和折衷。 即使你还没有看完STM32的产品手册,但对于这样一款融合ARM和ST技术的“新生儿”相信你和我一样不会担心这款针对16位MCU应用领域的32位处理器的性能。 但是从工程的角度来讲,除了芯片本身的性能和成本之外,你或许还会考虑到开发工具的成本和广泛度;存储器的种类、规模、性能和容 量;以及各种软件获得的难易,我相信你看完本专题会得到一个满意的答案。 对于在16位MCU领域用惯专用在线仿真器(ICE)的工程师可能会担心开发工具是否能够很快的上手?开发复杂度和整体成本会不会增加?产品上 市时间会不会延长? 没错,对于32位嵌入式处理器来说,随着时钟频率越来越高,加上复杂的封装形式,ICE已越来越难胜任开发工具的工作,所以在32位嵌 入式系统开发中多是采用JTAG仿真器而不是你熟悉的ICE。 但是STM32采用串行单线调试和JTAG,通过JTAG调试器你可以直接从CPU获取调试 信息,从而将使你的产品设计大大简化,而且开发工具的整体价格要低于ICE,何乐而不为? 有意思的是STM32系列芯片上印有一个蝴蝶图像,据ST微控制器产品部Daniel COLONNA先生说,这是代表自由度,意在给工程师一个充分的创意空间。 我则“曲解”为预示着一种蝴蝶效应,这种蝴蝶效应不仅会对方案提供商以及终端产 品供应商带来举足轻重的影响,而且会引起竞争对手策略的改变……翅膀已煽动,让我们一起静观其变! 二、STM32市面上流通的型号 市面流通的型号有: 基本型:STM32F101R6,STM32F101C8,STM32F101R8,STM32F101V8 ,STM32F101RB,STM32F101VB 增强型:STM32F103C8,STM32F103R8,STM32F103V8,STM32F103RB,STM32F103VB,STM32F103VE,STM32F103ZE 三、STM32系列的作用 ARM公司的高性能”Cortex-M3”内核 1.25DMips/MHz,而ARM7TDMI只有0.95DMips/MHz 一流的外设 1μs的双12位ADC,4兆位/秒的UART,18兆位/秒的SPI,18MHz的I/O翻转速度 低功耗 在72MHz时消耗36mA(所有外设处于工作状态),待机时下降到2μA 最大的集成度 复位电路、低电压检测、调压器、精确的RC振荡器等 简单的结构和易用的工具 四、STM32F10x重要参数 2V-3.6V供电 容忍5V的I/O管脚 优异的安全时钟模式 带唤醒功能的低功耗模式 内部RC振荡器 内嵌复位电路 工作温度范围:-40℃至+85℃或105℃ 五、性能特点 基本型STM32F101:36MHz CPU,多达16K字节SRAM,1x12位ADC温度传感器 增强型STM32F103:72MHz CPU,多达20K字节SRAM,2x12位ADC 温度传感,PWM定时器,CAN,USB

    时间:2018-06-11 关键词: 嵌入式 数字电路 单片机 单片机制作

  • 51单片机结构的C的常见错误有哪些

    1)C忌讳绝对定位。常看见初学者要求使用_at_,这是一种谬误,把C当作ASM看待了。在C中变量的定位是编译器的事情,初学者只要定义变量和变量的作用域,编译器就把一个固定地址给这个变量。怎么取得这个变量的地址?要用指针。比如unsigned char data x;后,x的地址就是&x, 你只要查看这个参数,就可以在程序中知道具体的地址了。所以俺一看见要使用绝对定位的人,第一印象就是:这大概是个初学者。 2)设置SP的问题。原因和1差不对,编译器在把所有变量和缓冲区赋予地址后,自动把最后一个字节开始的地方,作为SP的开始位置,所以初学者是不必要去理会的。这体现C的优越性,很多事情C编译时候做了。 3)用C的主程序结构:#include void main(void) { while(1); } 这是个最小的成功的C程序,包括头部文件和程序主体。头部文件的名词解释:引用的外部资源文件,这个文件包括了硬件信息和外部模块提供的可使用的函数和变量的说明。可以用文本方式打开reg52.h,仔细研究下,会有一些写程序的体会。 4)这样构成一个C项目在C中,常用项目来管理。项目一般分为两大块:C文件块和头部文件块。我们常把不同功能写在不同的C文件中,依*项目的管理,最后把所有文件连接起来,这样就可以得到可以烧录的HEX文件或BIN文件。这些C文件中,有且只有唯一一个包括main()函数,和3)中一样的C文件。用头部文件把各个不同的C互相连接起来。一个C文件基本上要对应有一个H头部文件,这个H文件就包含本C文件中可以提供给外面使用的变量和函数,没有在H文件中列出的募??梢运闶歉肃文件的内部函数和变量,外部C不能使用。例子:a.C: unsigned char i; unsigned char mWork; void Test1(void) { mWork++; } void Test2(void) { i++; } a.h文件中:extern unsigned char i; extern void Test1(void); 这样主程序M.c中:#include /*C编译器内部自带的H文件,使用<>*/ #i nclude "a.h" /*自定义的H文件,一般用""*/ void main(void) { Test1(); /*使用a.c模块文件中的函数*/ while(1){ i++; /*使用a.c模块文件中的变量*/ } } 5)51家族核心都是基于8031的,有很多在此核心上进行扩展,有的把程序存储器放在内部:89c(S)51..,有的增加了RAM:89c(S)52..,有的增加了一些专用硬件80C552...,有的改变时钟时序W77E58...。市面上现在常用的主要有ATMEL公司的AT89X系列,PHILIPS的P87(89)x,台湾WINBOND的w77(78)x系列,Cygnal的C8051Fx系列。 6)51单片机结构的C描述这里不讲51的具体结构,只是引导初学者快速理解51单片机的物理结构。寄存器和IO及其它硬件设备的地址名称,在相应的C头部文件中可以找到。51为reg51.h,52为reg52.h,以次类推,比如winbond的78E58就为w78e58.h这些H文件中的描述: srf,定义一个8位的设备。 srf16,定义一个16位的设备。 sbit,定义一个位的设备。用这些语句定义后,就可以在C中象汇编一样使用这些硬件设备,这是单片机应用比标准C特殊的地方,其它差别很少。 7)在51系列中data,idata,xdata,pdata的区别 data:固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。 idata:固定指前面0x00-0xff的256个RAM,其中前128和data的128完全相同,只是因为访问的方式不同。idata是用类似C中的指针方式访问的。汇编中的语句为:mox ACC,@Rx.(不重要的补充:c中idata做指针式的访问效果很好) xdata:外部扩展RAM,一般指外部0x0000-0xffff空间,用DPTR访问。 pdata:外部扩展RAM的低256个字节,地址出现在A0-A7的上时读写,用movx ACC,@Rx读写。这个比较特殊,而且C51好象有对此BUG, 建议少用。但也有他的优点,具体用法属于中级问题,这里不提。 8)startup.a51的作用和汇编一样,在C中定义的那些变量和数组的初始化就在startup.a51中进行,如果你在定义全局变量时带有数值,如unsigned char data xxx=100;,那startup.a51中就会有相关的赋值。如果没有=100,startup.a51就会把他清0。(startup.a51==变量的初始化)。这些初始化完毕后,还会设置SP指针。对非变量区域,如堆栈区,将不会有赋值或清零动作。有人喜欢改startup.a51,为了满足自己一些想当然的爱好,这是不必要的,有可能错误的。比如掉电保护的时候想保存一些变量, 但改startup.a51来实现是很笨的方法,实际只要利用非变量区域的特性,定义一个指针变量指向堆栈低部:0xff处就可实现。, 为什么还要去改? 可以这么说:任何时候都可以不需要改startup.a51,如果你明白它的特性。

    时间:2018-06-11 关键词: 嵌入式 数字电路 单片机 单片机制作

  • 电子电路原理图识图心得及电路分析方法

    电子电路原理图识图心得及电路分析方法

    电子电路原理图的概念及识图意义 电子电路图一般由电路原理图、方框图和装配(安装)图构成,其中电路原理图是电子电路图的重要组成部分,它是由各种代表实际电子元器件的符号(图形、文字)及注释性字符组成的。从电路原理图我们可以看出每个电子元器件的具体参数(如型号、标称值)及各个元器件之间的连接关系。 识图,是从事电子技术工作人员的一项基本功,通过识图可以帮助人们去尽快地熟悉设备的构造、工作原理,了解各种元器件、仪表的连接以及安装;识图也是进行电子制作或维修的前提;识图也有助于我们迅速熟悉了解各种新型的电子仪器及设备。 电子电路原理图的识图方法 识读电子电路原理图必须了解掌握一定的电子技术的基本知识,但是,即使具备一定的电子技术基础知识,在刚开始接触电路图时也会感到有些困难,但从多年 从事电子技术教学的经验中,我觉得识读电子电路原理图还是有一定方法可以遵循的,下面我想结合光控和声控延时照明楼道灯电路(图1)做一总结。 1、将电路解体分块,分成若干单元电路。 一些复杂的电路,通常可以按照电路所实现的功能分为几个部分,这样可以把一个复杂的电路分解成若干简单的电路来分析, 简化了分析电路的难度。如光控和声控延时照明楼道灯电路可分解成声控接收放大电路、单稳态延时电路、光控电路和电源电路四个部分。每个部分的分界线如图1 所示(注:C2属于电源电路部分)。又如调幅收音机电路可以分解成输入回路、混频、中放、前置低放、功放这几个单元电路。 2、掌握典型单元电路的结构及特点。 常见的典型单元电路有放大电路、振荡电路、滤波电路等。这些单元电路通常是以三极管或集成电路作为核心器件来组成的,并具 备一定的结构形式,一些复杂的电路都是在这些典型单元电路基础上进行扩充来构成的。如放大电路通常是以三极管或集成运放为核心的单元电路,它的结构特点是 有一个输入端和一个输出端;振荡电路通常也是以三极管或集成运放为核心的单元电路,它的结构特点是没有对外的电路输入端,在三极管或集成运放的输入端与输 出端之间接有一个具有选频功能的正反馈网络;滤波电路通常以集成运放为核心,它的结构特点是含有电容器或电感器,并在输出端与输入端之间接有反馈元件。 在图1中,声控接收放大电路是以三极管VT1、VT2为核心的单元电路,光控电路是以VT3为核心的单元电路。又如在触发器电路中,基本RS触发器作为存储 单元电路是构成其它复杂触发器的基本逻辑单元,如同步RS触发器,是在基本RS触发器的基础上再增加两个与非门形成的,主从RS触发器又是由两个同步RS 触发器构成的,主从JK触发器则又是在主从RS触发器的基础上再增加两个与门而形成的,可见,同步RS触发器、主从RS触发器、主从JK触发器都是在基本 RS触发器基础上进行逐步扩充而形成的,基本RS触发器是构成这些复杂触发器的基本逻辑单元,掌握它为我们研究后面几种类型触发器打下基础。 3、了解电源电路的特点。 电子电路通常以直流稳压电源作为电源给电路提供能量,直流稳压电源通常由变压、整流、滤波和稳压四个部分构成,通过这四个部分的电 路,将交流电转换成直流电。如图1中交流220V电压经C1、R1降压、VDW二极管限幅、VD1整流后,得到直流电压经C2电容滤波以后,为整个电路提 供工作电压。又如一些门铃电路、充电电路、开关电路,在给这些电路供电时,通常都是将220V市电经变压器降压、四个二极管组成的整流桥整流、电容滤波及 稳压管稳压这几个环节将直流电转变成交流电为电路提供稳定的电源。 4、将电路归类,按类别研究电路。 电子电路通常可分为以下几种常见类别:报警电路、门铃电路、振荡电路、电源电路、照明与彩灯控制电路、开关与检测电路、传感 器应用电路、555定时器应用电路等。上述每种类别电路虽然所采用的电子元器件不同,但电路实现的功能基本是相同的,所以可以从电路所实现功能入手来分析 电路。另外,了解一些器件的典型电路结构及其特点,也为我们分析一些复杂电路带来方便。如555定时器典型电路主要包括用555定时器组成的单稳态触发 器、多谐振荡器、双稳态触发器,用这些典型电路可以构成相应的应用电路,如由555组成的单稳态触发器可构成触摸开关电路、定时器等,由555组成的多谐 振荡器可构成时钟脉冲发生器等,由555组成的双稳态触发器可构成逻辑电平测试电路等。如图1,楼道灯所具备的延时功能就是由555定时器构成的单稳态触 发器来实现的。 5、由浅入深研究某个类别电路。 例如门铃电路,我们可以先掌握简单门铃电路的原理,然后再进一步研究简单变调门铃电路、双音调门铃电路的原理,因为后面 两种类型的门铃电路是在简单门铃电路基础上加以改进扩充而形成的。如图1,是光控和声控延时开关电路,我们可以先从相对简单的光控开关电路开始研究,在此 基础上再研究光控延时开关电路,最后再研究声光双控延时开关电路就相对容易些了。 电路简介 由金属导线和电气、电子部件组成的导电回路,称为电路。在电路输入端加上电源使输入端产生电势差,电路连通时即可工作。电流的存在可以通过一些仪器测试出来,如电压表或电流表偏转、灯泡发光等;按照流过的电流性质,一般把它分为两种:直流电通过的电路称为“直流电路”,交流电通过的电路称为“交流电路”。 电路分析方法盘点 1、直流等效电路分析法 在分析电路原理时,要搞清楚电路中的直流通路和交流通路。直流通路是指在没有输入信号时,各半导体三极管、集成电路的静态偏置,也就是它们的静态工作点。交流电路是指交流信号传送的途径,即交流信号的来龙去脉。 在实际电路中,交流电路与直流电路共存于同一电路中,它们既相互联系,又互相区别。 直流等效分析法,就是对被分析的电路的直流系统进行单独分析的一种方法,在进行直流等效分析时,完全不考虑电路对输入交流信号的处理功能,只考虑由电源直流电压直接引起的静态直流电流、电压以及它们之间的相互关系。 直流等效分析时,首先应绘出直流等效电路图。绘制直流等效电路图时应遵循以下原则:电容器一律按开路处理,能忽略直流电阻的电感器应视为短路,不能忽略电阻成分的电感器可等效为电阻。取降压退耦后的电压作为等效电路的供电电压;把反偏状态的半导体二极管视为开路。 2、交流等效电路分析法: 交流等效电路分析法,就是把电路中的交流系统从电路分分离出来,进行单独分析的一种方法 。 交流等效分析时,首先应绘出交流等效电路图。绘制交流等效电路图应遵循以下原则:把电源视为短路,把交流旁路的电容器一律看面短路把隔直耦合器一律看成短路。 3、时间常数分析法 时间常数分析法主要用来分析R,L,C和半导体二极管组成电路的性质,时间常数是反映储能元件上能量积累快慢的一个参数,如果时间常数不同,尽管电路的形式及接法相似,但在电路中所起的作用是不同的。常见的有耦合电路,微分电路,积分电路,钳位电路和峰值检波电路等。 4、频率特性分析法: 频率特性分析法主要用来分析电路本身具有的频率是否与它所处理信号的频率相适应。分析中应简单计算一下它的中心频率,上下限频率和频带宽度等。通过这种分析可知电路的性质,如滤波,陷波,谐振,选频电路等。 总结 以上是小编根据多年的学习、积累、摸索及实践并参考相关书籍及资料总结的几点电子电路原理图的识图方法,其中前面三种方法主要是分析具体电路的常用方 法,后面两种方法可供我们自学电路或进行教学时做以参考。这些方法有相通之处,即可以单独使用,也可以融会贯通。 当然,电子电路原理图的识图方法还有很多,如按照信号的流程和变化、先找熟悉的元器件或电路、化特殊为一般等,我们可以根据具体电路和个人识图习惯来进行选用。另外,我认为要想更好的识读电子 电路原理图,还需平时多看、多读、多分析、多理解各种电路图,积累适用于自己的识图方法。当然也可以多阅读相关方面的书籍及资料,图见多了,分析起来必然 更加得心应手,同时还应多向有经验的同行请教学习,这些都可以不断提高自己的识图水平,使自己能够快速、准确地读懂电路原理图。

    时间:2018-05-02 关键词: 电子元器件 电源电路 电子电路

  • 详解基于GaAs PIN二极管的宽带大功率单片单刀双掷开关

    详解基于GaAs PIN二极管的宽带大功率单片单刀双掷开关

    PIN二极管广泛应用于限幅器、开关、衰减器、移相器等控制电路中。与MESFET和PHEMT器件相比较,PIN二极管具有插入损耗低、截止频率高、功率容量大的特点,特别适合于制作性能优异的宽带大功率控制电路。文献[1]就是采用GaAs PIN二极管制作了一款宽带大功率单刀双掷开关,但由于是混合集成电路形式,导致开关模块体积较大。 本文采用河北半导体研究所GaAs PIN工艺成功开发出一款宽带大功率单片单刀双掷开关。该单片开关集成了GaAs PIN二极管、电容、电感和电阻元件。在6~18 GHz范围内插入损耗(IL)小于1.45 dB,隔离度大于28 dB;在连续波输入功率37 dBm,12 GHz条件下测试输出功率仅压缩0.5 dB。由于采用单片制作工艺,在具有大功率处理能力的情况下又大大缩减了电路面积。 1 PIN二极管制作工艺 本论文的PIN二极管采用垂直结构。为使PIN二极管具有较好的微波特性,在进行材料外延生长时控制p+层、n+层的掺杂浓度大于2.5×1018,降低金属一半导体欧姆接触电阻;i层的厚度为3 μm,载流子浓度接近3×1014,使二极管的i层耗尽电容和功率容量达到一个最佳平衡点。图1为最终制作的GaAs PIN二极管结构图(a)和实物照片(b)。   2 单刀双掷开关电路设计 精确的模型是设计电路的基础。如图2所示,GaAs PIN二极管在正压偏置状态下等效为电阻Rp,负压偏置状态下等效为电容Cr和电阻Rn串联。其中Rp≈Rn,是p+层、n+层和i层正向导通电阻之和,Cr为i层反向偏置电容。在进行单片开关电路设计前先进行一次PIN二极管模型版流片。二极管分为串联和并联两大类,每类尺寸由小到大共有15种。通过在片测量提取每种二极管正、反两个偏置状态的S参数,建立了完整的PIN二极管小信号模型。   单刀双掷开关通常有串联式、串并联混合式、并联式三种结构。其中前两种结构中的串联PIN二极管会使开关电路在小功率状态下就开始压缩,要想制作大功率开关只能采用并联式结构。图3是并联式单刀双掷开关原理图。输入端口接一50 Ω微带线,C1是隔直电容,防止两个输出支路的偏置电压互相干扰;根据公式Zc=1/jωC,为了减小导通状态下的插入损耗,C1应具有很大的容值。偏置电压端口加负压,二极管D1处于反向偏置状态,等效为一小电容,D1、微带线L1和L2组成带通滤波器,整个支路处于导通状态;偏置电压端口加正压,D1处于正向偏置状态,等效为一小电阻,D1、微带线L1和L2组成的带通滤波器处于失配状态,把大部分输入功率反射回去,整个支路处于隔离状态。电感L、电容C2和微带线L3组成输出匹配电路。整个开关电路采用AdvancedDesign System软件、原理图仿真与电磁场仿真相结合的方法进行设计。   3 小信号与功率特性测试 图4为经过加工后的芯片照片,芯片面积为2.3 mm×1.4 mm。图5为微波在片测试系统框图。在±5 V条件下,经过微波在片小信号测试,该单刀双掷开关在6~18 GHz内尼<1.45 dB,隔离度(ISO)大于28 dB,输入输出驻波在6~14 GHZ内大于10 dB,在14~18 GHz内大于7.5 dB。图6为小信号测试曲线。   开关的微波功率特性需要把芯片装入夹具中进行测试。图7为装配完成的开关被测件。图8为功率测试平台框图,信号源提供的连续波信号经过行波管放大器放大加在开关的输入端口,隔离器防止放大器被开关反射回来的功率烧毁,开关的输出端口接衰减器,用来保护功率计探头,通过功率计可以得出开关的功率特性。图9为12 GHz条件下功率特性测试曲线,可见在37 dBm出功率仅压缩0.5 dB。     4 结论 本文报道的宽带大功率单片单刀双掷开关芯片是在河北半导体研究所工艺流片完成的。在±5 V条件下、6~18 GHz内测试插入损耗小于1.45 dB,隔离度大于28 dB,反射损耗大于7.5 dB,12 GHz频点测试P1dB大于5 W。在4英寸(100 mm)的晶圆上开关成品率达到70%以上,具有非常好的工程应用前景。

    时间:2018-04-19 关键词: pin 二极管 电源电路 gaas 单刀双掷开关

  • 详解电动摩托车中电源管理设计方案

    详解电动摩托车中电源管理设计方案

    想象一下:在晴朗夏日,您骑着摩托车在高速路上飞驰,阳光洒在脸上,头发在风中飞舞。当人们想到摩托车时,很多人脑海中会浮现这样的画面,而不会立即考虑摩托车有多创新,尤其是赛车。 Brammo Motorsports 是总部位于美国俄勒冈州的领先电动车技术公司,该公司已走在大功率电池创新的最前沿。Brammo 始终致力于设计和开发电动汽车,包括获奖的 Enertia® 和 Empulse®。他们实际上正在构建一些比汽油动力摩托车更环保的最高性能电动摩托车。 电池管理技术将不断改善各公司利用大功率电池进行创新设计的方法。如今,大功率电池已经广泛应用于从电动工具及吸尘器机器人到叉车和电网能源存储系统等各个方面。 Brammo 的高端型号 Empulse R 是一款具有跟踪控制赛车血统的街车电动摩托车。其 Parker GVM 电机可提供精确的扭矩与速度,支持 54hp/6,000rpm 的输出功率和 66lb-ft 的扭矩。Empulse R 最高时速超过 100mph,被评论者描述为“具有与内燃机车型完全相同的介入性能,而且还增加了内燃机车型永远达不到的驾驶感觉。”   传动系统的动力来源是 Brammo Power™ BPM1590 电池组,这款 10kWh 的高容量锂离子电池可在城市与公路综合路况下实现 77 英里的续航里程。它的镍锰钴氧化物电池可保证至少 1,500 个充电循环,能在 4 小时内完全充满。BPM1590 的核心采用 TI 最新电池组管理 IC,其不仅可对电池的关键参数(电压、电流和温度)进行持续监控,而且还可在必要时停止充放电,从而可确保安全的客户体验。   电池管理电路中的专利型Impedance Track™ 电量监测算法不仅可监视电池单元加入和消耗的能源数量,同时还可计算温度与电池老化等因数,从而可精确报告剩余里程。我们的电量平衡技术可保持电池中所有独立单元总是处于相同电量水平,确保在经过一段时间后不会出现某个单元电量比其它单元弱的情况,从而可最大限度延长摩托车的使用寿命。这一切将为最终用户带来愉快、兴奋和高度可靠的驾驶体验。

    时间:2018-04-19 关键词: 电源管理 设计 电源电路 电动摩托车

  • 智能化快速充电系统设计详解,快速充电有怎样的机理?

    1.前言 自1859年法国物理学家普兰特(Plante)发明了铅酸蓄电池至今已有140年的历史。铅酸蓄电池有着成本低,适用性宽,可逆性好,大电流放电性能良好,单体电池电压高,并可制成密封免维护结构等优点,而被广泛地应用于车辆启动、邮电、电力、铁路、矿山、采掘、计算机UPS等各个领域中。蓄电池也是国民经济以及国防建设的重要能源,在许多行业的发展中,也迫切需要容量大、循环寿命长、充电时间短、价格低的蓄电池。而快速充电技术也成为了其中的关键技术,它对电池的使用有着非常重要的影响。目前,国内外都在不断地研究这一技术,而在快速充电技术中引入计算机控制,是非常有效的,且有着非常明显的经济效益。而单片机又以其低廉的成本,灵活的控制方式而得到业界的青睐,本系统就是以AT89C2051单片机为核心,集测量与控制为一体的智能化快速充电系统。 2.快速充电的机理 铅酸蓄电池快速充电技术是在常规充电技术的基础上发展起来的,不论采用何种充电制度进行充电,铅酸蓄电池充电的成流过程都要遵守双极硫酸盐化理论,即其化学反应方程式为: 按常规充电法,充电电流安培数,不应超过蓄电池待充电的安时数。这样,才可保证在整个充电过程中,产生气体和温升的状况符合要求。因此,常规的蓄电池其充电方法都采用小电流的恒压或恒流充电,充电时间长达10至20多个小时,给实际使用带来许多的不便。为了缩短电池的充电时间,国内外一直都在不断地研究和开发快速充电方法和技术。 1967年美国人麦斯(J. A. Mas)提出了蓄电池充电的三个定律后,这些理论就成为了我们研究快速充电技术的基础。蓄电池有着如下的充电特性: (1)蓄电池充电接受能力随放电深度而变化。如果以相同大小的电流放电,则,放出电量越多,充电接受率α越高,充电接受电流越大。即有如下关系: I0——开始充电时的最大初始电流值。 C——放电容量。 K——常数,可由实验求出。 (2)对于任何给定的放电深度,充电接受率: 又因I0=αC,所以 Id——放电电流。 常数K和k可由实验得出。 上式表明,蓄电池的充电接受率取决于它的放电历史,以小电流长时间放电的蓄电池,充电接受率低,相反,以大电流短时间放电的蓄电池,充电接受率高。 (3)一个蓄电池经几种放电率放电,其充电接受电流是各个放电率下接受电流之和。即:  It = I1+I2+I3+…… 同时服从: It——总接受电流。 Ct——放出的总电量。 αt——总的充电接受率。 放电可使全部放掉的电量Ct增加,同时也使总的充电接受电流It增加。因此,蓄电池在充电前或充电过程中适当地放电,将会增加充电接受率αt。 按照麦斯理论,我们对充电过程中的充电电流进行实时控制,即用大电流充电,并在充电过程中,短暂地停止充电,在停充期间加入放电脉冲,打破蓄电池充电指数曲线自然接受特性的限制。但是,理论和实践证明,蓄电池的充放电是一个非常复杂的电化学过程,由快速充电的电化机理可知,影响快速充电的重要因素是蓄电池的电极极化现象,这是一切二次电池所共有的,包括有欧姆极化、浓差极化和电化学极化。而蓄电池的电极极化现象,又可以通过在充电过程中适时加入放电脉冲来消除。因此,要实现快速充电,就需要多方面的控制,其控制特点为: (1) 多变量——诸如要控制蓄电池内的温度、充电电流的大小、充电的间隔时间、去极化脉冲的设置等。 (2) 非线性——充电电流应随充电的进行而逐渐降低,否则,会造成出气和温升的增加。 (3) 离散性——随着蓄电池的放电状态、使用和保存历史的不同,即使是相同型号、相同容量的同类蓄电池的充电情况也不一样。 对于如此复杂的充电过程,使用传统的充电电路显然难以控制,因此,也影响了快速充电的效果。为了能更有效地实现快速充电,必须使用先进的控制手段,我们利用单片机构造了一个具有自动检测功能的蓄电池充电实时控制系统。根据蓄电池快速充电的机理,对充电的电池进行实时的动态检测,适时发出去极化脉冲及调整充电电流,力求以较高的充电平均电流进行充电,而且还能有效地抑制气体的析出。从而达到快速充电的目的。 3.智能充电系统的构成 本系统以AT89C2051单片机为核心,它是高性能的8位CMOS单片微型计算机。片内带有2K可重编程的Flash EPROM,足够存放一般的控制程序;具有丰富的I/O控制功能;片内带有2个16位定时器/计数器;多个中断源;一个精密模拟比较器。它对许多嵌入式控制应用提供了一种高度灵活和低成本的解决办法。 该系统包括几个主要部分: (1) 以AT89C2051单片机作为整个智能充电系统的控制核心,用于数据的处理、计算及输入输出控制。 (2) 电压检测电路 由RC电路与AT89C2051单片机的内置积分模拟比较器组成,用于电池电压的实时检测,该电路同时将检测到的模拟电压转换成数字量提供给计算机处理。 (3) 去极化放电电路 由RC放电回路与MOSFET电子开关组成,电池的充电状态信息经单片机处理后,根据需要经由AT89C2051的I/O口适时发出去极化脉冲,控制开关闭合接通放电回路,以消除电池的极化现象,也可以消除某些电池的不良记忆,提高它的充电接受率。 (4) 充电控制电路 采用输出电压在一定范围内可调节的高频开关式充电电源。并且加入适度的电流负反馈,使输出特性变软,避免充电器在加载瞬间的电流冲击,并具有一定的恒流作用。 (5) 状态显示电路 状态显示电路由不同的指示灯组成,根据不同的工作状态由单片机控制显示充电中或充电结束状态。 4.系统软件设计 本系统软件使用MCS-51汇编指令编写,并固化于片内的程序存储器中,使用极为方便。

    时间:2018-04-19 关键词: 快速充电 综合电路 智能充电系统

  • 手把手教你如何分析看门口电路

    手把手教你如何分析看门口电路

    在工业控制中常使用MCS-51系列单片机,为了防止程序跑飞往往外接一个看门狗电路。看门狗电路可完成加电复位和死机复位两种功能。成品的看门狗集成电路如MAX813L等价格一般都较高。现介绍一种由通用数字电路CD4011组成的廉价的看门狗电路。     上图是由与非门CD4011组成的看门狗电路,图2为有关引脚波形图。由上图可以看出,在不考虑1脚的喂狗信号的情况下,三个与非门A、B、C、串接成一个环路。由于VD1、R2、C2、和R3、C3两组延时电路的作用,它们将组成一个振荡器。平时与非门A的2脚为高电平(见后面喂狗信号引起VDI、R2、C2充放电的说明),10时刻的喂狗信号(高电平至低电平的跳变)经R1、C1微分后送到1脚,其输出3脚变为高电平,经VDI给C2充电,C2很快充满至5V。与非门B的输入端5脚和6脚为高电平,输出端4脚为低电平。在喂狗脉冲沿过去后的t1时刻,1脚恢复为高电平,3脚变为低电平,该低电平经R2给C2放电,放电速度远远慢于充电速度。当C2电压由5V降到约为2.5V时与非门B的4脚将由低电平变为高电平。正常工作时在4脚变为高电平之前又有新的喂狗信号到来,3脚又变为高电平,C2又迅速充满到5V。因此4脚一直保持为低电平,与非门C的10脚则一直保持为高电平。一旦喂狗信号丢失,4脚将在延时一段时间(t2-t0‘)后的12时刻变为高电平,此高电平即为CPU复位。 该高电平还经R3、C3延时,使与非门C的输入端8脚和9脚在t3时刻变为高电平,输出端10脚变为低电平。接着引起2脚为低电平,3脚为高电平,C2迅速充电。在14时刻C2电压超过2.5V,5脚和6脚变为高电平,4脚变为低电平。C3放电,经R3、C3延时,在t5时刻8脚变为低电平,10脚恢复为高电平,3脚恢复为低电平。这样,在没有喂狗信号时4脚将输出周期l00ms、宽度约5ms的正极性脉冲串复位信号。复位信号的宽度决定于R3、C3,周期决定于R2、C2,与非门C的10脚将输出负极性脉冲串复位信号。在上电瞬间由于C2和C3的初始电压都为零,5脚、6脚、8脚和9脚都为低电平,4脚则为高电平为CPU复位。大约5ms之后8脚和9脚变为高电平,接着10脚变为低电平,3脚高电平,C2迅速充满,4脚变为低电平,经R3、C3延时10脚再恢复为高电平,上电复位过程结束。该电路在多种MCS-51系列单片机中使用效果良好。为了验证该电路的可靠性,可在通电情况下将IC1的1脚对地短路,即停止喂狗信号,用示波器测量4脚和10脚的波形,即可看到如下图所示的复位信号波形。     目前CD4011市场价约为0.6元,lN4148为0.05元,电容为0.04元,电阻为0.01元。该看门狗电路元件成本不足0.9元。看门狗集成电路MAX813L市场价约为6元,SP706S约为5元。显然该电路的成本远低于单片看门狗集成电路。CD4011多余的一个与非门还可以作为它用。     上图是一个电视选台器的实物。该电视选台器内有开关电源、射频放大器、频率合成一体化电视调谐器和控制电路等。控制电路的CPU选用AT89C2O5l、存储器AT24CO2、信号检测使用LM567。看门狗电路使用的即是前面介绍的由CD4011组成的电路。

    时间:2018-03-29 关键词: 集成电路 芯片 电源电路 微电路

  • 分享9种实用开关电源应用案例

    分享9种实用开关电源应用案例

    应用实例(1): 一种简单的三段式铅酸电池充电器控制电路   一种简单的三段式铅酸电池充电器控制电路     本PCB文件是由上图原理(没有继电器电路)设计的12V/4A简单的三段式充电器。   应用实例(2) 简单的单颗TL431限流恒压控制方法   ●当电流增大时TL431-1的电位被太高,从而起到现在电流的功能,因为R3的存在对输出电压进行了补偿.所以基本上可以做到限流稳压功能为一体, 具有相对的成本优势. 应用实例(3) 一种低压氙气灯电源启动电路   ●此电路是一个限制输出功率的半桥电路,利用电容限制电流的方法。(调节VR2可以得到不同的启动电压值,调节VR1可以得到不同的输出电流来匹配不同的低压氙气灯的搭配). ●输出两个绕组,第一个是能够提供27V30A的主绕组,第二个是能够提供140V启动电压,经过串联在整流二极管前面的电容来限制启动机电流<0.5A电流的。当开机时输出电压根据辅助绕组的反馈电压,开环状态启动绕组电压被限制到140V左右,氙气灯在高达140V电压立即启动后,由于高压绕组的串联电容存在,这个电流无法高起来。而一旦氙气灯启动,此电压被迫同步拉低到主绕组电压27V左右,因为前端互感器电流采样使得输出功率受限制,所以27V的电压不会被抬高。 ●因为串联电容限制电流达到同步启动的方法使得电路必须工作在固定频率下,而输入电压范围也不能偏差太高。一般在5%范围内变化不会影响氙气灯的正常工作。 ●此电路的特点就是有效解决同步启动的问题,实现自然同步比软件控制更为可靠。 ●氙气灯的启动特点就是要求必须完全同步,如果电压低就无法启动。但一旦启动后电流就必须在电流上来的同时电压要降低到24V-28V,过高就会出现灯管爆炸的危险,电流低于25A就会熄灭。而熄灭后不能立即重新启动。应用这一方法得以有效且低成本的满足要求。 应用实例(4) 一种波形比较理想的变压器隔离驱动电路   波形比较理想的变压器隔离驱动应用实例   应用实例(5) 偏小变压器反激开关电源设计之参考建议本案例是EC-2828变压器全电压输入,输出功率60W。   EC-2828变压器全电压输入,输出功率60W。   ●对于偏小磁芯变压器的设计:主要有磁芯Ae面积偏小的问题,将会带来初级圈数偏多的现象。可以适当提高工作频率,本案例工作频率在70KHz-75KHz。由于圈数偏多初次级的耦合将会更有利。所以VCC绕组电压在短路瞬间会上冲到比较高的状态,本案例原理图上有可控硅做过压保护功能。而后因为次级绕组的短路耦合到VCC绕组使其电压降低到IC不能启动这个过程是可以实现的。 ●要做到以上特性:VCC绕组线径必须要小,我个人一般取0.17mm以下,小于0.12会很容易断。这样小的线径谈不上节约铜材,但是可以利用铜线的阻抗来代替很多设计人员习惯在VCC整流二极管上串联小阻值电阻的功能,而且这个利用线圈本身的阻抗对交流的抑制能力在本案例当中更有效,可以防止瞬间冲击而损坏后级电路的功效。 ●初级与次级主绕组必须是最近相邻的绕组,这样耦合会更有利。 ●开关电源在MOSFET-D端点工作时候产生的干扰是最大的(也是RCD吸收端与变压器相连的端点),在变压器绕制时建议将他绕在变压器的第一个绕组,并作为起点端,让他藏在变压器最里层,这样后面绕组铜线的屏蔽是有较好抑制干扰效果的。 ●VCC绕组在计算其圈数时尽量的在IC最低工作电压乘以1.1倍作为误差值,不用考虑铜线的压降,因为启动前电流是非常小的,所以这个电阻并没有多少影响,几乎可以忽略不计。而在电路未启动之前,由于高压端启动电阻的充电,可以将VCC上电容上的电压充到IC启动的电压,一旦电路有问题一下启动不了VCC由于绕组电压的预设值偏低。电路也是不会启动的,一般表现为嗝状态。 ●为何要按照IC的工作电压低端取值?因为我们次级绕组是与初级绕组相邻绕制的,耦合效果相对而言是最好的。我们做短路试验也是做次级的输出短路,因为耦合效果好,次级短路时VCC在经过短暂的上冲后会快速降低,降到IC的关闭电压时电路得到最好的保护。需要注意这个电压需要高于MOSFET饱和导通1V以上,避免驱动不足。 [!--empirenews.page--]●还有利于降低IC本身的功耗,是否可以提高IC的寿命无法验证,但稳定性应该更高。 应用实例(6) 一种反激双路输出相对稳定的解决方案   具有相对稳定输出的双路反激输出电路   ●这种电路一般应用于小功率电源。为了确保两个绕组的交叉调整率更好。我们需要注意一些问题。 ●在本实例中,一般我们设5V为采样反馈端.如果双路采样交叉调整率可能会更差,甚至不能单独空载和独立带载问题.此方法得以解决这一问题,此方法不太适合两组电压相差遥远的应用.会多占用变压器一脚. ●反馈光耦供电用12V供电,且取样点在后级滤波电感前面更好。因为滤波电感前的波动更快的反映前端PWM的调制状态,就算TL431的开启程度是一定的,因为12V的波动可以让光耦上反馈到的电流有微小的差异,在反馈环路一定的情况下,这个光耦供电取样点的选择更有利于动态响应和调整率的平衡控制。 ●12V绕组应该放在更接近于初级绕组的地方。这样更有效的确保12V的电压变化比例更小,因为我们反馈采样的是5V端,所以难控制的是12V的绕组。综合这些将可以更好的控制这两个绕组的平衡度。虽然不能做到绝对的好,但是相对的来说是有一定参考价值的。 ●上页所述的样板基本可以控制到+/-5%范围的误差,属于可接受的范围,建议喜欢动手的朋友不妨试一下。 应用实例(7) 应用于功放的正负输出电源欠压式短路电压保护控制电路   说明:功放电源正负双输出电压保护 ●由Q1构成正电压欠压式短路保护电路 ●当正电压短路时,电压降低于稳压二极管加在Q1驱动分压电阻分压后让Q1导通,即可送出保护信号。 ●由Q2构成负电压欠压式短路保护电路 ●当负电压短路时,电压升高至串联于Q2基极上稳压二极管,使Q2截止时,Q2集电极上的电压信号经过D2即可送出保护信号。 ●Q3是作为保护的指示灯驱动电路。 ●这个电路在实际应用中需要做到对供电的VCC在正负电压从开机到启动正常这段过程的延时,否则开机时就有保护信号,导致无法正常开机。如果需要锁死可以用输出保护信号驱动一个由三极管构成的可控硅锁死电路来实现。   具有正负双输出电压保护的功放电源PCB   应用实例(8) 用LM358实现LED输出端限流稳压PWM调光控制   ●此例应用是将PWM信号直接加在电流采样信号上,通过调节PWM的宽度来调制过电流保护信号的时间,而起到调节限制电流的功能的。 ●需要注意的事情是PWM需要倒相输入,就是说占空比越小的时候LED上施加的电流越大。占空比越大时LED电流越小。 应用实例(9) 一款带带功率因数补偿的50W LED驱动电路   带功率因数补偿的50W LED驱动PCB    

    时间:2018-03-23 关键词: 开关电源 电源电路 应用案例

  • 关于有极性电容和无极性电容问题

    关于有极性电容和无极性电容问题

    在网上搜索到一种说法:“以把两个电解电容阳极或阴极相对串连形成无极性电解电容”。我对这一说法不理解,电解电容一般是有极性电容,如果把两个电解电容的阳极或阴极相对串联形成无极性电容,那么给这个串联后的电容加一个电压,肯定会有一个电解电容两端的电压和它的极性是相反的,这样不会击穿吗?希望大侠们能帮忙解释下,谢谢! 无极性电解电容很容易买到的啊,我们公司就有用到,当然是正规厂家的正规产品。 当然,内部肯定不会是“两个电解电容封装在一个外壳里”,而是采用两层蚀孔氧化铝箔罢了。 ——如果你拆过电解的话就会发现:电解中的两层铝箔是不一样的:一层是很薄且很光滑的,另一层是很厚而且表面很粗糙的,而后者实际上是经过腐蚀、氧化的,而绝缘介质就是它上面的那层氧化膜。 由于两层铝箔结构不同,所以才有极性;而只要把两层铝箔都用腐蚀氧化的铝箔,那就是无极性的电解了。 至于:“以把两个电解电容阳极或阴极相对串连形成无极性电解电容”,这是对的。 ——因为电容反接后漏电电流大是因为氧化膜反向绝缘电阻小,所以才会漏电电流大,最后因为漏电电流发热大而让电解质加热膨胀、甚至烧开,然后电解质蒸发干失效、或者直接撑爆外壳而爆浆。而当两个电解电容反向串接后,就好像两个二极管反向串接,任何一个反方向下,由于反向电阻小的分压也小,电压降会绝大部分落在正接的那个上面,所以两个电容都不会过热。而总体绝缘电阻,不管那个方向当然都会比单独一个电阻大。   当然,必须用两个一样的电容反接,不能差别太大,否则也还是会粗问题的! 为了安全,这种方法只适合于低电压小能量的耦合场合,高压下千万不要这么干。 而且它的前提(原理)就是电解电容的正向电阻远远大于反向电阻,否则也是不能这样用的。 这个问题,需要将电路加电后如何工作分成暂态和稳态来考虑。 假定施加交流电压之前两个电解电容正极对正极,两个电解电容均并联二极管,二极管负接电容正(最好你自己画出来便于分析)。两个电容一左一右放置,两个电容上均没有电压。 假定上电时交流电压极性为左正右负,那么左二极管导通,给右电容充电。下半周期左负右正,右电容放电给左电容充电。此过程一直进行到两个电容两端电压都等于交流电峰值时为止。 其后,两个二极管均不能导通(交流电压加上电容电压最大到零),在电路中不起什么作用。那么两个电容串联,总容量等于每个电容容量之半。 然后拿掉两个二极管,考虑xwj所说“电解电容的正向电阻远远大于反向电阻”,这实际上与电容并联“不好”的二极管或二极管再并联一个电阻是一样的。除了电容的正向电阻会使电容少量放电外,其余都与并联二极管相同。因为正反电阻不同使电容充电比放电快,故稳态时两个电容两端电压仍可保持接近交流电压峰值。 两个电解电容负极对负极联接,完全相同。 注意两个电解电容负极对负极联接,现在有四个电极(二正极在外二负极在内),两层介质,一条导线。把两负极和一层介质还有导线去掉,剩下两正极和一层介质,这就是无极性电解电容的构造。 看了maychang前辈楼上的解释还是有些不明白。您说的“直进行到两个电容两端电压都等于交流电峰值时为止”,这时候其实两个电容的电压方向是相反的,如果把这两个电容串联的起来当作一个电容的话,那么这个总电容的带电量是0 。如果不考虑交流的情况,只考虑直流的情况,那用您的“并联二极管”的方法来分析,似乎只有一个电容能被充电,也就是说,串联后的总电容还是和正接的那个电容容量相同。 “只考虑直流的情况” 纯直流根本不考虑电容,当做开路。需要考虑电容,必是直流上面叠加了交流成份。 你应该用直流上面叠加了交流成份的信号,根据并联二极管的模型,考虑电路达到稳态的情况。达到稳态,就是两个二极管均不导通,没有电流通过二极管。提示:此时两个二极管中的一个充电到信号峰值,即直流成份再加上交流成份的峰值。此时总容量仍为单个电容之半。

    时间:2018-03-20 关键词: 问题 电源电路 无极性电容 有极性电容

  • 电源产品设计,如何对传导功耗进行折中处理

    电源产品设计,如何对传导功耗进行折中处理

    我们将研究在同步降压功率级中如何对传导功耗进行折中处理,而其与占空比和 FET 电阻比有关。进行这种折中处理可得到一个用于 FET 选择的非常有用的起始点。通常,作为设计过程的一个组成部分,您会有一套包括了输入电压范围和期望输出电压的规范,并且需要选择一些 FET。另外,如果您是一名 IC 设计人员,则您还会有一定的预算,其规定了 FET 成本或者封装尺寸。这两种输入会帮助您选择总 MOSFET 芯片面积。之后,这些输入可用于对各个 FET 面积进行效率方面的优化。   图 1 传导损耗与 FET 电阻比和占空比相关 首先,FET 电阻与其面积成反比例关系。因此,如果为 FET 分配一定的总面积,同时您让高侧面积更大(旨在降低其电阻),则低侧的面积必 减小,而其电阻增加。其次,高侧和低侧 FET 导电时间的百分比与 VOUT/VIN 的转换比相关,其首先等于高侧占空比 (D)。高侧 FET 导通 D 百分比时间,而剩余 (1-D) 百分比时间由低侧 FET 导通。图 1 显示了标准化的传导损耗,其与专用于高侧 FET 的 FET 面积百分比(X 轴)以及转换因数(曲线)相关。很明显,某个设定转换比率条件下,可在高侧和低侧之间实现最佳芯片面积分配,这时总传导损耗最小。低转换比率条件下,请使用较小的高侧 FET。反之,高转换比率时,请在顶部使用更多的 FET。面积分配至关重要,因为如果输出增加至 3.6V,则针对 12V:1.2V 转换比率(10% 占空比)进行优化的电路,其传导损耗会增加 30%,而如果输出进一步增加至 6V,则传导损耗会增加近 80%。最后,需要指出的是,50% 高侧面积分配时所有曲线都经过同一个点。这是因为两个 FET 电阻在这一点相等。   图 2 存在一个基于转换比率的最佳面积比 注意:电阻比与面积比成反比 通过图 1,我们知道 50% 转换比率时出现最佳传导损耗极值。但是,在其他转换比率条件下,可以将损耗降至这一水平以下。附录 1 给出了进行这种优化的数学计算方法,而图 2 显示了其计算结果。即使在极低的转换比率条件下,FET 芯片面积的很大一部分都应该用于高侧 FET。高转换比率时同样如此;应该有很大一部分面积用于低侧。这些结果是对这一问题的初步研究,其并未包括如高侧和低侧FET之间的各种具体电阻值,开关速度的影响,或者对这种芯片面积进行封装相关的成本和电阻等诸多方面。但是,它为确定 FET 之间的电阻比提供了一个良好的开端,并且应会在FET选择方面实现更好的整体折中。 下次,我们将讨论如何确定 SEPIC 所用耦合电感的漏电感要求,敬请期待。  

    时间:2018-03-19 关键词: 电源电路 电源产品 传导功耗 折中处理

  • 开关电源设计中,环路分析可以用来做什么?

    开关电源设计中,环路分析可以用来做什么?

    可靠性是开关电源设计的核心。虽然工程师希望通过环路分析来判断开关电源是否稳定,但是昂贵的环路分析仪令人望而却步,不少企业只得放弃了这项测试。能否用示波器跨界取代环路分析仪呢?突破源自内心的渴望,唯有专业·专注才能实现梦想! 环路分析可以用来做什么? 在开关电源、运放反馈网络中,环路分析可以测量系统的增益、相位随频率变化的曲线(伯德图),分析系统的增益余量与相位余量,以判定系统的稳定性;在被动器件的阻抗分析中,环路分析可以观察电容、电感的高频阻抗曲线,测量电容ESR等。以前这些测试都需要通过昂贵的专业环路分析仪来实现,而现在,一台示波器足矣! 环路分析的测试原理主要是给开关电源电路注入一个频率变化的正弦信号,测量开关电源在频域上的特性,通过分析增益余量和相位余量来判断环路是否稳定,可以为电子工程师设计稳定的控制电路提供直观的数据。环路分析的测量方式可以大大减少环路稳定性的验证周期,而且具备直观的波形曲线图显示,方便观察和分析。 具体如何分析? 软件扫频测试结果显示界面如图1.1所示:   图1.1 环路测试扫频界面 数据报表可直接导出,支持网页报表“html”和“CSV”两个数据格式,如图1.2所示为导出的CSV数据报表文件的截图示例。同时,该软件还支持波形原始数据文件的导出和导入。   图1.2 CSV格式数据报表示例 环路分析具体支持哪些功能? 支持同步测试和异步测试 支持扫频测试模式和单点测试模式 支持多种测量选项:增益-相位(FRA)、阻抗-相位、幅值-相位、THD-相位 支持正向和反向放大器,相位范围可选[-180°~180°]和[-360°~0°] 支持开启硬件滤波,支持低通滤波和带通滤波 支持光标测量,自动PM/GM测量 支持相位校准,以及校准参数的导入导出 扫频模式的频率范围可选从10Hz到30MHz 单点模式支持自动和手动方式 扫频模式的每种测量方式支持存储8个暂存波形,并且自动存储 所有存储波形支持重命名、设置描述信息、显示隐藏、相位校准、查看数据、指定存储通道波形数据的导入导出,清除指定存储通道波形的数据,同时可指定显示某个存储通道的波形或显示、隐藏所有存储通道波形 测试结果数据的导出,导出的数据类型支持html和CSV 独特的环路界面显示,多种一键操作

    时间:2018-03-19 关键词: 开关电源 电源电路 环路分析

  • 如何通过技巧快速进行选型?电源设计浅谈

    如何通过技巧快速进行选型?电源设计浅谈

    电容是开关电源中的再普通不过的器件,它可以用来降低纹波噪声,可以用来提高电源的稳定性以及瞬态响应性,然而,电容的种类繁多,如何通过技巧快速进行选型,而产品可靠性又高,性能又稳定呢? 1、电容种类的了解 对电容种类的大致了解,在选择电容时有助于对电容种类的快速筛选。 电容种类较多,如图1所示,按封装分有贴片电容、插件电容,按介质分有陶瓷电容,钽电容,电解电容、云母电容、薄膜电容等,按结构形势分,有固定电容、半固定电容、可变电容。   图1 常见的电容类型 电容种类的繁多,让人容易患选择综合症,但不用忧虑,在开关电源中,我们使用最多的就是陶瓷电容,电解电容和钽电容,了解了电容的种类接下来是了解电容的一些性能参数。 2、电容关键参数的认识 了解电容的内在关键参数,才能快速选型,可靠使用,所有的电容的关键参数都是一样的,包括电容容值、电容的耐压值、电容的ESR、电容容值精度、电容允许的工作温度范围。 3、开关电源中电容的选型要了解电容本身特性 在开关电源设计中,使用频率最高的电容是陶瓷电容、电解电容、钽电容,需要了解它们的特性差异才能快速的进行选择。 陶瓷电容容值较小,高频特性好,工作温度范围较广,ESR较电解电容小,体积小,没有极性; 电解电容容值可以做大,但工作温度范围较窄,ESR较大,有极性; 钽电容ESR最小,容值可比陶瓷电容大一些,有极性,安规性能差,容易起火。 了解了以上三种电容的特性,在使用它们的时候就可以游刃有余。 4、开关电源中电容的选型还要了解使用环境 电容的使用环境还分电路内部环境和电路外部环境,电路内部环境包括频率、电压值、电流值、电容在电路中的主要作用等;根据电路频率可以确定电容种类;根据电压值可以确定选型电容的耐压值;在电路中的主要作用可以用来参考选型电容的容值等;根据电路外部使用环境对电容进行选型,产品工作的环境温度,安规要求等,都可以用来缩小电容选择范围。电容的选型不当,在应用中会出现爆浆、电解液干涸等现象,最终导致电源失效。如下图2所示。   图2 电解电容损坏 5、开关电源中部分电路电容选型举例 (1)吸收电路的电容选型,如下图3所示,在开关电源中,在MOS管或二极管上并联电容吸收尖峰是很常见的电路,那么这颗电容该如何去选择呢?首先,考虑电路环境,即电容上可能承受的最大电压应力,可以确定电容的耐压值选;其次,作为吸收电路,容值不能太大,太大会影响整机效率,故容值一般使用PF级别电容,电容的高频特性要好,根据这些特点,选择陶瓷电容是最理想的;然而陶瓷电容还分NPO,COG材质,根据温度特性还分X5R、X7R等,无需愁,只要了解了电路环境对使用电容的精度要求及温度要求,这些都可迎刃而解,在这种吸收电路中,对电容精度要求不高,一般的COG材质的电容可以满足。   图3 吸收电路电容应用 (2)启动电路,以芯片3843为例,用RC启动,如图4所示,C值一般用到uF级别的电容,且温度特性要好,要不然在温度变化时,容值不够,会启动不良,在此可以选择钽电容和陶瓷电容;但是,钽电容有一个问题就是不符合安规要求,如果要过安规认证,就只能选择陶瓷电容。   图4 启动电路电容应用 (3)滤波电路电容选择,已常见的滤波电路为例,见图5,根据电路中电容两端电压确定耐压值,如输出电压24V,就不能选择15V或是25V耐压值的电容,电路中最大电流可以用来确定容值,电流大需要得到更小纹波,就要选择大容量的电容,滤波电路中,电容值可以用纯陶瓷、纯电解电容,或是电解电容混合陶瓷电容一起使用。   图5 滤波电路电容应用 6、汽车级电源使用电容选型举例 汽车级电源电容选型就涉及到使用环境对电容的筛选,汽车级电源工作环境温度较一般的工业级电源要求高,工作温度要求达到125℃,所以电容选型是要选择温度特性好、耐高温、安规性能好的电容。 小结: 电容的选用技巧无非就是了解常用的几种电容特性以及电容在电路中的应用环境、产品使用环境特性,在设计电源时,有上述几个角度出发考虑电容的选型,如果选用成品电源,不管是模块电源、普通开关电源、电源适配器等,这部分的工作一般都由电源设计厂家完成。 ZLG致远电子自主研发、生产的隔离电源模块已有近20年的行业积累,目前产品具有宽输入电压范围,隔离1000VDC、1500VDC、3000VDC及6000VDC等多个系列,封装形式多样,兼容国际标准的SIP、DIP等封装。同时致远电子为保证电源产品性能建设了行业内一流的测试实验室,配备最先进、齐全的测试设备,全系列隔离DC-DC电源通过完整的EMC测试,静电抗扰度高达4KV、浪涌抗扰度高达2KV,可应用于绝大部分复杂恶劣的工业现场,为用户提供稳定、可靠的电源隔离解决方案。  

    时间:2018-03-19 关键词: 电源电路 选型 电源设计 技巧快速

  • DSP虚拟I2C软件包的应用设计案例

    DSP虚拟I2C软件包的应用设计案例

    数字信号处理器(DSP)在各领域中的应用已日趋广泛,其中TI(Texas Instrument)公司的TMS320系列芯片占据了主导地位。TMS320F206(简称F206)由于具有片内32K字的Flash,支持JTAG扫描端口的仿真调试,并支持程序的串行下载,便于开发设计及产品的软件升级,因而在中高档仪器开发中受到青睐。 DSP的处理速度虽然较高,但直接支持的I/O口线较少,控制能力相对较弱,因而与外部器件接口采用串行方式较为适合。常用的串行接口和串行总线有UART、I2C总线,由于I2C总线提供了较完善的总线协议,且接口电路简单,因而得到广泛的应用。目前,已有很多外围器件支持I2C接口,但多数MCU并不直接支持I2C总线,因而采用I/O口线模拟I2C的方式成为一种通用解决方案。但由于I2C总线协议的复杂性及操作管理的特殊性,仍给此类方式的开发造成了较大不便。好在文献中提出了一种按平台模式设计的、适用于80C51的虚拟I2C总线软件包,大大简化了80C51的I2C接口程序设计,使用户无需了解I2C总线协议的细节,即可实现相应的接口。文献中也给出了一种用于MSP430单片机的软件包。由于DSP尚无此类软件包,为简化DSP的此类I2C接口程序设计,本文参照文献中的设计原则,设计了一种适用于TMS320C2XX系列DSP开发的软件包。 1 虚拟I2C软件包的设计 根据文献中所提到的最佳包容性设计、后归一化设计、前归一化设计原则,软件包进行了如下定义。 (1)适用范围 ① 适用主发送和主接收方式。I2C总线有4种工作方式:主发送、主接收、从发送、从接收。因实际DSP多工作于I2C总线的主方式,因而软件包设计为主方式。 ② 适用TMS320C2XX系列与I2C总线外围器件的接口,支持对外围器件N字节的读写,通信方式为对虚拟节点寻址后点对点的读写。 ③ 模拟I/O口线可选择4根通用I/O口线(I/O0~ I/O4)中的任意两根。 (2)软件包结构设计 TMS320C2XX系列产品,基本包括4根通用I/O口线I/O0~I/O4(由于XF仅能作为输入口线,BIO仅能作为输出口线,因而暂不考虑)。它们的输入输出方向由ASPCR的低4位来设定,相应口线状态的设定或读取由IOSR寄存器控制。但此处DSP与80C51有所不同,口线的输入输出状态不是自动切换的,且ASPCR、IOSR寄存器都不支持位寻址方式,因而在进行I2C总线工作方式模拟时较为繁琐。为避免所用寄存器其它状态位的改变,需通过较多的与、或操作来改变指定I/O口线的状态,因而本软件包与80C51的虚拟I2C软件包结构稍有不同。当然,这些均在软件包内部完成,使用者不必了解具体细节,用户接口同样简单易用。 ① 软件包组成。为模拟I2C总线的操作时序,软件包中包括了2个宏定义和12个子函数。 (a)时序模拟子程序 Sendb--发送起始标志,启动I2C总线;senda--发送确认标志; Sendna--发送非确认标志;Sende--发送结束标志。 (b)操作模拟子程序 geta--接收确认标志;sendd--发送8位数据; getd--接收1个字节数据。 (c)数据读写子程序 wrnbyte--写入N字节;rdnbyte--读取N字节。 (d)其它宏及子函数 subsendd--根据标志位C设置模拟数据口线的状态;toggleclk--切换模拟时钟口线状态; Xdelay--延时子程序;Sdainm--将模拟数据口线A配置为输入口线; sdaoutm--将模拟数据口线配置为输出。 因DSP的工作频率一般远高于I2C总线的操作频率,因而这里需专用的延时子程序降低模拟时钟口线频率。本文所给出的源程序为F206采用40 MHz晶振时的情况,用户使用时可随实际情况调整延时时间。 ② 软件包符号定义。软件包中包括如下符号定义: VSDA、VSCL--分别定义了模拟数据口线和模拟时钟口线对应的屏蔽位,因DSP中对通用I/O口线的操作不能通过位操作来实现,因而仅能屏蔽位来定义,如采用IO3模拟数据线、IO2模拟时钟线,则可定义IO3为08h、IO2为04h; RAM0--为数据暂存用的临时存储单元; RIO--为用于保存I/O口线当前状态的存储单元; SLA--用于保存总线上节点地址并确定传输方向的存储单元; NUMBYTE--待发送或接收的字节数存储单元; MTD--发送数据缓冲区; MRD--接收数据缓冲区。 以上符号中RAM0、RIO、SLA、NUMBYTE为页内地址,与当前的页指针DP内容设置有关;MTD、MRD为绝对地址,与DP内容无关。 ③ 资源占用。使用了辅助寄存器AR0、AR1、AR2、AR6、ACC、ASPCR、IOSR等资源。 ④ 应用接口。软件包将wrnbyte、rdnbyte作为唯一的出口接口,用户仅需正确设置对应储存单元的内容,调用相应子函数即可: splk #SLAR/ SLAW,SLA;写入传输节点地址及传输方向 splk #N,NUMBYTE ;写入待传输字节数 ;若输出,设置输出缓冲区内容 call wrnbyte/rdnbyte 3 应用实例 3.1 器件相关功能简介 X1203是带时钟/日历电路和两个闹钟(报警)的低功耗CMOS实时时钟芯片。提供了双埠时钟和报警寄存器,在读写操作期间也能精确工作。其工作电压从2.5~6 V均可,工作电流小于1uA。时钟使用低成本的32.768 kHz晶体输入,以秒、分、时、日、星期、月和年为单位记录时间,具有闰年自动矫正功能,并对少于31天的月份自动调整;可通过设置中断标志按指定时间激活中断引脚,满足大多数用户对定时器编程的需要。该芯片引脚结构如图1所示(SOIC封装)。   其中SCL为时钟输入端,数据随该时钟信号同步输入器件或从器件输出。此引脚上的输入缓冲器始终激活。SDA端为双向引脚,用于串行数据的输入输出;具有漏极开路,可与其它漏极开路或集电极开路输出进行线“或”;需上拉电阻,与SCL引脚配合,可实现400 kHz的2线I2C接口。VBack为备用电源输入端,用于VCC出现故障时向器件供电。是中断信号输出端,可通过设置报警寄存器按指定时间在该端产生报警信号;漏极开路,低电平有效。X1、X2分别为反相放大器的输入、输出端;可在X1端接入32.768 kHz的方波基准,或在X1、X2端接入32.768 kHz的石英晶振,配置成片内振荡器,在初始上电后至少有一个字节写入RTC寄存器时,时钟才开始计数。[!--empirenews.page--] X1203中的时钟/控制寄存器(CCR)分5部分:2个8字节报警寄存器(Alarm0、Alarm1),1个1字节控制寄存器,1个8字节实时时钟寄存器和1个1字节状态寄存器。通过报警寄存器可设置报警发生的时间,控制寄存器可使能或禁止报警中断信号的输出,实时时钟寄存器以BCD码存储了秒、分、时、日、星期、月和年,状态寄存器中保存了用于报警状态标志位及读写使能状态位。其中状态寄存器设置决定着数据是否能成功地写入。该寄存器如表1所列。   BAT标识器件当前用VBack还是用VCC工作。AL1、AL0标识Alarm0、Alarm1是否实时时钟匹配。RTCF表示实时时钟是否失效,在总电源失效后该位置1。RWEL为寄存器写使能锁存,为0表示禁止,在任何写时钟/控制寄存器之前必须将该位置1。WEL为写使能锁存,低表示禁止,通过该位写1、其它位写0,可使该位置位;通过该位写0、其它位写0,可使该位清0。只有按规定顺序设置RWEL和WEL,才能成功写入CCR。 目前,很多DSP芯片尚不直接支持I2C的接口,F206也不例外,因而这里采用2根通用I/O口线模拟I2C接口。F206与X1203的接口采用如图2所示的接口方案。   图2中在X1、X2端接入32.768 kHz的石英晶振,将时钟源配置为片内振荡器。在VCC和VBACK之间通过二极管和电阻相连,并与地间加入1个0.47 F的大电容。这样,在电源出现故障或系统电源关闭时,仍可靠VBACK端的大电容供电维持时钟芯片的正常工作。它与F206间接口采用3根口线,这里采用IO2模拟通信用的时钟信号,IO3作为数据输入、输出口线。端可根据用户需要而定,若需要时钟芯片产生中断,可将该端接到F206的中断口线上。注意其中的SDA端和端为漏极开路,必须加上拉电阻,否则不能正常通信。 3.2 X1203的读写操作 这里仅给出F206对X1203进行读写的基本流程,如图3、图4所示,分别为对时钟芯片的读、写过程。其中进行寄存器写时,须注意SR寄存器中WEL和RWEL的设置是否正确,即首先设置WEL有效,而后将WEL、RWEL都置1,否则数据将不能正确写入。在写结束后,应将WEL、RWEL置为无效,以免产生误操作。     此外还须指出,在系统首次上电后(VBack和VCC都失效后),至少有一字节写入RTC寄存器时,系统才开始工作。在实际使用中,应首先判断SR中的RTCF位是否为1,若是,表明系统为首次使用或VBack和VCC都已失效,须对X1203至少进行一次写入操作,使其正常计数。     结束语 I2C总线应用已日益广泛,而其协议的复杂性和操作的特殊性又限制了推广速度。本文介绍的一种基于DSP的虚拟I2C总线软件包,简化了TMS320C2XX与I2C器件间接口程序设计,用户无需了解I2C总线协议的细节,仅需通过唯一的接口界面wrnbyte/ rdnbyte即可实现相应的接口。本文还给出了一个TMS320F206与时钟芯片X1203间的接口实例,介绍了软件包的使用方法,希望能供读者参考。

    时间:2018-03-19 关键词: DSP 软件包 dsp电路 虚拟i2c

首页  上一页  1 2 3 4 5 6 7 8 9 10 下一页 尾页
发布文章