新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > PC机与单片机串行通信中实现命令批处理

PC机与单片机串行通信中实现命令批处理

作者:时间:2012-04-10来源:网络收藏

 在机与MCS-51之间进行时,基本是一对一的,即用机向每发1条,就等待的1条返回信息。这样可能把大量时间浪费在机与单片机的过程中了。为此笔者经过实践,设计出可以批执行PC机发给单片机的,就像DOS操作系统中的批一样,可连续批信息,结果当然提高了系统速度。文中提供了部分平台式C51软件源代码,以供大家参考。

本文引用地址:http://www.eepw.com.cn/article/171665.htm

1 协议

(1)通信数据格式
PC机→MCS-51单片机数据格式如表1所列。
MCS-51单片机→PC机数据格式如表2所列。

27.jpg

(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]格式:

20.jpg

一般把单条命令的长度控制在255以内。
PC机向单片机发送数据序列为:
STX,LENH,LENL,COMMANDH,COMMANDL,DATA…DATA,EDC,ETX
3 批处理的思想方法

(1)批处理命令BATCH_COMMAND (0X0000)

PC格式:

21.jpg

NUM——后续命令的个数;
Flag——需要返回的标志(00为要返回数据,其它为无需返回数据)。
COMMAND[i]=LEN,子命令体
功能:批处理执行功能。
返回状态及数据:根据Flag标志决定是否返回数据,按发送命令的顺序返回数据。

(2)控制批处理转移的命令

功能:没有数据和状态返回,控制下位机跳转。

① 控制BATCH_If(0X0001)用于判断,条件执行命令

功能:单片机遇到该命令,执行判断,如果结果为逻辑真,则执行紧跟BATCH_If的第1条命令;否则执行紧跟BATCH_If第2条命令。

PC格式:

22.jpg

num: 返回数据从右到左的第几个数据,为0时为状态数据的低位字节;
EQUAL/NOT——00为相等,1为不等;
VALUE——数值。
返回:无。

通信相关文章:通信原理



上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭