Implementing 802.11 with Microcontrollers: Wireless Networking for Embedded Systems Designers

Our AirDrop wireless LAN module has successfully negotiated its way onto our little AIR- DROP_NETWORK wireless LAN. The addition of the last five lines of AirDrop 802.11b driver source code to the AirDrop 802.11b driver main function in Sub Snippet 11.1 gets the AirDrop wireless LAN station involved with the other members of the AIRDROP_NETWORK BSS.
**********************************************************void main(void){ unsigned int i,temp,evstat_data; char rc; init_USART1(); init_cf_card(); airdrop_cfg(BSS); airdrop_cfg(SSID); airdrop_cfg(MAX_DATALEN); airdrop_cfg(NIC_RATE); temp = rid_read(RID_cfgOwnMACAddress); for(i=0;i<6;i++) { if(i%2) macaddrc[i] = fidrid_buffer[2+i/2]>>8; else macaddrc[i] = fidrid_buffer[2+i/2]& 0xFF; } for(i=0;i<3;++i) macaddri[i] = fidrid_buffer[i+2]; ipaddri[0] = make16(ipaddrc[1],ipaddrc[0]); ipaddri[1] = make16(ipaddrc[3],ipaddrc[2]); allocate_xmit_buffers(); wr_cf_io16(0xFFFF, EvAck_Register); if(rc=send_command(EnableMAC_Cmd,0)) printf("MAC Enable Error\r\n"); do{ temp=rid_read(RID_PortStatus); }while(fidrid_buffer[2]!=4);<a name="390"></a><a name="page168"></a> temp = rid_read(RID_CurrentBSSID); for(i=0;i<6;i++) { if(i%2) bssidc[i] = fidrid_buffer[2+i/2]>>8; else bssidc[i] = fidrid_buffer[2+i/2]& 0xFF; } for(i=0;i<3;++i) bssidi[i] = fidrid_buffer[i+2];<span style="background-color:dadada"> while(1){ do{ evstat_data = rd_cf_io16(EvStat_Register); }while(!(evstat_data & EvStat_Rx_Bit_Mask)); get_frame(); }}</span>********************************************************** The easiest and most logical way to look at an 802.11b frame as it relates to an AirDrop is to send a frame from the SNOOPER laptop and capture that frame with both the Netasyst Sniffer...