0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于S3C2410處理器和IEEE802.11b實現(xiàn)無線溫度變送器的設(shè)計

電子設(shè)計 ? 來源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2019-11-04 07:47 ? 次閱讀

IEEE802.11是IEEE無線局域網(wǎng)標準,主要用于用戶終端的無線接入。IEEE802.11只規(guī)定了開放式系統(tǒng)互聯(lián)參考模型的物理層和介質(zhì)訪問子層,其MAC層利用載波監(jiān)聽多路訪問/沖突避免(CSMA/CA)協(xié)議;定義了單一的MAC層和多樣的物理層,其物理層標準主要有IEEE802.11b、IEEE80211a和IEEE80211g。IEEE802.11b標準是IEEE802.11協(xié)議標準的擴展,最高可以支持11 Mbps的數(shù)據(jù)速率,運行在2.4 GHz的ISM頻段上,采用的調(diào)制技術(shù)是CCK,支持數(shù)據(jù)業(yè)務(wù)。

本文詳細分析了采用S3C2410處理器平臺具體實現(xiàn)運用于EPA網(wǎng)絡(luò)的IEEE802.11b無線實時溫度采集器的開發(fā)流程,并對串口通信的調(diào)試手段及常見問題進行了探討。

1 溫度變送器硬件設(shè)計

溫度變送器系統(tǒng)平臺硬件系統(tǒng)功能如圖1所示。該平臺的核心器件是Samsung公司的處理器S3C2410,外部擴展了16 MB、16位的Flash內(nèi)存和64 MB、32位的SDRAM。處理器S3C2410通過UART接口和溫度變送器相連,通過USB接口和一個IEEE802.11b網(wǎng)絡(luò)接口卡相連,通過RS232串口和外部PC相連。溫度變送器采集到的溫度數(shù)據(jù)輸入系統(tǒng)緩沖區(qū)中,處理器S3C2410可對緩沖數(shù)據(jù)直接進行相關(guān)處理;處理后的數(shù)據(jù)可以通過RS232串口傳送給外部宿主機PC,也可通過IEEE802.11b網(wǎng)絡(luò)接口卡發(fā)送到無線局域網(wǎng)上。

S3C2410處理器功能十分強大,資源豐富。它內(nèi)部集成了ARM公司的32位微處理器ARM920T,主頻最高可達203 MHz,具有獨立的16 KB指令Cache和16 KB數(shù)據(jù)Cache,還有LCD控制器、RAM控制器、NAND閃存控制器、3路UART、4路DMA、4路帶PWM的Timer、并行I/O口、8路10位ADC、觸摸屏接口、2個USB接口控制器和2路SPI。

從外部溫度傳感器采集到的數(shù)據(jù)經(jīng)S3C2410 CPU數(shù)據(jù)處理模塊傳回到IEEE802.11b USB接口卡;IEEE802.11b的無線通信模塊經(jīng)IEEE802.11b的接入點傳到外部以太網(wǎng)絡(luò)中。

基于S3C2410處理器和IEEE802.11b實現(xiàn)無線溫度變送器的設(shè)計

圖1硬件系統(tǒng)功能

2 溫度變送器的軟件系統(tǒng)設(shè)計

溫度變送器軟件系統(tǒng)設(shè)計流程如圖2所示。系統(tǒng)分3步實現(xiàn):① 為溫度變送器編寫內(nèi)核驅(qū)動程序;② 編寫溫度數(shù)據(jù)采集應(yīng)用程序,通過串口獲取溫度數(shù)據(jù)并進行相應(yīng)的EPA報文打包處理;③ 利用無線網(wǎng)絡(luò)將處理數(shù)據(jù)發(fā)送給上位機。前面提到系統(tǒng)平臺上運行的是ARM Linux。在啟動后啟用了MMU,系統(tǒng)進入保護模式,所以應(yīng)用程序不能直接讀/寫外設(shè)的I/O區(qū)域(包括I/O端口和I/O內(nèi)存)。這時一般要借助于該外設(shè)的驅(qū)動來進入內(nèi)核態(tài)完成這項工作。

基于S3C2410處理器和IEEE802.11b實現(xiàn)無線溫度變送器的設(shè)計

圖2軟件系統(tǒng)設(shè)計流程

2.1 串口的驅(qū)動實現(xiàn)

在Linux下,設(shè)備驅(qū)動程序可以看成Linux內(nèi)核與外部設(shè)備之間的接口。設(shè)備驅(qū)動程序向應(yīng)用程序屏蔽了硬件實現(xiàn)上的細節(jié),使得應(yīng)用程序可以像操作普通文件一樣來操作外部設(shè)備,可以使用和操作文件中相同的、標準的系統(tǒng)調(diào)用接口函數(shù)來完成對硬件設(shè)備的打開、關(guān)閉、讀/寫以及I/O控制操作; 而驅(qū)動程序的主要任務(wù)也就是要實現(xiàn)這些系統(tǒng)調(diào)用函數(shù)。本系統(tǒng)平臺使用的嵌入式ARM Linux系統(tǒng)在內(nèi)核主要功能上與Linux操作系統(tǒng)沒有本質(zhì)區(qū)別,所以驅(qū)動程序要完成的任務(wù)也一樣;只是編譯時使用的編譯器、部分頭文件和庫文件等要涉及具體處理器體系結(jié)構(gòu), 這些都可在Makefile文件中具體指定。當(dāng)應(yīng)用程序?qū)υO(shè)備文件進行諸如open、close、read、write等系統(tǒng)調(diào)用操作時,Linux內(nèi)核將通過file_operations結(jié)構(gòu)訪問驅(qū)動程序提供的函數(shù)。例如,當(dāng)應(yīng)用程序?qū)υO(shè)備文件執(zhí)行讀操作時, 內(nèi)核將調(diào)用file_operations結(jié)構(gòu)中的read函數(shù)。在系統(tǒng)平臺上對串口數(shù)碼攝像頭驅(qū)動,首先把串口驅(qū)動模塊靜態(tài)編譯進內(nèi)核,使平臺支持串口;再在須使用溫度采集時,使用insmode動態(tài)加載其驅(qū)動模塊。這樣溫度傳感器就可正常工作了,接著進行下一步——對溫度的采集編程。

2.2 溫度數(shù)據(jù)采集模塊

在溫度變送器串口被驅(qū)動后,需要再編寫一個采集溫度的應(yīng)用程序。根據(jù)嵌入式系統(tǒng)開發(fā)特征,先在宿主機上流程編寫應(yīng)用程序;再使用交叉編譯器進行編譯、鏈接,生成目標平臺的可執(zhí)行文件。宿主機與目標板通信采用打印終端的方式進行交叉調(diào)試, 成功后移植到目標平臺。編寫采集程序是在安裝Linux操作系統(tǒng)的宿主PC機上進行的,其程序流程如圖3所示。

基于S3C2410處理器和IEEE802.11b實現(xiàn)無線溫度變送器的設(shè)計

圖3溫度數(shù)據(jù)采集程序

程序運行流程如下:

① 初始化設(shè)備功能,發(fā)送03H給溫度變送器。如果初始化失敗,則重復(fù)發(fā)送初始化功能碼2次,若都失敗則返回;若成功則進入下一步。

② 進行數(shù)據(jù)查詢,查詢消息中的功能代碼告之被選中的從設(shè)備要實現(xiàn)何種功能。數(shù)據(jù)段包含了從設(shè)備要實現(xiàn)功能的任何附加信息,即讀取或修改的起始地址以及數(shù)據(jù)數(shù)量。CRC校驗為從設(shè)備提供了一種驗證消息內(nèi)容是否正確的方法。

③ 如果從設(shè)備產(chǎn)生一個正常的響應(yīng),則響應(yīng)消息中的功能代碼是查詢消息中的功能代碼的回應(yīng)。數(shù)據(jù)段包括了從設(shè)備收集的數(shù)據(jù)。如果有錯誤發(fā)生,則從設(shè)備將修改功能代碼以表明此回應(yīng)是一個異常的回應(yīng);同時數(shù)據(jù)段中包含相應(yīng)的錯誤代碼,CRC校驗用于主設(shè)備判斷響應(yīng)幀內(nèi)容的正確性。

④ 將從設(shè)備得到的數(shù)據(jù)運用EPA協(xié)議棧進行數(shù)據(jù)的封裝,然后通過IEEE802.11b無線網(wǎng)卡發(fā)送到數(shù)據(jù)分析設(shè)備。

⑤ 根據(jù)對數(shù)據(jù)的處理,將得到返回的數(shù)據(jù),程序再將返回數(shù)據(jù)寫入從設(shè)備。如果寫入失敗,則連續(xù)寫兩次,若仍失敗則跳出。

系統(tǒng)采用主從通信技術(shù), S3C2410處理器模塊作為主設(shè)備,溫度傳感器作為從設(shè)備。主設(shè)備可以對溫度傳感器進行初始化,并發(fā)出查詢指令;溫度傳感器根據(jù)主設(shè)備查詢指令實現(xiàn)相應(yīng)的功能。S3C2410處理器模塊查詢的格式包括功能代碼、所有要發(fā)送的數(shù)據(jù)和CRC校驗域;從設(shè)備回應(yīng)消息也包括相應(yīng)的功能代碼、任何要返回的數(shù)據(jù)和CRC校驗域。如果在消息接收過程中發(fā)生錯誤,從設(shè)備將構(gòu)造一錯誤幀并將其作為應(yīng)答回應(yīng)。程序中構(gòu)造的幀格式如下:

主設(shè)備查詢幀

基于S3C2410處理器和IEEE802.11b實現(xiàn)無線溫度變送器的設(shè)計

從設(shè)備響應(yīng)幀

基于S3C2410處理器和IEEE802.11b實現(xiàn)無線溫度變送器的設(shè)計

當(dāng)主設(shè)備查詢從設(shè)備時,它希望得到從設(shè)備的正常響應(yīng),但可能有3種處理情形:

① 從設(shè)備收到了主設(shè)備的查詢,且全部校驗正確,從設(shè)備就產(chǎn)生正確的響應(yīng)。

② 從設(shè)備由于通信錯誤等沒有收到主設(shè)備的查詢,因此也就無法產(chǎn)生響應(yīng)。這時主設(shè)備將通過超時判斷查詢的錯誤。

③ 從設(shè)備收到了主設(shè)備的查詢,但檢測出通信幀內(nèi)容出錯(如CRC校驗出錯或非法的起始地址等),這時從設(shè)備將產(chǎn)生異常響應(yīng)通知主設(shè)備相關(guān)的錯誤信息。

最后將采集數(shù)據(jù)用EPA協(xié)議棧打包,并利用無線網(wǎng)絡(luò)進行傳輸。

2.3 無線網(wǎng)絡(luò)模塊

無線溫度變換器的實時數(shù)據(jù)無線網(wǎng)絡(luò)模塊是將無線網(wǎng)卡注入內(nèi)核,“插槽”驅(qū)動層通過API為PC卡服務(wù)層提供服務(wù),編寫“插槽”層驅(qū)動就是實現(xiàn)這些API函數(shù)。PC卡服務(wù)層維護著一張函數(shù)表,記錄已登記的“插槽”驅(qū)動層的API函數(shù),相應(yīng)地提供了兩個接口函數(shù)用來登記和取消登記一個“插槽”驅(qū)動層的API函數(shù)。定義如下:

int register_ss_entry(int nsock, ss_entry_t ss_entry);

int unregister_ss_entry(int nsock, ss_entry_t ss_entry);

typedef int (*ss_entry_t)(u_int sock, u_int cmd, void *arg);

◆ 函數(shù)register_ss_entry: 用來登記一個“插槽”驅(qū)動層服務(wù)函數(shù)。

◆ 函數(shù)unregister_ss_entry: 用來取消指定函數(shù)的登記,表明“插槽”層不再提供該服務(wù)。

◆ 具體服務(wù)函數(shù)ss_sentry: 該函數(shù)的編寫是核心。它包括3個參數(shù): 第1個參數(shù)sock是插槽編號;第2個參數(shù)cmd是命令,即服務(wù)函數(shù)的編碼;第3個參數(shù)是一個void類型的指針,用來傳遞任意的參數(shù)。

PCMCIA“卡和插槽服務(wù)”(Card and Socket Services)軟件規(guī)范要求插槽層提供的服務(wù)共有12項,Linux操作系統(tǒng)定義在include\\pcmcia\\ss.h文件里。

enum ss_service {

SS_RegisterCallback, SS_InquireSocket,

SS_GetStatus, SS_GetSocket, SS_SetSocket,

SS_GetIOMap, SS_SetIOMap, SS_GetMemMap, SS_SetMemMap,

SS_GetBridge, SS_SetBridge, SS_ProcSetup

};

3 測試

首先在宿主機PC上使用交叉編譯器編譯、鏈接溫度數(shù)據(jù)采集程序,使之生成可執(zhí)行代碼,然后移植到目標平臺上。為了進一步觀察采集的溫度數(shù)據(jù)效果,可在目標平臺帶網(wǎng)絡(luò)支持的基礎(chǔ)上編寫一個網(wǎng)絡(luò)通信程序,把采集到并處理成浮點型的溫度數(shù)據(jù)通過網(wǎng)絡(luò)傳輸?shù)絇C機上進行顯示。搭建無線溫度變送器的測試系統(tǒng)如圖4所示。

基于S3C2410處理器和IEEE802.11b實現(xiàn)無線溫度變送器的設(shè)計

圖4IEEE802.11b

無線溫度變送器的測試系統(tǒng)無線監(jiān)控系統(tǒng)采集的基于S3C2410的IEEE802.11b無線溫度變送器的實時數(shù)據(jù)如圖5所示。

基于S3C2410處理器和IEEE802.11b實現(xiàn)無線溫度變送器的設(shè)計

圖5IEEE802.11b

4 結(jié)論

實際的溫度測量數(shù)據(jù)表明,基于IEEE802.11b的EPA溫度數(shù)據(jù)采集器可以很好地完成溫度數(shù)據(jù)的采集處理,并通過無線接入點與相關(guān)設(shè)備進行通信。另外,在基于EPA標準的無線局域網(wǎng)系統(tǒng)應(yīng)用中,驗證了此設(shè)計的可行性。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19035

    瀏覽量

    228452
  • 變送器
    +關(guān)注

    關(guān)注

    13

    文章

    1368

    瀏覽量

    90906
  • 無線
    +關(guān)注

    關(guān)注

    31

    文章

    5402

    瀏覽量

    172853
收藏 人收藏

    評論

    相關(guān)推薦

    S3C2410處理器與Nand flash 的問題

    一個64M Nand flash存儲S3C2410處理器的Nand flash相應(yīng)接口連接,請問這個64M存儲空間是否屬于8個bank中的一個bank?因為有些書上說bank 0到bank 7
    發(fā)表于 11-20 21:41

    S3C2410處理器

    S3C2410處理器通過GPD端口連接LED1-4四個燈,試著畫出其電路連接圖,并變成實現(xiàn)其逐一點亮功能。
    發(fā)表于 11-23 21:50

    基于ARM S3C2410處理器的PDA人機接口電路設(shè)計

    結(jié)束語   本文結(jié)合實際消費電子PDA的研究與開發(fā)要求,參照目前國內(nèi)外PDA的各種功能和結(jié)合實際需要,選用三星公司的S3C2410處理器,結(jié)合PDA通用功能的需要,并考慮硬件擴展的方便性,設(shè)計了PDA
    發(fā)表于 06-19 05:00

    EPA協(xié)議在IEEE802.11b無線現(xiàn)場設(shè)備中怎么實現(xiàn)

    本文主要討論了EPA協(xié)議在IEEE802.11b無線現(xiàn)場設(shè)備中的實現(xiàn)和測控。
    發(fā)表于 05-27 06:30

    基于S3C2410嵌入式無線監(jiān)控系統(tǒng)的設(shè)計

    為了對無人職守的監(jiān)控現(xiàn)場進行有效監(jiān)控,我們設(shè)計實現(xiàn)了基于三星的S3C2410 嵌入式處理器的監(jiān)控系統(tǒng), 同時利用GPRS/CDMA 無線技術(shù),通過Internet 互聯(lián)網(wǎng)
    發(fā)表于 09-09 16:25 ?31次下載

    S3C2410處理器 Bootloader(Vivi)源代碼

    S3C2410處理器 Bootloader(Vivi)源代碼分析 這邊的2410開發(fā)板提供的光盤上已附交叉編譯工具:arm-linux-gcc-2.95.3(源碼為cross-2.
    發(fā)表于 02-09 15:39 ?22次下載

    基于S3C2410的RTC模塊應(yīng)用設(shè)計

    基于S3C2410的RTC模塊應(yīng)用設(shè)計 摘 要:本文簡要介紹了S3C2410嵌入式微處理器,分析了RTC(Real-time clock)硬件構(gòu)架及其工作
    發(fā)表于 04-08 23:13 ?1579次閱讀
    基于<b class='flag-5'>S3C2410</b>的RTC模塊應(yīng)用設(shè)計

    IEEE802.11b協(xié)議標準

    IEEE802.11b協(xié)議標準   IEEE802.11b是美國電機電子工程師協(xié)會(IEEE)為了改進其最初推出的無線標準IEEE802
    發(fā)表于 01-06 11:05 ?1852次閱讀

    Windows CE.NET在S3C2410處理器上的移植

      本文分析了嵌入式操作系統(tǒng)Windows CE。NET的特點,并利用工具Platform Builder 4。2完成了其在以ARM920T為核心的S3C2410處理器上的定制。   1 Windows CE系統(tǒng)和Platform Builder 4.2
    發(fā)表于 08-27 14:41 ?597次閱讀
    Windows CE.NET在<b class='flag-5'>S3C2410</b><b class='flag-5'>處理器</b>上的移植

    S3C2410處理器特性

    S3C2410處理器是Samsung公司基于ARM公司的ARM920T處理器核,采用0.18um制造工藝的32位微控制。
    發(fā)表于 10-10 11:52 ?5456次閱讀

    基于S3C2410處理器對Windows CE 5.0操作系統(tǒng)實現(xiàn)BSP移植

    ,是一種硬實時嵌入式操作系統(tǒng),它可以在多種處理器架構(gòu)(如x86、MIPS、ARM和 SH4)上運行,Windows CE支持ARM體系結(jié)構(gòu),這是基于S3C2410 處理器進行BSP移植的前提條件
    發(fā)表于 03-06 10:10 ?1016次閱讀
    基于<b class='flag-5'>S3C2410</b><b class='flag-5'>處理器</b>對Windows CE 5.0操作系統(tǒng)<b class='flag-5'>實現(xiàn)</b>BSP移植

    基于在S3C2410處理器平臺上實現(xiàn)Windows CE.NET的應(yīng)用設(shè)計

    本文分析了嵌入式操作系統(tǒng)Windows CE.NET的特點,并利用工具Platform Builder 4。2完成了其在以ARM920T為核心的S3C2410處理器上的定制。
    的頭像 發(fā)表于 09-24 10:03 ?2497次閱讀
    基于在<b class='flag-5'>S3C2410</b><b class='flag-5'>處理器</b>平臺上<b class='flag-5'>實現(xiàn)</b>Windows CE.NET的應(yīng)用設(shè)計

    基于S3C2410處理器實現(xiàn)USB網(wǎng)卡無線網(wǎng)絡(luò)功能的實現(xiàn)

    目前,嵌入式技術(shù)已廣泛應(yīng)用于工業(yè)控制、消費類電子產(chǎn)品、通信系統(tǒng)等各類市場產(chǎn)品。并且隨著互聯(lián)網(wǎng)的日益發(fā)達,具有無線接入功能的嵌入式系統(tǒng)更加具有發(fā)展前景。本文將介紹支持IEEE 802.11g協(xié)議的54M USB
    的頭像 發(fā)表于 05-05 17:04 ?1919次閱讀
    基于<b class='flag-5'>S3C2410</b><b class='flag-5'>處理器</b><b class='flag-5'>實現(xiàn)</b>USB網(wǎng)卡<b class='flag-5'>無線</b>網(wǎng)絡(luò)功能的<b class='flag-5'>實現(xiàn)</b>

    基于S3C2410處理器和Linux實現(xiàn)嵌入式網(wǎng)關(guān)的設(shè)計

    介紹了一種基于ARM9的嵌入式以太網(wǎng)的設(shè)計方案。基于ARM內(nèi)核微處理器S3C2410的功能特點及其外擴組成部分,分析了以太網(wǎng)控制芯片RTL8019AS的性能以及與S3C2410的接口
    的頭像 發(fā)表于 06-22 14:28 ?2541次閱讀
    基于<b class='flag-5'>S3C2410</b>微<b class='flag-5'>處理器</b>和Linux<b class='flag-5'>實現(xiàn)</b>嵌入式網(wǎng)關(guān)的設(shè)計

    基于S3C2410處理器實現(xiàn)3G無線網(wǎng)卡接入無線網(wǎng)絡(luò)功能的設(shè)計

    本研究的目的是實現(xiàn)一個具有3G無線網(wǎng)絡(luò)接入功能的嵌入式系統(tǒng)。系統(tǒng)的硬件平臺是基于ARM系列的S3C2410處理器。文章簡要介紹了該系統(tǒng)的體
    的頭像 發(fā)表于 06-24 16:48 ?2498次閱讀
    基于<b class='flag-5'>S3C2410</b><b class='flag-5'>處理器</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>3</b>G<b class='flag-5'>無線</b>網(wǎng)卡接入<b class='flag-5'>無線</b>網(wǎng)絡(luò)功能的設(shè)計