03-00: 嵌入式通信原理浅析
版权声明:Copyright © 2016,Stardust Studio,All Rights Reserved
序言——凡尘
程序是一种思想,是一块块积木,我们是静坐其中搭积木的孩童,倘若思想成熟了,我们便有了玩伴而不再孤独。
摘要
本文呈现为读书笔记【参考文献 [1] 】的形式,融入了笔者的思考和总结,以作为工作室培训参考文章并开源分享给读者。系统性浅析了嵌入式数字通信原理的基本概念以及在原理基础上嵌入式设备通信的实际技术应用,因此本文不叙述模拟信号相关的频域和时域特性等。
关键词:嵌入式通信;通信原理;开源
参考文献
[1] 樊昌信,曹丽娜. 通信原理(第6版). 北京:国防工业出版社,2009.
1 绪论
1.1 通信的基本概念
通信(本文只考虑数字信号,因为嵌入式外围电路有线数字总线只传递数字信号)在本文中意指微机与微机之间或微机与终端设备之间进行信息传递,其基本模型为:
按通信方向分为单工、半双工和全双工通信。按数据传输方式分为串行和并行通信。
为方便后续说明在此有如下定义:
(1)码元:本文中只考虑二进制通信,因此单位为bit;
(2)帧元:单个字符数据包括其帧头、奇偶校验位等;
(3)包元:由帧数据组成的数据包的最小单位,包括包头、数据量等。
1.2 信息的度量
由模糊概念转化为可由数值和量纲进行度量的中间过程需要数学工具来完成:
导出传递M个脉冲的单个信息量(平均值)为:
注意:所有数学工具的实际意义在于度量具体数值和以现有事实为素材逻辑推导出预测结果。其中数学分析中的数学模型是为了拟合现有事实素材进行阶段性预测,因此需要反复修正。在此也是一样,香农前辈构建的公式是为了满足以下条件:
(1)消息包含的信息量与包含事件发生的概率负相关(使用负对数);
(2)信息量具有相加性(使用对数);
考虑非等概率时:
而积分则可导出概率密度函数。
1.3 通信系统主要性能指标
(1)码元传输速率(二进制USART传输中与波特率等价);
(2)频带利用率;
(3)误码率;
(4)可靠性(包括信息传递的及时性等);
(5)保密性;
(7)经济性;
(5)环境适应性;
(6)可维护性(包括互换性等);
1.4 嵌入式设备通信方式
嵌入式设备中常见的有线通信方式(二进制数字信号)有USART(UART和S-BUS在此处也包括在内)、I2C、RS485(RS232和RS422在此处也包括在内)、CAN、SPI、USB和MODBUS(比较特殊,仅是协议,没有电平规范);常见的无线通信方式WPAN(IRDA、Bluetooth和ZigBee)、WLAN(WiFi[2.4G{航模遥控}在此也包括在内])、Cellular Network(2G[常用移动和联通的GSM,电信为CDMA]、3G、4G、5G)、Satellite Commumication(开源卫星)。
2 信息的封装
HTTP通信数据封装将会抽时间单独整理一章,在此考虑的是普遍数据封装。参照网络通信OSI模型分为:
第一层,物理层
以位/比特(码元)为单位,为上层提供比特流物理连接,传输协议参照上述【1.4 嵌入式设备通信方式】。
第二层,数据链路层
以帧(帧元)为单位,负责传输始端和终端两个节点的数据,以usart为例,起始位‘0’就是帧头,此外还包含8位数据、奇偶校验位等,详见【03-01: USART通信详解】。
第三层,网络层
以数据包(包元)为单位,多个设备通信需要得知目标地址,以usart为例,点对点通信时需要互发器件地址,数据传输过程中需要校验包头、数据量、数据、反码校验等,还要解决丢失、重复传送和顺序颠倒等问题。
第四层,运输层
以数据报文(散装数据包组成)为单位,包括完整文件(报文)拆分数据包传输等。
嵌入式设备通信方式主要为短距离有线通信方式,且采用星形网络只需要上述四层架构。
3 数字基带传输
在嵌入式设备中,主要以短距离数字信号传输(模块或处理芯片和微机/微机和微机之间信号传输)为主。因此,本文在此仅分析数字基带系统。
3.1 数字基带信号
(1)单极性波形:上述USART、I2C和SPI;
(2)双极性波形;
(3)单极性归零波形;
(4)双极性归零波形;
(5)差分波形:上述SPI、CAN和USB;
(6)多电平信号。
3.2 误码产生的主要因素
(1)码间串扰(例如采用均衡器进行补偿);
(2)信道噪声(例如采用双绞线减小噪声)。
4 差错控制编码
4.1 差错控制技术分类
(1)检错重发:SD卡读写中采用,尤其是文件系统;
(2)向前纠错;
(3)反馈校验;
(4)检错删除:为保证系统实时性,优先采用。
4.2 纠错控制技术
5 信道
5.1 无线信道
5.2 有线信道
(1)明线;
(2)对称电缆;
(3)同轴电缆。
5.3 信道的数学模型
调制信道的一般模型,详细请参阅【参考文献 [1] 】:
5.4 信道容量与带宽
首先,需要先明确信道容量和信道带宽的概念:
信道容量:为方便和信道带宽比较,在此为单位时间内能够传输的平均信息量的最大值;
信道带宽:带宽(band width)又叫频宽,是指在固定的的时间可传输的资料数量,亦即在传输管道中可以传递数据的能力。在数字设备中,频宽通常以bps表示,即每秒可传输之位数。在模拟设备中,频宽通常以每秒传送周期或赫兹 (Hz)来表示(参考自IT百科)。
其中比较重要的公式是带宽有限、平均功率有限的高斯白噪声连续信道,信道容量和带宽的关系式:
6 信号同步原理
6.1 载波同步
6.2 码元同步
其中闭环同步类似于UART通信中接收信号频率和接收波特率。
6.3 群同步
其中下位机提取USART字符信息采用的便是这种方式。
接下来分析误码对同步数据产生的影响,这和基因编码中染色体错误类似。先考虑非定常且没有封装成帧的数据。在此,同步帧数据只考虑一个:
而假同步总概率:
再来考虑起止同步,以UART为例,一帧数据通常包含1个起始位,8个数据位和1个停止位,一包数据通常包含1个帧头、1个数据量帧、(1~255)个数据、1个数据反码校验帧(相当于帧尾)。设接收码元错误概率为[p1],缓存区接收数据是帧头的概率是[p2],则收数据是帧头相邻数据量帧(或者是数据量帧、反码校验帧)的概率也是[p2],则有:
缓存区丢失数据的概率为:[p1]*(1+1)/10 = [p1]/5;
缓存区成功接收数据但数据帧头丢失的概率为:(1-[p1]/5)*[p2] = 4[p1][p2]/5;
数据包存在错误数据但能正常传输的概率为:1-[p1][p2]/5*3 = (5-3[p1][p2])/5;
若[p1] = [p2] = 0.1,即1包只传7个数据, 数据包存在错误数据但能正常传输的概率为99.4%,可见对数据传输的影响还是相当小的。
6.4 网同步
日后有需要会单独整理一篇文章详解时间网同步。
7 通信网络
网络拓扑结构
(1)网形;
(2)星形:树型拓扑也可以认为是其拓展,一般嵌入式优先采用,包括局域组网;
(3)环形;
(4)总线形:分布嵌入式优先采用,尤其是串/并口资源紧张时;
(5)复合形:复杂嵌入控制优先采用。
后记——凡尘
时间匆忙,未能花足够校对错误,更多的是结构和整体压缩的内容,如有错别字和内容不合理的地方欢迎读者批评指正,如有想深入探讨或是项目需求的朋友欢迎加入QQ群:
星尘Arduino社区:630581178
星尘STM8/32社区:700155855
笔者邮箱:fanchen995@gmail.com