03-00:? ? 嵌入式通信原理淺析
版權(quán)聲明:Copyright ? 2016,Stardust Studio,All Rights Reserved
序言——凡塵
? ??????程序是一種思想苛骨,是一塊塊積木空盼,我們是靜坐其中搭積木的孩童,倘若思想成熟了,我們便有了玩伴而不再孤獨檩坚。
摘要
????????本文呈現(xiàn)為讀書筆記【參考文獻 [1] 】的形式,融入了筆者的思考和總結(jié),以作為工作室培訓參考文章并開源分享給讀者。系統(tǒng)性淺析了嵌入式數(shù)字通信原理的基本概念以及在原理基礎(chǔ)上嵌入式設(shè)備通信的實際技術(shù)應用李丰,因此本文不敘述模擬信號相關(guān)的頻域和時域特性等。
關(guān)鍵詞:嵌入式通信逼泣;通信原理趴泌;開源
參考文獻
[1]? ? 樊昌信,曹麗娜.????通信原理(第6版).????北京:國防工業(yè)出版社,2009.
1 緒論
1.1 通信的基本概念
????????通信(本文只考慮數(shù)字信號舟舒,因為嵌入式外圍電路有線數(shù)字總線只傳遞數(shù)字信號)在本文中意指微機與微機之間或微機與終端設(shè)備之間進行信息傳遞,其基本模型為:
????????按通信方向分為單工踱讨、半雙工和全雙工通信魏蔗。按數(shù)據(jù)傳輸方式分為串行和并行通信砍的。
? ? ? ? 為方便后續(xù)說明在此有如下定義:
? ? ? ? (1)碼元:本文中只考慮二進制通信痹筛,因此單位為bit;
? ? ? ? (2)幀元:單個字符數(shù)據(jù)包括其幀頭、奇偶校驗位等廓鞠;
? ? ? ? (3)包元:由幀數(shù)據(jù)組成的數(shù)據(jù)包的最小單位帚稠,包括包頭、數(shù)據(jù)量等床佳。
1.2 信息的度量
????????由模糊概念轉(zhuǎn)化為可由數(shù)值和量綱進行度量的中間過程需要數(shù)學工具來完成:
????????導出傳遞M個脈沖的單個信息量(平均值)為:
? ? ? ? 注意:所有數(shù)學工具的實際意義在于度量具體數(shù)值和以現(xiàn)有事實為素材邏輯推導出預測結(jié)果滋早。其中數(shù)學分析中的數(shù)學模型是為了擬合現(xiàn)有事實素材進行階段性預測,因此需要反復修正砌们。在此也是一樣杆麸,香農(nóng)前輩構(gòu)建的公式是為了滿足以下條件:
? ? ? ? (1)消息包含的信息量與包含事件發(fā)生的概率負相關(guān)(使用負對數(shù));
? ? ? ? (2)信息量具有相加性(使用對數(shù))浪感;
? ? ? ? ? ?考慮非等概率時:
? ? ? ? 而積分則可導出概率密度函數(shù)昔头。
1.3 通信系統(tǒng)主要性能指標
? ? ? ? (1)碼元傳輸速率(二進制USART傳輸中與波特率等價);
? ? ? ? (2)頻帶利用率影兽;
? ? ? ? (3)誤碼率揭斧;
? ? ? ? (4)可靠性(包括信息傳遞的及時性等);
? ? ? ? (5)保密性峻堰;
? ? ? ? (7)經(jīng)濟性讹开;
? ? ? ? (5)環(huán)境適應性;
? ? ? ? (6)可維護性(包括互換性等)捐名;
1.4?嵌入式設(shè)備通信方式
????????嵌入式設(shè)備中常見的有線通信方式(二進制數(shù)字信號)有USART(UART和S-BUS在此處也包括在內(nèi))旦万、I2C、RS485(RS232和RS422在此處也包括在內(nèi))镶蹋、CAN纸型、SPI、USB和MODBUS(比較特殊梅忌,僅是協(xié)議狰腌,沒有電平規(guī)范);常見的無線通信方式WPAN(IRDA牧氮、Bluetooth和ZigBee)琼腔、WLAN(WiFi[2.4G{航模遙控}在此也包括在內(nèi)])、Cellular Network(2G[常用移動和聯(lián)通的GSM踱葛,電信為CDMA]丹莲、3G光坝、4G、5G)甥材、Satellite Commumication(開源衛(wèi)星)盯另。
2 信息的封裝
? ? ? ? HTTP通信數(shù)據(jù)封裝將會抽時間單獨整理一章,在此考慮的是普遍數(shù)據(jù)封裝洲赵。參照網(wǎng)絡通信OSI模型分為:
? ? ? ? 第一層鸳惯,物理層
????????以位/比特(碼元)為單位,為上層提供比特流物理連接叠萍,傳輸協(xié)議參照上述【1.4?嵌入式設(shè)備通信方式】芝发。
????????第二層,數(shù)據(jù)鏈路層
????????以幀(幀元)為單位苛谷,負責傳輸始端和終端兩個節(jié)點的數(shù)據(jù)辅鲸,以usart為例,起始位‘0’就是幀頭腹殿,此外還包含8位數(shù)據(jù)独悴、奇偶校驗位等,詳見【03-01:????USART通信詳解】锣尉。
????????第三層刻炒,網(wǎng)絡層
????????以數(shù)據(jù)包(包元)為單位,多個設(shè)備通信需要得知目標地址悟耘,以usart為例落蝙,點對點通信時需要互發(fā)器件地址,數(shù)據(jù)傳輸過程中需要校驗包頭暂幼、數(shù)據(jù)量筏勒、數(shù)據(jù)、反碼校驗等旺嬉,還要解決丟失管行、重復傳送和順序顛倒等問題。
????????第四層邪媳,運輸層
????????以數(shù)據(jù)報文(散裝數(shù)據(jù)包組成)為單位捐顷,包括完整文件(報文)拆分數(shù)據(jù)包傳輸?shù)取?/p>
????????嵌入式設(shè)備通信方式主要為短距離有線通信方式,且采用星形網(wǎng)絡只需要上述四層架構(gòu)雨效。
3 數(shù)字基帶傳輸
? ? ? ? 在嵌入式設(shè)備中迅涮,主要以短距離數(shù)字信號傳輸(模塊或處理芯片和微機/微機和微機之間信號傳輸)為主。因此徽龟,本文在此僅分析數(shù)字基帶系統(tǒng)叮姑。
3.1 數(shù)字基帶信號
? ? ? ? (1)單極性波形:上述USART、I2C和SPI;
? ? ? ? (2)雙極性波形传透;
? ? ? ? (3)單極性歸零波形耘沼;
? ? ? ? (4)雙極性歸零波形;
? ? ? ? (5)差分波形:上述SPI朱盐、CAN和USB群嗤;
? ? ? ? (6)多電平信號。
3.2 誤碼產(chǎn)生的主要因素
? ? ? ? (1)碼間串擾(例如采用均衡器進行補償);
? ? ? ? (2)信道噪聲(例如采用雙絞線減小噪聲)兵琳。
4 差錯控制編碼
4.1 差錯控制技術(shù)分類
? ? ? ? (1)檢錯重發(fā):SD卡讀寫中采用狂秘,尤其是文件系統(tǒng);
????????(2)向前糾錯闰围;
? ? ? ? (3)反饋校驗赃绊;
? ? ? ? (4)檢錯刪除:為保證系統(tǒng)實時性既峡,優(yōu)先采用羡榴。
4.2 糾錯控制技術(shù)
5 信道
5.1 無線信道
5.2 有線信道
????????(1)明線;
????????(2)對稱電纜运敢;
????????(3)同軸電纜校仑。
5.3 信道的數(shù)學模型
? ? ? ? 調(diào)制信道的一般模型,詳細請參閱【參考文獻 [1] 】:
5.4 信道容量與帶寬
????????首先传惠,需要先明確信道容量和信道帶寬的概念:
? ? ? ? 信道容量:為方便和信道帶寬比較迄沫,在此為單位時間內(nèi)能夠傳輸?shù)钠骄畔⒘康淖畲笾担?/p>
? ? ? ? 信道帶寬:帶寬(band width)又叫頻寬,是指在固定的的時間可傳輸?shù)馁Y料數(shù)量卦方,亦即在傳輸管道中可以傳遞數(shù)據(jù)的能力羊瘩。在數(shù)字設(shè)備中,頻寬通常以bps表示盼砍,即每秒可傳輸之位數(shù)尘吗。在模擬設(shè)備中,頻寬通常以每秒傳送周期或赫茲 (Hz)來表示(參考自IT百科)浇坐。
????????其中比較重要的公式是帶寬有限睬捶、平均功率有限的高斯白噪聲連續(xù)信道,信道容量和帶寬的關(guān)系式:
6 信號同步原理
6.1 載波同步
6.2 碼元同步?
????????其中閉環(huán)同步類似于UART通信中接收信號頻率和接收波特率近刘。
6.3 群同步
????????其中下位機提取USART字符信息采用的便是這種方式擒贸。
????????接下來分析誤碼對同步數(shù)據(jù)產(chǎn)生的影響,這和基因編碼中染色體錯誤類似觉渴。先考慮非定常且沒有封裝成幀的數(shù)據(jù)介劫。在此,同步幀數(shù)據(jù)只考慮一個:
????????而假同步總概率:
????????再來考慮起止同步案淋,以UART為例座韵,一幀數(shù)據(jù)通常包含1個起始位,8個數(shù)據(jù)位和1個停止位哎迄,一包數(shù)據(jù)通常包含1個幀頭回右、1個數(shù)據(jù)量幀隆圆、(1~255)個數(shù)據(jù)、1個數(shù)據(jù)反碼校驗幀(相當于幀尾)翔烁。設(shè)接收碼元錯誤概率為[p1]渺氧,緩存區(qū)接收數(shù)據(jù)是幀頭的概率是[p2],則收數(shù)據(jù)是幀頭相鄰數(shù)據(jù)量幀(或者是數(shù)據(jù)量幀蹬屹、反碼校驗幀)的概率也是[p2]侣背,則有:
????????緩存區(qū)丟失數(shù)據(jù)的概率為:[p1]*(1+1)/10 = [p1]/5;
????????緩存區(qū)成功接收數(shù)據(jù)但數(shù)據(jù)幀頭丟失的概率為:(1-[p1]/5)*[p2] = 4[p1][p2]/5慨默;
????????數(shù)據(jù)包存在錯誤數(shù)據(jù)但能正常傳輸?shù)母怕蕿椋?-[p1][p2]/5*3 = (5-3[p1][p2])/5贩耐;
? ? ? ? 若[p1] =?[p2] = 0.1,即1包只傳7個數(shù)據(jù)厦取,?數(shù)據(jù)包存在錯誤數(shù)據(jù)但能正常傳輸?shù)母怕蕿?9.4%潮太,可見對數(shù)據(jù)傳輸?shù)挠绊戇€是相當小的。
6.4 網(wǎng)同步
? ? ? ? 日后有需要會單獨整理一篇文章詳解時間網(wǎng)同步虾攻。
7 通信網(wǎng)絡
? ? ? ? 網(wǎng)絡拓撲結(jié)構(gòu)
? ? ? ? (1)網(wǎng)形铡买;
? ? ? ? (2)星形:樹型拓撲也可以認為是其拓展,一般嵌入式優(yōu)先采用霎箍,包括局域組網(wǎng)奇钞;
? ? ? ? (3)環(huán)形;
? ? ? ? (4)總線形:分布嵌入式優(yōu)先采用漂坏,尤其是串/并口資源緊張時景埃;
? ? ? ? (5)復合形:復雜嵌入控制優(yōu)先采用。
后記——凡塵
????????時間匆忙顶别,未能花足夠校對錯誤谷徙,更多的是結(jié)構(gòu)和整體壓縮的內(nèi)容,如有錯別字和內(nèi)容不合理的地方歡迎讀者批評指正筋夏,如有想深入探討或是項目需求的朋友歡迎加入QQ群:
????????星塵Arduino社區(qū):630581178
????????星塵STM8/32社區(qū):700155855
????????筆者郵箱:fanchen995@gmail.com