查看完整版本: TI基于Concerto双核MCU的PRIME电力线通信数据集中器方案

admin 发表于 2015-4-26 17:31:46

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

摘要
        本文档介绍了采用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的IPCMessage RAM。在EDC系统应用中,Cortex m3核工作主频为75MHz,它负责处理UpperMAC协议,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(UbuntuLinux 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参考设计原理图
       
       
       
        图3SDRAM及UART接口参考设计原理图
       
       
        图4AFE031周边电路参考设计原理图
       
       
        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 的频率闪烁。
       
       
        图5EDC电路板正面图
       
       
        图6EDC电路板背面图      
             
        3.3 EDC与PLC节点组网连接
        本例采用TI的TMDSPLCKIT-V3作为PLC节点,EDC与两个PLC节点的连接如图7所示,EDC的UART0接口与Linux PC 客户端通过一个UART-USB转接小板连接,连接如图8所示。
       
       
        图7EDC与PLC节点连接示意图
       
       
        图8EDC与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
       
        命令被正常执行后,显示以下提示:
       
       
        图9Linux 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.2CTRL+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《电力用户用电信息采集系统型式规范:集中器型式规范》
页: [1]
查看完整版本: TI基于Concerto双核MCU的PRIME电力线通信数据集中器方案