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

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

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

通過(guò)單片機(jī)的無(wú)線通信軟件實(shí)現(xiàn)編解碼的解決方案介紹

電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2018-11-06 08:20 ? 次閱讀

隨著無(wú)線通信芯片技術(shù)的發(fā)展,越來(lái)越多的便攜式或電池供電的無(wú)線傳輸設(shè)備進(jìn)入人們?nèi)粘I钪?。例如,遙控車(chē)門(mén)開(kāi)關(guān)(RKE)系統(tǒng)、汽車(chē)輪胎壓力監(jiān)視系統(tǒng)(TPMS)、無(wú)線內(nèi)窺鏡系統(tǒng)、藍(lán)牙技術(shù)等。利用單片機(jī)和無(wú)線數(shù)傳模塊來(lái)完成無(wú)線數(shù)據(jù)通信在石油、電力、水文、冶金等行業(yè)的無(wú)線控制、數(shù)據(jù)采集、報(bào)警諸多領(lǐng)域中有著廣泛的應(yīng)用前景。通常采用的辦法是用單片機(jī)的串行I/ O 口來(lái)完成數(shù)據(jù)通信,但是該方法有許多不足之處:第一、在利用單片機(jī)的串口進(jìn)行發(fā)送和接收數(shù)據(jù)時(shí),對(duì)傳輸?shù)臄?shù)據(jù)只能進(jìn)行奇偶校驗(yàn),然而在無(wú)線通信場(chǎng)合,被傳輸?shù)臄?shù)據(jù)極易受到電磁、靜電等的干擾,奇偶校驗(yàn)一般不能檢測(cè)出這類(lèi)干擾所引起的突發(fā)性錯(cuò)誤,所以該方法無(wú)法滿足差錯(cuò)檢測(cè)要求較高的場(chǎng)合;第二、由于單片機(jī)一般采用異步通信方式,接受器通常不能很快的接收到有效數(shù)據(jù),因而該方法也不能滿足要求多路進(jìn)行快速切換的場(chǎng)合;第三、單片機(jī)的串口通信在傳輸速率和每幀的有效數(shù)據(jù)位數(shù)等方面都受到了嚴(yán)格的限制,缺乏靈活性。本文針對(duì)低速無(wú)線通信的場(chǎng)合,提出了一種通過(guò)單片機(jī)用軟件實(shí)現(xiàn)編解碼的方案,該方案可以有效克服上述單片機(jī)串口通信的不足之處, 在無(wú)線通信中得到了令人滿意的效果。

1 編碼原理及程序流程

1.1 編碼原理

假設(shè)傳輸?shù)臄?shù)據(jù)精度為12位,以A8BH為例,其幀格式如圖1 所示,高位在先,低位在后。

通過(guò)單片機(jī)的無(wú)線通信軟件實(shí)現(xiàn)編解碼的解決方案介紹

數(shù)據(jù)的編碼采用了曼徹斯特編碼格式,每幀數(shù)據(jù)由同步頭、有效數(shù)據(jù)位和校驗(yàn)位三部分組成。其中數(shù)據(jù)位“1”由高到低的跳變表示,數(shù)據(jù)位“0”由低到高的跳變表示,而且數(shù)據(jù)位“1”和“0”高低電平周期各為0.5 T(設(shè)T為一個(gè)數(shù)據(jù)位寬度)。根據(jù)曼徹斯特碼的特點(diǎn),每個(gè)數(shù)據(jù)位都由高低電平組成,因而在連續(xù)傳輸?shù)挠行?shù)據(jù)位中不會(huì)存在超過(guò)一個(gè)數(shù)據(jù)位寬度的高電平或低電平,因此在每個(gè)數(shù)據(jù)的前面設(shè)一個(gè)同步頭,高低電平各為1.5 T 。這樣在進(jìn)行接收數(shù)據(jù)時(shí),只要采樣得到的電平滿足1.5T ,則認(rèn)為該電平是同步頭,開(kāi)始接收數(shù)據(jù)。因?yàn)閷ふ彝筋^的時(shí)間最長(zhǎng)不會(huì)超過(guò)一個(gè)數(shù)據(jù)的長(zhǎng)度,所以此編碼方式非常適合于要求多路進(jìn)行快速切換的場(chǎng)合。為了簡(jiǎn)化電路和節(jié)省功耗,本文采用了單極性曼徹斯特碼。

實(shí)現(xiàn)曼徹斯特軟件編碼比較簡(jiǎn)單,根據(jù)曼碼和二進(jìn)制數(shù)據(jù)的對(duì)應(yīng)關(guān)系,一位二進(jìn)制數(shù)據(jù)在編碼后將占據(jù)兩位空間。例如1在編碼后變?yōu)?、0;0在編碼后變?yōu)?、1。其中,曼碼數(shù)據(jù)低位在前,高位在后;被編碼的數(shù)據(jù)字節(jié)的高4位編碼后存放在一個(gè)字節(jié)中,低4位編碼后存放在相鄰的下一個(gè)字節(jié)中。

本文采用了循環(huán)冗余校驗(yàn),即后四位為循環(huán)冗余校驗(yàn)碼。循環(huán)冗余校驗(yàn)碼簡(jiǎn)稱為CRC( CyclicRedundancy Code) 。循環(huán)冗余校驗(yàn)的指導(dǎo)思想是發(fā)送端將被傳輸?shù)臄?shù)據(jù)流多項(xiàng)式除以生成多項(xiàng)式得到冗余位,接收端將被傳輸?shù)臄?shù)據(jù)(包括冗余位) 除以事先確定的生成多項(xiàng)式,如果余數(shù)為零,則認(rèn)為沒(méi)有錯(cuò)誤發(fā)生,不為零則表示有錯(cuò)。由于使用這種方法獲得冗余位具有很強(qiáng)的信息覆蓋能力,它善于發(fā)現(xiàn)各種類(lèi)型的錯(cuò)誤,特別是一些突發(fā)性錯(cuò)誤,所以它是一種效率極高的差錯(cuò)校驗(yàn)法 。

根據(jù)CRC 碼的編碼思想,對(duì)(16,12)碼,由x16 + 1確定生成多項(xiàng)式為G(x) = x4 + 1 ,該多項(xiàng)式也可表示成(10001) 。對(duì)被傳輸?shù)?2位數(shù)據(jù)和生成多項(xiàng)式采用模2 運(yùn)算便可以得到每個(gè)數(shù)據(jù)的四位循環(huán)冗余位。

1.2 編碼子程序流程圖及說(shuō)明

曼徹斯特編碼子程序包括計(jì)算冗余位和曼徹斯特編碼發(fā)送兩部分,首先調(diào)用CRC 求余子程序(流程圖略) ,將得到的冗余校驗(yàn)位作為待發(fā)送16 位數(shù)據(jù)的低四位,然后對(duì)該16 位,并通過(guò)無(wú)線數(shù)傳模塊調(diào)制成模擬信號(hào)發(fā)射出去(單片機(jī)的TXD 端與無(wú)線數(shù)傳模塊發(fā)的DATA IN 端相連) 。同步頭及數(shù)據(jù)位發(fā)送是通過(guò)對(duì)單片機(jī)的TXD 端( P3. 1) 置“1”和清“0”并進(jìn)行軟件延時(shí)來(lái)實(shí)現(xiàn)。TIME1 和TIME2 為軟件延時(shí),以滿足同步頭高低電平寬度的要求。值得注意的是,在編寫(xiě)編碼子程序時(shí),應(yīng)確保P3. 1 置“1”和清“0”時(shí)間間隔滿足數(shù)據(jù)位或同步頭寬度的要求。

2 解碼原理及程序流程

2.1解碼原理

曼徹斯特解碼是編碼的逆過(guò)程,也就是從曼碼數(shù)據(jù)中提取時(shí)鐘,并利用這個(gè)時(shí)鐘還原二進(jìn)制數(shù)據(jù)的過(guò)程。根據(jù)曼徹斯特解碼過(guò)程中完成任務(wù)的不同,可以把曼徹斯特解碼過(guò)程分為起始符識(shí)別及獲取同步時(shí)鐘、識(shí)別同步頭、提取數(shù)據(jù)信息3個(gè)階段。

(1) 同步頭的判定

本系統(tǒng)通過(guò)信號(hào)高低電平所占的位寬來(lái)判斷數(shù)據(jù)。當(dāng)電平持續(xù)時(shí)間小于3/4的同步時(shí)鐘周期時(shí),電平時(shí)間為半個(gè)位寬,反之電平時(shí)間為1個(gè)位寬。因?yàn)樵谄鹗挤R(shí)別時(shí)只用了2個(gè)字節(jié)0xFF中的一個(gè),所以在開(kāi)始識(shí)別同步頭時(shí)識(shí)別出的第1個(gè)數(shù)據(jù)位肯定是‘1’,由此決定了在碼元識(shí)別時(shí)必須遵循以下2點(diǎn)。

首先對(duì)單片機(jī)的RXD 端( P3. 0) 進(jìn)行連續(xù)采樣,從P3. 0 引腳變低時(shí)開(kāi)始計(jì)時(shí),若低電平的時(shí)間達(dá)到1. 3 T ,則認(rèn)為該電平為同步頭。因?yàn)橛脽o(wú)線數(shù)傳模塊得到的信號(hào)波形一般為梯形,所以接收到的實(shí)際高低電平寬度可能變小,因此若接收到低電平寬度達(dá)到1. 3 T ,則可近似認(rèn)為該電平為某數(shù)據(jù)的同步頭。

(2) 數(shù)據(jù)位的判定

對(duì)每個(gè)數(shù)據(jù)位的判定采用“測(cè)三取二”的方法,既將每個(gè)數(shù)據(jù)位的前半部分成16 個(gè)狀態(tài),在第7 、8 、9 狀態(tài)檢測(cè)P3. 0 引腳上的電平,取其大于等于2的相同值作為測(cè)得值,如表1 所示(表中“ x ”表示“0”或“1”) 。此檢測(cè)方法是在高電平或低電平的中間位置進(jìn)行采樣,既提高了采樣準(zhǔn)確度又有一定的濾波功能。

通過(guò)單片機(jī)的無(wú)線通信軟件實(shí)現(xiàn)編解碼的解決方案介紹

通過(guò)單片機(jī)的無(wú)線通信軟件實(shí)現(xiàn)編解碼的解決方案介紹

(3) 循環(huán)冗余校驗(yàn)

對(duì)解碼得到的16 位數(shù)據(jù)進(jìn)行循環(huán)冗余校驗(yàn),若余數(shù)為零,則認(rèn)為傳輸正確,否則進(jìn)行出錯(cuò)處理。

2.2 解碼子程序流程圖及說(shuō)明

解碼子程序包括曼徹斯特解碼和差錯(cuò)校驗(yàn)兩部分,其流程圖如圖3 所示。首先進(jìn)行同步頭的判定,從RXD 端( P3. 0) 為低電平時(shí)開(kāi)始計(jì)時(shí)(單片機(jī)的RXD 端與無(wú)線數(shù)傳模塊收的DATA OU T 端相連) ,并對(duì)P3. 0 引腳進(jìn)行連續(xù)采樣,采樣時(shí)間間隔可自行設(shè)定,若P3. 0 引腳的低電平時(shí)間達(dá)到1. 3 T ,則認(rèn)為該低電平為某數(shù)據(jù)的同步頭,然后對(duì)同步頭后面的數(shù)據(jù)位的前半位采用“測(cè)三取二”的方法進(jìn)行數(shù)據(jù)位的判定,最后對(duì)采樣得到的16 位數(shù)據(jù)進(jìn)行循環(huán)冗余校驗(yàn),若余數(shù)為0 ,則置錯(cuò)誤標(biāo)志,若不為0 ,則去掉冗余位, 得到12 位有效數(shù)據(jù)。TIME1~TIME3 是湊采樣的時(shí)間間隔。

通過(guò)單片機(jī)的無(wú)線通信軟件實(shí)現(xiàn)編解碼的解決方案介紹

3結(jié)論

本文以一個(gè)實(shí)際工程的一部分為例,闡述了用AVR單片機(jī)軟件編程實(shí)現(xiàn)曼徹斯特編解碼方法。經(jīng)過(guò)了實(shí)際驗(yàn)證,數(shù)據(jù)傳輸可靠性很高,系統(tǒng)運(yùn)行穩(wěn)定,樣機(jī)已經(jīng)成型,即將投入生產(chǎn)。與其它的數(shù)據(jù)傳輸方法和曼徹斯特編解碼方式相比,本方法十分靈活方便,它可以白適應(yīng)射頻發(fā)射機(jī)電池電壓變化引起的數(shù)據(jù)傳輸波特率的變化??商幚淼拇a速率也很高,極限碼速率與所采用的單片機(jī)的速度和振蕩器的頻率以及采用的編程語(yǔ)言都有關(guān)系。本設(shè)計(jì)中采用C編程,振蕩器頻率為16MHz,數(shù)據(jù)傳輸率可達(dá)10kbps,用匯編語(yǔ)言編程數(shù)據(jù)傳輸率會(huì)更高。

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

    關(guān)注

    450

    文章

    49636

    瀏覽量

    417169
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628402
  • AVR
    AVR
    +關(guān)注

    關(guān)注

    11

    文章

    1122

    瀏覽量

    78400
  • 無(wú)線通信
    +關(guān)注

    關(guān)注

    58

    文章

    4415

    瀏覽量

    143127
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    編解碼一體機(jī)相對(duì)于傳統(tǒng)的編解碼設(shè)備有哪些優(yōu)勢(shì)?

    編解碼一體機(jī)相對(duì)于傳統(tǒng)的編解碼設(shè)備具有多個(gè)優(yōu)勢(shì)。以下是編解碼一體機(jī)的幾個(gè)主要優(yōu)勢(shì): 高效實(shí)時(shí)的視頻處理能力:
    的頭像 發(fā)表于 01-31 14:56 ?901次閱讀
    <b class='flag-5'>編解碼</b>一體<b class='flag-5'>機(jī)</b>相對(duì)于傳統(tǒng)的<b class='flag-5'>編解碼</b>設(shè)備有哪些優(yōu)勢(shì)?

    音頻處理的新選擇:編解碼一體機(jī)

    編解碼一體機(jī)作為音頻處理的新選擇,以其高效、靈活的解決方案,引領(lǐng)著音頻處理技術(shù)的新篇章。這種設(shè)備集成了音頻編解碼和數(shù)據(jù)傳輸功能,將復(fù)雜的音頻處理流程簡(jiǎn)化在一臺(tái)設(shè)備中,提高了音頻處理的效
    的頭像 發(fā)表于 01-31 14:46 ?423次閱讀
    音頻處理的新選擇:<b class='flag-5'>編解碼</b>一體<b class='flag-5'>機(jī)</b>

    什么是編解碼一體機(jī)?

    一體機(jī)還支持多平臺(tái)和多終端訪問(wèn),允許用戶通過(guò)PC、手機(jī)、平板等設(shè)備隨時(shí)隨地訪問(wèn)和處理視頻內(nèi)容。 編解碼一體機(jī)具有許多優(yōu)勢(shì)。首先,它能夠實(shí)現(xiàn)高效、實(shí)時(shí)的視頻處理,滿足各種應(yīng)用場(chǎng)景的需求。
    的頭像 發(fā)表于 01-31 14:19 ?476次閱讀
    什么是<b class='flag-5'>編解碼</b>一體<b class='flag-5'>機(jī)</b>?

    基于wifi模塊單片機(jī)數(shù)據(jù)無(wú)線傳輸方案

    模塊的單片機(jī)數(shù)據(jù)無(wú)線傳輸方案。 WiFi 模塊簡(jiǎn)介 WiFi 模塊是一種具備無(wú)線通信功能的硬件設(shè)備,它可以通過(guò)
    的頭像 發(fā)表于 01-04 10:52 ?1393次閱讀

    單片機(jī)串口通信的接收與發(fā)送

    的原理。串口通信通過(guò)發(fā)送和接收兩根線來(lái)實(shí)現(xiàn)的,分別為發(fā)送線(Tx)和接收線(Rx)。當(dāng)單片機(jī)發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)通過(guò)發(fā)送線發(fā)送出去,而當(dāng)外部設(shè)
    的頭像 發(fā)表于 12-20 14:03 ?2930次閱讀

    PC機(jī)單片機(jī)機(jī)實(shí)時(shí)通信的設(shè)計(jì)與實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《PC機(jī)單片機(jī)機(jī)實(shí)時(shí)通信的設(shè)計(jì)與實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 10-31 09:55 ?3次下載
    PC<b class='flag-5'>機(jī)</b>與<b class='flag-5'>單片機(jī)</b>多<b class='flag-5'>機(jī)</b>實(shí)時(shí)<b class='flag-5'>通信</b>的設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>

    單片機(jī)上使用的無(wú)線通信方式有哪些?

    單片機(jī)上使用的無(wú)線通信方式有哪些
    發(fā)表于 10-27 07:21

    基于英飛凌方案無(wú)線通信終端設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于英飛凌方案無(wú)線通信終端設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 10-25 11:08 ?0次下載
    基于英飛凌<b class='flag-5'>方案</b>的<b class='flag-5'>無(wú)線通信</b>終端設(shè)計(jì)

    單片機(jī)與Internct網(wǎng)絡(luò)通信的一種具體實(shí)現(xiàn)方案

    電子發(fā)燒友網(wǎng)站提供《單片機(jī)與Internct網(wǎng)絡(luò)通信的一種具體實(shí)現(xiàn)方案.pdf》資料免費(fèi)下載
    發(fā)表于 10-25 10:40 ?3次下載
    <b class='flag-5'>單片機(jī)</b>與Internct網(wǎng)絡(luò)<b class='flag-5'>通信</b>的一種具體<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>方案</b>

    PC機(jī)與多臺(tái)單片機(jī)實(shí)時(shí)通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《PC機(jī)與多臺(tái)單片機(jī)實(shí)時(shí)通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).doc》資料免費(fèi)下載
    發(fā)表于 10-19 16:29 ?4次下載
    PC<b class='flag-5'>機(jī)</b>與多臺(tái)<b class='flag-5'>單片機(jī)</b>實(shí)時(shí)<b class='flag-5'>通信</b>系統(tǒng)的設(shè)計(jì)與<b class='flag-5'>實(shí)現(xiàn)</b>

    基于AT89C52單片機(jī)實(shí)現(xiàn)短距離無(wú)線通信

    在無(wú)法使用有線傳輸?shù)膱?chǎng)合,采用無(wú)線數(shù)據(jù)傳輸模塊和單片機(jī)相結(jié)合進(jìn)行數(shù)據(jù)傳輸是較合理的方案。
    發(fā)表于 10-19 15:41 ?0次下載
    基于AT89C52<b class='flag-5'>單片機(jī)</b><b class='flag-5'>實(shí)現(xiàn)</b>短距離<b class='flag-5'>無(wú)線通信</b>

    基于ATmegn128單片機(jī)的控制電路和軟件解決方案設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于ATmegn128單片機(jī)的控制電路和軟件解決方案設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 10-19 10:46 ?0次下載
    基于ATmegn128<b class='flag-5'>單片機(jī)</b>的控制電路和<b class='flag-5'>軟件</b><b class='flag-5'>解決方案</b>設(shè)計(jì)

    單片機(jī)軟件模擬SPI接口的解決方案

    電子發(fā)燒友網(wǎng)站提供《單片機(jī)軟件模擬SPI接口的解決方案.pdf》資料免費(fèi)下載
    發(fā)表于 10-13 11:31 ?2次下載
    <b class='flag-5'>單片機(jī)</b><b class='flag-5'>軟件</b>模擬SPI接口的<b class='flag-5'>解決方案</b>

    基于單片機(jī)的紅外解碼及其應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《基于單片機(jī)的紅外解碼及其應(yīng)用.pdf》資料免費(fèi)下載
    發(fā)表于 10-10 09:18 ?5次下載
    基于<b class='flag-5'>單片機(jī)</b>的紅外<b class='flag-5'>解碼</b>及其應(yīng)用

    單片機(jī)原理圖的硬件設(shè)計(jì)、軟件設(shè)計(jì)和信號(hào)處理

    單片機(jī)原理圖是設(shè)計(jì)和開(kāi)發(fā)電子產(chǎn)品中不可或缺的一部分。它通過(guò)連接各種元器件和電路,實(shí)現(xiàn)了對(duì)單片機(jī)的控制和操作。本文將從四個(gè)方面對(duì)單片機(jī)原理圖進(jìn)
    的頭像 發(fā)表于 10-05 15:26 ?2838次閱讀