黃大晴
(南京先鋒碩通無(wú)線技術(shù)有限公司,江蘇 南京 211100)
超寬帶(Ultra-Wideband,UWB)技術(shù)由于具有低功耗、高速率等特點(diǎn),是無(wú)線個(gè)域網(wǎng)(Wireless Personal Area Network,WPAN)領(lǐng)域理想的物理層技術(shù)。2005年底,由英特爾inter、惠普HP、諾基亞Nokia、三星samsung等國(guó)際公司組成的非營(yíng)利民間組織wimedia聯(lián)盟的ECMA-368和ECMA-369標(biāo)準(zhǔn)方案[1],由歐洲國(guó)際計(jì)算機(jī)制造商協(xié)會(huì)推出。ECMA-368標(biāo)準(zhǔn)詳細(xì)描述了基于多帶正交頻分利用調(diào)制的物理層(PHY)和分布式架構(gòu)的媒體訪問(wèn)控制層(MAC)。ECMA-369則定義了與ECMA-368相配的接口規(guī)范,使得物理層(PHY)和分布式架構(gòu)的媒體訪問(wèn)控制層(MAC)能夠獨(dú)立實(shí)施并互連。
ECMA-369標(biāo)準(zhǔn)規(guī)定了ECMA-368中規(guī)定的PHY與MAC之間的接口。MAC層端接口主要包括MACPHY Interface中MAC層輸出至PHY的接口及與MAC層其他模塊的接口,由數(shù)據(jù)接口、控制接口、CCA接口及管理接口4個(gè)模塊組成[2-3],如圖1所示。
圖1 MAC層模塊與PHY的接口
(1)數(shù)據(jù)接口:實(shí)現(xiàn)MAC層和PHY層間的數(shù)據(jù)交互,包括數(shù)據(jù)發(fā)送和數(shù)據(jù)接收兩部分。系統(tǒng)處于發(fā)送狀態(tài)時(shí),系統(tǒng)按順序依次將PLCP頭、MAC頭、MAC_PAYLAOD和FCS寫(xiě)入數(shù)據(jù)發(fā)送模塊的發(fā)送FIFO。PHY每次使能DATA_EN,數(shù)據(jù)接口將從發(fā)送FIFO中取一個(gè)數(shù)據(jù)發(fā)送給PHY。系統(tǒng)處于接收狀態(tài)時(shí),對(duì)于每幀,數(shù)據(jù)接收模塊按順序?qū)⒔邮盏降臄?shù)據(jù)發(fā)給MAC層的PLCP頭處理模塊、MAC頭處理模塊、MPI接收頭錯(cuò)誤模塊、FCS加解密模塊、管理控制器模塊和MPI接收幀錯(cuò)誤模塊。
(2)控制接口:控制接口控制PHY復(fù)位、系統(tǒng)的數(shù)據(jù)收發(fā)、指示幀接收或發(fā)送及開(kāi)關(guān)PCLK。MAC可通過(guò)拉低PHY_RESETn來(lái)reset PHY;系統(tǒng)要發(fā)送數(shù)據(jù)時(shí),拉高TX_EN,系統(tǒng)進(jìn)入發(fā)送狀態(tài);系統(tǒng)要接收數(shù)據(jù)時(shí),拉高R X_EN,系統(tǒng)進(jìn)入接收狀態(tài);系統(tǒng)進(jìn)入發(fā)送或接收狀態(tài)后,PHY會(huì)在對(duì)應(yīng)的時(shí)刻拉高PHY_ACTIVE,指示PHY處于幀發(fā)送或接收狀態(tài);系統(tǒng)處于STANDBY狀態(tài)時(shí),可通過(guò)STOPC信號(hào)來(lái)開(kāi)關(guān)PCLK信號(hào)。
(3)CCA接口:指示CCA狀態(tài)。MAC通過(guò)管理接口設(shè)置CONTROL寄存器的CCRE域?yàn)?,發(fā)起CCA測(cè)量;在CCAValidTime后,CCA_STATUS將被驅(qū)動(dòng)。只要PHY不是處于TRANSMIT、STANDBY或SLEEP狀態(tài)且CCRE一直為1,CCA將一直進(jìn)行。
(4)管理接口:讀取或者修改PHY層中寄存器。讀操作時(shí),管理接口先發(fā)送需要讀的寄存器的地址給PHY,PHY讀到有效地址后將此地址的寄存器值發(fā)給MAC;寫(xiě)操作時(shí),管理接口按先后順序發(fā)送地址和數(shù)據(jù)給PHY。
2.1.1 數(shù)據(jù)發(fā)送
PMMODE在READY狀態(tài)及TX_REG_SET、RX_BUSY和BM_TX_BUSY都為低的條件下,將TX_EN置高,拉高數(shù)據(jù)使能信號(hào)(圖2中,用T_DATA_EN代表 TX_PH_DATA_EN、TX_HD_DATA_EN、TX_PL_DATA_EN),往數(shù)據(jù)線上寫(xiě)數(shù)據(jù),將數(shù)據(jù)寫(xiě)入發(fā)送FIFO。寫(xiě)入的順序:PLCP頭生成模塊先往發(fā)送FIFO寫(xiě)入總共8 Byte的PLCP頭數(shù)據(jù);MAC頭生成模塊寫(xiě)入10 Byte的MAC頭數(shù)據(jù);由FCS加解密模塊寫(xiě)入MAC_PAYLOAD及4 Byte的FCS數(shù)據(jù)。發(fā)送FIFO中數(shù)據(jù)后,TX_FIFO_EMPTY拉高,表示FIFO中數(shù)據(jù)發(fā)完,MAC拉低TX_EN。系統(tǒng)可以通過(guò)拉低TX_EN中斷發(fā)送操作。TX_EN拉低后,MAC停止將數(shù)據(jù)發(fā)送給PHY。發(fā)送中斷產(chǎn)生后,可能TX FIFO中還有未發(fā)送的數(shù)據(jù),可通過(guò)TX_FIFO_RST來(lái)清空發(fā)送FIFO中未發(fā)送的數(shù)據(jù)。圖2為數(shù)據(jù)發(fā)送時(shí)序圖。
2.1.2 數(shù)據(jù)接收
PMMODE在READY狀態(tài)、RX_REG_SET為低和TX_BUSY為低的條件下,將RX_EN置高,系統(tǒng)進(jìn)入接收數(shù)據(jù)狀態(tài)。接收到數(shù)據(jù)后,前面5 Byte數(shù)據(jù)拉高RX_PH_DATA_EN,通過(guò)數(shù)據(jù)線R_DATA[15:0]給PLCP頭處理模塊;緊接著后面10 Byte數(shù)據(jù)拉高RX_HD_DATA_EN,通過(guò)數(shù)據(jù)線R_DATA[15:0]給MAC頭處理模塊;然后1 Byte給MPI接收頭錯(cuò)誤模塊;后面是將MAC_PAYLOAD及FCS拉高RX_PL_DATA_EN,通過(guò)數(shù)據(jù)線R_DATA[15:0]給FCS加解密模塊;接著拉高RX_MAN_DATA_EN通過(guò)數(shù)據(jù)線R_DATA[15:0]將接收質(zhì)量信息給管理控制器模塊;最后將RXERROR[4:0]給MPI接收幀錯(cuò)誤模塊。系統(tǒng)可以通過(guò)拉低RX_EN產(chǎn)生接收中斷。拉低RX_EN后,PHY需在33個(gè)時(shí)鐘周期內(nèi)將接收參數(shù)傳送給MAC和拉低PHY_ACTIVE。如果接收頭校驗(yàn)和錯(cuò)誤,則按照接收零長(zhǎng)度幀的時(shí)序來(lái)操作。這種情況下,如果系統(tǒng)沒(méi)有拉低RX_EN,系統(tǒng)將繼續(xù)接收下一幀數(shù)據(jù)。圖3為數(shù)據(jù)接收時(shí)序圖。
圖2 數(shù)據(jù)發(fā)送時(shí)序圖
圖3 數(shù)據(jù)接收時(shí)序圖
2.2.1 控制接口與數(shù)據(jù)接口
PAYLOAD_LEN[11:0]是RX控制器模塊中的計(jì)數(shù)器,指示MAC PAYLOAD中還有多少字節(jié)數(shù)據(jù)未接收。
2.2.2 控制接口與MAC層管理控制器的接口
(1)發(fā)送控制:系統(tǒng)拉高TX_EN進(jìn)入發(fā)送狀態(tài)。TX_EN被拉高后,MPI控制接口拉高TX_BUSY和BM_TX_BUSY,在TxHoldTime個(gè)時(shí)鐘周期內(nèi)拉高TX_REG_HOLD。TX_EN拉低后Tx2RxDwellTime個(gè)時(shí)鐘周期后,TX_BUSY拉低,系統(tǒng)可以進(jìn)入接收狀態(tài);3個(gè)時(shí)鐘后拉低BM_TX_BUSY,如果系統(tǒng)處于突發(fā)發(fā)送模式,系統(tǒng)可以發(fā)送下一幀數(shù)據(jù)。
(2)接收控制:系統(tǒng)拉高RX_EN進(jìn)入接收狀態(tài)。RX_EN被拉高后,MPI控制接口拉高RX_BUSY,在RxHoldTime個(gè)時(shí)鐘周期內(nèi)拉高RX_REG_HOLD。RX_EN下降沿后Rx2TxDwellTime個(gè)時(shí)鐘周期后,MAC拉低RX_BUSY。在RECEIVE狀態(tài)下,在PHY_ACTIVE下降沿之前RxSetupTime個(gè)時(shí)鐘周期內(nèi),MPI控制接口將RX_REG_INV拉高。下降沿后,在RxHoldTime個(gè)時(shí)鐘周期內(nèi)拉高RX_REG_HOLD。圖4為RX寄存器控制狀態(tài)信圖。數(shù)據(jù)接收完成后,PHY會(huì)拉低PHY_ACTIVE。PHY_ACTIVE拉低后RxEOFDelay個(gè)PCLK時(shí)鐘周期后,RX_END拉高一個(gè)PCLK時(shí)鐘,表示接收完成,MAC拉低RX_EN。
圖4 RX寄存器控制狀態(tài)信號(hào)
2.2.3 管理接口與管理控制器的接口
(1)寫(xiě)PHY寄存器操作。管理接口檢測(cè)到WR為高、RD為低,系統(tǒng)鎖存數(shù)據(jù)線MAN_TDATA[7:0]和地址線MAN_ADD[7:0]的數(shù)據(jù),系統(tǒng)進(jìn)入管理接口發(fā)送狀態(tài)。如果需要操作的是發(fā)送控制寄存器(TXCHAN或TXCTL),必須在TX_REG_HOLD為低的情況下操作。在操作發(fā)送寄存器后的TxSetupTime個(gè)PCLK時(shí)鐘內(nèi),TX_REG_SET為高電平。如果需要操作的是接收控制寄存器(RXCHAN或RXCTL),必須在RX_REG_HOLD和RX_REG_INV為低的情況下操作。在操作接收寄存器后的RxSetupTime個(gè)PCLK時(shí)鐘內(nèi),RX_REG_SET為高電平。
(2)讀PHY寄存器操作。管理接口檢測(cè)到WR為低、RD為高,系統(tǒng)鎖存地址線MAN_ADD[7:0]的數(shù)據(jù),系統(tǒng)進(jìn)入管理接口接收狀態(tài)。管理接口讀入寄存器數(shù)據(jù)后,將信號(hào)RDATA_RDY拉高,且將數(shù)據(jù)放到數(shù)據(jù)信號(hào)MAN_TDATA[7:0]。特殊情況,當(dāng)PHY在SLEEP狀態(tài)下時(shí),可同時(shí)將TX_EN和RX_EN拉高,這時(shí)PHY將進(jìn)入STANDBY狀態(tài)。
在TX_EN為高電平的情況下,檢測(cè)到DATA_EN為高,則在一個(gè)時(shí)鐘周期后TX控制器將發(fā)送FIFO中的數(shù)據(jù)置到數(shù)據(jù)線DATA[15:0]。數(shù)據(jù)發(fā)送完后(發(fā)送FIFO數(shù)據(jù)空),MAC將TX_EN置低。TX_EN下降沿后2個(gè)時(shí)鐘周期,釋放數(shù)據(jù)線的控制權(quán)。圖5為MAC數(shù)據(jù)發(fā)送時(shí)序圖。
圖5 MAC 數(shù)據(jù)發(fā)送時(shí)序圖
在RX_EN為高的情況下,檢測(cè)到DATA_EN為高電平,則RX控制器鎖存數(shù)據(jù)線DATA[15:0]上的數(shù)據(jù)。圖6為MAC數(shù)據(jù)接收時(shí)序圖。
圖6 MAC數(shù)據(jù)接收時(shí)序圖
針對(duì)ECMA-369標(biāo)準(zhǔn)中規(guī)定的PHY與MAC之間的接口,對(duì)MAC-PHY Interface中MAC層輸出至PHY的接口以及與MAC層其他模塊的接口進(jìn)行設(shè)計(jì),利用數(shù)據(jù)接收時(shí)序圖和數(shù)據(jù)接收時(shí)序圖分析MPI與MAC接口的數(shù)據(jù)傳輸。ECMA-369標(biāo)準(zhǔn)中MAC設(shè)計(jì)實(shí)現(xiàn)了設(shè)備管理和控制,滿足了電子設(shè)備之間的通信需求。