新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于單片機控制的CAN與RS-232轉(zhuǎn)換器的研究與設(shè)計

基于單片機控制的CAN與RS-232轉(zhuǎn)換器的研究與設(shè)計

作者: 時間:2013-03-15 來源:網(wǎng)絡(luò) 收藏

  2.2 SJA1000與接口電路設(shè)計

  控制器SJA1000芯片采用片外24MHz晶振,其CLKOUT引腳輸出工作頻率接入微處理器的XTAL1引腳。片選/CS端與單片機的P2.7引腳直接相連,因此SJA1000的尋址空間從地址0開始。AD0~AD7直接與的低8位數(shù)據(jù)/地址復(fù)用口P0口相連,MODE接高電平設(shè)置為Intel模式,中斷輸出信號/INT與微處理器的/INT0連接,使通信可以采用中斷和查詢兩種方式。TLP113的外接390Ω電阻為限流保護電阻,為避免當驅(qū)動器失效時出現(xiàn)過流導(dǎo)致控制器損壞。SJA1000與接口電路如圖2所示。


  2.3 總線物理層接口電路設(shè)計

  PCA82C250與CAN總線的接口部分采用一定的安全和抗干擾措施。CANH和CANL與地之間并聯(lián)了兩個30P的小電容,可以起到濾除總線的高頻干擾和一定的防電磁輻射的能力。另外在兩根CAN總線接入端與地之間分別反接一個保護二極管,當CAN總線有較高的負電壓時,通過二極管的短路可起到一定的過壓保護作用。PCA82C250的Rs腳上接有一個斜率電阻,電阻大小可根據(jù)總線通訊速度適當調(diào)整,一般在16K~140K之間。用光電隔離芯片TLP113將CAN控制器SJA1000和收發(fā)器PCA82C250隔離,以便有效地增加通訊距離和抗干擾能力。CAN總線物理層接口電路如圖3所示。


  3.基于的CAN總線與軟件設(shè)計

  主程序分為初始化和循環(huán)檢測兩個主要部分。初始化部分完成對看門狗電路及RS-232 串口和CAN總線的初始化并開啟INT0中斷和串口中斷。循環(huán)檢測部分通過調(diào)用CAN總線接收函數(shù)(CAN_Receive())和RS-232接收函數(shù)(RS232_Receive())檢測緩沖區(qū)內(nèi)是否收到到數(shù)據(jù),如果有數(shù)據(jù)接收則調(diào)用RS-232發(fā)送函數(shù)(RS232_Send())和CAN總線發(fā)送函數(shù)(CAN_Send())轉(zhuǎn)發(fā)數(shù)據(jù)。數(shù)據(jù)的發(fā)送和接收都是通過中斷來進行的。每次循環(huán)檢測結(jié)束通過調(diào)用rst_wdog函數(shù)使看門狗復(fù)位。此外,由于CAN總線的速率與RS-232接口的速率并不相同,因此還需設(shè)置片外的存儲器(RAM),用于轉(zhuǎn)換雙方的數(shù)據(jù)緩沖區(qū)。主程序流程圖如圖4所示。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉