微波EDA网,见证研发工程师的成长! 2025婵犵數濮烽弫鍛婃叏閹绢喗鍎夊鑸靛姇缁狙囧箹鐎涙ɑ灏ù婊呭亾娣囧﹪濡堕崟顓炲闂佸憡鐟ョ换姗€寮婚敐澶婄闁挎繂妫Λ鍕磼閻愵剙鍔ゆ繛纭风節瀵鎮㈤崨濠勭Ф闂佸憡鎸嗛崨顔筋啅缂傚倸鍊烽懗鑸靛垔椤撱垹鍨傞柛顐f礀閽冪喖鏌曟繛鐐珕闁稿妫濋弻娑氫沪閸撗€妲堝銈呴獜閹凤拷04闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亝鎹i柣顓炴閵嗘帒顫濋敐鍛婵°倗濮烽崑鐐烘偋閻樻眹鈧線寮撮姀鈩冩珕闂佽姤锚椤︻喚绱旈弴銏♀拻濞达綀娅g敮娑㈡煕閺冣偓濞茬喖鐛弽顓ф晝闁靛牆娲g粭澶婎渻閵堝棛澧遍柛瀣仱閹繝濡烽埡鍌滃幗闂佸搫娲ㄩ崑娑㈠焵椤掆偓濠€閬嶅焵椤掍胶鍟查柟鍑ゆ嫹16闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亝鎹i柣顓炴閵嗘帒顫濋敐鍛婵°倗濮烽崑鐐烘偋閻樻眹鈧線寮撮姀鈩冩珖闂侀€炲苯澧扮紒顕嗙到铻栧ù锝堟椤旀洟姊洪悷鎵憼闁荤喆鍎甸幃姗€鍩¢崘顏嗭紲闂佺粯鐟㈤崑鎾绘煕閵娿儳鍩g€殿喖顭锋俊鎼佸煛閸屾矮绨介梻浣呵归張顒傜矙閹达富鏁傞柨鐕傛嫹 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亝鎹i柣顓炴閵嗘帒顫濋敐鍛婵°倗濮烽崑鐐烘偋閻樻眹鈧線寮撮姀鐘栄囨煕鐏炲墽鐓瑙勬礀閳规垿顢欑紒鎾剁窗闂佸憡顭嗛崘锝嗙€洪悗骞垮劚濞茬娀宕戦幘鑸靛枂闁告洦鍓涢敍娑㈡⒑閸涘⿴娈曞┑鐐诧躬閹即顢氶埀顒€鐣烽崼鏇ㄦ晢濠㈣泛顑嗗▍灞解攽閻樺灚鏆╁┑顔芥尦楠炲﹥寰勯幇顒傦紱闂佽宕橀褔鏌ㄩ妶鍡曠箚闁靛牆瀚崗宀勬煕濞嗗繑顥㈡慨濠呮缁辨帒螣閼姐値妲梻浣呵归敃銈咃耿闁秴鐒垫い鎺嶈兌閸熸煡鏌熼崙銈嗗濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌熼梻瀵割槮缁炬儳顭烽弻锝夊箛椤掍焦鍎撻梺鎼炲妼閸婂潡寮诲☉銏╂晝闁挎繂妫涢ˇ銉х磽娴e搫鞋妞ゎ偄顦垫俊鐢稿礋椤栨氨鐤€闂佸憡鎸烽懗鍫曞汲閻樼數纾藉ù锝呮惈椤庡矂鏌涢妸銉у煟鐎殿喖顭锋俊鎼佸煛閸屾矮绨介梻浣呵归張顒傜矙閹达富鏁傞柨鐕傛嫹
首页 > 硬件设计 > 嵌入式设计 > 2.4GHz射频的CAN总线汽车故障诊断仪

2.4GHz射频的CAN总线汽车故障诊断仪

时间:01-03 来源:互联网 点击:

行控制。当nRF240l接收到数据包时,DRl将被置高电平,因此PICl8F2682通过查询INT0的状态可以判断是否接收到数据。

  2.2.2 接收端电路原理

  由于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机的通信。这省去了开发设备的驱动程序,极大地简化了上位机软件的开发。

  上位机的应用程序首要实现的功能是,要实现对TMU3100端点的读写,用VC++语言编写,可以把USB设备当成文件来操作。用CreateFiile()函数获得USB句柄,为读访问或写访问打开指定端点。用DeviceControl()来进行控制操作,用ReadFile()从指定端点读取数据,用 WriteFile()向端点写入数据。

  当CAN总线上的数据被采集到PC后,就可以进行故障诊断了。故障诊断代码是依照 KWP2000应用层规定的故障代码设计的,是目前国际上通用的,现将其应用于CAN的应用层,将来可以用全新的CAN上层协议取代。故障诊断代码定义在 SSF14230中。SAE J1979中,由车辆制造商或系统供应者定义的服务标志符数值的不同范围,如表1所列。

  此表中以十六进制数表示的服务标志符,同数据链路层中数据字节内的SID服务识别字节对应。不同的SID值代表不同的服务请求,故障诊断程序必须符合此应用层标准,才能识别不同的十六进制代码所代表的不同的故障信息。

4 结论

  本文设计的2.4G无线车载CAN总线故障诊断仪,由于采用了自动跳频的空中协议,所以误码率几乎接近零,在14 m内仍能进行可靠的工作。系统使用国际上通用的诊断代码,使程序具有通用性和实用性;以PC作为硬件平台,无需专门开发硬件平台,可大大降低开发成本并且易于实现设备的升级和维护;使用USB接口和2.4G无线通信,具有即插即用、不受空间限制、数据传输实时性强的特点。

灏勯涓撲笟鍩硅鏁欑▼鎺ㄨ崘

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top