异步串行通信协议的设计与实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

10 | 电子制作 2018年10月

时传送;串行通信,即数据一位一位顺序传送。串行通信能够节省传输线,特别是数据位数很多和远距离数据传送时,这一优点更为突出。现在流行的高级语言一般都支持对串口的直接操作,常用的单片机也把串行通讯口作为一个标准接口集成在单片机内,串行通讯接口的开发具有开发周期短,开发简单等特点。目前异步串行通信已广泛用于微机之间的通信、工业控制系统中的数据采集与控制、远程数据的传送等方面。

1 串口通信的基本原理

串口在嵌入式系统当中是一类重要的数据通信接口,其本质功能是作为CPU和串行设备间的编码转换器。当数据从CPU经过串行端口发送出去时,字节数据转换为串行的位;在接收数据时,串行的位被转换为字节数据。应用程序要使用串口进行通信,必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关闭串口)。

典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送数据线,(3)接收数据线。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配:波特率是一个衡量通信速度的参数,它表示每秒钟传送的bit的个数;数据位是衡量通信中实际数据位的参数,当计算机发送一个信息包,标准的值是5、7和8位。如何设置取决于你的需求;停止位用于表示单个包的最后一位,典型的值为1,1.5和2位,停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会;奇偶校验位是串口通信中一种简单的检错方式,有四种检错方式——偶、奇、高和低,也可以没有校验位。做出统一规定。

在控制系统中,单片机间通信一般采用异步串行通信,传统的异步串行通信协议一般采用如图1所示的命令格式,命令消息包括帧头(命令码)、数据帧、校验帧;响应消息为ACK信号(ACK取不同的值,例如:正确响应 ACK = 0x55;错误响应 ACK = 0xAA)。由于在串口通信中还存在很多不可靠的因素,例如由于电磁干扰造成的帧字节丢失、传输误码,以及因主从单片机处理繁忙而造成的响应延迟等。传统的通信协议难以克服由于单片机处理繁忙而造成的响应延迟现象。如图2所示,当主芯片发送[命令1]后,当超过响应等待时间而没有得到ACK时,主芯片发[命令2],而此时在下一个响应等待时间内收到两次[ACK],这时将导致主芯片做出错误判断,调用并非本意的程序执行,严重影响系统的正常运行。因此,本文在通信协议的设计中,采用响应消息加权的方法,提高了通信的可靠性,保证系统正常运行。

图1 通信命令格式

图2 通信时序

本响应消息加权式通信协议,实现方式如下:通信协议

www ele169 com | 11

中的不确定因素,因此通信协议采用加权响应式通信协议,克服主从单片机处理繁忙而造成的响应延迟;对于通信过程中的干扰而导致通信数据丢失、传输误码等现象,可以在程序设计时采用超时定时、计数重发等方法,保证通信的准确性。

软件程序设计中,主控芯片采用芯片内部的串口2,通

信波特率为9600 bit /s,8 位数据,1位停止位。其中软件编写要严格按照异步通信的时序进行,其响应处理程序流程

如图5所示。

图5 整体软件流程图

4 系统的实现及应用

本协议的设计是初衷是为一款内嵌DTMB 接收功能的

便携式DVD 产品的操作控制芯片与DTV 解码芯片间的通信

服务。由于该产品为商业性产品,因此质量是产品的生命。为保证产品质量,提高通信的可靠性,本设计在异步串行通信上采用笔者设计的响应加权式通信协议。系统通信控制实

现如下:

硬件系统操作控制部由主控芯片和DTV 解码芯片构成,

原理框图如图6所示。通过主控芯片内部串口2的收发引

脚与DTV 解码芯片的收发引脚相连接。主控芯片在整个通

信过程起主导作用,用于通信控制的发起与对DTV 解码芯

采用如图3所示的格式,命令消息和响应消息采用相同的帧格式,包括帧头(命令码)、数据帧、校验帧;其中响应消息帧头 = 命令消息帧头的加权(RPS = CMD | 0x80 或RPS = CMD | 0xC0),主控芯片通过对响应消息的处理,识别出响应的类型。通信协议各数据位的定义如表1所示,本协议由nByte(n 是由用户自己定义的任意值正整数)构成,D1[7:6]为通信类型,D1[5:0]为指令码,D2~Dn-1为

数据位,Dn 为校验位。

表1 通信命令

程序处理过程如图4所示,当有响应发生时,响应处

理程序对响应消息帧头进行0xC0加权处理,还原并判断响

应类型;同时经过对帧头进行0x3F 加权处理,还原出当前响应相对应的命令消息,然后调用相应的应用程序执行。例如,当主芯片发送命令消息,命令消息帧头D1=0x02,从

芯片正常接收并进行加权响应,响应消息帧头D1=0x82,主芯片再经过加权处理判断响应类型并还原出与之相对应的命令消息帧头0x02。然后调用相应的程序执行,完成一次通信周期。

图3 加权响应命令格式

图4 响应处理流程图

3 程序设计

通信程序在设计时充分考虑了主从单片机在通信过程

图6 原来的电路原理图

(下转第23页)

增长到0.5mm时,密封泄漏量变化趋势如图2所示。泄漏量与厚度在0.1mm~0.5mm范围内的变化规律如上图所示。根据图表可以得出,在其他参数不变的情况下,泄漏量与厚度同样成正相关关系,并且是一条非常接近直线的曲线,可以理解为供流体泄出的通道宽度越大,泄漏量越大。

3.2.3 密封泄漏量随着轴承宽度的变化

当其他工况参数及结构参数不变,轴承宽度8mm增长到12mm时,密封泄漏量变化趋势如图3所示。

图3 轴承宽度对密封泄漏量的影响

泄漏量与轴承宽度在8mm~12mm范围内变化的规律如图3所示,可以看出,在该范围内,其他参数不改变的情况下,随着轴承宽度的增加,泄漏量减少,且减少的量非常的小,甚至可近似认为是一条水平的直线。其原因可能是,供流体泄出的通道距离较长,且通道对流体有微小阻碍作用,导致泄漏量有十分细微的减小。

4 结论

在实际的密封设计时应设法合理的降低轴承的气膜厚度与入口压力,因为这两个条件对减少泄漏量有着至关重要的作用,而对于轴承宽度则没有必要刻意加大,因为轴承宽度对泄露量的影响甚微,加大轴承宽度所需要的经济成本远高于其减少泄漏量的效益。本次仿真通过对改变轴承的尺寸参数以及工控参数,对密封泄漏量影响的分析研究,得到如下结论:

(1)随着入口压力的增大,泄漏量增大,且变化率不断减小;

(2)随着厚度的增大,泄漏量成近乎线性增长的趋势,且相比其他两个变量,气膜厚度对泄漏量带来的影响更为显著;

(3)随着轴承宽度的增加,泄露量有非常缓慢的减小趋势,相比其他两个变量,轴承宽度对泄露量的影响最小。

参考文献

* [1]黄亚平,王玉金,宋春磊,等.密封球轴承密封空间分析及最佳填脂量的确定[J].轴承,2001(9):1-4.

* [2]孙杰.轴承密封件安装稳定性与密封特性研究[D].中国海洋大学,2006.

* [3]彭旭东,王玉明,黄兴,等. 密封技术的现状与发展趋势[J].液压气动与密封, 2009,29(4):4-11.

* [4]陈国定, Haiser H, Haas W,等.O形密封圈的有限元力学分析[J].机械科学与技术,2000,19(5):740-741.

* [5]江洪.SolidWorks 2003二次开发基础与实例教程[M].电子工业出版社,2003.

* [6]杜平安.有限元网格划分的基本原则[J].机械设计与制造, 2000(1):34-36.

* [7]浦广益.ANSYS Workbench基础教程与实例详解[M].中国水利水电出版社,2013.

* [8]韩占忠.FLUENT[电子资源]:流体工程仿真计算实例与应用[M].北京理工大学出版社, 2004.

片的响应判断。DTV解码芯片接收主控芯片发送的命令,解析后进行相关的动作。

5 结论

本协议的设计初衷是为了克服主从单片机处理繁忙而造成的响应延迟现象,同时又具有可扩展性,其中数据位的字节长度可以由用户自行定义。

将本协议应用到DVD产品的通信控制时,经测过试,在波特率9600bit/s下可以成功通信;并且本协议能保证主控端正确识别响应类型以及还原出当前响应相对应的命令消息,保证主控芯片的做出正确的处理,从而保证整个系统的正确运行。

参考文献

* [1] 李朝青等.PC机与单片机&DSP数据通信技术选编 3[M].北京:北京航空航天大学出版社.2004.3.100-369

* [2]徐云鹏等.嵌入式微处理器模拟接口设计(第二版)[M].北京:电子工业出版社.2004.6.15-49

* [3] 贾智平等.嵌入式系统原理与接口技术[M].北京:清华大学出版社.2005(7):174-205

* [4]赵炯.串行数据传输协议的剖析研究[J].计算机工程.2010.30(9).* [5] 张玉强.刘生春.王建华.基于虚拟仪器的异步串行通信协议的检测方法[J].延安大学学报(自然科学版).2012年03期

(上接第11页)

www ele169 com | 23

相关文档
最新文档