嵌入式WiFi技術(shù)
為了讀寫(xiě)這些寄存器,定義了兩個(gè)函數:unsigned int getReg(unsigned int reg)和void selReg(unsigned int reg,usnigned int val)。
Prism MAC驅動(dòng)就是向命令寄存器發(fā)命令來(lái)操作MAC。常用的命令有分配buffer、查詢(xún)網(wǎng)卡狀態(tài)、初始化網(wǎng)卡、讀數據、寫(xiě)數據等。
Prism MAC驅動(dòng)程序需要為上層提供MAC的讀寫(xiě)函數和一些控制函數,實(shí)現的函數原型如下:
void init_mac(void)
void reset_mac(void)
WORD wc_write(WORD*buff,WORD len)
WORDwc_read(WORD*buff,WORDmaxlen)
B00L get_wlan(void)
reset_mac(void)用于在系統啟動(dòng)或者系統需要復位時(shí),復位Prism MAC,同時(shí)對驅動(dòng)使用的變量進(jìn)行初始化。inh_mac(void)函數完成初始化網(wǎng)絡(luò )控制器和固件,同時(shí)向網(wǎng)卡控制器申請使用的buffer,保存需要用到的RID。wc_write(W0RD*burf,W0RD
len)函數把buff中的len個(gè)字節寫(xiě)入到MAC的發(fā)送緩沖區,然后寫(xiě)發(fā)送命令到網(wǎng)卡的命令寄存器發(fā)送數據,函數返回實(shí)際發(fā)送的數據長(cháng)度。wc_read(WORD*buff,WoRD
maxlen)函數接收輸入數據。返回實(shí)際收到的數據長(cháng)度,對上層協(xié)議來(lái)講,調用wc_read以后,可以對buff中的數據做協(xié)議分析。對于TCP/IP來(lái)講,實(shí)際上取出的可能是IP、ARP等類(lèi)型的報文。get_wlan(void)通過(guò)訪(fǎng)問(wèn)EvStat寄存器判斷是否有數據被接收,返回判斷結果。若有,則把PrismMAC數據幀收入到共享數據區中。本函數只是把PrismMAC的數據幀首部讀出,相當于是以太網(wǎng)幀的首部。讀出的數據格式為
上層協(xié)議調用get_wlan以后,如果返回值是TRUE,就可以訪(fǎng)問(wèn)目的地址、源地址、幀類(lèi)型等變量,以判斷是否處理收到的數據。如果是需要接收的數據,可以調用wc―read讀取數據。
嵌入式WiFi在許多領(lǐng)域有著(zhù)廣泛的應用。這里介紹一個(gè)嵌入式WiFi的具體實(shí)現――移動(dòng)監護系統。該監護系統用于醫院病人監護,采用嵌入式WiFi技術(shù),可在移動(dòng)環(huán)境下,對被測對象進(jìn)行數字分組、實(shí)時(shí)監測。
3.1 硬件結構
移動(dòng)監護系統由服務(wù)器和多個(gè)移動(dòng)監護器組成。服務(wù)器端包括1臺PC或者筆記本電腦、1個(gè)無(wú)線(xiàn)AP和1個(gè)報警器,硬件結構和連接方式都比較簡(jiǎn)單,在此不再說(shuō)明。
移動(dòng)監護器的硬件結構框圖如圖3所示。
圖3中,移動(dòng)監護器的硬件結構包括電源模塊、壓力傳感器模塊、加速度傳感器模塊和無(wú)線(xiàn)網(wǎng)卡模塊。
移動(dòng)監護器使用Ti的超低功耗微控制器MSP430F148作為CPU。加速度傳感器模塊使用AD公司的加速度傳感器ADXL202,用于運動(dòng)加速度測試,或重力加速度的測量,分析傾斜度,即用于病人跌倒測試。壓力傳感器使用Motorola醫療專(zhuān)用的MPX2300DT,具有良好的低電壓工作特性和線(xiàn)性輸出,用于脈搏測量。
電源使用3.6
V電池供電,經(jīng)過(guò)簡(jiǎn)單電壓變換即可滿(mǎn)足移動(dòng)監護器電源要求。無(wú)線(xiàn)網(wǎng)卡采用基于IntersilPrism2芯片集的PCMCIA網(wǎng)卡。它是一款I(lǐng)EEE802.11b兼容網(wǎng)絡(luò )適配器。
3.2 軟件結構
ad-hoc模式下,移動(dòng)監護器和服務(wù)器間的距離很短。為了增大監護范圍,移動(dòng)監護系統工作在Infrastructure模式,服務(wù)器端的AP和移動(dòng)監護器都相當于一個(gè)STA,移動(dòng)監護器與服務(wù)器可以在不同的BSS中。移動(dòng)監護器、AP所在的BSS共同構成一個(gè)ESS,使用DSS通信。
服務(wù)器端軟件模塊主要用于從網(wǎng)絡(luò )接收到的數據中分離出斜度、移動(dòng)監護器配置信息、脈搏信息,并根據信息報警,對移動(dòng)監護器進(jìn)行控制。
移動(dòng)監護器的軟件模塊如圖4所示。移動(dòng)監護器主要完成加速度(斜度)數據的采集、脈搏信號的采集、數據的收發(fā)、傳感器的啟??刂?。其軟件可劃分為兩個(gè)層次:應用層和驅動(dòng)層。陰影部分為硬件驅動(dòng)層,驅動(dòng)層以上為應用層。
移動(dòng)監護系統由于采用嵌入式WiFi技術(shù),支持數字分組,可以根據需要對被測對象分組檢測,同時(shí)進(jìn)行實(shí)時(shí)數據傳輸;保證了監護的可靠性與準確性,在實(shí)際使用中有很好的效果。
評論