introduction
Le "flux" mentionedhere, bien entendu, referstothedataflow.Whendataistransmittedbetweentwoserialports, datalossoftenoccurs, ortheprocessingspeedsofthetwocomputersaredifferent, suchasthecommunicationbetweenadesktopcomputerandasingle-chipcomputer, andthereceivingenddatabufferisfull, socontinuetosendatthistimeTheincomingdatawillbelost.Weusemodemsfordatatransmissiononthenetwork, andthisproblemisparticularlyprominent.Flowcontrolcansolvethisproblem.Whenthereceivingendcannotprocessthedata, itsendsa "nolongerreceiving" signal andthesendingendstopssendinguntilitreceivesthe "cancontinuesending" signalbeforesendingdata.Therefore, flowcontrolcancontroltheprocessofdatatransmissionandpreventdataloss.TwocommonlyusedflowcontrolsinPCsarehardwareflowcontrol ( y compris rts/cts, dtr/dsr, etc.) et le contrôle de flux logicielxon/xoff (continuer/arrêter).
Comment ça fonctionne
Lorsque le tampon de données en fin de réception n'est pas en mesure de traiter les données, il envoie un signal « ne plus recevoir » et les extrémités d'envoi s'arrêtent jusqu'à ce que la fin d'envoi envoie les données après avoir reçu le signal « peut continuer à envoyer ».
Hardwareflowcontrol
Le contrôle de flux matériel doit être connecté au câble correspondant. Les méthodes courantes de contrôle de flux matériel sont :
WhenusingRTS / CTSflowcontrol, theRTSandCTSlinesatbothendsofthecommunicationmustbeconnectedcorrespondingly, andthedataterminalequipment (suchasacomputer) usesRTStostartthedataflowofthemodemorotherdatacommunicationequipment.Datacommunicationequipment (suchasamodem) usesCTStostartandpausethedatastreamfromthecomputer.Theprocessofthishardwarehandshakemethodis: setahigh-orderflag (canbe75% ofthebuffersize) andalow-orderflag (canbe25% ofthebuffersize) forthereceivingendbuffersizethroughtheprogram.Whentheamountofdatareachesthehighlevel, thereceivingendsetstheCTSlinelow (sendslogic0) .WhentheprogramatthetransmittingenddetectsthatCTSislow, itstopssendingdatauntilthedatavolumeinthebufferatthereceivingendislowerthanthelowlevel.SetCTShigh .RT est utilisé pour indiquer si l'appareil récepteur est prêt à recevoir des données.
Le mode de fonctionnement du contrôle de flux DTR/DSR est similaire à celui du contrôle de flux RTS/CTS, je ne le répéterai donc pas.
Contrôle de flux logiciel
Duetocablelimitations, hardwareflowcontrolisgenerallynotusedinordinarycontrolcommunications, butsoftwareflowcontrolisused.SoftwareflowcontrolisoftenimplementedthroughXON / XOFF.Theprocessofthissoftwarehandshakemethodis: whentheamountofdataintheinputbufferofthereceivingendexceedsthesethigh, XOFFcharactersaresenttothedatasendingend (decimal19orControl-S, thedeviceprogrammingmanualwillexplainindetail), ThesendingendimmediatelystopssendingdataafterreceivingtheXOFFcharacter; whenthedatavolumeintheinputbufferofthereceivingendislowerthanthesetlow, itwillsendtheXONcharacter (decimal17orControl-Q) tothedatasendingendtosendAfterreceivingtheXONcharacter, theterminalimmediatelystartstosenddata.Generally, youcanfindoutwhatcharactersaresentfromthesourceprogramofthedevice.
Comparaisondesdeuxméthodesdecontrôle
Lorsque des données binaires sont transmises via un contrôle de flux logiciel, des caractères d'indicateur peuvent également apparaître dans le flux de données et provoquer un mauvais fonctionnement. Il s'agit d'un contrôle de flux logiciel.