|
stm嵌入式開(kāi)發(fā)教程_無(wú)線通信在嵌入式系統(tǒng)中的應(yīng)用,嵌入式視頻誰(shuí)講得好, 嵌入式視頻誰(shuí)教的好, 嵌入式視頻算法, 嵌入式視頻通話, 嵌入式視頻圖像邊緣檢測(cè)算法, 嵌入式視頻推薦, 嵌入式視頻推流, 嵌入式視頻網(wǎng)盤(pán), 嵌入式視頻網(wǎng)站, 嵌入式視頻微盤(pán)下載, 嵌入式視頻文件解碼, 嵌入式視頻下載, 嵌入式視頻下載+百度網(wǎng)盤(pán), 嵌入式視頻下載百度云, 嵌入式視頻下載鏈接, 嵌入式視頻小車(chē), 嵌入式視頻小車(chē)北京, 嵌入式視頻協(xié)議, 嵌入式視頻需要優(yōu)化嗎, 嵌入式視頻壓縮, 嵌入式視頻壓縮算法, 嵌入式視頻壓縮在國(guó)外的發(fā)展, 嵌入式視頻硬件接口, 嵌入式視頻怎么編輯,
微計(jì)算機(jī)信息 摘 要:本文介紹了無(wú)線數(shù)傳模塊在嵌入式系統(tǒng)中的應(yīng)用,嵌入式處理器與無(wú)線模塊的硬件接口設(shè)計(jì),無(wú)線模塊的驅(qū)動(dòng)程序的編寫(xiě),預(yù)約式點(diǎn)對(duì)多點(diǎn)無(wú)線通信的傳輸協(xié)議的制定以及實(shí)現(xiàn)。為無(wú)線通信在嵌入式系統(tǒng)中的應(yīng)用提供了有效的方案。
關(guān)鍵詞:無(wú)線通信;嵌入式系統(tǒng);協(xié)議1 引言
在傳統(tǒng)的遠(yuǎn)程監(jiān)測(cè)系統(tǒng)中大多采用pc機(jī)作為上位機(jī),通過(guò)rs485串行通信作為傳輸手段,因此系統(tǒng)有諸如工作不夠穩(wěn)定、連線繁多、擴(kuò)展性差等缺點(diǎn)。
本項(xiàng)目當(dāng)中采用32位嵌入式芯片組成的系統(tǒng)作為上位機(jī),其體積小、功耗小而且工作穩(wěn)定;上位機(jī)與下位機(jī)之間的傳輸采用無(wú)線傳輸方式,且上位機(jī)對(duì)下位機(jī)可配置,從而使得系統(tǒng)具有很強(qiáng)的擴(kuò)展性。這套系統(tǒng)具有更優(yōu)的性能,可以作為現(xiàn)有系統(tǒng)的升級(jí)產(chǎn)品。2 硬件結(jié)構(gòu)
上位機(jī)嵌入式系統(tǒng)采用在工控領(lǐng)域有傳統(tǒng)優(yōu)勢(shì)的摩托羅拉芯片(coldfire5249)為核心,配備4mbyte閃存和16mbyte內(nèi)存的系統(tǒng),此系統(tǒng)外擴(kuò)有網(wǎng)絡(luò)接口可通過(guò)局域網(wǎng)為客戶(hù)機(jī)提供數(shù)據(jù)服務(wù)。通過(guò)無(wú)線模塊與下位機(jī)進(jìn)行數(shù)據(jù)交換,獲取遠(yuǎn)程數(shù)據(jù),下達(dá)客戶(hù)機(jī)對(duì)遠(yuǎn)程對(duì)象的控制命令! 下位機(jī)采用基于8051的單片機(jī)系統(tǒng),他的主要功能是采集現(xiàn)場(chǎng)的數(shù)據(jù)以備上位機(jī)查詢(xún),執(zhí)行上位機(jī)轉(zhuǎn)發(fā)來(lái)的用戶(hù)指令。其中溫度傳感器采用ds18b20。
無(wú)線通信模塊采用ptr2000,ptr2000是收發(fā)一體的工作在國(guó)際通用數(shù)傳頻段433mhz的無(wú)線通信模塊。他最高傳輸速率可以達(dá)到20kbit/s,功耗低,待機(jī)狀態(tài)下僅為8ua,可以直接與cpu的串口連接使用。ptr2000的引腳定義如表1! tr2000的硬件連接非常簡(jiǎn)單,由3個(gè)通用i/o口分別控制txe,pwr,cs。di, do與cpu的串口連接。txe為1時(shí),為發(fā)送狀態(tài),txe為0時(shí),為接收狀態(tài)。狀態(tài)轉(zhuǎn)換需要5毫秒。pwr為0時(shí),為節(jié)電待機(jī)狀態(tài),此時(shí)模塊無(wú)法進(jìn)行接收或者發(fā)送。3 線通信協(xié)議及其軟件結(jié)構(gòu)
3.1 通信協(xié)議研究
在本系統(tǒng)中,網(wǎng)關(guān)(嵌入式系統(tǒng))與下位機(jī)(單片機(jī)系統(tǒng))之間采用無(wú)線通信方式。無(wú)線通信由于其無(wú)需布線、便于安裝、檢修升級(jí)容易、管理簡(jiǎn)單、靈活性強(qiáng)等諸多優(yōu)點(diǎn)已經(jīng)得到廣泛應(yīng)用,但是無(wú)線傳輸在傳輸過(guò)程中難以避免的會(huì)產(chǎn)生誤碼,而且產(chǎn)生誤碼的幾率要遠(yuǎn)遠(yuǎn)大于有線網(wǎng)絡(luò),并且誤碼的產(chǎn)生與多方面的因素有關(guān),因此有很大的不確定性。所以我們必須采用一種差錯(cuò)控制機(jī)制,但是我們不需要也很難實(shí)現(xiàn)太過(guò)于復(fù)雜的方法,我們可以采用停止等待協(xié)議來(lái)實(shí)現(xiàn)差錯(cuò)控制。此外,我們必須采用校驗(yàn)機(jī)制以確定何時(shí)需要重傳,crc校驗(yàn)碼的檢錯(cuò)能力很強(qiáng),它除了能檢查出離散錯(cuò)外,還能檢查出突發(fā)錯(cuò)?紤]到硬件和傳輸?shù)拈_(kāi)銷(xiāo)問(wèn)題,使用crc16校驗(yàn)碼。
本系統(tǒng)當(dāng)中我們所采用的無(wú)線數(shù)傳模塊是ptr2000,ptr2000靈敏性很高,因此在無(wú)載波的情況下在接收端會(huì)產(chǎn)生隨機(jī)的數(shù)據(jù),在通信協(xié)議中必須在有效數(shù)據(jù)前加上兩個(gè)或多個(gè)固定的前導(dǎo)字符作為同步信號(hào),使得接收端能夠辨別出有效數(shù)據(jù)的開(kāi)始。
本系統(tǒng)中所采用的是一點(diǎn)對(duì)多點(diǎn)的無(wú)線通信模式,因此必須選擇一種多址方式來(lái)實(shí)現(xiàn)點(diǎn)對(duì)多點(diǎn)通信,常用多址方式有時(shí)分多址(tdma)、頻分多址(fdma)、碼分多址(cdma)等,其中fdma為每一路通信提供一個(gè)不同的頻段,易于實(shí)現(xiàn),但是需要比較大的頻段資源,而且抗干擾能力差。cdma是采用不同的編碼來(lái)區(qū)分不同的信道,抗干擾能力強(qiáng),但是傳輸開(kāi)銷(xiāo)非常大,而且實(shí)現(xiàn)也比較復(fù)雜。tdma在同一時(shí)間內(nèi)只有一個(gè)信道可以通信,抗干擾能力較強(qiáng),傳輸開(kāi)銷(xiāo)較小,而且實(shí)現(xiàn)比較容易,雖然實(shí)時(shí)性較差,但是由于溫度的物理特性,此系統(tǒng)的實(shí)時(shí)性要求不高,所以可以采用時(shí)分多址(tdma)來(lái)實(shí)現(xiàn)。
3.2 通信協(xié)議制定 其中前導(dǎo)字符可采用0xaa、0xaa、0xff、0x00共4字節(jié),其中前兩個(gè)字節(jié)為同步信號(hào),后兩個(gè)字節(jié)為幀開(kāi)始標(biāo)志,接收端只要能夠接收到0xaa、0xaa、0xff、0x00就可以認(rèn)為新的一幀開(kāi)始了;幀類(lèi)型(4位)分為數(shù)據(jù)幀、有序數(shù)據(jù)幀、控制命令幀、確認(rèn)幀等多種幀類(lèi)型;幀編號(hào)(4位)為可選項(xiàng)與幀類(lèi)型相關(guān),只有幀類(lèi)型是有序數(shù)據(jù)幀時(shí)才有效;地址(1字節(jié))標(biāo)明數(shù)據(jù)幀的目的地址;有效數(shù)據(jù)長(zhǎng)度不定;校驗(yàn)為2字節(jié)crc16校驗(yàn)碼;結(jié)束標(biāo)志為0x00。
由于linux串行通信中有許多ascii碼是作為控制字符來(lái)使用,因此,對(duì)以上幀當(dāng)中除了前導(dǎo)字符和結(jié)束標(biāo)志外的數(shù)據(jù)進(jìn)行base64編碼。
3.3 通信協(xié)議的實(shí)現(xiàn)
嵌入式系統(tǒng)端軟件結(jié)構(gòu)
首先,在嵌入式操作系統(tǒng)中,由于通常只能在內(nèi)核態(tài)才能對(duì)硬件進(jìn)行訪問(wèn),所以軟件必須通過(guò)驅(qū)動(dòng)程序來(lái)操作硬件,在這里ptr2000可以看作一個(gè)串口設(shè)備來(lái)使用,但是,ptr2000是一個(gè)半雙工的通信模塊,發(fā)送接收狀態(tài)由txe來(lái)控制,因此,要對(duì)默認(rèn)的串口驅(qū)動(dòng)程序進(jìn)行一些修改,在串口驅(qū)動(dòng)程序中的write函數(shù)完成發(fā)送功能,我們需要在其中加入一個(gè)通用對(duì)i |
|