基于FPGA無(wú)線傳感器網(wǎng)絡(luò)MAC控制器的設(shè)計(jì)
2.1.1 發(fā)送狀態(tài)機(jī)Tx_FSM
Tx_FSM是整個(gè)發(fā)送模塊的狀態(tài)機(jī),它是整個(gè)發(fā)送模塊的核心,主要用于產(chǎn)生發(fā)送過(guò)程中各個(gè)模快的控制信號(hào)。發(fā)送的狀態(tài)轉(zhuǎn)移,如圖3所示。TxCSP_en是來(lái)自MAC控制部分CSMA/CA協(xié)處理器的發(fā)送狀態(tài)機(jī)控制信號(hào)。當(dāng)TxCSP_en信號(hào)為高電平時(shí),啟動(dòng)狀態(tài)機(jī),開(kāi)始幀的發(fā)送過(guò)程。本文引用地址:http://2s4d.com/article/191147.htm
(1)IDLE:初始狀態(tài)。當(dāng)發(fā)送狀態(tài)機(jī)上電復(fù)位或者成功接收到數(shù)據(jù)包時(shí),進(jìn)入此狀態(tài)。如果收到TxCSP_en信號(hào)時(shí),開(kāi)始數(shù)據(jù)發(fā)送過(guò)程,否則,保持此狀態(tài)。
(2)Tx_Preamble:發(fā)送前導(dǎo)序列。當(dāng)狀態(tài)機(jī)將跳變到此狀態(tài),開(kāi)始向數(shù)據(jù)線上發(fā)送符合特定組合的前導(dǎo)碼序列。IEEE802.15.4協(xié)議的幀格式的前導(dǎo)序列是4 Byte O。
(3)Tx_SFD:發(fā)送幀起始分隔符。在這個(gè)狀態(tài)下開(kāi)始發(fā)送幀的幀起始符,IEEE802.15.4協(xié)議的幀格式的幀起始符為10100111。同時(shí)啟動(dòng)計(jì)數(shù)器,對(duì)該過(guò)程進(jìn)行計(jì)數(shù)。
(4)Tx_Data:發(fā)送數(shù)據(jù)幀MPDU部分。這個(gè)狀態(tài)下發(fā)送幀的有效數(shù)據(jù),這個(gè)有效數(shù)據(jù)是來(lái)自上層。當(dāng)發(fā)送完8位有效數(shù)據(jù)后,便產(chǎn)生讀取FIFO緩存信號(hào),從接收FIFO讀取1 Byte數(shù)據(jù)。
(5)Tx_Crc:發(fā)送數(shù)據(jù)包的CRC校驗(yàn)位。在這個(gè)狀態(tài)下,發(fā)送幀的16位CRC校驗(yàn)碼。
(6)Tx_Ack:發(fā)送應(yīng)答狀態(tài)。如果接收到的幀有應(yīng)答要求,則啟動(dòng)該狀態(tài)。
2.1.2 CRC校驗(yàn)電路
通過(guò)使用16位CRC串行校驗(yàn)來(lái)進(jìn)行幀的差錯(cuò)校驗(yàn),其中校驗(yàn)多項(xiàng)式采用。將要傳送幀的MPDU通過(guò)CRC校驗(yàn)?zāi)K,便產(chǎn)生了16位CRC校驗(yàn)碼。16位串行CRC校驗(yàn)電路如圖4所示。
2.1.3 發(fā)送模塊的仿真結(jié)果
圖5是發(fā)送模塊的仿真結(jié)果,Tx_clk是來(lái)自PHY接口的發(fā)送時(shí)鐘,s_out是幀以串行方式發(fā)送。最先發(fā)送的前導(dǎo)序列碼,接下來(lái)幀起始分隔符,再就是數(shù)據(jù)位,最后是CRC檢驗(yàn)位。
2.2 MAC接收模塊
接收模塊的主要功能:接收并識(shí)別從串行數(shù)據(jù)線上輸入的符合IEEE802.15.4協(xié)議格式的幀。如果協(xié)處理器RxCSP_en信號(hào)有效,則啟動(dòng)數(shù)據(jù)接收過(guò)程。通過(guò)接收狀態(tài)機(jī)的控制,按幀格式順序接收不同的數(shù)據(jù)域。當(dāng)接收到1 Byte數(shù)據(jù)后,且Rx_fifowrite信號(hào)有效時(shí),數(shù)據(jù)被寫(xiě)入到接收緩存RxFIFO中。
評(píng)論