微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > 串口流控知识(百度百科)

串口流控知识(百度百科)

时间:10-02 整理:3721RD 点击:
简介

串口通讯的流控提供了由于某种原因不能进行通讯时阻塞通讯的一种机制。流控可以使数据接收设备在不能接收数据时通知数据发送设备,使其停止发送。串口的流控经常采用硬件流控和软件流控两种方式。开发串口通讯程序的过程中,可根据实际需要决定是否采用流控,采用硬件流控还是软件流控。使用控件Mscomm32开发串口通讯程序简单直接,若需要计算机协调与外设的数据传数时,这种方法不能满足要求;直接调用WIN32API函数的开发串口通讯程序,可以灵活的对串口进行设置,但需要较多的Win-dows编程背景知识。


硬件流控

硬件流控使用串行电缆控制线上的电压信号来控制数据的发送和接收。DTE和DCE在通讯过程中必须使用相同的流控方式。设置DCB结构仅仅配置了DTE,必须对DCE进行必要的设置以确保DTE和DCE使用相同类型的流控。串口通讯中的硬件流控有两种方式:DTR/DSR方式和RTS/CTS方式。实际采用的方式和DCB结构的初始化有关。DCB结构中fOutxCtsFlow、fOutxDsrFlow、fDsrSensitivty、fRtsCon-trol、fDtrControl几个成员的初始值很关键。不同的值代表不同的流控


软件流控

软件流控使用数据流中的两个特殊的字符,XOFF和XON,来控制数据的接收和发送。二进制方式传输不能使用软件流控,否则XOFF和XON出现在二进制数据中影响数据的传输。软件流控适用于文本方式的数据传输。


流控方式设置

开发串口通讯程序的过程中需要对串行端口进行设置,包括波特率、校验方式、停止位和数据位,也包括流控方式的设置。端口设置就是对DCB结构成员进行设置。串行端口流控方式的设置采用的方法与设置串口其他参数的方法相同,主要分为两种。第一种方法为使用API函数::GetCommState(),该函数返回DCB结构的当前设置,然后直接修改DCB结构的设置值。该函数的使用方法如下:DCBdcb={O};If(!::GetcommState(hComm,&dcb))returnFALSE;//函数调用发生错误else//已经取回DCB结构当前设置第二种方法初始化DCB结构的方法是手动设置。程序首先分配DCB结构,然后将其中的每个成员设置成期望值。无论采用哪种方法,要使对DCB结构的设置值对串行端口的行为产生影响,必须调用API函数::SetCommState()

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top