TI 基于Concerto 雙核MCU 的PRIME 電力線通信數(shù)據(jù)集中器方案
摘要
本文檔介紹了采用C2000系列雙核(CM3+C28x)微控制器實(shí)現(xiàn)的,基于PRIME標(biāo)準(zhǔn)的電力線通信(PLC)數(shù)據(jù)集中器方案。本方案通過(guò)一顆Concerto MCU加SDRAM實(shí)現(xiàn)完整的PRIME協(xié)議棧,提供波特率115200bps的UART異步串行端口給客戶端主機(jī)進(jìn)行網(wǎng)絡(luò)管理及數(shù)據(jù)通信,為需要低成本實(shí)現(xiàn)數(shù)據(jù)集中器功能的場(chǎng)合提供了有效的解決方案。
簡(jiǎn)介
PRIME-PoweRline Intelligent Metering Evolution標(biāo)準(zhǔn)是由西班牙Iberdrola電力公司聯(lián)合有關(guān)的PLC芯片、系統(tǒng)、電表等廠商,為窄帶PLC電力線通信制定的遠(yuǎn)程抄表技術(shù)標(biāo)準(zhǔn),包括物理層和MAC層的數(shù)據(jù)傳輸標(biāo)準(zhǔn)。該技術(shù)的協(xié)議開(kāi)放,實(shí)施無(wú)版權(quán)費(fèi)用,不同廠商的產(chǎn)品能夠?qū)崿F(xiàn)互聯(lián)互通。TI采用低成本的DSP控制器,以軟件的方式來(lái)實(shí)現(xiàn)PRIME協(xié)議,相較其他廠商以專用芯片ASIC的實(shí)現(xiàn)方式,提高了應(yīng)用的靈活性。
事實(shí)上,早前TI已經(jīng)采用OMAP1808實(shí)現(xiàn)了PRIME數(shù)據(jù)集中器的完整功能。本文介紹的方案,主要是將OMAP平臺(tái)的DC方案移植到單芯片Concerto上,實(shí)現(xiàn)一顆芯片完成PRIME的上層和底層MAC協(xié)議以及物理層協(xié)議,適用于低成本的嵌入式數(shù)據(jù)集中器應(yīng)用,因此,我們也把該數(shù)據(jù)集中器方案簡(jiǎn)稱為EDC,即Embedded Data Concentrate。
OMAP1808平臺(tái)的DC方案基于Linux操作系統(tǒng),而本EDC方案基于TIRTOS操作系統(tǒng),上層和下層MAC通信采用內(nèi)部數(shù)據(jù)共享,不但系統(tǒng)精簡(jiǎn)很多,占用資源少,而且數(shù)據(jù)更加可靠,除了沒(méi)有TCP/IP接口之外,所能管理及連接的節(jié)點(diǎn)數(shù)量與OMAP平臺(tái)的DC方案無(wú)異。
1 EDC系統(tǒng)架構(gòu)
本方案采用Concerto系列芯片F(xiàn)28M35H52C1作為主芯片,處理PRIME協(xié)議的UPPER MAC及LOW MAC, PHY層協(xié)議。F28M35H52C1是一款雙核的MCU,它內(nèi)部包含了Cortex m3主系統(tǒng)和TI C28x控制子系統(tǒng)兩個(gè)MCU系統(tǒng),每個(gè)系統(tǒng)分別有512KB的Flash空間,Cortex m3獨(dú)立使用32KB RAM,TI C28x獨(dú)立使用36KB RAM,另外還有可配置使用權(quán)的 64KB的共享RAM(在EDC系統(tǒng)中全部被分配給C28x使用)和2KB的IPC Message RAM。在EDC系統(tǒng)應(yīng)用中,Cortex m3核工作主頻為75MHz,它負(fù)責(zé)處理Upper MAC協(xié)議,C28x核工作主頻為150MHz,它負(fù)責(zé)處理Low MAC及PHY層協(xié)議,兩個(gè)核之間通過(guò)IPC內(nèi)部數(shù)據(jù)共享區(qū)機(jī)制進(jìn)行通信。主芯片MCU外加一個(gè)8M Bytes的SDRAM,由CM3核進(jìn)行訪問(wèn),用來(lái)存儲(chǔ)節(jié)點(diǎn)信息數(shù)據(jù)庫(kù)等數(shù)據(jù),目前系統(tǒng)使用的大小約為3M Bytes;另外有一個(gè)128KByts 的EEPROM,由C28x訪問(wèn),用來(lái)存儲(chǔ)系統(tǒng)掉電參數(shù);模擬前端采用TI AFE031,支持三相和單相連接,由C28x核通過(guò)SPI接口對(duì)其進(jìn)行控制。系統(tǒng)框圖如圖1 所示。其中,CM3 通過(guò)1個(gè)GPIO口控制一個(gè)LED,在系統(tǒng)正常工作時(shí)以1Hz頻率進(jìn)行顯示;C28x通過(guò)3個(gè)GPIO控制另外三個(gè)LED,分別指示C28x工作狀態(tài)及PLC通信狀態(tài)。
圖1 PRIME EDC系統(tǒng)架構(gòu)示意圖
2 EDC方案特性
單芯片實(shí)現(xiàn)PLC PRIME DC完整功能。
提供UART接口與PC或用戶Host Processor進(jìn)行通信,通信速率115200bps,8位數(shù)據(jù)位,1位停止位,無(wú)奇偶校驗(yàn)。
提供PC(Ubuntu Linux OS)客戶端軟件進(jìn)行模擬測(cè)試,客戶端軟件通過(guò)mgmt及IEC-432 API接口與EDC上運(yùn)行的服務(wù)器端進(jìn)行通信,用戶可參考這些客戶端軟件示例代碼實(shí)現(xiàn)Host代碼設(shè)計(jì),客戶端軟件包括:
Management tool application
Base node conference tool application
IEC 61334-4-32 data transfer application
硬件設(shè)計(jì)保留C28x的SCIA UART通信接口,便于客戶使用TI提供的PC端ZCG工具軟件,通過(guò)連接PC的COM口或USB-UART轉(zhuǎn)接板至該接口來(lái)單獨(dú)對(duì)PLC PHY層參數(shù)進(jìn)行測(cè)試。
3 硬件設(shè)計(jì)
3.1 參考原理圖
硬件相關(guān)的原理圖部分設(shè)計(jì)請(qǐng)參考圖2,圖3,圖4 所示。
圖2 主芯片MCU參考設(shè)計(jì)原理圖
圖3 SDRAM及UART接口參考設(shè)計(jì)原理圖
圖4 AFE031周邊電路參考設(shè)計(jì)原理圖
3.2電路板
EDC電路板實(shí)物如圖5及圖6所示。電路板正面放置MCU, AFE031及變壓器,電源IC等大部分器件,背面放置了一片SDRAM。MCU芯片左上方的彩色線連接部分為UART通信接口及UART打印信息輸出接口,左側(cè)為15V供電輸入接口及電表連接接口,該22pin接口按照中國(guó)國(guó)家電網(wǎng)《Q/GDW 375.2-2009》標(biāo)準(zhǔn)第6.3.1節(jié)中對(duì)集中器載波模塊的接口定義進(jìn)行設(shè)計(jì),其中的UART接口連接至MCU CM3核的UART0;右側(cè)黑膠布遮蓋部分為外接三相電力線接口,該接口同樣按照中國(guó)國(guó)家電網(wǎng)《Q/GDW 375.2-2009》標(biāo)準(zhǔn)第6.3.2節(jié)中對(duì)集中器載波模塊的載波耦合接口定義進(jìn)行設(shè)計(jì),Service node可以通過(guò)該三相電力線接口與EDC 進(jìn)行單相或者三相的信號(hào)連接。EDC上電正常工作時(shí),圖5所示右下方的LED(LED-4)燈會(huì)以1Hz 的頻率閃爍。
圖6 EDC電路板背面圖
3.3 EDC與PLC節(jié)點(diǎn)組網(wǎng)連接
本例采用TI的TMDSPLCKIT-V3作為PLC節(jié)點(diǎn),EDC與兩個(gè)PLC節(jié)點(diǎn)的連接如圖7所示,EDC的UART0接口與Linux PC 客戶端通過(guò)一個(gè)UART-USB轉(zhuǎn)接小板連接,連接如圖8所示。
圖7 EDC與PLC節(jié)點(diǎn)連接示意圖
圖8 EDC與PC連接示意圖
4 EDC可以實(shí)現(xiàn)的功能
- 支持多達(dá)1200個(gè)節(jié)點(diǎn)的注冊(cè)/注銷
- 支持最多3600路的Unicast MAC連接/釋放
- Keep Alive功能及自動(dòng)調(diào)節(jié)Keep Alive檢查間隔時(shí)間
- IEC-61334-4-32邏輯鏈路層
- Appemu數(shù)據(jù)傳輸測(cè)試
- 支持節(jié)點(diǎn)中繼
- 節(jié)點(diǎn)promotion和demotion
- Multicast MAC連接/釋放
- 單點(diǎn)和多點(diǎn)firmware upgrade
- 支持使用IEC 61334-4-32服務(wù)的外部應(yīng)用
- 支持外部管理GUI
- 支持Linux客戶端命令進(jìn)行DC一致性測(cè)試
5 EDC運(yùn)行需要的目標(biāo)代碼及Linux客戶端軟件
Concerto目標(biāo)代碼:prime_dc_concerto_cm3.out prime_dc_concerto_c28x.out
Linux客戶端軟件:uart_intf, mgmt_cli, ext432App, bn_conf_tool
6 PRIME EDC基本功能演示
PRIME EDC的功能演示基于一個(gè)PRIME網(wǎng)絡(luò)進(jìn)行,該網(wǎng)絡(luò)由一個(gè)base node和幾個(gè)service node組成,EDC就是其中的base node。功能演示包括以下幾個(gè)部分:
1.節(jié)點(diǎn)注冊(cè)、節(jié)點(diǎn)注銷
2.Keep Alive監(jiān)測(cè)
3.節(jié)點(diǎn)連接、斷開(kāi)連接
4.節(jié)點(diǎn)升級(jí)(至中繼節(jié)點(diǎn)),節(jié)點(diǎn)降級(jí)(至終端節(jié)點(diǎn))
5.按照IEC-61334-4-32協(xié)議進(jìn)行數(shù)據(jù)傳輸
6.固件在線更新(單播和群播)
參考圖7的網(wǎng)絡(luò)連接示意圖搭建演示網(wǎng)絡(luò),參考圖8連接EDC的UART1至Linux PC,給EDC及service node加電后,系統(tǒng)將自動(dòng)完成網(wǎng)絡(luò)連接。通過(guò)在Linux PC端的進(jìn)行對(duì)應(yīng)的命令行操作,即可實(shí)現(xiàn)以上功能演示。Linux PC端的命令行操作參考后續(xù)章節(jié)介紹。
7 Linux PC端命令行操作說(shuō)明
準(zhǔn)備一臺(tái)安裝ubuntu Linux OS的PC,將提供的Linux客戶端軟件:uart_intf, mgmt_cli, ext432App, bn_conf_tool復(fù)制到Home路徑下。
7.1 打開(kāi)UART中繼
在Linux PC上打開(kāi)一個(gè)Terminal,進(jìn)入uart_intf路徑,執(zhí)行“make clean”命令,清除舊的可執(zhí)行文件,然后執(zhí)行“make PREFIX=”命令,生成適合本系統(tǒng)的可執(zhí)行文件uart_intf。在當(dāng)前路徑下,鍵入以下命令開(kāi)啟UART 中繼:
sudo./uart_info–c/dev/ttyUSB0
命令被正常執(zhí)行后,顯示以下提示:
圖9 Linux UART連接提示
其中的TCP port<57777>, TCP port<56666>, TCP port<58888>為后續(xù)數(shù)據(jù)傳輸,網(wǎng)絡(luò)管理及DC一致性檢查等客戶端進(jìn)程所要用到的端口參數(shù)。
7.2 mgmt網(wǎng)絡(luò)管理工具客戶端及其常用命令參考
在Linux PC上打開(kāi)一個(gè)新的Terminal,進(jìn)入mgmt_cli路徑,執(zhí)行“make clean”命令,清除舊的可執(zhí)行文件,然后執(zhí)行“make PREFIX=”命令,生成適合本系統(tǒng)的可執(zhí)行文件pdc_mgmt_cli。
在當(dāng)前路徑下,鍵入以下命令運(yùn)行網(wǎng)絡(luò)管理工具客戶端:
./pdc_mgmt_cli–p 56666
命令正常執(zhí)行后,顯示以下提示:
connecting to 127.0.0.1:56666
connected
>>
在>>提示符下鍵入?后回車,即可列出該客戶端支持的所有命令列表;在使用某一命令時(shí),如不知道如何使用參數(shù),也可在命令后加空格和?,命令所需要的參數(shù)及參數(shù)范圍就會(huì)顯示出來(lái)。
部分常用命令說(shuō)明:
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執(zhí)行的標(biāo)準(zhǔn)
示例:
>>get-dc-std
PRIME
7.2.4 get-node-info
功能:獲取當(dāng)前連接到PRIME網(wǎng)絡(luò)的節(jié)點(diǎn)信息。
示例:
7.2.5 get-ka-tmo
功能:獲取當(dāng)前Keep Alive檢查超時(shí)時(shí)間
示例:
>>get-ka-tmo
128 seconds
7.2.6 set-ka-tmo
功能:設(shè)置當(dāng)前Keep Alive檢查超時(shí)時(shí)間
示例:
>>set-ka-tmo–t 32
Keep alive timeout is now 32 seconds.
7.2.7 pro-term
功能:將終端節(jié)點(diǎn)升級(jí)為中繼節(jié)點(diǎn)
示例:
>>pro-term-l 2 –s 0
Request sent…
7.2.8 send-new-image
功能:下載固件到DC
示例:
>>send-new-image –f /filefolder/prime_7.6.1.sbin–p 128
7.2.9 show-curr-image
功能:查看當(dāng)前DC 中存儲(chǔ)的固件信息
示例:
>>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
功能:刪除當(dāng)前DC 中存儲(chǔ)的固件。下載新的固件之前,必須先執(zhí)行該命令刪除當(dāng)前固件。
示例:
>>del-curr-image
7.2.11 start-uc-fu
功能:?jiǎn)?dòng)unicast固件更新
示例:
>>start-uc-fu–f drunk.sbin–e 55:55:55:55:55:55–p 128
7.2.12 cancel-fu
功能:取消當(dāng)前固件更新
示例:
>>cancel-fu
7.2.13 show-uc-fu
功能:顯示當(dāng)前固件更新?tīng)顟B(tài)及信息
示例:
>>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數(shù)據(jù)通信上層應(yīng)用示例
PRIME EDC允許外部應(yīng)用遵循IEC61334-4-32協(xié)議來(lái)與網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行通信。本方案提供了Linux平臺(tái)的應(yīng)用程序參考代碼。
在Linux PC上打開(kāi)一個(gè)新的Terminal,進(jìn)入ext432app路徑,執(zhí)行“make clean”命令,清除舊的可執(zhí)行文件,然后執(zhí)行“make PREFIX=”命令,生成適合本系統(tǒng)的可執(zhí)行文件pdc_app432。
在當(dāng)前路徑下,鍵入以下命令啟動(dòng)數(shù)據(jù)通信進(jìn)程:
/pdc_app432–p 57777–l 64–ds 1–da 2
參數(shù)說(shuō)明:
- -l用來(lái)指定要下發(fā)的數(shù)據(jù)字節(jié)數(shù),參數(shù)取值范圍為1~200;
- -ds用來(lái)指定目標(biāo)節(jié)點(diǎn)的SAP地址,參數(shù)取值范圍0~191;
- -da用來(lái)指定通信連接的節(jié)點(diǎn)432地址,該地址從get-node-info命令所獲得的節(jié)點(diǎn)信息中獲取。
執(zhí)行pdc_app432命令之前,需要參考圖10,用ZGUI工具將TI PLC V3-KIT配置為AppEmu-LLC模式。在該模式下,當(dāng)Linux客戶端執(zhí)行pdc_app432命令后,PLC Module就會(huì)將收到的數(shù)據(jù)回傳給DC,DC再通過(guò)UART上傳到PC,并在pdc_app432所在的Terminal上顯示出來(lái)。傳輸190個(gè)字節(jié)的數(shù)據(jù)包時(shí),運(yùn)行結(jié)果參考圖11所示。
圖10 用ZGUI工具配置節(jié)點(diǎn)為AppEMU-LLC模式
圖11 數(shù)據(jù)傳輸測(cè)試運(yùn)行結(jié)果
參考文檔
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《電力用戶用電信息采集系統(tǒng)型式規(guī)范:集中器型式規(guī)范》