當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]1.概述CAN(Controller Area Network)總線是德國BOSCH公司為解決現(xiàn)代汽車中眾多控制與測試之間的數(shù)據(jù)交換開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,是一種多主方式的串行通信總線。CAN總線是一種開放式、數(shù)字化、多點通信的控制

1.概述

CAN(Controller Area Network)總線是德國BOSCH公司為解決現(xiàn)代汽車中眾多控制與測試之間的數(shù)據(jù)交換開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,是一種多主方式的串行通信總線。CAN總線是一種開放式、數(shù)字化、多點通信的控制系統(tǒng)局域網(wǎng),具有通信速率高、傳輸時間短、傳輸距離遠(yuǎn)、糾錯能力強、控制簡單、擴展能力強以及性價比高等特點,是目前國際上應(yīng)用最廣泛的現(xiàn)場總線之一。

基于CAN總線的CAN控制器具有完成CAN總線通信協(xié)議所要求的全部必要功能,因此CAN控制器與其它微處理器的接口成為設(shè)計CAN總線系統(tǒng)的首要工作。實際中很多設(shè)備帶有RS-232接口,為了方便具有RS-232接口的設(shè)備與CAN總線的數(shù)據(jù)通信,本文完成了基于單片機控制的CAN總線與RS-232轉(zhuǎn)換器電路設(shè)計和軟件設(shè)計,實現(xiàn)了CAN總線數(shù)據(jù)與RS-232接口設(shè)備的數(shù)據(jù)傳輸。

2.基于單片機控制的CAN總線與RS-232轉(zhuǎn)換器電路設(shè)計

CAN總線與RS-232轉(zhuǎn)換器電路包括:主控制模塊、RS-232接口轉(zhuǎn)換電路和CAN控制模塊3個主要部分。

主控制模塊的功能是處理CAN總線以及RS-232接口的數(shù)據(jù)通信和控制,本設(shè)計應(yīng)用AT89C51完成對轉(zhuǎn)換器各個接口的控制,實現(xiàn)CAN總線和RS-232接口兩種協(xié)議數(shù)據(jù)幀的轉(zhuǎn)換,使用帶有SPI總線接口的X25045實現(xiàn)硬件看門狗功能。主控模塊電路如圖1所示。

RS-232接口電路由MAX232芯片構(gòu)成,實現(xiàn)將單片機串口的TTL電平與RS-232電平的相互轉(zhuǎn)換,完成RS-232接口信息的輸入輸出傳輸。

CAN控制器模塊,主要完成CAN協(xié)議的物理層和數(shù)據(jù)鏈路層協(xié)議的實現(xiàn)。其中物理接口采用PCA82C250芯片實現(xiàn)物理層的電平轉(zhuǎn)換和傳輸。CAN控制器使用SJA1000芯片,完成數(shù)據(jù)鏈路層功能,實現(xiàn)CAN總線信息的輸入輸出傳輸。

AT89C51是CAN總線與RS-232轉(zhuǎn)換器的控制器,提供以下標(biāo)準(zhǔn)功能:4k字節(jié)Flash閃速存儲器,1000次可擦寫周期,三級加密程序存儲器,128字節(jié)內(nèi)部RAM,32個I/O口線,兩個16位定時/計數(shù)器,一個5向量中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM、定時/計數(shù)器、竄行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止所有部件工作直到下一個硬件復(fù)位。

AT89C51使用的晶振信號由SJA1000提供(SJA1000用24MHz的片外晶振),SJA1000的CLKOUT引腳接入MCU的XTAL1引腳。

由于CAN總線速率與RS-232接口速率并不相同,因此本設(shè)計中增加了片外RAM芯片6116,用作轉(zhuǎn)換雙方的數(shù)據(jù)緩沖區(qū)。設(shè)計中使用P2.7接反向器連接6116的片選端,所以接口轉(zhuǎn)換電路中的片外RAM的起始地址實際上應(yīng)為0X8000。

                              圖1 主控制模塊電路原理圖

2.1 AT89C51與RS-232轉(zhuǎn)換接口電路設(shè)計

應(yīng)用MAX232芯片構(gòu)成RS-232的接口轉(zhuǎn)換電路,實現(xiàn)AT89C51串口的TTL電平與RS-232電平的相互轉(zhuǎn)換。其中R1out和T1in引腳接單片機的RXD引腳和TXD引腳,R1in和T1out作為RS-232接口輸出連接標(biāo)準(zhǔn)DB9接口的引腳2和引腳3。DB9接口引腳5接地。為了使MAX232芯片正常工作,還需要外接4個1μF的電容用于芯片升壓,以完成電平轉(zhuǎn)換。

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

                                      圖2 SJA1000與AT89C51接口電路原理圖

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

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

 

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

3.基于單片機控制的CAN總線與RS-232轉(zhuǎn)換器軟件設(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ā)送和接收都是通過中斷來進(jìn)行的。每次循環(huán)檢測結(jié)束通過調(diào)用rst_wdog函數(shù)使看門狗復(fù)位。此外,由于CAN總線的速率與RS-232接口的速率并不相同,因此還需設(shè)置片外的存儲器(RAM),用于轉(zhuǎn)換雙方的數(shù)據(jù)緩沖區(qū)。主程序流程圖如圖4所示。

3.1 基于RS-232協(xié)議的數(shù)據(jù)接收與發(fā)送程序設(shè)計

  由于RS-232接口發(fā)送數(shù)據(jù)是以字節(jié)為單位,而CAN總線接收數(shù)據(jù)以多字節(jié)組成的數(shù)據(jù)幀為單位,因此為了避免指針指向的混亂,程序中統(tǒng)一使用相同長度的通用幀來保存數(shù)據(jù)。RS-232協(xié)議模塊將通用的幀使用SLIP協(xié)議進(jìn)行封裝后發(fā)送,并將接收到的SLIP幀轉(zhuǎn)為通用幀格式轉(zhuǎn)入緩沖區(qū)。系統(tǒng)啟動后,主程序調(diào)用RS232_Receive函數(shù)檢測CAN接收緩沖區(qū)的內(nèi)容,如果緩沖區(qū)內(nèi)有數(shù)據(jù),則調(diào)用RS_Read()函數(shù)讀取緩沖區(qū)中的一幀數(shù)據(jù)并將其送入RS232_Receive()函數(shù)參數(shù)buf指向的緩沖區(qū)后返回。在讀取CAN接收緩沖區(qū)數(shù)據(jù)后會交由RS232_Send()函數(shù)發(fā)送,并將幀數(shù)據(jù)保存至臨時發(fā)送緩沖區(qū)bufRS_S。程序通過ChkEndR()函數(shù)檢測數(shù)據(jù)幀是否發(fā)送完畢。

                     圖4  CAN總線與RS-232轉(zhuǎn)換器主程序流程圖       

       3.2  CAN控制器SJA1000初始化程序設(shè)計

CAN控制器SJA1000完成CAN總線幀的發(fā)送和接收任務(wù)。程序中,使用INITCAN()函數(shù)完成對CAN接口芯片的初始化。初始化程序設(shè)計對轉(zhuǎn)換器的正常工作相當(dāng)重要。它主要完成模式設(shè)置、時鐘輸出寄存器設(shè)置、接受碼寄存器ACR設(shè)置、接收屏蔽碼寄存器AMR設(shè)置、總線定時器設(shè)置和輸出控制寄存器設(shè)置。

3.3 基于CAN總線協(xié)議的數(shù)據(jù)接收與發(fā)送程序設(shè)計

主程序啟動后調(diào)用CAN_Recive()函數(shù)檢查CAN接收緩沖區(qū)中是否有數(shù)據(jù)存在,如果檢查到數(shù)據(jù),則程序從緩沖區(qū)中讀取一幀數(shù)據(jù)并將其送入?yún)?shù)buf指定的緩沖區(qū)中。主程序如果發(fā)現(xiàn)RS-232接收緩沖區(qū)內(nèi)有數(shù)據(jù),則讀取該數(shù)據(jù)幀并將其交由CAN_Send()函數(shù)發(fā)送至CAN總線。這里CAN_Send()函數(shù)接收到的數(shù)據(jù)幀格式為通用幀格式,需要先將其中的DesDevID SouDevID Length 等信息從通用幀中提取出來,填入CAN總線格式幀的各個位置,再通過命令寄存器傳遞發(fā)送請求。此外,主程序通過ChkEndC()函數(shù)檢測數(shù)據(jù)幀是否發(fā)送完畢。

4. 結(jié)論

本設(shè)計完成了CAN總線與RS-232轉(zhuǎn)換器的電路與軟件設(shè)計。本設(shè)計的創(chuàng)新點是:由于CAN總線與RS-232接口數(shù)據(jù)通信速率以及通信幀格式都不同,本設(shè)計最大優(yōu)點是解決了這兩點不同,從而實現(xiàn)了數(shù)據(jù)在CAN總線與RS-232接口之間的傳輸。在設(shè)計中由于使用了CAN總線進(jìn)行數(shù)據(jù)傳輸這就使得通信方式多主性。網(wǎng)絡(luò)上任意節(jié)點可以任意時刻主動地向網(wǎng)絡(luò)上其他節(jié)點發(fā)送信息而不分主從。可以點對點,點對多點或全局廣播方式發(fā)送和接收數(shù)據(jù)。

圖4  CAN總線與RS-232轉(zhuǎn)換器主程序流程圖

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉