一種ZigBee以太網(wǎng)網(wǎng)關(guān)的設(shè)計(jì)
2 軟件設(shè)計(jì)
2.1 主控板軟件設(shè)計(jì)
主控板軟件設(shè)計(jì)在LM3S6911微處理器上移植了μC/OS-Ⅱ嵌入式實(shí)時(shí)操作系統(tǒng),μC/OS-Ⅱ是一個(gè)開放源碼的實(shí)時(shí)操作系統(tǒng),但它只是一個(gè)實(shí)時(shí)的任務(wù)調(diào)度及通信內(nèi)核,缺少對外圍設(shè)備和接口的充分支持。為獲得對以太網(wǎng)接口的支持,在其上移植了LwIP(Light Weight IP)TCP/IP協(xié)議棧。LwIP是一套用于嵌入式系統(tǒng)的開放源代碼的TCP/IP協(xié)議棧,實(shí)現(xiàn)的重點(diǎn)是在保持TCP協(xié)議主要功能的基礎(chǔ)上減少對RAM的占用,適合在低端嵌入式系統(tǒng)中使用。
在設(shè)計(jì)中基于μC/OS-Ⅱ操作系統(tǒng),同時(shí)編寫了SPI通信驅(qū)動(dòng)程序和串口通信驅(qū)動(dòng)程序,其中SPI驅(qū)動(dòng)程序用于和ZigBee射頻模塊進(jìn)行通信,串口驅(qū)動(dòng)程序用于提供網(wǎng)關(guān)的串口配置功能。主控板軟件工作流程如圖4所示。本文引用地址:http://butianyuan.cn/article/153502.htm
其中OSTaskCreate(taskStart,…)為μC/OS-Ⅱ操作系統(tǒng)第一個(gè)任務(wù),在其中要進(jìn)行目標(biāo)板和TCP/IP的初始化,并建立以太網(wǎng)通信處理任務(wù)taskNet、SPI通信處理任務(wù)taskSPI和串口通信處理任務(wù)taskUART,最后通過OSStart()啟動(dòng)μC/OS-Ⅱ內(nèi)核。以太網(wǎng)通信處理任務(wù)task Net啟動(dòng)LwIP協(xié)議棧,完成TCP和UDP相關(guān)通信服務(wù);SPI通信處理任務(wù)taskSPI完成通過SPI總線與ZigBee射頻模塊的通信;串口通信處理任務(wù)taskUART完成網(wǎng)關(guān)參數(shù)配置相關(guān)工作。
2.2 射頻模塊軟件設(shè)計(jì)
ZigBee射頻模塊軟件設(shè)計(jì)是基于CC2530芯片,移植了TI公司的ZigBee協(xié)議棧Z-Stack,Z-Stack協(xié)議棧采用輪轉(zhuǎn)查詢式操作系統(tǒng),包括系統(tǒng)初始化和操作系統(tǒng)的執(zhí)行,系統(tǒng)初始化完成初始化硬件平臺和軟件架構(gòu)所需要的各個(gè)模塊,為操作系統(tǒng)的運(yùn)行做好準(zhǔn)備工作,系統(tǒng)初始化完成后,就開始執(zhí)行操作系統(tǒng)入口程序。輪轉(zhuǎn)查詢式操作系統(tǒng)專門分配了存放所有任務(wù)事件的tasksEvents[]數(shù)組,每個(gè)單元對應(yīng)存放著每一個(gè)任務(wù)的所有事件,操作系統(tǒng)通過一個(gè)do—while循環(huán)來遍歷tasksEvents[],找到優(yōu)先級最高的任務(wù)來處理,射頻模塊軟件工作流程如圖5所示。
評論