TI的Zigbee解決方案Zstack提供了一整套基于TI的CC253X系列芯片的Zigbee解決方案。從TI官方網站上下載下來的Zstack安裝文件安裝完成后是一個文件夾。很多人在剛接觸的時候很難使用這個文件夾里的東西進行Zigbee開發,這確實非常出乎TI的風格,使用過TI的CCS軟件的朋友就能感受到,CCS在引導使用方面做得相當地完善,而這個呢,還要自己去搞個IAR,然后面對一堆文件夾不知道該怎么用。⊙﹏⊙b汗,我覺得學習使用這個首先要明白其結構,從大局上看明白其結構,然后再著重具體細節是一種比較好的深入方式。下面首來看下Zstack文件夾中的相關內容吧。 如圖1所示,打開Zstack文件夾,里面有幾個文件夾和一個英文的引導手冊。 圖1 手冊實際沒說啥有用的,而且Zstack里面的資源文件都是基于TI自家的開發板的,其目錄里的user guider文件只有些許參考價值。重要的是幾個文件夾,Components文件夾里存放的是Zstack協議棧的各層的接口函數文件,包括hal、mac、mt、osal、stack等。各層都在獨立的文件夾中,如圖2所示 圖2 其中最值得注意的是mac和zstack這兩個文件夾,這是整個zstack的靈魂所在。打開各自的子目錄,大家可以發現,里面只提供了.h文件,即只提供了所謂的接口調用,這就是所謂的TI的不開源協議棧的方式。這兩層大家都只能夠調用,而不能查看具體的源代碼。而其他子文件夾中,有很多是開源的,比如說osal文件夾,這是TI的Zstack小型操作系統的資源文件所在,在其中我們可以看見不光提供了.h調用,甚至還提供了諸如Osal_timer.c各模塊的源文件和Osal.c主源文件,有興趣的朋友可以根據這些源代碼把OSAL移植到其他架構的單片機上去哦。這是關于Components文件夾的介紹,其中存放了Zstack工程所必需的各種源文件和調用聲明。至于不開源的部分的庫文件在哪里,后面再做介紹。 Documents文件夾中包含了TI官方提供的認為有助于進行Zstack開發的文檔,這里面的東西都相當的實在和給力,建議大家在接觸使用時,多參看其中的文檔,很多東西在這些文檔中都已經做了很詳細和深刻的介紹和使用了。其他的中文輔助資料,個人認為沒啥大用,有時候還會誤導他人,反而很久都搞不定。
Tools文件夾存放的是上位機調試工具,在Zstack中通過預編譯宏定義啟用了MT(Moniter ang Test)層之后,可以使用這里面的工具獲取Zstack工程在運行中的各種狀態參數,說白了,就是中國工程師們所慣用的串口調試打印,把一些關鍵的參數狀態通過串口打印出來,只不過這里TI給你做好了,而且是上位機都做好了,我們只需要學習如何調用即可。:)這個文件夾里的工具如何使用在后續再做具體介紹。
最后一個文件夾也是TI最用心良苦的地方,Projects文件夾,打開該文件夾如圖3所示: 圖3 這里面包含了很多歌文件夾,但如果大家有仔細地查看每個文件夾,就會發現其實這些個文件夾里面,有多個其中的內容是相近的。大體上這些文件夾分為三類,第一類也是使用Zstack協議棧所必須的文件Zmain.c文件,該文件存放于Zmain文件夾中,并根據Zigbee解決方案又分為兩類,如圖4所示:TI2530DB和TI2530ZNP。 圖4 首先要明確的是一點,Zmain.c文件在每個Zstack工程中僅且有一個,而圖5所示的兩個文件夾中各自有一個Zmain.c文件,說明了這兩個文件夾對應兩種不同的解決方案所采用不同的Zmain.c文件。TI2530DB 表示的是基于TI 2530芯片為核心的Zigbee解決方案,而ZNP呢,ZNP即Zigbee and Processor,即CC2530+MCU的解決方案,這也是TI所提供的兩種不同的解決方案,具體的在Documents文件夾中有相關的介紹文檔。 第二類文件即庫文件,上面在介紹Components文件夾中就說了,TI 的MAC和Zstack是不開源的,在Compoents文件夾中僅提供了.h文件供調用,而庫文件.lib就在這里,Libraries文件夾中,大家打開該文件夾可以發現TIMAC和Zstack的庫文件,如圖5、6所示: 圖5 圖6 剩下的幾個文件夾中內容就是TI提供Zstack使用的模板了。這些個文件夾中都包含了一個或多個工程,比如Samples文件夾,很多教程都喜歡以它為例,里面內容如圖7所示: 圖7 這里面很顯然包含三個不同的工程,GenericApp、SampleApp、SimpleApp,點擊其中一個GenericApp工程的文件進入,可以看見又有兩個文件夾,如圖8所示: 圖8 這兩個文件夾中,其中CC2530DB是IAR工作空間文件,包含了相應的各種工程設置,都是官方預先設置好了的,是適用于一定的應用場合的設置。而Source文件夾中一般包含三個文件,也是我們進行Zigbee開發所需要進行自行編輯的三個文件,app.h、app.c、OSAL_app,這三個文件中app.c是具體的適用于自己應用的應用進程函數所在之處,.h當然就是調用了,OSAL_app.c里面包含了三個最主要的東西,初始化系統時所需要對應用app的初始化和對應的事件處理函數,還有就是任務事件處理指針數組。這也是一般在此文件中需要修改的地方。這就是整個Zstack的結構,調用,庫,工程設置,應用源文件這幾部分。其余的幾個文件夾中,也是同樣的結構,它們都是提供了適用于各方面應用的模板工作空間和對應的源代碼。我覺得模板兩個字足以概括出TI的Zstack提供這款協議棧的方式所在。
該文是自己在學習使用Zstack過程中的一些心得體會,其中可能會有一些錯誤和不清之處,歡迎大家指出并一起討論研究。:)
|