




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华北电力大学硕士学位论文 摘要 随着对电能质量的要求日益提高和对电能质量的研究日益深入,对电能质量分析仪 器提出了更多、更高的要求:不仅应具备完善的对各种电能质量指标进行分析的能力, 还应具备网络连接和海量存储功能,从而能够方便地对电能质量进行广域测量、分析与 监控,并且通过对历史数据的分析对电能质量问题进行更深入的研究。 本文综述了电能质量的定义,分类以及对各种负荷的影响。设计并实现了以a r m 芯片和嵌入式l i n u x 为核心,应用以太网和u s b 接口海量存储设备的高性能电能质量分 析仪原理样机,编写了a d 驱动模块,并完成了对各指标进行分析的软件编写。它 是一种高性价比的实现方案,在此基础上可进一步研究开发,向仪器的小型化、高度智 能化等不同方向发展,以满足不同应用场合的需求。 关键词:电能质量,嵌入式,a r m ,l i n u x ,驱动 a b s t r a c t w i t ht h em o r ea n dm o r eh i g hd e m a n da n dd e e ps t u d yo nt h ep o w e rq u a l i t y ,i ta s k s f o rm o r ea n dh i g h e rd e m a n dt ot h ep o w e rq u a l i t ya n a l y z e r :i ts h o u l dn o to n l yh a st h e a b i l i t yt oc o m p r e h e n s i v e l ya n a l y s ep o w e rq u a l i t yi n d e x e s ,b u ta l s oh a st h el i n k i n gn e t a n dm a s ss t o r a g ef u n c t i o n s ,t h et w of u n c t i o n sn o to n l yc a nc o n v e n i e n t l ym e a s u r e , a n a l y s ea n dg o v e r nt h ep o w e rq u a l i t yf r o me x t e n s i v es c o p e ,b u ta l s oc a nm o r et h o r o u g h s t u d yt h ep o w e rq u a l i t yq u e s t i o nt h r o u g ha n a l y z i n gh i s t o r i c a ld a t a t h ed e f i n i t i o no ft h ep o w e rq u a h t ya n dt h em e t h o do fc l a s s i f y i n gp o w e rq u a l i t ya r e d i s s e r t e d t h i sp a p e rd e s i g n sa n da c h i e v e st h ep r e p r o d u c t i o nm o d e lo f t h eh i g hp e r f o r m a n c e p o w e rq u a l i t ya n a l y z e rw h i c hb a s e do na r m a n dl i n u x ,e n l a r g i n gn e ta n dm a s ss t o r a g e i n t e r f a c e ,c o m p i l i n gt h ea dm o d u l e ,a c c o m p l i s h i n gt h ep r o g r a mf i l e so fa l li n d e x e so f p o w e rq u a l i t y i th a sh i g hr a t i op e r f o r m a n c et op r i c e ,w ec a ng oo ns t u d y i n gb a s e d o ni tt o t h ed i f f e r e n tw a y ,l i k em i n i a t u r i z a t i o n ,h i g hi n t e l l i g e n t i z a t i o na n ds oo n ,t om e e tt h e d i f f e r e n td e m a n dw h i c ha p p l y i n gt od i f f e r e n tf i e l d s x up e n g y u ( p o w e re l e c t r o n i c sa n de l e c t r i cd r i v e s ) d i r e c t e db yp r o f z h a n gy i g o n g k e yw o r d s :p o w e rq u a l i t y , e m b e d d e d ,a r m ,l i n u x ,d r i v e 声明 本人郑重声明:此处所提交的硕士学位论文基于a r m + l i n u x 的高性能电能质量 分析仪,是本人在华北电力大学攻读硕士学位期间,在导师指导下进行的研究工作和 取得的研究成果。据本人所知,除了文中特别加以标注和致谢之处外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得华北电力大学或其他教育机构的学 位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名:施眺钐 日期:劢f ;伊 关于学位论文使用授权的说明 本人完全了解华北电力大学有关保留、使用学位论文的规定,即:学校有权保管、 并向有关部门送交学位论文的原件与复印件;学校可以采用影印、缩印或其它复制手 段复制并保存学位论文;学校可允许学位论文被查阅或借阅;学校可以学术交流为 目的覆制赠送和交换学位论文:同意学校可以用不同方式在不同媒体上发表、传播学 位论文的全部或部分内容。 ( 涉密的学位论文在解密后遵守此规定) 作者签名: 日 驰昭杉 导师签名: 期:遁! ! 坐 日 期:竺三! :! 1 k 华北电力大学硕士学位论文 1 1 研究背景 第一章引言 电能既是一种经济实用、清洁方便且容易传输、控制和转换的能源形式,又是 一种由电力部门向电力用户提供,并由供、用双方共同保证质量的特殊产品。其使 用程度是一个国家经济发展水平的主要标志之一。 一个理想的电力系统应以恒定的频率( 5 0 h z 或6 0 h z ) 和正弦波形,按规定的 电压水平( 标称电压) 对用户供电。在三相交流电力系统中,各相的电压和电流应 处于幅值大小相等,相位互差1 2 0 。的对称状态。由于系统各元件( 发电机、变压器、 线路等) 参数并不是理想线性或对称的,负荷性质各异且随机变化,加之调控手段 的不完善以及运行操作、外来干扰和各种故障等原因,这种理想状态在实际中并不 存在,而由此产生了电网运行、电器设备和用电中的各种各样的问题,也就产生了 电能质量( p o w e rq u a l i t y ) 的概念。电能由于其生产、输送与消费过程的特性,其 质量有以下特点:( 1 ) 电能质量现象的动态性;( 2 ) 电能质量扰动的潜在性;( 3 ) 电能质量扰动的传播性;( 4 ) 电能质量责任的特殊性;( 5 ) 电能质量评估的复杂性; ( 6 ) 电能质量控制的整体性。 近年来,随着我国电力事业的迅猛发展和电力系统规模的不断扩大,虽然用电 紧张的情况已经逐步解决,但自上世纪中后期开始大量使用的电力电子装置,不可 避免的造成了诸如电压、电流谐波等电能质量的问题;另一方面,随着现代工业的 发展,电力用户对电能质量的要求也在不断提高,计算机信息系统、精密的加工工 具、自动生产线、变频调速驱动器等对电源特性变化敏感的高科技设备的广泛使用, 供电电能质量的恶化可能使产品质量下降,造成重大损失。 随着各国电力市场的逐步建立、成熟,电能作为一种特殊的商品已经不可避免 地迈入市场化的大门,在电力市场这个开放竞争的环境中,电能的质量与其经济效 益结合得更加紧密。电能质量问题已不仅仅是电力行业的专业技术问题,还是重要 的经济问题,对各国经济的发展起着重要的作用,逐渐成为了供、输、用电部门共 同关注的重要问题。为了电力系统的安全运行、电力用户的安全用电、满足各种电 力设备的要求,以及提高用电效率从而增加国民经济效益,改善电能质量势在必行。 要解决电能质量问题,首先需要建立电能质量各项指标的监测和分析系统,对 各种电能质量指标进行实时更新测量与数据采集,保证对电能系统基本运行工况的 观测、记录及动态分析;然后根据各质量指标的具体特征对电能质量问题进行分层 检测,完成对多种扰动信息的识别、提取和分析,为制定改善电能质量和治理电网 1 华北电力大学硕士学位论文 污染具体措施提供可信的依据;进而完整了解电网安全、稳定、优质运行的技术经 济条件,对电能质量各项指标进行综合评价,优化整个系统的监测体系,实现数据 共享与交流。无疑,测量和分析是解决这一问题的第一步,而采取的治理和改善方 法是否有效也需要通过测量的手段做出分析,并利用测量结果来验证。 1 2 国内外研究动态 电能质量是指通过公用电网供给用户端的交流电能的品质。但是由于人们看问 题的角度不同,对电能质量的技术含义存在不同的认识。电力部门可能把电能质量 定义为电压、频率的合格率以及连续供电的年小时数,并且用统计数字来说明电力 系统是安全可靠运行的;电力用户则可能把电能质量简单的定义为是否向设备提供 了电力 a l 。 过去对电能质量分析和研究主要集中在谐波的分析。电网中谐波含量的增加, 将导致电气设备寿命缩短,网损加大,系统发生谐波谐振的可能性增加,严重时会 造成危险的过电压、过电流。同时还可能引起继电保护和自动装置误动作、仪表指 示和电度计量不准、使通信系统受干扰等一系列问题。 随着对电能质量的要求越来越高,仅仅用谐波作为电能质量唯一的指标是不全 面,而且是不准确的。现今电能质量指标主要包括电压波动、电压三相不对称、电 压暂降、电压闪变以及频率偏差等,这些指标根据不同的电能质量问题进行了分类 定义1 2j 。不同的电能质量问题会对用电设备的正常工作产生不同的危害,其标准对 于电能质量问题的表现和危害有了更加明确的分类,对于不同的现象能够采取更有 针对性的措施来改善电能质量显然是非常必要的。 在工业发达国家,电能质量问题已被视作电力系统的一个重要问题。自1 9 9 2 年7 月,欧洲电工标准化委员会发布公用配电系统的供电特性草案,该草案在 广泛吸收i e c 标准的基础上,对中、低压配电系统用户供电端的电能质量作了全面 规定。包括频率、电压( 电压偏差、电压波动及闪变、短时和长期停电、暂态过电 压) 、电压不平衡、电压波形以及电源的信号电压等。1 9 9 3 1 9 9 5 年,美国e p r i 在全国范围内进行了大规模的电能质量普查,得到了大量的电能质量数据。1 9 9 6 年, i e e e 将每年召开一次的电力谐波国际学术会议( i c h p s ) ,更名为电力谐波与电能 质量学术会议( i c h q p ) ,把电能质量提高到一个新的高度来认识p j 。目前电能质量 相关国际标准有国际电工委员会( i e c ) 标准,欧盟e n s 0 1 6 0 标准以及美国i e e e 标准。 我国也制定了相应的电能质量标准,并不断修订以适应电力系统的发展变化, 如2 0 0 3 年修订了原9 0 版的供电电压允许偏差。但是我国整体电能质量标准还远不 够完善,包括其科学性、可操作性和指标的完善性均还有待于进一步提高。目前国 2 华北电力大学硕士学位论文 际上对电压暂降和短时中断问题十分关注,虽然尚无标准,但对其预测计算和相关 的技术措施已作了大量研究。这方面工作我国还剐起步,进一步完善电能质量国家 标准还有大量工作要做。 国内外对电能质量的监测方式大致有三种【4 l : 1 、在线监测,也称为连续监测、全过程监测或日常监测,即对于大型干扰源 必须按照国家标准对电压偏差、频率偏差、三相不平衡、谐波、电压波动与闪变等 指标进行连续跟踪监测。 2 、定期或不定期测量,即针对普通电力干扰源,根据干扰的大小、危害程度 和需要等采取定期或不定期的监测方式。定期监测多用于电网电能质量的定期普 查,主要目的是全面了解电网的电能质量水平和干扰源的特性。不定期监测主要是 针对电力用户的特殊电能质量问题进行监测分析。 3 、专门测量,即对各种干扰负荷或补偿设备在接入电网前后,测量这些设备 对电网电能质量各项指标的影响,通过与国家相关标准相对照,决定其是否可投入 运行。 目前国内对电能质量各项指标的监测大多数还处在专门监测和定期或不定期 监测阶段,不能形成对电能质量的长期连续监测。 同时,国际测控技术正向网络化发展,电能质量在线监测也正是适应这个潮流, 利用网络通信的快捷、方便实现对电能质量的远程监测和网络化管理。利用形成的 多个监测点的全面监测,建立起能够真正表征电能质量的数据库。 国外公司相继开发出多种电能质量监测分析方面的仪器和设备,多是采用硬件 d s p 技术对电信号进行分析和处理的,技术比较成熟,功能多样但价格昂贵。 相对国外而言,我国对电能质量监测装置的开发研究比较落后,国内大多数厂 家采用的是单片机或工控机结构,这些仪器性能单、通用性和扩展性差、开发和 维护相对复杂。 1 3 新问题的提出 在电能质量监测分析装置中,核心处理芯片更新换代的速度很快,为了提高电 能质量监测分析装置的性能,不可避免的需要采用性能更好、功能更强大的处理芯 片。同时由于装置中可以采用多种不同类型的芯片,这些芯片之间又会有很大的差 别,比如其内部寄存器、指令系统等等,即便是同一家公司的产品,也会有不小的 差别,因此在前一代产品上所作的工作要移植到新的平台上,这样,每研发一种新 型的电能质量监测分析装置时,就需要对其原有功能进行重新开发或者修改,这种 重复劳动会浪费大量的时间精力。而使用操作系统作为应用软件的平台,则可以在 很大程度上隔离应用程序与硬件平台,避免这种重复工作,提高设备开发升级的效 3 华北电力大学硕士学位论文 率。 建立一个电能质量监测网,以及一套统一开放的监控和管理平台,就能够及时 分析和反映整个电网的电能质量情况,并很方便地找出电网中影响电能质量的原 因,从电能质量扰动的传播性出发,找出产生电能质量问题的根源,针对电能质量 控制整体性这个特点,从全局着眼采取控制措施来改善电能质量。这使得电能质量 分析仪带有网络功能是十分必要的。 与此同时,我们还希望对电能质量数据进行长期记录,以便通过有效的处理分 析发现规律,这就要求电能质量分析仪在进行电能质量分析的同时还具有大容量存 储功能。 1 4 本论文所做的工作 基于上述对电能质量及其监测的重要性的认识,本论文在引入了嵌入式实时操 作系统的基础上,设计实现了具有网络和大容量数据存储功能的基于a r m 的高性 能电能质量分析仪,并采用c 语言对电能质量各项指标的监测方法进行了程序编写。 论文的工作主要有以下几个方面: 1 调研评估并选取三星公司基于a r m 9 技术的$ 3 c 2 4 1 0 芯片作为电能质量分 析仪的核心芯片。 2 引入嵌入式实时操作系统m i z i l i n u x ,监测分析程序分成不同的任务模块, 可以分别完成不同的功能,使程序具有较高的可移植性,从而能够提高软件的可重 用性,减少软件的重复开发,提高研发效率。 3 在嵌入式系统中实现网络功能及u s b 接口的数据存储功能方面做了较为深 入的学习和研究,设计并编写了u s b 测试程序和以太网通讯及服务程序并进行了验 证。 4 分析了操作系统结构及驱动程序编写方法和要求,采用查询和中断两种方 式编写了模数转换的操作系统驱动程序,并编写应用程序予以验证。 5 将已有的在 t c f o s 一操作系统环境下的电能质量各项指标的监测分析程序 移植到l i n u x 环境下,并对谐波和电压暂降进行了仿真试验和实际测量分析。 4 华北电力大学硕士学位论文 第二章整体方案设计 目前,电能质量监测分析装置的设计通常采取以下几种方案【5 】: 1 以p c 为核心( 工控机) ,在对电能质量进行分析的同时,p c 机自带的网络 接口和硬盘可以实现上述的网络和大容量存储功能。缺点是系统价格昂贵,体积较 大,不适合现场的实时监测;p c 使用硬盘做数据存储,由于硬盘具有机械结构,长 时间连续运行容易损坏。 2 采用单片机来进行数据分析,同时扩展所需要的其它功能。缺点是由于单 片机资源有限,尤其是乘法运算速度慢,在运算量大的领域中就很难有所作为。 3 采用数字信号处理器( d s p ) 进行数据分析,同时扩展所需要的其它功能; 或d s p + m c u 的方案。由于数字处理器普遍采用改进的哈佛总线结构,内部有硬 件乘法器、累加器,使用流水线结构,具有良好的并行特性,更适合于运算量大, 实时性要求高的系统。缺点是其并不适合运行较大规模的嵌入式实时操作系统,且 u s b 和以太网等性能扩展需要额外的费用。 目前在嵌入式技术领域,出现了a r m + 嵌入式l i n u x 的解决方案,这是微处理 器与实时操作系统的一个良好结合,充分将a r m 芯片对u s b 的支持和l i n u x 对网 络的良好支持融合在一起,得到了广泛的应用。 在综合评价和分析各方案后,我们提出了采用高性能的a r m 芯片作为核心处 理器,同时引入开放源码的嵌入式实时操作系统m i z i l i n u x ,并在此基础上扩展所 需要的各种功能,包括以太网和u s b 接口功能,人机接口功能等( 见图2 一1 ) 。这 图2 - 1 硬件设计方案 样使设计变得简单,功能扩展变得容易,成品体积更小,便于携带,更加适合现场 运行,分析仪的价格也降低了。 5 华北电力大学硕士学位论文 21 核心处理器的选择 a r m 是一类处理器,同时也是一个公司的名字。a r m 公司1 9 9 0 年1 1 月在英 国剑桥成立,全称a d v a n c e dr i s cm a c h i n e ,向全球各大电子公司提供高性能、低 成本、高效率的r i s c 处理器、外设和系统芯片技术授权【7 1 。 r i s c 是r e d u c e di n s t r u c t i o ns e tc o m p u t e r ( 精简指令集计算机) 的缩写。它与 c i s c ( c o m p l e xi n s t r u c t i o ns e tc o m p u t e r :复杂指令集计算机) 之间的差异有以下几 点: 1 指令的形成:c i s c 因指令复杂,故采用微指令码控制单元的设计,而r i s c 寻址方式灵活简单,执行效率高,指令长度固定。其指令9 0 是由硬件直接完成, 只有1 0 的指令是由软件以组合的方式完成,因此指令执行时间上r i s c 较短。 2 寻址模式:c i s c 的需要较多的寻址模式,而r i s c 只有少数的寻址模式, 大多数数据操作都在寄存器中完成。因此c p u 在计算内存有效地址时,c i s c 占用 的总线周期较多。 3 指令的执行:c i s c 指令的格式长短不一,执行时的周期次数也不统一,而 r i s c 结构刚好相反,故适合采用管线处理架构的设计,大量使用寄存器,指令执行 速度更快,进而可以向平均一周期完成一指令的方向努力。 显然在设计上r i s c 较c i s c 简单,因为c i s c 的执行步骤过多,闲置的单元电路等 待时间增长,不利于平行处理的设计,所以就效能而言r i s c 较c i s c 还是占了上风, 但r i s c 因指令精简化后造成应用程序代码变大,需要较大的程序内存空间,且存在指 令种类较多等缺点。 本论文所采用的硬件是北京革新科技有限公司的o u r s 2 4 1 0 一b 开发板,其中央处 理器采用韩国三星电子公司的$ 3 c 2 4 1 0 。该处理器基于a r m 9 2 0 t 内核,主频2 0 0 m h z , 5 级流水线,支持3 2 位a r m 指令集和1 6 位t h u m b 指令集。内核电压1 8 v ,平均功耗 o 7 m w m h z ,主要面向手持式设备及高性价比、低功耗的应用。 应用于电能质量分析仪的主要资源包括悼j : 一个l c d 控制器,支持s t n 和t f t ,一个通道的专用d m a 用于显存刷新。 s d r a m 控制器。 两个u s b i 1 控制器,可以配置成为h o s t 或d e v i c e 1 1 7 个外部通用i o ,2 4 个外部中断源。 电源管理有n o r m a l 、s l o w 、i d l e 、s t o p 和p o w e r - o f r 模式 有日历功能的r t c 8 通道l o 位a d 控制器和触摸屏控制器,转换速度最高2 5 m h z 。 $ 3 c 2 4 1 0 具有3 2 位数据、2 7 位外部地址线;5 5 个中断源的中断控制器;系统 的存储空间分为8 个组( b a n k ) ,每组的大小是1 2 8 m b ,共1 g 。b n a k 0 到b a n k 5 6 华北电力大学硕士学位论文 的开始地址固定地用于r o m 或s r a m 。b a n k 6 和b a n k 7 用于r o m 、s r a m 和 s d r a m ,这两个组可编程且大小相同。所有内存块的访问周期都可编程。$ 3 c 2 4 1 0 采用n g c s 7 :0 8 个通用片选信号选择这些组。 $ 3 c 2 4 1 0 支持n a n df l a s h 启动,n a n df l a s h 具有容量大、比n o rf l a s h 价格 低的优点,可以写入较大的操作系统。硬件系统采用6 4 m 的s d r a m 、6 4 m 的n a n d f l a s h 和1 6 m 的n o rf l a s h 组合,性价比高且支持双启动。 $ 3 c 2 4 1 0 相比于其他控制芯片的另个优势是其内部集成有u s b 控制器,并提 供两个可配置成主从方式的接口,无需外加u s b 控制芯片,硬件设计简单。结合 操作系统可以很方便地实现对u s b 设备( 包括u 盘、u s b 硬盘、u s b 鼠标等) 的 支持。 开发板上的以太网控制芯片采用的是台湾d a v i c o m 公司的d m 9 0 0 0 。它是 1 0 1 0 0 m 自适应低功耗的1 0 0 一p i nc m o s 芯片,包括m a c ( 介质访问控制,属于数 据链路层) 和p h y ( 物理层) ,支持8 位、1 6 位或3 2 位数据总线。 2 2 操作系统的选择 现代信息社会的高效性、协同性客观上要求软件的编写便于多人分工合作、编写的 软件具有可重用性,软件也日趋复杂。所有这些迫切需要有一个屏蔽底层硬件的、功能 强大的操作系统来支持。嵌入式软件的核心在于嵌入式实时多任务操作系统( r t o s ) 。 主要有:v x w o r k s ,l i n u x ,w i n c e ,p c o s i i 等。 嵌入式系统的前期设计过程中,首先必须决定采用哪一种操作系统,这将影响 到工程后期的发布以及软件的维护。 从应用方面考虑:如果想开发的嵌入式设备是一个和网络应用密切相关的或者 就是一个网络设备,应该考虑l i n u x 而不是i c o s i i 。如果选择的硬件没有内存管理 单元m m u ( m e m o r ym a n a g e u n i t ) 。那么不能使用嵌入式l i n u x ,想用l i n u x 的话只 能选择g c l i n u x 。 从实时性考虑:l i n u x 本身并不是实时系统,但是加入了实时补丁等技术的嵌入 式l i n u x 可以满足9 0 9 5 的各种嵌入式系统应用。如果希望更快的实时响应,如几 个微秒以内的中断延时,则可以考虑蚌c o s i i 和v x w o r k s 。 从开发工具考虑:目前g c o s i i 、g c l i n u x 、和嵌入式l i n u x 的开发工具与商业 嵌入式操作系统的开发工具还有一定差距,尤其是缺少对嵌入式l i n u x 操作系统的支 持。 从价格和技术服务考虑:商用型实时操作系统 l l l v x w o r k s 功能稳定、可靠,有 完善的技术支持和售后服务,但价格昂贵;免费型实时操作系统则在国内的售后和 技术支持有相当大的差距。 7 华北电力大学硕士学位论文 因此,选择款既能满足应用需求,性价比又最佳的实时操作系统,对开发工 作的顺利开展意义非常重大。 综合选用的硬件平台和应用设计方面的考虑,本论文选取了与$ 3 c 2 4 l o 相结合 的m i z l l i n u x 。它是三星公司旗下m i z i 研究小组为手持式设备和数字产品应用所开 发的嵌入式l i n u x 版本,除核心代码外还包括很多附加产品,如软件补丁、开发包、 目标板的典型应用等。其移植性非常好,广泛支持许多不同体系结构的计算机,通 过对其对移植,并进一步编写设备驱动程序和应用程序,即形成一个完整的嵌入式 系统。 2 3 开发环境 绝大多数的l i n u x 软件开发都是以n a t i v e 方式进行的,即本机( h o s t ) 开发、调 试,本机运行的方式。这种方式通常不适合于嵌入式系统的软件开发,因为对于嵌 入式系统的开发,没有足够的资源在本机( 即板子上系统) 运行开发工具和调试工 具。 对于嵌入式l i n u x ,一般采用交叉编译的方法,宿主机上的操作系统一般要求 为r e d h a tl i n u x ,硬件方面需要宿主机器上有可用串口。系统内核、r a m d i s k 文件系 统映像阻及b o o f l o a d e r 的更新( 最初的b o o t l o a d e r 烧写是通过j t a g 进行的) 都需 要从串口进行下载。 8 华北电力大学硕士学位论文 第三章嵌入式l in u x 设备驱动及应用程序 嵌入式实时操作系统在内核底层将不同的硬件特性屏蔽掉,对于不同的应用环 境提供了标准的、可裁减的系统服务软件组。能够提供多种任务通信机制、基于 t c p i p 的网络组建、文件管理及i o 服务,支持用户使用c 、c + + 进行开发。这使 得用户可根据不同的实时应用要求及硬件环境选择不同的软件组,减少了开发过程 中的重复性工作【9 】。 电能质量分析仪的设计本质上就是一个嵌入式l i n u x 系统的开发过程,其流程 如图3 1 所示。 图3 - 1嵌入式l i n u x 开发流程图 g 华北电力大学硕士学位论文 3 1 嵌入式l jn u x 31 1 l i n u x 的移植 在l i n u x 系统内核代码中有a r c h 目录,其中包含了不同平台的代码,就是为多 平台设计并使用的,与体系结构相关的代码都存放在a r c h 和 i n c l u d e a s m 一 目录中, 是l i n u x 支持的体系结构的简称。 例如,a r m 体系结构对应的简称是a r m ,与其相关的代码都存放在a r c a r m 和 i n c l u d e a s m a r m 目录下【l 。 由于硬件工程师设计的硬件电路会有所不同,从而这些代码可能无法正确运行 ( 比如内核解压地址不同) ,需要嵌入式系统开发者结合自己的硬件电路,对已有 的内核代码进行修改移植。 3 1 2l in u x 内核结构和编译 l i n u x 内核主要由5 个子系统组成:进程调度、内存管理、虚拟文件系统、网 络接口、进程间通信。原始l i n u x 内核非常庞大,包括驱动程序在内有数百兆,整 个代码分布如图3 2 所示。 图3 - 2l i n u x 内核代码分布 i n i t 予目录包含了内核的初始化代码,内核从此处工作。 i p c 子目录包含了进程间通信代码。 k e r n e l 子目录包含了主内核代码。 m m 子目录包含了所有内存管理代码 一般每个目录下都有一个d e p e n d 文件和一个m a k e f i l e 文件。这两个文件都是 编译时使用的辅助文件。其中m a k e f i l e 文件中指出了编译时需要用到的编译器,也 1 0 兰! ! 皇杰查堂堡主堂垡鲨塞 是移植内核过程中不可缺少的。 3 2l in u x 设备驱动程序 将l i n u x 的引导程序v i v i ( 三星公司为a r m 9 设计的专用b o o t l o a d e r ) ,和编译 好的内核文件以及文件系统三个部分烧写到开发板的f l a s h 里,l i n u x 系统就可以运 行了。 为了能使用更多的设各,实现更多的功能,关键的步骤是硬件设备驱动程序的 编写。本论文的工作之一就是为内核中没有提供支持的模数转换单元编写设备驱动 程序,为编写数据采集程序提供良好的系统支持,进而达到分析电能质量指标的目 的。 3 2 1 设备驱动 设备驱动可以理解为操作系统的一部分,操作系统在没有驱动程序支持下是无 法正常支配硬件行为的。驱动程序是位于应用层和实际设备之间的软件。驱动程序 员可以选择这个设备应该怎样实现,不同的驱动程序可以提供不同的能力,甚至相 同的设备也可以提供不同能力。实际驱动程序设计应该是在众多需求之间的一个平 衡。对于嵌入式开发,往往没有通用的驱动程序可以使用。因此,开发驱动程序是 整个嵌入式系统设计过程中必不可少的一部分【1 ”。 l 应用程序i f 下 l 主一 l 库函数l i 厂。 薹。! i 。弱 系统调用接口 i 攀j j i 誉爨囊麟z 鬻滋蘸蘩簧鬻* 黧一。“瓣一嚣i i 嗣文件子系统鸶鞫 进程控制千糸统 耋圭 ;蘩鬻繁嚣i 鬟鬟鬻懑蘸i 辫鬻萋鬟戮薏鬟;鬃囊豢l 颡囊囊i 黪臻慧露囊i 戮ff 枷军管弹千糸统 。 篁豁i 黧黧:鬃羹羹薹,蘩i 黧i 萋霆囊蓊i i 蕊薹黎j 篓嚣糍 i 底层驱动程序 图3 3设备驱动在l i n u x 系统中的位置 图3 - 3 给出了设备驱动程序在l i n u x 系统中的位置,可以看到它是连接软硬件的 关键。 l l 华北电力大学硕士学位论文 3 2 1 1 设备驱动主要组成 设备驱动程序可以分为三个主要组成【1 2 】: ( 1 ) 自动配置和初始化子程序,负责检测所要驱动的硬件设备是否存在和是 否能正常工作。如果该设备正常,则对这个设备及其相关的设备驱动程序需要的软 件状态进行初始化。这部分驱动程序仅在初始化的时候被调用一次。 ( 2 ) 服务于i o 请求的子程序,又称为驱动程序的上半部分。这部分是由于系 统调用的结果。这部分程序在执行的时候。系统仍认为是和进行调用的进程属于同 一个进程,只是由用户态变成了核心态,并具有进行此系统调用的用户程序的运行 环境,因此可以在其中调用s l e e p 等与进程运行环境有关的函数。如字符设备的o p e n 、 r e a d 等入口点。 ( 3 ) 中断服务子程序,又称为驱动程序的下半部分。在l i n u x 系统中,并不是 直接从中断向量表中调用设备驱动程序的中断服务子程序,而是由l i n u x 系统来接收 硬件中断,再由系统调用中断服务子程序,中断可以产生在任何一个进程运行的时 候,因此在中断服务程序调用的时候,不能依赖于任何进程的状态,也就不能调用 任何与进程运行环境有关的函数。因为设备驱动程序般支持同一类型的若干设 备,所以一般在系统调用中断服务子程序的时候,都带有一个或多个参数,以唯一 标识请求服务的设备。 3 2 ,1 2 设备和模块分类 l i n u x 内核必须能够用标准的方式为每一类设备的驱动程序提供通用的接口, 供内核在需要请求他们的服务时加以使用。这些通用的接口意味着内核可以完全相 同地看待不同的设备和它们的驱动程序。因此程序员可以选择在单独的一整块代码 中创建一个模块实现不同的驱动程序,例如,s c s i 和i d e 磁盘的行为大为不同, 但是l i n u x 内核对他们使用了相同的接口。 本文所做的a d 驱动属于字符设备的驱动程序。l i n u x 的驱动程序共有如下三 类: ( 1 ) 字符设备( c h a rd e v i c e ) 驱动。字符设备可以像文件一样访问,其驱动程 序通常会实现o p e n 、c l o s e 、r e a d 和w r i t e 等系统调用。字符设备和普通文件的主要 区别是:普通文件可以来回读写,而大多数字符设备仅仅是数据通道,只能顺序读 写。当然也存在看起来像个数据区,可以来回读取其中数据的字符设备。 ( 2 ) 块设备( b l o c kd e v i c e ) 驱动。块设备是文件系统的宿主,如磁盘,它也 支持像文件一样被访问。l i n u x 系统允许像字符设备那样读取块设备。因此块设备 和字符设备只在内核内部的管理上有所区别,也就是在内核,驱动程序间的软件接口 上有所区别。 另外,在对字符设备发出渎写请求时,实际的硬 牛i o 一般就紧接着发生了。 1 2 华北电力大学硕士学位论文 块设备则不然,它利用一块系统内存作为缓冲区,当用户进程对设各请求能满足用 户的要求时,就返回请求的数据,如果不能就调用请求函数来进行实际的i o 操作。 块设备主要是针对磁盘等慢速设备设计的,以免耗费过多的c p u 时间来等待。 ( 3 ) 网络接口驱动。l i n u x 网络设备驱动是l i n u x 网络应用的重要组成部分, 所有的l i n u x 网络驱动程序遵循通用的接口。设计时采用的是面向对象的方法。 个设备就是一个对象( d e v i c e 结构1 ,它内部有自己的数据和方法。一个网络设备最 基本的方法有初始化、发送和接收。 3 2 2 数据结构和基本函数 3 2 21 设备驱动关键数据结构 设备驱动程序提供的入口点由几个结构向系统进行说明,分别是f i l e _ o p e r a t i o n 数据结构、i n o d e 数据结构和f i l e 数据结构,他们是驱动开发的基础【l 。 ( 1 ) f i l eo p e r a t i o n 数据结构 f i l e o p e r a t i o n s 结构是定义在i n c l u d e l i n u x f s ,h a 的函数指针表,内核内部通过它 提供文件系统的入口点函数。驱动程序很大一部分工作就是要“填写”结构体中定 义的函数( 根据需要,实现部分函数或全部) : s t r u c tf i l e o p e r a t i o n s s s i z e t ( 4 r e a d ) ( s t r u c tf i l e + ,c h a ru s e r + ,s i z e _ t ,l o f f _ t + ) ; s s i z e _ t p a i o _ r e a d ) ( s r u c tk i o c b 4 ,c h a r u s e r + ,s i z e _ t ,l o f t _ t ) ; s s i z e _ t ( w r i t e ) ( s t r u e tf i l e + ,c o n s tc h a ru s e r + ,s i z e t ,l o f f _ t 4 ) ; s s i z e _ t ( 4 a i o - w r i t e ) ( s t r u c tk i o c b + ,c o n s tc h a ru s e r + ,s i z e - t ,l o f t - t ) ; ; 这个结构的每一个成员的名字都对应着一个系统调用。在用户进程利用系统调 用对设备文件进行诸如r e a d w r i t e 操作时,系统调用通过设备文件的主设备号找到 相应的设备驱动程序,然后读取这个数据结构相应的函数指针,接着把控制权交给 函数,这就是l i n u x 的设备驱动程序工作的基本原理。 ( 2 ) i n o d e 数据结构 文件系统处理的文件所需要的信息在i n o d e ( 索引结点) 数据结构中,i n o d e 数据 结构提供了关于特别设备文件d e v d r i v e r ( 假设此设备名为d r i v e r ) 的信息。 ( 3 ) f i l e 数据结构 f i l e 数据结构主要用于与文件系统对应的设备驱动程序使用。当然其他设备驱 动程序也可以使用,它提供有关被打开文件的信息。 在结构f i l eo p e r a t i o n s 里,指出了设备驱动程序所提供的入口点位置,分别是: 华北电力大学硕士学位论文 ( 1 ) l s e e k ,移动文件指针的位置,显然只能用于可以随机存取的设备。 ( 2 ) r e a d ,进行读操作,参数b u f 为存放读取结果的缓冲区,c o u n t 为所要读 取的数据长度。返回值为负表示读取操作发生错误,否则返回实际读取的字节数。 对于字符型,要求读取的字节和返回实际读取字节数都必须是i n o d e ib l k s i z e 的倍 数。 ( 3 ) w r i t e ,进行写操作,与r e a d 类似。 ( 4 ) r e a d d i r ,取得下一个目录入口点,只有与文件系统相关的设备驱动程序才 使用。 ( 5 ) s e l e c t ,进行选择操作,如果驱动程序没有提供s e l e c t 入口,s e l e c t 操作将 会认为设备已经准备好进行任何的i o 操作。 ( 6 ) i o c t l ,进行读写以外的其它操作,参数c m d 为自定义的命令。 ( 7 ) m m a p ,用于把设备的内容映射到地址空间,一般只有块设备驱动程序使 用。 ( 8 ) o p e n ,打开设备准备进行i o 操作。返回0 表示打开成功,返回负数表示 失败。如果驱动程序没有提供o p e n 入口,则只要d e v d r i v e r 文件存在就认为打开成 功。 ( 9 ) r e l e a s e ,即c o l s e 操作。 3 2 2 2 设备驱动基本函数 ( 1 ) 内存操作 作为系统核心的一部分,设备驱动程序在申请和释放内存时不是调用m a l l o c 和 f r e e ,而代之以调用k m a l l o c 和k f r e e ,它们定义为: # i n c l u d e v o i d + k m a l l o c ( u n s i g n e di n tl e n ,i n tp r i o r i t y ) ; v o i dk f r e e ( v o i d + o b j ) ; 参数l e n 为希望申请的字节数;o b j 为要释放的内存指针;p r i o r i t y 为分配内存 操作的优先级,即在没有足够空闲内存时如何操作,一般用g e p _ k e r n e l 。 ( 2 ) 中断 在l i n u x 系统里,对中断的处理是属于系统核心的一部分,因此如果设备与系统 之间以中断方式进行数据交换的话,就必须把该设备的驱动程序作为系统核心的一 部分,设备驱动程序通过调用r e q u e 吼_ i r q 函数来申请中断,通过f r e e j r q 释放中断。 它们的定义为: 社i n c l u d e i n tr e q u e s ti r q ( u n s i g n e di n ti r q v o i d ( + h a n d l e r ) ( i n ti r a ,v o i dd e v i d ,s t r u c tp tr e g s + r d g s ) ; 1 4 华北电力大学硕士学位论文 u n s i g n e dl o n gf l a g s ; c o n s tc h a r + d e v i c e ; v o l e + d e v _ i d ) ; v o i df r e e i r q ( u n s i g n e di n ti r q ,v o i d d e v - i d ) ; 参数i r q 表示所要申请的硬件中断号:h a n d l e r 为向系统登记的中断处理子程序, 中断产生时由系统来调用,调用时所带参数i r q 为中断号;d e v i c e 为设备名,将会出 现在p r o c i n t e r r u p t s 文件里;d e v _ i d 为申请时告诉系统的设备标识;r e g s 为中断发生 时寄存器内容。f l a g 是申请时的选项。它决定中断处理程序的一些特性。其中最重 要的中断处理程序是快速处理程序( f l a g 里设置了s a i n t e r r u p t ) j 匝是慢速处理程 序( 不设置s a i n t e r r u p t ) 。快速处理程序运行时,所有中断都被屏蔽,而慢速处 理程序运行时,除了正在处理的中断外,其它中断都没有被屏蔽。 ( 3 ) 注册字符设备 设备驱动程序所提供的入口点,在设备驱动程序初始化的时候向系统进行登 记,以便系统在适当的时候调用。l i n u x 系统里通过调用r e g i s t e r _ c h r d e v 向系统注册 字符型设备驱动程序。r e g i s t e rc h r d e v 定义为: 撑i n c l u d e # i n c l u d e i n tr e g i s t e rc h r d e v ( u n s i g n e di n tm a j o r c o n s tc h a rn a m e s t r u
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 满足度导向的濒危语言保护政策研究-洞察阐释
- 家庭护理与专业服务协同机制构建-洞察阐释
- 移动网络中身份认证与密钥管理的协同优化-洞察阐释
- 超低VOC喷枪涂料研究-洞察阐释
- 公共艺术社会效益-洞察及研究
- 环境监测政策分析-洞察阐释
- 可持续渔业资源管理-洞察及研究
- 多中心临床试验在肾病性高血压研究中的应用优化-洞察阐释
- 聚乙醇酸可降解材料-洞察阐释
- 农村金融风险防控与新型城镇化解的创新实践-洞察阐释
- 【MOOC】跨文化思想交流英语-南京理工大学 中国大学慕课MOOC答案
- 中国心力衰竭诊断和治疗指南2024解读(完整版)
- 国开《当代中国政治制度》形考任务1-4参考答案
- 2024年山东省交通运输行业职业技能竞赛(装卸机械电器修理工)试题库(含答案)
- JJG 705-2014液相色谱仪行业标准
- 2023-2024学年人教版小学英语四年级下册期末测试卷含答案
- 2023~2023年中石油职称英语考试真题及参考答案
- 水利水电工程砖砌体单元评定表
- GB_T 24359-2021 第三方物流服务质量及测评(高清-现行)
- 院士专家工作站管理办法
- 工程造价咨询服务收费标准--鲁价费发〔2007〕205号
评论
0/150
提交评论