PC机与单片机串行通信中实现命令批处理
发布时间:2008/5/27 0:00:00 访问次数:950
摘要:介绍pc机与mcs-51单片机通信批处理命令的实现思想、方法、通信协议和c51程序平台。为pc机与单片机间串行通信程序设计提供一种方法上的新思路。 关键词:批处理 mcs-51单片机 通信协议 在pc机与mcs-51单片机之间进行串行通信时,基本是一对一的,即用pc机向单片机每发1条命令,就等待单片机的1条返回信息。这样可能把大量时间浪费在pc机与单片机的通信过程中了。为此笔者经过实践,设计出可以批处理执行pc机发给单片机的命令,就像dos操作系统中的批处理命令一样,可连续批处理信息,结果当然提高了系统速度。文中提供了部分平台式c51软件源代码,以供大家参考。 1 通信协议 (1)通信数据格式 pc机→mcs-51单片机数据格式如表1所列。
表1 stx len comma data[0]…data[n-1] edc etx 开始 长度 命令 数据体 校验码 结束码 0x60 n+2(2byte) (2byte) stx^len^commandh^
commandl^data[0]…data[n-1] 0x03 mcs-51单片机→pc机数据格式如表2所列。
表2 stx len status data[0]…data[n-1] edc etx 开始 长度 命令 数据体 校验码 结束码 0x60 n+2(2byte) 2(byte) stx^len^commandh^
commandl^data[0]..data[n-1] 0x03 (2)初始通信参数
pc机与单片机间(9600,n,8,1)即波特率为9600 baud,1起始位,8数据位,1停止位,无奇偶校验。 (3)数据收发方式
所有数据按二进制单字节发送。 (4)发送数据顺序
发送同步码(1byte):stx=0x60
发送后续字节的长度(2byte):len=2+n
发送len个后续数据字节(n+2 byte):commandh,commandl,data[0]…data[n-1]
发送校验码(1byte): edc=stx^commandh^ commandl^data[0]^…data[n-1]
发送结束码(1byte): etx=0x03
2 单条命令command[n] command[n]格式: command data[0]~-data[n-1] xxxxh 数据体
摘要:介绍pc机与mcs-51单片机通信批处理命令的实现思想、方法、通信协议和c51程序平台。为pc机与单片机间串行通信程序设计提供一种方法上的新思路。 关键词:批处理 mcs-51单片机 通信协议 在pc机与mcs-51单片机之间进行串行通信时,基本是一对一的,即用pc机向单片机每发1条命令,就等待单片机的1条返回信息。这样可能把大量时间浪费在pc机与单片机的通信过程中了。为此笔者经过实践,设计出可以批处理执行pc机发给单片机的命令,就像dos操作系统中的批处理命令一样,可连续批处理信息,结果当然提高了系统速度。文中提供了部分平台式c51软件源代码,以供大家参考。 1 通信协议 (1)通信数据格式 pc机→mcs-51单片机数据格式如表1所列。
表1 stx len comma data[0]…data[n-1] edc etx 开始 长度 命令 数据体 校验码 结束码 0x60 n+2(2byte) (2byte) stx^len^commandh^
commandl^data[0]…data[n-1] 0x03 mcs-51单片机→pc机数据格式如表2所列。
表2 stx len status data[0]…data[n-1] edc etx 开始 长度 命令 数据体 校验码 结束码 0x60 n+2(2byte) 2(byte) stx^len^commandh^
commandl^data[0]..data[n-1] 0x03 (2)初始通信参数
pc机与单片机间(9600,n,8,1)即波特率为9600 baud,1起始位,8数据位,1停止位,无奇偶校验。 (3)数据收发方式
所有数据按二进制单字节发送。 (4)发送数据顺序
发送同步码(1byte):stx=0x60
发送后续字节的长度(2byte):len=2+n
发送len个后续数据字节(n+2 byte):commandh,commandl,data[0]…data[n-1]
发送校验码(1byte): edc=stx^commandh^ commandl^data[0]^…data[n-1]
发送结束码(1byte): etx=0x03
2 单条命令command[n] command[n]格式: command data[0]~-data[n-1] xxxxh 数据体