串口通信数据的传输(精选8篇)
串口通信数据的传输 篇1
摘要:多个独立的控制模块完成它们之间通过串口通信完成复杂的控制过程, 必须在通信过程中加入必要的通信协议, 要完成特定的通信协议, 就得有一定的同步机制。本文针对串口通信过程中的帧同步问题给出了分析。
关键词:串口数据通信协议,RS-232,帧同步
0前言
串口通信协议用于完成双机互联程序的文件传输功能, 简称SPCP。设计思想基于帧传输方式, 即在向串口发送数据时是一帧一帧地发送。为了保证可靠传输, 通过握手建立连接, 在每一帧的传输中, 采用发送/应答/重连/失败方式。所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定, 通信双方必须共同遵守。它属于OSI七层参考模型中的数据链路层。由于RS-232标准只是一个接门标准, 它规定了连接电缆、机械、电气特性、信号功能及传送过程等, 因此, 在OSI七层 (包括应用层、表示层、会话层、传输层、网络层、数据链路层、物理层) 参考模型中只代表了物理层 (Physical Layer) 和数据链路层 (Data Link Layer) , 如果想实现数据的双向访问, 使通信双方能够按规定的格式从串口发送数据, 同时也能从接收到的数据中将需要的信息提取出来, 就需要设计用户通信协议, 以进行数据处理。而用户层协议则是面向使用者的, 这种用户层通信协议简单地讲就是对数据格式、同步方式、传送速度、传送步骤、数据校验、检纠错方式等问题做出统一规定, 通信双方必须共同遵守。
1 数据成帧
在通信过程中的帧, 按其功能的不同, 分为数据帧、控制帧和短语帧三种。数据帧用于传递用户所需传递的信息 (文件) , 数据帧中的数据最终会被程序解读并重组;而控制帧则用于实现在通信过程中的控制信息的交换, 以顺利实现数据帧的传输;短语帧用于文本消息的发送。每一帧分为帧头和负载两个部分, 其中帧头占6个字节, 前2个字节用于区分三种帧, 后4个字节对于不同帧的意义各不相同, 负载长度不定。
1.1 数据帧
数据帧包括帧头、负载数据和校验和。帧头长8个字节, 其中, Source表示发出本帧的机器的编号;Destination表示本帧欲发送到的目的机的编号;Count表示负载数据的长度 (字节计数) , Count则是程序运行中根据输出缓冲区大小而定的, 最多不超过输出缓冲区的一半;Checksum表示将前面从Byte0到Byte5所有的数据进行校验和计算后得到的结果。
1.2 控制帧
控制帧与控制信号合作完成通信同步与控制任务, 只有帧头, 没有负载数据, 帧头长8个字节, 其中n Pack表示本次传输共发送的帧数, 以便让接收端控制进度。当n Pack=Checksum=0时, 表示本次传输结束, 当接收端收到该帧时, 不管是否已收到应接收的帧数, 都将结束此次传输 (记该帧为ABORT帧) 。在没有发生传输错误的情况下, 一次传输只会出现两次控制帧, 第一次在传输开始时 (记为控制首帧) , 第二次则在传输结束时出现。
1.3 短语帧
短语帧的组成与数据帧十分相似, 前两字节分别为0x01和0x00, 其后的字节则用于承载所要发送的文本数据, 短语帧的最后两个字节仍然为对本帧前面所有字节的校验和计算后的值。
应用程序发送来的数据作为一个流按协议进行分帧, 切割后为每帧加上帧头和校验和进行发送;在接收端, 分帧的数据去掉帧头后存入文件缓冲区, 接收完成后写入磁盘。
2 数据传输方式
在数据传输时, 主要有三种方案可供选择, 即有确认的面向连接的服务;有确认的无连接的服务;无确认的无连接服务。有确认的面向连接服务在源机器与目的机器在传递任何数据之前, 都先建立一条连接。在这条连接上所发送的每一帧都被编上号, 数据链路层保证所发送的每一帧都确实已收到。与此同时, 它保证每帧只收到一次, 且所有的帧都是按正确的顺序收到的, 但是这种连接方式系统开销较大。大多数广域网的通信子网的数据链路层采用面向连接确认服务。无确认的无连接服务是源机器向目的机器发送独立的帧, 而目的机器对收到的帧不作确认。事先没有建立连接, 事后也不存在释放。如果由于线路上的原因造成某一帧的数据丢失, 则数据链路层并不会检测到这样的丢失帧, 也不会恢复这些帧。错误率较高。当然在错误率很低, 或者对数据的完整性要求不高的情况下 (如话音数据) , 这样的服务还是非常有用的, 因为这样简单的错误可以交给OSI上面的各层来恢复。如大多数局域网在数据链路层所采用的服务也是无确认的无连接服务。有确认的无连接服务是对无确认的无连接服务的一种改进。当提供这种服务时, 仍然不建立连接, 但是所发送的每一帧都进行单独确认。以这种方式, 发送方就会知道帧是否安全地到达, 如果在某个确定的时间间隔内, 帧没有到达, 就必须重新发送此帧。这类服务主要用于不可靠信道, 如无线通信系统。
在发送数据前, 发送方将数据进行分帧包装, 然后按发送请求、数据传输、发送完成的步骤进行通信。接收端收到请求信号后, 向用户询问是否接收。用户确认接收后, 接收端发出“请求发送文件”信号。发送端收到“请求发送文件”信号后, 开始发送数据。首先由发送端发出第一帧数据, 然后等待反馈。接收端收到一帧数据后, 若帧长度校验和错误则发出“请求重新发送帧数据”信号, 如果正确, 则发出“请求发送下一帧数据”信号。若发送端收到“请求重新发送帧数据”信号, 则重新发送先前发送的帧数据。若发送端收到“请求发送下一帧数据”信号, 则首先检查已经发出的一帧数据是否是最后一帧, 如果是则发出“发送完毕”信号, 否则, 发送下一帧数据。重复整个过程。当发送方发出“发送完毕”信号后, 关闭文件, 并提示用户“发送完毕”。接收端受到“发送完毕”信号后, 则把文件缓冲区中存储的数据写入磁盘, 然后关闭文件, 并向用户提示“接收完毕”。
3 结束语
从上面的分析可以看出, 基于有确认的无连接服务的串口通信帧同步方法是本文中提出的三种帧方法中最优的, 结构清晰且系统资源利用率高。串口数据传输时在每一帧都采用了发送/应答/重连/失败的方式进行。克服了数据帧传输在RS-232接口中低速率、无线信道不可靠性以及整个通信系统的开销等制约因素。需要指出的是本协议仍有一些不完善的地方, 比如安全性没有考虑等, 这些不足都有待于以后进一步的优化。
参考文献
[1]陈启美, 李嘉.现代数据通信教程[M].南京:南京大学出版社, 2000, 3.
[2]王达.网络工程师必读:网络工程基础[M].北京:电子工业出版社, 2006, 7.
串口通信数据的传输 篇2
关键词:北斗卫星通信;水文测报;应用
1 北斗卫星通信介绍
北斗卫星通信系统是我国独立研制的一套地面定位导航系统,是继美国全球定位系统(GPS)和俄罗斯全球卫星导航系统(GLONASS)之后的第三个卫星导航系统,北斗卫星通信系统研制的成功显示了我国在卫星导航通信方面取得了巨大进步与成功。北斗卫星通信系统可在全球范围内全天候、全天时为各类用户提供高精度、高可靠定位、导航、授时服务,并具有短报文通信能力,已经初步具备区域导航、定位和授时能力,其定位精度小于20m,授时精度小于100ns。
1.1 北斗卫星通信的构成
北斗卫星通信系统主要由空间端、地面用户终端和地面站三部分组成。(1)空间端:空间端是由2-3颗地球同步卫星组成,它主要负责在运行过程中将地面用户终端和地面站联系起来,传输并规范二者之间的通讯信号。由于每个卫星都装载有变频转发仪以及波束天线,并且波束天线的作用非常强大,因此它可以保证通讯信号的顺畅传输,降低信号失真率。(2)地面用户终端:地面用户终端又称为定位终端和移动终端。地面用户终端具体又分为普通型和指挥型两类,主要用于处理地面用户终端与空间端之间的数据。随着北斗系统在人民群众中的应用越来越广泛,许多厂家指定了地面用户终端的行业技术标准,终端均具有通用的RS232C数据接口,方便数据的交互,很大程度上方便了人们的生活。(3)地面站:地面站在北斗卫星通信系统中充当着中转站的角色,主要用于地面用户终端的之间的相互通讯。地面站位于北京,用户的定位和数据通讯业务主要是由神州天鸿中心站来办理,主要办理业务包括卫星间的数据传输、相应用户业务请求以及完成用户定位数据处理和通信交换等,除此之外,用户还可办理注册、管理等业务。
1.2 北斗卫星通信的特点
北斗卫星通信系统的主要有抗雨水能力强、可靠性高、耗能低以及维护检修方便等特点,再加上它是由我国独立研制的,因此在通讯信息的保密性和安全性更高,不用担心信息泄露等情况的出现。另外,北斗卫星通信系统具有多种不同的工作模式,能够与水文测控系统紧密集成。特别在需要短通信方式进行数据传输的水文自动测报系统中,北斗卫星通讯系统具有独特的优势。北斗卫星通讯系统的主要工作有L/S/C三种,具有较宽的通讯频段,因此其在信息传输方面具有很大的优势。
1.3 北斗卫星通信系统的应用
北斗卫星通信系统作为我国自主研制的全球卫星导航通讯系统,在国内主要有三大应用领域,分别是大众应用、行业应用和特殊应用。其中大众应用和行业应用也被称为北斗民用。大众应用具体有汽车导航、车辆信息服务、跟踪监控、紧急救援以及位置移动服务等;行业应用一般是指电力、水利等网络系统中心、应用中心以及数据服务等。而特殊应用主要指军工类应用。以上应用中普通群众接触最多的应属汽车导航,现在多数汽车应用的是GPS定位系统,北斗卫星定位系统正逐渐开始运用,国内众多导航厂商均已退出相关产品,如凯立德的北斗导航仪等。北斗卫星系统在行业应用中的应用并不多,大多处于试行阶段,比如电力系统的授时中心系统以及渔业定位系统等。
2 在水文预报数据传输方面的应用现状
随着北斗卫星通信系统的不断成熟,我国在水文测报数据的传输方面也广泛使用此套通信系统。上世纪70年代至今,我国在水文测报方面的技术进步飞速,这主要归功与我国在卫星通信技术方面的快速发展。基于北斗卫星通信系统的水文测报系统主要包括水位、水文测报数据接收站、降雨量遥控测量站、神州天鸿中心站以及地面中心站等5部分构成。在北斗卫星通讯系统的基础上,我国建立起了将近800个水文预报站,其系统的通畅率高达98%以上,能够快速便捷地处理传输信息。我国是农业大国,水文数据对于农业的发展具有重要影响,随着通讯系统的不断发展进步,我国水文测控事业也不断发展,在水灾旱灾监控预报方面给人民群众提供了众多便利,这也体现了我国以人为本的方针政策。
2.1 水文测报系统的构成及特点
水文自动测报系统主要包括以下几个部分,(1)水位,(2)水文测报数据接收站,(3)降雨量遥控测量站,(4)位于北京的神州天鸿中心站,(5)地面中心站。遥控测试终端在遥测站内处于核心地位。遥测站主要用途是是采集有关水情的各种信息,辅助北斗卫星终端进行指令接受和信息发送等任务。我国在北斗卫星通信系统的基础上大概建起了800个运行测试站点,其系统的通畅率也保持在98%以上的较高水准。
2.2 工作体制分析
水文自动测报系统的工作体制主要包括定时召测、定时自报以及增量加报三部分,其中北斗卫星通信为水文自动测报站中的主通信路径,各个维护分中心再通过主通信路径以一发多收的方式处理接收遥测站的大量通讯信息,除此之外,各个中心站和分站均能独立接受信息,这就保证了信息传输的通用性和合理性,当信息由中心站确认以后,中心站发出定时自报信息,之后通过遥控测试站对信息进一步核对,信息无误后将被采纳,然后进行下一步的处理工作。以位于金沙江的梯级电站水文自动测报系统为例,该水文测报系统的主通信路径即为北斗卫星通信系统,它采用定时召测、定时自报和增量加报的工作体制通过140多个遥测站和9个后方维护中心以及4个中心站进行信息处理,采用一发多收的方式对管辖范围内的遥控测试站进行信息集取,之后又通过中心站的定时自报的方式进行信息确认以及核对,具有处理不同信息情况的能力。总而言之,基于北斗卫星通讯系统的水文自动测报系统在严格执行工作体制的前提下已经具有了高效有序的操作步骤以及一套相对完善的测控体系,它在人民群众的日常生活中发挥了重大的作用,改善了我国农业人口靠天吃饭的尴尬境遇。
3 在水文测报数据传输方面的发展前景
经过几十年的发展,我国在水文测报事业上取得了非常大的进步与成果,特别是近几年来的发展更是越来越成熟,自动化与智能化程度也越来越高。我国在通信卫星方面的技术不断进步,水文测报事业也一定能在此基础上取得更加瞩目的成就,为我国的灾害预测以及农业发展提供更多的帮助。
结语
笔者在文中详细介绍了北斗卫星通信系统的构成以及信息传输的特点,阐述了水文自动测报系统与北斗卫星通信系统的紧密联系,同时对水文测报系统的构成以及工作体制进行了较为系统的介绍。技术的进步是经济快速发展的强大动力,我国正在卫星通信方面大跨步的迈进,水文测报事业也在卫星通信系统不断进步的基础上稳步前进,不断为人民群众提供更加方便的社会服务。
参考文献:
[1]蹇峡.北斗卫星导航系统在铁路应急通信中的应用研究[J].中国新技术新产品,2013(01).
基于单片机的数据串口通信研究 篇3
1.1 关于数据串口通信
数据串口作为一种新的通信方式可以将通信技术与计算机技术的两者优点相结合, 所说的串口通信就是以数据的信号线、控制线以及底线等线路来与外部的设备和计算机相连, 然后在通过按位的方式将数据进行传输的通讯方式。同时, 在计算机的领域之中, 数据串口其实也是一种通用的通信设备的协议, 在仪器仪表的设备之中它也是一种通用的通信协议。简单来说, 数据的串口通信其实就是在串口上将字节进行发送和接受的时候按位进行, 数据线的数量少, 远距离通信中的成本可以大大的节省。
1.2 数据串口通信的主要参数
在进行串口的数据通信的过程中, 有五个主要的参数, 他们是:波特率、数据位、起始位、停止位和奇偶校验。当在两个端口之间进行数据通信的时候, 必须要与相应的参数相互匹配, 才能保证数据传输的正常顺利进行。
2 数据串口通信的方式
通常来说, 数据串口通信的方式主要有同步通信和异步通信两种。
2.1 同步通信方式
同步通信的方式是以一帧数据的起始位到终止位来作为一帧数据传输的开始与结束标志。同步通信方式的一个数据块所有输送字符连接在一起的, 当输送数据前面增加特殊的同步字符时, 它的起始信号是同步字符, 并且在数据块的后面增加相应的校验字符。同步通信方式中, 字符之间是没有间隔的, 因此, 同步通信的优点就是具备较高的通信效率, 通信过程中也会在几十到几千波特之间, 但是也存在一定的弊端, 就是由于同步通信方式在进行数据传输的双方要在时钟之上保持发送端与接收端的同步, 所以, 传输的过程就要求具备构造复杂的硬件设备。
2.2 异步通信方式
异步的通信方式就是以独立的字节而进行数据的传输, 并且每一个自己的前面都存在起始的信号, 后面的字节也有一个或多个终止的信号。在通信的过程中, 一帧数据是从起始信号到终止信号结束, 当数据进行传输时, 字节就会向后移动, 字节的起始位置也会从标志位到空白的一次迁移, 而在传输结尾的时候就使用一个或者多个终止信号, 通过这样的方式可以让传输线回到标准的状态。然后, 当这一个过程结束的时候, 数据传输就会像下一字节去发送。异步通信的优点是数据接送双方进行通信的时候, 双方的时间存在的误差可以起到缓冲的作用, 并且是允许较小的频率漂移的。异步通信的缺点就是当进行数据传输的时候, 会导致传输的效率降低, 因为传送的时候每个自己都会有一些标志信息作为附加, 这样就会大大的降低数据传输的速度。
3 基于单片机的数据串口通信研究
3.1 通信过程分析
在通常的情况之下, 首先要就进行发送行为, 也就是单片机在数据的寄存器中进行数据的写入, 然后在对数据进行传送的过程, 与此同时, 寄存器中的读取数据的过程在开始进行了, 整个单片机与串行接口在通信的过程中, 单片机会发出命令帧格式来对可编程的逻辑进行控制器的命令发出, 在命令结束的时候, 可编程逻辑控制器就会对单片机的命令及时的做出反应, 数据在通过串口通信协议发送信息的时候一般都是要转化为二进制的, 进而对数据的寄存器通过单片机来传送信息。
3.2 单片机显示设计
单片机现实设计的过程主要有两种方式, 即静态显示驱动和动态显示驱动。动态显示驱动是通过数码管来动态显示的, 在这个过程中, 并联起所有的选线路, 通过八位的I/O装置进行控制, 单片机的其他I/O口作为数码官位选线, 将显示的数字进行相应的解码译码, 通过对其的控制, 相应的数码管就会显示, 与之不匹配的就不会显示。静态驱动的显示方式通常是采用直流驱动的, 因此在实际过程中会有许多不便, 使用率不高。
3.3 矩阵式键盘接口
由于键盘中的案例需要较多的数量, 必须要通过合理的排列来减少I/O口的占有率, 一般情况下, 是采用矩阵式的键盘接口来确保每一条的水平线与垂直线可以在交叉处不直接的连通, 通过按键来加以连接作为合理的连接方式, 这样端口就可以以4*4的排列方式, 在这种排列方式之下, 会节省时间, 提高一倍的利用率。可这种方式在线路多的情况之下会有缺点, 就是在矩阵式的分布方式中, 当增加一条线便可以形成二十键的键盘, 当通过直接端口线, 使用矩阵方式可以起到好的效果。矩阵式的结构的效果很好但较为复杂, 识别度难度也大, 因此在确定矩阵键盘时按键的方式也是采用的行扫描法, 这种常用的按键识别方法就是在键盘是否下落做判断, 将全部行线到低电平, 对列线状态进行检测。当检测的过程中一旦发现电瓶较低, 则表示键盘的状态为按下, 当发现所有的列线为高电平, 则表示按键是按下的状态。当确认了是否按键之后, 就可以开始对具体的闭合按键确认了, 将行线置为低电平, 在确定某根行线位置是低电平后, 在对各列线的电平状态进行仔细检查。当发现这一列都为低电平时, 则证明按键的列线与低电平的行线交叉处是处于闭合状态的。
4 结语
正是由于单片机具有较高的集成度、便捷的嵌套功能以及较为低廉的价格, 使得其在如工业、商业等各个领域之中应用较为广泛, 通过单片机与PC串口进行数据传输, 可以有利于自动化生产的发展, 并且随着科学技术的不断研发, 单片机的功能在日趋完善, 更多的优势体现出来, 也为未来的更加智能化的方向做准备, 相信未来基于单片机的数据串口通信一定会更加的高效智能, 应用范围也会更加的广泛, 客户的满意度也会越来越高, 也会更大的促进我国经济的发展!
参考文献
[1]阮翔.基于单片机的数据串口通信研究[J].信息通信, 2015 (5) .
[2]李刘丹.单片机的数据串口通信研究[J].信息通信, 2015 (10) .
浅谈基于单片机的数据串口通信 篇4
关键词:单片机,数据串口通信
1 并行传输与串行传输
通讯过程当中, 传输方案是通过数据线依次序进行8次传送的, 8位一个字节, 这种传输方式称为串行通信[1];第二种方法是同时使用8条数据线分别传送8位, 叫并行通信。串行通讯虽然传送的速度较慢但是串行口线间干扰小, 在远距离传送过程中速度也较高。
2 单片机的选择
2.1 保证传输可靠性
本文研究的串行通讯通道是传输数据和指令的通道。在单片机的选择上要保证有高可靠性的传输。不同的传输环境采用不同的接口标准。单片机芯片的可靠性可以保证通讯状态测试, 误码校验等实验内容。
2.2 保证通信抗干扰能力
在不超过适用范围的情况下, 通讯抗干扰能力才具有定义。虽然在某些工业测控系统中, 由于通信环境十分恶劣而采用无线通讯的方式, 但是在通信介质的选择、接口标准的选择过程中保障其抗干扰能力强, 同样可以达到保证通讯效果。
2.3 考虑通信的速度、距离
标准串行接口具备一定的电气特性, 电气特性的两个指标是在满足可靠传输的情况通讯最大速度与最大传输距离。两个指标存在线性关系, 最大通讯速度减低、通讯距离减少, 最大通讯速度增高、通讯距离增长。
3 串行通信的同步方式
3.1 异步通信方式
异步通信系统中以独立的字节传输数据, 每个独立字节的开端有一起始信号, 字节后有一个以上的终止信号。起始位到终止位的信号就为一桢数据。传输迁移的开始是从标志位到空白的迁移, 通常来说, 数据的起始位占用一位, 停止位可占用一位到两位。异步通讯用这类方式表达字符, 字符在串行传输一个一个的传送。至于外部设备与PC机的通讯的成功要求字符格式、起始位等相关参数的设定相同;波特率 (串行通信中每秒传送数据的位数) 的设置相同, 数据传送速率由波特率表示。
3.2 同步通信方式
同步通信采用将字符连续接连起来, 通过数据块的形式传输。与异步通信相同, 其数据块起始信号同样是在其前面加特殊的同步字符。而同异步通信方式不同处在于:同步通信方式的传输数据块的后面加上校检字符并不是终止信号, 是能够对通信中的错误进行校检的。而且此种方式的字符之间并无空白间隔, 因此其效率也相对来说要高, 可高达几十甚至是几百千波特。
4 基于单片机数据串口通信研究
4.1 矩阵式键盘接口技术
在按键数量比较多的情况下, 如果要减少端口占用问题, 可通过矩阵式排列加以解决。在矩阵式键盘单重, 垂直、水平线的交叉地方是经由按键连接而不是直接连通的。在键数量比较多的时候采用矩阵法做键盘是更为合理的, 矩阵式结构的键盘相比较直接法来讲也比较复杂, 因此识别要复杂些。列线一般是通过电阻来接正电源的, 然后把行线接的单片机I/O口作输出端, 列线所接口味输入。在按键没有按夏的回收, 所有的输出端就都是高电平。而行线输出的就是低电平, 按键时, 输入线就会被拉低。因此, 通过读输入线的状态就可以知道是不是有按键。
4.2 单片机显示原理
数码管静态显示的一般是其的驱动电平不会改变, 可知该数码管数值是否出现变化。动态显示是基于人眼反应迟钝, 数码管轮流会显示一段的时间, 看起来就像是几个数码管同时亮起来, 但实际上就只有一个是亮的, 其他的则是余晖。静态显示的亮度要打, 但是功耗也比较大。动态显示要弱于静态, 不过显示的位数要多。要注意的是, 动态扫描频率一般要高于50hz, 最佳则为高于60hz, 否则数码管就会闪烁。
结束语
本篇文章基于单片机, 从数据传输方式类型、单片机的特性要求、数据同步方式、矩阵式键盘接口技术与单片机显示原理等多个方面对数据串口通信进行阐述, 希望能为行业发展提供参考。
参考文献
[1]刘远义, 张锐, 刘宏洋.PC机与单片机的串口通信数据采集系统设计[J].邢台学院学报, 2013, 02:174-176.
串口通信数据的传输 篇5
STM32F4系列是一款由意法半导体推出的基于ARM Cortex-M4内核的高集成度、 高性能、 低功耗的微控制器产品, 大大满足了数字信号控制市场需求。 其新特性主要包括:
(1)增加了浮点运算单元(FPU),通过内置单精度FPU提高控制算法执行速度, 使目标应用功能增加, 提高代码执行效率,缩短项目研发周期。
(2)增加自适应实时加速器,使得Cortex-M4性能完全释放。 即当CPU工作在允许频率( 不超过168MHz)时,在flash中运行的程序可以达到几乎零等待周期。
(3)采用多达7重AHB总线矩阵和多通道DMA控制器,支持程序执行和数据传输的并行处理,数据传输速率极快。
2 DMA
2.1功能
直接存储器访问(DMA) 用于在外设与存储器之间以及存储器与存储器之间提供高速数据传输,该操作是根据地址空间的标识实现的。 CPU仅参与DMA初始化工作, 而在整个数据传输过程中完全由DMA自身实现。 这样在大数据量采集处理时,采用串口DMA数据传输方式,不用像串口中断那样每次来一个数据都打断CPU处理, 只需在整个数据传输完成后CPU才处理一次,让CPU有更多时间完成其他处理,不用耗费在数据传输上,大大提升了处理器的处理速度。
2.2主要特性
STM32F4系列DMA主要特性:
(1) 双AHB主总线架构, 一个用于存储器访问, 另一个用于外设访问。
(2)仅支持32位访问的AHB从编程接口。
(3)每个DMA控制器有8个数据流,8个数据流中的每一个都连接到专用硬件DMA通道(请求),
每个数据流有单独的四级32位先进先出存储器缓冲区(FIFO),可用于FIFO模式或直接模式。
(4)要传输的数据项的数目可以由DMA控制器或外设管理。 DMA流控制器:要传输的数据项的数目为1~ 65535,可用软件编程。 外设流控制器:要传输的数据项的数目未知并由源或目标外设控制,这些外设通过硬件发出传输结束的信号。
2.3通道分析
STM32F4系列微控器属于高端型号, 含有两个DMA控制器总共有16个数据流(每个控制器8个), 每一个DMA控制器都用于管理一个或多个外设的存储器访问请求。 每个数据流总共可以有多达8个通道(或称请求)。 每个通道都有一个仲裁器,用于处理DMA请求间的优先级。 DMA请求映射示例如表1所示。
表1表示DMA控制器DMA1的映射请求。 大多数外设可产生DMA请求, 通过逻辑或的关系挂载到DMA的使能端子, 即同一时刻只能有一个请求被执行。 例如, 表1中通道3数据流6对应外设请求有TIM2_CH2、TIM2_CH4,在同一时间DMA只能响应其中一个。
3串口DMA数据传输实现
开发工具采用ST公司提供的MDK515。 ST公司提供了很完善的驱动库,简化了外设的使用,以缩短产品研发周期,本文采用库函数展示功能。
首先使能串口DMA接收和发送功能; 再指定DMA工作模式、 源地址、 目标地址和传输次数, 设置DMA中断优先级; 最后完成DMA中断处理函数编写。
此次使用串口2的DMA中断功能, 对应的通道分别为:USART2_TX,DMA1通道4、 数据流6; USART2_RX,DMA1通道4、 数据流5。 DMA主要配置:DMA内存递增模式, 使能;DMA外设数据传输方式,字节;DMA内存数据传输方式,字节;DMA传输模式,循环;FIFO模式,禁止;DMA传输方向,外设到内存(DMA接收)、内存到外设(DMA发送)。 程序代码示例:void DMA_Configuration(void)
4结果
测试中采用外部晶振20MHz, 设置串口波特率9600, 串口2通过DMA能够正常收发数据。 由于DMA数据传输不需要CPU参与, 在调试的时候单步停止, 串口2依然不停地向外发送数据, 符合上述DMA传输数据的特性。
5结语
本文主要阐述基于STM32F4系列微控器的串口DMA数据传输的优势及软件实现。 实践证明,采用DMA传输数据的本质不是提升了CPU的处理速度,而是释放CPU,让CPU能够有更多时间完成其他功能,从而提升处理器处理速度。 尤其在大数据量采集传输时,可大大减少工作量,提高设计可靠性。
参考文献
[1]张慧娟.STM32F4系列抢占Cortex-M4内核先机[J].EDN CHINA(电子设计技术),2011(11)
[2]周洪雁,宫志.基于STM32的DMA研究及嵌入式互补脉宽发生器设计[J].大庆师范学院学报,2014(6)
[3]宋岩.Cortex-M3权威指南[M].北京:北京大学出版社,2008
[4]喻金钱,喻斌.STM32F系列ARM Cortex-M3核微控制器开发与应用[M].北京:清华大学出版社,2011
串口通信数据的传输 篇6
串口通信以其容易实现、成本低、连接简单方便等特点在工业监控、数据采集和实时监控系统中得到广泛应用[1]。因此通常将系统与计算机通过串口直接通信,利用上位机软件进行数据接收和处理,监测串口发送数据的有效性和完整性,从而达到测试系统工作状态或性能的目的。然而在实际应用开发过程中,通用的串口通信数据处理方法不能满足高速通信时的要求,处理结果容易出现数据丢失现象,同时对数据丢失位置和丢失数量也难以定位和计算,基于此提出一种高速串口通信中数据可靠高效的处理方法,该方法从数据组帧、串口通信、数据接收与存储和数据处理4个环节进行分析和设计,并通过实验验证其性能,其完全可应用到实际系统开发中。
2 数据处理方法
一般串口通信中的数据处理过程主要由数据组帧、串口发送数据(串口通信)、数据接收和数据分析处理4个步骤。在发送数据速率较低时,可采用如图1的流程进行数据处理,首先对需要发送的数据进行数据组帧,然后通过串口通信形式发送到上位机,上位机从串口中接收到数据后立即进行相关处理,直至数据处理完成后再继续接收数据,也即接收数据后,立即进入数据处理环节,并在完成数据处理后,再次等待接收新数据。然而这种实现方法在串口高速率大信息量通信时,极易出现数据丢失的现象,在对数据完整性要求较高的场合,此种情况必须避免发生。数据丢失的原因在于数据接收与数据处理在同一个线程中进行,如果数据处理时间较长,来不及接收的数据只能暂存于缓存中,一旦缓存满了,新到的数据就会冲刷掉来不及接收的数据,从而造成部分数据的丢失。
本文提出一种如图2所示的处理流程,首先对需要发送的数据进行数据组帧,然后通过串口通信形式发送到上位机,上位机从串口中接收到数据后立即写入环形缓冲区,同时读取缓冲区数据并进行相关处理,也即利用多线程技术使数据接收与耗时较多的数据处理过程分别在两个线程中进行,互不影响,其中数据接收线程负责数据接收并将接收到的数据存入到环形缓冲区中,数据处理线程负责从环形缓冲区中读取数据和处理分析数据。
2.1 数据组帧
在串口通信中,为了正确判别解析数据帧和提高检错能力,需要对发送的数据信息按一定方式进行编码组帧,本文采用如下方式进行组帧。
其中每一数据帧由7个字段组成:
帧头:1个字节,代表数据帧的开始;
帧长:0x00-0x FF,1个字节,代表数据帧除帧头、校验码和帧尾之外的长度;
帧号:0x00-0x FF,1个字节,代表不同的信息种类;
正文:传输的有效数据信息,长度可变,可包含各种数据类型;
帧编码:0x00-0x FF,1个字节,数据帧0-255循环编码;
校验码:2个字节,校验码之前所有字节的CRC校验;
帧尾:1个字节,代表数据帧的结束。
2.1.1 数据帧编码技术
帧编码是指对发送的帧数据按发送顺序进行0-255循环编号。即第一帧数据编号为0x00,依次进行,第256帧数据编号为0x FF,第257帧数据编号为0x00,等等,依次循环往复进行编号。该方法可在出现数据丢失时进行快速定位丢失位置和丢失数量,对数据的完整性和有效性快速分析具有很大帮助。
2.1.2 CRC校验技术
循环冗余校验CRC(Cyclic Redundancy Check)是一种利用除法及余数的原理来做错误侦测的方法[2],它将要发送的数据比特序列当作一个多项式f(x)的系数,发送时用双方预先约定的生成多项式g(x)去除,求得一个余数多项式,将余数多项式加到数据多项式之后发送到接收端,接收端同样用g(x)去除接收到的数据,进行计算,然后把计算结果和实际接收到的余数多项式数据进行比较,相同的话表示传输正确。同时CRC校验检错能力强,且容易实现。因此,在进行数据组帧时对数据做CRC校验预处理,其中本文生成多项式g(x)=x16+x15+x2+1。
2.2 串口通信实现方法
在高速串口通信中,由于数据速率高且数据量大,如果采用单字节产生中断的方式来接收,那么CPU就会疲于处理串口中断事件,而且这种情况下单字节是无法作数据处理的,而使用FIFO缓冲区,一次接收多个字节后再产生中断就会节约CPU时间用于数据处理。实际应用中常采用CSerial类、Windows API函数和MSComm控件三种方式来实现,其中CSerial类因采用单字节产生中断的方式接收而不宜采用,Windows API函数虽然功能强大,实现灵活,但相对复杂,需要开发者对Windows程序设计原理有较深入的了解,此外它只能实现对标准串行通信端口首地址的读写操作[3],因此本文选取MSComm控件来实现串口通信。MSComm控件开发快速简单,同时满足串口缓冲区大小可设,然而也有不足之处:(1)使用前需要在系统中注册;(2)一般只能在对话框中使用,但并不影响实际应用。
2.3 数据接收与存储
2.3.1 环形缓冲区技术
队列在顺序存储方面非常有用。数据对象在队列的一端插入,另一端移除。而且当两个线程同时访问队列,如果一个线程只负责数据存入,另一个线程是负责操作数据读取时,不会出现多线程的资源争用问题,所以不必使用“加锁”和“解锁”操作,从而提高了程序的运行效率。
在顺序队列中,头指针front始终指向队列头元素,而尾指针rear始终指向队列尾元素的下一个位置,随着进队、出队操作的进行,有可能会出现rear指针已到达队列存储空间的终点,而队列的实际可用空间并未占满现象。为了避免这种现象的发生,一个巧妙的办法是将顺序队列臆造为一个环状空间,称之为环形队列[4],如图3所示。在环形队列中,入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针,因此,只需通过条件front!=rear来判别队列中数据是否被取完。当数据处理线程检测到front!=rear时,说明队列中已经存入接收到的数据,就开始取出队列中的数据进行相关处理,反之一直处于循环等待状态,保证了数据处理的实时性。因此,采用环形队列作为缓冲区存储串口接收到的数据是一种高效可行的方案。相关关键代码如下:
2.4 数据分析与处理
2.4.1 多线程技术
多线程原理:线程是进程内一个相对独立的、可调度的执行单元,当操作系统为每个独立线程安排一些CPU时间,操作系统以轮换方式向线程提供时间片,使多个线程“并行”地运行在同一进程中,这样可以实现“并行”处理任务,避免了某项任务长时间占用CPU时间[5,6]。
在高速串口通信中,数据传输速率高,数据量大,如果数据采集接收和数据分析处理在同一线程中进行,极易出现部分数据帧丢失或数据帧的部分数据丢失现象,为了避免此类现象发生,开辟新的数据处理线程,使数据接收和数据处理分别在不同线程中进行,避免CPU被数据处理长时间占用,大大提高了CPU的利用率,最终可完全实现高速串口通信中的数据接收和处理。其中数据接收线程只负责把采集到的数据写入环形队列缓冲区中,而数据处理线程负责从环形队列缓冲区中取出数据并对其进行相关处理(解析、显示、保存等)。相关关键代码如下:
3 实验结果
(横轴:测试速率(帧/s),纵轴:丢帧率)
(横轴:测试速率(帧/s),纵轴:CPU使用率)
在同一实验室环境下和同一台带有windows7操作系统和配备MOXA多串口卡的工控机上,利用Visual C++6.0进行高速串口通信软件开发,其中数据处理部分分别采用图1和图2两种方案,其它部分实现方法完全相同,并关闭其它与测试无关的运行软件,先后通过对某惯性测量组件系统进行测试对比,其测试结果如图4和5所示。其中串口波特率为921600,一帧共56个字节,每次测试共发送160000帧。测试结果表明,方案1丢帧率和CPU使用率均随着测试速率的增加而快速大幅增大,同时,当测试速率达到较高时,不但丢帧率很高,而且由于CPU资源被占用过多会照成系统假死机;方案2随着测试速率的增加其丢帧率依然为0,CPU使用率仅有小幅增加,系统运行依然流畅。其中丢帧率(η)是指实际发送数据帧数量(N)与接收到的实际有效数据帧数量(n)之差与实际发送数据帧数量的百分比,即。此外,由于数据组帧时采用了CRC校验和帧编码技术,数据处理过程中数据检错能力得到极大提高,同时可快速分析处理结果数据的完整性和有效性。
4 结束语
本文结合实际研发项目中高速串口通信数据丢失的问题进行分析和研究,提出一种高效可靠的处理方法,该方法充分利用CRC校验技术、帧编码技术、多线程技术和环形缓冲区技术,解决了数据丢失现象,并使数据完整性分析更加高效快速,同时也使软件的执行效率和系统资源的利用率得到了明显提高,完全实现高速串口通信中数据的高效可靠处理,其具有较高的实际应用价值。
参考文献
[1]苏岳龙,李贻斌,宋锐.基于VC++6.0的高速串口通信数据采集系统[J].微计算机信息,2005,21(5):147-148.
[2]王鹏.基于CAN总线的CRC校验码的原理与实现[J].赤峰学院学报,2014,32(2):48-49.
[3]杨颂,邱云超,费敏锐.Windows环境下实现串行通信的3种常用方法及比较[J].自动化与仪表,2000,15(4):1-4.
[4]姚章俊,陈蜀宇,卢尧.一种高性能环形缓冲区的研究与实现[J].计算机工程,2012,38(8):228-230.
[5]杨红军,王金英.基于VC++的多线程通信程序设计[J].电脑知识与技术,2008,4(2):413-415.
串口通信数据的传输 篇7
2013年6月9日21时 (北京时) , 南宁市城区气象观测站值班员在进行正点地面观测数据维护时发现该时次的要素栏全部为空白, 上传数据文件中, 分钟数据文件和状态数据文件正常形成, 而地面气象要素数据上传文件无法形成, 经过手工卸载“常规数据卸载”, 仍无法解决。在继续进一步检查其他数据文件时, 发现气压 (P) 、气温 (T) 、相对湿度 (U) 、风 (W) 、降水量 (R) 、正点地面气象要素数据文件 (Z) 均正常, 而逐分钟地面数据文件 (RTD) 则缺少21时01分、21时02分数据。在22时也出现了同样的情况。
2 数据处理
当务之急是形成21时、22时正确上传数据文件, 处理方法:打开“自动气象站数据质量控制软件”打开“Z5943206”文件, 点选“09日21时”一行数据, 从软件的“文件”栏中选“数据导入”, 找到“AWS_59432_20130609.RTD”, 选中点“确定”, 保存“Z5943206”文件;从“Aws Data QCFile”文件夹中的“Z5943206”复制覆盖到“Aws Source”文件夹中的“Z5943206”。打开地面气象测报业务软件中“整点地面观测数据维护”, 此时要素栏就有数据了, 人工挑选并修改小时、日极值, 保存后即可形成正确的小时上传数据文件。
3 故障判断过程
开始判断为计算机操作系统错误引起, 故重启计算机, 但重启后, 发现自动气象站监控软件中启动系统时初始化自动站进度加载到30%时无法继续, 经过多次重启计算机, 均无法正常启动监控软件。经分析, 出现此类现象可能是由于通信设备故障、参数设置造成、计算机与采集器时间不一致造成。首先检查自动站参数设置, 设置并无错误;遂关闭监控软件, 利用超级终端建立与自动站采集器的连接, 发现仍能接收到自动站分钟数据, 且经过分析, 数据均为正确, 而利用发送指令测试传感器时, 却接收不到返回的信息。考虑到短时间内可能无法排除故障, 就将通信线的RS232接口接到自动站备份计算机, 发现监控软件恢复正常采集数据。此时, 排除自动站通信线路问题, 故障确定为计算机本身的故障。
4 故障原因分析
经事后检查分析判断, 主要原因为计算机维护时, 卸掉通信线缆和计算机的接地线未恢复, 雷电流由通信线缆入侵时造成计算机主板RS232串行口损坏。受低涡切变线及弱冷空气共同影响, 9日20时至10日08时, 本市普降暴雨, 局部大暴雨, 并伴有强雷电、短时大风, 这是2013年入汛以来南宁市强度最强、雷电活动最为活跃的一次强降水天气过程。计算机RS-232串行口用于ASCII码字符的传输, 在用于普通的通信时, 只需用到3个引脚即可:3 TXD发送数据;2 RXD接收数据;5 GND地线。而该本文里提到损坏的正是主板3 TXD发送数据针脚部分。2 RXD接收数据针脚是完好的, 在不关闭自动气象站监控软件的前提下, 是不影响分钟数据的采集, 但监控软件卸载常规定时数据需要读取采集器时间, 由于3TXD发送数据部分损坏, 导致主控计算机无法读取识别采集器时间, 无法卸载需要的数据文件, 导致写入上传数据文件为空白。因为重启计算机打开监控软件时, 同样需要计算机与自动站采集器进行对时, 同样道理, 计算机读取采集器时间无法进行, 无法进行下一步操作, 则会出现“警告!打开自动站失败”的提示。这就是利用超级终端仍能接收数据, 却无法打开自动气象站监控软件的原因。经过计算机生产厂家的售后服务人员更换主板后, 故障排除。
5 结论
自动气象站的防雷工作, 关系到地面气象观测数据质量、数据传输及时率, 气象台站应高度重视。自动站室内部分、电源、信号防雷设施必须与建筑物接地可靠连接, 维护设备临时拆卸的防雷接地线, 必须及时恢复, 定时自查值班室的防雷接地情况。
参考文献
[1]高国明.自动气象站与气象宽带网防雷技术要点[J].广西气象.2006, 27.
串口通信数据的传输 篇8
一、现代数据技术在通信传输网络中的运用特征以及常见形式
1.1现代数据技术在通信传输网络中的运用特征
现代数据技术的发展比较迅速, 将现代数据技术和通信传输网络进行结合, 就能促进通信传输的整体效率水平的提高。在运用中就有着鲜明特征呈现, 其中的高效性特征是比较突出的[1]。在对数据信息的传输过程中, 通信网络传输是主要的对象, 对信息传输前就要注重数据的安全处理。在现代数据技术的应用下, 就能自动化操作指令, 在数据的处理效率上有效提高, 对通信传输网络的调整以及修改数据效率就能有效提高。现代数据技术应用在通信传输网络中, 在共享性的特征上也鲜明的呈现。数据库的存储信息资源能够被共享, 用户将信息上传到互联网中被其它用户下载使用。在对现代数据技术应用下, 就能使得通信传输网络的共享性特征充分体现, 能在短时间内接收到数据信息, 在对数据信息传输的范围上得到了有效扩大化。现代数据技术的应用中, 在通信传输网络安全性问题上表现的比较突出, 受到各方面的因素影响, 对信息传输的安全性就有着很大威胁[2]。现代数据技术的运用中, 对信息的安全传输就能有效保证。
1.2现代数据技术在通信传输网络中的运用常见形式
通信传输网络中的现代数据技术运用的形式比较多样化, 光纤通信是以光作为信息载体, 以光纤作为传输媒介的通信方式, 首先将电信号转换成光信号, 再透过光纤将光信号进行传递, 属于有线通信的一种。最基本的光纤通信系统由光发信机、光收信机、光纤线路、中继器以及无源器件组成。在发送端首先要把传送的信息 (如话音) 变成电信号, 然后调制到激光器发出的激光束上, 使光的强度随电信号的幅度 (频率) 变化而变化, 并通过光纤经过光的全反射原理传送;在接收端, 检测器收到光信号后把它变换成电信号, 经解调后恢复原信息。还有就是移动通信的形式, 在当前的4G移动通信技术的应用比较广泛。在移动设备的应用下, 就能实现移动网络通信, 在通信的效率水平上有着很大提高。
二、现代数据技术通信传输网络运用功能和运用
2.1现代数据技术通信传输网络运用功能分析
现代数据技术在通信传输网络当中的运用有着诸多功能发挥, 通信中的数据传输通过点到点的数据传输专用电路方式, 就能对数据传输系统的调试以及维护有着很大便利。现代数据技术在通信传输网络中的运用方面, 在实时监测的功能上有着发挥。为能对通信的电路可靠性得以保障, 对电路的反复测试以及调整就比较重要[3]。在现代数据技术的应用下, 就能对通信传输网络实现检测功能, 对传输信息的安全性就能有效保障。
2.2现代数据技术通信传输网络运用
现代数据技术运用到通信传输网络当中, 在对数据信息的收集方面就能良好呈现, 用户在发送端输入信息后, 智能传输模块就能对这些信息自动的收集, 然后进行筛选, 在对信息的传递准确度上有着保障。对现代数据技术的运用中, 在信息处理方面也有着积极作用发挥。为能有效降低通信网络传输荷载, 在现代数据技术的应用下, 对数据的处理功能也能良好发挥, 这就能促进通信传输网络的效率[4]。
现代数据技术在通信传输网络中的运用中, 在对信息的存储以及监测方面也能有效发挥。通信传输网络应用中, 对现代数据技术的运用方面, 能对外界的干扰进行抵御, 在监测的作用上充分发挥, 对信息传输的风险问题就能有效解决。另外在对通信传输网络的现代数据技术运用中, 在信息存储的功能方面也能有效发挥, 能有效的存储信息。在构建自动化的数据库的基础上, 对数据信息的安全性也能有效保障。
结语:综上所述, 通信传输网络的不断发展下, 对新的数据技术的应用, 就能有利于促进通信传输的效率水平提高。在当前对网络安全以及数据信息的安全重视下, 加强对现代数据技术的应用安全性也比较重要。通过从理论层面对现代数据技术的研究分析, 对通信传输网络的发展水平提高就能起到一定促进作用, 为我国的通信传输网络的整体发展水平提高就有着促进意义。
摘要:随着当前的科学技术迅速发展, 对通信传输网络也有着促进, 现代数据技术在通信传输网络中的运用在要求上有着提高, 这就需要数据技术进一步优化, 对通信传输网络的发展进行保障。本文主要就现代数据技术在通信传输网络中的运用特征以及常见形式加以分析, 然后对数据技术通信传输网络运用功能和具体运用详细探究。
关键词:现代数据技术,通信传输网络,运用
参考文献
[1]杨健康, 汤晓晨, 陈颖.分层Ad Hoc网络的分群及群首选举算法研究[J].无线互联科技.2016 (16)
[2]李劲, 胡仕刚, 席在芳.System view仿真在通信原理课程实践教学中的应用[J].福建电脑.2016 (09)
[3]陈伟, 江佩佩, 顾庆水, 伍瑞卿, 张松伟.用于MWD遥传系统的联合编码调制方法[J].测控技术.2016 (09)
【串口通信数据的传输】推荐阅读:
串口通讯与数据通信08-11
多串口通信05-24
异步串口通信06-30
串口通信实验报告07-04
计算机串口通信08-08
串口与网络通信08-31
rs485串口通信原理06-28
VisualBasic串口通信程序设计08-25
STC12C5A60S2串口通信keil与proteus调试 自己总结08-26
串口数据通讯05-19