电压改变了与频率与电压会改变吗

博客访问: 310378
博文数量: 102
博客积分: 3146
博客等级: 中校
技术积分: 2281
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: LINUX
低功耗研究也有一段时间了,基本把低功耗的实现方式想清楚了(主要分成机制和策略),这段时间的工作主要在机制上。暂时想实现的主要的机制有:级,设备驱动级,系统平台级。管理颗粒度不断递增,形成三驾马车齐驱的形势。
级:主要实现比较容易的在系统处于目标在于频繁发生、更高粒度的电源状态改变,主要的实现方式为,包括今天的主要想讲的动态主频。
设备驱动级:主要实现对单个设备驱动的管理(,等),通过系统监测将闲置的设备,通过从用户态对文件目录动态进行单个驱动设备的管理
,置于省电模式。
系统平台级:目标在于管理较大的、非常见的重大电源状态改变,用于减少产品设备在长时间的空闲之后,减少电源消耗。主要实现方式是依托内核所支持的技术,实现整个系统的睡眠恢复()
这几个层次其实并不是相互独立的,都是相互交叉的,比如系统平台级的睡眠不可避免会涉及到的模式和设备驱动的挂起,而动态主频的实现除了本身的支持也需要外围驱动随着主频变化做出相应的适应活动。因此这里的分级只是一种粗范围的,逻辑上的分层。
前段时间还调研了一下和搞得那套()机制,看了不少论文和观点,总的感觉就是太过复杂而且也不是很实用,感觉噱头大过实际功效,(因此这套机制始终还不能进入内核的),言归正传,还是重点讲述下技术。
为什么要?
关于要不要实现技术,我也纠结过,一个原因是:当时对内核如何提供这么一套动态变频的机制还不了解,只觉得应该非常麻烦,因为涉及到外围驱动的参数更新,另外一个原因是:在这种体量的处理器上跑,即使运行在最高频率时的处理能力可能也不是很富余,我再给它降频还有没有意义?挣扎之后还是觉得要实现它,我也给自己列了这么几条原因:
n&&&&&&虽然在板级中已不是主要的耗电源,但是仍然占着举足轻重的位置,功耗机制到最后就是几毫安几毫安的扣了,降频肯定能在一定程序上节约功耗那我为什么不采用?
n&&&&&&细化功耗管理的颗粒度,为应用程序提供更多的功耗节省机制
n&&&&&&对普通的应用,系统可以运行在维持平台运作的最低频率,在有处理任务时,变频机制会自动切换到合适的高主频,并且在任务结束时重回省电的低主频,这样就解决了我之前的第二个疑惑。
&O&&&&&&&&在运行在时板级功耗为
&O&&&&&&&&在运行在时板级功耗为,降低
&O&&&&&&&&在运行在时板级功耗为,降低
n&&&&&&实现的一些工作是我们一直需要去做但是一直没有动力做的
&O&&&&&&&&变频会涉及到大量模块的参数的重新配置,作为原厂,我们需要把这些参数彻底掌握
&O&&&&&&&&对这些参数的充分理解,能对现有系统进行优化,提升整体系统的效率,比如使用发现一些参数还是太过保守我们的通用配置在系统降为时仍能正常工作。
n&&&&&&可行性论证没有问题:偶然看到同志提供的驱动代码中有变频的实现(这里非常感谢),网上这方面的文章很少,于是翻阅了内核源码中自带的后,对这种机制大概有一定的了解(中的是个好东东),也看到了一些处理器厂商为自己的已经实现了的代码,如,系列。
内核所提供的这种技术的机制
n&&&&&&目的:
变频技术是指硬件本身支持在不同的频率下运行,系统在运行过程中可以根据随时可能发生变化的系统负载情况动态在这些不同的运行频率之间进行切换,从而达到对性能和功耗做到二者兼顾的目的。
n&&&&&&来源:
虽然多个处理器生产厂家都提供了对变频技术的支持,但是其硬件实现和使用方法必然存在着细微甚至巨大的差别。这就使得每个处理器生产厂家都需要按照其特殊的硬件实现和使用方法向内核中添加代码,从而让自己产品中的变频技术在中得到支持和使用。然而,这种内核开发模式所导致的后果是各个厂家的实现代码散落在内核代码树的各个角落里,各种不同的实现之间没有任何代码是共享的,这给内核的维护以及将来添加对新的产品的支持都带来了巨大的开销,并直接导致了内核子系统的诞生。
n&&&&&&管理策略:
内部共有五种对频率的管理策略,,,和
&O&&&&&&&&1.performance&:会固定工作在其支持的最高运行频率上;
&O&&&&&&&&2.powersave&:会固定工作在其支持的最低运行频率上。因此这两种都属于静态,即在使用它们时的运行频率不会根据系统运行时负载的变化动态作出调整。这两种对应的是两种极端的应用场景,使用体现的是对系统高性能的最大追求,而使用则是对系统低功耗的最大追求。
&O&&&&&&&&:最早的子系统通过为用户提供了这种灵活性。系统将变频策略的决策权交给了用户态应用程序,并提供了相应的接口供用户态应用程序调节运行频率使用。(可以使用等人开发了工具包)
&O&&&&&&&&:是内核态的检测,效率低。而正是人们长期以来希望看到的一个完全在内核态下工作并且能够以更加细粒度的时间间隔对系统负载情况进行采样分析的。
&O&&&&&&&&:的最初实现是在可选的频率范围内调低至下一个可用频率。这种降频策略的主导思想是尽量减小对系统性能的负面影响,从而不会使得系统性能在短时间内迅速降低以影响用户体验。但是在的这种最初实现版本在社区发布后,大量用户的使用结果表明这种担心实际上是多余的,在降频时对于目标频率的选择完全可以更加激进。因此最新的在降频时会在所有可选频率中一次性选择出可以保证工作在以上负荷的频率,当然如果没有任何一个可选频率满足要求的话则会选择支持的最低运行频率。大量用户的测试结果表明这种新的算法可以在不影响系统性能的前提下做到更高效的节能。在算法改进后,的名字并没有改变,而最初的实现也保存了下来,并且由于其算法的保守性而得名。
降频更加激进,降频比较缓慢保守,事实使用的效果也是比较好的。
n&&&&&&在用户态所呈现的接口:
&O&&&&&&&&cpuinfo_min_freq:分别给出了硬件所支持的最高运行频率及最低运行频率,
&O&&&&&&&&则会从硬件寄存器中读取当前所处的运行频率。
&O&&&&&&&&在选择合适的运行频率时只会在和所确定的频率范围内进行选择
&O&&&&&&&&返回的是模块缓存的当前运行频率,而不会对硬件寄存器进行检查。
&O&&&&&&&&会告诉用户当前有哪些可供用户使用
&O&&&&&&&&scaling_driver&则会显示该所使用的变频驱动程序
&O&&&&&&&&则会显示当前的管理策略,往这个上其他类型会有相应的转变。
&O&&&&&&&&:需将类型切换为,才会出现,往这个文件数值,会切换主频
以下是将切换为后生成的文件夹下出现的配置文件。(就不说了,不准备使用)
&O&&&&&&&&:当前使用的采样间隔,单位:微秒
&O&&&&&&&&:允许使用的最短采样间隔
&O&&&&&&&&:允许使用的最长采样间隔
&O&&&&&&&&:表明了系统负载超过什么百分比时会自动提高的运行频率
&O&&&&&&&&:文件可以设置为或(是默认设置)。当这个参数设置为时,任何具有值的处理器不计入总处理器利用率。在设置为时,所有处理器都计入利用率。
&O&&&&&&&&:
n&&&&&&使用方法:
&O&&&&&&&&目录
设置最小工作频率
若想使用策略
切换工作方式为
设置成想要的工作频率()
若想使用策略
切换工作方式为
如何实现?
首先需要干一些杂活,修改把系统屏蔽的打开,对于我们来说主要的核心有两部分:
系统相关:主要有,(变了频率一定要更新系统,否则系统时间就不准了),等。
主要就是实现下面这个结构体:
.flags&&&&&&= CPUFREQ_STICKY,
.verify&&&&&= sep4020_verify_speed,
.target&&&&&= sep4020_target,
.get&&&&&&&&&= sep4020_getspeed,
.init&&&&&&&&&= sep4020_cpu_init,
.name&&&&&&&&&&&&= "SEP4020 Freq",
代码还是很简陋,很多细节都没考虑,所以具体的暂时先不讲了,大家可以先参考和的实现。
然后就是收频率影响的驱动:
简单的来说就是:系统在变化主频的时候会调用函数,响挂载在这个上所有的驱动发出一个信号,驱动接收到这个信号则调用相应的处理函数。
这里把串口部分的实现简化,如下:
//&&&&&&printk("in the serial cpufreq_transition/n");
unsigned long cpu_clk,baud,baudh,
pmcr_pre = *(volatile unsigned long*)PMU_PMCR_V;
if(pmcr_pre > 0x4000)
cpu_clk = (pmcr_pre-0x0;
cpu_clk = (pmcr_pre)*4000000;
baud = cpu_clk/16/115200;&&&&&&
baudh = baud >>8;
baudl = baud&0&&&&
*(volatile unsigned char*)UART0_LCR_V |= (0x80);
*(volatile unsigned char*)UART0_DLBL_V&&&=
*(volatile unsigned char*)UART0_DLBH_V&&&=
*(volatile unsigned char*)UART0_LCR_V &= ~(0x80);
printk("in the serial cpufreq_transition/n");
sep4020_serial_freq_transition.notifier_call = sep4020_serial_cpufreq_
return cpufreq_register_notifier(&sep4020_serial_freq_transition,
CPUFREQ_TRANSITION_NOTIFIER);
cpufreq_unregister_notifier(&sep4020_serial_freq_transition,
CPUFREQ_TRANSITION_NOTIFIER);
在下开启模式,串上电流表:
板级电流从调至(因为此时内核检测系统无负载,降频)
执行一个的拷贝命令,拷贝一个左右的文件到其他文件夹,
在拷贝执行时间在秒时(我给内核设的扫描周期为秒)系统发现有负载,升频,电流从变为(可见已是系统最高主频)
此后的拷贝的整个过程中电流保持为
在拷贝结束后不久(内),系统电流又跳变至。
内核选项:
动态变频管理提供了操作系统级别的变频功能,同时需要用户层来制定和执行策略。后台进程就是用来监测系统的运行状况,并根据不同的状况设定的工作频率的。
要想在用户层使用后台进程,首先需要在配置内核编译选项时选择功能选项其内有一些子选项,包含的选择和是否。有五种(将在中介绍),要使正常运行,至少需要选择;在测试阶段往往希望看到系统变频信息,那么需要。在的前提下,在的启动参数加上,就可以看到的相应级别的运行信息。的值可以是、、,也可以是它们的或(、、、),具体意义如下:
(这是和相关的调试)
后台进程需要用到三个库,分别是、和,这三个库都是免费开源软件,我们对、进行了一些修改,由于编译这三个库还是蛮麻烦的,因此我在君正发布的的开发包上对平台进行二次编译,这样减少了不少工作(做事要站在巨人的肩膀上,呵呵)首先你可以君正的官方上下载这个包。
下面将介绍在上的交叉编译和安装过程以及在目标板上安装和运行方法。
在开启DVFS的时候做老化测试的时候出现死机的状况,这可能在配置核心电压的时候出现死机的状况,所以在配置核心电压的时候可以稍微高一点!一般电压浮动是上下5%!如果不行还可以稍微高一点!
阅读(3865) | 评论(0) | 转发(3) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。1 Pages: 1/2& & &Go
级别: 刚进门槛
发帖数量: 7 个
工控威望: 50 点
下载积分: 43 分
在线时间: 18(小时)
注册时间: 最后登录:
客户现场的电压是380V,60HZ,但给配的电机都是380V,50HZ的,貌似用变频器不行,频率降下去了,同时电压也降了,有没有其他高科技设备,改变频率,不变电压。
tingfenghu
级别: 论坛先锋
发帖数量: 1225 个
工控威望: 1688 点
下载积分: 55 分
在线时间: 2313(小时)
注册时间: 最后登录:
说一下怎么不行?变频器是交流--直流--交流变换,和供电频率没有多大关系呢。
二手PLC,触摸屏,伺服驱动,各类气动设备/
级别: 刚进门槛
发帖数量: 7 个
工控威望: 50 点
下载积分: 43 分
在线时间: 18(小时)
注册时间: 最后登录:
我们在国外有个项目,把频率搞错了
jonny_jean
级别: 略有小成
发帖数量: 421 个
工控威望: 470 点
下载积分: 21788 分
在线时间: 634(小时)
注册时间: 最后登录:
引用引用楼主gary_gjf于 23:37发表的 频率60HZ,变50HZ 电压不变 :客户现场的电压是380V,60HZ,但给配的电机都是380V,50HZ的,貌似用变频器不行,频率降下去了,同时电压也降了,有没有其他高科技设备,改变频率,不变电压。您世說變頻器的輸出嗎?變頻器輸入380V-50/60HZ都共用.如果是變頻器輸出對映電機的參數在機械廠內就要設定好了您的問題是在於整套機器有變頻器跟沒變頻器驅動電機的速差嗎?還是其他的380V對應50HZ一個380v對應60HZ當然不一樣 你把60HZ對應380v調成50hz對應當然會不足380v 感覺您的問題不在這因該是力距差異給您參考,抱歉我打的是繁體楼主留言:感谢您回复,我们把客户的频率搞错了,目前看来装变频器是不行的,60HZ的话,转速都提高了,设备性能会改变
jonny_jean
级别: 略有小成
发帖数量: 421 个
工控威望: 470 点
下载积分: 21788 分
在线时间: 634(小时)
注册时间: 最后登录:
引用引用第3楼jonny_jean于 00:43发表的&&:您世說變頻器的輸出嗎?變頻器輸入380V-50/60HZ都共用.如果是變頻器輸出對映電機的參數在機械廠內就要設定好了您的問題是在於整套機器有變頻器跟沒變頻器驅動電機的速差嗎?還是其他的380V對應50HZ一個380v對應60HZ當然不一樣 你把60HZ對應380v調成50hz對應當然會不足380v 感覺您的問題不在這因該是力距差異給您參考,抱歉我打的是繁體如果機構不多電機的話!加裝變頻器可以的或是如機構電機多的話改減速機比值或改電機的極數就可以皮帶輪比值較快, 以四極電機50跟60HZ約差300轉很好調整到你要的速度
级别: 略有小成
发帖数量: 226 个
工控威望: 226 点
下载积分: 546 分
在线时间: 223(小时)
注册时间: 最后登录:
那你费事了,你的电机都要从新制造了,这么牛的订单,怎么没注意供电技术数据
级别: 探索解密
发帖数量: 179 个
工控威望: 185 点
下载积分: 2344 分
在线时间: 9(小时)
注册时间: 最后登录:
新式馬達50HZ,60HZ均可適應,使用上沒有問題
seallyzoom
和尚与屠夫的区别,就是一个吃素一个吃荤
级别: 略有小成
发帖数量: 371 个
工控威望: 434 点
下载积分: 4398 分
在线时间: 354(小时)
注册时间: 最后登录:
引用引用楼主gary_gjf于 23:37发表的 频率60HZ,变50HZ 电压不变 :客户现场的电压是380V,60HZ,但给配的电机都是380V,50HZ的,貌似用变频器不行,频率降下去了,同时电压也降了,有没有其他高科技设备,改变频率,不变电压。表达有问题,频率电压降?怎么用变频器不行?一般变频器通用50、60HZ电源,你的电机是超400HZ的?
工程剩货工控产品,低价处理有需要可联系,或交流交换学习
工资就像大姨妈,一月一次,一周就没了
级别: 网络英雄
发帖数量: 1669 个
工控威望: 6570 点
下载积分: 60179 分
在线时间: 2341(小时)
注册时间: 最后登录:
貌似不应该电压下降啊,电压下降时你没设置好V/F,V/F应该按照电机来设置即380/50来设置,不是按照电源来即380/60设置
签名无效了,麻雀不见了!
人生三宝:家庭,事业,健康。
级别: 网络英雄
发帖数量: 639 个
工控威望: 6762 点
下载积分: 36934 分
在线时间: 483(小时)
注册时间: 最后登录:
好像变频器有个参数是可以选择50HZ/60HZ
生命是一种缘,你刻意追求的东西也许终生得不到,而你不曾期待的灿烂反而会在你的淡泊从容中不期而至。
级别: 家园常客
发帖数量: 232 个
工控威望: 653 点
下载积分: 182 分
在线时间: 47(小时)
注册时间: 最后登录:
用变频器是可以的。有一个问题:60Hz不是我国的用电规格,380V是我国用电的电压规格。如果是60Hz电压肯定不是380V,一般为410-420V。仔细查一查是否搞错了,用表现场测量值不能体现电压标准值。还有一个问题,我国哪有60Hz配电。
级别: 略有小成
发帖数量: 372 个
工控威望: 408 点
下载积分: 3774 分
在线时间: 744(小时)
注册时间: 最后登录:
把变频器&&基频调到60&&最高输出电压调到380&&
1 Pages: 1/2& & &Go您现在所在的是:
变频器论坛
→ 浏览主题:
* 帖子主题:
文章数:13
年度积分:50
历史总积分:603
注册时间:
改变变频器的频率输出电压是否是会变?谢谢各位
年度积分:50
历史总积分:558
注册时间:
文章数:66
年度积分:50
历史总积分:710
注册时间:
当然会变了,从变频器V/F曲线可知,变频器的输出电压和输出频率是成正比的。
★★★【理论和实践是有一定距离的】★★★
文章数:310
年度积分:50
历史总积分:1285
注册时间:
原则上是会的!
v/f控制是根据V/F调节.
矢量和直接转矩控制并不完全按照V/F调整,而是在其基础上根据负载的变化来调节电压.
[此贴子已经被作者于 8:46:10编辑过]
& & & & & & & &新手意见,仅供参考!
年度积分:50
历史总积分:554
注册时间:
文章数:356
年度积分:50
历史总积分:1377
注册时间:
用指针式万用表量下输出就知道了
文章数:65
年度积分:50
历史总积分:802
注册时间:
理论上电压不变的话就会烧电机
年度积分:50
历史总积分:633
注册时间:
yanli7234 版主
文章数:2142
年度积分:68
历史总积分:8100
注册时间:
2011论坛贡献奖
几乎所有的变频器在频率改变时电压都会改变。但也有一种变频电源,可以分别调整频率和电压。
国人当自强,共同努力,抵制日货。
文章数:35
年度积分:50
历史总积分:626
注册时间:
选择V/F控制方式时时肯定会变的
因为这时V/F=常数
工控学堂推荐视频:}

我要回帖

更多关于 电源频率与电压的关系 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信