DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1262|回复: 0
打印 上一主题 下一主题

[待整理] TI基于Concerto双核MCU的PRIME电力线通信数据集中器方案

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-26 17:31:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
摘要
          本文档介绍了采用C2000系列双核(CM3+C28x)微控制器实现的,基于PRIME标准的电力线通信(PLC)数据集中器方案。本方案通过一颗Concerto MCU加SDRAM实现完整的PRIME协议栈,提供波特率115200bps的UART异步串行端口给客户端主机进行网络管理及数据通信,为需要低成本实现数据集中器功能的场合提供了有效的解决方案。
         
        简介
          PRIME-PoweRline Intelligent Metering Evolution标准是由西班牙Iberdrola电力公司联合有关的PLC芯片、系统、电表等厂商,为窄带PLC电力线通信制定的远程抄表技术标准,包括物理层和MAC层的数据传输标准。该技术的协议开放,实施无版权费用,不同厂商的产品能够实现互联互通。TI采用低成本的DSP控制器,以软件的方式来实现PRIME协议,相较其他厂商以专用芯片ASIC的实现方式,提高了应用的灵活性。
         
        事实上,早前TI已经采用OMAP1808实现了PRIME数据集中器的完整功能。本文介绍的方案,主要是将OMAP平台的DC方案移植到单芯片Concerto上,实现一颗芯片完成PRIME的上层和底层MAC协议以及物理层协议,适用于低成本的嵌入式数据集中器应用,因此,我们也把该数据集中器方案简称为EDC,即Embedded Data Concentrate。
        OMAP1808平台的DC方案基于Linux操作系统,而本EDC方案基于TIRTOS操作系统,上层和下层MAC通信采用内部数据共享,不但系统精简很多,占用资源少,而且数据更加可靠,除了没有TCP/IP接口之外,所能管理及连接的节点数量与OMAP平台的DC方案无异。
         
        1 EDC系统架构
          本方案采用Concerto系列芯片F28M35H52C1作为主芯片,处理PRIME协议的UPPER MAC及LOW MAC, PHY层协议。F28M35H52C1是一款双核的MCU,它内部包含了Cortex m3主系统和TI C28x控制子系统两个MCU系统,每个系统分别有512KB的Flash空间,Cortex m3独立使用32KB RAM,TI C28x独立使用36KB RAM,另外还有可配置使用权的 64KB的共享RAM(在EDC系统中全部被分配给C28x使用)和2KB的IPC  Message RAM。在EDC系统应用中,Cortex m3核工作主频为75MHz,它负责处理Upper  MAC协议,C28x核工作主频为150MHz,它负责处理Low MAC及PHY层协议,两个核之间通过IPC内部数据共享区机制进行通信。主芯片MCU外加一个8M Bytes的SDRAM,由CM3核进行访问,用来存储节点信息数据库等数据,目前系统使用的大小约为3M Bytes;另外有一个128KByts 的EEPROM,由C28x访问,用来存储系统掉电参数;模拟前端采用TI AFE031,支持三相和单相连接,由C28x核通过SPI接口对其进行控制。系统框图如图1 所示。其中,CM3 通过1个GPIO口控制一个LED,在系统正常工作时以1Hz频率进行显示;C28x通过3个GPIO控制另外三个LED,分别指示C28x工作状态及PLC通信状态。
           
       
        图1 PRIME EDC系统架构示意图

         
        2 EDC方案特性
          单芯片实现PLC PRIME DC完整功能。
           
          提供UART接口与PC或用户Host Processor进行通信,通信速率115200bps,8位数据位,1位停止位,无奇偶校验。
         
        提供PC(Ubuntu  Linux OS)客户端软件进行模拟测试,客户端软件通过mgmt及IEC-432 API接口与EDC上运行的服务器端进行通信,用户可参考这些客户端软件示例代码实现Host代码设计,客户端软件包括:
         
                Management tool application
         
                Base node conference tool application
         
                IEC 61334-4-32 data transfer application   
              
        硬件设计保留C28x的SCIA UART通信接口,便于客户使用TI提供的PC端ZCG工具软件,通过连接PC的COM口或USB-UART转接板至该接口来单独对PLC PHY层参数进行测试。
         
        3 硬件设计
          3.1 参考原理图
          硬件相关的原理图部分设计请参考图2,图3,图4 所示。
           
       

        图2  主芯片MCU参考设计原理图

         

       

           
        图3  SDRAM及UART接口参考设计原理图

         

       

        图4  AFE031周边电路参考设计原理图

         

         
          3.2电路板
          EDC电路板实物如图5及图6所示。电路板正面放置MCU, AFE031及变压器,电源IC等大部分器件,背面放置了一片SDRAM。MCU芯片左上方的彩色线连接部分为UART通信接口及UART打印信息输出接口,左侧为15V供电输入接口及电表连接接口,该22pin接口按照中国国家电网《Q/GDW 375.2-2009》标准第6.3.1节中对集中器载波模块的接口定义进行设计,其中的UART接口连接至MCU CM3核的UART0;右侧黑胶布遮盖部分为外接三相电力线接口,该接口同样按照中国国家电网《Q/GDW 375.2-2009》标准第6.3.2节中对集中器载波模块的载波耦合接口定义进行设计,Service node可以通过该三相电力线接口与EDC 进行单相或者三相的信号连接。EDC上电正常工作时,图5所示右下方的LED(LED-4)灯会以1Hz 的频率闪烁。
           
       
        图5  EDC电路板正面图

         

       

        图6  EDC电路板背面图      

                 
          3.3 EDC与PLC节点组网连接
          本例采用TI的TMDSPLCKIT-V3作为PLC节点,EDC与两个PLC节点的连接如图7所示,EDC的UART0接口与Linux PC 客户端通过一个UART-USB转接小板连接,连接如图8所示。
           
       

        图7  EDC与PLC节点连接示意图

         

       

        图8  EDC与PC连接示意图

         
        4 EDC可以实现的功能

           
  •                 支持多达1200个节点的注册/注销        
  •                 支持最多3600路的Unicast MAC连接/释放        
  •                 Keep Alive功能及自动调节Keep Alive检查间隔时间        
  •                 IEC-61334-4-32逻辑链路层        
  •                 Appemu数据传输测试        
  •                 支持节点中继        
  •                 节点promotion和demotion        
  •                 Multicast MAC连接/释放        
  •                 单点和多点firmware upgrade        
  •                 支持使用IEC 61334-4-32服务的外部应用        
  •                 支持外部管理GUI        
  •                 支持Linux客户端命令进行DC一致性测试
           
          5 EDC运行需要的目标代码及Linux客户端软件
          Concerto目标代码:prime_dc_concerto_cm3.out prime_dc_concerto_c28x.out
         
        Linux客户端软件:uart_intf,  mgmt_cli, ext432App, bn_conf_tool
         
        6 PRIME EDC基本功能演示
          PRIME EDC的功能演示基于一个PRIME网络进行,该网络由一个base node和几个service node组成,EDC就是其中的base node。功能演示包括以下几个部分:
         
        1.节点注册、节点注销
         
        2.Keep Alive监测
         
        3.节点连接、断开连接
         
        4.节点升级(至中继节点),节点降级(至终端节点)
         
        5.按照IEC-61334-4-32协议进行数据传输
         
        6.固件在线更新(单播和群播)
         
        参考图7的网络连接示意图搭建演示网络,参考图8连接EDC的UART1至Linux PC,给EDC及service node加电后,系统将自动完成网络连接。通过在Linux PC端的进行对应的命令行操作,即可实现以上功能演示。Linux PC端的命令行操作参考后续章节介绍。
         
        7 Linux PC端命令行操作说明
          准备一台安装ubuntu Linux OS的PC,将提供的Linux客户端软件:uart_intf,  mgmt_cli, ext432App, bn_conf_tool复制到Home路径下。
           
         
          7.1 打开UART中继
          在Linux PC上打开一个Terminal,进入uart_intf路径,执行“make clean”命令,清除旧的可执行文件,然后执行“make PREFIX=”命令,生成适合本系统的可执行文件uart_intf。在当前路径下,键入以下命令开启UART 中继:
         
        sudo./uart_info–c/dev/ttyUSB0
         
        命令被正常执行后,显示以下提示:
           
       

        图9  Linux UART连接提示

         
        其中的TCP port<57777>, TCP port<56666>, TCP port<58888>为后续数据传输,网络管理及DC一致性检查等客户端进程所要用到的端口参数。
         
        7.2 mgmt网络管理工具客户端及其常用命令参考
          在Linux PC上打开一个新的Terminal,进入mgmt_cli路径,执行“make clean”命令,清除旧的可执行文件,然后执行“make PREFIX=”命令,生成适合本系统的可执行文件pdc_mgmt_cli。
         
                        在当前路径下,键入以下命令运行网络管理工具客户端:
         
                        ./pdc_mgmt_cli&ndash;p 56666
         
                        命令正常执行后,显示以下提示:
         
                        connecting to 127.0.0.1:56666
         
                        connected
                          >>
         
        在>>提示符下键入?后回车,即可列出该客户端支持的所有命令列表;在使用某一命令时,如不知道如何使用参数,也可在命令后加空格和?,命令所需要的参数及参数范围就会显示出来。
         
        部分常用命令说明:
         
        7.2.1 ?
          功能:列出所有命令列表如下:
         
        get-dc-std
         
        get-node-info
         
        get-switch-info
         
        get-terminal-info
         
        get-mac-uc-conn-info
         
        unreg-node
         
        close-mac-uc-conn
         
                  pro-term
         
                  dem-switch
         
                  set-ka-tmo
         
                  get-ka-tmo
         
                  ena-ka-auto-adj
         
                       dis-ka-auto-adj
         
                       start-uc-fu
         
                       start-mc-fu
         
                       show-uc-fu
         
                       show-mc-fu
         
                       cancel-fu
         
                       add-to-black-list
         
                       rm-from-black-list
         
                       show-black-list
         
                       ena-event
         
                       dis-event
         
                       get-pib
         
                       set-pib
         
                       reboot-sn
         
                      send-new-image
         
                      del-curr-image
         
                     show-curr-image
         
                     add-node-to-fu-mc-gp
         
                     rm-node-from-fu-mc-gp
         
                     del-fu-mc-gp
         
                   show-fu-mc-gp
         
                   get-phy-tx-paras
         
                   set-phy-tx-paras
         
                  set-alv-params
         
                  get-alv-params      
         
        7.2.2  CTRL+c
          功能:退出mgmt客户端,回到Linux命令行
         
        7.2.3 get-dc-std
          功能:获取DC执行的标准
         
        示例:
         
        >>get-dc-std
         
        PRIME
         
        7.2.4 get-node-info
          功能:获取当前连接到PRIME网络的节点信息。
         
        示例:
           
       

         
        7.2.5 get-ka-tmo
          功能:获取当前Keep Alive检查超时时间
         
        示例:
         
        >>get-ka-tmo
         
        128 seconds
         
        7.2.6 set-ka-tmo
          功能:设置当前Keep Alive检查超时时间
         
        示例:
         
        >>set-ka-tmo&ndash;t 32
         
        Keep alive timeout is now 32 seconds.
         
        7.2.7 pro-term
          功能:将终端节点升级为中继节点
         
        示例:
         
        >>pro-term-l 2 &ndash;s 0
         
        Request sent…
         
        7.2.8 send-new-image
          功能:下载固件到DC
         
        示例:
         
        >>send-new-image &ndash;f /filefolder/prime_7.6.1.sbin&ndash;p 128
         
        7.2.9 show-curr-image
          功能:查看当前DC 中存储的固件信息
         
        示例:
         
        >>show-curr-image
         
        Image file name: /filefolder/prime_7.6.1.sbin
         
        Image CRC: 0xa57439b1
         
        Image size: 187958 bytes
         
        7.2.10 del-curr-image
          功能:删除当前DC 中存储的固件。下载新的固件之前,必须先执行该命令删除当前固件。
         
        示例:
         
        >>del-curr-image
         
        7.2.11 start-uc-fu
          功能:启动unicast固件更新
         
        示例:
         
        >>start-uc-fu&ndash;f drunk.sbin&ndash;e 55:55:55:55:55:55&ndash;p 128
         
        7.2.12 cancel-fu
          功能:取消当前固件更新
         
        示例:
         
        >>cancel-fu
         
        7.2.13 show-uc-fu
          功能:显示当前固件更新状态及信息
         
        示例:
           
          >>show-uc-fu
         
        Image File Name: /filefolder/prime_7.6.1.sbin
         
        Node: 55:55:55:55:55:55
         
        Image CRC: 0xa57439b1
         
        Page Size: 128 bytes
         
        Image Size: 187958 bytes
         
        Page Count: 1469
         
        Pgae Sent: 980
         
        Communication State: CONNECTED
         
        Upgrade FSM State: PAGE TRANSFER
           
         
          7.3 IEC61334-4-32数据通信上层应用示例
          PRIME EDC允许外部应用遵循IEC61334-4-32协议来与网络中的节点进行通信。本方案提供了Linux平台的应用程序参考代码。
         
        在Linux PC上打开一个新的Terminal,进入ext432app路径,执行“make clean”命令,清除旧的可执行文件,然后执行“make PREFIX=”命令,生成适合本系统的可执行文件pdc_app432。
         
        在当前路径下,键入以下命令启动数据通信进程:
         
        /pdc_app432&ndash;p 57777&ndash;l 64&ndash;ds 1&ndash;da 2
         
        参数说明:
           

           
  •                 -l用来指定要下发的数据字节数,参数取值范围为1~200;        
  •                 -ds用来指定目标节点的SAP地址,参数取值范围0~191;        
  •                 -da用来指定通信连接的节点432地址,该地址从get-node-info命令所获得的节点信息中获取。
           
          执行pdc_app432命令之前,需要参考图10,用ZGUI工具将TI PLC V3-KIT配置为AppEmu-LLC模式。在该模式下,当Linux客户端执行pdc_app432命令后,PLC Module就会将收到的数据回传给DC,DC再通过UART上传到PC,并在pdc_app432所在的Terminal上显示出来。传输190个字节的数据包时,运行结果参考图11所示。
           
       

        图10  用ZGUI工具配置节点为AppEMU-LLC模式

         

       

        图11  数据传输测试运行结果

         
        参考文档
          1.TI PRIME DC Software User Guide
        2.TI PRIME DC IEC-61334-4-32 API SPEC
        3.Concerto F28M35x Technical Reference Manual(SPRUH22B)
        4.Concerto Microcontrollers (SPRS742C)
        5.Q/GDW 375.2-2009《电力用户用电信息采集系统型式规范:集中器型式规范》
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-12-29 12:45 , 耗时 0.095651 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表