
硬體設計使用了比較傳統的Protel99se,采用了MC13192+GB60的設計和單晶片MC13213的設計原理圖下載下傳連結如下:
硬體設計也沒有太多可以講述的,隻要按照Freescale給的參考設計,自己根據需求,做相應的小小修改就可以。比較關鍵的是天線的設計。我們自己沒有測試裝置(頻譜儀一個就10幾W),一般而言,就使用給出的參考設計天線,有倒F天線(非平衡式)、雙鞭天線(平衡式)等。另外就是闆材的選擇和闆厚也和通信距離有相當大的關系。
嵌入式軟體的設計采用CodeWarrior for HCS08 V3.1 開發環境,運用“前背景系統”的模式,前背景系統的基本思想是:硬體中斷函數中隻做非常少量而且是絕對必須的操作:如設定中斷寄存器、儲存資料寄存器等,然後置背景标志位,随即退出中斷。這些操作稱為“前台操作”。而背景操作是一個開放中斷的無限循環。在循環中檢查各背景标志位,如果某一标志位被置位,則說明有中斷發生,立即調用相應的中斷服務任務,這些任務被稱為“背景操作”。
主程式流程如下圖1所示:
圖1主程式流程圖
TargetInit()執行系統初始化操作,主要包括HCS08的IO、UART和Timer等子產品的初始化。ConfigInit()執行配置初始化操作,主要包括SMAC協定和序列槽通信協定配置。ScheduleLoop()為主排程循環,根據狀态來執行不同的任務,如下圖2所示。其中的SYS_FEED_DOG()是指喂看門狗操作。
圖2 主排程循環流程圖
在Windows Mobile裝置上運作的使用者應用程式,主要執行資訊互動和顯示功能。進一步說,使用者要通過UI将指令發送給ZigBee子產品,同時,Windows Mobile裝置将ZigBee子產品的情況通過UI呈現給使用者。在Microsoft Visual Studio 2005的IDE下,安裝一個最新的Windows Mobile 6 professional SDK,配合自帶的Emulator就可以進行開發和調試。軟體可以分為幾個子產品:序列槽通信部分、界面UI部分和資料處理部分。由于本人比較熟悉C++,是以我選用了native code進行開發,建立一個基于對話框的MFC工程,将需要的控件加入對話框。具體流程如下圖3所示。
圖3 Windows Mobile裝置應用程式流程圖
其中的對話框初始化包括了界面的初始化,要強調的是序列槽的初始化。我們這裡采用的序列槽參數如下:速率9600bps,1個停止位,無奇偶校驗。
工程的運作環境:VS2005 with SP1+.NET CF SP2+windows mobile professional SDK
好了,今天就啰嗦到這裡,明天繼續講調試,包括裝置調試和模拟器調試。Enjoy!
本文轉自施炯部落格園部落格,原文連結:http://www.cnblogs.com/dearsj001/archive/2008/10/15/1312206.html,如需轉載請自行聯系原作者