AVR單片機的CAN總線分析儀設計
引言
國內基于CAN總線的工程應用也越來越多,但是在CAN現(xiàn)場總線產品開發(fā)前期和后期測試中缺乏有效的現(xiàn)場監(jiān)測和排錯手段,從而延長了開發(fā)周期,增加了開發(fā)成本。同時,國內CAN總線教學實驗也同樣缺乏成本低,功能強,操作簡單的CAN分析儀器。
目前CAN總線的監(jiān)測主要是通過CAN適配卡與計算機相連,利用計算機軟件來分析總線狀況。高端CAN適配卡價格高昂,而低端CAN適配卡如CAN轉232卡,由于232總線傳輸速度有限,很難做到準確監(jiān)測。另外,計算機也不便于在現(xiàn)場進行監(jiān)測。本文設計了一種造價低廉、操作簡單的便攜CAN總線分析儀,能夠適應各種總線傳輸速度。
1 CAN分析儀的組成和功能
主要由4個部分組成:MCU、液晶顯示接口、鍵盤輸入接口和CAN接口。能夠實現(xiàn)以下功能: 總線波特率自適應、正常接收CAN總線數(shù)據(jù)、總線報文數(shù)和總線錯誤數(shù)及錯誤類型記錄、總線負載率檢測、總線報文顯示、CAN協(xié)議類型辨識。硬件整體框架如圖1所示。
圖1 系統(tǒng)硬件框圖
2 CAN分析儀的硬件設計
2.1 MCU與CAN接口
本系統(tǒng)中使用Atmel公司生產的AVR單片機ATmega64L作為微控制器。ATmega64L是高性能、低功耗的8位AVR單片機。它具有哈佛總線結構、精簡指令集(RISC)結構和豐富的片內資源。ATmega64L具有64 KB Flash程序存儲器、2 KB的E2PROM、4 KB的SRAM、4個帶有比較模式的定時器/計數(shù)器以及可編程帶內部振蕩器的看門狗定時器等,支持匯編和C語言在線編程。利用其優(yōu)良特性可以使設計大大簡化。
CAN接口硬件原理圖如圖2所示,包括MCU、總線控制器模塊、總線驅動模塊、光電隔離模塊。 總線控制器模塊采用Philips公司的CAN控制器SJA1000。它可工作于BasicCAN 模式或PeliCAN 模式,具有64 字節(jié)的接收緩沖器,支持11位和29位ID,可熱插拔,支持CAN2.0B 協(xié)議,僅依靠控制器本身的硬件電路就能夠實現(xiàn)通信幀的組織和發(fā)送功能。
CAN總線驅動模塊采用82C251。為了增強CAN總線節(jié)點的抗干擾能力,實現(xiàn)各CAN節(jié)點間的電氣隔離,SJA1000的TX0和RX0通過高速光耦6N137分別與82C251T的TXD和RXD相連。值得注意的是,光耦所采用的兩個電源VCC和VDD必須完全電氣隔離。
2.2 液晶顯示接口
分析儀監(jiān)測到的總線狀態(tài)需要外部器件來顯示以方便觀察。傳統(tǒng)的數(shù)碼管指示燈無法滿足大量總線狀態(tài)實時顯示的需求。為了便于操作者的使用,本系統(tǒng)選用深圳安得利光電科技有限公司生產的AM1286425F57,它是128×64的圖形點陣液晶模塊,內置控制器是三星公司的LCD驅動及控制芯片S6B1713。
圖2 CAN接口硬件電路原理
圖3是AM1286425F57硬件原理圖。MCU電源和背光輸入電源都為3.3 V。8位數(shù)據(jù)總線接在單片機的D口上,將D口配置為輸出。AM1286425F57的RS是指令與數(shù)據(jù)選擇信號。當RS=0時,表示數(shù)據(jù)總線D0~D7上是液晶控制指令;當RS=1時,表示數(shù)據(jù)總線D0~D7上是寫入液晶的數(shù)據(jù)。CS1和CS2都是控制器芯片S6B1713的片選信號,當CS1=0,CS2=1,即2個片選同時有效時才能選中液晶,向它寫入數(shù)據(jù)或指令。
評論