基于IEEE802.11b的EPA溫度變送器設計
發布時間:2007/8/31 0:00:00 訪問次數:35592
作者:重慶郵電學院 楊云 王平 鐘剛
摘要:介紹一種基于IEEE80211b的EPA溫度變送器的設計方案,闡述系統硬件和軟件結構,說明嵌入式Linux系統中驅動程序的開發過程。系統以S3C2410為核心器件,可以很好地完成溫度數據的采集處理,并可以通過IEEE80211b接入點與相關設備進行通信,且在基于EPA標準的無線局域網系統中進行了測試。
關鍵詞:EPA IEEE802.11b 嵌入式Linux 溫度變送器
引言
IEEE802.11是IEEE無線局域網標準,主要用于用戶終端的無線接入。IEEE802.11只規定了開放式系統互聯參考模型的物理層和介質訪問子層,其MAC層利用載波監聽多路訪問/沖突避免(CSMA/CA)協議;定義了單一的MAC層和多樣的物理層,其物理層標準主要有IEEE802.11b、IEEE80211a和IEEE80211g。IEEE802.11b標準是IEEE802.11協議標準的擴展,最高可以支持11 Mbps的數據速率,運行在2.4 GHz的ISM頻段上,采用的調制技術是CCK,支持數據業務。
本文詳細分析了采用S3C2410處理器平臺具體實現運用于EPA網絡的IEEE802.11b無線實時溫度采集器的開發流程,并對串口通信的調試手段及常見問題進行了探討。
1 溫度變送器的硬件設計
溫度變送器系統平臺硬件系統功能如圖1所示。該平臺的核心器件是Samsung公司的處理器S3C2410,外部擴展了16 MB、16位的Flash內存和64 MB、32位的SDRAM。處理器S3C2410通過UART接口和溫度變送器相連,通過USB接口和一個IEEE802.11b網絡接口卡相連,通過RS232串口和外部PC相連。溫度變送器采集到的溫度數據輸入系統緩沖區中,處理器S3C2410可對緩沖數據直接進行相關處理;處理后的數據可以通過RS232串口傳送給外部宿主機PC,也可通過IEEE802.11b網絡接口卡發送到無線局域網上。
S3C2410處理器功能十分強大,資源豐富。它內部集成了ARM公司的32位微處理器ARM920T,主頻最高可達203 MHz,具有獨立的16 KB指令Cache和16 KB數據Cache,還有LCD控制器、RAM控制器、NAND閃存控制器、3路UART、4路DMA、4路帶PWM的Timer、并行I/O口、8路10位ADC、觸摸屏接口、2個USB接口控制器和2路SPI。
從外部溫度傳感器采集到的數據經S3C2410 CPU數據處理模塊傳回到IEEE802.11b USB接口卡;IEEE802.11b的無線通信模塊經IEEE802.11b的接入點傳到外部以太網絡中。
圖1硬件系統功能
2 溫度變送器的軟件系統設計
溫度變送器軟件系統設計流程如圖2所示。系統分3步實現:① 為溫度變送器編寫內核驅動程序;② 編寫溫度數據采集應用程序,通過串口獲取溫度數據并進行相應的EPA報文打包處理;③ 利用無線網絡將處理數據發送給上位機。前面提到系統平臺上運行的是ARM Linux。在啟動后啟用了MMU,系統進入保護模式,所以應用程序不能直接讀/寫外設的I/O區域(包括I/O端口和I/O內存)。這時一般要借助于該外設的驅動來進入內核態完成這項工作。
圖2軟件系統設計流程
2.1 串口的驅動實現
在Linux下,設備驅動程序可以看成Linux內核與外部設備之間的接口。設備驅動程序向應用程序屏蔽了硬件實現上的細節,使得應用程序可以像操作普通文件一樣來操作外部設備,可以使用和操作文件中相同的、標準的系統調用接口函數來完成對硬件設備的打開、關閉、讀/寫以及I/O控制操作; 而驅動程序的主要任務也就是要實現這些系統調用函數。本系統平臺使用的嵌入式ARM Linux系統在內核主要功能上與Linux操作系統沒有本質區別,所以驅動程序要完成的任務也一樣;只是編譯時使用的編譯器、部分頭文件和庫文件等要涉及具體處理器體系結構, 這些都可在Makefile文件中具體指定。當應用程序對設備文件進行諸如open、close、read、write等系統調用操作時,Linux內核將通過file_operations結構訪問驅動程序提供的函數。例如,當應用程序對設備文件執行讀操作時, 內核將調用file_operations結構中的read函數。在系統平臺上對串口數碼攝像頭驅動,首先把串口驅動模塊靜態編譯進內核,使平臺支持串口;再在須使用溫度采集時,使用insmode動態加載其驅動模塊。這樣溫度傳感器就可正常工作了,接著進行下一步——對溫度的采集編程。
2.2 溫度數據采集模塊
在溫度變送器串口被驅動后,需要再編寫一個采集溫度的應用程序。根據嵌入式系統開發特征,先在宿主機上流程編寫應用程序;再使用交叉編譯器進行編譯、鏈接,生成目標平臺的可執行文件。宿主機與目標板通信采用打印終端的方式進行交叉調試, 成功后移植到目標平臺。編寫采集程序是在安裝Linux操作系統的宿主PC機上進行的,其程序流程如圖3所示。
圖3溫度數據采集程序
程
作者:重慶郵電學院 楊云 王平 鐘剛
摘要:介紹一種基于IEEE80211b的EPA溫度變送器的設計方案,闡述系統硬件和軟件結構,說明嵌入式Linux系統中驅動程序的開發過程。系統以S3C2410為核心器件,可以很好地完成溫度數據的采集處理,并可以通過IEEE80211b接入點與相關設備進行通信,且在基于EPA標準的無線局域網系統中進行了測試。
關鍵詞:EPA IEEE802.11b 嵌入式Linux 溫度變送器
引言
IEEE802.11是IEEE無線局域網標準,主要用于用戶終端的無線接入。IEEE802.11只規定了開放式系統互聯參考模型的物理層和介質訪問子層,其MAC層利用載波監聽多路訪問/沖突避免(CSMA/CA)協議;定義了單一的MAC層和多樣的物理層,其物理層標準主要有IEEE802.11b、IEEE80211a和IEEE80211g。IEEE802.11b標準是IEEE802.11協議標準的擴展,最高可以支持11 Mbps的數據速率,運行在2.4 GHz的ISM頻段上,采用的調制技術是CCK,支持數據業務。
本文詳細分析了采用S3C2410處理器平臺具體實現運用于EPA網絡的IEEE802.11b無線實時溫度采集器的開發流程,并對串口通信的調試手段及常見問題進行了探討。
1 溫度變送器的硬件設計
溫度變送器系統平臺硬件系統功能如圖1所示。該平臺的核心器件是Samsung公司的處理器S3C2410,外部擴展了16 MB、16位的Flash內存和64 MB、32位的SDRAM。處理器S3C2410通過UART接口和溫度變送器相連,通過USB接口和一個IEEE802.11b網絡接口卡相連,通過RS232串口和外部PC相連。溫度變送器采集到的溫度數據輸入系統緩沖區中,處理器S3C2410可對緩沖數據直接進行相關處理;處理后的數據可以通過RS232串口傳送給外部宿主機PC,也可通過IEEE802.11b網絡接口卡發送到無線局域網上。
S3C2410處理器功能十分強大,資源豐富。它內部集成了ARM公司的32位微處理器ARM920T,主頻最高可達203 MHz,具有獨立的16 KB指令Cache和16 KB數據Cache,還有LCD控制器、RAM控制器、NAND閃存控制器、3路UART、4路DMA、4路帶PWM的Timer、并行I/O口、8路10位ADC、觸摸屏接口、2個USB接口控制器和2路SPI。
從外部溫度傳感器采集到的數據經S3C2410 CPU數據處理模塊傳回到IEEE802.11b USB接口卡;IEEE802.11b的無線通信模塊經IEEE802.11b的接入點傳到外部以太網絡中。
圖1硬件系統功能
2 溫度變送器的軟件系統設計
溫度變送器軟件系統設計流程如圖2所示。系統分3步實現:① 為溫度變送器編寫內核驅動程序;② 編寫溫度數據采集應用程序,通過串口獲取溫度數據并進行相應的EPA報文打包處理;③ 利用無線網絡將處理數據發送給上位機。前面提到系統平臺上運行的是ARM Linux。在啟動后啟用了MMU,系統進入保護模式,所以應用程序不能直接讀/寫外設的I/O區域(包括I/O端口和I/O內存)。這時一般要借助于該外設的驅動來進入內核態完成這項工作。
圖2軟件系統設計流程
2.1 串口的驅動實現
在Linux下,設備驅動程序可以看成Linux內核與外部設備之間的接口。設備驅動程序向應用程序屏蔽了硬件實現上的細節,使得應用程序可以像操作普通文件一樣來操作外部設備,可以使用和操作文件中相同的、標準的系統調用接口函數來完成對硬件設備的打開、關閉、讀/寫以及I/O控制操作; 而驅動程序的主要任務也就是要實現這些系統調用函數。本系統平臺使用的嵌入式ARM Linux系統在內核主要功能上與Linux操作系統沒有本質區別,所以驅動程序要完成的任務也一樣;只是編譯時使用的編譯器、部分頭文件和庫文件等要涉及具體處理器體系結構, 這些都可在Makefile文件中具體指定。當應用程序對設備文件進行諸如open、close、read、write等系統調用操作時,Linux內核將通過file_operations結構訪問驅動程序提供的函數。例如,當應用程序對設備文件執行讀操作時, 內核將調用file_operations結構中的read函數。在系統平臺上對串口數碼攝像頭驅動,首先把串口驅動模塊靜態編譯進內核,使平臺支持串口;再在須使用溫度采集時,使用insmode動態加載其驅動模塊。這樣溫度傳感器就可正常工作了,接著進行下一步——對溫度的采集編程。
2.2 溫度數據采集模塊
在溫度變送器串口被驅動后,需要再編寫一個采集溫度的應用程序。根據嵌入式系統開發特征,先在宿主機上流程編寫應用程序;再使用交叉編譯器進行編譯、鏈接,生成目標平臺的可執行文件。宿主機與目標板通信采用打印終端的方式進行交叉調試, 成功后移植到目標平臺。編寫采集程序是在安裝Linux操作系統的宿主PC機上進行的,其程序流程如圖3所示。
圖3溫度數據采集程序
程