首页 单片机与PC机通信协议(RS232)

单片机与PC机通信协议(RS232)

举报
开通vip

单片机与PC机通信协议(RS232)帧格式如下: 功能号 [FD] 数据长度 [LB] 数据1 [DS] … 数据n [DS] 校验和 [CS]           其中LB、DS在命令帧和应答帧中无。 差错控制与校验采用纵向冗余校验(LRC)。 发送方校验和生成方法: 将FD、LB、DS域逐个字节相加求和,在求和过程中舍弃进位,最后将所得的和(单个字节)取补码作为检验和(CS)。 生成校验和的函数为: static unsigned char LRC(auchMsg,usDataLen)  /*  函数返回 u...

单片机与PC机通信协议(RS232)
帧格式如下: 功能号 [FD] 数据长度 [LB] 数据1 [DS] … 数据n [DS] 校验和 [CS]           其中LB、DS在命令帧和应答帧中无。 差错控制与校验采用纵向冗余校验(LRC)。 发送方校验和生成方法: 将FD、LB、DS域逐个字节相加求和,在求和过程中舍弃进位,最后将所得的和(单个字节)取补码作为检验和(CS)。 生成校验和的函数为: static unsigned char LRC(auchMsg,usDataLen)  /*  函数返回 unsigned char 类型的 LRC 结果*/ unsigned char *auchMsg ;                  /* 要计算  LRC  的报文*/ unsigned short usDataLen ;              /* 报文的字节数  */ { unsigned char uchLRC = 0 ;             /* LRC 初始化  */ while (usDataLen--)                  /* 完成整个报文缓冲区  */ uchLRC += *auchMsg++ ;              /* 缓冲区字节相加,无进位  */ return ((unsigned char)(-((char)uchLRC))) ;  /* 返回二进制补码  */ } 接收方校验方法: 将所有接收到的数据,即FD、LB、DS、CS等域逐个字节相加求和,在求和过程中舍弃进位,若结果为零(低字节)则传输无错,否则出错。 应答: 接收方对接收数据进行校验后,若无错则向发送方发送传输无错应答帧,若有错则向发送方发送传输出错应答帧。 所需通信数据分为:数据帧、命令帧、应答帧 上行数据:下位机(单片机)向上位机(PC机)传送数据 ⑴ 初始化上位机(IPC):FD=0x01 (InitPC) 单片机将电梯模拟器的参数发送至PC机,初始化PC机端的可视化程序。PC机上的可视化程序完成初始化后,应向单片机发送初始化完毕命令。 帧格式: 功能号 IPC 数据长度 [LB] 数据 [DS] 校验和 [CS]         其中数据域格式如下: 参数号1 参数1 …… 参数号n 参数n           ⑵ 发送模拟器状态信息:FD=0x02 (SendMsgToPC) 包括:轿厢位置,轿厢状态——上行/下行/停止,轿厢运行速度 帧格式: 功能号 [FD] 数据长度 [LB] 轿厢位置 低字节 轿厢位置 高字节 轿厢状态 轿厢行速 校验和 [CS]               其中轿厢状态: 上行——0x05 下行——0x0A 停止——0x00 ⑶开门命令:FD=0x03 帧格式: 功能号 [FD] 校验和 [CS]     ⑷开门到位命令:FD=0x04 帧格式: 功能号 [FD] 校验和 [CS]     ⑸关门命令:FD=0x05 帧格式: 功能号 [FD] 校验和 [CS]     ⑹关门到位命令:FD=0x06 帧格式: 功能号 [FD] 校验和 [CS]     ⑺询问上位机是否准备好:FD=0x07 (IfPCReady) 帧格式: 功能号 [FD] 校验和 [CS]     下行数据:上位机(PC机)向下位机(单片机)传送数据 ⑴上位机准备好:FD=0x11 帧格式: 功能号 [FD] 校验和 [CS]     ⑵初始化完毕:FD=0x12 (PCInitFinish) 帧格式: 功能号 [FD] 校验和 [CS]     ⑶修改模拟器参数:FD=0x13 (AlterPara) 帧格式: 功能号 [FD] 校验和 [CS]     ⑷完成修改模拟器参数:FD=0x14 (FinishAlterPara) 帧格式: 功能号 [FD] 校验和 [CS]     ⑸下送模拟器参数:FD=0x15 (SendParaToMCU) 帧格式: 功能号 [FD] 数据长度 [LB] 数据 [DS] 校验和 [CS]         其中数据域格式如下: 参数号1 参数1 …… 参数号n 参数n           应答帧: ⑴接收到的数据无错:FD=0xF1 帧格式: 功能号 [FD] 校验和 [CS]     ⑵接收到的数据出错:FD=0xF2 帧格式: 功能号 [FD] 校验和 [CS]     模拟器运行流程图 修改模拟器参数流程图 模拟器参数定义 //参数号定义 #define ID_Total_Floors 1                    #define ID_Special_Floor_A 3                    #define ID_Special_Floor_B 5                    #define ID_ID_Observe_Para 7                    #define ID_Dist_Bottom_Limit_Location 10            #define ID_Dist_Bottom_Restrict_Location 11        #define ID_Duration_Close_LiftDoor 16            #define ID_Duration_Open_LiftDoor 17                #define ID_Factor_FreqDivid_Hall 18                #define ID_Polarity_Photoswitch 19                #define ID_Floor_Lift_Lieto 29                    #define ID_Location_Lift 30                        #define ID_Length_UnivFloor 2                    #define ID_Length_Special_Floor_A 4                #define ID_Length_Special_Floor_B 6                #define ID_Length_Floor_Level_Board 8            #define ID_Length_Speed_Alter_Board 9            #define ID_Dist_Bottom_SpAlter_UpEnd 12        #define ID_Dist_Top_SpAlter_LowEnd 13            #define ID_Dist_Top_Restrict_Location 14            #define ID_Dist_Top_Limit_Location 15            ubyte Total_Floors;                    //最高楼层数 ubyte Special_Floor_A;                //专用楼层号A ubyte Special_Floor_B;                //专用楼层号B ubyte ID_Observe_Para;                //观测参数号 ubyte Dist_Bottom_Limit_Location;        //下极限与底楼平层的距离(向下计算),单位:厘米 ubyte Dist_Bottom_Restrict_Location;        //下限位与底楼平层的距离(向下计算),单位:厘米 ubyte Duration_Close_LiftDoor;            //电梯关门到位时间,单位:秒 ubyte Duration_Open_LiftDoor;            //电梯开门到位时间,单位:秒 ubyte Factor_FreqDivid_Hall;            //输入霍尔脉冲分频系数 ubyte Polarity_Photoswitch;                //平层区光电开关极性:0 - 进入平层区光电开关输出断开,1 - 进入平层区光电开关输出闭合 ubyte Floor_Lift_Lieto;                //电梯当前楼层 uword Location_Lift;                    //电梯位置值,单位:厘米 uword Length_UnivFloor;                //通用楼层距离,单位:厘米 uword Length_Special_Floor_A;            //专用楼层号A的楼层距离(向上计算),单位:厘米 uword Length_Special_Floor_B;            //专用楼层号B的楼层距离(向上计算),单位:厘米 uword Length_Floor_Level_Board;        //平层挡板的长度,单位:毫米 uword Length_Speed_Alter_Board;        //上、下强换挡板的长度,单位:厘米 uword Dist_Bottom_SpAlter_UpEnd;        //下强换顶端与底楼平层的距离(向上计算),单位:厘米 uword Dist_Top_SpAlter_LowEnd;        //上强换底端与顶楼平层的距离(向下计算),单位:厘米 uword Dist_Top_Restrict_Location;        //上限位与顶楼平层的距离(向上计算),单位:厘米 uword Dist_Top_Limit_Location;            //上极限与顶楼平层的距离(向上计算),单位:厘米
本文档为【单片机与PC机通信协议(RS232)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_037433
暂无简介~
格式:doc
大小:51KB
软件:Word
页数:0
分类:互联网
上传时间:2019-06-03
浏览量:14