一種短距離無(wú)線(xiàn)傳輸的CSMA/CA協(xié)議實(shí)現方法
(2)CSMA_MAC協(xié)議及3次重發(fā)的實(shí)現
流程如圖2所示。本文引用地址:http://dyxdggzs.com/article/157343.htm
(3)無(wú)線(xiàn)接收數據至串口的實(shí)現
流程如圖3所示。
2 無(wú)線(xiàn)狀態(tài)轉換圖
程序上電初始化后,第一次的無(wú)線(xiàn)狀態(tài)為INITIAL_STATE初始化狀態(tài)。初始化狀態(tài)后,無(wú)線(xiàn)模塊進(jìn)入RX_STATE接收狀態(tài),將模塊的接收天線(xiàn)打開(kāi)。而后進(jìn)入WAITING_FOR_ACK等待狀態(tài),等待接收無(wú)線(xiàn)數據。當接收到無(wú)線(xiàn)數據時(shí),根據WT_TxbufferO_Flag來(lái)判斷此時(shí)接收到的數據幀為ACK還是數據幀:如果WTTxbuffer0_Flag=0xff,則說(shuō)明此時(shí)接收到的數據幀為ACK,進(jìn)入WAITING_ACK處理,處理完畢,無(wú)線(xiàn)模塊重新進(jìn)入RX_STATE接收狀態(tài);如果WT_TxbufferO-Flag=0x00,則說(shuō)明此時(shí)接收到的數據為無(wú)線(xiàn)發(fā)送來(lái)的數據幀,進(jìn)入GOOD_PACKET好包狀態(tài),處理完畢,無(wú)線(xiàn)模塊重新進(jìn)入RX_STATE接收狀態(tài)。
評論