当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]引言 嵌入式系统是指以应用为中心,以计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、体积、成本、可靠性、功耗严格要求的专用计算机系统。嵌入式系统是面向应用

引言 嵌入式系统是指以应用为中心,以计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、体积、成本、可靠性、功耗严格要求的专用计算机系统。嵌入式系统是面向应用的,系统的硬件选型和软件开发模式都必须根据具体的应用确定。 永磁无刷直流电动机是电机控制研究领域的热点之一,这与其自身固有的技术优势密切相关:以电子换相取代了有刷直流电动机的机械换相。从根本上革除了普通有刷直流电动机由于电刷换相带来的火花、噪音、高故障率等一系列问题,同时又使系统的性能能够与普通有刷直流电动机相媲美,因此得到了广泛的应用。永磁无刷直流电动机的电子换相离不开电机的转子位置信号,传统的方法是采用霍尔器件或其他位置传感器检测位置信号,这使得系统的维护和制造都不方便,并且由于传感器的工作特性不稳定,给系统的安全运行带来了一些隐患。因此,无位置传感器方案引起了人们的极大兴趣。 本文结合无位置传感器永磁无刷直流电动机控制系统的开发,以Microchip公司的PIC18F452单片机为主控器件,并采用嵌入式实时操作系统 μC/OS-II作为软件开发平台,详细讨论了嵌入式系统的开发模式与流程。 2.系统硬件平台设计 嵌入式系统设计的第一步是结合具体的应用,综合考虑系统对成本、性能、可扩展性、开发周期等各个方面的要求,确定系统的主控器件,并以之为核心搭建系统硬件平台。

无位置传感器永磁无刷直流电动机控制系统的关键问题是位置检测。目前已经有了很多位置检测方案,其中,反电势法由于简单实用而得以广泛采用。反电势法的原理是:基于电机的三相端电压,通过硬件检测电路或软件算法得到三相反电势过零信号,然后用软件移相得到换相时刻,并在换相时刻按换相逻辑完成换相,触发逆变桥以合适的导通时序工作,从而保证了电机的正常运行。 反电势法的永磁无刷直流电动机无位置传感器控制对系统硬件提出了更高的要求: ① 三个外部中断输入引脚,便于捕捉三相反电势过零信号; ② 至少一个PWM模块,实现电机的斩波调速; ③ 丰富的定时器资源,完成软件移相、测速等功能; ④ 多通道的AD转换模块,能够采样速度给定及主电路的电流、电压信号; ⑤ 硬件乘法器,保证速度、电流调节器的快速性; ⑥ 足够的程序和数据存储器,便于系统扩展; ⑦ 高速的系统工作频率,保证系统的强实时性; ⑧ 丰富的通信模块,便于系统与其他嵌入式系统的互连。 对于无位置传感器永磁无刷直流电动机控制系统的设计,有很多专用芯片可供选用,但为了进一步提高系统性能,增强设计的灵活性,多采用DSP或专用单片机等智能器件。但是,这样在提高系统性能的同时却增加了系统开发成本。为了设计一个高性能、低成本的开发平台,针对应用对系统硬件的要求,考虑到 PIC18F452单片机的高性价比,选用其作为主控器件。 PIC18F452是Microchip公司推出的一款增强型8位单片机,采用精简指令集(RISC)的设计,有两级流水线,最高运行频率可达到 10MIPS,能够满足系统对实时性的要求;指令总线16位宽,数据总线8位宽;单片机内部有32K字节的FLASH程序存储器,1.5K字节的数据存储器和256字节的EEPROM,便于系统的扩展;自带8%26;#215;8硬件乘法器;中断资源丰富,提供18个中断源,两个中断优先级,并且中断优先级可配置。PIC18F452单片机配备了丰富的外围模块,极大地简化了单片机外围电路的设计。同时,Microchip公司为PIC18F系列单片机提供了功能强大的指令集,共77条指令,绝大部分指令为单字(2个字节)存储,单周期执行,应用代码的存储压缩率高,指令执行效率高。 以PIC18F452为主控器件构成的系统硬件框图如图1所示。 值得说明的是: ① 系统中的换相逻辑由可编程逻辑器件完成,主要是为了提高系统的可靠性,从功能上讲,完全可由单片机实现; ② 电机的速度检测,可根据位置信号利用软件计算得来,故省略了速度传感器; ③ 模拟输入为电机的速度给定信号。 3.嵌入式系统软件开发模式 对于简单的应用系统,系统的软件开发模式通常如图2所示,称为前后台系统(也叫无限循环系统)。

前后台系统中,应用程序就是一个无限循环。循环中调用函数完成相应的操作,这些操作称为后台任务;中断服务程序处理异步事件,这部分称为前台行为。因为中断服务程序提供的信息一直要等到后台程序运行到该处理这个信息时才得到处理,所以最坏情况下的任务响应时间等于整个循环的执行时间。因为后台循环的执行周期不是常数,所以基于前后台模式的应用软件开发,虽然设计过程简单,但系统的实时性得不到保障。

为了提高系统的实时性,可以采用基于嵌入式实时操作系统(RTOS)的软件开发模式。RTOS分为两类:非可剥夺型内核和可剥夺型内核,一般商用的都是可剥夺型内核,所以本文只讨论此类RTOS,其内核结构如图3所示。 RTOS将整个应用细分为多个任务,每个任务完成特定的功能,并被赋予一定的优先级,拥有自己的任务控制块和栈空间。一般地,每个任务在程序结构上都是一个无限循环,它有多个状态——休眠态、就绪态、运行态、挂起态和中断态等。系统内核总是让就绪态的高优先级任务先运行,中断服务程序可抢占CPU,中断服务程序完成时,系统内核让此时就绪态中优先级最高的任务运行(不一定是被中断的任务)。可见,基于RTOS的软件开发模式使系统的任务响应时间得到了最优化。更重要的是,这种开发模式将以往面向功能的应用开发转化为面相任务的应用开发,简化了系统设计的逻辑结构;同时,由于有了RTOS,屏蔽了应用软件对底层硬件的可见性,将以往软件系统的两层结构转化为三层结构(如图4所示),极大地方便了系统的软件扩展与硬件升级。

[!--empirenews.page--]

对于PIC18F系列单片机,目前常用的嵌入式实时操作系统有:μC/OS-II、Salvo、CMX、PIC18OS等。它们都是可剥夺型的实时内核,详细的比较如表1所示。 结合本文的具体应用,综合考虑系统硬件资源及上述几种实时操作系统的特点,最终选用基于操作系统的软件开发模式,并选择μC/OS-II作为系统软件平台。 4.基于μC/OS-II的应用软件开发 μC/OS-II是一个可移植、可固化、可裁剪及可剥夺型的多任务实时内核,应用开发时首先必须完成其在特定硬件上的移植。μC/OS-II在编写的过程中就充分考虑到了可移植性,它的绝大部分代码都由ANSI C写成,与处理器相关的代码集中在OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C这三个文件中,因此只要针对具体的硬件改写这些文件,就可以完成移植工作。 表1 适用于PIC18F系列单片机的几种嵌入式实时操作系统 名称 μC/OS-II Salvo CMX PIC18OS 版权 源码公开的免费实时内核 商用实时内核 商用实时内核 源码公开的免费实时内核 可靠性 可靠性高。通过了美国FAA认证。 可靠性高。 可靠性高。 未测试。 内核大小 可裁剪。内核ROM占用量最少2K,RAM需求由具体应用而定。 内核小,可裁剪。RAM需求很小,一般每个任务需4~12bytes,每个事件需3~4bytes。 较大。 非常小。内核ROM占用量小于1K,RAM最少需求约120bytes。 系统服务 丰富。最多支持64个任务。支持信号量、事件标志组、消息邮箱、消息队列、时间管理、内存管理等。 较丰富。 非常丰富。支持信号量、事件管理、消息邮箱、消息队列、内存管理、设备管理、TCP/IP协议栈等。 少。最多支持8个任务,目前仅支持事件标志,最多支持8个事件。 适用 硬件 平台 非常广泛,已经被移植到了40多种CPU上(包括PIC18F系列单片机)。 较为广泛,适用于8051系列单片机、Microchip的8位单片机、TI的2000系列DSP等。 非常广泛,适用于多种型号的8位、16位、32位、64位处理器,支持大部分DSP。 目前仅支持Microchip公司的PIC18F系列单片机。 调试工具 较少 一般 非常丰富 少 备注 实际开发过程中可针对具体硬件优化内核,从而进一步减少内核代码,提高系统实时性。 有三个版本,Salvo Lite为免费测试版,Salvo SE为标准版,Salvo PRO为增强版。 有两个版本,CMX-RTX为完全版,CMX-TINY+为简化版本。 基于OSEK/VDX标准,但目前仅实现了其Operating System部分。 移植成功之后,就可以开始应用程序的编写工作。RTOS将面向功能的应用开发转化为了面相任务的应用开发,因此软件开发的过程就是将应用系统按照功能细分为多个任务,然后实现每个任务,并为任务确定合适的优先级;对于实时性要求高的操作,需要编写相关的中断服务程序。 永磁无刷直流电动机正常运行的基本条件是:在最佳换相时刻按最佳换相逻辑换相。这个过程对实时性要求很高,所以由中断服务程序完成。反电势过零时,程序进入反电势过零中断服务程序,该中断服务程序根据当前的电机速度设定软件移相定时器的溢出值;当软件移相定时器溢出中断时,程序进入移相定时器中断服务程序,显然,此时即最佳换相时刻。因此,在移相定时器中断服务程序中按最佳换相逻辑完成换相,就能保证电机的正常运行。此外,对于过流、过压、欠压等紧急故障的处理也必须由相应的中断服务程序完成。系统还要完成的功能有:定时采样速度给定,并将采样结果经过调节器转化为PWM波的占空比;响应键盘输入;显示电机的速度、PWM波占空比等系统状态信息;与上位PC机串口通信;系统非紧急故障的处理等等。这些功能对实时性的要求不是很高,故由任务级完成。应用系统的任务如表2所示。 表2 应用系统任务列表 任务名称 TaskAD TaskKey TaskShow TaskErr TaskCom TaskIdle 任务优先级 2 3 4 1 5 7 任务描述 处理AD采用结果,更新PWM占空比 键盘任务 显示任务 系统非紧急故障处理任务 与上位PC机进行串行通讯 操作系统的缺省任务 系统运行时,首先进行系统初始化操作,并创建任务。所有新创建的任务都被置为就绪态,操作系统内核首先调用就绪态中优先级最高的任务运行。系统运行过程中,始终保证运行任务的优先级高于就绪态中的所有任务。当运行着的任务因等待某一事件或延时而被挂起,或者有更高优先级的任务进入了就绪态,则内核中止当前运行着的任务,把CPU的使用权交给就绪态中优先级最高的任务。当中断发生时,系统运行中断服务程序,中断返回时,系统内核将进行任务调度,将优先级最高的就绪态任务转为运行态。例如,系统运行过程中发生了AD采样完成中断,程序进入AD采样完成中断服务程序;中断服务程序向邮箱ADResult发送 AD采样结果,由于任务TaskAD早先因等待邮箱ADResult而被挂起,所以此时任务TaskAD的状态被转为就绪态;中断返回时,内核进行任务调度,由于TaskAD是就绪态中优先级最高的任务(系统正常运行时TaskErr任务始终为挂起态),因此不管原先被中断的任务是什么,系统都将运行任务 TaskAD,这就保证了任务TaskAD具有足够快的任务响应速度。TaskAD执行一个循环后,又因等待邮箱ADResult而转为挂起态,内核再次进行任务调度,调用就绪态中的最高优先级任务运行。 5. 结论 本文结合无位置传感器永磁无刷直流电动机控制系统的设计,针对系统具体要求,确定了以PIC18F452单片机为主控器件,μC/OS-II作为软件平台的开发方案。实际的开发过程证明了这种开发模式能够满足系统高性能、低成本的设计要求,同时具备了较强的可扩展性和一定技术前瞻性。 值得说明的是,在嵌入式系统中使用RTOS,增强了系统实时性,简化了系统软件设计;同时,也增加了系统的开发成本。一方面,操作系统本省会耗费一定的硬件资源(例如程序存储器、数据存储器、定时器资源等等),增加了系统的硬件成本;另一方面,若购买商用的实时操作系统,需要额外的软件支出,即使是使用免费的实时内核,也要求开发者对内核本省有深入的理解,需要投入相当的精力。所以,虽然使用RTOS会给开发过程带来一定的便利,但针对具体的应用,是否使用RTOS,若使用,具体选择那种RTOS,都是制定系统方案时值得慎重考虑的问题。 参考文献: [1] 周意成,朱平平,张相军.无位置传感器的方波无刷直流电机压缩机负载的控制.电气自动化,2000 (3):16-19. [2] 3-Phase BLDC Motor Control with Sensorless Back EMF Zero Crossing Detection Using DSP56F80X (Motorola Order No. AN1914/D). Motorola Inc.,U.S.,2001. [3] PIC18FXX2 Data Sheet (DS39564B). Microchip Technology Inc.,U.S.,2002.[4] Labrosse Jean J.嵌入式实时操作系统μC/OS-II(第2版).邵贝贝译.北京:北京航空航天大学出版社,2003[!--empirenews.page--]

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

在嵌入式系统开发中,整型溢出是引发安全漏洞和系统故障的常见原因。据MITRE统计,CWE-190(整数溢出)位列嵌入式安全漏洞前三。本文从工程实践角度,探讨边界检查算法与数据类型选择的协同防护策略。

关键字: 边界检查算法 嵌入式系统 整型溢出

在嵌入式系统广泛应用的今天,网络通信已成为其不可或缺的功能。然而,受限于资源、功耗和实时性要求,嵌入式系统中的TCP/IP协议栈性能优化成为关键挑战。本文将从协议栈选型、参数调优、硬件加速及代码优化等方面,探讨嵌入式系统...

关键字: 网络协议栈 嵌入式系统

在嵌入式物联网设备中,Wi-Fi模块是实现高速数据传输的核心组件。然而,受限于MCU资源、协议栈效率及网络环境,实际吞吐量常低于理论带宽的30%。本文以ESP32-S3(支持Wi-Fi 6,最大速率150Mbps)为例,...

关键字: Wi-Fi 嵌入式系统

嵌入式系统开发中,硬件与软件高度耦合,复杂度高,一次性集成所有模块调试极易陷入“问题定位难、复现率低”的困境。分步调试法通过“最小功能验证→模块逐步扩展→多模块协同”的渐进式策略,可显著提升调试效率。本文以STM32微控...

关键字: 嵌入式系统 分步调试法

在物联网设备、可穿戴设备等嵌入式场景中,电池寿命是制约产品竞争力的核心指标。低功耗设计需贯穿硬件选型、系统架构到软件策略的全流程,其中休眠模式切换与电源管理芯片(PMIC)的精细配置是关键环节。本文从实际工程角度,解析如...

关键字: 低功耗设计 PMIC配置 嵌入式系统

在嵌入式系统开发中,性能优化与功耗控制是相互制约的核心挑战。通过对STM32F4系列MCU的实测分析,发现通过针对性代码优化可使计算密集型任务执行时间缩短62%,而结合精准功耗测量可进一步降低系统能耗35%。本文结合具体...

关键字: 嵌入式系统 代码优化

在物联网与工业4.0深度融合的今天,嵌入式系统已成为能源管理、智能制造等关键领域的基础设施。然而,资源受限与网络暴露的双重特性,使其成为攻击者觊觎的“数字靶心”。通过内核配置裁剪与编译优化协同加固,可构建“攻防一体”的安...

关键字: 嵌入式系统 内核配置 物联网

在物联网与工业4.0深度融合的背景下,嵌入式系统作为关键基础设施,其通信协议栈的性能直接影响系统实时性、可靠性和安全性。然而,受限于资源约束与硬件特性,传统协议栈在嵌入式场景中常面临内存拷贝、锁竞争、缓存效率低下等瓶颈。...

关键字: 通信协议栈 嵌入式系统

在电池供电的嵌入式系统中,功耗优化直接决定产品续航能力。通过示波器与专业功耗分析仪的协同测量,可实现从瞬态脉冲到长期统计的全面功耗量化分析,为低功耗设计提供精确数据支撑。

关键字: 嵌入式系统 示波器

在嵌入式系统开发中,状态机作为一种高效的任务调度模型,通过将复杂逻辑分解为离散状态和转移条件,显著提升了系统的可维护性和实时性。本文以智能交通信号灯控制系统为例,阐述状态机设计在嵌入式任务调度中的具体实现方法。

关键字: 状态机 嵌入式系统
关闭