2.4G射頻的CAN總線(xiàn)汽車(chē)故障診斷儀設計
PIC18F2682與射頻芯片n
2.2.2 接收端電路原理
圖4是系統接收端電路原理。由于TMU3100由PC供電,而PC機USB接口所提供的電壓VDD干擾較大,故對VDD進(jìn)行了π濾波。
由于TMU3100沒(méi)有SPI模塊,故可以通過(guò)PB[1]、PB[0]按照SPI協(xié)議與nRF2401的SPI口來(lái)進(jìn)行通信。對nRF2401配置控制使能CS和接收、發(fā)送使能CE分別由KSO[3]和KSO[13]控制。nRF2401接收到數據包后,DRl將被置高電平,因此TMU3100可以通過(guò)查詢(xún)KSl6的狀態(tài)判斷足否接收到數據。
3 軟件設計
系統的軟件設計包括發(fā)射端軟件設計、接收端軟件設計和PC端軟件設計。
3.1 發(fā)射端軟件設計
發(fā)射端流程如圖5所示。軟件設計主要實(shí)現兩項功能:第一是實(shí)現CAN總線(xiàn)上數據的采集;第二是實(shí)現將采集后的數據通過(guò)射頻進(jìn)行發(fā)射。
上電后,首先對CAN模塊進(jìn)行初始化。然后初始化nRF2101,并與接收端建立連接。當發(fā)送完CAN數據后沒(méi)有收到ACK信號時(shí),就跳頻;然后通知發(fā)送端準備接收重發(fā)的CAN數據,直到接收到ACK信號。
為了防止空中干擾,采用了自動(dòng)跳頻的空中協(xié)議,即無(wú)論是否接收到ACK信號都進(jìn)行跳頻,因此可以防止某個(gè)頻段的強干擾,進(jìn)而降低誤碼率。
3.2 接收端軟件設計
接收端軟件流程如圖6所示。軟件設計主要實(shí)現兩項功能:第一是實(shí)現枚舉;第二是實(shí)現將接收到的數據通過(guò)USB上傳到PC。上電后,首先完成對TMU3100 的配置,并與PC機枚舉;枚舉成功后就對nRF2401進(jìn)行配置,并與發(fā)射端建立連接。當接收到數據包后,首先判斷是CAN數據還是重傳數據命令。如果是 CAN數據包,則向發(fā)射端返回ACK信號并跳頻,然后將接收到的數據通過(guò)USB傳至PC;如果是重傳命令,則先跳頻,然后置重傳標志,表示下個(gè)數據包是重傳的數據包。
TMU3100被配置為標準HID類(lèi),這樣就不用為設備開(kāi)發(fā)驅動(dòng)程序,而是使用Windows提供的標準HID類(lèi)驅動(dòng)程序。
3.3 PC端軟件設計
PC端軟件由應用程序和設備驅動(dòng)程序組成。Windows為標準USB沒(méi)備提供了完善的內置驅動(dòng),本系統采用Windows自帶的HID類(lèi)驅動(dòng),只要將 TMU3100配置為HID類(lèi),即可完成與PC機的通信。這省去了開(kāi)發(fā)設備的驅動(dòng)程序,極大地簡(jiǎn)化了上位機軟件的開(kāi)發(fā)。
評論