国产99久玖玖一区二区免费在线播放观看_国产三级专区在线观看_国产精品乱人无码伦AV在线_欧美人与牲动交xxxx_亚洲欧美日韩图片小说视频_日韩新片免费专区_av少妇无码中文字幕1久久_日本 中文字幕一区_在线观看无码_欧美美女被爆操

東莞市德峰智能科技有限公司

聯(lián)系我們Contact

您的位置: 首頁(yè) ->  技術(shù)支持 -> 關(guān)于ZIGBEE技術(shù)

關(guān)于ZIGBEE技術(shù)



Zigbee的由來(lái)

在藍(lán)牙技術(shù)的使用過(guò)程中,人們發(fā)現(xiàn)藍(lán)牙技術(shù)盡管有許多優(yōu)點(diǎn),但仍存在許多缺陷。對(duì)工業(yè),家庭自動(dòng)化控制和遙測(cè)遙控領(lǐng)域而言,藍(lán)牙技術(shù)顯得太復(fù)雜,功耗大,距離近,組網(wǎng)規(guī)模太小等,而工業(yè)自動(dòng)化對(duì)無(wú)線通信的需求越來(lái)越強(qiáng)烈。正因此,經(jīng)過(guò)人們長(zhǎng)期努力,Zigbee協(xié)議在2003年中通過(guò)后,于2004正式問(wèn)世了。

Zigbee是什么

Zigbee是一個(gè)由可多到65000個(gè)無(wú)線數(shù)傳模塊組成的一個(gè)無(wú)線數(shù)傳網(wǎng)絡(luò)平臺(tái),十分類似現(xiàn)有的移動(dòng)通信的CDMA網(wǎng)或GSM網(wǎng),每一個(gè)Zigbee網(wǎng)絡(luò)數(shù)傳模塊類似移動(dòng)網(wǎng)絡(luò)的一個(gè)基站,在整個(gè)網(wǎng)絡(luò)范圍內(nèi),它們之間可以進(jìn)行相互通信;每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)間的距離可以從標(biāo)準(zhǔn)的75米,到擴(kuò)展后的幾百米,甚至幾公里;另外整個(gè)Zigbee網(wǎng)絡(luò)還可以與現(xiàn)有的其它的各種網(wǎng)絡(luò)連接。例如,你可以通過(guò)互聯(lián)網(wǎng)在北京監(jiān)控云南某地的一個(gè)Zigbee控制網(wǎng)絡(luò)。

不同的是,Zigbee網(wǎng)絡(luò)主要是為自動(dòng)化控制數(shù)據(jù)傳輸而建立,而移動(dòng)通信網(wǎng)主要是為語(yǔ)音通信而建立;每個(gè)移動(dòng)基站價(jià)值一般都在百萬(wàn)元人民幣以上,而每個(gè)Zigbee“基站”卻不到1000元人民幣;每個(gè)Zigbee 網(wǎng)絡(luò)節(jié)點(diǎn)不僅本身可以與監(jiān)控對(duì)對(duì)象,例如傳感器連接直接進(jìn)行數(shù)據(jù)采集和監(jiān)控,它還可以自動(dòng)中轉(zhuǎn)別的網(wǎng)絡(luò)節(jié)點(diǎn)傳過(guò)來(lái)的數(shù)據(jù)資料; 除此之外,每一個(gè)Zigbee網(wǎng)絡(luò)節(jié)點(diǎn)(FFD)還可在自己信號(hào)覆蓋的范圍內(nèi),和多個(gè)不承擔(dān)網(wǎng)絡(luò)信息中轉(zhuǎn)任務(wù)的孤立的子節(jié)點(diǎn)(RFD)無(wú)線連接。

每個(gè)Zigbee網(wǎng)絡(luò)節(jié)點(diǎn)(FFD和RFD)可以可支持多到31個(gè)的傳感器和受控設(shè)備,每一個(gè)傳感器和受控設(shè)備終可以有8種不同的接口方式。可以采集和傳輸數(shù)字量和模擬量。

Zigbee技術(shù)的應(yīng)用領(lǐng)域

Zigbee技術(shù)的目標(biāo)就是針對(duì)工業(yè),家庭自動(dòng)化,遙測(cè)遙控,汽車(chē)自動(dòng)化、農(nóng)業(yè)自動(dòng)化和醫(yī)療護(hù)理等,例如燈光自動(dòng)化控制,傳感器的無(wú)線數(shù)據(jù)采集和監(jiān)控,油田,電力,礦山和物流管理等應(yīng)用領(lǐng)域。另外它還可以對(duì)局部區(qū)域內(nèi)移動(dòng)目標(biāo)例如城市中的車(chē)輛進(jìn)行定位.

通常,符合如下條件之一的應(yīng)用,就可以考慮采用Zigbee技術(shù)做無(wú)線傳輸:

1.需要數(shù)據(jù)采集或監(jiān)控的網(wǎng)點(diǎn)多;

2.要求傳輸?shù)臄?shù)據(jù)量不大,而要求設(shè)備成本低;

3.要求數(shù)據(jù)傳輸可性高,安全性高;

4.設(shè)備體積很小,不便放置較大的充電電池或者電源模塊;

5.電池供電;

6.地形復(fù)雜,監(jiān)測(cè)點(diǎn)多,需要較大的網(wǎng)絡(luò)覆蓋;

7.現(xiàn)有移動(dòng)網(wǎng)絡(luò)的覆蓋盲區(qū);

8.使用現(xiàn)存移動(dòng)網(wǎng)絡(luò)進(jìn)行低數(shù)據(jù)量傳輸?shù)倪b測(cè)遙控系統(tǒng)。

9.使用GPS效果差,或成本太高的局部區(qū)域移動(dòng)目標(biāo)的定位應(yīng)用。

Zigbee 技術(shù)的特點(diǎn)

省電:兩節(jié)五號(hào)電池支持長(zhǎng)達(dá)6個(gè)月到2年左右的使用時(shí)間。

可靠:采用了碰撞避免機(jī)制,同時(shí)為需要固定帶寬的通信業(yè)務(wù)預(yù)留了專用時(shí)隙,避免了發(fā)送數(shù)據(jù)時(shí)的競(jìng)爭(zhēng)和沖突;節(jié)點(diǎn)模塊之間具有自動(dòng)動(dòng)態(tài)組網(wǎng)的功能,信息在整個(gè)Zigbee網(wǎng)絡(luò)中通過(guò)自動(dòng)路由的方式進(jìn)行傳輸,從而保證了信息傳輸?shù)目煽啃浴?/span>

時(shí)延短:針對(duì)時(shí)延敏感的應(yīng)用做了優(yōu)化,通信時(shí)延和從休眠狀態(tài)激活的時(shí)延都非常短。

網(wǎng)絡(luò)容量大:可支持達(dá)65000個(gè)節(jié)點(diǎn)。

安全:ZigBee提供了數(shù)據(jù)完整性檢查和鑒權(quán)功能,加密算法采用通用的AES-128。

高保密性:64位出廠編號(hào)和支持AES-128加密。

Zigbee的發(fā)展前景

Zigbee技術(shù)和RFID 技術(shù)在2004年就被列為當(dāng)今世界發(fā)展最快,市場(chǎng)前景最廣闊的十大最新技術(shù)中的兩個(gè)。關(guān)于這方面的報(bào)道,你只需在百度,或GOOGLE搜索欄中鍵入“Zigbee”,你就會(huì)看到大量的有關(guān)報(bào)道??傊?,今后若干年,都將是Zigbee技術(shù)飛速發(fā)展的時(shí)期。

Zigbee技術(shù)在我國(guó)的應(yīng)用情況

盡管,國(guó)內(nèi)不少人已經(jīng)開(kāi)始關(guān)注Zigbee這們新技術(shù),而且也有不少單位開(kāi)始涉足Zigbee技術(shù)的開(kāi)發(fā)工作,然而,由于Zigbee 本身是一種新的系統(tǒng)集成技術(shù),應(yīng)用軟件的開(kāi)發(fā)必須和網(wǎng)絡(luò)傳輸,射頻技術(shù)和底層軟硬件控制技術(shù)結(jié)合在一起。因而深入理解這個(gè)來(lái)自國(guó)外的新技術(shù),再組織一個(gè)在這幾個(gè)方面都有豐富經(jīng)驗(yàn)的配套的隊(duì)伍,本身就不是一件容易的事情,因而,到目前為止,國(guó)內(nèi)目前除了成都西谷曙光數(shù)字技術(shù)有限公司,真正將Zigbee技術(shù)開(kāi)發(fā)成產(chǎn)品,并成功地用于解決幾個(gè)領(lǐng)域的實(shí)際生產(chǎn)問(wèn)題而外,尚未見(jiàn)到其它報(bào)道。

Zigbee 和現(xiàn)有移動(dòng)網(wǎng)(GPRS,CDMA-1X)的比較

1.無(wú)網(wǎng)絡(luò)使用費(fèi):使用移動(dòng)網(wǎng)需要長(zhǎng)期支付網(wǎng)絡(luò)使用費(fèi),而且是按節(jié)點(diǎn)終端的數(shù)量計(jì)算的,而Zigbee沒(méi)有這筆費(fèi)用;

2.設(shè)備投入低:使用移動(dòng)網(wǎng)需要購(gòu)買(mǎi)移動(dòng)終端設(shè)備,每個(gè)終端的價(jià)格在人民幣1000元上下,而使用Zigbee 網(wǎng)絡(luò),不僅Zigbee網(wǎng)絡(luò)節(jié)點(diǎn)模塊(相當(dāng)于基站)費(fèi)用每只人民幣不到1000元,而且,主要使用的網(wǎng)絡(luò)子節(jié)點(diǎn)(相當(dāng)于手機(jī))的價(jià)格還要低得多;

3.通信更可靠:由于現(xiàn)有移動(dòng)網(wǎng)主要是為手機(jī)通信而設(shè)計(jì)的,盡管CDMA-1X和GPRS可以進(jìn)行數(shù)據(jù)通信,但實(shí)踐發(fā)現(xiàn),不僅通信數(shù)率比設(shè)計(jì)速率低很多,而且數(shù)據(jù)通信的可靠信也存在一定的問(wèn)題。而Zigbee網(wǎng)絡(luò)則是專門(mén)為控制數(shù)據(jù)的傳輸而設(shè)計(jì)的,因而控制數(shù)據(jù)的傳輸具有相當(dāng)?shù)谋WC。
    4.高度的靈活性和低成本:首先,通過(guò)使用覆蓋距離不同,功能不同的Zigbee網(wǎng)絡(luò)節(jié)點(diǎn),以及其它非Zigbee系統(tǒng)的低成本的無(wú)線收發(fā)模塊,建立起一個(gè)Zigbee局部自動(dòng)化控制網(wǎng),(這個(gè)網(wǎng)絡(luò)可以是星型,樹(shù)狀,網(wǎng)狀及其共同組成的復(fù)合網(wǎng)結(jié)構(gòu))再通過(guò)互聯(lián)網(wǎng)或移動(dòng)網(wǎng)與遠(yuǎn)端的計(jì)算機(jī)相連,從而實(shí)現(xiàn)低成本,高效率的工業(yè)自動(dòng)化遙測(cè)遙控;

5.比起現(xiàn)有的移動(dòng)網(wǎng)來(lái),盡管Zigbee僅僅只是一個(gè)局域網(wǎng),覆蓋區(qū)域有限,但它卻可以與現(xiàn)有的移動(dòng)網(wǎng),互聯(lián)網(wǎng)和其它通信網(wǎng)絡(luò)相連接,將許多Zigbee局域網(wǎng)相互連成為一個(gè)整體。有效的解決移動(dòng)網(wǎng)的盲區(qū)覆蓋問(wèn)題:我們知道,現(xiàn)有移動(dòng)網(wǎng)絡(luò)在許多地方存在盲區(qū),特別是鐵路,公路,油田,礦山等野外,更是如此。而增加一個(gè)移動(dòng)基站或直放站的費(fèi)用是相當(dāng)可觀的,此時(shí)使用Zigbee網(wǎng)絡(luò)進(jìn)行盲區(qū)覆蓋不僅經(jīng)濟(jì)有效,而且往往是現(xiàn)在唯一可行手段。

Zigbee與現(xiàn)有數(shù)傳電臺(tái)的比較

1.可靠性高:由于Zigbee模塊的集成度遠(yuǎn)比一般數(shù)傳電臺(tái)高,分離元器件少,因而可靠性更高;

2.使用方便安全:因?yàn)榧啥雀撸绕鹨话銛?shù)傳電臺(tái)來(lái),Zigbee收法模塊體積可以做得很小,而且功耗低,例如成都西谷公司遠(yuǎn)距離傳輸模塊(2-5公里),最大發(fā)射電流比一個(gè)CDMA手機(jī)還要小許多,因而很容易集成或直接安放在到設(shè)備之中,不僅使用方便,而且在戶外使用時(shí),不容易受到破壞;

3.抗干擾力強(qiáng),保密性好,誤碼率低:Zigbee收發(fā)模塊使用的是2.4G直序擴(kuò)頻技術(shù),比起一般FSK, ASK和跳頻的數(shù)傳電臺(tái)來(lái),具有更好的抗干擾能力,和更遠(yuǎn)的傳輸距離;參閱我們網(wǎng)站中有關(guān)CDMA直序擴(kuò)頻技術(shù)的優(yōu)越性討論,和Cypress公司有關(guān)實(shí)驗(yàn)報(bào)道。

4.免費(fèi)頻段:Zigbee使用的是免費(fèi)頻段,而許多數(shù)傳電臺(tái)所使用的頻段不僅需要申請(qǐng),而且每年都需要向國(guó)家無(wú)委會(huì)交納相當(dāng)?shù)念l率使用費(fèi)。

5.價(jià)格低: Zigbee數(shù)傳模塊的價(jià)格只有具有類似功能的數(shù)傳電臺(tái)的幾分之一;(2.4G,250kps,3-5公里距離DSSS 數(shù)傳模塊每只不到200元人民幣)

提供低成本,高可靠性的無(wú)線數(shù)傳互聯(lián)網(wǎng)平臺(tái)(包括軟件和硬件),以及相關(guān)技術(shù)支持,以滿足不同客戶的具體需要,就是我們的服務(wù)宗旨。

 

 

 

 

學(xué)習(xí)Zstack1

Zstack情況:

本人采用的是TI的Zstack1.4.3協(xié)議,據(jù)說(shuō)這個(gè)需要IAR7.30B及以上版本,而目前市面上又沒(méi)有破解,所以用的人很少,這也是我的機(jī)會(huì)!呵呵?。ㄉ敌τ悬c(diǎn)多,關(guān)鍵是WORD里沒(méi)有表情符號(hào),不能正常表達(dá)我此時(shí)的心情!)

正式開(kāi)始:

開(kāi)始之前在說(shuō)一句:從TI網(wǎng)站上下載的Zstack的方法就不介紹了。否則就是從-1開(kāi)始了而不是從0開(kāi)始了-----------------我是這么覺(jué)得的!

第一步:安裝Zstack

從TI官方網(wǎng)站上下載的Zstack為:swrc072c.zip,我想這個(gè)壓縮包大家都認(rèn)識(shí)。解壓之后為:ZStack-CC2430-1.4.3.exe文件。這個(gè)安裝文件大家都會(huì)了。默認(rèn)安裝路徑為:C:\Texas Instruments\ZStack-1.4.3。安裝之后在C:\Texas Instruments\ZStack-1.4.3目錄下有各PDF文檔為:Getting Started Guide CC2430.pdf,不用多說(shuō),這個(gè)肯定是要看的。既然把它放到這么前面,說(shuō)明它是入門(mén)中的入門(mén)文檔。下面就簡(jiǎn)單介紹下這個(gè)文檔:
1、介紹了安裝ZStack-CC2430-1.4.3.exe需要的硬件軟件條件:需要電腦、操作系統(tǒng)為Windows 2000或 Windows XP。至于更高或更低版本的本人沒(méi)有嘗試。
2、講了安裝流程。這個(gè)有點(diǎn)多余了,這年月哪個(gè)有電腦的沒(méi)有安裝上百上千次的軟件???但是需要強(qiáng)調(diào)的是安裝路徑----默認(rèn)就好!
3、接下來(lái)就是讓我們看的第一個(gè)文檔為:
Start->Programs->Texas Instruments->ZStack-1.4.3->Z-Stack User’s Guide,
既然讓我看我就來(lái)看看這個(gè)文檔??!

第二步:Z-Stack 用戶指導(dǎo)

這個(gè)文檔的更新時(shí)間為:2007年12月21日----應(yīng)該還是比較新的版本。由于本人英文的卻有限,就不翻譯了,瀏覽一遍,把大概意思說(shuō)下就可以了:
1、介紹
1.1、適用范圍
本文檔適用于CC2430ZigBee開(kāi)發(fā)板----CC2430ZDK。
2、產(chǎn)品包描述(TI提供的CC2430ZDK工具包)
2.1、安裝包內(nèi)容
這個(gè)就是上面提到的的ZStack-CC2430-1.4.3.exe安裝之后的所有內(nèi)容了。說(shuō)白了就是包含Zstack開(kāi)發(fā)所需要的所有軟件和文檔資料等。
2.2、開(kāi)發(fā)板介紹
兩塊 SmartRF04EB 評(píng)估版,每個(gè)都可以用于CC2430EM評(píng)估模塊。如圖1-1所示:
 

個(gè)人認(rèn)為要求已經(jīng)相當(dāng)?shù)土?,如果你的電腦沒(méi)有這配置,個(gè)人強(qiáng)烈建議馬上扔掉!不過(guò)如今筆記本電腦很少有串口的,所以建議使用臺(tái)式電腦,而且裝機(jī)的時(shí)候一定要把串口引出,否則就比較麻煩了!
3.2、目標(biāo)板需求

其實(shí)也是開(kāi)發(fā)環(huán)境需求--- IAR EW8051。目前需要的版本為7.30B及以上。要求還是比較高的,因?yàn)槟壳斑@個(gè)版本沒(méi)有破解的。但是在http://www.iar.com/上有30天評(píng)估版下載。這個(gè)版本使用一定要小心,因?yàn)槿绻?0天之后僅僅是卸載IAR重新安裝是沒(méi)有用的,一般最笨的辦法是重新安裝操作系統(tǒng)。解決這個(gè)問(wèn)題最好的辦法就是買(mǎi)正版,呵呵,我想絕大多數(shù)像我這樣的中國(guó)人都不會(huì)買(mǎi)的。除此之外最好的辦法就是破解,但是目前這個(gè)破解極少,都是需要收費(fèi)的,而且都是國(guó)外網(wǎng)站才有,所以我們就只好期望中國(guó)的高人抓緊破解并公開(kāi)了!當(dāng)然其他解決辦法就相對(duì)來(lái)說(shuō)很多了,比如安裝后弄個(gè)還原點(diǎn)什么的;或者安裝后我不停地使用(每天24小時(shí)),30天之后我覺(jué)得你也學(xué)會(huì)了,就不用IAR這個(gè)版本了,說(shuō)不定就移植到低版本上去了;等等類似之法我覺(jué)得都可以的。本人采用的是本辦法中相對(duì)比較聰明的,也是一位高人告訴我的:裝個(gè)虛擬操作系統(tǒng),在虛擬操作系統(tǒng)下時(shí)間可以隨時(shí)更改,讓它一直停留在某個(gè)時(shí)間,主要30天的試用就比較慢長(zhǎng)了,只要你不要忘記改那時(shí)間。
4、產(chǎn)品安裝過(guò)程
4.1、安裝Z-Stack

這個(gè)也就是安裝ZStack-CC2430-1.4.3.exe的過(guò)程。
4.2、IAR安裝

一般來(lái)說(shuō)安裝選擇默認(rèn)路徑,但是自定義路徑也不會(huì)出問(wèn)題的。注意IAR版本7.30B及以上版本才可以運(yùn)行1.4.3協(xié)議。
4.3、設(shè)備IEEE地址

每個(gè) CC2430DB, CC2430EM,和 CC2431EM都已經(jīng)排列了一個(gè)唯一的64位物理地址(IEEE地址),這個(gè)地址已經(jīng)寫(xiě)到了CC2430內(nèi)部FLASH里面,在CC2430DB, CC2430EM,和 CC2431EM板的底部有這個(gè)地址標(biāo)簽。

這個(gè)地址被寫(xiě)入到FLASH的0x1FFF8地址中,注意這個(gè)地址也可以更改的,通過(guò)些FLASH軟件,一般0xFFFFFFFFFFFFFFFF地址被認(rèn)為是無(wú)效地址。
5、配置并試用Z-Stack
5.1、配置Z-Stack

這個(gè)詳見(jiàn)5.3節(jié)。
5.2、邏輯類型

這里主要是介紹了ZIGBEE協(xié)議中的三種設(shè)備類型:
ZigBee 協(xié)調(diào)者(ZC):這個(gè)設(shè)備被配置為初始化并建立一個(gè)PAN網(wǎng)絡(luò)
ZigBee 路由器(ZR):該設(shè)備被配置為加入一個(gè)存在的網(wǎng)絡(luò),可以加入一個(gè)協(xié)調(diào)求或路由器,然后允許其他設(shè)備加入它,在網(wǎng)絡(luò)中路有數(shù)據(jù)信息。
ZigBee 終端節(jié)點(diǎn) (ZED):該設(shè)備被配置為加入一個(gè)存在的網(wǎng)絡(luò),可以加入一個(gè)協(xié)調(diào)求或路由器。
5.3、建立樣品應(yīng)用設(shè)備:SampleApp
基本上就是采用SampleApp應(yīng)用中的Demo例子來(lái)演示整個(gè)流程,就是采用一個(gè)協(xié)調(diào)器和一個(gè)或多個(gè)路由器來(lái)形成一個(gè)ZigBee網(wǎng)絡(luò)演示。在該例子中主要通過(guò)SmartRF04EB板上的某些跳線來(lái)完成設(shè)備類型的選型,當(dāng)然這個(gè)方法在程序中是需要判斷哪個(gè)按鍵被拉低或拉高,對(duì)于做個(gè)設(shè)計(jì)的來(lái)說(shuō)應(yīng)該是相當(dāng)好理解的。

申明:由于本人很窮,所以沒(méi)錢(qián)買(mǎi)TI原裝開(kāi)發(fā)包,當(dāng)然也就沒(méi)有上面提到的硬件,本人采用的是某家公司(為了避免廣告,這里就不說(shuō)明了)的硬件系統(tǒng)。
5.4、建立一個(gè)SampleLight協(xié)調(diào)器設(shè)備

至于提到的硬件連接這里一律省略。

無(wú)疑:首先要打開(kāi)對(duì)應(yīng)工程,如圖1-4所示:
圖1-4
在工作窗口中選擇DemoEB,如圖1-5所示:
 
圖1-5
然后選擇工程菜單(Project)下的全部編譯(Rebuild All)選項(xiàng),如圖1-6所示:
 
圖1-6
然后選擇工程菜單(Project)下的調(diào)試(Debug)選項(xiàng),如圖1-7所示:
 
圖1-7
下載完之后就可以退出調(diào)試狀態(tài),通過(guò)選中調(diào)試菜單下的停止調(diào)試選項(xiàng),如圖1-8所示:
 

圖1-8
按照此種方法下載至少兩個(gè)CC2430EM模塊,就可以進(jìn)行Demo演示了。
6、 Z-Stack 示范

至于詳細(xì)的示范流程,這里先不說(shuō)了,因?yàn)楸救瞬捎玫挠布c原裝有點(diǎn)差異,即使按照這個(gè)方法下載仍然不能演示,因?yàn)槲疫@個(gè)不能用跳線來(lái)選擇設(shè)備類型。

所以我必須進(jìn)入程序把跳線判斷程序進(jìn)行簡(jiǎn)單必要的修改才能演示。

該文檔介紹的演示結(jié)果及現(xiàn)象都是基于CHIPCON原廠評(píng)估板。

7.PanID和通道(Channel)選擇

ZigBee協(xié)議規(guī)范規(guī)定,一個(gè)14位的個(gè)域網(wǎng)標(biāo)志符(PAN ID)來(lái)標(biāo)識(shí)唯一的一個(gè)網(wǎng)絡(luò)。Z-Stack可以用兩種方式由用戶自己選擇其PAN ID,當(dāng)ZDAPP_CONFIG_PAN_ID值設(shè)置不為0xFFFF時(shí),那么設(shè)備建立或加入網(wǎng)絡(luò)的PAN ID由ZDAPP_CONFIG_PAN_ID指定;如果設(shè)置ZDAPP_CONFIG_PAN_ID為0xFFFF;那么設(shè)備就將建立或加入它發(fā)現(xiàn)網(wǎng)絡(luò)中的“最好”的網(wǎng)絡(luò)。關(guān)于這里提到的“最好”的網(wǎng)絡(luò),我覺(jué)得可能是有些參數(shù)評(píng)估,只不過(guò)這里沒(méi)有詳細(xì)的介紹,在后續(xù)文檔中應(yīng)該有介紹的。

在2.4G頻段上,IEEE 802.15.4/ZIGBEE規(guī)范規(guī)定了16各頻道。用戶可以通過(guò)選擇DEFAULT_CHANLIST不同的值可以選擇不同的頻道,其頻道如圖1-9所示。改協(xié)議默認(rèn)頻道為0xB及0x00000800。


圖1-9
DEFAULT_CHANLIST 和 ZDAPP_CONFIG_PAN_ID都作為IAR IDE中的編譯選項(xiàng)可以進(jìn)行設(shè)置,在應(yīng)用文件中的…\Projects\Tools\CC2430DB目錄下的f8wConfig.cfg文件中有相應(yīng)設(shè)置,如圖1-10所示。

圖1-10

 

 

 

 

 

 

 

 

 

 

學(xué)習(xí)Zstack之2

上節(jié)基本上初步認(rèn)識(shí)了Zstack的一些情況,今天繼續(xù)我的學(xué)習(xí),打開(kāi)Sample例子看看,究竟ZIGBEE是怎么回事。

毫無(wú)疑問(wèn):如果是第一次打開(kāi)這個(gè)例子工程,肯定很迷糊,因?yàn)榇藭r(shí)我迷糊了。對(duì)圖2-1我簡(jiǎn)直是相當(dāng)迷糊。
 
圖2-1

這么多文件夾,打開(kāi)之后又有那么多文件,從何看起?不要著急,特別是有些人拿到之后,啥都不知道的人第一個(gè)問(wèn)題就是:我要實(shí)現(xiàn)XXX,在哪修改或者在哪添加我的函數(shù)呢?凡是我遇到這樣的客戶,我就可以肯定他技術(shù)部咋的。就連我這個(gè)外行都知道,不把這些弄明白,就是實(shí)現(xiàn)XXX只需要修改一個(gè)字母,那也不知道在哪改???所以我不急,但是我也理解很多客戶,因?yàn)橛袝r(shí)候項(xiàng)目催的比較急,畢竟老板都是外行嘛!

兩條路:1就是先看主函數(shù),2就是看看TI提供例子說(shuō)明文檔沒(méi)有。

我這里先看看主函數(shù)再說(shuō)哈!因?yàn)槲揖椭缽闹骱瘮?shù)看起.

沒(méi)辦法大概每個(gè)文件夾找啊,主函數(shù)的特征還是比較明明顯的,見(jiàn)圖2-2所示:
 
圖2-2
下面把主函數(shù)復(fù)制過(guò)來(lái)簡(jiǎn)單看下:
ZSEG int main( void )
{
// Turn off interrupts------------關(guān)閉中斷
osal_int_disable( INTS_ALL );
// Initialize HAL-----------初始化HAL,關(guān)于HAL是什么我想后面會(huì)有介紹的。
HAL_BOARD_INIT();
// Make sure supply voltage is high enough to run----電壓檢測(cè),最好是能保證芯片能正常工作的電壓
zmain_vdd_check();
// Initialize stack memory-------------初始化stack存儲(chǔ)區(qū)
zmain_ram_init();
// Initialize board I/O------------初始化板載IO
InitBoard( OB_COLD );
// Initialze HAL drivers-------------初始化HAL驅(qū)動(dòng)
HalDriverInit();
// Initialize NV System--------------初始化NV系統(tǒng),NV是什么后面我想也會(huì)有介紹的
osal_nv_init( NULL );
// Determine the extended address------------確定擴(kuò)展地址(64位IEEE/物理地址)
zmain_ext_addr();
// Initialize basic NV items----------------初始化基本NV條目
zgInit();
// Initialize the MAC----------------初始化MAC
ZMacInit();
#ifndef NONWK
// Since the AF isn't a task, call it's initialization routine
afInit();
#endif
// Initialize the operating system----------初始化操作系統(tǒng),看樣子這里面還有OS,麻煩了……..!
osal_init_system();

// Allow interrupts-------------允許中斷
osal_int_enable( INTS_ALL );
// Final board initialization------------------最后的版在初始化
InitBoard( OB_READY );
// Display information about this device---------------顯示設(shè)備信息
zmain_dev_info();
/* Display the device info on the LCD */------------液晶支持顯示
#ifdef LCD_SUPPORTED
zmain_lcd_init();
#endif
osal_start_system(); // No Return from here-------------------這里沒(méi)有返回,大概是進(jìn)入OS了。
} // main()

可以看到基本上都是初始化函數(shù),因?yàn)楹瘮?shù)名稱都基本上帶了init字樣的,呵呵,個(gè)人覺(jué)得TI的變成習(xí)慣比我好,一看名稱就知道大概功能了。所以這里也奉勸各位像我這樣菜鳥(niǎo)級(jí)的初學(xué)者,一開(kāi)始一定就要養(yǎng)成規(guī)范化編程的習(xí)慣,據(jù)說(shuō)這樣維護(hù)以及以后升級(jí)或者移植兼容性都比較好。我就先不管各個(gè)初始化函數(shù)是怎么實(shí)現(xiàn)的,我先看看各個(gè)功能是什么,現(xiàn)掌握整體功能在細(xì)化,我覺(jué)得這樣的學(xué)習(xí)方法比較好,因?yàn)榇a是在太多了,從一開(kāi)始就逐句看,我敢保證沒(méi)幾個(gè)人有耐心看完看明白!

幸好每個(gè)初始化函數(shù)都有一句說(shuō)明,雖然是英文的,但是理解起來(lái)一點(diǎn)都不難的。關(guān)于每個(gè)函數(shù)的功能我就直接寫(xiě)在上面的程序里面,節(jié)省紙張哈!

一句話:主函數(shù)的功能就是初始化!

主函數(shù)看完了又開(kāi)始模糊了,又從何看起呢?在無(wú)從下手之際,只有去尋求TI說(shuō)明文檔的幫助了。上節(jié)不是漏掉了內(nèi)容,是關(guān)于演示結(jié)果的,這里做上補(bǔ)充,怕因?yàn)槿闭{(diào)一點(diǎn)后面遇到什么不理解的就慘了!

Sample例子演示演示現(xiàn)象:
1、認(rèn)識(shí)硬件------------按鍵和LED

上節(jié)提到了EM和DB兩個(gè)板子,其硬件是不一樣的。按鍵EM就有5各SW1~SW5,而DB只有1各方向鍵,但是他們有個(gè)對(duì)應(yīng)關(guān)系,如圖2-3所示.

圖2-3

LED數(shù)量和顏色也不一樣,EM有四個(gè)LED,如圖2-4;而DB只有兩個(gè),如圖2-5。
如圖2-4

如圖2-5

關(guān)于上面幾個(gè)圖2-4/5中出現(xiàn)的LEDx實(shí)際上是程序中出現(xiàn)的關(guān)鍵字。
2、初始化64位IEEE地址

實(shí)際上在主函數(shù)中有這么個(gè)初始化函數(shù)的:zmain_ext_addr()。這里說(shuō)如果地址復(fù)位為0xFFFFFFFFFFFFFFFF的話,那么就會(huì)不停的閃爍LED1,一直等到按鍵SW5按下后程序才能繼續(xù)運(yùn)行,意思就是說(shuō)按下SW5后就把無(wú)效的地址初始化為有效地物理地址了,這個(gè)應(yīng)該是程序上實(shí)現(xiàn)的,那么就來(lái)看看對(duì)應(yīng)的程序zmain_ext_addr。
/*********************************************************************
* @fn   zmain_ext_addr
* @brief   Makes extended address if none exists.確定擴(kuò)展地址是有效的
* @return  none
 *********************************************************************/
static ZSEG void zmain_ext_addr( void )
{
uint8 i;
uint8 led;
uint8 tmp;
uint8 *xad;
uint16 AtoD;
// Initialize extended address in NV初始化NV里的擴(kuò)載地址
osal_nv_item_init(ZCD_NV_EXTADDR,Z_EXTADDR_LEN, NULL );
osal_nv_read( ZCD_NV_EXTADDR, 0, Z_EXTADDR_LEN, &aExtendedAddress );
// Check for uninitialized value (erased EEPROM = 0xFF)檢查是否為無(wú)效值(地址)
xad = (uint8*)&aExtendedAddress;
for (i =0;i < Z_EXTADDR_LEN; i++ )
if(*xad++ != 0xFF ) return;-----如果有一個(gè)字節(jié)不為0xFF,那么該地址有效返回
#ifdef ZDO_COORDINATOR
tmp = 0x10;
#else
tmp = 0x20;
#endif
// Initialize with a simple pattern----------------簡(jiǎn)單初始化擴(kuò)展地址
xad = (uint8*)&aExtendedAddress;
for ( i = 0; i < Z_EXTADDR_LEN; i++ )
*xad++ = tmp++;
// Flash LED1 until user hits SW5 ---------閃爍LED1直到SW5按下
led = HAL_LED_MODE_OFF;
while ( HAL_KEY_SW_5 != HalKeyRead() )---------------------SW5循環(huán)檢測(cè)
{
MicroWait( 62500 );
HalLedSet( HAL_LED_1, led^=HAL_LED_MODE_ON );//Toggle the LED
MicroWait( 62500 );
}
HalLedSet( HAL_LED_1, HAL_LED_MODE_OFF );
// Plug AtoD data into lower bytes
AtoD = HalAdcRead (HAL_ADC_CHANNEL_7, HAL_ADC_RESOLUTION_10);
xad = (uint8*)&aExtendedAddress;
*xad++ = LO_UINT16( AtoD );
*xad = HI_UINT16( AtoD );
#if !defined( ZTOOL_PORT ) || defined( ZPORT ) || defined( NV_RESTORE )
// If no support for Z-Tool serial I/O,
// Write temporary 64-bit address to NV些臨時(shí)的64位物理地址進(jìn)入NV
osal_nv_write( ZCD_NV_EXTADDR, 0, Z_EXTADDR_LEN, &aExtendedAddress );
#endif
}

從程序中可以看出,一開(kāi)始就檢測(cè)FLASH中的物理地址,因?yàn)檫@個(gè)地址在FLASH中是固定的存儲(chǔ)空間,一旦為有效地址就退出函數(shù),一旦為無(wú)效地址(0xFFFFFFFFFFFFFFFF),那么就對(duì)其物理地址進(jìn)行簡(jiǎn)單的初始化并檢測(cè)SW5按鍵。還是比較好理解的!
3、運(yùn)行例子

在這里提到了跳線,由于本人采用的非TI原裝硬件,沒(méi)有該跳線,所以必須對(duì)程序進(jìn)行修改,否則檢測(cè)不到跳線,連ZIGBEE的設(shè)備類型都不能確定,肯定不能正常運(yùn)行了。所以這里就先暫時(shí)不說(shuō)了,這里要說(shuō)的是一切都正常的情況下,例子的驗(yàn)尸結(jié)果。小小跳躍一下。不然學(xué)習(xí)一直沒(méi)有進(jìn)展很麻煩的!

協(xié)調(diào)器:上電運(yùn)行,地址檢測(cè)如上面介紹的情況,通過(guò)之后呢-------就進(jìn)行通道掃描,此時(shí)LED1閃爍,一旦協(xié)調(diào)器成功建立網(wǎng)絡(luò),此時(shí)LED1停止閃爍,而LED3被點(diǎn)亮。

路由器:上電運(yùn)行,仍然是地址檢測(cè)在前。之后就是通道掃描尋求是否又存在的網(wǎng)絡(luò),此時(shí)LED1閃爍,一旦檢測(cè)到存在網(wǎng)絡(luò)并成功加入該網(wǎng)絡(luò),LED1將停止閃爍,被替換的是LED3別點(diǎn)亮,也就表明路由器成功加入了網(wǎng)絡(luò)。

那么此時(shí)能進(jìn)行的操作控制是什么呢,也是最簡(jiǎn)單的表現(xiàn)手法---按鍵無(wú)線控制LED:

周期(5S)發(fā)送信息到網(wǎng)絡(luò)中每個(gè)設(shè)備

SW1按下,發(fā)送一個(gè)信息到組1的設(shè)備

SW2按下,退出/加入組1

這個(gè)我是經(jīng)過(guò)驗(yàn)證的。如:

按下協(xié)調(diào)器SW1,路由器的LED1狂閃幾下;按下路由器的SW1,那么協(xié)調(diào)器的LED1也就狂閃幾下;當(dāng)然我是只有兩個(gè)節(jié)點(diǎn)。

如果按1下協(xié)調(diào)器的SW2,在按下路由器的SW1,此時(shí)協(xié)調(diào)器就沒(méi)有反應(yīng),表明協(xié)調(diào)器已經(jīng)退出組1;但是再按下協(xié)調(diào)器SW2在按路由器的SW1就與上一步類似了。路由器與此類似可以通過(guò)SW2退出/加入組1.

終于把演示弄完了,接下來(lái)就來(lái)看看程序。在此之前還是來(lái)看看TI提供的Sample指導(dǎo)文檔。這個(gè)文檔個(gè)人覺(jué)得寫(xiě)的不錯(cuò),要是沒(méi)看之前就看程序的卻很郁悶的!

但是本人英文很差,所以需要慢慢看,等點(diǎn)時(shí)間放上來(lái)!

Z-Stack3
Sample Application
分析(上)

1、Z-Stack CC2430DB and CC2430EB Sample Application
1.1、介紹

該文檔時(shí)介紹TI協(xié)議入門(mén)的一個(gè)例子SampleApp的,適用EM和DB開(kāi)發(fā)板。
1.1.1、描述

這個(gè)例子是非常簡(jiǎn)單的演示,每個(gè)設(shè)備都可以發(fā)送和接收兩個(gè)信息

周期信息-----加入該網(wǎng)絡(luò)的所有設(shè)備每隔10S(可能會(huì)加上一個(gè)隨機(jī)數(shù)的mS)都發(fā)送一個(gè)周期信息,該信息的數(shù)據(jù)載荷為發(fā)送信息次數(shù)的計(jì)數(shù)。

閃爍控制信息---------通過(guò)按下SW1可以發(fā)送一個(gè)控制燈閃爍的廣播信息,該廣播信息只針對(duì)組1的所有設(shè)備。

所有設(shè)備初始化為加入組1,所以網(wǎng)絡(luò)一旦成功建立/加入就可以進(jìn)行閃爍控制??梢酝ㄟ^(guò)按下設(shè)備的SW2退出組1,所以可以通過(guò)退出組1可以不接受閃燈信息。通過(guò)按下SW2也可以讓不在組1的設(shè)備加入近組1,從而又可以接受閃燈信息了。

這個(gè)理解應(yīng)該不困難的,反正我理解沒(méi)有什么障礙!
1.1.1.1、按鍵

SW1:發(fā)送閃爍信息到組1所有設(shè)備

SW2:轉(zhuǎn)換推出/加入組1狀態(tài)
1.1.2、用戶應(yīng)用開(kāi)發(fā)

這里我基本上能看明白是什么,但是我不打算寫(xiě)出來(lái),因?yàn)樯婕暗揭恍㈱IGBEE的關(guān)鍵術(shù)語(yǔ),不是很明白。

大概就是簡(jiǎn)單介紹了下用戶怎么利用例子做自己的應(yīng)用,但是實(shí)用價(jià)值不高,說(shuō)的太籠統(tǒng),全是概念性的說(shuō)明。
1.2、OSAL任務(wù)
1.2.1、初始化

因?yàn)閆-Stack是在OS下運(yùn)行的,所以在之前必須調(diào)用osalAddTasks()初始化任務(wù)。
1.2.2、組織

關(guān)于OS的API函數(shù)介紹請(qǐng)看文檔:Z-Stack OSAL API (F8W-2003-0002),應(yīng)該說(shuō)協(xié)議棧的每層或者說(shuō)每部分都有相關(guān)的API說(shuō)明文檔。osalAddTasks()初始化任務(wù),osalTaskAdd()函數(shù)添加任務(wù),都可以到API文檔或程序中詳細(xì)分析函數(shù)功能。
1.2.3、系統(tǒng)服務(wù)

OSAL和APL系統(tǒng)服務(wù)是唯一的,因?yàn)楸热绨存I和串口類似事件處罰就只能用唯一的一個(gè)任務(wù)標(biāo)識(shí)。這兩個(gè)硬件都留給了用戶自己定義使用。
1.2.4、應(yīng)用設(shè)計(jì)

用戶可能為每一個(gè)應(yīng)用對(duì)象都創(chuàng)建一個(gè)任務(wù),或者為所有的應(yīng)用對(duì)象只創(chuàng)建一個(gè)任務(wù)。當(dāng)選擇上述的設(shè)計(jì)的時(shí)候,下面是一些設(shè)計(jì)思路:
1.2.4.1、為許多應(yīng)用對(duì)象創(chuàng)建一個(gè)OSAL任務(wù)

下面是正面和反面(pros & cons)的一些敘述:

- Pro:接受一個(gè)互斥任務(wù)事件(開(kāi)關(guān)按下或串口)時(shí),動(dòng)作是單一的。

- Pro:需要堆??臻g保存一些OSAL任務(wù)結(jié)構(gòu)。

- Con:接收一個(gè)AF信息或一個(gè)AF數(shù)據(jù)確認(rèn)時(shí),動(dòng)作是復(fù)雜的-----在一個(gè)用戶任務(wù)上,分支多路處理應(yīng)用對(duì)象的信息事件。

- Con:通過(guò)匹配描述符(如:自動(dòng)匹配)去發(fā)現(xiàn)服務(wù)的處理過(guò)程更復(fù)雜-----為了適當(dāng)?shù)膶?duì)ZDO_NEW_DSTADDR信息起作用,一個(gè)靜態(tài)標(biāo)志必須被維持。
1.2.4.2、為一個(gè)應(yīng)用對(duì)象創(chuàng)建一個(gè)OSAL任務(wù)

一對(duì)一設(shè)計(jì)的反面和正面(pros & cons)是與上面一對(duì)多設(shè)計(jì)相反的:

- Pro:在應(yīng)用對(duì)象試圖自動(dòng)匹配時(shí),僅僅一個(gè)ZDO_NEW_DSTADDR被接收。

- Pro:已經(jīng)被協(xié)議棧下層多元處理后的一個(gè)AF輸入信息或一個(gè)AF數(shù)據(jù)確認(rèn)。

- Con:需要堆??臻g保存一些OSAL任務(wù)結(jié)構(gòu)。

- Con:如果兩個(gè)或更多應(yīng)用對(duì)象用同一個(gè)唯一的資源,接收一個(gè)互斥任務(wù)事件的動(dòng)作就更復(fù)雜。
1.2.5、強(qiáng)制方法

任何一個(gè)OSAL任務(wù)必須用兩種方法執(zhí)行:一個(gè)是初始化,另一個(gè)是處理任務(wù)事件。
1.2.5.1、任務(wù)初始化

在例子中調(diào)用如下函數(shù)執(zhí)行任務(wù)初始化:

“Application Name”_Init(如SAPI_Init)。該任務(wù)初始化函數(shù)應(yīng)該完成如下功能:

變量或相應(yīng)應(yīng)用對(duì)象特征初始化,為了使OSAL內(nèi)存管理更有效,在這里應(yīng)該分配永久堆棧存儲(chǔ)區(qū)。

在AF層登記相應(yīng)應(yīng)用對(duì)象(如:afRegister())。

登記可用的OSAL或HAL系統(tǒng)服務(wù)(如:RegisterForKeys())
1.2.5.2、任務(wù)事件處理

調(diào)用如下函數(shù)處理任務(wù)事件:

“Application Name”_ProcessEvent (e.g. SAPI_ProcessEvent()).除了強(qiáng)制的事件之外,任一OSAL任務(wù)能被定義多達(dá)15個(gè)任務(wù)事件。
1.2.6、強(qiáng)制事件

一個(gè)任務(wù)事件SYS_EVENT_MSG (0x8000), 被保留必須通過(guò)OSAL任務(wù)設(shè)計(jì)。
2.2.6.1、SYS_EVENT_MSG (0x8000)

任務(wù)事件管理者應(yīng)該處理如下的系統(tǒng)信息子集,下面只列出了部分信息,但是是最常用的幾個(gè)信息處理,推薦根據(jù)例子復(fù)制到自己項(xiàng)目中使用。
1.2.6.1.1、AF_DATA_CONFIRM_CMD

調(diào)用AF_DataRequest()函數(shù)數(shù)據(jù)請(qǐng)求成功的指示。Zsuccess確認(rèn)數(shù)據(jù)請(qǐng)求傳輸成功,如果數(shù)據(jù)請(qǐng)求設(shè)置AF_ACK_REQUEST標(biāo)志位,那么,只有最終目的地址成功接收后,Zsuccess確認(rèn)才返回。如果如果數(shù)據(jù)請(qǐng)求沒(méi)有設(shè)置AF_ACK_REQUEST標(biāo)志位,那么,數(shù)據(jù)請(qǐng)求只要成功傳輸?shù)较绿?jié)點(diǎn)就返回Zsuccess確認(rèn)信息。
1.2.6.1.2、AF_INCOMING_MSG_CMD

AF信息輸入指示
1.2.6.1.3、KEY_CHANGE

鍵盤(pán)動(dòng)作指示
1.2.6.1.4、ZDO_NEW_DSTADDR

匹配描述符請(qǐng)求(Match Deor Request)響應(yīng)指示。(例如:自動(dòng)匹配)
1.2.6.1.5、ZDO_STATE_CHANGE

網(wǎng)絡(luò)狀態(tài)改變指示
1.3、網(wǎng)絡(luò)格式化

示例應(yīng)用程序編譯為協(xié)調(diào)器的在default_chanlist指定的通道上形成一個(gè)網(wǎng)絡(luò),協(xié)調(diào)器將建立一個(gè)隨機(jī)編號(hào)源于自身的IEEE地址或由zdapp_config_pan_id指定的網(wǎng)絡(luò)PAN ID(如果zdapp_config_pan_id不為0xFFFF)。

示例應(yīng)用程序編譯為路由器或結(jié)束設(shè)備的將嘗試加入網(wǎng)絡(luò)在default_chanlist指定的通道上,如果zdapp_config_pan_id沒(méi)有定義為0 xFFFF ,路由器將受到限制,只有加入?yún)?shù)zdapp_config_pan_id規(guī)定的網(wǎng)絡(luò)PAN ID。
1.3.1、自動(dòng)啟動(dòng)

設(shè)備自動(dòng)開(kāi)始嘗試組建或加入網(wǎng)絡(luò)。如果設(shè)備設(shè)置為等待計(jì)時(shí)器或其他外部事件發(fā)生后才啟動(dòng),那么HOLD_AUTO_START必須被定義。為了稍后以手動(dòng)啟動(dòng)方式啟動(dòng)設(shè)備,那么需要調(diào)用ZDApp_StartUpFromApp(函數(shù)

1.3.2、軟件啟動(dòng)

為了在形成網(wǎng)絡(luò)過(guò)程中節(jié)省所需的設(shè)備類型,那么所有的路由器設(shè)備可以被通過(guò)soft_star定義作為一個(gè)協(xié)調(diào)器。如果自動(dòng)啟動(dòng)是需要的話,那么auto_soft_start必須被定義。
1.3.3、網(wǎng)絡(luò)恢復(fù)

通過(guò)設(shè)置NV_RESTORE和/或NV_INIT,可以讓設(shè)備斷電或者意外掉電重新啟動(dòng)后重新回復(fù)網(wǎng)絡(luò)。
1.3.4、加入通告

當(dāng)設(shè)備形成或加入網(wǎng)絡(luò)后會(huì)發(fā)通報(bào)到ZDO_STATE_CHANGE信息事件。

 

學(xué)Z-Stack4
Sample Application
分析(下)

上節(jié)介紹了建立一個(gè)應(yīng)用需要做的幾個(gè)必須的事情,現(xiàn)在就來(lái)通過(guò)分析Sample Application來(lái)具體看看需要做哪些事情,才能建立一個(gè)ZIGBEE應(yīng)用功能。當(dāng)然這里只是做點(diǎn)簡(jiǎn)單的必須的工作。
The Sample Application (SampleApp)
1、介紹

主要是介紹一個(gè)應(yīng)用建立的結(jié)構(gòu)及需要進(jìn)行的程序流程。
1.1、程序流程
1.1.1、初始化

首先需要調(diào)用初始化函數(shù)SampleApp_Init()。

SampleApp_TaskID = task_id;

初始化應(yīng)用建立的任務(wù)ID號(hào),其實(shí)用過(guò)OS的人都應(yīng)該曉得這個(gè)是干啥的,我沒(méi)用過(guò),不是很理解,但是我知道是必須的,就相當(dāng)于一個(gè)任務(wù)的標(biāo)識(shí),這樣才能區(qū)分運(yùn)行過(guò)程中不同任務(wù)中的不同事件。我是這么認(rèn)為的,ID說(shuō)白了就是給該任務(wù)取了各名字,就向人名字一樣,區(qū)分不同的人,就是一個(gè)代號(hào)。人名可以重復(fù),重復(fù)了有時(shí)候叫起來(lái)就容易混淆;所以才程序中為了避免這種混淆,就強(qiáng)制性的規(guī)定任務(wù)ID不能重復(fù)。要是哪天國(guó)家或者聯(lián)合國(guó)姓名管理委員會(huì)規(guī)定,人民不能重復(fù),那么這個(gè)人名就需要全球統(tǒng)一管理了。那給娃取個(gè)名字就要向聯(lián)合國(guó)姓名管理委員會(huì)申請(qǐng)了。呵呵!

SampleApp_NwkState = DEV_INIT;

初始化應(yīng)用設(shè)備的網(wǎng)絡(luò)狀態(tài)。怎么說(shuō)呢,據(jù)說(shuō)是設(shè)備類型的改變都要產(chǎn)生一個(gè)事件,叫ZDO_STATE_CHANGE,從字面理解為ZDO狀態(tài)發(fā)生了改變。所以在設(shè)備初始化的時(shí)候一定要把它初始化為什么狀態(tài)都沒(méi)有。那么它就要去檢測(cè)整個(gè)環(huán)境,看是否能重新建立或者加入存在的網(wǎng)絡(luò)。但是有一種情況例外,就是當(dāng)NV_RESTORE被設(shè)置的時(shí)候(NV_RESTORE是把信息保存在非易失存儲(chǔ)器中),那么當(dāng)設(shè)備斷電或者某種意外重啟時(shí),由于網(wǎng)絡(luò)狀態(tài)存儲(chǔ)在非易失存儲(chǔ)器中,那么此時(shí)就只需要恢復(fù)其網(wǎng)絡(luò)狀態(tài),而不需要重新建立或者加入網(wǎng)絡(luò)了。我也是從文檔中這么理解的,至于為什么只有有待進(jìn)一步考證。

SampleApp_DstAddr.addrMode = (afAddrMode_t)AddrNotPresent;

SampleApp_DstAddr.endPoint = 0;

SampleApp_DstAddr.addr.shortAddr = 0;

看見(jiàn)這幾句話從字面理解為:初始化不標(biāo)設(shè)備地址模式及目標(biāo)設(shè)備EP號(hào)和網(wǎng)絡(luò)地址。從代碼可以看出,這些地址或EP均為0。也就是說(shuō)目標(biāo)設(shè)備為協(xié)調(diào)者的ZDO,這個(gè)意義就很明顯了,就是設(shè)備建立后可以直接與協(xié)調(diào)器的ZDO交互信息。
SampleApp_epDesc.endPoint = SAMPLEAPP_ENDPOINT;
----- SampleApp EP描述符的EP號(hào)
SampleApp_epDesc.task_id = &SampleApp_TaskID;------ SampleApp EP描述符的任務(wù)ID
SampleApp_epDesc.simpleDesc =------------------ SampleApp EP簡(jiǎn)單描述符
SimpleDeionFormat_t *)&SampleApp_SimpleDesc;
SampleApp_epDesc.latencyReq = noLatencyReqs;
//在AF層中登記注冊(cè)改應(yīng)用EP
afRegister( &SampleApp_epDesc );

這里其實(shí)是對(duì)SampleApp的EP描述符進(jìn)行初始化。

本人理解:要對(duì)改應(yīng)用進(jìn)行初始化并在AF進(jìn)行登記,告訴應(yīng)用層有這么一個(gè)EP已經(jīng)可以使用,那么下層要是有關(guān)于改應(yīng)用的信息或者應(yīng)用要對(duì)下層做哪些操作,就自動(dòng)得到下層的配合,至于這個(gè)配合是怎么回事,那么就需要好好研究下層的協(xié)議了。當(dāng)然在這里肯定是沒(méi)那時(shí)間精力和能力研究了!

其實(shí)在這個(gè)應(yīng)用中,只是讓AF配合SAMPLEAPP_PROFID / SAMPLEAPP_ENDPOINT這兩個(gè)應(yīng)用。那么通過(guò)什么呢,通過(guò)發(fā)送OSAL SYS_EVENT_MSG消息中的(AF_INCOMING_MSG_CMD)事件到SampleApp任務(wù)ID。

RegisterForKeys( SampleApp_TaskID );

登記按鍵事件到SampleApp_TaskID,在前面已經(jīng)說(shuō)了按鍵這個(gè)是唯一的,也就是所有任務(wù)中有且只有各任務(wù)能登記鍵盤(pán)事件。前面還說(shuō)了還有一個(gè)也是唯一,你猜是什么?

SampleApp_Group.ID = 0x0001;

osal_memcpy( SampleApp_Group.name, “Group1”);

aps_AddGroup( SAMPLEAPP_ENDPOINT, &SampleApp_Group );

閃燈信息被發(fā)送到組1,同樣也只有在組1的設(shè)備才能接收這個(gè)信息。設(shè)備啟動(dòng)時(shí)已經(jīng)被設(shè)定為組1設(shè)備了,但是可以通過(guò)按SW1推出/加入組1。這里提到了組的概念,我反正暫時(shí)不是很清楚這個(gè)是什么東西,在程序中怎么實(shí)現(xiàn)也很模糊,但是應(yīng)用中的好處還是不難想象的,不外呼是就是想控制誰(shuí)可以事先規(guī)定好,還可以動(dòng)態(tài)更改。
1.2、事件處理

玩過(guò)OS的人都知道,OS中最重要的概念不外呼就是任務(wù)啦,消息啦,事件啦等。從我們自己平時(shí)的工作中也不難想象,如果老板安排了某項(xiàng)工作,那么我們就需要做的,這個(gè)工作可能是預(yù)先計(jì)劃好的,也有可能是臨時(shí)的,那么這些預(yù)先定好或者臨時(shí)的工作可以稱之為事件。而老板讓您做的方式,比如通過(guò)文件下達(dá),或者叫:某某你把XXX做下。那么讓老板下達(dá)的文件內(nèi)容或者說(shuō)的內(nèi)容我這里可以稱之為消息。老板給了你不同的消息那么就需要干不同的事件,至于任務(wù)可以理解為公司的不同的員工,呵呵!我簡(jiǎn)直是理解的天才,這樣舉例居然也能忽悠通過(guò)?。?!o(∩_∩)o…哈哈

在Z-Stack中,每個(gè)應(yīng)用任務(wù)都通過(guò)SampleApp_ProcessEvent()函數(shù)來(lái)處理任務(wù)中的事件。一旦SampleApp_TaskID任務(wù)的某個(gè)OSAL事件發(fā)生,那么就可以通過(guò)調(diào)用SampleApp_ProcessEvent()函數(shù)來(lái)處理。在SampleApp_ProcessEvent()中有一個(gè)事件處理循環(huán),循環(huán)檢測(cè)是哪個(gè)事件發(fā)生。
if ( events & SYS_EVENT_MSG )
{
MSGpkt = (afIncomingMSGPacket_t*)osal_msg_receive( SampleApp_TaskID );
while ( MSGpkt )
{

可以看到是通過(guò)檢測(cè)SYS_EVENT_MSG是否有事件信息發(fā)生。

switch ( MSGpkt->hdr.event )

這里是判斷SYS_EVENT_MSG事件類型,不同的SYS_EVENT_MSG類型需要不同的處理。
case KEY_CHANGE:
SampleApp_HandleKeys( ((keyChange_t *)MSGpkt)->state,
((keyChange_t *)MSGpkt)->keys );
break;

比如這里判斷是否是鍵盤(pán)事件,如果鍵盤(pán)事件就調(diào)用鍵盤(pán)處理函數(shù)。

如果一個(gè)OSAL任務(wù)已經(jīng)被登記組側(cè),那么任何鍵盤(pán)事件都將接受一個(gè)KEY_CHANGE事件信息??赡苡腥缦聨追N方式得到鍵盤(pán)事件信息

1)、HAL檢測(cè)到鍵盤(pán)按下(中斷或者查詢檢測(cè))

2)、HAL的OSAL任務(wù)檢測(cè)到一個(gè)鍵盤(pán)狀態(tài)改變調(diào)用回叫函數(shù)產(chǎn)生

3)、OSAL鍵盤(pán)改變回叫函數(shù)發(fā)送一個(gè)OSAL系統(tǒng)事件信息(KEY_CHANGE)。

case AF_DATA_CONFIRM_CMD:
// The status is of ZStatus_t type [defined in ZComDef.h]
// The message fields are defined in AF.h
afDataConfirm = (afDataConfirm_t *)MSGpkt;
sentEP = afDataConfirm->endpoint;
sentStatus = afDataConfirm->hdr.status;
sentTransID = afDataConfirm->transID;
任何AF_DataRequest()數(shù)據(jù)請(qǐng)求函數(shù)調(diào)用后,都通過(guò)AF_DATA_CONFIRM_CMD系統(tǒng)事件信息回叫返回成功Zsuccess。
case ZDO_STATE_CHANGE:
SampleApp_NwkState = (devStates_t)(MSGpkt->hdr.status);
if ( (SampleApp_NwkState == DEV_ZB_COORD)
||(SampleApp_NwkState == DEV_ROUTER)
||(SampleApp_NwkState == DEV_END_DEVICE) )
{
// Update the LCD’s network indicator
// Start sending "the" message in a regular interval.
osal_start_timer( SAMPLEAPP_SEND_PERIODIC_MSG_EVT,
SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT );
}
break;

這里就是前面介紹的設(shè)備狀態(tài)改變事件處理了。

只要網(wǎng)絡(luò)狀態(tài)發(fā)生改變,那么通過(guò)ZDO_STATE_CHANGE事件通知所有的任務(wù)。注意:在這個(gè)例子中,一旦設(shè)備成功加入網(wǎng)絡(luò),是通過(guò)定時(shí)運(yùn)行的方式運(yùn)行的。一旦網(wǎng)絡(luò)狀態(tài)為加入”JOINED”,那么它可能不需要任何的認(rèn)為操作就能綁定其他設(shè)備,因?yàn)樵O(shè)置為自動(dòng)發(fā)現(xiàn)并綁定的。
// Release the memory
osal_msg_deallocate( (uint8 *)MSGpkt );
釋放存儲(chǔ)空間。
if ( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT )
{
// Send "the" message
SampleApp_SendPeriodicMessage();
// Setup to send message again
osal_start_timer( SAMPLEAPP_SEND_PERIODIC_MSG_EVT,
SAMPLEAPP_SEND_MSG_TIMEOUT );
// return unprocessed events
return (events ^ SAMPLEAPP_SEND_PERIODIC_MSG_EVT);
}
這里檢測(cè)事件是否為周期發(fā)送信息事件。

在SampleApp.h中定義了:

#define SAMPLEAPP_SEND_PERIODIC_MSG_EVT 0x0001
在這個(gè)應(yīng)用中,調(diào)用了osal_start_timer()函數(shù)來(lái)定時(shí)產(chǎn)生發(fā)送周期信息事件。而定時(shí)器的運(yùn)行是設(shè)備一旦加入網(wǎng)絡(luò)就不停的在運(yùn)行。從上面可以看到,用函數(shù)SampleApp_SendPeriodicMessage()發(fā)送周期信息,而用函數(shù)osal_start_timer( SAMPLEAPP_SEND_PERIODIC_MSG_EVT,SAMPLEAPP_SEND_MSG_TIMEOUT )來(lái)繼續(xù)運(yùn)行定時(shí)器定時(shí)發(fā)送這個(gè)周期信息。關(guān)于這個(gè)osal_start_timer可以多了解下,第一個(gè)參數(shù)SAMPLEAPP_SEND_PERIODIC_MSG_EVT四信息時(shí)間,也就是事件到了產(chǎn)生一個(gè)什么事件。第二各參數(shù)SAMPLEAPP_SEND_MSG_TIMEOUT是需要定時(shí)的時(shí)間,這里就是發(fā)送周期信息的時(shí)間周期。
1.3、消息流程

通過(guò)OSAL定時(shí)器,這個(gè)應(yīng)用定時(shí)發(fā)送一個(gè)周期信息:
void SampleApp_SendPeriodicMessage( void )
{
afAddrType_t dstAddr;
dstAddr. addrMode = afAddrBroadcast;
dstAddr.addr.shortAddr = 0xFFFF; // 廣播發(fā)送
dstAddr. endpoint = SAMPLEAPP_ENDPOINT;
if ( AF_DataRequest( & dstAddr, &SampleApp_epDesc,
SAMPLEAPP_PERIODIC_CLUSTERID,
(uint8)sampleAppPeriodicCounter++,
(uint8 *)&sampleAppPeriodCounter,
&SampleApp_TransID,
AF_DISCV_ROUTE,
AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
{
// Successfully requested to be sent.----發(fā)送成功處理
}
else
{
// Error occurred in request to send.---發(fā)送失敗處理
}
}

在這里調(diào)用了AF_DataRequest()函數(shù)用來(lái)發(fā)送數(shù)據(jù)。關(guān)于發(fā)送數(shù)據(jù)的具體過(guò)程這里就不做深入研究,不外乎就是把數(shù)據(jù)從應(yīng)用層傳到網(wǎng)絡(luò)層,在傳到MAC,在傳到無(wú)力層,最后通過(guò)OTA發(fā)送出去。接收數(shù)據(jù)就是相反的過(guò)程了,那么接收之后,在應(yīng)用層有什么反應(yīng)呢,最直觀的反應(yīng)就是會(huì)發(fā)送一個(gè)AF_INCOMING_MSG_CMD消息事件。
case AF_INCOMING_MSG_CMD:
SampleApp_MessageMSGCB( MSGpkt );
break;
這里表示收到某個(gè)信息,然后在里面調(diào)用了收到信息的信息處理函數(shù)SampleApp_MessageMSGCB( MSGpkt )。
void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
{
switch ( pkt->clusterId )
{
case SAMPLEAPP_PERIODIC_CLUSTERID:
// Display and increment a counter on the LCD in the periodic space
break;
case SAMPLEAPP_FLASH_CLUSTERID:
flashTime = BUILD_UINT16(pkt->cmd.Data[1], pkt->cmd.Data[2] );
HalLedBlink( HAL_LED_4, 4, 50, (flashTime / 4) );
break;
}
}

這里判斷了兩種信息:

周期信息

閃燈信息

不同的信息就相當(dāng)于收到了不同的命令,然后根據(jù)不同的命令做出了不同的處理。是個(gè)會(huì)寫(xiě)程序都明白?。。?!

到這里,我就基本上把這個(gè)應(yīng)用文檔看完了,至于理解了多少我迷糊,理解正確了多少我更加迷糊,反正我按照我自己的方式理解了!

 

學(xué)Z-Stack5

前面雖然寫(xiě)了不少,但是回頭看看大多都是廢話,不過(guò)也沒(méi)辦法,沒(méi)有廢話的潤(rùn)色就太枯燥了,太技術(shù)化了,這個(gè)不是我的本意。不知道前面寫(xiě)的怎么樣,技術(shù)含量肯定是不高的。這個(gè)本人是相當(dāng)清楚,但是我最大的期望就是錯(cuò)誤不要太多!

突然想起來(lái)前面有個(gè)問(wèn)題沒(méi)有解決,我想很多人看到那里都很郁悶的。就是設(shè)備類型的選擇,在TI原裝系統(tǒng)上是通過(guò)板載跳線來(lái)選擇的,但是我這里不是采用原裝,那么就需要通過(guò)程序來(lái)修改其設(shè)備類型,然后編譯下載。具體程序段如下:
#if defined ( SOFT_START )
if ( readCoordinatorJumper() )
 zgDeviceLogicalType = ZG_DEVICETYPE_COORDINATOR;
else
 zgDeviceLogicalType = ZG_DEVICETYPE_ROUTER;
#endif // SOFT_START
這里有個(gè)條件編譯,其條件編譯設(shè)置如圖5-1。
 
圖5-1
既然這里設(shè)置了SOFT_START,那么上段程序就要被編譯。那么第一句程序
if ( readCoordinatorJumper() )
就是檢測(cè)跳線,其實(shí)稍微知道編程的都了解怎么修改了,哈哈!
屏蔽:
if ( readCoordinatorJumper() )
  zgDeviceLogicalType = ZG_DEVICETYPE_COORDINATOR;
else

這3句,那么就只剩下:zgDeviceLogicalType = ZG_DEVICETYPE_ROUTER;了

那么編譯自然該設(shè)備就為路由器了。簡(jiǎn)單吧!!?。???!

協(xié)調(diào)器我就不想多說(shuō)怎么做了哈?。。。。。。。。。。。?/span>

還有一個(gè)問(wèn)題需要說(shuō)下,就是Ti原裝的EM板子用到了LCD,所以在程序中可能在某個(gè)地方要對(duì)LCD初始化,那么如果沒(méi)有液晶的板子或者與TI那個(gè)不完全一樣的LCD就有可能運(yùn)行不走,通俗的解決辦法是禁止LCD初始化等操作,Ti在這個(gè)方面做的很人性化,禁止LCD功能沒(méi)有必要在程序中找到LCD相關(guān)程序刪除,而是僅僅需要通過(guò)條件編譯來(lái)禁止。顯得相當(dāng)簡(jiǎn)單,如5-2圖就是禁止LCD的條件編譯。
 
圖5-2

解決這個(gè)問(wèn)題后一般都能夠運(yùn)行程序了。也就是說(shuō)到這里如果還把Demo程序運(yùn)行不起來(lái)的話,那就證明我所有的東西都白寫(xiě)了,反正我到這里我的Demo程序已經(jīng)運(yùn)行如飛了。

那么接下來(lái)就是來(lái)看看Z-Stack具體的一些東西了,我打算先這樣看起:

1、Z-Stack的結(jié)構(gòu),因?yàn)榇蜷_(kāi)Z-Stack的目錄可以看出還是比較復(fù)雜的,只有比較清楚了解其結(jié)構(gòu)之后呢,在程序運(yùn)行或者修改中才能順利的找到自己想要的部分。

2、Z-Stack的應(yīng)用建立。就是怎么在TI提供的協(xié)議(裸協(xié)議)上建立一個(gè)應(yīng)用。這個(gè)層次要求就比較高了,我初步的設(shè)想是希望能分析完SAMPLE例子的應(yīng)用就能自己建立,而不需要太多的去了解下層的協(xié)議。但是往往希望與現(xiàn)實(shí)是有偏差的,走一步算一步了。

3、了解硬件相關(guān)設(shè)定、驅(qū)動(dòng)。也就是說(shuō)把例子跑通了,畢竟是基于TI的硬件,或者說(shuō)基于開(kāi)發(fā)系統(tǒng)的硬件,如果要做自己的應(yīng)用,那么必須要開(kāi)發(fā)自己的硬件。怎么把自己的硬件驅(qū)動(dòng)加入?yún)f(xié)議,這個(gè)我想也是需要解決的問(wèn)題。

4、接下來(lái)可能就要深入分析協(xié)議了,這個(gè)目前我還不清楚從什么地方看起,因?yàn)楫吘箤?duì)ZIGBEE這個(gè)協(xié)議本身就不太了解,但是在學(xué)習(xí)過(guò)程中應(yīng)該會(huì)慢慢對(duì)它有認(rèn)識(shí)。所以到了這一步的時(shí)候說(shuō)不定我就已經(jīng)摸索出一條方法了---畢竟俺是相當(dāng)?shù)穆斆髀铮?/span>

5、需要解決的問(wèn)題,需要了解的東西很多,對(duì)于不太了解這個(gè)東西的我來(lái)說(shuō),不可能非常有計(jì)劃并統(tǒng)籌安排這些事,走彎路是必然的,但是我一致認(rèn)為走彎路才是經(jīng)驗(yàn)的積累!

學(xué)習(xí)Z-Stack6
--------------Z-Stack指導(dǎo)

首先來(lái)看看Z-Stack的結(jié)構(gòu)。

第一次打開(kāi)工程印象最深刻的就是左邊一排文件夾,如圖6-1所示。
 
其實(shí)這個(gè)還是很容易理解的:

APPApplication Programming):應(yīng)用層目錄,這是用戶創(chuàng)建各種不同工程的區(qū)域,在這個(gè)目錄中包含了應(yīng)用層的內(nèi)容和這個(gè)項(xiàng)目的主要內(nèi)容,在協(xié)議棧里面一般是以操作系統(tǒng)的任務(wù)實(shí)現(xiàn)的。

HALHardware (H/W) Abstraction Layer):硬件層目錄,包含有與硬件相關(guān)的配置和驅(qū)動(dòng)及操作函數(shù)。

MACMAC 層目錄,包含了MAC 層的參數(shù)配置文件及其MAC LIB 庫(kù)的函數(shù)接口文件。

MTMonitor Test):實(shí)現(xiàn)通過(guò)串口可控各層,于各層進(jìn)行直接交互。

NWKZigBee Network Layer):網(wǎng)絡(luò)層目錄,含網(wǎng)絡(luò)層配置參數(shù)文件及網(wǎng)絡(luò)層庫(kù)的函數(shù)接口文件,APS層庫(kù)的函數(shù)接口

OSALOperating System (OS) Abstraction Layer):協(xié)議棧的操作系統(tǒng)。

ProfileAFApplication work)層目錄,包含AF層處理函數(shù)文件。

Security:安全層目錄,安全層處理函數(shù),比如加密函數(shù)等。

Services:地址處理函數(shù)目錄,包括著地址模式的定義及地址處理函數(shù)。

Tools:工程配置目錄,包括空間劃分及ZStack 相關(guān)配置信息。

ZDOZigBee Device Objects):ZDO 目錄。

ZMac MAC 層目錄,包括MAC 層參數(shù)配置及MAC LIB 庫(kù)函數(shù)回調(diào)處理函數(shù)。

ZMain:主函數(shù)目錄,包括入口函數(shù)及硬件配置文件。

Output:輸出文件目錄,這個(gè)EW8051 IDE 自動(dòng)生成的。

那么知道各個(gè)文件夾大概是什么功能,分布在ZIGBEE的哪一層,那么在以后的工作中無(wú)論是查詢某些功能函數(shù)還是修改某些功能函數(shù),甚至是添加或刪除某些功能函數(shù)就能順利的找到在什么地方了,當(dāng)然要想真的順利還需要花更多的時(shí)間熟悉這個(gè)協(xié)議棧了!

了解Z-Stack結(jié)構(gòu)后那么就能看看它的功能。

不用問(wèn),這個(gè)是針對(duì)ZIGBEE無(wú)線網(wǎng)絡(luò)寫(xiě)的協(xié)議棧,呵呵!那么就要先大概了解下ZIGBEE這個(gè)技術(shù)。我這里就不介紹理論了,就從Z-Stack實(shí)際的角度介紹些實(shí)用的概念。
1、Zigbee網(wǎng)絡(luò)中的節(jié)點(diǎn)

ZB網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)都有指定的配置參數(shù),從而確定其設(shè)備類型,不同的設(shè)備類型,在網(wǎng)絡(luò)中有著不一樣網(wǎng)絡(luò)任務(wù)。在屬于多跳網(wǎng)絡(luò)的ZB網(wǎng)絡(luò)中,兩個(gè)節(jié)點(diǎn)需要完成數(shù)據(jù)傳輸,可能需要經(jīng)過(guò)其他中間節(jié)點(diǎn)的協(xié)助,所以節(jié)點(diǎn)的類型參數(shù)配置是非常必要的。
對(duì)每個(gè)節(jié)點(diǎn)有兩個(gè)任務(wù):
i)執(zhí)行指定的網(wǎng)絡(luò)功能函數(shù)
ii)配置確定的參數(shù)到指定的值。
網(wǎng)絡(luò)功能的設(shè)置確定了該節(jié)點(diǎn)的類型,參數(shù)配置和指定的值確定了堆棧的模式。
節(jié)點(diǎn)類型

ZB中,設(shè)備類型分為三類:協(xié)調(diào)器,路由器和終端設(shè)備。

6-2就是這三種設(shè)備類型組成的一個(gè)典型網(wǎng)絡(luò)。


其中黑色節(jié)點(diǎn)為協(xié)調(diào)器
紅色節(jié)點(diǎn)為路由器
白色節(jié)點(diǎn)為終端設(shè)備
那么這個(gè)就是一個(gè)典型的網(wǎng)狀網(wǎng)絡(luò)MESH

協(xié)調(diào)器

協(xié)調(diào)器是一個(gè)ZB網(wǎng)絡(luò)的第一個(gè)開(kāi)始的設(shè)備,或者是一個(gè)ZB網(wǎng)絡(luò)的啟動(dòng)或建立網(wǎng)絡(luò)的設(shè)備。協(xié)調(diào)器節(jié)點(diǎn)選擇一個(gè)信道和網(wǎng)絡(luò)標(biāo)志符(也叫PAN ID),然后開(kāi)始建立一個(gè)網(wǎng)絡(luò)。協(xié)調(diào)器設(shè)備在網(wǎng)絡(luò)中還可以有其他作用,比如建立安全機(jī)制、網(wǎng)絡(luò)中的綁定的建立等等。
注意:協(xié)調(diào)器主要的作用是建立一個(gè)網(wǎng)絡(luò)和配置該網(wǎng)絡(luò)的性質(zhì)參數(shù)。一旦這些完成,該協(xié)調(diào)器就如同一個(gè)路由器,網(wǎng)絡(luò)中的其他操作并不依賴該協(xié)調(diào)器,因?yàn)?/span>ZB是分布式網(wǎng)絡(luò)。
路由器

一個(gè)路由器的功能有(1)作為普通設(shè)備加入網(wǎng)絡(luò)(2)多跳路由(3)輔助其它的子節(jié)點(diǎn)完成通信。

一般來(lái)說(shuō),路由器需要一直處于工作狀態(tài),所以需要主干線供電(區(qū)別于電池供電)。但是在某指定的網(wǎng)絡(luò)結(jié)構(gòu)中可以采用電池供電,如串樹(shù)型網(wǎng)絡(luò)模式中,允許路由器周期的運(yùn)行操作,所以可以采用電池供電。
終端設(shè)備

為了維持網(wǎng)絡(luò)最基本的運(yùn)行,對(duì)于終端設(shè)備沒(méi)有指定的責(zé)任。也就是說(shuō),在一個(gè)基本網(wǎng)絡(luò)中,終端設(shè)備沒(méi)有必不可缺少性。所以它可以根據(jù)自己功能需要休眠或喚醒,因此為電池供電設(shè)備。一般來(lái)說(shuō),該設(shè)備需要的內(nèi)存較少(特別是內(nèi)部RAM
堆棧模式(Stack Profile

需要被配置為指定值的堆棧參數(shù),連同這些值被稱為堆棧模式。這些堆棧模式參數(shù)被ZB聯(lián)盟定義指定。在同一個(gè)網(wǎng)絡(luò)中的設(shè)備必須符合同一個(gè)堆棧模式(同一個(gè)網(wǎng)絡(luò)中所有設(shè)備的堆棧模式配置參數(shù)必須一致)。

為了互操作性,ZB聯(lián)盟為06協(xié)議棧定義了一個(gè)堆棧模式,所有的設(shè)備只要遵循該模式的參數(shù)配置,即使在不同廠商買(mǎi)的不同設(shè)備同樣可以形成網(wǎng)絡(luò)。

如果應(yīng)用開(kāi)發(fā)者改變了這些參數(shù)配置,那么他的產(chǎn)品將不能與遵循ZB聯(lián)盟定義模式的產(chǎn)品組成網(wǎng)絡(luò),也就是說(shuō)該開(kāi)發(fā)者開(kāi)發(fā)的產(chǎn)品具有特殊性,我們稱之為關(guān)閉的網(wǎng)絡(luò),也就是說(shuō)它的設(shè)備只有在自己的產(chǎn)品中使用,不能與其他產(chǎn)品通信。

該協(xié)議模式標(biāo)志符在設(shè)備通信的信標(biāo)傳輸中被匹配,如果不匹配,那么該設(shè)備將不能加入網(wǎng)絡(luò)。關(guān)閉網(wǎng)絡(luò)的堆棧模式有一個(gè)0ID,而06協(xié)議棧模式有一個(gè)1ID。該堆棧模式被配置在nwk_globals.h文件中的STACK_PROFILE_ID參數(shù)。如:

#define STACK_PROFILE_ID   HOME_CONTROLS
2、Zigbee網(wǎng)絡(luò)中的地址
地址類型

ZB設(shè)備有兩種地址類型,一個(gè)是64IEEE地址(也可以叫MAC地址或擴(kuò)展地址),一個(gè)是16位網(wǎng)絡(luò)地址(也可以叫邏輯地址或短地址)。

64位地址是全球唯一的,作為設(shè)備(產(chǎn)品)的終生地址被分配。它通常被開(kāi)發(fā)商或安裝的時(shí)候被指定。該地址由IEEE分配指定,該地址的信息和獲得該地址的方法見(jiàn):http://standards.ieee.org/regauth/oui/index.shtml

16位地址在設(shè)備加入網(wǎng)絡(luò)的時(shí)候被分配,由這個(gè)網(wǎng)絡(luò)自動(dòng)分配。該地址只能用與本網(wǎng)絡(luò)中,標(biāo)志不同的設(shè)備間傳遞信息。
網(wǎng)絡(luò)地址分配

ZB分布式網(wǎng)絡(luò)中地址分配是唯一的。為了不使網(wǎng)絡(luò)中設(shè)備混亂,為每個(gè)設(shè)備指定確定的地址是非常必要的。

在分配地址之前,一些參數(shù)必須被設(shè)置:MAX_DEPTH, MAX_ROUTERS MAX_CHILDREN 。

這些參數(shù)都是ZB協(xié)議模式的一部分,在06ZS模式中這些參數(shù)設(shè)置為: (MAX_DEPTH = 5, MAX_CHILDREN = 20, MAX_ROUTERS = 6).
參數(shù)設(shè)置

MAX_DEPTH決定了網(wǎng)絡(luò)的最大深度。協(xié)調(diào)器的深度是0,它的子設(shè)備的深度是1,他們的子設(shè)備的深度是2,依次類推。所以MAX_DEPTH參數(shù)限制了網(wǎng)絡(luò)物理上的長(zhǎng)度

MAX_CHILDREN參數(shù)決定了一個(gè)路由器(或一個(gè)協(xié)調(diào)器)能承載子設(shè)備的最大數(shù)目。

MAX_ROUTERS參數(shù)決定了一個(gè)路由器(或一個(gè)協(xié)調(diào)器)能承載路由器的最大數(shù)目。這個(gè)參數(shù)實(shí)際上是MAX_CHILDREN參數(shù)的一個(gè)子集,剩下的(MAX_CHILDREN-MAX_ROUTERS)地址空間屬于終端設(shè)備。
開(kāi)發(fā)者自定義

如果開(kāi)發(fā)者想改變這些值,那么需要做如下幾步:

首先得保證這些參數(shù)新的值是合法的。既然整個(gè)地址空間被限制在2-16內(nèi),那么這些參數(shù)的大小就已經(jīng)有了限制。分布在release(在文件夾Projects\zstack\Tools中)的Cskip.xls文件能校驗(yàn)這些參數(shù)是否合法。在鍵入這些參數(shù)的值后大概這個(gè)電子表格,如果非法,一個(gè)錯(cuò)誤信息將給出。

之后選擇合法的值,開(kāi)發(fā)者需要確保不使用標(biāo)準(zhǔn)的協(xié)議棧模式,而用指定的協(xié)議棧模式代替(用NETWORK_SPECIFIC替換STACK_PROFILE_ID當(dāng)前的值)。然后在“nwk_globals.h”文件中的MAX_DEPTH參數(shù)根據(jù)需要設(shè)置為適當(dāng)?shù)闹怠?/span>

另外,nwk_globals.c文件中排列的CskipChldrnCskipRtrs必須被設(shè)置,這些排列是
z-stack中的尋址

為了在網(wǎng)絡(luò)中發(fā)送數(shù)據(jù)到一個(gè)設(shè)備,應(yīng)用層一般用AF_DataRequest()函數(shù)。而被發(fā)送的目的設(shè)備的地址類型afAddrType_t被定義在“ZComDef.h”中:
typedef struct
{
union
{
uint16   shortAddr;
ZLongAddr_t extAddr;
} addr;
byte addrMode;
} zAddrType_t;
地址模式參數(shù)
注意:除這個(gè)網(wǎng)絡(luò)地址之外,地址模式參數(shù)也需要被指定。目的地址模式可能是如下值之一(AF地址模式被定義在“AF.h”中):
typedef enum
{
 afAddrNotPresent = AddrNotPresent,
 afAddr16Bit = Addr16Bit,
 afAddrGroup = AddrGroup,
 afAddrBroadcast = AddrBroadcast
} afAddrMode_t;

地址模式參數(shù)是需要的,因?yàn)樵?/span>ZB中,數(shù)據(jù)包能被點(diǎn)傳輸、多點(diǎn)傳輸或者廣播傳輸。點(diǎn)傳輸被發(fā)送到單個(gè)設(shè)備,多點(diǎn)傳輸一定發(fā)送到一組設(shè)備,廣播傳輸一般被發(fā)送到網(wǎng)絡(luò)中的所有設(shè)備。如下是更詳細(xì)的說(shuō)明。
點(diǎn)到傳輸 Unicast

這是標(biāo)準(zhǔn)地址模式,被用于發(fā)送一個(gè)數(shù)據(jù)包到網(wǎng)絡(luò)中單個(gè)已知地址的設(shè)備。這個(gè)addrMode參數(shù)被設(shè)置為Addr16Bit,目的網(wǎng)絡(luò)地址在數(shù)據(jù)包中一同被發(fā)送。
間接尋址

數(shù)據(jù)包中的最終目的地址不識(shí)別的時(shí)候使用。該模式被AddrNotPresent設(shè)置,而且目的地址沒(méi)有被指定。代替目的地址的是:一個(gè)存儲(chǔ)在發(fā)送設(shè)備協(xié)議棧的綁定表格,該表格中有被綁定設(shè)備的地址。這個(gè)特性被調(diào)用是源于綁定。(看后面關(guān)于綁定部分)
當(dāng)被發(fā)送的信息包下載到協(xié)議棧時(shí),從這個(gè)綁定表格中尋找使用的目的地址。然后該信息包被有規(guī)則的處理為點(diǎn)對(duì)點(diǎn)數(shù)據(jù)包。如果有多個(gè)(大于1)目的地址在綁定表格中被發(fā)現(xiàn),那么該數(shù)據(jù)包將被拷貝成對(duì)應(yīng)的份數(shù)分別發(fā)送給他們。

(ZigBee04)版本之前,在協(xié)調(diào)器中有一個(gè)存儲(chǔ)綁定表格的選項(xiàng)。因此,發(fā)送設(shè)備發(fā)送數(shù)據(jù)包到這個(gè)協(xié)調(diào)器,然后協(xié)調(diào)器在它的綁定表格中查找最終的目的地址,對(duì)數(shù)據(jù)包進(jìn)行在一次發(fā)送。該選項(xiàng)特性在協(xié)調(diào)器綁定被調(diào)用
廣播傳輸

該模式在應(yīng)用層想發(fā)送一個(gè)數(shù)據(jù)包到所有網(wǎng)絡(luò)中的所有設(shè)備時(shí)被使用。該地址模式被AddrBroadcast被設(shè)置,目的地址被設(shè)置為下列值之一:
NWK_BROADCAST_SHORTADDR_DEVALL (0xFFFF)-
信息將被發(fā)送到網(wǎng)絡(luò)中的所有設(shè)備(包括休眠的設(shè)備)。對(duì)于休眠的設(shè)備,這個(gè)信息將被保持在它的父節(jié)點(diǎn),直到該休眠設(shè)備獲得該信息或者該信息時(shí)間溢出(在f8wConfig.cfg 中的NWK_INDIRECT_MSG_TIMEOUT選項(xiàng))。
NWK_BROADCAST_SHORTADDR_DEVRXON (0xFFFD) –
該信息將被發(fā)送到網(wǎng)絡(luò)中有接收器并處于IDLE(RXONWHENIDLE)狀態(tài)下的所有設(shè)備。也就是說(shuō),除了休眠模式設(shè)備的所有設(shè)備。
NWK_BROADCAST_SHORTADDR_DEVZCZR (0xFFFC) –
該信息被發(fā)送到所有路由器(包括協(xié)調(diào)器)。
組地址

該模式用于應(yīng)用層想發(fā)送一個(gè)數(shù)據(jù)包到一個(gè)設(shè)備組的時(shí)候。該地址模式被afAddrGroup設(shè)置這個(gè)組標(biāo)志符。

用該特性之前,在網(wǎng)絡(luò)中,組不得不被定義[ZStack API文檔中的] aps_AddGroup()
注意:組能與間接尋址一起結(jié)合使用。該目的地址在綁定表格中發(fā)現(xiàn),可以作為點(diǎn)對(duì)點(diǎn)或一個(gè)組地址。也要注意廣播地址可以當(dāng)作是組被提前設(shè)置,一個(gè)簡(jiǎn)單的組尋址的特例,。
例子代碼對(duì)于一個(gè)設(shè)備添加它自己到一個(gè)組標(biāo)志符1
aps_Group_t group;
// Assign yourself to group 1
group.ID = 0x0001;
group.name[0] = 0; // This could be a human readable string
aps_AddGroup( SAMPLEAPP_ENDPOINT, &group );
重要設(shè)備地址

一個(gè)應(yīng)用可以能想知道它自身和父節(jié)點(diǎn)的地址,用下面的函數(shù)可以得到設(shè)備的地址(被定義在ZStack API文檔中):
NLME_GetShortAddr() –
返回該設(shè)備的 16 位網(wǎng)絡(luò)地址
 NLME_GetExtAddr() –
返回該設(shè)備的64 位擴(kuò)展地址.
用下面的函數(shù)可以得到該設(shè)備的父節(jié)點(diǎn)的地址(被定義在ZStack API文檔中)。注意該函數(shù)在協(xié)調(diào)器中不被涉及到,但是被設(shè)備父節(jié)點(diǎn)代替(MAC協(xié)調(diào)器):
 NLME_GetCoordShortAddr() – returns this device’s parent’s 16 bit short address.
  NLME_GetCoordExtAddr() – returns this device’s parent’s 64 bit extended address.
先介紹這兩個(gè)概念:節(jié)點(diǎn)和地址。其余的就改天繼續(xù)!

學(xué)習(xí)Z-Stack7
--------------Z-Stack
指導(dǎo)2

上節(jié)介紹了很大一部分Z-Stack的基礎(chǔ)知識(shí),這里接著忽悠。雖然說(shuō)的不是很專業(yè)也不是很通俗,但是我盡力了,希望有人能看明白!本人英文水平有限,翻譯的不好請(qǐng)諒解!
3、綁定

綁定是控制信息從一個(gè)應(yīng)用層到另一個(gè)應(yīng)用層流動(dòng)的一種機(jī)制。在ZB06版本中,綁定機(jī)制在所有的設(shè)備中被執(zhí)行。

綁定允許應(yīng)用層發(fā)送信息不需要帶目的地址,APS層確定目的地址從他的綁定表格中,然后在信息前端加上這個(gè)目的地址或組。

注意:在ZB1.0版本中,所有綁定條目存儲(chǔ)在協(xié)調(diào)器中。現(xiàn)在所有綁定條目存儲(chǔ)在發(fā)送數(shù)據(jù)的設(shè)備中。
3.1綁定一個(gè)綁定表格

有三種方式建立一個(gè)綁定表格:

ZDO 綁定請(qǐng)求 – 一個(gè)試運(yùn)轉(zhuǎn)工具能告訴這個(gè)設(shè)備制作一個(gè)綁定報(bào)告。

ZDO 終端設(shè)備綁定請(qǐng)求 – 2設(shè)備能告訴協(xié)調(diào)器他們想建立綁定表格報(bào)告。該協(xié)調(diào)器將使協(xié)調(diào)并在這兩個(gè)設(shè)備上創(chuàng)建綁定表格條目

設(shè)備應(yīng)用 – 在設(shè)備上的應(yīng)用能建立或管理一個(gè)綁定表格 。

任何一個(gè)設(shè)備或應(yīng)用能在網(wǎng)絡(luò)中發(fā)送一個(gè)ZDO信息到另一個(gè)設(shè)備()建立一個(gè)綁定報(bào)告。這是調(diào)用綁定幫助并且它將建立一個(gè)綁定條目為發(fā)送設(shè)備。
3.1.1 ZDO 綁定請(qǐng)求

通過(guò)調(diào)用函數(shù)ZDP_BindReq()發(fā)送一個(gè)綁定請(qǐng)求。第一個(gè)參數(shù)(dstAddr)是綁定的源地址的短地址。這之前應(yīng)該確定允許綁定,在ZDConfig.h 文件中有參數(shù)[ZDO_BIND_UNBIND_REQUEST]允許綁定。能用同樣的參數(shù)調(diào)用函數(shù)ZDP_UnbindReq()移除綁定。

目標(biāo)設(shè)備將調(diào)用函數(shù)ZDApp_BindRsp()或 ZDApp_UnbindRsp(),反饋綁定或移除綁定的響應(yīng),返回其操作狀態(tài)為ZDP_SUCCESS, ZDP_TABLE_FULL或ZDP_NOT_SUPPORTED.
3.1.2 ZDO 終端設(shè)備綁定請(qǐng)求

該機(jī)制是用一個(gè)按鈕按下或其他類似的動(dòng)作來(lái)選擇設(shè)備在指定時(shí)間內(nèi)被綁定。在規(guī)定時(shí)間內(nèi),該終端設(shè)備綁定請(qǐng)求信息被收集到協(xié)調(diào)器,并創(chuàng)建一個(gè)基于模式(profile) ID 和串(cluster) ID的規(guī)定的綁定表格條目。默認(rèn)的終端設(shè)備綁定超時(shí)時(shí)間(APS_DEFAULT_MAXBINDING_TIME)為16S(定義在nwk_globals.h中),但是能被改變
發(fā)送綁定請(qǐng)求

在所有的應(yīng)用例子中有一個(gè)處理鍵盤(pán)事件的函數(shù)[例如在TransmitApp.c文件中的TransmitApp_HandleKeys()函數(shù)]。在該函數(shù)中,調(diào)用了函數(shù)ZDApp_SendEndDeviceBindReq()[在ZDApp.c中],它將收集應(yīng)用的終端設(shè)備的所有信息并調(diào)用函數(shù)ZDP_EndDeviceBindReq() [ZDProfile.c],發(fā)送一個(gè)綁定信息到協(xié)調(diào)器?;蛘?,在SampleLight 和 SampleSwitch例子中,直接調(diào)用ZDP_EndDeviceBindReq()函數(shù)就實(shí)現(xiàn)點(diǎn)亮/關(guān)閉燈的功能。
接收綁定請(qǐng)求

協(xié)調(diào)器將接收[ZDP_IncomingData() 在 ZDProfile.c]這些信息并分析處理[ZDO_ProcessEndDeviceBindReq() 在 ZDObject.c]這些信息并調(diào)用函數(shù)ZDApp_EndDeviceBindReqCB() [in ZDApp.c],它將調(diào)用ZDO_MatchEndDeviceBind() [ZDObject.c]處理這個(gè)請(qǐng)求

當(dāng)協(xié)調(diào)器接收到2個(gè)匹配終端色后備的綁定請(qǐng)求時(shí),它將啟動(dòng)在綁定設(shè)備上創(chuàng)建源綁定條目的處理過(guò)程。該協(xié)調(diào)器有如下處理過(guò)程:
解除綁定

1. 發(fā)送一個(gè)ZDO解除綁定請(qǐng)求到第一個(gè)設(shè)備。終端設(shè)備綁定切換處理,所以解除綁定首先被發(fā)送到移除一個(gè)存在的綁定條目。

2. 等待ZDO解除綁定響應(yīng),如果響應(yīng)狀態(tài)為ZDP_NO_ENTRY, 發(fā)送一個(gè)ZDO綁定請(qǐng)求,在源設(shè)備上制作一個(gè)綁定條目 。如果該響應(yīng)為ZDP_SUCCESS, 為第一個(gè)設(shè)備繼續(xù)到move on to the cluster ID for the first device (the unbind removed the entry – toggle).

3. 等待ZDO綁定響應(yīng). When received, move on to the next cluster ID for the first device.

4. 當(dāng)?shù)谝粋€(gè)設(shè)備完成時(shí),對(duì)第二個(gè)設(shè)備做同樣的處理。

5. 當(dāng)?shù)诙€(gè)設(shè)備完成時(shí),發(fā)送ZDO 終端設(shè)備綁定響應(yīng)信息到第一個(gè)和第二個(gè)設(shè)備
3.1.3設(shè)備應(yīng)用綁定管理

在設(shè)備上其他進(jìn)入綁定條目的方式是應(yīng)用層管理綁定表格。

意思是說(shuō),應(yīng)用層將調(diào)用下列函數(shù)進(jìn)入和移除綁定表格條目:
bindAddEntry() –增加綁定表格條目
bindRemoveEntry() – 從綁定表格中移除條目
bindRemoveClusterIdFromList() – 從一個(gè)存在的綁定表格項(xiàng)目中移除一個(gè)串 ID 。
bindAddClusterIdToList()——向一個(gè)已經(jīng)存在的綁定記錄中增加一個(gè)群ID
bindRemoveDev()——?jiǎng)h除所有地址引用的記錄
bindRemoveSrcDev()——?jiǎng)h除所有源地址引用的記錄
bindUpdateAddr()——將記錄更新為另一個(gè)地址
bindFindExisting()——查找一個(gè)綁定表記錄
bindIsClusterIdInList()——在表記錄中檢查一個(gè)已經(jīng)存在的群ID
bindNumBoundTo()——擁有相同地址(源或者目的)的記錄的個(gè)數(shù)
bindNumEntries()——表中記錄的個(gè)數(shù)
bindCapacity()——最多允許的記錄個(gè)數(shù)
bindWriteNV()——在NV中更新表
3.2 配置源綁定

允許綁定源的編譯選項(xiàng)REFLECTOR在f8wConfig.cfg文件中。在文件f8wConfig.cfg,中查看這兩個(gè)綁定配置參數(shù)(NWK_MAX_BINDING_ENTRIES & MAX_BINDING_CLUSTER_IDS)。NWK_MAX_BINDING_ENTRIES綁定表格中最大的綁定實(shí)體數(shù)量參數(shù);MAX_BINDING_CLUSTER_IDS 是在每個(gè)綁定實(shí)體中最大的串ID數(shù)量。

綁定表在靜態(tài)RAM中(未分配),因此綁定表中記錄的個(gè)數(shù),每條記錄中群ID的個(gè)數(shù)都實(shí)際影響著使用RAM的數(shù)量。每一條綁定記錄是8字節(jié)多(MAX_BINDING_CLUSTER_IDS * 2字節(jié))。除了綁定表使用的靜態(tài)RAM的數(shù)量,綁定配置項(xiàng)目也影響地址管理器中的記錄的個(gè)數(shù)。
4、路由
4.1 預(yù)覽

在MESH網(wǎng)絡(luò)中,為了使分布的節(jié)點(diǎn)間能夠很好的通信,路由是非常重要的一個(gè)環(huán)節(jié)。

在應(yīng)用層上路由是完全透明的。一個(gè)簡(jiǎn)單的應(yīng)用數(shù)據(jù)發(fā)送到任意設(shè)備,下至協(xié)議棧,協(xié)議棧將負(fù)責(zé)發(fā)現(xiàn)一個(gè)路由路線。這個(gè)方式,應(yīng)用層是不知道該操作在多跳網(wǎng)絡(luò)中完成的事實(shí)。

路由使ZB網(wǎng)絡(luò)具有“自動(dòng)復(fù)原”的特性。如果一個(gè)無(wú)線連接斷了,路由功能將自動(dòng)的發(fā)現(xiàn)一個(gè)新的路由路線,該路線是避開(kāi)(繞過(guò))壞了的那個(gè)連接節(jié)點(diǎn)。這就提高了無(wú)線網(wǎng)絡(luò)的可靠性,這也是ZB關(guān)鍵特點(diǎn)之一。
4.2 路由協(xié)議

ZB執(zhí)行的路由協(xié)議是基于AODV(Ad hoc On demand Distance Vector)的路由協(xié)議。作為一個(gè)簡(jiǎn)單的應(yīng)用---傳感器網(wǎng)絡(luò),ZB路由協(xié)議支持環(huán)境中的移動(dòng)節(jié)點(diǎn),連接失敗和丟包功能。

當(dāng)一個(gè)路由器接收到一個(gè)點(diǎn)對(duì)點(diǎn)信息包時(shí),從他的應(yīng)用或者從其他設(shè)備,NWK層將繼續(xù)向前依照下面的進(jìn)程。如果目的是路由器鄰節(jié)點(diǎn)(包括它的子設(shè)備)之一,該信息包將直接傳輸?shù)侥康脑O(shè)備。另外的就是,路由器將檢查它的路由表格,檢查相應(yīng)的信息包目的條目。如果在路由表格中有一個(gè)活躍的路由路線到該目的設(shè)備,那么該信息包將被轉(zhuǎn)播到下一跳節(jié)點(diǎn)地址存儲(chǔ)依照路由條目。如果沒(méi)有活躍的條目發(fā)現(xiàn),那么一個(gè)路由發(fā)現(xiàn)被啟動(dòng)并且該信息被緩存直到該過(guò)程完成。
ZB終端設(shè)備路由

ZB終端設(shè)備不能執(zhí)行任何路由功能。一個(gè)終端設(shè)備想發(fā)送一個(gè)信息包到任何設(shè)備都要向前到它的父設(shè)備,然后在由其父設(shè)備進(jìn)行路由操作。類似的,任何設(shè)備想發(fā)送信息包到終端設(shè)備,都將發(fā)起一個(gè)路由發(fā)現(xiàn)操作,當(dāng)然該操作都由終端設(shè)備的父設(shè)備響應(yīng)。

注意:ZB地址分配方案使基于它的地址發(fā)起一個(gè)路由到任何目的成為可能。在Z-Sstack,這個(gè)機(jī)制被用于萬(wàn)一正規(guī)的路由程序不能被啟動(dòng),作為一個(gè)自動(dòng)退卻(一般情況是由于路由表格空間不夠)。
z-stack路由

在z-stack,執(zhí)行的路由是已經(jīng)被優(yōu)化的路由存儲(chǔ)表格。一般情況,對(duì)于每一個(gè)目的設(shè)備路由表格條目是需要的。但是通過(guò)綜合攜帶父節(jié)點(diǎn)所有條目的特定父節(jié)點(diǎn)的終端設(shè)備的所有條目,沒(méi)有任何功能丟失的存儲(chǔ)已經(jīng)被優(yōu)化。

ZB路由器,包括協(xié)調(diào)器,執(zhí)行如下路由功能 (i)路由發(fā)現(xiàn)和選擇 (ii) 路由維護(hù)(iii)
4.2.1路由發(fā)現(xiàn)和選擇

路由發(fā)現(xiàn)是網(wǎng)絡(luò)設(shè)備協(xié)作發(fā)現(xiàn)和建立路由的一個(gè)過(guò)程。一個(gè)路由操作總是針對(duì)某個(gè)目的,通過(guò)任何一個(gè)路由器啟動(dòng)。該路由發(fā)現(xiàn)機(jī)制在源設(shè)備和目的設(shè)備間搜尋所有可能的路由并試圖選擇最好的路由路線。
? 路由選擇通過(guò)選擇最小消耗的路由路線。每個(gè)設(shè)備在連接到鄰節(jié)點(diǎn)幾乎保持不變的“連接消耗”。該連接消耗是接收信號(hào)的強(qiáng)度的一個(gè)典型功能。沿著路由路線加起所有的連接消耗,就是整個(gè)路由的“連接消耗”。路由算法試圖選擇這個(gè)路由最小的“路由消耗”。
路由請(qǐng)求

路由通過(guò)請(qǐng)求/響應(yīng)信息包被發(fā)現(xiàn)。一個(gè)源設(shè)備為了一個(gè)目的地址,通過(guò)發(fā)送一個(gè)廣播路由請(qǐng)求(RREQ)信息到它的鄰設(shè)備請(qǐng)求一個(gè)路由。當(dāng)一個(gè)節(jié)點(diǎn)接收到一個(gè)RREQ信息時(shí),它將依次轉(zhuǎn)播這個(gè)RREQ信息。但是在做這個(gè)之前,它更新RREQ信息的消耗域,通過(guò)增加連接消耗為了最后的連接。這樣,RREQ信息將攜帶向前傳輸?shù)乃械倪B接消耗。這個(gè)重復(fù)過(guò)程直到RREQ到達(dá)這個(gè)目的設(shè)備。RREQ的一些復(fù)制可能經(jīng)過(guò)不同的路徑重復(fù)到達(dá)目的設(shè)備。該目的設(shè)備選擇最好的RREQ信息并發(fā)送一個(gè)路由答復(fù)(RREP)返回到源設(shè)備。
路由響應(yīng)

RREP是沿著唯一的相反的路徑返回到最初的請(qǐng)求節(jié)點(diǎn)。

作為RREP信息傳播回源節(jié)點(diǎn),中間的節(jié)點(diǎn)更新他們的路由表格,指出路由路線到目的設(shè)備。

一旦一個(gè)路由被創(chuàng)建,數(shù)據(jù)包能被發(fā)送。當(dāng)一個(gè)節(jié)點(diǎn)丟失到它下一個(gè)節(jié)點(diǎn)的連通性時(shí)(發(fā)送數(shù)據(jù)包時(shí),它不能接收一個(gè)MAC應(yīng)答ACK),這個(gè)節(jié)點(diǎn)通過(guò)發(fā)送一個(gè)RERR到所有潛在的接收它RREP的節(jié)點(diǎn),使該路由無(wú)效。在接收一個(gè)RREQ,RREP或RERR之上,這些節(jié)點(diǎn)都將更新他們的路由表格
4.2.2路由維護(hù)

MESH網(wǎng)絡(luò)提供路由維護(hù)和自動(dòng)修復(fù)。中間節(jié)點(diǎn)保持沿著連接傳輸失效的路徑。如故一個(gè)連接被確定壞了,逆流的節(jié)點(diǎn)將啟動(dòng)路由修復(fù)那些連接的所有路由路線。這些工作通過(guò)啟動(dòng)路由重新發(fā)送被做,為了路由下一次數(shù)據(jù)包接收。如果路由重新發(fā)現(xiàn)不能啟動(dòng),或者由于某些原因失敗了,一個(gè)路由錯(cuò)誤(RERR)信息被發(fā)送到這個(gè)數(shù)據(jù)包的源設(shè)備,然后重新啟動(dòng)新的路由發(fā)現(xiàn)。任意方式都使得該路由得到重新自動(dòng)建立。
4.2.3路由終結(jié)

為了建立路由,路由表格條目要被維護(hù)。如果一段時(shí)間沒(méi)有數(shù)據(jù)包沿著路由路線發(fā)送,該路由將被做終結(jié)記號(hào)。終止路由不是刪除直到空間需要時(shí)。因此沒(méi)有被刪除直到它完全需要時(shí)。自動(dòng)路由終結(jié)時(shí)間能被配置“在f8wconfig.cfg"文件中”。設(shè)置ROUTE_EXPIRY_TIME參數(shù)為終結(jié)時(shí)間(秒)。設(shè)置0為了關(guān)閉路由終結(jié)。
4.3 表格存儲(chǔ)

路由功能需要路由器維護(hù)一些表格:

路由表格

路由發(fā)現(xiàn)表格
4.3.1路由表格

每一個(gè)路由器包括協(xié)調(diào)器都包含一個(gè)路由表。設(shè)備在路由表中保存數(shù)據(jù)包參與路由所需的信息。每一條路由表記錄都包含有目的地址,下一級(jí)節(jié)點(diǎn)和連接狀態(tài)。所有的數(shù)據(jù)包都通過(guò)相鄰的一級(jí)節(jié)點(diǎn)發(fā)送到目的地址。同樣,為了回收路由表空間,可以終止路由表中的那些已經(jīng)無(wú)用的路徑記錄。

路由表的容量表明一個(gè)設(shè)備路由表?yè)碛幸粋€(gè)自由路由表記錄或者說(shuō)它已經(jīng)有一個(gè)與目標(biāo)地址相關(guān)的路由表記錄。在文件“f8wConfig.cfg”文件中配置路由表的大小。將MAX_RTG_ENTRIES設(shè)置為表的大小(不能小于4)。
4.3.2路由發(fā)現(xiàn)表格

路由器設(shè)備致力于路徑發(fā)現(xiàn),保持維護(hù)路徑發(fā)現(xiàn)表。這個(gè)表用來(lái)保存路徑發(fā)現(xiàn)過(guò)程中的臨時(shí)信息。這些記錄只在路徑發(fā)現(xiàn)操作期間存在。一旦某個(gè)記錄到期,則它可以被另一個(gè)路徑發(fā)現(xiàn)使用。這個(gè)值決定了在一個(gè)網(wǎng)絡(luò)中,可以同時(shí)并發(fā)執(zhí)行的路徑發(fā)現(xiàn)的最大個(gè)數(shù)。這個(gè)可以在f8wConfig.cfg文件中配置MAX_ RREQ_ENTRIES。
4.4、路徑設(shè)置快速參考

設(shè)置路由表大小MAX_RTG_ENTRIES,這個(gè)值不能小于4 (f8wConfig.cfg文件)
設(shè)置路徑期滿時(shí)間ROUTE_EXPIRY_TIME,單位秒。設(shè)置為零則關(guān)閉路徑期滿(f8wConfig.cfg文件)

設(shè)置路徑發(fā)現(xiàn)表大小 MAX_RREQ_ENTRIES,網(wǎng)絡(luò)中可以同時(shí)執(zhí)行的路徑發(fā)現(xiàn)操作的個(gè)數(shù)

 

 

 

學(xué)習(xí)ZStack8

近段時(shí)間比較忙,幾乎都快荒廢了Z-Stack的學(xué)習(xí)了,把以前學(xué)的都快忘記了,這就是非專業(yè)技術(shù)的痛苦啊!!學(xué)習(xí)剛好有點(diǎn)眉目,突然意外中斷停下,當(dāng)再一次學(xué)習(xí)的時(shí)候突然發(fā)現(xiàn):以前學(xué)的都忘了8成了!郁悶?。〗裉煺娌恢缽氖裁吹胤较率謱W(xué)習(xí)了,所以就針對(duì)最近客戶比較關(guān)心的問(wèn)題做點(diǎn)介紹,這樣有針對(duì)性、有目的性的學(xué)習(xí)可能最適合現(xiàn)在的我了,不然從頭把以前那些所謂的筆記看一遍,可能今天晚上又沒(méi)了,指不定明晚以及后晚以及后后晚…都沒(méi)時(shí)間,不然老是看以前的筆記沒(méi)有進(jìn)展就麻煩了!呵呵!

今天只解決1個(gè)問(wèn)題:TI提供的例子程序的表演及功能介紹。

因?yàn)樽罱鼏?wèn)這些的客戶比較多,特別又是剛?cè)胧值呐笥?,?duì)Z-Stack非常迷糊的時(shí)期,如果能夠跑通幾個(gè)例子、看幾個(gè)演示,那么可以大大提高學(xué)習(xí)興趣;另外如果知道某個(gè)例子的大致功能及實(shí)現(xiàn),那么在去看具體實(shí)現(xiàn)過(guò)程目的性就非常明確。
首先來(lái)看看TI究竟有哪些例子:
 
可以看出其例子是非常豐富的。
GenericApp,Location,SampleApp,SimpleApp,HomeAutomation,SerialApp,Transmit,
ZLOAD。這樣看來(lái)還是不少的。其中SampleApp例子已經(jīng)在前面的學(xué)習(xí)中有所涉及,可以說(shuō)前面的所有學(xué)習(xí)都是基于這個(gè)例子的,所以這里就不測(cè)試它了。Location是定位的測(cè)試?yán)?,這里我的硬件是不夠的,所以也不做測(cè)試。其他我都做點(diǎn)測(cè)試,能成功的就成功,不能成功的就失敗,這個(gè)我也沒(méi)辦法,呵呵!?。。。。。?!
1、GenericApp

工程打開(kāi)等我就不多說(shuō)了,自己去找,如果連這些我都還說(shuō),那么我以前的東西是白學(xué)了。硬件連接中

當(dāng)我用兩個(gè)節(jié)點(diǎn)分別燒寫(xiě)入DB的協(xié)調(diào)器和路由器,從我的經(jīng)驗(yàn)看來(lái),他們分別能建立網(wǎng)絡(luò)和加入網(wǎng)絡(luò),但是從表象上幾乎看不見(jiàn)數(shù)傳現(xiàn)象,盡管我按了每個(gè)節(jié)點(diǎn)的按鍵,也僅僅是本節(jié)點(diǎn)的LED在改變。唯獨(dú)有點(diǎn)數(shù)傳感覺(jué)的是:按鍵右鍵對(duì)方有反應(yīng)就是了,至于具體什么反映我覺(jué)得沒(méi)必要說(shuō)明白,大家試試就知道了。

所以還決定看看程序來(lái)判斷這個(gè)例子的功能。

大約瀏覽了下,這個(gè)例子似乎還與設(shè)備的綁定有關(guān)系,因?yàn)樵诎唇ㄌ幚沓绦蛑邪l(fā)現(xiàn):
if ( keys & HAL_KEY_SW_2 )
    {
      HalLedSet ( HAL_LED_4, HAL_LED_MODE_OFF );

      // Initiate an End Device Bind Request for the mandatory endpoint
      dstAddr.addrMode = Addr16Bit;
      dstAddr.addr.shortAddr = 0x0000; // Coordinator
      ZDP_EndDeviceBindReq( &dstAddr, NLME_GetShortAddr(),
                            GenericApp_epDesc.endPoint,
                            GENERICAPP_PROFID,
                            GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList,
                            GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList,
                            FALSE );
}
很明顯這里按鍵2(右鍵)是發(fā)送綁定請(qǐng)求的命令。
if ( keys & HAL_KEY_SW_4 )
    {
      HalLedSet ( HAL_LED_4, HAL_LED_MODE_OFF );

      // Initiate a Match Deion Request (Service Discovery)
      dstAddr.addrMode = AddrBroadcast;
      dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR;
      ZDP_MatchDescReq( &dstAddr, NWK_BROADCAST_SHORTADDR,
                        GENERICAPP_PROFID,
                        GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList,
                        GENERICAPP_MAX_CLUSTERS, (cId_t *)GenericApp_ClusterList,
                        FALSE );
    }
顯然按鍵4(左)是初始化一個(gè)匹配描述符請(qǐng)求,也就是發(fā)現(xiàn)服務(wù),或者叫自動(dòng)尋求匹配設(shè)備。
這就不怪我按鍵有反映了!
而且在發(fā)送數(shù)據(jù)和接收數(shù)據(jù)處理函數(shù)發(fā)現(xiàn):
void GenericApp_SendTheMessage( void )
{
  char theMessageData[] = "Hello World";

  if ( AF_DataRequest( &GenericApp_DstAddr, &GenericApp_epDesc,
                       GENERICAPP_CLUSTERID,
                       (byte)osal_strlen( theMessageData ) + 1,
                       (byte *)&theMessageData,
                       &GenericApp_TransID,
                       AF_DISCV_ROUTE, AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
  {
    // Successfully requested to be sent.
  }
  else
  {
    // Error occurred in request to send.
  }
}
居然發(fā)送的是一個(gè)字符串“Hello World”。
void GenericApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
{
  switch ( pkt->clusterId )
  {
    case GENERICAPP_CLUSTERID:
      // "the" message
#if defined( LCD_SUPPORTED )
      HalLcdWriteScreen( (char*)pkt->cmd.Data, "rcvd" );
#elif defined( WIN32 )
      WPRINTSTR( pkt->cmd.Data );
#endif
      break;
  }
}
接收數(shù)據(jù)處理函數(shù)里居然要通過(guò)液晶顯示,本人這里的液晶暫時(shí)沒(méi)有移植過(guò)來(lái),因?yàn)闀簳r(shí)還不具備那個(gè)實(shí)力,怪不得看不到發(fā)送數(shù)據(jù)的狀況!
這里本人就自作聰明的把以前SampleApp例子里面的一句話加過(guò)來(lái)了:
void GenericApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )
{
  switch ( pkt->clusterId )
  {
    case GENERICAPP_CLUSTERID:
      // "the" message
      HalLedBlink( HAL_LED_4, 4, 50, (500) );
#if defined( LCD_SUPPORTED )
      HalLcdWriteScreen( (char*)pkt->cmd.Data, "rcvd" );
#elif defined( WIN32 )
      WPRINTSTR( pkt->cmd.Data );
#endif
      break;
  }
}
麼想到啊,這么一加居然就有反應(yīng)了,o(∩_∩)o…!我不愧是天才的接班人??!
其實(shí)這里很簡(jiǎn)單的了,就是接收到數(shù)據(jù)后閃爍4下燈,間隔0.5S。因?yàn)閺模?/span>
if ( events & GENERICAPP_SEND_MSG_EVT )
  {
    // Send "the" message
    GenericApp_SendTheMessage();
    // Setup to send message again
    osal_start_timerEx( GenericApp_TaskID,
                        GENERICAPP_SEND_MSG_EVT,
                        GENERICAPP_SEND_MSG_TIMEOUT );
    // return unprocessed events
    return (events ^ GENERICAPP_SEND_MSG_EVT);
  }
這里可以看出,這個(gè)例子很明顯僅僅是個(gè)發(fā)送周期信息的例子。所以LED4就周期性的閃爍4下,當(dāng)然是協(xié)調(diào)器發(fā)送,路由器閃爍,路由器發(fā)送,協(xié)調(diào)器閃爍。
但是這例子里體現(xiàn)了綁定的概念,應(yīng)該說(shuō)是從基本功能上很齊全的一個(gè)例子,而且在ZSTACK上實(shí)現(xiàn)無(wú)線網(wǎng)絡(luò)數(shù)傳,沒(méi)有任何多余的功能。所以該例子是一個(gè)典型的ZSTACK模板,也就是為用戶提供了一個(gè)通用模板可以通過(guò)這個(gè)建立自己的應(yīng)用。關(guān)于如何在這個(gè)例子上建立、修改成自己的工程和應(yīng)用項(xiàng)目詳細(xì)見(jiàn)文檔:
Create New Application For The CC2430DB_F8W-2005-0033_.pdf
這個(gè)例子就到此結(jié)束了,否則不然就很難把下面的弄玩了!
2、SimpleApp
這個(gè)例子我基本跑通了,可是鑒于時(shí)間的關(guān)系,沒(méi)有來(lái)得及打字了,所以就留到下一次了,時(shí)間真是如流水啊-------------------快!

 

 

學(xué)習(xí)Z-Stack9


接到昨天的繼續(xù)忽悠,話說(shuō):
2、SimpleApp
“這個(gè)例子我基本跑通了,可是鑒于時(shí)間的關(guān)系,沒(méi)有來(lái)得及打字了,所以就留到下一次了,時(shí)間真是如流水啊-------------------快!….”
這個(gè)例子里面有兩個(gè)演示:一個(gè)是燈與開(kāi)關(guān)的控制實(shí)驗(yàn),一個(gè)溫度傳感器實(shí)驗(yàn)。咱一個(gè)個(gè)來(lái),不忙。
燈與開(kāi)關(guān)實(shí)驗(yàn)

在這個(gè)例子中燈對(duì)應(yīng)的工程名字為:SimpleControllerDB;開(kāi)關(guān)對(duì)應(yīng):SimpleSwitchDB。嚴(yán)重需要注意的地方,這里選用的是DB。因?yàn)閺膹牧汩_(kāi)始學(xué)習(xí)Z-Stack之1上可以看到DB與EB的區(qū)別,而這里用DB的硬件就足以應(yīng)付。
編譯下載我就不繼續(xù)羅嗦了。

咱關(guān)心的幾個(gè)問(wèn)題不外乎就是表演過(guò)程和表演結(jié)果,以及初步看看為什么會(huì)有這樣的結(jié)果產(chǎn)生,當(dāng)然就得從程序上簡(jiǎn)單了解下。

首先打開(kāi)Controller(也就是燈設(shè)備)的電源,那么LED2就會(huì)不停的閃爍,這個(gè)時(shí)候是設(shè)備正在初始化,讓您選擇設(shè)備以哪種類型啟動(dòng),從程序可以看出:
   if ( keys & HAL_KEY_SW_1 )
    {
      if ( myAppState == APP_INIT  )
      {
        // In the init state, keys are used to indicate the logical mode.
        // Key 1 starts device as a coordinator
        zb_ReadConfiguration( ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType );
        if ( logicalType != ZG_DEVICETYPE_ENDDEVICE )
        {
          logicalType = ZG_DEVICETYPE_COORDINATOR;
          zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType);
        }

        // Do more configuration if necessary and then restart device with auto-start bit set
        // write endpoint to simple desc...dont pass it in start req..then reset
        zb_ReadConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
        startOptions = ZCD_STARTOPT_AUTO_START;
        zb_WriteConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
        zb_SystemReset();
      }
如果按下S1(UP),那么作為協(xié)調(diào)器啟動(dòng)。
   if ( keys & HAL_KEY_SW_2 )
    {
      if ( myAppState == APP_INIT )
      {
        // In the init state, keys are used to indicate the logical mode.
        // Key 2 starts device as a router
        zb_ReadConfiguration( ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType );
        if ( logicalType != ZG_DEVICETYPE_ENDDEVICE )
        {
          logicalType = ZG_DEVICETYPE_ROUTER;
          zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType);
        }
        zb_ReadConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
        startOptions = ZCD_STARTOPT_AUTO_START;
        zb_WriteConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
        zb_SystemReset();
      }
如果按下S2(RIGHT),設(shè)備作為路由器啟動(dòng)。

這里由于是第一個(gè)啟動(dòng)的設(shè)備,所以作為協(xié)調(diào)器啟動(dòng),就按下UP,此時(shí)燈會(huì)有狀態(tài)變化,最終結(jié)果是:LED2常亮,標(biāo)示建立網(wǎng)絡(luò)成功。如果您還有另外的燈設(shè)備就可以按下RIGHT讓他們都作為路由器啟動(dòng),由于本人這里只有兩個(gè)節(jié)點(diǎn),所以就只能有個(gè)協(xié)調(diào)器。

現(xiàn)在就來(lái)啟動(dòng)開(kāi)關(guān)設(shè)備的電源,同樣LED2會(huì)閃爍讓您選擇設(shè)備,但是在ZIGBEE中除了協(xié)調(diào)器和路由器就剩下終端設(shè)備了,所以開(kāi)關(guān)就只能作為終端被啟動(dòng),但是也需要通過(guò)按鍵來(lái)控制,從程序中可以看出:
if ( keys & HAL_KEY_SW_1 )
    {
      if ( myAppState == APP_INIT )
      {
        // In the init state, keys are used to indicate the logical mode.
        // The Switch device is always an end-device
       logicalType = ZG_DEVICETYPE_ENDDEVICE;
        zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType);
        // Do more configuration if necessary and then restart device with auto-start bit set
        zb_ReadConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
        startOptions = ZCD_STARTOPT_AUTO_START;
        zb_WriteConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
        zb_SystemReset();
      }
      else
      {
        // Initiate a binding with null destination
        zb_BindDevice(TRUE, TOGGLE_LIGHT_CMD_ID, NULL);
      }
    }
    if ( keys & HAL_KEY_SW_2 )
    {
      if ( myAppState == APP_INIT )
      {
        // In the init state, keys are used to indicate the logical mode.
        // The Switch device is always an end-device
        logicalType = ZG_DEVICETYPE_ENDDEVICE;
        zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType);
        zb_ReadConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
        startOptions = ZCD_STARTOPT_AUTO_START;
        zb_WriteConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );
        zb_SystemReset();
      }
      else
      {
        // Send the command to toggle light
        zb_SendDataRequest( 0xFFFE, TOGGLE_LIGHT_CMD_ID, 0,
                        (uint8 *)NULL, myAppSeqNumber, 0, 0 );
      }
    }

無(wú)論是按下S1還是S2(UP或者RIGHT),開(kāi)關(guān)設(shè)備均作為終端設(shè)備啟動(dòng)。
啟動(dòng)之后呢,燈的狀態(tài)同樣會(huì)發(fā)生一些變化,最終結(jié)果是:LED2快速閃爍,表明此時(shí)開(kāi)關(guān)已經(jīng)成功加入剛才燈設(shè)備建立的那個(gè)網(wǎng)絡(luò)了。

那么接下來(lái)就要看這個(gè)例子的核心部分----------綁定!

首先按下燈設(shè)備(這里為協(xié)調(diào)器,如果有路由器也可以)的UP,那么程序中調(diào)用了:
        zb_AllowBind( myAllowBindTimeout );

函數(shù),允許綁定,這個(gè)允許的時(shí)間據(jù)說(shuō)只有10S,當(dāng)然這個(gè)時(shí)間是可以調(diào)整的,因?yàn)檫@里的參數(shù)為:static uint8 myAllowBindTimeout = 10;至于這個(gè)時(shí)間怎么計(jì)算的就需要到某個(gè)函數(shù)zb_AllowBind里去分析了。zb_AllowBind規(guī)定這個(gè)參數(shù)為1~64,如果為0,表示為假,就是不允許綁定的意思。如果大于64的話,就一直為真,就是一直都允許綁定。好像似乎是這個(gè)意思。至于這個(gè)10S是怎么制定的呢,在這個(gè)函數(shù)內(nèi)部調(diào)用了:
osal_start_timerEx(sapi_TaskID, ZB_ALLOW_BIND_TIMER, timeout*1000);
因?yàn)閛sal_start_timerEx定時(shí)函數(shù)最小單位為mS,所以*1000就表示S了。
而在SAPI_ProcessEvent事件處理函數(shù)中ZB_ALLOW_BIND_TIMER事件處理如下:
  if ( events & ZB_ALLOW_BIND_TIMER )
  {
    afSetMatch(sapi_epDesc.simpleDesc->EndPoint, FALSE);
    return (events ^ ZB_ALLOW_BIND_TIMER);
  }

也就是定時(shí)取消綁定狀態(tài)?。。?/span>

如果有人看著這些看不明白,那就把這個(gè)例子多看幾遍,多跑幾遍。一般如果您每天花費(fèi)4個(gè)小時(shí)看這個(gè)例子,那么只需要一周事件,我想到時(shí)比我還精通明白的!

所以在10S之內(nèi),開(kāi)關(guān)必須發(fā)起綁定,此時(shí)同樣按下開(kāi)關(guān)設(shè)備的UP,那么開(kāi)關(guān)設(shè)備就調(diào)用了函數(shù):zb_BindDevice(TRUE, TOGGLE_LIGHT_CMD_ID, NULL);發(fā)送一個(gè)綁定請(qǐng)求去尋求綁定設(shè)備。

一個(gè)設(shè)備允許綁定,一個(gè)設(shè)備發(fā)起綁定請(qǐng)求,兩個(gè)是您情我愿的,所以就一拍即合,相當(dāng)?shù)牡菍?duì)!當(dāng)然沒(méi)有這么簡(jiǎn)單的哈,就如同兩個(gè)人談戀愛(ài),至少也需要是一男一女啊,兩個(gè)都是男或女那就太不正常了,ZIGBEE是個(gè)國(guó)際化的標(biāo)準(zhǔn),當(dāng)然不能有這種變態(tài)行為,所以也需要兩個(gè)命令的屬性是相反的,就例如這里的控制燈開(kāi)關(guān)的命令,對(duì)于燈來(lái)說(shuō)這個(gè)命令為輸入,而對(duì)于開(kāi)關(guān)來(lái)說(shuō)這個(gè)命令是輸出。所以一入一出剛好就登對(duì)。呵呵?。?/span>
綁定成功的表象是:開(kāi)關(guān)設(shè)備的LED1快速閃爍。
void zb_AllowBindConfirm( uint16 source )
{
  // Flash LED
  HalLedSet( HAL_LED_1, HAL_LED_MODE_BLINK );
}
綁定成功了就可以發(fā)送燈控制命令了。按下RIGHT,調(diào)用了函數(shù):
zb_SendDataRequest( 0xFFFE, TOGGLE_LIGHT_CMD_ID, 0,
                        (uint8 *)NULL, myAppSeqNumber, 0, 0 );
可以看出發(fā)送了一個(gè)數(shù)據(jù)請(qǐng)求,顯然是廣播發(fā)送的,而命令為切換燈狀態(tài)的TOGGLE_LIGHT_CMD_ID。當(dāng)燈收到這命令,就有處理函數(shù)了:
void zb_ReceiveDataIndication( uint16 source, uint16 command, uint16 len, uint8 *pData  )
{
  if (command == TOGGLE_LIGHT_CMD_ID)
  {
    // Received application command to toggle the LED
    HalLedSet(HAL_LED_1, HAL_LED_MODE_TOGGLE);
  }
}
所以LED1顯示狀態(tài)發(fā)生改變。
此時(shí)這個(gè)例子已經(jīng)接近尾聲了,因?yàn)榻壎ǔ晒﹂_(kāi)關(guān)能夠控制燈了,但是既然可以綁定那么也可以接觸綁定的,如果按下開(kāi)關(guān)的DOWN,那么同樣調(diào)用了發(fā)送綁定請(qǐng)求函數(shù):
zb_BindDevice(FALSE, TOGGLE_LIGHT_CMD_ID, NULL);
只是這里第一個(gè)參數(shù)為FALSE,所以就能解除綁定。如果某個(gè)開(kāi)關(guān)被解除了綁定,那么此時(shí)就不能控制燈了。
在這個(gè)例子最后做個(gè)小結(jié)------綁定的好處。
綁定了之后,發(fā)送數(shù)據(jù)或者命令,就不需要設(shè)備的地址,因?yàn)檫@個(gè)命令只能在建立綁定間的設(shè)備中傳輸。------------絕對(duì)是我的理解!

還有,一個(gè)開(kāi)關(guān)可以綁定多個(gè)燈,同樣,一個(gè)燈可以同時(shí)與多個(gè)開(kāi)關(guān)發(fā)生綁定。這個(gè)不代表本人觀點(diǎn),本人強(qiáng)力反對(duì)腳踏N只船!?。。。。?/span>

現(xiàn)在來(lái)簡(jiǎn)單分析下傳感器的例子,由于前面燈的例子說(shuō)的比較多,這里我就說(shuō)少點(diǎn)。

中心節(jié)點(diǎn)對(duì)應(yīng)SimpleCollectorEB ,傳感器節(jié)點(diǎn)對(duì)應(yīng)SimpleSensorEB。這里用到了EB,主要是因?yàn)镈B沒(méi)有串口硬件,而EB有,這個(gè)例子需要用到串口。
傳感器的例子效果是:協(xié)調(diào)器可以收集傳感器節(jié)點(diǎn)的溫度信息并通過(guò)串口傳輸?shù)絇C機(jī),如下圖所示:
 
可以看到能夠看到節(jié)點(diǎn)的溫度和電源電壓。
具體實(shí)現(xiàn)與燈的例子稍區(qū)別,但是本質(zhì)的原理是一樣的,先選擇設(shè)備類型,然后建立綁定,最后收集信息。這里建立綁定的區(qū)別在于,只要中心節(jié)點(diǎn)允許綁定(與前面操作一樣),然后傳感器節(jié)點(diǎn)是自動(dòng)發(fā)送綁定請(qǐng)求的:
  osal_start_timerEx( sapi_TaskID, MY_FIND_COLLECTOR_EVT, myBindRetryDelay );
定時(shí)去產(chǎn)生發(fā)MY_FIND_COLLECTOR_EVT事件:
if ( event & MY_FIND_COLLECTOR_EVT )
  {
    // Find and bind to a collector device
    zb_BindDevice( TRUE, SENSOR_REPORT_CMD_ID, (uint8 *)NULL );
  }
這個(gè)事件就是發(fā)送綁定請(qǐng)求的。
至于綁定后的現(xiàn)象與前面一樣了。
最后通過(guò)串口調(diào)試工具就能看到前面那個(gè)圖的效果了?。。。。。。。。。。。?!
這里的溫度為42,這個(gè)肯定不可能的,不然我就被蒸發(fā)掉了哈!因?yàn)椴捎玫氖切酒瑑?nèi)部集成的溫度傳感器,這個(gè)傳感器做實(shí)驗(yàn)還可以,因?yàn)榭梢钥匆?jiàn)溫度的變化,但是其準(zhǔn)確性是在不敢恭維。TI也是的,做了溫度傳感器,還超級(jí)不準(zhǔn)確,還不如不做,只有還可以降低硬件成本,幾乎沒(méi)有任何使用價(jià)值?。?!

 

 

 

 

 

 

 

 

 

 

 

 

 

 


東莞市德峰智能科技有限公司 版權(quán)所有 @ Copyright 2013 【百度統(tǒng)計(jì)】 【網(wǎng)站管理
地址:東莞市塘廈鎮(zhèn)環(huán)市西路258號(hào)信達(dá)商務(wù)大廈B502 訪問(wèn)量: [網(wǎng)站地圖] [sitemap]
*本站相關(guān)網(wǎng)頁(yè)素材及相關(guān)資源均來(lái)源互聯(lián)網(wǎng),如有侵權(quán)請(qǐng)速告知,我們將會(huì)在24小時(shí)內(nèi)刪除 技術(shù)支持:東莞網(wǎng)站建設(shè)粵ICP備2022123063號(hào)
關(guān)鍵詞:藍(lán)牙耳機(jī)、防水電視 、教學(xué)會(huì)議一體機(jī)、氮化鎵電源、PD快充電源?
男女好痛好深好爽视频| 亚洲嫩模高潮喷白浆在线观看 | 少妇探花一区二区| 国产精品无码aⅤ| 国产91精品国语高清自产拍| 一区二区三区视屏免费| 成人精品在线一区二区三区| 99精品国产最新观看网址| 蜜臀av无码一区二区三区小说| 分享丰满少妇人妻无码13p网站心得| 四虎激情做人爰| 国产成人亚洲精品播放器下载| 处破女13分钟流血| 最美情侣国语版免费观看高清| av天堂永久资源网| 日韩午夜激无码?v毛片| 成人精品秘 日本九一视频在线| 天天操一操天天干天天日| 欧美日韩国产在线网站| 日韩偷拍无码44p| adc影院在线观看成人| 精品国产白在现线看| 亚洲精品电影在线免费观看| 欧美三级黄片在线免费观看| 精品国产白在现线看| 亚洲精品电影在线免费观看| 人妻中文字幕精品无码| 久久久一区二区三区国产| 护士少妇被后进高潮千乐网| 韩国三级特黄60分钟在线播放| AV三级高清在线观看| 高雅人妻被迫沦为玩物电影bd| 精品一区二区三区无码免费知额| 欧美四虎精品二区免费| 成人毛片网站| 在线精品国产一区免费| 丝袜美腿一区二区三区| 精品久久综合1区2区3区激情 | 天堂亚洲性爱在线播放| 天干天干天啪啪夜爽爽AV小说| 国产日本卡二卡三卡四卡| 无码专区白浆中出在线观看| 一级毛片不卡片免费观看 | 91成人免费视频| 国产精品成人?v在线观看| 久天躁狠狠躁夜夜av麻豆 | 麻豆v?一区二区三区久久浪。| 惠民福利99麻豆久久久国产精品免费| 久久久以前亚洲精品| 刘亦菲合成aⅴ在线一区二区| 欧美韩国日本精品在| 免费无码真人祼交视频| 免费观看各国a∨毛片| 國產一區二區三區亞洲綜合| 国产一级免费做a爱片| 欧美日韩免费中文字幕高清专区不卡| 香蕉久A一区二区三区| 部长的夫人的味道中字| 91精品国产欧美日韩| 成人精品视频一区二区不卡 | 一区二区三区在线观看免费| 无码精品国产dvd在线观看9久| 亚洲av中文无码乱人| 国产精品肥臀在线观看| 惠民福利国产精品无码久久A v嫩草 | 日韩欧美国产成人| 69精品人妻一区二区三区蜜桃乛| 少妇探花一区二区| 欧美一级看片a免费观看| 亚洲精品国精品久久| 欧美日韩精品色图在线观看 | 日韩美女精品免费视频| 国产妓女性猛交亚洲黄色一级片| 一二三区无码视频| 久久久精品一区二区三区四区| 极品嫩模高潮叫床视频| 天天操一操天天干天天日| 偷窥自拍亚洲| txvlogcom糖心官网网站| 欧美欧洲精品一区二区三| 欧美日本亚洲黑白配| 国产一区二区三区影视| 99ri国产一区二区在线观看| 最新亚洲一卡二卡三卡四卡| 91 丨PORNY丨在线中文| 精品一区二区三区四区日产| 一级做a爱片久久毛片A片V| 部长的夫人的味道中字| 亚洲婷婷综合色香五月| 香蕉一级婬片A片久久精| 欧美婷婷亚洲中文字幕| 国产成ā人片在线观看视频| 丰满人妻被公侵犯完整版| 亚洲精品日韩无码| av无码人妖系列综合网| 惠民福利亚洲色偷偷综合亚洲AV| 999热视频这里只有精品| 欧美一级看片a免费观看| 免费无码视频在线网站 | 91九色蝌蚪在线看视频| 欧美一欧美一二区| 高潮毛片免费观看| 中文字幕日韩精品涩涩视频| 久久精品国产99久久72部| 免费成年人视频大全| 国产系列JK在线| 亚洲小说另类视频| 歐美性白人極品1819hd高清| 亚洲一区不卡视频| 欧美啪啪国产综合精品| 欧美特一级AAAAAA色| 久久久999精品操波| 亚洲v?中文字幕在线观看| 欧美三级毛片免费视频观看| 5g影院5g天天爽永久免费影院| 国产精品黄片永久观看| 小宝探花国产精品一区二区| 亚洲国产精品无码影视| 在线观看国产不卡av| 亚洲精品国产a综合第一己| 在线免费看污| 国产精品久久精品一区| 国产一区二区三区影视| 日韩精品妓女在线观看视频免费| 一區二區三區在線| 锵锵锵锵锵免费完整观看下载大全| 一区二区无码中出| 西方37大但文体艺术| 亚洲一级毛片精品| 中文字幕无码精品亚洲35| 国产精品黄片亚洲性爱在线| 男女做性无遮挡免费视频| AAA午夜特黄大片| 高清久久免费综合| 久久人与动人物A级毛片效| av天堂永久在线女神| 亚洲伊人影视综合影院| 国产高中生在线观看| 免费女人18毛片视| 青娱乐久久国产bbs| 在线日韩中文自拍| 又大又爽又黄激情视频国产| 熟女中文字幕免费| 一区二区三区精品99久久| 四虎精品免费视频| 好男人社区在线观看免费视频| 成人黄色一区二区| 欧洲熟妇色xxxxx欧美老妇| 夜晚色福利院在线观看免费| 锵锵锵锵锵免费完整观看下载大全 | 国产成人综合一区人人| 在线播放国产偷丝拍强伦| 青青热精品视频在线播放| 2019久久久最新精品| 欧美亚洲成人精品一区二区三区| c久久精品国产精油按摩店| 最美情侣国语版免费观看高清| 看污片的狐狸视频APP| 色婷婷五月亚洲一区二区| 6080新视觉yy理论片| 久久国产av无码一区二区老太| 中文字幕一区国产| 午夜爽爽爽男女污污污网站| 天天上传碰碰噜噜噜一区二区三区| 午夜久久成人福利电影| 国产l精品国产亚洲区在线观看| 国产一二三区精品视频| 久久精品综人妻久久| 色欲午夜无码久久AV无码 | 91 丨PORNY丨在线中文| 国产男女猛烈无遮挡a片漫画| 亚洲中文字幕无码a∨网址| 日韩欧美三级一区二区在线| 草莓榴莲向日葵丝瓜18岁| 男人的天堂色偷偷| 日韩午夜理论片中文字幕| 嗯~啊~别揉我奶头~视频| 寡妇高潮一级毛片免费看熟女| 99精品国产兔费观看| 又粗又硬又黄又爽的免费视频| 香港经典a毛片免费| 日批无码视频| 51国产愉自视频区视频手机播器| 欧美日本在线旡码| av片在线观看无码免费| 免费裸体视频网站双女| 国产91久久精品一区二区三区字幕| 欧美午夜免费一区二区| 无码人H动漫中文字幕等最新内容!| 日本高清视频在线网站啪色| 日韩 欧美 国产 动漫 一区| 亚洲成在人的天堂网址| 免费做运动视频扑克视频网站| 2016蝌蚪窝在线观看视频| 国产日韩91亚洲高清色| 97热久久免费频精品99| 久热热女免费视频中文字幕| 无遮挡无码h纯肉动漫在线观看 | 日韩亚洲制欧美综合| 美女脱个精光露出小秘软件| 亚洲av中文无码乱人| 凹凸国产精品视频国语| 在线观看美女直播喷水视频| 日韩a一级片黄色电影| 人妻被骗免费按摩12| 国产老色批视频在线观看应用| 一色屋精品视频在线| 四季AV午夜激情电影| 欧洲亚洲日韩欧美一区二区| 看全色黄大色黄男女片做| 了解最新黄色草逼视频| 少妇缴情αv一区二区三区| 少妇又潮又喷又爽无码| 婷婷中文字幕精品一区二区| 国产丝袜高清在线精品一区| 亚洲一视频亚洲二视频| 外国一级少妇免费大片| 少妇无码精品一区二区三区| 国产av精品一区二区三区久久| 一级做a爱过程免费视频app| 日韩久久免费毛片| 亚洲日韩激情一区二区 | 国产午夜精品一区二区三区在线观看| 高清无码中文字幕在线视频| 国产激情做a爱黄色一级一级片| a级国产乱理伦片野外| 最新亚洲一卡二卡三卡四卡| 欧美精品制服丝袜在线| 亚洲色成人网站WWW永久在线观看| 精国日韩欧三动| 久久综合之合合综合久久无码专区 | 宅男视频成人污| 好色先生TV版下载| 亚洲有码Av一区二区三区| 亚洲欧美激情桃花| 欧美日韩亚洲第一区在线无弹窗| 1024在线视频亚洲| 亚洲精品日韩无码| 亚洲午夜视频体内射| 最新亚洲一卡二卡三卡四卡| 亚洲清纯国产嫩草| 超碰热热热人人夜夜| 国产一区二区三区中文在| 18禁男女爽爽爽午夜网站免费| 免费无码又爽又刺激精品视频| 文中字幕一区二区三区视频播放99久久国产热无码精品免费 | 一级毛片成人免费视频| 男生和女生靠逼的APP| 小宝探花国产精品一区二区| 草莓视频深夜的在线直播平台| 亚洲欧美激情综合区久久| 青青草国产免费一级A片| 四级毛片在线播放| 免费很黄很色刺激小说| 偷偷做久久久久网站| 一级特黄妇女高潮视的特点| 牛牛在线精彩视频国产| 成人精品在线一区二区三区| 五月天激情中国av| 精品人妻无码专区在线无广告| 日韩欧美一区二区国产精品| s8sp加密路线免费进入网站下载 | 日韩在线精品中文第一页| 手机看片久久国产免费不卡| 午夜视频在线观看按摩女| 部长的夫人的味道中字| 亚洲欧美日韩另类在线观看| 日韩无码av一级毛片网站 | 国产黄色毛片频道| 东京热无码av一本大道 | 亚洲一二三区视频| 国产成人免费播放| 无码任你躁久久久久久老妇双奶| 真人毛片视频| 亚洲日韩∧v精品一区二区小说| 流畅不卡视频在线免费观看| 国产免费午夜?无码v视频| 亚洲国产成人精品天堂软件| 久在线中文字幕在线观看| 欧美一级aa系列在线播放| gogogo高清免费观看日本电影| 久久精品人人槡人妻人人玩AV| 一二三区无码视频| 婷婷色香五月激情综合2020| 免费一级大片| 一二三四专区人妇| 久久久噜噜噜久久网| 亚洲丝袜一区| 波多野结衣中文字幕在线| 国产精品久久精品一区| 少妇人妻系列无码专区系列免费观看| 91九色在线播放| 国产乱理伦片在线观看夜色| 文中字幕一区二区三区视频播放99久久国产热无码精品免费 | 思思久久精品无码| 国产末成年Aⅴ在线播放| 欧美高潮性爱中文字幕在线播放| 日韩一码二码在线观看| 成年女人a毛片免费视| 免费2020午夜理论大片| 国产91深喉口爆在线观看| 91在线新免费观看| 无码按摩一区二区中文字幕| 亚洲欧美中文字日韩二区| 在线播放亚洲日韩欧美丝袜| 国产激情偷乱视频一区二区 | 黄色软件推荐| 精品欧美在线观看国产| 禁精品99黄在线观看| 国产成人亚洲影院在线app| 宅男 一区二区 中文| 久久精品国产99久久72部| 小浪货腿张开水好多啊视频| 国产一级a爱做片天| 国产一级毛卡片视频| 久久亚洲精品无码人区| 日韩美女精品免费视频| 免费三级在线观看韩国西瓜| 97热久久免费频精品99| 国产午夜理论片不卡在线观看| 青青青青国产在线| 伊人天堂αv无码αv日韩αv| 色八区人妻在线视频| 91大神一区二区韩国日本欧美| WWW级毛片线天内射视视| 亚洲女人日逼黄片免费手机不卡| 欧美三级黄视频在线观看| 欧美成aⅴ人在线视频| 亚洲欧洲一区二区综合在线| 国产又粗又长性无码| 伊人直播下载app| 91九色在线播放| 国产综合精品无码无卡| 国产精品成人∨a在线观看 | 免费深夜福利备好纸巾18禁止| 免费观看黄网站| 色欲AⅤ蜜臀AV在线播放| 一级特黄妇女高潮视的特点| 胖崽软件库v1.3| 惠民福利午夜无码伦费影视在线观看| 电影《丰满的人妻》| 国产偷伦免费视频看| 国产成人精品久久久av| 欧美亚欧日韩在线观看中文字幕| 黑人巨大无码XXXX| 国产大尺度福利小视频在线观看| 天天操一操天天干天天日| 亚洲第一区在线观看| 一区二区三区大国产片| 国产真实迷j网站在线观看| 欧美日韩久久精品一区二区| 日本aaaaa级毛片| 国产婷婷综合在线观看| bt天堂网在线最新版www中文| 日韩精品免费视频在线观看 | 国产欧美三级高清| 天天操一操天天干天天日| 国产精品嫩草在线观看高清自产拍| 四虎精品免费视频| 久久人妻夜夜做天天爽v片| 丰满美女一级毛片在线播放| 亚洲超碰97资源在线播放| 亚洲A片无码精品毛片| 四季AV午夜激情电影| 无码粉嫩小泬抽搐白浆免费 | 思思久久精品无码| 夜夜狂射影院欧美极品| 免费黄片视频可以马上观看| 自拍高清日本国产| 成人大片免费观看| 国内无码人妻九九| 欧美日韩国内黄色视| 亚洲欧美系列| 糖心vlogapp官网免费| 奇米影视777在线| 人妻系列中文字幕亚洲| 乱伦中文三级国产| 人妻AⅤ在线精品| 成人毛片免费视频在线不卡| 玖玖爱在线视频精品79| 99re在线视频精品观看9| AV天堂亚洲AV午夜一区| 在线观看片免费人成视频播放| 手机看片高清国产日韩片| 三级电影久久免费观看网站| 久久久av午夜一区| 欧美日韩www.在线观看视频| 野花社区日本免费| 午夜亚洲AⅤ无码高潮片苍井空| 国产精品无码不卡一区| 久久国产精品日本韩国| 国产av黄色网址| 久久青青草原伊人| 影音先锋女人av鲁色资hd| 国产成人秘久久| 国产手机在线小视频免费观看| 麻豆果冻传媒精品国产免费| 在线好屌妞国产精品| 91一区二区三区四区五区| 久久精品国产亚洲av热亚洲性| 日本十八禁无遮掩视频| 18禁黄网站禁片免费观看最近2019中文字幕第二页 | 玖玖+99+久久免费视频| 乱伦自拍影视三级| 人人五级片在线播放| 3d双性人无尽扶她互| 国产在线不卡三级另类二区| 大屁股xxxxx日本大屁股| 国产三级片资源导航| 亚洲IV视频免费在线光看| 日韩无码av一级毛片网站| 113美女写真午夜一级| 亚洲人成网站在线观看妞妞网| 欧美牲交视频免费观看| 日本亚洲欧美一区在线观看| 91短视频版高清在线下载| 欧美高潮性爱中文字幕在线播放| 日韩高清在线观看免费| 国产又大又爽一级毛片| 88xx永久免费看大片| 2021最新国产精品毛片| 色偷偷91综合久久噜噜| 午夜美女福利视频网站| 2019无码视频观看| 国产高清视频在线观看91| 大屁股xxxxx日本大屁股| 国产精品一在线观看| 亚洲成人免费高清观看在线| 日本黄色大片在线播放视频免费网站| 久久91人妻白浆| 久久久久久亚洲av成人无码专区| 亚洲日本久久久久久| 超强国产一区在线观看抽搐| 国产牲爱无码视频| 男生和女生靠逼的APP| 午夜久久成人福利电影| www国产一区区走丢| av天堂永久在线女神| 久久超级免费视频| 最新精品精彩国产99| 废柴视频网fcw播放最多国产日韩| 國產絲襪美女一區二區三區| 久久亚洲熟女cc98cm| 日韩 欧美群交p片内射中文一| 草莓视频APP下载链接| 国产亚洲日韩av在线播放| 一二三四专区人妇| 日韩欧美动漫一区一区| 日韩欧美亚洲国产中文在线| 国产一区二区三区清纯| 疯狂做受xxxx亚洲| 大地资源在线资源免费观看 | 一區二區三區在線| 一本色道久久综合亚洲精品婷婷| www免费污片性爱视频| 成人精品秘 日本九一视频在线| 欧美日韩亚洲国产二区| 日韩肏屄免费视频| 亚洲国产av一二三区| 91久久国产精品综合| 国产欧美黑人一区二区三区四区| 中文字幕日韩欧美精品| 亚洲精品无码中文字幕 | 我要看欧美黄色一级片| 成人午夜视频在线观看网站| 锵锵锵锵锵免费完整观看下载大全| 久久青青草原伊人| 日韩av高清在线看片| 国产探花在线视频| 国产91小仙女午夜一区| 92午夜福利轻云观看| 亚洲精品av一区二区日韩| 国产一二三区精品视频| 本道久久综合无码中文字幕| 东京热一区二区三区无码| 日韩AV毛片精品久久久久久| 热播综艺动漫av永久网站| 成人一区二区三区中文字幕| 一区二区三区亚洲爱爱爱女| 九一超级碰国产在线观看| 国内一区二区三区视频在线观看| 国产办公室aⅴ无码精品视频| 中文国产日韩三级有码无码乱码一区二区| 日韩永久免费播放片网址欧洲片| 久久精品中文无码| 不要钱的黄片软件.| 成人免费a级毛片无码片| 天堂AV成人无码久久精品| 韩日一本无码独奏视频网址| 欧美又大粗又爽又黄大片视频| 狼友无码一区二区二三区∝| 黄片在线免费在线| 亚洲精品一区二区三区麻豆| 蜜臀av无码一区二区三区小说| 女人被狂躁g点高潮喷水| 红桃秘无码一线二线三| 唐人社视频呦一区二区| 久久无码精品一区二区三区不卡| 国产剧情无码在线观看| 欧美粗大猛烈18p| 日韩中文字幕有码在线| 大学生高潮一级毛片免费视频| 国产乱偷国产偷精品| 亚洲女人日逼黄片免费手机不卡| 成人精品老熟女一区二区| 看污片的狐狸视频APP| 欧美亚洲成年人免费| 99ri国产一区二区在线观看| 惠民福利午夜无码伦费影视在线观看| 免费观看囯产自偷自拍窥自拍 | 成人精品秘 日本九一视频在线| 国产AV高清久久久精品| 午夜国产精品福利一区| 女人十八毛片免费视频| 国产91久久精品一区二区三区字幕| 狠狠88综合久久久久综合网| 亚洲精品国精品久久| 欧美区日韩区亚洲综合成人| 久久久久久久国产精品无码不卡在线播放| 成人午夜免费在线视频| 国产亚洲?v一区二区| 大茄子自慰过程冒白浆AV| 午夜成人在线| 天堂资源8在线资源| 国产精品国产三级区别第一集| 亚洲精品棕合欧美一区二区三区 | 国产一级毛卡片视频| 国产午夜精品理论片a级小说| 一级片免费在线看| 中文无码熟妇人妻AV免费| 一区二区三区毛片福利电影 | 亚洲一区视频无码| 午夜视频在线观看按摩女| 草莓视频安卓视频在线观看| 国第一产在线无码精品区| 国产高清在线精品一区观看| 麻豆Av免费在线观看亚洲色成中文字幕在线 | 久久裸体国语精品国产91 | 影音先锋男人资源在线网站| 久久影视这里只有精品国产擁有海量影視資源| 欧洲亚洲日韩欧美一区二区| 成人a毛片在线免费观看| 自拍偷拍 亚洲无码 欧洲无码 | 久久久噜噜噜久久网| 亚洲欧美伊人久久一区二区精选| 国产真人一级a爱做片免费看 | 国产成人秘久久| 伦理精品亚洲一区二区三区| 亚洲欧美国产午夜视频手机版| 免费一级大片| 久久国产一区二区日韩?v| 一区二区三区国产视频播放区| 欧美日韩精品资源| 免费无码高潮喷水AⅤ片在线| 丁香五月天婷婷综合开心| 性色生活免费看性大片| 国产日韩精品在亚洲| 国产精品口爆吞精2020年版| 无码按摩一区二区中文字幕| 亚洲欧美精美视频日本| 國產精品無碼無卡在線播放| 精品97在线观看视频| 自拍高清精品乱伦| 亚洲丝袜一区| 日韩av高清在线看片| 亚洲国产精品886无线观看| 亚洲a无码专区在线观看春色 | 国产精品自产在线播放| 日韩乱码人妻无码中文视频下载| 日韩一二三区视频免费观看| 伊人久久亚洲精品综合| 欧美三级在线播放第一次做| 亚洲欧美日韩综合中字一区| 中文字幕无码精品亚洲35| 国产欧美精品一区二区三区蜜臀| 欧美特级婬片免费播放口| 牛牛在线精品视频国内免费| 特级特黄AA级视频免费| 少妇人妻无码专用视频| 婷婷中文字幕精品一区二区| 青青热精品视频在线播放| 午夜精品一区二区三区宅男av| 日欧强奸三级网址在线| 国产日韩91亚洲高清色| 美国一级免费毛片| 国产在线不卡三级另类二区| 波多野结衣强d在线视频中文| 国产自产在线直播| 女人十八片毛片免费视频| 天天夜夜人人视频| 老司机视频久久人人做人人爽| 亚洲电影手机在线五月| 免费国语一级a在线观看| 性关系秘?视频免费| 免费观看国产一级黄片视频| 最新国产精品电影入口| 亚洲天天做日日做天天射| 欧美人牲交免费观看| 欧美日韩精品偷拍不卡| 激婷婷中文字幕久久综合| 日本爆乳在线中文字幕| 精品国产福利第一区二区三 | 国产又大又爽一级毛片| 成品av小说区在线看| 国产精品自拍av免费一区| 亚洲成人专区在线免费观看| 老公当我面干了闺蜜| 国产三级片资源导航| 不要钱的黄软件下载| 色呦av一区二区三区麻豆 | 久久久久久亚洲av成人无码专区| 久久久久国产精品嫩草影院国产欧美一区| 国产福利成人在线| 国产精品亚洲a∨天堂不卡| 男生女生一起差差的app下载安装安卓| 少妇无码精品一区二区三区| 欧美人交a欧美精品| 国产成ā人片在线观看视频| 亚洲小说另类视频| 亚洲成人免费电影| 2019国产精品久久| 特级特黄特黄日本大片 | 欧美性爱一区精品视频| 2016蝌蚪窝在线观看视频| 人成在线播放免费视频| 黑人无码在线观看| 久精品在线观看| 亚洲欧美日韩高清一区二区一| 欧美成人一区二区电影在线观看| 欧亚天堂在线播放| 国内一区二区三区视频在线观看 | 色婷婷综合激情| 中文字幕第一页人妻在线视频| 韩国三级特黄60分钟在线播放| 狼友无码一区二区二三区∝| 中国国产高清免费av片| 久久成人18免费国产精品网站| 国产日本自卫在线不卡| 蜜臀av无码一区二区三区小说| 91精品国产91久久久无码医生| 国产丝袜美腿在线电影| 性夜影院爽黄A爽免费看| 国产无码资源在线| 国产成人美女精品自在拍av| 国产精品白浆熟女| 久久久久国产精品嫩草影院国产欧美一区 | 国产精品成人∨a在线观看| 性动漫无遮挡在线观看| 日韩无码中文视频| 四虎黄色高清免费A级网站| 亚洲三级人妻一区| 韩国理论电影午夜三级火豆网| 可以免费看黄的应用| 我的漂亮老师2中文字幕版| 精品国产人成亚洲区中文久久| av日韩免费在线观看| AV资源在线在线免费观看三级无码片| 欧美日韩一区二区在线视频 | 欧美成人AAA大片| 亚洲深夜毛片av| 日韩午夜在线一区二区三区| 国产成人无码久久久久毛片| 九九全国免费视频| 精国日韩欧三动| 暧暧视频在线观看| 午夜激情一区二区三区| heyzo亚日韩精无码区| 国产美女被高潮免费网站| 久久人妻少妇五月AV无码婷婷| 日韩a一级片黄色电影| 综合久久五月天| 国产成人精品曰本亚洲78| 最新在线观看视频国产91| 国产亚洲欧美在线3页| h视频在线免费观看| 国产激情一区二区三区成人AV | 欧美中文字幕aⅴ亚洲成a人惠州 | 亚韩人妻精品中文无码视频| 一级毛片电影免费在线观看| 美女污污网站| 丁香婷婷色五月| 57pao国产成视频免费播放| 午夜精品福利一区二区| 久久精品中文无码| 丁香六月纪婷婷激情综合| 永久免费A片在线观看全网站| 国产精品嫩草在线观看高清自产拍 | 国产盗拍精品视频| 亚洲а久久网无码| 国产在线视频一区二区三区^&| 国产一级?毛一级?看免费视频| 看黄片软件免费| 久久亚洲精品无码AⅤ网站| 1000部多毛熟女毛茸茸| gogogo高清免费观看日本电影| 免费网站观看www在线观看| 狼友无码一区二区二三区∝| 尤物视频在线观看一下| 四季AV午夜激情电影| 一区二区三区777| 人妻无码毛片一区二区三区| 麻豆精品人妻高清特黄一区二区三区蜜桃 | 好色先生下载在线| 文中字幕一区二区三区视频播放99久久国产热无码精品免费 | 欧美三级在线播放线观看免| 日韩高清亚洲专区| 少妇又潮又喷又爽无码 | av无码一区二区三区网站| 分享丰满少妇人妻无码13p网站心得| 韩国电影小姐姐在线| 青青草视频+在线观看| AV天堂亚洲AV午夜一区| 欧美人与禽交zozo| 四季AV午夜激情电影| 久久久9国产一区二区三区| 一本一本久久a久久综合| 五月亭亭免费高清在线| 国产一级久久久久久毛片精品| 暧暧视频在线观看| 国产办公室aⅴ无码精品视频| 人妻少妇无码精品视频| 午夜精品福利一区二区| 日韩国产无码二区三区| 久久久久久国产SUV一级a毛一级a看免费视频精品 | 久久久久久国产SUV一级a毛一级a看免费视频精品| 文中字幕一区二区三区视频播放99久久国产热无码精品免费 | 亚洲午夜福利在线观看老司机| 免费污小说在线免费资源| 国产av精品一区二区三区久久| 亚洲αV无码久久精品色欲| 國產精品一區二區三區久久| 日本综合高清免费| 日日添日日摸| 国产高清一级片| 日韩A级毛欧美1级a大片| 亚洲电影自拍无码一区二区三区| 欧美粗大猛烈18p| 疯狂做受xxxx亚洲| 91在线新免费观看| 亚洲色资源站资源网| 18禁女子裸体视频网站免费| 亚洲欧美久久精品18| 欧美狂猛专区| 丝袜美腿亚洲综合洲| 色亚洲一区二区| 日本一级在线播放观看| 制服丝袜亚洲国产| 秋霞电影午夜理论| 水果派184青梅还是竹马讲解| 绝对真实偷窥短视频大全| 欧美性爱在线一区二区三区| 极品嫩模高潮叫床视频| 亚洲精品国产第一区二区多人| 91免费黄片观看| 无码人妻一二三区精彩视频| 麻豆国产α片对白日逼视频| 2016蝌蚪窝在线观看视频| 极品嫩模高潮叫床视频| 欧美一区二区三区成人片木| 美女主播一区二区三区| 国产美女精品免费视频网| 最新精品国产| 丁香五月天婷婷综合开心| 国产精品无码区久久av| 国产在线看真实在线观看| 青青一区二区免费看| 91青娱国产盛宴精品可下载| 美女羞羞免费视频| 国产久精品久久久久观看 | 高清一区二区三区日本久| 亚洲欧美日韩是图| 国产精品人妻无码免费久久久| 午夜一级黄片毛片| 精品国产一区二区三区超碰香蕉p| 国产精品无码aⅤ| 亚洲一区视频无码| 国产一级毛卡片视频| 国产免费午夜?无码v视频| 少妇又潮又喷又爽无码 | 99re6久久免费观看互動交流| 欧美日本亚洲黑白配| 诱惑人妻中文字幕| 亚洲永久免费毛片在线播放| 人人爽2018亚洲| 黄色wwA级免费毛片| 日韩精品有码在线中文字幕| 成人毛片免费视频在线不卡| 波多野结衣无码在线| 麻豆精品三级片| 国产成人一二三区| 香蕉eeww99国产精选播放 | 久久裸体国语精品国产91 | 国精产品一线二线三线av| 狠狠CAO2020高清视频| 亚洲中文字幕dⅴd| 日韩中文无码中出人妻| 国产大片91精品免费观看不卡| 产偷v国产偷v亚洲高清| 成人综合色在线一区二区亚洲| 久久久久人妻无码一区三区| 无码人H动漫中文字幕等最新内容!| 丝袜美腿一区二区三区| 中日韩无码视频| 国产一级片再线观看| 影音先锋女人av鲁色资hd| 大地资源免费更新在线| 亚洲熟女少妇精品一级| 古装七仙女思春三级bd过看网| 美女和男人鸡鸡对鸡鸡| 九九热视频精品麻豆| 大地资源在线资源免费观看| 久久精品国产亚洲A∨麻豆蜜芽| 国产成人精品曰本亚洲78| 青青草国产免费一级A片| 国产l精品国产亚洲区在线观看| 激情黄色国产免费| 日韩不卡视频一区中文字幕| ?v日韩国产一区二区三区| 99久久精品自在自看国产| 亚洲av成人无码人在线观看堂| 欧美人妻WWW无码国产黄漫| 国产国产精品区美女 CB52| 亚洲高清国产免费| 国产一区二区三区涩色| 国产日本自卫在线不卡| 少妇喷奶水中文字幕手机观| 日韩欧美激情a∨一区二区| 惠民福利亚洲精品国产综合麻豆久久99 | 日韩视频无码免费一区区三区| 亚洲不卡人妻在线| 国产hd老太婆中国老太60| 国产高清一级片| 亚洲欧美日韩中文视频久久| 久久精品人人做人| 影音先锋主播另类| 国产一级媓片| 亚洲人成无码网在线观看秒进| 看污片的狐狸视频APP| 免费一级a一片高清免费| 国产一二三区韩国女主播| 精品无码国产污污污免费网站国产 | 国产亚洲精品拍拍拍拍拍| 2021年无线乱码免费播放| 国产成人精品综合在线观看| 欧美国产在线视频不卡顿| 国产大尺度福利小视频在线观看| 国色天香社区在线免费观看| 久久久9国产一区二区三区| a人片在线观看| 亚洲美女在线一区| 惠民福利极品少妇被猛得白浆直流草莓| 挤奶+玩弄跪趴嗯啊| 看日v品va一卡2卡三卡4| 亚洲A v无码一区二区三区牲色| 综合久久精品| 亚洲成人第一电影| 亚洲AV第二区国产精品| 国产男女猛烈无遮挡a片漫画| 91精品成人在线| 诱惑人妻中文字幕| 惠民福利国产在线精彩视频二区| 伊人久久大香蕉综合版| 美女视频app大全| 国产精品肥臀在线观看| 欧美日本在线旡码| 精品午夜福利影院| 69精品人妻一区二区三区蜜桃乛| 亚洲高清国产免费| 久久综合之合合综合久久无码专区| 夜晚色福利院在线观看免费| 性色AⅤ在线观看免费| 一区二区三区精品蜜桃| 2019久久久最新精品| 妺妺窝人体色WWW网站| 亚洲国产精品无码影视| 亚洲人成网站在线观看妞妞网| 久久国产精品日本韩国| 91精品美女视频| 亚洲精品福利网泷泽萝拉| 欧美国产调教一区二区| 秋霞电影午夜理论| 女生十八禁不遮不挡网站| 日韩高清亚洲专区| 久久久国产高清无码中文字幕| 亚洲精品av一区二区日韩| 国产精偷伦视频免费观看| 九九热视频精品麻豆| 欧美三级视频一区二区三区| 一级特黄妇女高潮视的特点| 中文字幕在线精品视频不卡| 国产黄片av免费看| 插粗爽在线观看| 搡老女人老妇女老太婆在视频| 天天睡天天爽天天日天天干| 精品国产在天天线在线| 好色先生下载在线| 久久超碰97AV日韩| 青青视频国产| 亚洲精品午夜久久久久中文| 國產精品一區二區三區久久| 好吊日视频在线| 唐人社视频呦一区二区| 亚洲 欧洲 av 综合| 亚洲日韩欧洲无码A∨夜夜爽| 了解最新黄色草逼视频| 差差差很疼的视频无掩盖| 香蕉成人av网站在线观看| 草莓视频APP成人| 亚洲欧美制服在线看| 香蕉一区二区三区精品视频 | 国内自拍9l大屁股视频| 少妇被粗黑进进出出在线观看| 老色鬼久久亚洲一区二区| 一级做a爱过程免费视频app| 欧美伊人久久久久久久久影院| 台湾美女系列网站在线观看| 久久久精品一区二区三区四区| 国产精品一区二区三密桃| 丰满美女一级毛片在线播放| 欧美又大粗又爽又黄大片视频 | 色偷拍亚洲自偷拍| 亚洲伊人无码| japanxx久久久女人手机版| 麻豆Av免费在线观看亚洲色成中文字幕在线| 欧美日韩一二三四区在线观看| 亚洲色资源站资源网| 国产又大又粗又长| 亚洲国产动漫一区| 99精品这里只有精品17| 九九精品手机视频在线观看| 国产精品白丝黑袜喷水视频| 日韩午夜福利在线| 两性色午夜免费视频| 熟女丝袜视频一区二区视频| 好吊日视频在线| 激情电影三级片毛片久久| 日韩黄色免费电影| 午夜拍拍拍无档视频免费QQ群| 特黄一级久久久毛片| 欧美一欧美一二区| 99精品久久精品一区二视| 天天做天天爰夜夜爽| 欧美毛卡片免费一级域名网站| 国产探花在线视频| 狠狠综合久久综合中文88| 欧美成人+精品+三级网站| 色欲aⅴ一区二区三区人妻| a人片在线观看| 一區二區三區在線| 亚洲精品在线不卡热门| 国产在线看真实在线观看| 色欲aⅴ一区二区三区人妻| 欧美日韩亚洲国产第一| 一本一本久久a久久综合| 男人激情天堂av| 黃色A片美女人20岁| 国产在热线精品视频99国产一二| 日本爆乳在线中文字幕| 亞洲精品免費視頻| 国产不卡视频福利在线观看| 国产又粗又长性无码| 我们免费观看亚洲无码视频| 超碰97人人模人人爽| 99久久免费精品国产男女高| 91精品麻豆免费观看| 一级片电影在线免费观看| 午夜一级黄片毛片| 欧美日韩成人免费播放视频一区| 免费?级毛片无码下| 久国产91色欲麻豆精品一区二区 | 欧美特黄高清免费大片| 秋霞电影午夜理论| 黑人激情视频在线| 国产精品黄片亚洲性片| 国产精品日韩欧美在线免费| 男女黄色免费在线| 国产目拍亚洲精品区婷婷| 最新精品国产| 婷婷色中文字幕在线视频| 久久久久国产AV一区二区精品| 91免费黄片观看| 高黄无码视频在线观看| 亚韩人妻精品中文无码视频| 超碰97AV在线播放| 午夜成人在线| 91超碰在线观看超碰在线观看50岁| 美女被视频网站免费看| 四季AV午夜激情电影| 真实国产欧美自拍| 精品国产在天天线在线| 六月婷婷亚洲激情图片| 日本aaav在线播放| 他激烈地吸着我的奶头视频| 国产精品主播91| 在线无码精品秘国产柳州| 在线观看免费av不卡高清| 中文字幕 亚洲a在线v| 亚洲无码av高潮在线观看| 特级特黄特黄日本大片| 国产女优免费视频等| 免费观看囯产自偷自拍窥自拍 | 丁 香老司机婷婷五月天| 亚洲精品电影在线免费观看| 1024手机看片欧美日韩| 免费国产精品亚洲| 国产一级片再线观看| 久久精品人人做人| 日韩午夜激无码?v毛片| 成人免费a级毛片无码片| 无码人H动漫中文字幕等最新内容!| 日韩在线中文视频| 国产又大又粗又长的色网视频| 色色丁香开心一区二区开心播播| 伊人久久大香线蕉无码不卡 | 97热久久免费频精品99| 亚洲欧美制服在线看| 奇米影视7777久久精品亚洲无线码一区二区三区 | 久久成人18免费国产精品网站 | 高清无码在线看| 久久香蕉国产精品99| 久久久以前亚洲精品| 亚洲韩日国产欧美精品第二区| 国产亚洲一卡2卡3卡4卡5卡视频| 国产精品一国产精品最新章节| 国产男女猛烈无遮挡a片漫画| 日韩欧美三级一区二区在线| 中文字幕日韩欧美精品| 免费成人黄色| 亚洲A片无码精品毛片| 久久无码喷吹高潮动漫播放| 老公当我面干了闺蜜| 成人精品秘 日本九一视频在线| 伊人天堂αv无码αv日韩αv| 男生和女生靠逼的APP| 日韩一区二区高清免费视频| 欧美成人午夜精品影院| 午夜精品一区二区三区宅男av | 免费a级作爱片免费观看美国| 最新aⅴ福利在线观看免费| 又大又粗又长又硬好爽| 国产精品综合成人一区二区| 亚洲一二三区视频| 爆乳巨胸美女午夜视频| 亚洲小说另类视频| av无码国产精品久久| 国产日本卡二卡三卡四卡| 矮子影视99久久精品播放| 青青草原亚洲国产精品| 夜夜狂射影院欧美极品 | 很黄的爱爱高潮小说的软件 | 国产日韩在线欧美一区 | 99久久天天躁狠狠躁夜夜躁| 在线中文字幕无码痴汉电车| 亚洲精品国产第一区二区多人| 色婷婷五月亚洲一区二区| 亚洲中文字幕无码a∨网址| 精品少妇人妻av免费久久下载| 欧美变态另类人妖| 唐人社视频呦一区二区| 顶级国产av网址| 国产精品高潮呻吟久久AV无码一级成人午夜 | 欧美成人+精品+三级网站| 亚洲一区二区毛片在线观看| 国产自慰免费在线看| 亚洲色图欧美色图裸体| 麻豆久久五月国产综合| 好色先生破解版下载| 91九色在线播放| 2024人妻有码中文字幕在线| 男人扎爽进女人J网站| 亚洲日韩欧洲无码A∨夜夜爽| 美女美女丝袜视频一区二区三区| c久久精品国产精油按摩店| av日韩免费在线观看| 日韩美女一区二区三区四区| 国产美女口爆吞精AV| 2022国产精品最新在线| 人妻偷人精品一区二区精品无码毛片| 午夜影视成人av网| 惠民福利国产无遮挡又黄又爽动态图| 日韩欧美国产成人| 亚洲精品aa片在线不卡爽| 久久综合欧美激情| 97碰碰碰人妻无码视频免费| 欧美精品久久久久久久免费观看| 超碰97AV在线播放| 2020自拍偷区亚洲综合| 黑人狂桶女人高潮嗷嗷叫小说| 熟女偷拍精品网| 69pao在线成人免费视频| 午夜福利视频合集1000| 国产sm捆绑调教久久久久| 91午夜在线不卡| 爱情岛亚洲 国产| 亚洲综合无码AV一区二区| 久久久AV波多野一区二区| 依依综合网永久地址| 曰本女同互慰在线| 欧美精品18videose×性欧美| 日韩不卡视频一区中文字幕 | 亚洲av色香蕉一区二| 在线日韩 中文字幕| 亚洲精品国产a综合第一己| 国产精品V?无码免费| 天天影视色香欲综合86| 亚洲欧美日韩综合另类第一区 | 亚洲色偷偷综合亚洲AVYP版| 久久无码高潮喷潮| 亚洲精品成人片在线观看| 一级毛片不卡片免费观看| 96精品视频免费观看| 国产精品自产拍在线观看1| 亚洲国产成人一区二区精品区| 亚洲粉嫩高潮18p久久| 日韩一区二区高清免费视频| 羞羞影院午夜男女爽爽免费视频 | 啊好爽快点好粗好爽国产视频| 欧美一区国产综合二区| 乱子伦视频一区二区三区| 精品日本一区二区免费A∨| 激情综合网婷婷丁香| 久久精品一本到88热| 日韩一区二区超清视频| 97久久成人国产精品免费| 无码人妻一二三区精彩视频| 亚洲国产欧洲另类视频| 国产精品亚洲片在线v?| 在线观看欧美二区| 欧美日韩免费中文字幕高清专区不卡 | 欧美一级aa系列在线播放| 国产精品口爆吞精2020年版| 午夜久久久久久禁播电影| 国产精品麻豆免费久久久不卡AV| 久久久精品久久久久久久久久久| 少妇又潮又喷又爽无码| 久久9999精品视频| 麻豆xxxxxx在线观看| 顶级国产av网址| 无码人妻一区二区三区免水牛视频| 国产女人与拘做视频免费 | 国模大尺度啪啪| 日韩午夜福利小视频| 免费三级在线观看韩国西瓜| 国产稀缺真实呦乱在线| 香蕉一区二区三区精品视频 | 碰超免费人妻中文字幕| 亚洲国产精品无码影视| 了解最新黄色草逼视频| 欧美婷婷亚洲中文字幕| 欧洲国产在线视频| 久久精品无限综合中文字幕| 亚洲午夜熟女av电影| 亚洲a色91精品免费看| 国产成 人综合亚洲| 欧美日韩中文字幕一区| 波多野结衣不打码视频| 色狠狠一区二区黑人巨大| 免费无码高潮喷水AⅤ片在线| 日本黄色大片在线播放视频免费网站 | 日韩欧美东京热| 免费的成年私人影院网站| 免费中文字幕在线无码片 | 日韩AV一中美AV一中文字慕| 琪琪see色原网一区二区| 搡女人真爽免费视频大全| 黄品汇mba旧版本安装包| 国产免费v片在线观看不卡| 精品国产乱码久久久久久无码毛片| 国产一级a级无码免费| 亚洲有码Av一区二区三区| 好色先生破解版下载| 国产成人亚洲综合无码?ⅴ| 久久久久久亚洲av成人无码专区| 日韩理论在线中文字幕| 欧美人妻WWW无码国产黄漫| 国产激情一区二区三区成人AV| 尤物视频极品盛宴| 乱子伦视频一区二区三区 | 日韩成人av二区| 一级毛片亚洲天堂av| 女人被狂躁g点高潮喷水| 国产裸体永久免费无遮挡| 午夜免费一级黄片| 欧美日韩成人免费播放视频一区| 乱人伦目录伦短篇500| 九九成人精品二区| 精品99一区二区三区四区| 亚洲中文字幕dⅴd| 无码专区白浆中出在线观看| 成人在线517视频| 欧美成人片在线观看视频| 激婷婷中文字幕久久综合| 亚洲第一区在线观看| 西方37大但文体艺术| 国产AⅤ无码一二三区| 久久6精品免费视频| 欧美精品在线看网站| 青青青青国产在线| 亚洲国产日产韩国欧美综合| 亚洲无码av高潮在线观看| 在线精品国产一区免费| 日本高清视频在线网站啪色| 丰满少妇一级按摩在线播放 | 91国内在线观看视频| 日韩麻豆精品传媒| a级国产乱理伦片野外| 欧美激情五月天综合网五月| 日韩一区二区无码视频免费大全| 國產一區二區三區內射高清| 特级特黄AA级视频免费| 国产古装无码av毛片| 国产精品69亚洲大尺度视频| 星际大战HR成?免费看| 国产欧美日韩fc2| 九九成人精品二区| 久久精品中文无码| 青青草原亚洲国产精品| 久久久久国产AV一区二区精品| 亚洲日本国产视频| 免费一级大片| 人妻一区二区三区日本| 91久久香蕉青青草原娱乐| 美女脱个精光露出小秘软件| 美女高潮到不停喷水视频| 精品97在线观看视频| 激情电影三级片毛片久久| 国产精品欧美亚洲日本综合| 91在线国产手机在线| 午夜性刺激片免费观看成| 日韩欧美国产成人手机在线 | 特黄毛片一级高清| 91精品婷婷国产综合久久竹菊| 给我免费播放片高清在线观看视频| 人人爽2018亚洲| 午夜免费一级黄片| 97碰碰碰人妻无码视频免费| 国产精品高潮呻吟久久av无码一| 日韩欧美国产成人手机在线 | 国产最新美女精品视频| 浪货趴办公桌~H揉秘书视频| 内射对白精彩在线播放| 一区二区三区大国产片| 丰满少妇高潮惨叫在线观看 | 成人大片免费观看| 牛牛在线精品视频国内免费| 亚洲aⅴ无码成人专区片在线观看 亚洲欧美制服在线看 | 日韩欧美三级一区二区在线| 久久久以前亚洲精品| 久久精品国产99久久香蕉| 中文字幕永久永久在线视频动漫| 免费a级毛片永久免费| 日本免费看视频| 亚洲欧洲一区二区综合在线| 国产一二三区韩国女主播| 日韩精品一区二区三区中文| 少妇中文免费精品| 日韩午夜福利在线| 尤物视频在线观看精品| 国产精品丝袜首页在线观看| 正在播放国产对白精彩| 99视频在线播放喷射| 天天夜夜人人视频| 久久久久久国产精品免费看| 分享欧美精品一区二区视频在线播放的心得 | 高清无码在线看| 国产福利姬视频二区| 国产毛片一区二区日韩| 国产精品福利一区二区无码| 西方37大但文体艺术| 丁香五月天婷婷综合开心| 国产α片免费观看在线播放| 成品av小说区在线看| 日本黄区免费视频观看| 亚洲人成网站在线观看妞妞网| 无码专区动漫精品一区二区| 自拍高清精品乱伦| 亚洲捆绑调教 一区 二区| 369看片天堂你懂的电影| 黃色A片美女人20岁| 113美女写真午夜一级| 久久精品国产亚洲A∨麻豆蜜芽| 漂亮的保姆韩国在线| 看黄片软件免费| 国产精选亚洲欧美另类| 日韩亚洲中文免费视频一区二区| 无码小电影免费手机在线观看| 国产三级影视精品| 五月丁香激情综合免费视频| 黄色wwA级免费毛片| 一级片电影在线免费观看| 偷偷亚洲高清日韩| 久久久天天天综合网精品网站| 国产欧美日韩懂色| 亚洲熟女AⅤ国产一区| 欧美午夜免费一区二区| 亚洲清纯国产嫩草| 尤物av无码色av无码麻豆| 黄片一级欧美日韩特级精品| 性夜影院爽黄A爽免费看| 免费视频一区二区三区亚洲| 国产成人v?亚洲电影| 最新国产精品电影入口| 亚洲精品国产日本| 久久久久成人精品亚洲国产?∨综合| 波多野结衣啪啪| 欧美三级在线播放线观看免| 精品久久综合1区2区3区激情| 精品国产在天天线在线| 亚洲婷婷综合色香五月| 无码专区动漫精品一区二区| 成人精品在线观看等最新内容!| 免费一级a一片久久精| 日韩人妻激情制服丝袜另类| 惠民福利国产无遮挡又黄又爽动态图| 中文字幕第二頁精品一區| 人妻AⅤ在线精品| 国产精品一在线观看| 中文字幕第二頁精品一區| 欧美日韩一级片子| 国产成人小视频在线观看| 国产精品一区二区在线天堂| 热播综艺动漫av永久网站| 国产日产欧产精品精品AI| 玖玖+99+久久免费视频| BBBB一级GOGOGO乱色尤物无遮挡| 国产精品嫩草国产精品嫩草| 香蕉视频 国产一区| 欧美三级视频一区二区三区| 午夜伦理国产热无码| 国产成人无码久久久久毛片| 草莓视频深夜的在线直播平台| 偷欧洲亚洲另类图片AV天堂| 久久久av午夜一区| 国产又粗又猛又爽又黄三d卡通片 亚洲精品三区四区成人少 | 亚洲欧洲日韩国产综合| 国产免费观看久久久| 极品嫩模高潮叫床视频| 自拍偷拍 亚洲无码 欧洲无码 | 无套内射无毛少妇| 国产精品无码aⅤ| 思思久久国产精品视频手机版| 國產精品一區二區三區久久| 少妇缴情αv一区二区三区| 久久中文字幕人妻熟?V女| 中文av在线播放网站| 欧美日韩亚洲第一区在线无弹窗| 正在播放偷拍熟女| 亚洲中文无码乱人伦在线| 日韩av免费人妻在线 | 久久人与动人物A级毛片效| 无码精品国产dvd在线观看9久| 成色版抖音91免费| 一级a全程免费看| 55夜色66夜色国产亚洲一| 日本少妇高潮喷水gif| 欧美亚洲成人精品一区二区三区| 久久精品国产亚洲aⅤ麻豆甜| 免费无码高潮喷水AⅤ片在线| 亚洲欧美国产素人在线播放 | 高清久久免费综合| 久久99久久精品国产99热| 国产精品福利一区二区无码| 国产高清视频在线观看91| 亚洲成色在线影院| 中文字幕日韩精品涩涩视频| 久久精品中文无码| 最新超碰97久久人人超碰国产精品| 一级a爱国产香蕉精品视频| 五月天婷五月天综合网| 日韩亚洲中文字幕视频| 91人妻免费精品无码视频| 久久777欧美日韩成人高清| 欧美午夜一区二区福利视频| 红桃秘无码一线二线三| 久久国产精品日本韩国| 东京热无码中文人妻| 精品亚洲国产成av人片传媒| 97社区精品视频在线观看| 亚洲a色91精品免费看| 欧美a欧美乱码一二三四区| 欧美二区欧美一区| 国产高清视频在线观看91| 国产精品69亚洲大尺度视频| 欧美?片在线视频播放器| 日本黄色高清网站| 草莓视频APP下载黄色安装| 亚洲AV无码国产精品久久一不卡| 打扑克牌又疼又叫直播软件| 亚洲一区二区另类视频| 一级毛片亚洲天堂av| 亚洲av无码中文渔区二区三区| 日韩中文字幕有码在线| 日韩另类精品无码成人手机视频| 亚洲午夜一区在线| 天堂AV成人无码久久精品| 国产午夜福利不卡在线| 青青青国产依人在在线观看高| 丁香婷婷激情综合| 国产91久久精品一区二区三区字幕 | 国产做A爰片毛片A片美国| 国产手机在线小视频免费观看| 久久综合人妻精品| 亚洲婷婷综合色香五月| 免费天堂网站毛片| 中文字幕久久综合天天 | 久久精品中文无码| 欧美自拍偷拍图区另类人妻| 激情电影三级片毛片久久| 久久精品国产亚洲精品2020| 欧美自拍偷拍图区另类人妻| 无人区乱码1区2区3区MV| 亚洲成人A∨无码综合久久| av一区二区三区四区在线观看 | 国产精品自产在线播放| 神马午夜免费视频| 国产成人精品日本亚洲77上位| 免费很黄很色刺激小说| 欧美激情精品久久久久久免费| 日本19禁啪啪无遮挡大胸免费| 古装七仙女思春三级bd过看网| 国产一级a级无码免费| 国产成人一二三区| 国产高清无码黄片亚洲一级黄片| 日韩中文字幕有码在线| 黄色大片日韩| 午夜福利啪啪片一区二区| 成人一区二区三区中文字幕| 精品国产乱码久久久久久蜜臂| 一区二区精品人妻a综合网| 九九精品手机视频在线观看| 亚洲国产台湾AV片在线| 嫩草文化传媒有限公司的成立时间| 日本十八禁无遮掩视频| ?v资源一区二区三区| 91传媒国产午夜福利一区| 日韓在線視頻不卡| 在线日本国产成人免费精品| 香蕉视频APP下载安装| 久久人与动人物A级毛片效| 日韩中文字幕有码在线 | 日本免费无码XXXXX视频| 浪货趴办公桌~H揉秘书视频| 亚洲日韩激情一区二区| 亚洲无码一级片| 好男人视频免费观看视频2019| 国产一区二区视频免费播放| 丰满美女一级毛片在线播放| 精品欧美在线观看国产| 日日添日日摸| 日本精品视频网站| 日韩欧美三级一区二区在线| 国产精品毛片在线完整版SAB | 爽吗你个小浪货叫大声点| 日韩黄色免费电影| 一区二区三区av免费播放| 国产成人一二三区| 最近中文字幕视频在线MV完整版| 午夜片少妇无码区在线观看app| 性动漫无遮挡在线观看| 黄片高清无码免费看| 国产日韩日韩av在线播放| 丝袜 亚洲 日韩 另类| 精品国产高清在线拍| 日本免费看视频| 一级欧洲+国产| 自拍高清日本国产| 国产2021精品短视频| 久久久999精品操波| 国产日本自卫在线不卡| 亚洲欧美综合在线中文| 惠民福利国产精品无码久久A v嫩草| 要爽死国产一区在线播放| a欧美日韩高清在线播放不卡| 日本护士18一19高潮| 小宝探花国产精品一区二区| 国产高清一级片| 欧美乱妇高清免费96欧美乱妇高清 | 超碰97人人模人人爽| 亚洲国产精品自产拍无码不卡| 亚洲色欲色欱www在线| 91久久国产精品综合| china同性基友Gay勾外卖| 成人啪一区二区免费国产| 日韩女模自拍视频播放器 | 亚洲vs欧洲vs美洲无吗| 日韩在线观看视频中文字幕| 亚洲老熟女熟妇精品| 久久久久无码精品国产AV茄子| 欧美三级毛片免费视频观看| 国产三级网站免费观看| 人妻一区二区三区日本| 日韩一级黄色片在线观看视频| 亚洲成在人网站天堂大块网| 文中字幕一区二区三区视频播放99久久国产热无码精品免费 | 亚洲av中文无码乱人| 两性色午夜免费视频| 日韩美女一区二区三区四区| 国产亚洲美女精品久久999| 伊人狠狠操性爱网| 亚洲成人专区在线免费观看| 欧美囗交a级视频在线观看| 日韩av免费人妻在线| 国产一区二区的毛片| 米奇精品一区二区三区在线观看| 日韩丝袜美腿在线视频| h视频在线观看免费网站| 国产三级免费不卡一区二区| 国产大量自拍视频| 国产一区二区三区在线2024| 短篇肉耽(h)男男| 一级片免费在线看| 玖玖爱在线视频精品79| 久久精品中文字幕极品| 国产日韩在线欧美一区 | 外国一级少妇免费大片| 亚洲有码Av一区二区三区| 特黄一级久久久毛片| 歐美國產日韓一區| 好男人视频免费观看视频2019| 热热热999视频网站| 夜色成人免费观看| 369看片天堂你懂的电影| 色婷婷五月亚洲一区二区| 羞羞视频导航国语在线播放| 精品无码av毛片一区二区| 成人精品视频久久久久久| 日韓在線視頻不卡| 久久精品亚洲熟妇少妇任你躁| 无码中文字最加勒比| 亚洲中文字幕无码a∨网址| 日本19禁啪啪无遮挡大胸免费| 丞相闺房床榻粗喘h娇女| 国产午夜理论不卡在线观看| 无码少妇免费影视| 惠民福利亚洲AV成人无码网天堂| 理伦片最新欧美一区二区| 日韩免费一区二区三区中文字幕| 惠民福利国产精品无码久久A v嫩草| 強姦亂倫人妻凌虐视频| 国内国外内射免费视频| 亚洲精品视频一区| 人人五级片在线播放| 懂色av懂色av粉嫩av分享吧| 日韩福利超碰69| 亚洲AV无限制福利在线观看| 国产剧情无码在线观看| 國產中文亞洲日韓歐美| 亚洲中文字幕无码a∨网址| 亚洲国产精品无码影视| 国产狂喷潮在线观看视频应用| 日本黄色高清网站| 日韩午夜福利小视频| 国产狂喷潮视频在线播放| 色呦呦精品一区| 性动漫无遮挡在线观看| 日韩精品久久理论片| 撕开丝袜直顶而入在线视频| 天堂亚洲性爱在线播放| 久久高潮美国欧美嘟嘟丰满社区| 成人精品在线一区二区三区| 国产精品黄片亚洲性爱在线| 少妇又潮又喷又爽无码| 欧美人与禽交zozo| 在线精品国产一区免费| 成人黄色一区二区| 洲亚洲无码视频| 偷偷亚洲高清日韩| 久久无码精品一区二区三区不卡 | 成人一区二区三区中文字幕| 国产精品黄片永久观看| 国产?精品人成视频免费| 国产磁力链接在线播放| 热热热999视频网站| 波多野结衣强d在线视频中文| 青青草最新版在线视频| 不卡无码人妻制服丝袜专区| 亚洲成在人的天堂网址| 免费的成年私人影院网站| 高清久久免费综合| 久久永久免费中文字幕| 人妻无码AV一区二区三区精品 | 成人精品在线一区二区三区| a级国产片AV观看| 777米奇色狠狠狠888影视| 日本一区二区三区四区五区| 国产稀缺真实呦乱在线| av黄色在线免费| 欧美日韩亚洲国产二区| 久久五月天偷拍视频| 午夜福利视频合集1000| 丝袜精品视频一区二区三区四区| 我 要看免费毛片成人| 亚洲色图第三页| 国产精品自产在线播放| 免费成年人视频大全| 免费裸体视频网站双女| 先锋影音资源 日韩女优| 部长的夫人的味道中字| 热播综艺动漫av永久网站 | 成人在线517视频| 亚洲国产精品自产拍无码不卡| 草莓视频APP下载链接| 一级黄色毛片全部| 亚洲偷自偷白图片蜜芽tv| 香蕉成人av网站在线观看| 欧美日韩成人免费播放视频一区| 欧美日韩国产码高清二区| 97香蕉免费人妻碰碰碰| 在线日韩 中文字幕| 亚洲?v影片一区二区免费人妻人人干视频| 被中出高潮一区二区三区| 久久久精品欧美中文一区二区| 久久人妻夜夜做天天爽v片| 国产成人亚洲精品播放器下载| 亚洲αv无码αv日韩αv网站| 91精品欧美一区二区黄| 亚洲第一A在线网站| 丝袜精品视频一区二区三区四区| 亚洲无码av网址| 自拍高清日本国产| 女女热在线精品视频| 欧美日本在线旡码| 午夜亚洲AⅤ无码高潮片苍井空| 国产一区欧洲二区精品三区| 亚洲AV无码专区牛牛影视 | 日韩在线少妇精品| 王乙让白洁一晚舒服了| 国产精品一区在线?pp| 野花高清在线观看视频官网免费| 国产精品色网免费看| 国产激情做a爱黄色一级一级片| 欧美二区欧美一区| 欧美精品在线看网站| 无码欧美毛片一区二区三| 国产精偷伦视频免费观看| 欧美日韩偷拍破处片| 日本少妇高潮喷水gif| 他激烈地吸着我的奶头视频| 為您推薦精品国产日本欧美亚洲成品精品 | 妺妺窝人体色www看美女人体| 大稥焦伊人狼人视频資源免費看| av一区二区三区四区在线观看| 亚洲色欲AV无码区二区三| 首页国产精品果冻视频| 亚洲无码被操视频| 欧美二区欧美一区| 久久久国产精品91| 欧美黑人精品久久久久| 精品人妻少妇一区二区三| 国产精品日韩精品在线播放| 九九成人精品二区| 香蕉亚洲精品在线观看| 中文字幕第一页人妻在线视频| 91精品国产免费久久久蜜月| a级毛片免费观看片| 水蜜桃视频免费观看| 手机大片福利日韩| 伊人久久亚洲综合AV| av一区二区三区四区在线观看| 中國女人內謝69xxxx| 国产成人秘久久| 思思久久国产精品视频手机版| 私人影院无码专区| 成人影院在线观看不卡| 少妇人妻无码专用视频| 91白丝 在线观看| 午夜精品一区二区三区宅男av | 亚洲日韩欧美另类蜜桃在线观看| 牛牛在线精彩视频国产| 无套内射无毛少妇| 日韩欧美激情a∨一区二区| 少妇下面浓毛的又活| 久久777欧美日韩成人高清| 小宝探花国产精品一区二区| 小浪货腿张开水好多啊视频| 亚洲永久精品福利视频导航 | 久久精品国产熟女精品| 出轨同学会中文字幕| 国产精品自产在线播放| 亚洲春色中文字幕我是洋洋| 91大神一区二区韩国日本欧美| 香港三级台湾三级在线播放| 矮子影视99久久精品播放| 国产综合欧洲在线播放| 天黑黑影院在线观看| 99er精品视频在线观看| 久久高清一本无码不卡不卡| 女人天堂亚洲AⅤ在线观看| 国产成人精品高清国产三级| 国产黄色羞羞视频91| 日韩中文字幕在线影院| 亚洲精品成人a在线观看| 年轻富婆私密推油到高潮| 在线看片网站国产日韩欧美| 久在线中文字幕在线观看| 91 丨PORNY丨在线中文| 日本精品视频网站| 久久香蕉国产亚洲αv麻豆| 天天上传碰碰噜噜噜一区二区三区 | 先锋影音资源 日韩女优| 国产亚洲精选美女久久久久| 国产精品三级片在线看| 久久久久成人精品亚洲国产?∨综合| 丁香六月纪婷婷激情综合| 锵锵锵锵锵免费下载| 人妻被骗免费按摩12| 日韩一码二码在线观看| 久久影视这里只有精品国产擁有海量影視資源 | 第一国产福利影院动态| 午夜一区二区亚洲不卡A片| 天堂资源8在线资源| 色窝窝无码一区二区三区三州 | 玖玖爱色网视频免费观看69| 九草视频在线免费观看| 成人精品老熟女一区二区 | 性色AⅤ在线观看免费| 亚洲三级人妻一区| 欧美精产视频在线| 99国产高清免费视频观看| 韩国一级毛片不卡片免费观看| 中文字日产幕乱五区久久夜色精品国产欧美乱 | 国产精品一国产精品最新章节| 偷偷做久久久久网站| 无码人妻中出| 精品长泽梓在线播放视频| 华人黄网站大全| 5g影院5g天天爽永久免费影院| 欧美亚洲成年人免费| 777米奇色狠狠狠888影视| 青青一区二区免费看| 日韩人妻激情制服丝袜另类| 劲爆欧美高清无码a片| 蜜桃视频app色版网站| 欧美人妻WWW无码国产黄漫| 嘿嘿射久草日韩视频| 亚洲一级大片免费| 欧美激情五月天综合网五月| 精品国内自产拍在线播放观看| 久久超级免费视频| 性色午夜五月视频在线观看| 太紧太爽太黄太粗太大| 中文字幕588页在线| (愛妃)青青草国产精品久久久久| 免费无码又爽又刺激精品视频| 三级aa级三级片午夜在线播放| 一区二区三区毛片福利电影 | 无人区乱码1区2区3区MV| 九九全国免费视频| 香蕉eeww99国产精选播放| 亚洲天然素人无码专区121314| 日韩欧美精品在线一| 亚洲香蕉久久一区二区三区四区| 美女张开腿黄网站免费下载| 国产磁力链接在线播放| 免费国产一区二区三区看片| ?愛妃視頻?无码人妻精品一区二区 | 亚洲美女又黄又硬的视频| 久久久久久国产SUV一级a毛一级a看免费视频精品 | 日韩亚洲中文字幕视频| 顶级国产av网址| 国产精品亚洲片在线v?| 91精品国产欧美日韩| 亚洲精品成人a在线观看| 男生女生一起差差的app下载安装安卓| 天堂?ⅴ日韩欧美国产| 影视免费中文无码| 久久午夜福利大片| 尤物精品视频影院91日韩| 成人一区二免费视频| 亚洲成无码综合网| 亚洲?v无码成人精品国产| 国产自慰免费在线看 | 欧美一级国产AAA大片| 香蕉视频网页版在线观看| 免费无码真人祼交视频| 亚洲国产av一二三区| 先锋影音资源 日韩女优| (凹凸視頻)亚洲国产美女久久久久 | 久久国产一区二区日韩?v| 最新在线观看视频国产91| 一级毛片电影免费在线观看| 成熟丰满熟妇高潮XXXXX直播| 国产精品国产精品国产专区蜜臀Ah| 女人18毛片久久鬼色| 国语精品第一区自产拍| 高清无码二区不卡| 草莓视频安卓视频在线观看| 国产美女a做受大片免费| 曰韩无码精品免费视频一区二区 | 少妇无码精品一区二区三区| 蜜臀av色欲av免费网站| 亚洲大尺度无码av| 国产精品黄片亚洲性片| 精品国产福利第一区二区三| 搡老女人老妇女老太婆在视频| 特黄一级久久久毛片| 在线观看免费av不卡高清| 免费日韩电影在线观看| 国产成人精品综合在线观看| 琪琪see色原网一区二区| 午夜污性色一区二区三区| av日韩免费在线观看| 欧美日韩www.在线观看视频| 久热热女免费视频中文字幕| 久久伊人精品欧美日韩精品| 成人免费毛片免费观看| 久久久AV波多野一区二区| 国产婷婷综合在线观看| 成人一区二免费视频| 在线好屌妞国产精品| 精品国产免费无码| 国产在线中文字幕| 天天做夜夜操夜夜爽| a欧美日韩高清在线播放不卡| 久久五月天偷拍视频| 美女爆乳裸体WWW免费网站| 中文av在线播放网站| 欧美三级视频一区二区三区 | 久久久噜噜噜久久网| 国产精品午夜无码AⅤ精| 麻豆果冻传媒精品国产免费 | 亚洲综合不卡一区| 第一国产福利影院动态| 特级特黄特黄日本大片 | 久久久一区二区三区国产| 人妻丝袜中出中文字幕| 亚洲中文字幕无码久久1| 国产精品亚洲片在线v?| AV资源在线在线免费观看三级无码片| 為您推薦精品国产日本欧美亚洲成品精品 | 国产色图在线视频| 欧美日韩偷拍破处片| 蜜桃视频app色版网站| 五级黄高潮片90分钟视频五级| 亚洲v?中文字幕在线观看| 国产精品亚洲一级第三区| 亚洲伊人色欲综合网久久| 手机观看美日韩AV无吗| 久久精品国产99久久72部| 亚洲欧美日韩综合影院完整版| 国产国产精品区美女 CB52| 日韩激情综合网| 欧美一欧美一二区| 国产av电影一区二区三区| 国产毛片在线看互動交流| 96精品视频免费观看| 午夜在线中文字幕一区二区| 福利欧美日韩精品国产一区在线| 亚洲国产欧美日韩国产| 亚洲天天做日日做天天射| 真实国产欧美自拍| 少妇AV一区二区三区无码久久| 国产亚洲中文日韩欧美综| 嗯~啊~别揉我奶头~视频| 久久精品国产99久久香蕉| 久久久精品久久久久久久久久久| 日本无码中文字幕乱码aⅴ的特色| 午夜亚洲AⅤ无码高潮片苍井空 | 欧洲熟妇色xxxxx欧美老妇| 国产特黄1级毛片| 中文字幕在线永久在线永久| 久久裸体国语精品国产91| 国产高清不卡一二三区#| 四虎黄色高清免费A级网站| 久久只有这里有精品热久久| 理论片香港在线观看免费| 丁香六月纪婷婷激情综合| 午夜福利永久在线视频| 免费成人黄色| 婷婷五月在线观看| 在线视频亚洲欧美精品| 美女高潮流白浆娇喘免费网站| 亚洲成人第一电影| 欧美午夜看片影院| 红桃秘无码一线二线三| 亚洲av手机性情在线| 日本强伦片中文字幕免费看| 国产女人18毛片水真多成人如厕| 亚洲日韩欧美明星在线观看| 搡老女人老妇女老太婆在视频| 中国妞免费tubesex| 中文字幕亚洲字幕一区| 国产视频91久久精品| 日韩A级毛欧美1级a大片| 欧美日韩 制服丝袜 先锋在线| 欧美综合网亚洲综合网| 九色91国偷自产中文字幕| 亚洲人色婷婷成人网| 國產精品視頻國產永久視頻| H无码精品动漫在线观看免费下载| 性动漫无遮挡在线观看免费| 国产精品亚洲一区二区不卡| 日韩精品妓女在线观看视频免费 | 精品明星系列无码专区| 国产精品白浆熟女| 一级片免费在线看| 國產絲襪美女一區二區三區 | 亚洲国产一区二区三区五月花婷婷 | 国产古代三级在线播放| 奇米影视7777久久精品亚洲无线码一区二区三区 | 秘 羞羞视频免费网站欧美| 亚洲欧美日韩综合影院完整版| 日本XXXX丰满超清HD| 欧美人人超人人视频| 欧美一级看片a免费观看| 丁香婷婷激情综合| 國產一區二區三區內射高清| 日韩无码av一级毛片网站| 国产精品无码免费久久久动漫| 在线观看成人理论片免费| 精品一区二区视频在线观看中文字幕| 99久久免費國產精品| 午夜福利永久在线视频| 国产精品视频色尤物yw| 边做边爱免费完整版在线观看视频| 在线观看免费av不卡高清| 欧美日韩亚洲国产第一| 欧美日韩久久精品一区二区| 日本十八禁无遮掩视频| 色婷婷无码视频在线观看| 久久青草精品38囯产| 污污污网站免费在线观看| 国产精品99久久亚洲| 奇米影视777在线| 激情 欧美 综合| 欧美国产调教一区二区| 真人毛片视频| 色色丁香开心一区二区开心播播| 青青草原国产无码| 最近最新的中文字幕国语在线| 四虎国产精品无码免费看| 午夜福利欧美国产一区二区| h0930无码一区二区三区| 国产激情一区二区三区成人AV| 在线中文字幕无码痴汉电车| 女同三级bd高清在线播放| 在线免费看污| 91网址在线观看| 99久久久无码国产精免费| 一区二区三区在线观看免费| 免费视频在线观看五丁香| 尤物av无码色av无码麻豆| 成年免费级毛片免费看丶| 惠民福利亚洲AV成人无码网天堂 | 精品日本一区二区免费A∨| 日韩不卡视频一区中文字幕| 一级做a爰黑人又硬又粗| 中文字幕在线高清男人的天堂| gogogo高清完整版| 国产高清在线精品一区观看| 亚洲a无码专区在线观看春色| 五级黄高潮片90分钟视频五级| 久久精品国产亚洲A∨麻豆蜜芽| 国产真实迷j网站在线观看| 国产日韩在线观看香蕉一区| 国产做爰视频免费直播| 一级不卡免费观看毛片| 很黄的爱爱高潮小说的软件| 国模精品视频一区二区三区| 亚洲av色一区二区三区| 午夜精品免费视频一区二区三区| ?愛妃視頻?无码人妻精品一区二区 | 國產av无码一区二区| 好吊日视频在线| 免费一区二区中文字幕| 伊人久久大香线蕉福利| 91久久国产精品综合| 国产精品v欧美精品久久国产精品| 日本免费三级在线观看| 国产高清不卡一二三区#| 亚洲不卡人妻在线| 野花视频在线观看免费高清| 久久超级免费视频| 国产成人精品无码区在线观看| 国产久精品久久久久观看| 国产成人小视频在线观看| 男人天堂网在线看| 国产特黄1级毛片| 欧美高清成人| 影音先锋主播另类| 久草日韩精品暖暖的在线视频| 天堂在线www天堂中文在线| 免费a级作爱片免费观看美国| 午夜96视频在线| 老子影院午夜久久亚洲| 国产自在线拍视频播放| 国产精品极品美女自在线观看免费| 亚瑟在线观看无码av| 六月婷婷亚洲激情图片| 国产午夜激情久久| 国产精品成人?v在线观看| 97精产国品久久蜜桃臀| 国产一二三区韩国女主播| 日韩女主播福利视频| 欧美日韩中文字幕国内自拍| 丝袜美腿一区二区三区| 人妻偷人精品一区二区精品无码毛片| 久久午夜福利大片 | 久久久国产高清无码中文字幕| 日韩美女精品免费视频| 成人A级毛片无码免费| 精品午夜福利影院| 欧美日韩激情在线一区二区三区 | 国产精品福利一区二区无码| 欧美图色12p图片区| 91久久国产精品综合| 亚洲伦理久久一天堂| 亚洲日韩欧美性视频| 亚洲 精选 在线| 久久精品费精品国产| china同性基友Gay勾外卖| 久久午夜福利大片 | 国产三级色网网站| 久久热在线精品店99re| 免费视频在线观看五丁香| 亚洲AV无码国产精品久久一不卡 | 欧洲精品一级毛片免费视频| ?愛妃視頻?无码人妻精品一区二区| 白云国产在线一区二区| 日韩欧美一级大片中文字幕| 成人免费日韩精品毛片| 性夜影院爽黄A爽免费看| 午夜福利永久在线视频| 中文字幕588页在线| 日韩欧美精品在线一| 人摸人碰人人澡| 國產中文亞洲日韓歐美| 动漫精品无码一区二区| 网国产精品视频| 91桃色成人污网站在线看| 99久久久无码国产精免费| 欧美日韩精品一本二本在线| 欧美精产视频在线| 欧洲国产在线视频| 99精品国产99久久久久久| 人妻无码中文字幕AV不卡| 国产欧美一区一区精品性色| 成年免费级毛片免费看丶| 欧美日韩一级大片免费| 国产精品自拍av免费一区| 91精品国产91久久久无码医生| 午夜在线看片无码| 欧美日韩成人不卡视频| 国产一区二区三区肃南♀| 亚洲av成人无码人在线观看堂| 伊人久久大香线蕉福利| 九九久久精品國產免費看小說| 欧美人妻WWW无码国产黄漫| 国产黄色毛片频道| 成年人免费电影在线观看| 免费国产动漫美女被靠的视频| 久久超碰国产精品一区二区| 亚洲天天做日日做天天射| 国产精品自在自线亚洲| 啊快进去好深用力啊使劲岳| 亚洲а久久网无码| 四虎无码在线精品一区二区| 亚洲国产av一二三区| 一级a全程免费看| 久久久天天天综合网精品网站| 国产日韩在线欧美一区 | 亚洲AV无码国产成人久久| AV三级高清在线观看| 亚洲无码不卡永久免费| 久久精品中文无码| 野花日本韩国免费观看大全6| 精品一区二区国产91色| 欧美三级在线播放线观看免| 一级毛片电影免费在线观看| 热无码热综合手机版AV天堂| 无码小电影免费手机在线观看| 国产一区 久久久| 亚洲中文字幕乱码少妇饥渴| 久久露脸国产精品ww| 国产真实迷j网站在线观看| 亚洲熟女AⅤ国产一区| 天天影视在线亚洲综合网| 自偷自偷国产一级| 永久免费看a片无码网站四虎| 人妻夜夜爽天天爽一区資源免費看 | 亚洲人色婷婷成人网| 丝袜美腿亚洲综合洲| 性色午夜五月视频在线观看| 欧美日本一本线播放| 精品国产一区国产二区国产三区| 五月天丁香婷婷一区二区三区| 日韩欧美成人免费网站观看| 亚洲乱亚洲乱无码无码专区| 亚洲人成网站7777在线| 精精国产XXXX视频在线| 一级片电影在线免费观看| 色呦呦精品一区| 日韩精品有码在线中文字幕| 最新亚洲欧美在线人成| 一级不卡免费观看毛片| 亚洲日本韩国一区| 四级毛片在线播放| 美女主播一区二区三区| 色欲aⅴ一区二区三区人妻| 国产深喉口爆一区二区三区| 亚洲三级中文无码| 狠狠色丁香婷婷综合尤物还会玩转热点 | 国产大尺度福利小视频在线观看| 女人高潮抽搐喷水视频免费看| 班花在教室伦流澡到高潮视频| 欧美日韩不卡三区中文字| 香蕉eeww99国产精选播放| 歐美日韓精品一區二區三區高清視頻| 火坑上暴伦小丹| 无码专区动漫精品一区二区| 98精品国产一区二区| 日韩欧美国产成人手机在线| 免费的日本黄页网站| 五月天a 中文字幕| 男生女生一起差差的app下载安装安卓| 久久99爱国产精品| 欧美一区国产一区| 一女多男疯狂做爰视频| 一区二区三区国产视频播放区| 亚洲不卡人妻在线| yjizz最新网站视频观看| 日本免费三级在线观看| 国产51爱剪辑在线观看| 亚洲?v无码成人精品国产| 动漫丰满国产影院熟妞制服| 国产牲爱无码视频| 午夜国产精品福利一区| 欧美成人激情视频一区二区 | 欧美日韩精品久久久久不卡| 日韩一区二区超清视频| 亚洲尤物av一区| 最新欧美zoozzooz视频| 中日韩AV大全在线观看| 欧亚无码性无码专区| (凹凸視頻)在线亚洲中文精品第1页 | 国产精品黄色在线播放| 亚洲国产成人无码网站大全 | av无码国产精品久久| av在线男人的天堂观看免费| 免费永久在线毛片| 国产99在线一区二区99| caoporn超碰在线观看| 国产精品国产三级区别第一集| 成人毛片免费全部播放 | 国产欧美激情高清在线| 国产又大又粗又长| 国产亚洲精αα在线观看不卡| 九九久久精品国产免费看| 国产精品自产在线播放| 亚洲欧美中文字幕在| 污18禁污色黄网站免费观看一区二区 | 亚洲精品棕合欧美一区二区三区| 影音先锋男人资源在线网站| 91短视频版高清在线下载| 日韩久久免费毛片| 久久综合人妻精品| 国产午夜精品理论片a级小说| 欧美黑人乱大交视频| 高潮久久久久久久AV免费| 久久6精品免费视频| 成人免费久久精品国产片久久影院| 久久99精品国产综合毛片| a级片在线观看| 久久国产香蕉视频| 社长秘书汗水中文字幕| 免费无码又爽又刺激精品视频| 亚洲 欧美 一区国产| 日本护士18一19高潮| 99精品这里只有精品17| 亚洲欧美国产素人在线播放| 裸体视频在线看无码| 大象国精产品一品二品在线| 国产av电影一区二区三区| 好色先生下载在线| 黄色一级毛卡视频网站| 中文字字幕在线成人?V电影| 红杏亚洲影院一区二| 国产亚洲中文日韩欧美综| 精品毛片网站在线观看| 亚洲婷婷六月丁香| 青娱乐久久国产bbs| 草莓视频无限看污版在线看| 无码按摩一区二区中文字幕 | 精品不卡一区中文字幕| 成人A级毛片无码免费| 日韩在线精品性色AV尤物| 永久免费无码视频一区二区三区| 精品视频一区二区三区2018| 尤物网站在线观看的直播内容| 99er精品视频在线观看| 国产日韩欧美18禁在线| 久久久久丫精品国产亚洲av| 五月婷婷在线激情免费视频| 免费国产一区二区三区看片 | 一区二区三区大国产片| 欧美亚洲日韩少妇高潮白浆| 长篇人妻丝袜全文目录| 国产无码一区二区综合| 亚洲无码不卡永久免费| 欧美老熟妇乱子| 亚洲av无码成人精品网站久久久 | 扒开女人毛茸茸黑森林视频| 国严欧美色一区二区三区| 王乙让白洁一晚舒服了| 四虎黄色高清免费A级网站| 国产精品极品美女自在线观看免费 | 特黄欧美三级在线完整版免费| 日本在线播放第一区| 爆乳一区二区| 国产福利农村毛片视频6| 99精品国产兔费观看| 中文av在线播放网站| 久久永久免费中文字幕 | 午夜亚洲AⅤ无码高潮片苍井空 | 亚洲成色在线影院| 杨幂精品视频在线免费观看| 国产一区二区三区中文在| 密臀一区中文字幕在线| 免费无码又爽又刺激精品视频| 欧美日韩一区二区啪啪啪| 成人免费男人的天堂麻豆| 国产电影久久| 在线一本到无码av| 欧美午夜一区二区福利视频| 老司机视频成人在线一区二区 | 曰本女同互慰在线| 牛牛在线精彩视频国产 | 2017天天爽夜夜爽精品视频| 9l蝌蚪PORNY中文自拍| 青青合久久久久综合网站| 无码粉嫩小泬抽搐白浆免费| 分享欧美精品一区二区视频在线播放的心得 | 极品少妇被猛的白将直流草莓| 亚洲综合在线高清不卡| 亚洲捆绑调教 一区 二区| 国产一区二区的毛片| 自拍欧美中文日本| 高清免费无码av电澋影| 熟女中文字幕免费| 欧美黑人乱大交视频| 欧美精品乱码久久久久久按摩| 免费观看黄网站| 9l蝌蚪PORNY中文自拍| 亚洲男人的天堂最新网站| 精品视频一区二区三区2018| 中文字日产幕天堂1区| 蜜桃Av噜噜一区二区三区网址| 人摸人碰人人澡| 欧美精品亚洲高清一区| 蜜桃视频app色版网站| 亚洲av免费网址在线观看| 波多野结衣高清久久一区| 国产69精品久久久久9999无遮挡| 亞洲天天在線日亞洲洲精| 人妻丝袜中出中文字幕| 91精品欧美一区二区黄| 亚洲av无码成人精品网站久久久| 糖心vlogapp官网免费| 大菠萝福建导航导入网站章节| 97久久成人国产精品免费| 狼友无码一区二区二三区∝| 人成免费在线视频| 一级毛片av在线| 久久久久中文字幕电影| 国产91 在线播放软件| 精品国产欧美日韩视频| 色综合伊人丁香五月婷婷综合缴情| 黄片在线免费在线| 国产尺码和欧洲尺码表对照一区二区三区中文字幕 | 大香蕉在线一AV在线| 丝袜日韩欧美综合 | 亚洲精品日韩片无码中文字| 日本在线播放第一区| 亚洲av无码成人精品网站久久久| 亚洲乱理伦片在线观看中字| 国产尺码和欧洲尺码表对照一区二区三区中文字幕 | 免费永久在线毛片| 一区二区三区精品蜜桃| xxxx免费视频在线播放| 2017天天爽夜夜爽精品视频| 国产国产精品区美女 CB52| 国产狂喷潮在线观看视频应用| V永久综合网站| 久久久久丫精品国产亚洲av| va亚洲v专区在线| 欧美综合网亚洲综合网| 午夜影视成人av网| 波多野结衣中文字幕在线| 成人三级精品视频在线观看| 最新超碰97久久人人超碰国产精品| 少妇探花一区二区| 精品人妻大屁股白浆无码p| 黃色A片美女人20岁| 亚洲精品导航视频| 18禁男女爽爽爽午夜网站免费| 精品国产人成亚洲区中文久久 | 久久久精品网站无码| 了解最新黄色草逼视频| 成人片在线免费看| 亚洲经典av一区二区三区| 国产精品视频一区二区三区乱码| 老公当我面干了闺蜜| 国产精品尤物脚交脚y| 在线免费视频网站| 午夜性刺激片免费观看成| 黄色一级毛卡视频网站| 在线观看你懂的国产网址| 亚洲精品无码永久观看| 久久久久欧产日产国产精品| 日韩欧美内射国产| 欧美特黄高清免费大片| 国产精品成人免费视频| 最近日本免费在线视频| 国产稀缺真实呦乱在线| 人妻无码α∨中文字幕久久| 国产白浆精品永久网站| 免费女人18毛片视| 久久超级免费视频| baoyu永久黄网站| 暧暧视频在线观看| 亚洲第一区在线观看| 三级少妇精品久久| 国产成人精品日本亚洲77上位| 熟女少妇中文字幕久久| 久久99热精品影院| 人妻AⅤ在线精品| 日韩在线观看视频中文字幕| 久久久久国产精品嫩草影院国产欧美一区 | 岛国片欧美一级毛| 无码专区动漫精品一区二区| 牛牛在线精品视频国内免费| 综合久久精品| 亚洲日韩欧洲无码A∨夜夜爽| 99精品国产最新观看网址| 8AV国产精品爽爽A在线观看| 少妇探花一区二区| 精品婷婷在线观看| 国产亚洲免费播放片| 黄色一级毛卡视频网站| 国产一区二区视频免费播放| 97久久精品无码一区二区欧| 韩国理论电影午夜三级火豆网| 一级a全程免费看| 日韩另类精品无码成人手机视频| 中文字幕日韩欧美精品| 国产欧美黑人一区二区三区四区| 免费看高清片国产剧情| 自拍偷拍 亚洲无码 欧洲无码| 毛片可以直接看的| 一区二区国产精品精华| 日本大片免费一级| 日韩高清在线观看免费| 尤物精品视频影院91日韩| 欧美丰满美乳XXⅩ高潮| 激婷婷中文字幕久久综合| 国产乡下三级全黄三级| 国产AⅤ无码一二三区| 啦啦啦视频在线观看免费中文www| 黑人精品视频专区在线播放| 在线A级毛片无码免| 亚洲av激情码国产一区| 日韩av免费人妻在线 | 丝袜美腿亚洲综合洲| 动漫黄网站免费永久在线观看 | 大香线蕉免费观看视频75| 亚洲色资源站资源网| 免费无码高潮喷水AⅤ片在线| 久久99热精品影院| 班花在教室伦流澡到高潮视频| 制服jk白丝h无内视频| 亚洲永久精品免www52zcm| 欧美又大粗又爽又黄大片视频 | 日韩一区二区精品播放| 99久久免费国内精品| 自偷自偷国产一级| 国产极品视频一区二区| 亚洲无遮挡一级黄片| 亚洲超碰97资源在线播放| 国产成人精品无码区在线观看| 久久久精品久久久久久久久久久| 欧美精品在线看网站| 国产激情作爱视频免观看| 老色鬼久久亚洲一区二区| a毛片不卡免费看片| 国产精品毛片久久久久久久av| 青柠视频91麻豆| 国产网红精品一区二区在线观看| 国产在线精品一区二区三区不卡广| 99国产高清免费视频观看| 99久久免费国内精品| 一区二区三区在线观看免费| 成人毛片网站| 成人啪一区二区免费国产| 日本XXXX丰满超清HD| 久久国产香蕉视频| 丰满少妇一级按摩在线播放| 天天夜夜人人视频| 欧美日韩国产免费一二区| 亚洲日韩∧v精品一区二区小说| 思思久久精品无码| 久久超级免费视频| 国产第一页在线| 欧美日韩一道一区二区三区| 91九色蝌蚪在线看视频| 天干天干天啪啪夜爽爽AV小说| 不要钱的黄片软件.| 亚洲精品国产日本| 精品毛片网站在线观看| 波多野结衣高清久久一区| 国产激情做a爱黄色一级一级片| 亚洲aⅴ无码成人专区片在线观看 亚洲欧美制服在线看 | 一国产一无码一日韩| 91大神一区二区韩国日本欧美| 中文字幕人妻丝袜一区二区| 一区二区三区国产视频播放区| 手机看片久久国产免费不卡| 欧美日韩亚洲国产第一| 国产精品区一区二区免费| 成人免费男人的天堂麻豆| 手机在线中文字幕乱码免费| 国产成人v?亚洲电影| h0930无码一区二区三区| 欧美一级a一片免费播放| av在线男人的天堂观看免费| 日韩黄色免费电影| 国产精品国产亚洲精品看不卡15| 热久久最新免费视频| 黑人激情视频在线| 2017天天爽夜夜爽精品视频| 懂色av懂色av粉嫩av分享吧| 97精产国品久久蜜桃臀| 波多野结衣高清久久一区| va亚洲v专区在线| 熟女少妇中文字幕久久| 国产精品无码aⅤ| 国产裸体永久免费无遮挡| 中文字幕 亚洲a在线v| 色哟哟在线视频精品一区| 欧美囗交a级视频在线观看| 成人综合色在线一区二区亚洲| 国产精品白浆熟女| 色窝窝无码一区二区三区三州| 欧美牲交视频免费观看| 国产欧亚日韩在线视频| 久久综合人妻精品| 被中出高潮一区二区三区| 一级片无遮挡在线观看| 98精品国产一区二区| 大陆一级黄片视频| 久久亚洲人成国产精品| 日本v高清不卡在线| 国产精品午夜无码AⅤ精| 亚洲国产一区二区三区五月花婷婷| 影音先锋女人av鲁色资hd| 日本大片免费一级| 成人午夜免费在线视频| 中国国产高清免费av片| 插粗爽在线观看| 2019国产精品久久| 日韩在线综合视频| 国产午夜精品久久69久久嫩草| 又大又爽又黄激情视频国产| 国产69精品久久久久9999无遮挡| 一本之道av不卡精品| av三级在线观看一区二区| 丰满少妇高潮惨叫在线观看 | 四虎4hutv永久地址公告2022| 日本A级毛片无卡免费视频ⅴa| 免费深夜福利备好纸巾18禁止| 欧美日韩精品一区二区三区高| 精品国产国产自在线观看擁有海量影視資源 | 任我爽精品视频无码| 夜夜嗨一区二区av免费看| 一级做a爱片特黄在线| 欧美亚洲日韩少妇高潮白浆 | 性草莓视频网站在线观看| 亚洲精品导航视频| 欧美色一区二区在线视频观看| 国产深喉口爆一区二区三区| 国色天香社区在线免费观看| 被强到爽的邻居人妻2| 人妻网站一级毛片| 欧美日韩一区二区三区视频播放9| 免费国语一级a在线观看 | 最新国产亚洲日韩欧美一区二区三区视频| 久久久久国产精品嫩草影院国产欧美一区| 国产黄片av免费看| 毛片可以直接看的| 九九久久精品国产免费看| 亚洲综合图色40p国产无套高潮在线观看 | 亚洲国产成人精品天堂软件| 黄色wwA级免费毛片| 欧美综合久久久精品| 午夜一区二区亚洲不卡A片| 免费成年人视频大全| 国产系列JK在线| 成年免费级毛片免费看丶| 亚洲综合AV色婷婷婷| 久久超级免费视频| 国产精品高清在线观看| 欧美日韩国产码高清二区| 在线观看视频极品粉嫩福利| 亚洲囯产一区二区三区| 九九九精品成人免费视频| 国产成人精品1024小说| 97人妻中文字幕总站| 香蕉视频黄版在线观看| 亚洲国产动漫一区| 办公室系列欧美精品| 欧洲熟妇色xxxxx欧美老妇| 欧美又大粗又爽又黄大片视频| 精品人妻大屁股白浆无码p| 中文字幕久久综合天天 | 国产午夜福利精品大秀在线| 亚洲欧美国产素人在线播放| 色综合伊人丁香五月婷婷综合缴情 | av一区av久久av无码| 自拍高清日本国产| 毛茸茸BBwBBw中国妓女| 亚洲av无码成人精品网站久久久| 午夜人性色福利无码视频在线| 神马电影院午夜伦| 精品国产人成亚洲区中文久久 | 牛牛在线精彩视频国产 | 一级a做免费视频久久| 五级黄高潮片90分钟视频五级| xxxx免费视频在线播放| 成人免费一区二区三区视频免费看| 亚洲成在人网站天堂大块网| 午夜一区二区亚洲不卡A片| 韩国日本亚洲视频| 九一超级碰国产在线观看| 国产老妇免费视频二区| 直接看国产黄色网站免费| 日韩无码av一级毛片网站| 日本v高清不卡在线| 夜色成人免费观看| 国产hd老太婆中国老太60| 国产成人无码久久久久毛片| 无遮挡无码h纯肉动漫在线观看 | 国产大量自拍视频| 特黄欧美三级在线完整版免费 | 欧美老熟妇乱子| 看看免费的一级片视频| 无码极品图库无圣光露露| 亚洲精品一区二区三区麻豆| 亚洲伦理久久一天堂| 久久精品综人妻久久| 欧美自拍日韩主播在线观看| 伊人网免费视频| 中年人妻丰满av无码久| 五月天激情中国av| 色欲午夜无码久久AV无码 | 极品人妻少妇一区二区| 国产真人一级a爱做片免费看| 国产亚洲精αα在线观看不卡| 6080新视觉yy理论片| 丰满人妻被公侵犯完整版| 国内精品久久久久影院亚洲| 亚洲 欧美 一区国产| 狠狠88综合久久久久综合网| 成人精品亚洲一区二区| 成人精品亚洲一区二区| 日韩αV无码成人网站18禁| 色亚洲一区二区| 久久精品网站免费| 日韩性色的免费视频网站| 国产丝袜一区二区三区在线不卡| 欧美一级aa系列在线播放 | 欧美日韩国产码高清二区| 国产av专区一区二区三区| 级特黄3大片视频| 伊人天堂αv无码αv日韩αv| 一区二区三区精品蜜桃| 狠狠躁亚洲18三区二区一区| 嘿嘿射久草日韩视频| 国产精品国产亚洲精品看不卡15 | 手机大片福利日韩| 亚洲高潮痉挛中文字幕| 久久国产东京av| 黄片污在线免费观看视频| 久久狠狠色国内毛片毛片毛片永久免费无遮挡 | 在线午夜熟女三级一区二区三区| 91精品国产高清自在线| 精品国产丝袜高跟鞋子| 惠民福利午夜无码伦费影视在线观看 | 久久人与动人物A级毛片效| 久久精品人人做人| 王乙让白洁一晚舒服了| 91精品国产高清自在线| 老子影院午夜久久亚洲| 久久精品国产av麻豆五月丁香| 97人人超级对对碰| 女同三级bd高清在线播放| 欧美国产三级视频| 国产精选亚洲欧美另类| 五级黄高潮片90分钟视频五级| 热播综艺动漫av永久网站| 五月丁香激情综合免费视频| 日韩AV一中美AV一中文字慕| 男人的天堂va视频区在线| ???级久久久精品无码片| 久久精品国产熟女精品| 亚洲乱亚洲乱无码无码专区| 精品一区二区三区四区日产| 精品国产欧美日韩视频| 9l蝌蚪PORNY中文自拍| 久久不卡国产精品| 久久久精品网站无码| 三级在线看片| 国产成人年无码AV片蜜臀网| 免费在线观看成人网毛片| 美女黄a网站免费| 國產精品視頻國產永久視頻| 少妇下面浓毛的又活| 无码H版动漫在线观看| 中文字幕在线亚洲欧美中文| 亚洲一区二区另类视频| 国产亚洲精品白丝欧美日产| 中國女人內謝69xxxx| 国产成 人综合亚洲| 久久无码喷吹高潮动漫播放| 牛牛在线精彩视频国产 | 亚洲国产动漫一区| 91精品国产91久久久无码医生| 亚洲秘av一区二区三区| 看看免费的一级片视频| 男女好痛好深好爽视频| 国产成人年无码AV片蜜臀网| 丰满美女一级毛片在线播放| 一级黄片香蕉视频| 大地资源在线资源免费观看| 亚洲高清国产特级aa大片| 麻豆xxxxxx在线观看| 国产精品成人∨a在线观看| 怡红院最新网址| 少妇探花一区二区| 无码欧美毛片一区二区三| 亚洲AV毛片一区二二区三三区 | 免费成年人视频大全| 亚洲黄色三级毛片| 国产一区欧洲二区精品三区| 羞羞视频导航国语在线播放| 欧美日本亚洲黑白配| 欧美一级一极性活片免费观看| 丁香婷婷激情综合| 一色屋精品视频在线| 91午夜在线不卡| 日韩欧美内射国产| 日韩福利一级午夜| 欧美日韩一区二区在线视频| 色婷婷五月亚洲一区二区| 99网曝精品视频久草| 99视频在线播放喷射| 国产一级?毛一级?看免费视频| a级国产乱理伦片野外| 伊人久久大香线蕉福利| 国产成人亚洲综合无码?ⅴ | 国内一区二区三区视频在线观看| 开荤粗肉H篮球体育生视频| 香港三级台湾三级在线播放| 4399在线韩国电影观看| 国产高清在线观看不卡一区| 国产福利姬视频二区| 蜜臀av国内精品久久久免费| 99精品国产99久久久久久| 成人午夜精品影院在线观看| 久久99热精品影院| 车上拨开内裤进入内内的软件| 无码精品h在线观看| 了解最新98精品视频| 亚洲第一大综合区日韩无码人妻电影| 日韩精品一区二区天海翼| 国产在热线精品视频99国产一二| 女生十八禁不遮不挡网站| 善良的女秘书的目的| 绝顶丰满少妇av无码| 久久婷婷这里只有精品99| 久久精品国产熟女精品| WWW国产成人免费观看视频国产精品18久久久久久不卡 | 日韩激情综合网| 久久国产精品男女热播| 亚洲无码不卡永久免费| 免费很黄很色刺激小说| 无码中文字最加勒比| 国产黄色羞羞视频91| 国产精品v欧美精品v日韩精品| 亚洲欧美日本韩国精品| 中日欧美黄片| 伊人久久久大香线蕉综合直播下载| 99国产精品人妻无码| 先锋影音成人资源| 91桃色在线看片| 五月婷婷在线激情免费视频| 亚洲同性男男gv在线观看| 日韩精品一区二区三区中文| 积积对积积的桶免费视频| 久久精品久久精品免费久99| 国产精品一区二区在线天堂| 国产男女XX00在线观看| 中文字幕不卡Av在线| 最新亚洲欧美在线人成| 亚洲综合不卡网站| 亚洲AV无限制福利在线观看| 欧美日韩中文字幕国内自拍| 欧美美女福利在线观看| 精精国产xxxx视频在线播放器| 久久久久成人精品亚洲国产?∨综合 | 性动漫无遮挡在线观看免费| 亚韩人妻精品中文无码视频 | 加勒比av高清无码下载| 性色AⅤ在线观看免费| 2024国产精品极品色在线 | 大学生高潮一级毛片免费视频 | 亚洲欧美伊人久久一区二区精选| 久久亚洲精品无码人区| 青青草最新版在线视频| 亚洲综合熟女av| 日本免费无码XXXXX视频| 亚洲同性男男gv在线观看| 亚洲精品日韩片无码中文字| av网址一区二区三区观看| 久久国产综合精品欧美| 国产?精品人成视频免费| 久久超碰国产精品一区二区| 国产自在线拍视频播放| 无码少妇免费影视| 国产又粗又长又猛又爽视频| 制服jk白丝h无内视频| 國產精品無碼無卡在線播放| 午夜福利视屏一区二区| 最新国产亚洲日韩欧美一区二区三区视频 | 久久亚洲日韩精品vs国产| 欧美性爱在线一区二区三区| 人妻夜夜爽天天爽一区資源免費看| 人禽18禁网站免费看| 超碰青青草在线视频av| 成人毛片免费视频在线不卡| 高清免费自拍无码| 成人精品视频一区二区不卡| 东京热久久综合精品一区| 亚洲AV日韩综合一区久热亚洲AV日韩AV香蕉草莓 | 久久9999精品视频| 狼人青草久久网伊人| 免费成人黄色| 亚洲精品不卡在线观看| 九色视频在线观看极品流出| 亚洲精品视频一区| 国产日韩在线欧美一区 | 啦啦啦视频在线观看免费中文www 久久人与动人物A级毛片效 | 精品长泽梓在线播放视频| 我把她荫蒂添到高潮| 日韩不卡视频一区中文字幕| japanxx久久久女人手机版| 正在播放极品白嫩美| 国产精品毛片在线完整版SAB| 又大又粗又长又硬好爽| 免费天堂网站毛片| 亚洲国产在线精品国偷产拍| av三级在线观看一区二区| 草莓APP下载官网在线观看| 国产精品一在线观看| gogo999亚洲肉体艺术棚拍| 日韩激情综合网| 丝袜人妻1~12部分| 人妻人人做人妻人人添| 星际大战HR成?免费看| 日韩福利一级午夜| 在线日本国产成人免费精品 | 国产精品一国产精品最新章节| 亚洲aⅴ无码成人专区片在线观看| 在线免费视频网站| 久久久久成人精品亚洲国产?∨综合 | 少妇又潮又喷又爽无码 | 超级碰碰青草免费视频| 麻豆Av免费在线观看亚洲色成中文字幕在线 | 精品少妇人妻av免费久久下载| 五月天a 中文字幕| 久久尤物?V天堂日日综合| 国产AⅤ无码一二三区| 亚洲尤物av一区| 精品无码国产污污污免费网站国产| 欧美二区欧美一区| 日韩在线综合视频| 亚洲日韩中文字幕在线一区二区| 国产老妇免费视频二区| 秘 羞羞视频免费网站欧美| 白云国产在线一区二区| 丰满少妇高潮惨叫在线观看| 国产l精品国产亚洲区在线观看| 亚洲午夜成人国产福利| 亚洲第一大综合区日韩无码人妻电影| 免费观看囯产自偷自拍窥自拍| 久久久精品欧美中文一区二区| 欧美精品在线看网站| 亚洲欧美激情桃花| 日韩精品二区av| 美女羞羞免费视频| 无码小电影免费手机在线观看| 成年女人永久免费a片| 久久久精品人妻無碼專區不卡| 国产精品自产拍在线观看1| av无码人妖系列综合网| 91在线直播观看| 女人18毛片久久鬼色| 波多野结衣av一区| 国产一区欧洲二区精品三区| 午夜久久成人福利电影| 日韩在线中文视频| 国产在线观看无码专区电影| gogo999亚洲肉体艺术棚拍| 亚洲精品国产第一区二区多人| 免费日韩电影在线观看| 国产三级精品三级在线专区二| 国产精选亚洲欧美另类| 曰韩无码精品免费视频一区二区| baoyu永久黄网站| 亚洲午夜视频体内射| 午夜福利成人在线| 亚洲熟女少妇精品一级| 东京热久久综合精品一区| 青青青青国产在线| 最新精品视频2019在线视频| 久久亚洲人成国产精品| 香蕉视频 国产一区| 91久久国产精品综合| 黄品汇mba旧版本安装包| 国模大尺度啪啪| 男生和女生靠逼的APP| 国产偷伦免费视频看| 国产精品成久久久久三级午夜电影 | 55夜色66夜色国产亚洲一| 婷婷色香五月激情综合2020| 国产福利一区二区三区四区| 又黄又刺激的免费视频日韩AV| 亚洲香蕉久久一区二区三区四区| 999热视频这里只有精品| 性夜影院爽黄A爽免费看| 日韩成人三级在线| 国第一产在线无码精品区| 欧美日韩亚洲第一区在线无弹窗| 国产高清在线观看不卡一区| av天堂永久资源网| 国产午夜福利精品大秀在线| 先锋影音成人资源| 色狠狠狠狠狠香蕉| 波多野结衣高清久久一区| 国产精品免费黄片| a人片在线观看| 国产成人小视频在线观看| 很有味道的熟妇[15p]| 八戒八戒WWW在线资源下载| 日韩国产精品一二三区不卡视频| 日韩理论在线中文字幕| 国产无码高清亚洲| 亚洲电影免费在线观看| 久久国产香蕉视频| 中文字日产幕天堂1区| 国产又大又粗又长| 99精品这里只有精品17| 美女裸体永久免费视频网站| 欧美国产调教一区二区| 亚洲一区二区另类视频| 亚洲狠狠久久综合一区网址| 三级片国产色色色免费观看| 王多鱼网站免费下载安装| 欧美日韩高清成人在线观看| aa福利亚洲国内在线精品| 一级黄色免色片| ?v日韩国产一区二区三区| 高清无码中文字幕在线视频| 亚洲A v无码一区二区三区牲色| 18国内精品久久综合88| 直接看国产黄色网站免费| 久久影视这里只有精品国产擁有海量影視資源 | 亚洲中文aⅤ中文字幕艳妇| 欧美综合久久久精品| 伊人天堂αv无码αv日韩αv| 国产高清视频在线观看播放| 51国产偷自视频区视频蜜臀av| 亚洲免费在线直播优女毛片| 日本无遮挡h肉动漫在线观看网站| 韩国三级特黄60分钟在线播放 | 亚洲日韩欧美明星在线观看| 美女被视频网站免费看| 性十日韩十精品十乱码十大陆| 在线观看欧美二区| 极品嫩模高潮叫床视频| 国产在热线精品视频99国产一二| 免费无码高潮喷水AⅤ片在线| 日本精品一区二区在线观看| 亚洲欧美一区HD| 国产精品久久性爱视频免費資訊| 无码高清黑人一区二区三区| 加勒比人妻一区二区三区| 第1章饱满的乳峰喷奶水| 日韩亚洲一区二区中文字幕| 国产成人精品高清国产三级| 糖心vlogapp官网免费| 国产亚洲?v一区二区| 久热热女免费视频中文字幕| 青青合久久久久综合网站| 大香蕉在线一AV在线| 香蕉久久精品日日躁夜夜躁夏| 久久亚洲?V无码精品天天| 巨胸大乳寂寞人妻I在线视频| 制服丝袜亚洲色图| 亚洲中文字幕乱码少妇饥渴| 18国内精品久久综合88| 久久成人18免费国产精品网站| 久久99a线观看品| 午夜春色福利| 尤物视频极品盛宴| 欧美黑人精品久久久久| 欧美毛卡片免费一级域名网站| 久久精品国产亚洲AV护士长| 亚洲精品日韩片无码中文字| av天堂最新网址| 亚洲精品国产av成拍色拍野外| 亚洲欧美激情综合区久久| 天堂亚洲性爱在线播放| 日韩a一级片黄色电影| 国产亚洲欧美在线视频| 偷偷亚洲高清日韩| 三级片在线观看国产| 国产大学生酒店刺激在线| 亚洲A v无码一区二区三区牲色| 精品视频一区二区三区2018| 野花社区神马www在线影视| 国产精品午夜无码AⅤ精| txvlogcom糖心官网网站| 秋霞电影午夜理论| 久久国产成人av片| 国产精品午夜无码AⅤ精| 国产亚洲日韩欧美另类| 女同三级bd高清在线播放| 女同视频一区二区在线观看| 女同三级bd高清在线播放| 歐美性白人極品1819hd高清| 欧美日韩 国产在线观看| 免费观看黄网站| 亚洲婷婷综合色香五月| 国产毛片在线看互動交流| 3d双性人无尽扶她互| 高清久久免费综合| 国产深喉口爆一区二区三区| av一区二区高清国产| 教官掀起衣服含着奶头h渺渺视频 大地资源在线资源免费观看 | 国产美女a做受大片免费| 无码人妻一区二区三区免水牛视频 | 97人妻中文字幕总站| 加勒比av高清无码下载| 欧美一级国产AAA大片| 国产AV高清久久久精品| 直接看国产黄色网站免费| 影音先锋主播另类| 国产av黄色网址| 岛国片欧美一级毛| 一区二区三区国产视频播放区 | 露脸人妻边打电话边做 | 久久热在线精品店99re| 在线亚洲日韩毛片电影视频 | 亚洲国产精品一在线观看麻豆| 亚洲第一A在线网站| 欧美日韩精品一区二区三区高| 妺妺窝人体色www看美女人体| 免费在线欧美性网站| 日本免费无码XXXXX视频| 亚洲αⅤ精品一区二区三区| 老汉tv永久视频福利在线观看| 亚洲欧美系列| 精品国产亚洲?v热无遮挡| 综合在线日韩欧美中文字幕| 国产一二精品三级久久中出| q欧美性猛交xxxx乱大交| 成人动漫在线观看网站网站| 亚洲精品国产日本| 黄片污在线免费观看视频| 久久国产热视频99rev6| 乱伦自拍影视三级| 日韩在线观看视频中文字幕| 亚洲日韩激情一区二区 | 国产三级片资源导航| 国产免费观看久久久| 少妇又爽又刺激视频| 欧美成人一区二区电影在线观看| 国产一二精品三级久久中出| 欧美精品亚洲高清一区| 亚洲av中文无码乱人| 无码按摩一区二区中文字幕| 久久国产精品男女热播| 蜜臀av国内精品久久久免费| 少妇又潮又喷又爽无码| 免费的成年私人影院网站| 少妇又爽又刺激视频| 色欲大肥婆BBBWW情涩网喷水援交| 精品一区二区国产91色| 波多野吉衣AV一区二区三区| 加勒比人妻一区二区三区| 日本熟女60路狠狠被操|