2.4G射频的CAN总线汽车故障诊断仪设计
PIC18F2682与射频芯片n
2.2.2 接收端电路原理
图4是系统接收端电路原理。由于TMU3100由PC供电,而PC机USB接口所提供的电压VDD干扰较大,故对VDD进行了π滤波。
由于TMU3100没有SPI模块,故可以通过PB[1]、PB[0]按照SPI协议与nRF2401的SPI口来进行通信。对nRF2401配置控制使能CS和接收、发送使能CE分别由KSO[3]和KSO[13]控制。nRF2401接收到数据包后,DRl将被置高电平,因此TMU3100可以通过查询KSl6的状态判断足否接收到数据。
3 软件设计
系统的软件设计包括发射端软件设计、接收端软件设计和PC端软件设计。
3.1 发射端软件设计
发射端流程如图5所示。软件设计主要实现两项功能:第一是实现CAN总线上数据的采集;第二是实现将采集后的数据通过射频进行发射。
上电后,首先对CAN模块进行初始化。然后初始化nRF2101,并与接收端建立连接。当发送完CAN数据后没有收到ACK信号时,就跳频;然后通知发送端准备接收重发的CAN数据,直到接收到ACK信号。
为了防止空中干扰,采用了自动跳频的空中协议,即无论是否接收到ACK信号都进行跳频,因此可以防止某个频段的强干扰,进而降低误码率。
3.2 接收端软件设计
接收端软件流程如图6所示。软件设计主要实现两项功能:第一是实现枚举;第二是实现将接收到的数据通过USB上传到PC。上电后,首先完成对TMU3100 的配置,并与PC机枚举;枚举成功后就对nRF2401进行配置,并与发射端建立连接。当接收到数据包后,首先判断是CAN数据还是重传数据命令。如果是 CAN数据包,则向发射端返回ACK信号并跳频,然后将接收到的数据通过USB传至PC;如果是重传命令,则先跳频,然后置重传标志,表示下个数据包是重传的数据包。
TMU3100被配置为标准HID类,这样就不用为设备开发驱动程序,而是使用Windows提供的标准HID类驱动程序。
3.3 PC端软件设计
PC端软件由应用程序和设备驱动程序组成。Windows为标准USB没备提供了完善的内置驱动,本系统采用Windows自带的HID类驱动,只要将 TMU3100配置为HID类,即可完成与PC机的通信。这省去了开发设备的驱动程序,极大地简化了上位机软件的开发。
评论