我用的TMS570LS1225的芯片验证设计的FlexRay通信功能,硬件上用两个1225作为两个节点进行通讯。
程序上是使用的TI提供的FlexRay的例程,收发器选用的TJA1080,但是程序中NDAT寄存器并未接收到数据。
测试过程中可以进行连续的Communication Cycle,静态段帧头数据均正常,其中一、二帧的sync、start up位均为1,但是数据段均没有数据,同时EIR寄存器中提示通讯周期中接收到的同步帧数量不足2。请问一下这是什么原因造成的。
①两个节点是否够用以测试其通讯?还是要三个以上的节点?
②在发送和接收的过程中有哪些需要注意的地方,是否我没有注意,如寄存器配置等等?
gaoyang9992006:
在一个Flexray网络中,至少要有两个同步节点,然后网络中的各个节点的时间配置都要严格一致。
1106.TMS570LS31x_FlexRay_Sample_Code.zip
给你个例程,这个是可以使用的
Dide Zhang:
回复 gaoyang9992006:
我之前也找到了这个例程,因为用的是TMS570LS1225所以把它移植到1227的工程中使用。
HALCoGen中没有对FlexRay进行相关配置的选项于是我也没有作其他的相关设置。
程序中是不是还有两个动态帧?运行的时候我用示波器看总线数据,可以看见两帧,帧头中相关的flag都正常,也有CRC和frame ID的内容,帧尾的CRC一直在变化,但是中间的数据段只有BSS的高低电平,数据并没有发出来,NDAT寄存器也没有内容,所以不知道问题出在哪。
各节点的时间配置是另外配置的吗?还是在这个例程中的?