
系统构成:VPC3+C + Microchip dsPIC
VPC3+C初始化流程:
>Test VPC3+C memory,initialize all the memory to 0
>VPC3_Initialization(ADD,IDENT,CFG)
这个函数初始化了DP从站的地址02,ident number 0x1234和默认的配置参数0x00,0xf1。vpc3+c初始化了VPC3+C的输入输出,参数设置,配置和诊断报文的长度。
>打开VPC3+C中断,start_vpc3()
现象:
>上电后,vpc3+C成功初始化了存储空间。
>初始化结束后,VPC3+C开始产生中断
中断顺序和相应寄存器值
1. vpc3+C上电start后产生DX_OUT中断,中断寄存器值为0x10,0x40
2. 连接总线后产生Baud Rate中断,中断寄存器值为0x14,0x00
3. 产生User_Timer_Out中断,值为0x10
4.VPC3+C始终处于Wait_PRM状态,不断产生User_Timer_Out中断,不能检测到New_PRM和New_CFG中断。
组织参数值为
0x16: 0x02
0x17: 0x04
0x18: 0x00
0x19: 0x01
0x1a: 0x04
0x1b: 0x05
0x1c: 0x07
0x1d: 0x09
0x1e: 0x04
0x1f: 0x0b

0x20: 0x0d
0x21: 0x0f
0x22: 0x00
0x23: 0x00
0x24: 0x06
0x25: 0x06
0x26: 0x11
0x27: 0x12
0x28: 0x10
0x29: 0x30
0x2a: 0x01
0x2b: 0x18
0x2c: 0x19
0x2d: 0x00
0x2e: 0x00
0x2f: 0x30
0x30: 0x15
0x31: 0x02
0x32: 0x13
0x33: 0x00
0x34: 0x15
0x35: 0x00
0x36: 0x00
0x37: 0x00
0x38: 0x00

0x39: 0xFF
0x3a: 0x34
0x3b: 0x12
0x3c-0x3f: 0x00
总线交互的报文:
master -> slave
68 05 05 68 82 80 7d 3c 3e f9 16
slave ->master
68 0b 0b 68 80 82 08 3e 3c 42 05 00 ff 12 34 ab 16
master -> slave
dc 00 00
68 26 26 68 82 80 5d 3d 3e b8 fa 0a 0b 12 34 00
20 00 20 01 00 00 00 00 21 01 21 02 21 03 21 04
00 01 00 02 00 02 00 01 00 00 59 16
slave -> master
e5
master -> slave
10 0c 00 49 55 16
68 07 07 68 82 80 7d 3e 3e 00 f1 ec 16
slave -> master
e5
master -> slave
68 05 05 68 82 80 5d 3c 3e d9 16
slave ->master
68 0b 0b 68 80 82 08 3e 3c 42 05 00 ff 12 34 ab 16
然后VPC3+c和总线之间就一直不停地交换这些报文。
希望大家帮帮忙,解决问题,这个问题我捉摸了将近一个星期了。vpc3+c万分感谢!!
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-42559-1.html
现在又来中国海域闹事
用魚雷小艇和炮艇