TI中文支持网
TI专业的中文技术问题搜集分享网站

TI PLC PHY Test Project問題

最近再做PLC的相關研究

自己本身有買一組TMDSPLCKIT-V3,目前跑TI_prime_phy_example 這個sample project有點問題

這project目的為透過電力線去做封包傳輸,但經由測試發現所接收到的封包與送出的封包內容不相同

所傳輸的封包在這project內是放在PHY_tx_ppdu_t這個行別的structure內,而接收到的封包則是存放在PHY_rxPpdu_t類別的structure

我的問題點在於

由於兩種封包的格式不同,在這main程式裡

PHY_tx_ppdu_t PHY_tx_ppdu_s;

PHY_tx_ppdu_s.length = PHY_TX_TEST_DEFAULT_PPDU_LEN;
PHY_tx_ppdu_s.level = PHY_TX_TEST_DEFAULT_LEVEL;
PHY_tx_ppdu_s.mcs = PHY_TX_TEST_DEFAULT_MOD;
PHY_tx_ppdu_s.txTime = PHY_TX_TEST_DEFAULT_TIME;

PHY_tx_ppdu_s.length = PHY_TX_TEST_DEFAULT_PPDU_LEN;
PHY_tx_ppdu_s.level = PHY_TX_TEST_DEFAULT_LEVEL;
PHY_tx_ppdu_s.mcs = PHY_TX_TEST_DEFAULT_MOD;
PHY_tx_ppdu_s.txTime = PHY_TX_TEST_DEFAULT_TIME;

PHY_tx_ppdu_s.ppduHdr_p = (Uint16 *)&hdrBuf[0];
PHY_tx_ppdu_s.ppduPld_p = (Uint16 *)&ppduBuf[0];

/* Fill the ppduBuf with ramp data*/
buf_p = (Uint16 *)ppduBuf;
for (idx = 0; idx < (PHY_TX_TEST_BUF_SIZE); idx++)
{
valueofbuf[idx] = ((((idx & 127) << 1) + 1) << 8) | ((idx & 127) << 1);
*buf_p++ = ((((idx & 127) << 1) + 1) << 8) | ((idx & 127) << 1);
}

buf_p = (Uint16 *)hdrBuf;
for (i = 0; i < PHY_TX_TEST_HDR_SIZE; i++)
{
*buf_p++ = ((((i & 127) << 1) + 1) << 8) | ((i & 127) << 1);
//*buf_p++ = 1;
}

傳輸封包內容是如此宣告

其中PHY_TX_TEST_DEFAULT_PPDU_LEN = 40

但是所接收到的封包長度卻為47

void cb_ppdu(PHY_ev_t ev, PHY_cbData_t *data_p)
{

if (data_p->status == PHY_STAT_SUCCESS)
{

PHY_rxPpdu_t * receive_address;
receive_address = (PHY_rxPpdu_t *)(data_p->cbParms.rxPpdu.ppduInfoAddr) ;

/* ok to read data */
rxppdu_cnt++;

receiver_buffer_length = ((PHY_rxPpdu_t *)(data_p->cbParms.rxPpdu.ppduInfoAddr))->length ;

for(j = 0 ; j < receiver_buffer_length ; j++)

data_in_rxppdu[j] = *(((PHY_rxPpdu_t *)(data_p->cbParms.rxPpdu.ppduInfoAddr))->data_p+j);

/* release */
PHY_rxPpduRelease((PHY_rxPpdu_t *)(data_p->cbParms.rxPpdu.ppduInfoAddr));

/* flash led every 8 pkt for testing */
if ((rxppdu_cnt & 0x7) == 0)
GpioDataRegs.GPATOGGLE.bit.GPIO31 = 1; rxppdu_done = 1;
}

}

receive_address即為所收到封包之存放位置

但這個structure內容僅有部分與PHY_tx_ppdu_s的內容相同,只有header的部分

請問這兩者的關係是(PHY_rxPpdu_t、PHY_tx_ppdu_s)?PHY_rx_ppdu_s的格式是如何?或是我取值的方式有誤?

看過Prime 1.4版本standard似乎是不太相同

附件為完整sample code檔案

感謝!

赞(0)
未经允许不得转载:TI中文支持网 » TI PLC PHY Test Project問題
分享到: 更多 (0)