如何用simulink对AMEsim搭建的一维整车模型进行参数辨识?
如果答案对您有所帮助,望采纳。
标准modbus协议中,与这里存在矛盾,以常用的03H指令为例
主机发送: 01 03 00 00 00 01 84 0A
从机回复: 01 03 02 12 34 B5 33
/发送数据解析/
01-地址
03-功能码,代表查询功能,其他功能后面再说
00 00-代表查询的起始寄存器地址.说明从0x0000开始查询.
(这里需要说明以下,Modbus把数据存放在寄存器中,通过查询寄存器来得到不同变量的值,一个寄存器地址对应2字节数据;)
00 01-代表查询了一个寄存器.结合前面的00 00,意思就是查询从0开始的1个寄存器值;
84 0A-循环冗余校验,是modbus的校验公式,从首个字节开始到84前面为止;
(这个校验就是保证数据传输过程没有错误的一种手段,不同的协议这种校验公式不一样)
/回复解析/
01-地址
03-功能码
02-代表后面数据的字节数,因为上面说到,一个寄存器有2个字节,所以后面的字节数肯定是2*查询的寄存器个数;
12 34-寄存器的值是12 34,结合发送的数据看出,01这个寄存器的值为12 34
B5 33-循环冗余校验
对应的基本流程:
发送:地址正确+我要查的寄存器个数+校验
回复:从机的地址+数据的字节数+数据+校验
因此,帧数据是不定的
而实际上,帧数据识别的实现方式,是借助定时器+串口检测,即串口中断接收数据,接收一个指令/一个小包(考虑CAN等通信一次传输的单位是多个字节)计时,计时超过一定时间后即认为帧数据传输结束。