预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共96页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Delphi串口通信编程第一章基本概念1、通信数据传送传送的方式通信的种类字符传输位和字节文本编码非文本编码帧2、串行通信RS-232串行通信RS-485串行通信(差分方式传输)USB(UniversalSerialBus)接口IEEE-1394USB与IEEE-1394的比较3、硬件基础知识常用的9条RS-232信号线一次应答呼叫过程数据终端DTE的控制软件持续监视振铃指示RI等待该信号有效响铃后RI信号在ON和OFF状态之间交替变化。DTE的通信控制软件在检测到振铃指示后开始通过计算机振铃指示的ON和OFF状态的变化次数来进行计数。当达到程序设计的次数时控制软件发出终端就绪信号(DTR)有效使Modem进行摘机状态开始应答电话Modem在等待一小段时间后自动地发送它的应答载波信号。同时Modem发出数据设备就绪信号(DSR)通知DTE已经完成所有准备工作正在等待对方的载波信号在DTE发出数据终端就绪信号(DTR)期间DTE的控制软件监视数据设备就绪信号(DSR)是否有效当DSR为ON状态后DTE便知道Modem已准备建立数据链路于是DTE开始检测载波信号(DCD)以检查数据链路是否已经建立当主叫Modem的载波信号出现在电话线上时被叫Modem发出载波信号(DCD)以检查数据链路是否已经建立在数据链路连接期间发送数据(TxD)和接收数据(RxD)线上即开始了全又工通信。同时DTE仍监视载波信号(DCD)以确定数据链路是否连接数据传输结束后DTE使数据终端就绪信号(DTR)无效Modem撤消载波检测(DCD)并且使设备数据就绪信号(DSR)信号无效。数据候链路释放后Modem和DTE返回到初始状态。通信参数数据的传送速度数据的传送单位起始位及停止位校验位的检查4、模式及流量工作模式串行数据的流动方式握手硬件握手计算机->设备设备->计算机软件握手5、接线和错误预防接线方法当使用RS-232与Modem进行连接时直接连接即可当使用RS-232和其他的设备进行连接时有时就必须做必要的跳线跳线错误预防错误预防原理:将所传送的数值做相加的操作后与一个固定的除数进行除法运算所得的余数即为校验码。传送与接收的双方只要针对其固定的检查方法分别进行运算比较后只要双方均一致即正确;若不一致数据重传。6、错误排除波特率失配校验错误字长不匹配停止位错帧错第2章串行通信程序及组件建立1、串行通信的WindowsAPI简述串行通信相关函数串行通信相关函数HANDLECreateFile(LPCTSTRlpFileName//文件名指针DWORDdwDesiredAccess//存取(读/写)模式DWORDdwShareMode//共享模式LPSECURITY_ATTRIBUTESlpSecurityAttribute//securityattribute结构指针DWORDdwCreationDistribution//打开文件的方式DWORDdwAttrsAndFlags//文件属性HANDLEhTemplateFile//带属性复制的文件句柄);有关参数说明BOOLCloseHandle(HANDLEhObject);hObject:要关闭对象的句柄当函数返回True时表示关闭动作完成。VarFhandle:THandle;ComName:array[0..4]ofchar;//ComName:string;BeginComName:=‘COM1’;//PCHAR(ComName)FHandle:=CreateFile(ComNameGENERIC_READorGENERIC_WRITE0nilOPEN_EXISTINGFILE_ATTRIBUTE_NORMAL0);ifFHandle<>INVALID_HANDLE_VALUEthenshowmessage(‘串口打开成功!’)Elseshowmessage(‘串口打开失败!’);CloseHandle(FHandle);End;GetCommState_DCB=packedrecordDCBlength:DWORD;//DCB结构的长度BaudRate:DWORD;//当前波特率Flags:Longint;//wReserved:Word;//保留未使用XonLim:Word;//传送XON阈值XoffLim:Word;