新聞中心

EEPW首頁 > 汽車電子 > 設計應用 > 2.4G射頻的CAN總線汽車故障診斷儀設計

2.4G射頻的CAN總線汽車故障診斷儀設計

作者: 時間:2010-06-11 來源:網絡 收藏

PIC18F2682與射頻芯片nRF2401之間通過標準SPI接口SCK、SDI、SDO來完成 ,這樣可以大大提高發(fā)送速率。對nRF2401配置控制使能CS和接收、發(fā)送使能CE分別由RB4和RB5進行控制。當nRF240l接收到數據包時,DRl將被置高電平,因此PICl8F2682通過查詢 INT0的狀態(tài)可以判斷是否接收到數據。

  2.2.2 接收端電路原理

  圖4是系統(tǒng)接收端電路原理。由于TMU3100由PC供電,而PC機USB接口所提供的電壓VDD干擾較大,故對VDD進行了π濾波。

接收端電路原理

  由于TMU3100沒有SPI模塊,故可以通過PB[1]、PB[0]按照SPI協(xié)議與nRF2401的SPI口來進行通信。對nRF2401配置控制使能CS和接收、發(fā)送使能CE分別由KSO[3]和KSO[13]控制。nRF2401接收到數據包后,DRl將被置高電平,因此TMU3100可以通過查詢KSl6的狀態(tài)判斷足否接收到數據。

3 軟件設計

  系統(tǒng)的軟件設計包括發(fā)射端軟件設計、接收端軟件設計和PC端軟件設計。

  3.1 發(fā)射端軟件設計

  發(fā)射端流程如圖5所示。軟件設計主要實現兩項功能:第一是實現CAN總線上數據的采集;第二是實現將采集后的數據通過射頻進行發(fā)射。

發(fā)射端軟件設計

  上電后,首先對進行初始化。然后初始化nRF2101,并與接收端建立連接。當發(fā)送完CAN數據后沒有收到ACK信號時,就跳頻;然后通知發(fā)送端準備接收重發(fā)的CAN數據,直到接收到ACK信號。

  為了防止空中干擾,采用了自動跳頻的空中協(xié)議,即無論是否接收到ACK信號都進行跳頻,因此可以防止某個頻段的強干擾,進而降低誤碼率。

  3.2 接收端軟件設計

  接收端軟件流程如圖6所示。軟件設計主要實現兩項功能:第一是實現枚舉;第二是實現將接收到的數據通過USB上傳到PC。上電后,首先完成對TMU3100 的配置,并與PC機枚舉;枚舉成功后就對nRF2401進行配置,并與發(fā)射端建立連接。當接收到數據包后,首先判斷是CAN數據還是重傳數據命令。如果是 CAN數據包,則向發(fā)射端返回ACK信號并跳頻,然后將接收到的數據通過USB傳至PC;如果是重傳命令,則先跳頻,然后置重傳標志,表示下個數據包是重傳的數據包。

  TMU3100被配置為標準HID類,這樣就不用為設備開發(fā)驅動程序,而是使用Windows提供的標準HID類驅動程序。

  3.3 PC端軟件設計

  PC端軟件由應用程序和設備驅動程序組成。Windows為標準USB沒備提供了完善的內置驅動,本系統(tǒng)采用Windows自帶的HID類驅動,只要將 TMU3100配置為HID類,即可完成與PC機的通信。這省去了開發(fā)設備的驅動程序,極大地簡化了上位機軟件的開發(fā)。

 



評論


相關推薦

技術專區(qū)

關閉