EDN China > 设计实例 > 嵌入式系统 > MCU(单片机应用) > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 基于Cortex-M3内核STM32的三相多功能电能表解决方案

孙树印?? 武汉力源信息技术有限公司技术经理?? 张亚凡?? 李扬应用工程师?? 2013年04月23日 ?? 收藏1
 电能表作为电能计量的基本设备,受到国家电力部门的长期重视,电能表生产企业更是不遗余力地寻求设计与开发性能俱佳且成本更低的解决方案。目前国内的电能表设计已经走过了由8位MCU向通用DSP甚至专用DSP的变革,通用DSP的应用方案的劣势在于DSP的专业应用和嵌入程度不够深的问题,成本偏高;而专用DSP功能相对固定,这样给电能表设计和生产厂家带来功能差异化空间不足的困难。基于ARM的方案也已经出现,但是适合应用的ARM7 TDMI在性能上不尽人意,同时外设资源不足;而更高端的ARM9系统的复杂程度很高,成本也较高。选择一颗合适且低成本的微处理器日益成为电能表行业的关键所在,直到意法半导体公司(STMicroelectronic公司,下称ST)STM32的出现为电能表设计的专门化和定制化带来了崭新的机遇和空间。

  一、关于CORTEX-M3与STM32

  2005年ARM公司发布其最新一代ARM v7内核,命名为Cortex,同ARM7/9/10/11相比在架构上有了革命性突破,性能上更是本质的飞越,Cortex系列包含三个系列,-A/-R/-M。Cortex-M3特别针对功耗和价格敏感的嵌入应用领域,同时具备高性能,它采用高效的哈佛结构三级流水线,达到1.25DMIPS/MHz,在功耗上更是达到0.06mW/MHz。Cortex-M3使用Thumb-2指令集,自动16/32位混合排列,具有很高的代码密度。单周期的32位乘法以及硬件除法器,保证Cortex-M3的运算能力有大幅提高,在一些对计算能力要求相对较低而嵌入式要求相对较高的场合,STM32就具有取代传统DSP的潜力甚至优势。Cortex-M3包含嵌套向量中断控制器NVIC,中断响应速度最快仅6周期,内部集成总线矩阵,支持DMA操作及位映射。

  STM32是ST公司在业界最先推出的基于ARM Cortex-M3内核产品,继承了Cortex-M3内核的优良血统,同时增加了ST高性能的外设资源,FLASH、SRAM存储器,丰富的串行通信接口,如IIC、SPI、USART、CAN、USB等,以及12位的ADC和DAC模块,支持外部存储器访问的灵活的静态存储器控制器FSMC。

  二、基于STM32的电能表方案

  根据电能表的功能和误差精度的需求,我们选用了ST公司STM32的增强型系列STM32F103xx,最高工作频率为72MHz。在程序设计上除了完成快速数据处理工作以外,还针对系统非线性失真进行了修正和补偿。

  电能表系统组成框图如图1所示:

基于Cortex-M3内核STM32的三相多功能电能表解决方案

  (一)采集数据处理与计算

  在实际应用中,电力信号通过互感器采集到电能表中,通过一个6通道16位模拟前端处理器(AD73360)进行A/D转换,转换成数字信号并传输到STM32中。AD73360是6通道同步采样的Σ-ΔADC器件,它内置了基本型电压基准及通道内置独立的PGA(可编程增益放大器),非常适合三相电流电压信号的同步采样,在小信号的时候,通过调整通道PGA可以获得合适的动态范围从而保证微弱信号的计量精度。电能表数据采集框图示于图2。

基于Cortex-M3内核STM32的三相多功能电能表解决方案

  电压电流输入信号首先需要RC滤波网络滤波和数据采样,然后进行A/D转换。AD73360有独立的时钟源,可配置为自动数据采集与发送模式,通过SPI总线不断的将数据传向STM32。STM32内的Cortex-M3内核对输入的数字信号进行处理,完成数字滤波,过零点检测,得到基本的电流电压数据,经过时间积分计算和转换得到相应的电能计量。

  (二)采样电路和滤波网络

  由于被采样信号为高电压信号和大电流信号,我们需要对被采样信号做高保真转换为双极性的电压信号以便用AD电路离散化处理,而AD73360是单电源供电模拟前端,所以我们需要令输入信号位于AD73360的动态范围的正中。采用的方法是:定义ADC工作电压为5伏(动态范围0~5V),选择参考电压2.5伏,将AD差分输入的负端直接接到参考电压输入,差分输入的正端接被测信号。具体电路如图3。

基于Cortex-M3内核STM32的三相多功能电能表解决方案

  在实际电路中,相电流信号经CT变换为低电压信号,相电压则通过高精度电阻网络分压得到线性的低电压信号,信号幅度范围需保证在5V之内。

  (三)AD73360与STM32的接口

  因为AD73360产生的基础数据总量庞大,为了尽量少的占用CPU时间,需要使用STM32内部的硬件SPI和DMA单元实现数据传输,而STM32的内核根据DMA的传输结果来批量获取基础数据并启动数据处理程序。硬件连接关系如图4所示。

基于Cortex-M3内核STM32的三相多功能电能表解决方案

  由STM32的GPIO控制AD73360的SE和RESET,并用一个外部中断输入脚来监听帧同步信号,这样才可以用程序来保证数据帧内容的字节对应关系。

  在STM32的硬件设置程序中,需要关闭SPI的所有中断,设置SPI为从模式,并选取一个DMA通道与之协同工作,自动将SPI从模式收到的数据保存在指定的内存地址。为了令AD73360正确采集数据,还必须根据使用要求配置AD73360的内部寄存器,令AD73360处于数据模式并主动向STM32发送采样数据。

《电子设计技术》网站版权所有,谢绝转载


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

Cortex-M3内核? STM32? AD73360? 三相电能表?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈