無線傳感器網絡是由大量傳感器節點通過無線通信自組織構成的網絡,被認為是將對21世紀產生巨大影響力的技術之一。在分布式測試中使用無線傳感器網絡,不受通信電纜的限制、組態靈活、重構性強,可以在較惡劣的測試環境中使用。由無線傳感器網絡組成的分布式測試系統已應用于水中爆炸測試系統。在一些分布場測試系統中,被測量種類繁雜,為完成測試任務,節點采用模塊化設計,SPI接口電路簡單、傳輸速度快,各模塊通過SPI總線通信協同完成測試任務。但在實際開發應用中,由于系統要求,使某些模塊與多個模塊鏈接,且接口工作在不同的模式下,如果完成通信需要功能模塊的SPI接口主從切換,致使通信速度與靈活性降低。CPLD具有可編程性特點,可根據需要擴展專用SPI接口電路,提高系統通信速度與靈活性,方便系統擴展功能模塊,提高系統整體性能。 1 節點的模塊化設計及其接口電路 無線傳感器網絡節點采用模塊化的設計方法,每個節點包括無線收發模塊、核心主控模塊和功能模塊。系統通過無線收發模塊接收主站發送的命令碼,核心主控模塊對命令解碼,完成對各功能模塊的控制(開啟采集、時統清零等)。系統要完成多次重復性試驗,因此每次試驗完畢要把實驗數據(沖擊波數據、環境變量信息、時統跟定位信息等)存儲到數據存儲管理模塊統一管理,同時準備下次試驗。系統工作時,數據儲存管理模塊SPI接口一方面工作在從模式,接收主控模塊發送的命令;另一方面工作在主模式,轉發控制其他功能模塊的命令碼并讀取試驗數據進行統一管理,圖1為在其內擴展專用工作在主模式下的SPI接口的模塊問鏈接圖。專用工作在主模式下的SPI接口電路,具有提高模塊間數據傳輸速度與靈活性等特點。 2 SPI接口電路設計 數據存儲管理系統以單片機和可編程邏輯器件組成核心控制器。可編程邏輯器件CPLD依據其編程靈活、易修改的特點,配合單片機在其內部擴展SPI接口電路,不僅簡化了接口和控制,且提高了系統的整體性能及系統擴展性。 SPI接口電路設計分兩部分: (1)硬件部分:CPLD內擴展SPI接口框圖如圖2。在CPLD內部編寫雙向IO總線、地址鎖存譯碼電路、時鐘發生器、接收和發送數據移位寄存器、傳輸結束標志SPIF產生器等電路完成SPI接口電路設計。READY1為與從機(沖擊波模塊等)通信時狀態標志位,用于當主機與從機通信時查詢使用,READY1為1時,可讀取沖擊波數據。 當單片機發送數據時,IO總線首先發送地址碼,地址鎖存譯碼電路生成數據裝載使能片選信號,之后IO總線待發送字節鎖存到數據寄存器SPDR,同時Sek時鐘發生器產生8個Sek時鐘,SPDR移位寄存器在Sek的時鐘沿把待發送字節從MOSI順序移出,同時把MISO引腳數據移入SPDR寄存器,Sek計數器計數到8個Sek時鐘后,產生SPIF傳輸結束標志,單片機讀取SPIF標志是否為1,判斷一字節時候傳輸完畢。 (2)軟件部分:單片機為主控制器,首先查詢從機狀態標志位READY是否為1,判斷是否可以與從機通信。從機準備就緒時,單片機可裝載1字節發送數據,啟動CPLD內部SPI接口電路,查詢并等待SPI傳輸結束標志位SPIF為1,完成一字節數據傳輸,如此重復。圖3、圖4為主機發送與接收1字節流程圖。 3 試驗結果與分析 圖5為邏輯分析儀捕獲CPLD擴展SPI接口電路讀取沖擊波模塊數據時波形。 bit8:READY信號,從機高電平時主機讀取數據;bit9:Sck時鐘信號,主機查詢READY為高時裝載發送字節,并產生8個Sek時鐘,啟動SPI傳輸;bit10:MOSI,主機輸出端口;bit11:MISO,主機輸入端口,Sek上升沿讀取數據,連續兩個周期讀取的數據分別為0x07(000001 11),0Xb0(10110000),兩周期時間間隔為20.400us,傳輸速度可達4×105bps,滿足系統要求。 結束語 為了滿足系統測試任務,無線傳感器節點采用模塊化設計,各功能模塊通過SPI接口鏈接。由于系統功能要求,使一個模塊與多個模塊鏈接通信,其接口電路SPI工作在不同的主從機模式,使用單一SPI接口主從切換,勢必降低模塊間通信速度與靈活性。依據可編程邏輯器件CPLD有其編程靈活、易擴展性,在模塊內部擴展專用SPI接口,試驗證明SPI接口電路設計,有簡化模塊間連接、提高通信速度、系統擴展性強,以及提高系統整體性能的特點。 |