您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 单片机与PC机通信协议(RS232)
帧格式如下:功能号[FD]数据长度[LB]数据1[DS]…数据n[DS]校验和[CS]其中LB、DS在命令帧和应答帧中无。差错控制与校验采用纵向冗余校验(LRC)。发送方校验和生成方法:将FD、LB、DS域逐个字节相加求和,在求和过程中舍弃进位,最后将所得的和(单个字节)取补码作为检验和(CS)。生成校验和的函数为:staticunsignedcharLRC(auchMsg,usDataLen)/*函数返回unsignedchar类型的LRC结果*/unsignedchar*auchMsg;/*要计算LRC的报文*/unsignedshortusDataLen;/*报文的字节数*/{unsignedcharuchLRC=0;/*LRC初始化*/while(usDataLen--)/*完成整个报文缓冲区*/uchLRC+=*auchMsg++;/*缓冲区字节相加,无进位*/return((unsignedchar)(-((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]模拟器运行流程图开机PC机应答IfPCReady无应答准备好InitPCPCInitFinishSendMsgToPC开门开门到位关门关门到位修改模拟器参数流程图AlterParaSendParaToMCUFinishAlterPara单片机进入修改参数模式单片机退出修改参数模式模拟器参数定义//参数号定义#defineID_Total_Floors1#defineID_Special_Floor_A3#defineID_Special_Floor_B5#defineID_ID_Observe_Para7#defineID_Dist_Bottom_Limit_Location10#defineID_Dist_Bottom_Restrict_Location11#defineID_Duration_Close_LiftDoor16#defineID_Duration_Open_LiftDoor17#defineID_Factor_FreqDivid_Hall18#defineID_Polarity_Photoswitch19#defineID_Floor_Lift_Lieto29#defineID_Location_Lift30#defineID_Length_UnivFloor2#defineID_Length_Special_Floor_A4#defineID_Length_Special_Floor_B6#defineID_Length_Floor_Level_Board8#defineID_Length_Speed_Alter_Board9#defineID_Dist_Bottom_SpAlter_UpEnd12#defineID_Dist_Top_SpAlter_LowEnd13#defineID_Dist_Top_Restrict_Location14#defineID_Dist_Top_Limit_Location15ubyteTotal_Floors;//最高楼层数ubyteSpecial_Floor_A;//专用楼层号AubyteSpecial_Floor_B;//专用楼层号BubyteID_Observe_Para;//观测参数号ubyteDist_Bottom_Limit_Location;//下极限与底楼平层的距离(向下计算),单位:厘米ubyteDist_Bottom_Restrict_Location;//下限位与底楼平层的距离(向下计算),单位:厘米ubyteDuration_Close_LiftDoor;//电梯关门到位时间,单位:秒ubyteDuration_Open_LiftDoor;//电梯开门到位时间,单位:秒ubyteFactor_FreqDivid_Hall;//输入霍尔脉冲分频系数ubytePolarity_Photoswitch;//平层区光电开关极性:0-进入平层区光电开关输出断开,1-进入平层区光电开关输出闭合ubyteFloor_Lift_Lieto;//电梯当前楼层uwordLocation_Lift;//电梯位置值,单位:厘米uwordLength_UnivFloor;//通用楼层距离,单位:厘米uwordLength_Special_Floor_A;//专用楼层号A的楼层距离(向上计算),单位:厘米uwordLength_Special_Floor_B;//专用楼层号B的楼层距离(向上计算),单位:厘米uwordLength_Floor_Level_Board;//平层挡板的长度,单位:毫米uwordLength_Speed_Alter_Board;//上、下强换挡板的长度,单位:厘米uwordDist_Bottom_SpAlter_UpEnd;//下强换顶端与底楼平层的距离(向上计算),单位:厘米uwordDist_Top_SpAlter_LowEnd;//上强换底端与顶楼平层的距离(向下计算),单位:厘米uwordDist_Top_Restrict_Location;//上限位与顶楼平层的距离(向上计算),单位:厘米uwordDist_Top_Limit_Location;//上极限与顶楼平层的距离(向上计算),单位:厘米
本文标题:单片机与PC机通信协议(RS232)
链接地址:https://www.777doc.com/doc-2606456 .html