本發(fā)明屬于無線網(wǎng)絡(luò)應(yīng)用,特別涉及一種iot?wifi使用的雙協(xié)議棧系統(tǒng)。
背景技術(shù):
1、wifi可以簡(jiǎn)單的理解為無線上網(wǎng),幾乎所有智能手機(jī)、筆記本電腦以及ipc攝像機(jī)都支持wifi上網(wǎng),是當(dāng)今使用最廣的一種無線網(wǎng)絡(luò)傳輸技術(shù)。隨著物聯(lián)網(wǎng)(iot)的推進(jìn),人們很快習(xí)慣于萬物互連這一狀態(tài)。目前ipc攝像機(jī)也成為家庭防盜、老人嬰兒看護(hù)必備產(chǎn)品,越來越受市場(chǎng)認(rèn)可。低成本、開發(fā)簡(jiǎn)單、移植簡(jiǎn)單的wifi方案是ipc產(chǎn)品不可或缺的。
2、目前傳統(tǒng)ipc網(wǎng)絡(luò)攝像機(jī)產(chǎn)品都需要外接電源線供電,導(dǎo)致產(chǎn)品安裝不方便,顏值低。所以采用電池供電的ipc產(chǎn)品越來越被用戶認(rèn)可,如:電池門鈴,門鎖,貓眼攝像頭等產(chǎn)品。電池供電產(chǎn)品由于電池容量有限,所以低功耗運(yùn)行,低功耗?;钍钱a(chǎn)品必備功能。傳統(tǒng)低功耗產(chǎn)品方案采用例如北京君正集成電路股份有限公司(簡(jiǎn)稱:北京君正)t31型號(hào)芯片+mcu+wifi三顆芯片器件的方式,但此類方案增加mcu芯片成本。所以自帶mcu模塊的iotwifi更具成本優(yōu)勢(shì),只需t31型號(hào)芯片+iot?wifi兩顆芯片器件即可實(shí)現(xiàn)低功耗產(chǎn)品方案。
3、然而,目前搭配iot?wifi的產(chǎn)品大部分協(xié)議棧跑在wifi側(cè),主控?zé)o協(xié)議棧,通過私有協(xié)議將數(shù)據(jù)傳輸?shù)絯ifi上,再通過wifi協(xié)議棧發(fā)送出去,當(dāng)遇到需要進(jìn)行云平臺(tái)移植的時(shí)候,iot?wifi通常使用rtos操作系統(tǒng),然而,目前專門研究此操作系統(tǒng)的軟件工程師比較少,網(wǎng)上參數(shù)資料也比較少,移植難度非常大,導(dǎo)致這類成本提高,另外wifi側(cè)內(nèi)存和flash存儲(chǔ)都比較小,可容納的資源也有限。
4、此外,現(xiàn)有技術(shù)中的常用術(shù)語包括:
5、iot:物聯(lián)網(wǎng)(iot,internet?of?things)即“萬物相連的互聯(lián)網(wǎng)”,是互聯(lián)網(wǎng)基礎(chǔ)上的延伸和擴(kuò)展的網(wǎng)絡(luò),將各種信息傳感設(shè)備與網(wǎng)絡(luò)結(jié)合起來而形成的一個(gè)巨大網(wǎng)絡(luò),實(shí)現(xiàn)任何時(shí)間、任何地點(diǎn),人、機(jī)、物的互聯(lián)互通。
6、wifi:無線網(wǎng)絡(luò)。
7、ipc:ip?camera,網(wǎng)絡(luò)攝像機(jī)。
8、低功耗攝像機(jī):一般是指電池供電,運(yùn)行功耗極低,且需要快速啟動(dòng)功能的ipc。
9、mt7682:iot?wifi的其中一款型號(hào)。
10、mcu:微控制單元,又稱單片機(jī)。
11、例程:是某個(gè)系統(tǒng)對(duì)外提供的功能接口或服務(wù)的集合。比如操作系統(tǒng)的api、服務(wù)等就是例程;delphi或c++builder提供的標(biāo)準(zhǔn)函數(shù)和庫(kù)函數(shù)等也是例程。
技術(shù)實(shí)現(xiàn)思路
1、為了解決上述問題,本技術(shù)的目的在于:使用雙協(xié)議棧方式,iot?wifi在例如北京君正t31型號(hào)芯片側(cè)虛擬成支持802.3協(xié)議的以太網(wǎng)口設(shè)備,主控可擁有自己的協(xié)議棧,由于主控使用linux操作系統(tǒng),此操作系統(tǒng)為ipc產(chǎn)品常規(guī)系統(tǒng),開發(fā)難度小,網(wǎng)上參考資料豐富,移植簡(jiǎn)單,云平臺(tái)和手機(jī)app幾乎能夠無縫對(duì)接。
2、具體的,本發(fā)明提供一種iot?wifi使用的雙協(xié)議棧系統(tǒng),所述系統(tǒng)包括:
3、主控芯片,采用一款高性能h.265/h.264/jpeg?soc芯片,芯片集成了高性能的isp圖像處理模塊,分辨率最高可達(dá)2592*1920@30fps,同時(shí)內(nèi)部集成了128mb?ddr存儲(chǔ)器,最高主頻1.5ghz,擁有完備的應(yīng)用所需外設(shè)接口,包括usb,sdio和ethernet,能適用多種網(wǎng)絡(luò)攝像機(jī)產(chǎn)品;iot?wifi芯片,包括一個(gè)微控制器單元mcu、一個(gè)低功耗的1x11n單波段wi-fi子系統(tǒng)和一個(gè)電源管理單元pmu;iot?wifi內(nèi)部包含一個(gè)帶有浮點(diǎn)單元的arm?cortex-m4處理器,與1mb的閃存集成在一起,是一個(gè)高度集成的芯片組;wi-fi子系統(tǒng)包含802.11b/g/n無線電、基帶和mac,用于低功耗和高吞吐量的應(yīng)用程序開發(fā);還包含32位risc?cpu,能完全卸載應(yīng)用程序處理器;還支持uart、i2c、spi、i2s、pwm、sdio和adc接口;
4、所述iot?wifi芯片通過spi或者sdio作為所述主控芯片的傳統(tǒng)wifi外掛芯片,所述主控芯片通過加載驅(qū)動(dòng):z7682inf.ko,是與下述的驅(qū)動(dòng)同一驅(qū)動(dòng),將所述iot?wifi芯片映射為一個(gè)網(wǎng)絡(luò)接口interface,所述主控芯片音視頻協(xié)議棧綁定在此wifi?interface上創(chuàng)建網(wǎng)絡(luò)通信的接口socket;
5、所述主控芯片和iot?wifi芯片通過spi或者sdio傳輸音視頻流,所述iot?wifi芯片上同時(shí)運(yùn)行云服務(wù)器sdk,實(shí)現(xiàn)設(shè)備與云服務(wù)器之間的?;睿瑫r(shí)具備設(shè)備配網(wǎng)、賬號(hào)綁定、云端通信、ota升級(jí)功能;
6、所述主控芯片側(cè)映射的虛擬網(wǎng)口和iot?wifi的網(wǎng)口,這兩個(gè)網(wǎng)口對(duì)外是同一個(gè)mac和ip地址,根據(jù)不同端口區(qū)分是所述主控芯片主控側(cè)數(shù)據(jù),還是所述iot?wifi芯片側(cè)數(shù)據(jù);
7、所述主控芯片對(duì)wifi的管理,通過api接口,使用私有協(xié)議,驅(qū)動(dòng)內(nèi)部封裝了數(shù)據(jù)傳輸所依賴的接口,包括:
8、控制系統(tǒng)斷電的z7682_iotc_poweroff、
9、獲取所述iot?wifi版本信息的z7682_iotc_fw_version_read(獲取mt7682版本信息)、
10、讀數(shù)據(jù)的z7682_iotc_int_mask_read、
11、寫數(shù)據(jù)的z7682_iotc_int_mask_write、
12、讀取中斷喚醒事件的z7682_iotc_wkup_intf_read、獲取所述iot?wifi?ip信息的z7682_iotc_get_ip_info(獲取mt7682ip信息)等,
13、和所述iot?wifi芯片的應(yīng)用層通訊;所述iot?wifi芯片根據(jù)不同的自定義包頭,區(qū)分是ip網(wǎng)絡(luò)數(shù)據(jù)還是私有協(xié)議數(shù)據(jù),進(jìn)行相應(yīng)的處理或者轉(zhuǎn)發(fā);
14、所述主控芯片負(fù)責(zé)喚醒運(yùn)行狀態(tài)下的事件處理,所述iot?wifi芯片負(fù)責(zé)休眠狀態(tài)下的外設(shè)的功能處理以及?;钐幚怼?/p>
15、所述事件處理,低功耗休眠?;町a(chǎn)品,包括:門鈴、門鎖攝像機(jī),每次設(shè)備啟動(dòng)后,主控程序需要得知是什么原因喚醒了主控,這時(shí)能夠通過api讀event喚醒原因,另外在設(shè)備運(yùn)行過程中,也要實(shí)時(shí)監(jiān)測(cè)event,隨時(shí)處理觸發(fā)的事件,比如按鍵事件等。
16、所述外設(shè)的功能處理以及?;钐幚恚凸拈T鈴門鎖產(chǎn)品,休眠狀態(tài)下,為保證低功耗,延遲產(chǎn)品電池使用時(shí)間,主控是斷電狀態(tài),無法工作,只有wifi工作。
17、所述主控芯片和所述iot?wifi芯片的應(yīng)用層的底層采用sdio、spi接口二選一。
18、所述iot?wifi芯片負(fù)責(zé)休眠狀態(tài)下的外設(shè)功能處理包括pir人體紅外感應(yīng),按鍵喚醒,遠(yuǎn)程喚醒包。
19、所述iot?wifi芯片的系統(tǒng)采用freertos系統(tǒng),包含網(wǎng)絡(luò)配置,網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā),自帶mcu功能配置;包括pir人體紅外感應(yīng)和門鈴按鍵的外設(shè)是接到所述iot?wifi芯片內(nèi)置的mcu上,通過mcu來處理外設(shè)喚醒設(shè)備的功能。
20、所述iot?wifi芯片在所述主控芯片上注冊(cè)以太網(wǎng)卡的驅(qū)動(dòng),在所述主控芯片上加載此驅(qū)動(dòng),生成接口名為eth0的網(wǎng)口,使用linux通用的socket方法進(jìn)行網(wǎng)絡(luò)通信;另外加載此驅(qū)動(dòng)后會(huì)在所述主控芯片文件系統(tǒng)中生成/dev/z7682設(shè)備節(jié)點(diǎn),如果是其他型號(hào)的主控,也是這個(gè)路徑,所述主控芯片通過此節(jié)點(diǎn)ioctl命令與所述iot?wifi芯片進(jìn)行數(shù)據(jù)交互。
21、所述使用linux通用的socket方法進(jìn)行網(wǎng)絡(luò)通信,包括:與云端服務(wù)器數(shù)據(jù)交互,與手機(jī)app數(shù)據(jù)交互。
22、所述主控芯片側(cè)應(yīng)用層設(shè)置使用例程代碼,應(yīng)用程序link_listen.c和ioctl_test.c操作/dev/z7682設(shè)備節(jié)點(diǎn),調(diào)用ioctl進(jìn)行信息讀取,包括如下內(nèi)容:
23、網(wǎng)絡(luò)事件捕獲:通過ioctl命令,表示為:
24、z7682_iotc_listen_link_change,當(dāng)所述iot?wifi芯片成功連接到wifi后,該命令返回;該ioctl帶有參數(shù),單位為ms,所述參數(shù)含義為超時(shí)時(shí)間,若超時(shí)則返回0,若發(fā)生錯(cuò)誤則返回負(fù)值;
25、所述應(yīng)用程序?qū)懸粋€(gè)while循環(huán)不斷的監(jiān)聽這個(gè)事件,當(dāng)監(jiān)聽到link_change后說明網(wǎng)絡(luò)情況發(fā)生變化,重新讀取ip、dns、mask、mac、dhcp、gatewa網(wǎng)絡(luò)信息,通過ioctl命令,表示為:
26、z7682_iotc_get_ip_info獲取以上網(wǎng)絡(luò)信息,并通過系統(tǒng)接口進(jìn)行設(shè)置到所述主控芯片,即可完成網(wǎng)絡(luò)配置。
27、所述系統(tǒng)還包括:網(wǎng)絡(luò)端口配置:
28、上層網(wǎng)絡(luò)數(shù)據(jù)流根據(jù)端口號(hào)來判斷數(shù)據(jù)進(jìn)行所述iot?wifi芯片協(xié)議棧還是透?jìng)鹘o所述主控芯片;
29、所述iot?wifi芯片端的端口范圍設(shè)置能夠在所述iot?wifi芯片的sdk中自行配置,默認(rèn)的sdk中所述iot?wifi芯片協(xié)議棧的端口范圍是54000–60000;
30、所述主控芯片上通過cat/proc/sys/net/ipv4/ip_local_port_range獲取本地隨機(jī)分配的端口范圍;
31、通過命令設(shè)置echo'x?y'>/proc/sys/net/ipv4/ip_local_port_range,能夠修改端口的范圍為(x,y);
32、所述主控芯片端在加載所述iot?wifi芯片驅(qū)動(dòng)時(shí)會(huì)去獲取所述iot?wifi芯片的端口范圍,也能夠通過調(diào)用api讀取所述iot?wifi芯片虛擬寄存器reg_invalid_port中的值來獲取這個(gè)范圍。
33、所述主控芯片采用t31型號(hào)芯片,t31型號(hào)芯片,具備優(yōu)異的圖像處理能力、極高的編碼質(zhì)量和極低的編碼碼率;
34、所述iot?wifi芯片采用mt7682型號(hào)芯片,mt7682還支持uart、i2c、spi、i2s、pwm、sdio和adc等接口。
35、由此,本技術(shù)的優(yōu)勢(shì)在于:本方案針對(duì)低功耗ipc產(chǎn)品,提供低成本,易開發(fā),易移植的iot?wifi解決方案。