5FatFS文件係統移植
為了方便外部Flash中字庫文件的讀取和寫入,引入了FatFS文件係統。FatFS是一個完全免費開源的FAT文件係統模塊,專門為小型嵌入式係統而設計[7]。它完全用標準C語言編寫,因此具有良好的硬件平台獨立性,可以移植到8051、PIC、AVR、ARM等係列單片機上而隻需做簡單的修改。它支持FAT12、FAT16和FAT32,支持多個存儲媒介;有獨立的緩衝區,可以對多個文件進行讀和寫,並且特別對8位單片機和16位單片機做了優化。
FatFS模塊的層次結構圖。最頂層是應用層,使用者無需理會FatFS的內部結構和複雜的FAT協議,隻需要調用FatFS模塊提供給用戶的一係列應用接口函數,如f_open,f_read,f_write和f_close等,就可以像在PC上讀/寫文件那樣簡單。中間層FatFS模塊,實現了FAT文件讀/寫協議。FatFS模塊提供的是ff.c和ff.h。除非有必要,使用者一般不用修改,使用時將頭文件直接包含進去即可。
需要編寫移植代碼的是FatFS模塊提供的底層接口,包括存儲媒介讀/寫接口和供給文件創建修改時間的實時時鍾。
FatFS源碼可以在官方網站下載到。下載到FatFS軟件包後,解壓可得到兩個文件:doc和src。doc裏麵是對FatFS的介紹,src裏麵才是我們需要的源碼。
移植FatFS的時候,隻需要修改2個文件,ffconf.h和diskio.c。FatFS模塊的所有配置項都在ffconf.h裏麵,通過配置裏麵的一些選項來滿足自己的需求。FatFS的移植大致分為如下3步:根據具體編譯器,在interger.h裏麵定義好數據的類型;通過ffconf.h配置FatFS的相關功能,滿足係統需要;在diskio.c裏麵編寫底層驅動函數,實現物理磁盤的讀寫等。
6測試
係統接上電源後,會逐步配置WiFi網絡各項參數,我們通過觸摸屏將采集終端設置成TCP服務器模式,IP地址設為192.168.16.254,通信端口號為8086,建立好WiFi網絡(網絡名稱為“HLK-RM04養蜂車”)。手機連接HLK-RM04無線網絡後,打開通信客戶端軟件,選擇TCP客戶端模式,按照以上IP地址和端口號連接到采集終端。接下來就可以用進行溫濕度的采集了。
7結語
近年來,物聯網在人們生活中的應用越來越廣泛。WiFi技術作為物聯網的一項關鍵技術,因其快捷方便、無需布線等特點越來越受到人們的青睞。本文順應這種趨勢,介紹了一種基於WiFi組網技術的溫濕度采集終端的設計和實現方法。係統經測試後,運行效果良好,具有一定的應用價值。當然,該設計方案還有很多可以改進的地方,比如通過WiFi自組網實現多個采集終端的數據轉發實現中長距離的WiFi數據傳輸以解決WiFi傳輸距離短的問題等。總之,該設計方案很好地體現和深化了“物聯網”的含義,優化後可用於智能家居、遠程監控等諸多領域。
參考文獻
[1]王朝煒,王衛東.物聯網無線傳輸技術與應用[M].北京:北京郵電大學出版社,2012.
[2]汪濤.無線網絡技術導論[M].北京:清華大學出版社,2012.
[3]董健.物聯網與短距離無線通信技術[M].北京:電子工業出版社,2012.
[4]姚文詳.ARM Cortex-M3權威指南[M].北京:北京航空航天大學出版社,2009.
[5]劉軍,張洋.STM32開發之南-庫函數開發版本[M].北京:北京航空航天大學出版社,2012.
[6]韓英梅,趙建平.基於DHT11的無線溫濕度傳感器網絡節點的設計[J].井岡山大學學報,2010,31(5):67-70.
[7]李世奇,董浩斌.基於FatFs文件係統的SD卡存儲器設計[J].測控技術,2011,30(12):79-81.
[8]倪天龍.單總線傳感器DHT11在溫濕度測控中的應用[J].單片機與嵌入式係統應用,2010(6):60-62.