【叶帆工作室】2009-2-15
1、简介
WireProtocol协议是上位机MFDeploy或VS2008程序在诊断、部署、调试.Net Micro Framework设备及相关应用程序时的通信协议。该协议与具体的硬件链路无关,目前支持的物理连接有串口、网口、USB等。
该协议为点对点协议,协议中没有设备地址的概念,在同一时间同一物理通道仅能调试一台设备。协议格式分两部分,帧头和负荷(Payload)(一帧命令可以不包含Payload)。
了解该协议和获知通信时的数据,可以非常有效的解决上位机和下位机.Net Micro Framework设备通信问题。
2、通信协议
2.1 帧格式
帧头(Header)32 byte |
负荷 |
|||||||
签名 |
头校验 |
负荷校验 |
命令 |
Seq |
SeqReply |
标志 |
负荷大小 |
|
8 byte |
4 byte |
4byte |
4byte |
2byte |
2byte |
4byte |
4byte |
N byte |
MS…V1 |
Crc32 |
Crc32 |
Cmd |
Seq |
reply |
flag |
size |
Payload |
注:负荷大小可以为0
2.2 通信过程
总超时时间6秒,如果下位机无数据响应,则1秒钟重试一次,共6次。如果下位机有命令反馈,但是帧数据不是期望数据,则重试1次,共2次。
2.3 通信命令
通信命令一共71个,其中1个已经过时、6个已经被注销。这里仅介绍一下和Ping过程相关的几个命令。
序号 |
名称 |
值 |
说明 |
1 |
c_Monitor_Ping |
0x00000000 |
The payload is empty, this command is used to let the other side know we are here... |
2 |
c_Debugging_Execution_Unlock |
0x00020003 |
Unlock the low-level command, for mfg. test programs |
3 |
c_Debugging_Execution_QueryCLRCapabilities |
0x00020008 |
Queries capabilities of the CLR. |
2.3.1、Monitor_ Ping
命令:0x00000000 帧长:32+8 byte (Ping指令可以没有Payload数据)
帧头 |
源 |
标志 |
< |